@angular/material 12.0.0 → 12.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/_index.scss +2 -1
  2. package/_theming.scss +39 -4
  3. package/autocomplete/_autocomplete-legacy-index.scss +2 -0
  4. package/autocomplete/autocomplete.d.ts +4 -2
  5. package/autocomplete/index.metadata.json +1 -1
  6. package/badge/_badge-legacy-index.scss +3 -0
  7. package/bottom-sheet/_bottom-sheet-legacy-index.scss +2 -0
  8. package/bottom-sheet/bottom-sheet-container.d.ts +0 -2
  9. package/bottom-sheet/index.metadata.json +1 -1
  10. package/bundles/material-autocomplete.umd.js.map +1 -1
  11. package/bundles/material-bottom-sheet.umd.js +7 -15
  12. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  13. package/bundles/material-button-toggle.umd.js.map +1 -1
  14. package/bundles/material-checkbox.umd.js +1 -1
  15. package/bundles/material-checkbox.umd.js.map +1 -1
  16. package/bundles/material-core.umd.js +2 -2
  17. package/bundles/material-core.umd.js.map +1 -1
  18. package/bundles/material-datepicker.umd.js +17 -19
  19. package/bundles/material-datepicker.umd.js.map +1 -1
  20. package/bundles/material-dialog.umd.js +11 -19
  21. package/bundles/material-dialog.umd.js.map +1 -1
  22. package/bundles/material-input.umd.js +8 -2
  23. package/bundles/material-input.umd.js.map +1 -1
  24. package/bundles/material-radio.umd.js +4 -4
  25. package/bundles/material-radio.umd.js.map +1 -1
  26. package/bundles/material-slide-toggle.umd.js +4 -4
  27. package/bundles/material-slide-toggle.umd.js.map +1 -1
  28. package/bundles/material-sort.umd.js +7 -1
  29. package/bundles/material-sort.umd.js.map +1 -1
  30. package/bundles/material-stepper.umd.js +2 -2
  31. package/bundles/material-stepper.umd.js.map +1 -1
  32. package/bundles/material-table.umd.js.map +1 -1
  33. package/bundles/material-tabs.umd.js +4 -2
  34. package/bundles/material-tabs.umd.js.map +1 -1
  35. package/bundles/material-tooltip.umd.js +19 -15
  36. package/bundles/material-tooltip.umd.js.map +1 -1
  37. package/button/_button-legacy-index.scss +19 -0
  38. package/button-toggle/_button-toggle-legacy-index.scss +2 -0
  39. package/button-toggle/button-toggle.d.ts +4 -0
  40. package/button-toggle/index.metadata.json +1 -1
  41. package/card/_card-legacy-index.scss +2 -0
  42. package/checkbox/_checkbox-legacy-index.scss +2 -0
  43. package/checkbox/checkbox-config.d.ts +2 -0
  44. package/checkbox/index.metadata.json +1 -1
  45. package/chips/_chips-legacy-index.scss +6 -0
  46. package/core/_core-legacy-index.scss +17 -0
  47. package/core/color/_color-legacy-index.scss +1 -0
  48. package/core/density/private/_density-legacy-index.scss +5 -0
  49. package/core/focus-indicators/_focus-indicators-legacy-index.scss +5 -0
  50. package/core/focus-indicators/_focus-indicators.import.scss +1 -1
  51. package/core/focus-indicators/_focus-indicators.scss +4 -0
  52. package/core/index.metadata.json +1 -1
  53. package/core/option/_option-legacy-index.scss +5 -0
  54. package/core/ripple/_ripple-legacy-index.scss +3 -0
  55. package/core/ripple/ripple.d.ts +8 -6
  56. package/core/selection/pseudo-checkbox/_pseudo-checkbox-legacy-index.scss +2 -0
  57. package/core/style/_style-legacy-index.scss +24 -0
  58. package/core/theming/_theming-legacy-index.scss +22 -0
  59. package/core/theming/_theming.scss +45 -22
  60. package/core/typography/_typography-legacy-index.scss +18 -0
  61. package/core/typography/_typography-utils.scss +27 -8
  62. package/core/typography/_typography.scss +36 -7
  63. package/datepicker/_datepicker-legacy-index.scss +9 -0
  64. package/datepicker/calendar.d.ts +2 -4
  65. package/datepicker/datepicker-base.d.ts +6 -2
  66. package/datepicker/index.metadata.json +1 -1
  67. package/dialog/_dialog-legacy-index.scss +2 -0
  68. package/dialog/dialog-container.d.ts +0 -2
  69. package/dialog/index.metadata.json +1 -1
  70. package/divider/_divider-legacy-index.scss +3 -0
  71. package/esm2015/autocomplete/autocomplete.js +1 -1
  72. package/esm2015/bottom-sheet/bottom-sheet-container.js +5 -12
  73. package/esm2015/button-toggle/button-toggle.js +1 -1
  74. package/esm2015/checkbox/checkbox-config.js +1 -1
  75. package/esm2015/checkbox/checkbox.js +2 -2
  76. package/esm2015/core/common-behaviors/common-module.js +1 -1
  77. package/esm2015/core/ripple/ripple.js +1 -1
  78. package/esm2015/core/version.js +1 -1
  79. package/esm2015/datepicker/calendar.js +3 -5
  80. package/esm2015/datepicker/date-range-input-parts.js +3 -2
  81. package/esm2015/datepicker/datepicker-base.js +9 -9
  82. package/esm2015/datepicker/datepicker-intl.js +3 -3
  83. package/esm2015/dialog/dialog-container.js +5 -12
  84. package/esm2015/input/input.js +10 -4
  85. package/esm2015/radio/radio.js +5 -5
  86. package/esm2015/slide-toggle/slide-toggle.js +5 -5
  87. package/esm2015/sort/sort-header.js +8 -2
  88. package/esm2015/stepper/step-header.js +3 -3
  89. package/esm2015/table/table-data-source.js +1 -1
  90. package/esm2015/tabs/tab-group.js +4 -2
  91. package/esm2015/tabs/tab.js +3 -3
  92. package/esm2015/tooltip/tooltip.js +12 -8
  93. package/expansion/_expansion-legacy-index.scss +3 -0
  94. package/fesm2015/autocomplete.js.map +1 -1
  95. package/fesm2015/bottom-sheet.js +4 -11
  96. package/fesm2015/bottom-sheet.js.map +1 -1
  97. package/fesm2015/button-toggle.js.map +1 -1
  98. package/fesm2015/checkbox.js +1 -1
  99. package/fesm2015/checkbox.js.map +1 -1
  100. package/fesm2015/core.js +2 -2
  101. package/fesm2015/core.js.map +1 -1
  102. package/fesm2015/datepicker.js +14 -15
  103. package/fesm2015/datepicker.js.map +1 -1
  104. package/fesm2015/dialog.js +4 -11
  105. package/fesm2015/dialog.js.map +1 -1
  106. package/fesm2015/input.js +9 -3
  107. package/fesm2015/input.js.map +1 -1
  108. package/fesm2015/radio.js +4 -4
  109. package/fesm2015/radio.js.map +1 -1
  110. package/fesm2015/slide-toggle.js +4 -4
  111. package/fesm2015/slide-toggle.js.map +1 -1
  112. package/fesm2015/sort.js +7 -1
  113. package/fesm2015/sort.js.map +1 -1
  114. package/fesm2015/stepper.js +2 -2
  115. package/fesm2015/stepper.js.map +1 -1
  116. package/fesm2015/table.js.map +1 -1
  117. package/fesm2015/tabs.js +4 -2
  118. package/fesm2015/tabs.js.map +1 -1
  119. package/fesm2015/tooltip.js +11 -7
  120. package/fesm2015/tooltip.js.map +1 -1
  121. package/form-field/_form-field-legacy-index.scss +24 -0
  122. package/grid-list/_grid-list-legacy-index.scss +2 -0
  123. package/icon/_icon-legacy-index.scss +2 -0
  124. package/input/_input-legacy-index.scss +2 -0
  125. package/input/index.metadata.json +1 -1
  126. package/list/_list-legacy-index.scss +2 -0
  127. package/menu/_menu-legacy-index.scss +2 -0
  128. package/package.json +2 -2
  129. package/paginator/_paginator-legacy-index.scss +2 -0
  130. package/progress-bar/_progress-bar-legacy-index.scss +2 -0
  131. package/progress-spinner/_progress-spinner-legacy-index.scss +2 -0
  132. package/radio/_radio-legacy-index.scss +2 -0
  133. package/radio/index.metadata.json +1 -1
  134. package/radio/radio.d.ts +3 -2
  135. package/schematics/ng-add/fonts/material-fonts.mjs +46 -0
  136. package/schematics/ng-add/index.js +1 -1
  137. package/schematics/ng-add/index.mjs +55 -0
  138. package/schematics/ng-add/package-config.mjs +47 -0
  139. package/schematics/ng-add/schema.mjs +10 -0
  140. package/schematics/ng-add/setup-project.mjs +121 -0
  141. package/schematics/ng-add/theming/create-custom-theme.mjs +51 -0
  142. package/schematics/ng-add/theming/theming.mjs +165 -0
  143. package/schematics/ng-generate/address-form/index.mjs +49 -0
  144. package/schematics/ng-generate/address-form/schema.mjs +10 -0
  145. package/schematics/ng-generate/dashboard/index.mjs +49 -0
  146. package/schematics/ng-generate/dashboard/schema.mjs +10 -0
  147. package/schematics/ng-generate/navigation/index.mjs +49 -0
  148. package/schematics/ng-generate/navigation/schema.mjs +10 -0
  149. package/schematics/ng-generate/table/index.mjs +46 -0
  150. package/schematics/ng-generate/table/schema.mjs +10 -0
  151. package/schematics/ng-generate/tree/index.mjs +46 -0
  152. package/schematics/ng-generate/tree/schema.mjs +10 -0
  153. package/schematics/ng-update/data/attribute-selectors.mjs +12 -0
  154. package/schematics/ng-update/data/class-names.mjs +32 -0
  155. package/schematics/ng-update/data/constructor-checks.mjs +143 -0
  156. package/schematics/ng-update/data/css-selectors.mjs +46 -0
  157. package/schematics/ng-update/data/element-selectors.mjs +18 -0
  158. package/schematics/ng-update/data/index.mjs +29 -0
  159. package/schematics/ng-update/data/input-names.mjs +76 -0
  160. package/schematics/ng-update/data/method-call-checks.mjs +22 -0
  161. package/schematics/ng-update/data/output-names.mjs +101 -0
  162. package/schematics/ng-update/data/property-names.mjs +173 -0
  163. package/schematics/ng-update/index.mjs +78 -0
  164. package/schematics/ng-update/migrations/hammer-gestures-v9/find-hammer-script-tags.mjs +42 -0
  165. package/schematics/ng-update/migrations/hammer-gestures-v9/find-main-module.mjs +32 -0
  166. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +3 -3
  167. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +778 -0
  168. package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-template-check.mjs +56 -0
  169. package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +370 -0
  170. package/schematics/ng-update/migrations/hammer-gestures-v9/remove-array-element.mjs +66 -0
  171. package/schematics/ng-update/migrations/hammer-gestures-v9/remove-element-from-html.mjs +28 -0
  172. package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.mjs +48 -0
  173. package/schematics/ng-update/migrations/misc-checks/misc-class-names.mjs +43 -0
  174. package/schematics/ng-update/migrations/misc-checks/misc-imports.mjs +54 -0
  175. package/schematics/ng-update/migrations/misc-checks/misc-property-names.mjs +47 -0
  176. package/schematics/ng-update/migrations/misc-checks/misc-template.mjs +60 -0
  177. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.mjs +138 -0
  178. package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor.mjs +30 -0
  179. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +6 -2
  180. package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +173 -0
  181. package/schematics/ng-update/migrations/theming-api-v12/config.mjs +206 -0
  182. package/schematics/ng-update/migrations/theming-api-v12/migration.js +6 -1
  183. package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +239 -0
  184. package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.mjs +45 -0
  185. package/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  186. package/schematics/ng-update/upgrade-data.mjs +24 -0
  187. package/schematics/paths.mjs +16 -0
  188. package/schematics/schematics.externs.js +0 -0
  189. package/select/_select-legacy-index.scss +2 -0
  190. package/sidenav/_sidenav-legacy-index.scss +2 -0
  191. package/slide-toggle/_slide-toggle-legacy-index.scss +3 -0
  192. package/slide-toggle/index.metadata.json +1 -1
  193. package/slide-toggle/slide-toggle.d.ts +3 -2
  194. package/slider/_slider-legacy-index.scss +2 -0
  195. package/snack-bar/_snack-bar-legacy-index.scss +2 -0
  196. package/sort/_sort-legacy-index.scss +2 -0
  197. package/sort/sort-header.d.ts +1 -1
  198. package/stepper/_stepper-legacy-index.scss +7 -0
  199. package/stepper/index.metadata.json +1 -1
  200. package/table/_table-legacy-index.scss +3 -0
  201. package/table/index.metadata.json +1 -1
  202. package/table/table-data-source.d.ts +17 -5
  203. package/tabs/_tabs-legacy-index.scss +6 -0
  204. package/tabs/index.metadata.json +1 -1
  205. package/toolbar/_toolbar-legacy-index.scss +4 -0
  206. package/tooltip/_tooltip-legacy-index.scss +3 -0
  207. package/tooltip/index.metadata.json +1 -1
  208. package/tree/_tree-legacy-index.scss +2 -0
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"MatRadioModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatRippleModule","line":14,"character":12},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":14,"character":29}],"exports":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","name":"MatRadioButton"},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":15,"character":43}],"declarations":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","name":"MatRadioButton"}]}]}],"members":{}},"MatRadioDefaultOptions":{"__symbolic":"interface"},"MAT_RADIO_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":57,"character":6},"arguments":["mat-radio-default-options",{"providedIn":"root","factory":{"__symbolic":"reference","name":"MAT_RADIO_DEFAULT_OPTIONS_FACTORY"}}]},"MAT_RADIO_DEFAULT_OPTIONS_FACTORY":{"__symbolic":"function","parameters":[],"value":{"color":"accent"}},"MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":77,"character":11},"useExisting":{"__symbolic":"reference","name":"MatRadioGroup"},"multi":true},"MatRadioChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"_MatRadioButtonBase"},{"__symbolic":"reference","name":"any"}]}]}},"MAT_RADIO_GROUP":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":97,"character":8},"arguments":["MatRadioGroup"]},"_MatRadioGroupBase":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":103,"character":1}}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":141,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"labelPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":158,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":173,"character":3}}]}],"_checkSelectedRadioButton":[{"__symbolic":"method"}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":195,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":204,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"_touch":[{"__symbolic":"method"}],"_updateRadioButtonNames":[{"__symbolic":"method"}],"_updateSelectedRadioFromValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"_markRadiosForCheck":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}},"MatRadioGroup":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"_MatRadioGroupBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":323,"character":1},"arguments":[{"selector":"mat-radio-group","exportAs":"matRadioGroup","providers":[{"__symbolic":"reference","name":"MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR"},{"provide":{"__symbolic":"reference","name":"MAT_RADIO_GROUP"},"useExisting":{"__symbolic":"reference","name":"MatRadioGroup"}}],"host":{"role":"radiogroup","class":"mat-radio-group","$quoted$":["role","class"]}}]}],"members":{"_radios":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":336,"character":3},"arguments":[{"__symbolic":"reference","name":"MatRadioButton"},{"descendants":true}]}]}]}},"_MatRadioButtonBase":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":360,"character":50,"module":"./radio"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":359,"character":1}}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":366,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":369,"character":3}}]}],"ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":372,"character":3},"arguments":["aria-label"]}]}],"ariaLabelledby":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":375,"character":3},"arguments":["aria-labelledby"]}]}],"ariaDescribedby":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":378,"character":3},"arguments":["aria-describedby"]}]}],"checked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":381,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":405,"character":3}}]}],"labelPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":423,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":433,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":442,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":451,"character":3}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":465,"character":3}}]}],"_inputElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":489,"character":3},"arguments":["input"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"_MatRadioGroupBase"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":492,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":494,"character":37},{"__symbolic":"reference","module":"@angular/cdk/collections","name":"UniqueSelectionDispatcher","line":495,"character":40},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}],"focus":[{"__symbolic":"method"}],"_markForCheck":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"_isRippleDisabled":[{"__symbolic":"method"}],"_onInputClick":[{"__symbolic":"method"}],"_onInputChange":[{"__symbolic":"method"}],"_setDisabled":[{"__symbolic":"method"}]}},"MatRadioButton":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"_MatRadioButtonBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":627,"character":1},"arguments":[{"selector":"mat-radio-button","inputs":["disableRipple","tabIndex"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":632,"character":17},"member":"None"},"exportAs":"matRadioButton","host":{"class":"mat-radio-button","[class.mat-radio-checked]":"checked","[class.mat-radio-disabled]":"disabled","[class._mat-animation-noopable]":"_animationMode === \"NoopAnimations\"","[class.mat-primary]":"color === \"primary\"","[class.mat-accent]":"color === \"accent\"","[class.mat-warn]":"color === \"warn\"","[attr.tabindex]":"null","[attr.id]":"id","[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[attr.aria-describedby]":"null","(focus)":"_inputElement.nativeElement.focus()","$quoted$":["class","[class.mat-radio-checked]","[class.mat-radio-disabled]","[class._mat-animation-noopable]","[class.mat-primary]","[class.mat-accent]","[class.mat-warn]","[attr.tabindex]","[attr.id]","[attr.aria-label]","[attr.aria-labelledby]","[attr.aria-describedby]","(focus)"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":653,"character":19},"member":"OnPush"},"template":"<!-- TODO(jelbourn): render the radio on either side of the content -->\n<!-- TODO(mtlin): Evaluate trade-offs of using native radio vs. cost of additional bindings. -->\n<label [attr.for]=\"inputId\" class=\"mat-radio-label\" #label>\n <!-- The actual 'radio' part of the control. -->\n <span class=\"mat-radio-container\">\n <span class=\"mat-radio-outer-circle\"></span>\n <span class=\"mat-radio-inner-circle\"></span>\n <input #input class=\"mat-radio-input cdk-visually-hidden\" type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (click)=\"_onInputClick($event)\">\n\n <!-- The ripple comes after the input so that we can target it with a CSS\n sibling selector when the input is focused. -->\n <span mat-ripple class=\"mat-radio-ripple mat-focus-indicator\"\n [matRippleTrigger]=\"label\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"true\"\n [matRippleRadius]=\"20\"\n [matRippleAnimation]=\"{enterDuration: 150}\">\n\n <span class=\"mat-ripple-element mat-radio-persistent-ripple\"></span>\n </span>\n </span>\n\n <!-- The label content for radio control. -->\n <span class=\"mat-radio-label-content\" [class.mat-radio-label-before]=\"labelPosition == 'before'\">\n <!-- Add an invisible span so JAWS can read the label -->\n <span style=\"display:none\">&nbsp;</span>\n <ng-content></ng-content>\n </span>\n</label>\n","styles":[".mat-radio-button{display:inline-block;-webkit-tap-highlight-color:transparent;outline:0}.mat-radio-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:transform ease 280ms,background-color ease 280ms;width:20px;transform:scale(0.001);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5)}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}.mat-radio-label-content{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none;top:0;left:0}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{bottom:0;left:50%}.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-ripple,.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-ripple{outline:solid 3px}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":656,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":656,"character":27},"arguments":[{"__symbolic":"reference","name":"MAT_RADIO_GROUP"}]}],null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":661,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":661,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"ANIMATION_MODULE_TYPE","line":661,"character":34}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":662,"character":17}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":662,"character":29},"arguments":[{"__symbolic":"reference","name":"MAT_RADIO_DEFAULT_OPTIONS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":664,"character":15},"arguments":["tabindex"]}]],"parameters":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":492,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":494,"character":37},{"__symbolic":"reference","module":"@angular/cdk/collections","name":"UniqueSelectionDispatcher","line":495,"character":40},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}]}}},"origins":{"MatRadioModule":"./radio-module","MatRadioDefaultOptions":"./radio","MAT_RADIO_DEFAULT_OPTIONS":"./radio","MAT_RADIO_DEFAULT_OPTIONS_FACTORY":"./radio","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR":"./radio","MatRadioChange":"./radio","MAT_RADIO_GROUP":"./radio","_MatRadioGroupBase":"./radio","MatRadioGroup":"./radio","_MatRadioButtonBase":"./radio","MatRadioButton":"./radio"},"importAs":"@angular/material/radio"}
1
+ {"__symbolic":"module","version":4,"metadata":{"MatRadioModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material/core","name":"MatRippleModule","line":14,"character":12},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":14,"character":29}],"exports":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","name":"MatRadioButton"},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":15,"character":43}],"declarations":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","name":"MatRadioButton"}]}]}],"members":{}},"MatRadioDefaultOptions":{"__symbolic":"interface"},"MAT_RADIO_DEFAULT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":57,"character":6},"arguments":["mat-radio-default-options",{"providedIn":"root","factory":{"__symbolic":"reference","name":"MAT_RADIO_DEFAULT_OPTIONS_FACTORY"}}]},"MAT_RADIO_DEFAULT_OPTIONS_FACTORY":{"__symbolic":"function","parameters":[],"value":{"color":"accent"}},"MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":77,"character":11},"useExisting":{"__symbolic":"reference","name":"MatRadioGroup"},"multi":true},"MatRadioChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"_MatRadioButtonBase"},{"__symbolic":"reference","name":"any"}]}]}},"MAT_RADIO_GROUP":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":97,"character":8},"arguments":["MatRadioGroup"]},"_MatRadioGroupBase":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":103,"character":1}}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":141,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"labelPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":158,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":173,"character":3}}]}],"_checkSelectedRadioButton":[{"__symbolic":"method"}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":195,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":204,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"_touch":[{"__symbolic":"method"}],"_updateRadioButtonNames":[{"__symbolic":"method"}],"_updateSelectedRadioFromValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"_markRadiosForCheck":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}},"MatRadioGroup":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"_MatRadioGroupBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":323,"character":1},"arguments":[{"selector":"mat-radio-group","exportAs":"matRadioGroup","providers":[{"__symbolic":"reference","name":"MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR"},{"provide":{"__symbolic":"reference","name":"MAT_RADIO_GROUP"},"useExisting":{"__symbolic":"reference","name":"MatRadioGroup"}}],"host":{"role":"radiogroup","class":"mat-radio-group","$quoted$":["role","class"]}}]}],"members":{"_radios":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":336,"character":3},"arguments":[{"__symbolic":"reference","name":"MatRadioButton"},{"descendants":true}]}]}]}},"_MatRadioButtonBase":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Symbol reference expected","line":360,"character":50,"module":"./radio"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":359,"character":1}}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":366,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":369,"character":3}}]}],"ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":372,"character":3},"arguments":["aria-label"]}]}],"ariaLabelledby":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":375,"character":3},"arguments":["aria-labelledby"]}]}],"ariaDescribedby":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":378,"character":3},"arguments":["aria-describedby"]}]}],"checked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":381,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":405,"character":3}}]}],"labelPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":423,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":433,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":442,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":451,"character":3}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":465,"character":3}}]}],"_inputElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":489,"character":3},"arguments":["input"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"_MatRadioGroupBase"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":495,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":497,"character":37},{"__symbolic":"reference","module":"@angular/cdk/collections","name":"UniqueSelectionDispatcher","line":498,"character":40},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}],"focus":[{"__symbolic":"method"}],"_markForCheck":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"_isRippleDisabled":[{"__symbolic":"method"}],"_onInputClick":[{"__symbolic":"method"}],"_onInputChange":[{"__symbolic":"method"}],"_setDisabled":[{"__symbolic":"method"}]}},"MatRadioButton":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"_MatRadioButtonBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":631,"character":1},"arguments":[{"selector":"mat-radio-button","inputs":["disableRipple","tabIndex"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":636,"character":17},"member":"None"},"exportAs":"matRadioButton","host":{"class":"mat-radio-button","[class.mat-radio-checked]":"checked","[class.mat-radio-disabled]":"disabled","[class._mat-animation-noopable]":"_noopAnimations","[class.mat-primary]":"color === \"primary\"","[class.mat-accent]":"color === \"accent\"","[class.mat-warn]":"color === \"warn\"","[attr.tabindex]":"null","[attr.id]":"id","[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[attr.aria-describedby]":"null","(focus)":"_inputElement.nativeElement.focus()","$quoted$":["class","[class.mat-radio-checked]","[class.mat-radio-disabled]","[class._mat-animation-noopable]","[class.mat-primary]","[class.mat-accent]","[class.mat-warn]","[attr.tabindex]","[attr.id]","[attr.aria-label]","[attr.aria-labelledby]","[attr.aria-describedby]","(focus)"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":657,"character":19},"member":"OnPush"},"template":"<!-- TODO(jelbourn): render the radio on either side of the content -->\n<!-- TODO(mtlin): Evaluate trade-offs of using native radio vs. cost of additional bindings. -->\n<label [attr.for]=\"inputId\" class=\"mat-radio-label\" #label>\n <!-- The actual 'radio' part of the control. -->\n <span class=\"mat-radio-container\">\n <span class=\"mat-radio-outer-circle\"></span>\n <span class=\"mat-radio-inner-circle\"></span>\n <input #input class=\"mat-radio-input cdk-visually-hidden\" type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (click)=\"_onInputClick($event)\">\n\n <!-- The ripple comes after the input so that we can target it with a CSS\n sibling selector when the input is focused. -->\n <span mat-ripple class=\"mat-radio-ripple mat-focus-indicator\"\n [matRippleTrigger]=\"label\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"true\"\n [matRippleRadius]=\"20\"\n [matRippleAnimation]=\"{enterDuration: _noopAnimations ? 0 : 150}\">\n\n <span class=\"mat-ripple-element mat-radio-persistent-ripple\"></span>\n </span>\n </span>\n\n <!-- The label content for radio control. -->\n <span class=\"mat-radio-label-content\" [class.mat-radio-label-before]=\"labelPosition == 'before'\">\n <!-- Add an invisible span so JAWS can read the label -->\n <span style=\"display:none\">&nbsp;</span>\n <ng-content></ng-content>\n </span>\n</label>\n","styles":[".mat-radio-button{display:inline-block;-webkit-tap-highlight-color:transparent;outline:0}.mat-radio-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:transform ease 280ms,background-color ease 280ms;width:20px;transform:scale(0.001);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5)}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}.mat-radio-label-content{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none;top:0;left:0}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{bottom:0;left:50%}.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-ripple,.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-ripple{outline:solid 3px}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":660,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":660,"character":27},"arguments":[{"__symbolic":"reference","name":"MAT_RADIO_GROUP"}]}],null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":665,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":665,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"ANIMATION_MODULE_TYPE","line":665,"character":34}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":666,"character":17}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":666,"character":29},"arguments":[{"__symbolic":"reference","name":"MAT_RADIO_DEFAULT_OPTIONS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":668,"character":15},"arguments":["tabindex"]}]],"parameters":[{"__symbolic":"reference","name":"MatRadioGroup"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":495,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":219,"character":39},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":497,"character":37},{"__symbolic":"reference","module":"@angular/cdk/collections","name":"UniqueSelectionDispatcher","line":498,"character":40},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}]}}},"origins":{"MatRadioModule":"./radio-module","MatRadioDefaultOptions":"./radio","MAT_RADIO_DEFAULT_OPTIONS":"./radio","MAT_RADIO_DEFAULT_OPTIONS_FACTORY":"./radio","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR":"./radio","MatRadioChange":"./radio","MAT_RADIO_GROUP":"./radio","_MatRadioGroupBase":"./radio","MatRadioGroup":"./radio","_MatRadioButtonBase":"./radio","MatRadioButton":"./radio"},"importAs":"@angular/material/radio"}
package/radio/radio.d.ts CHANGED
@@ -167,7 +167,6 @@ export declare abstract class _MatRadioButtonBase extends _MatRadioButtonMixinBa
167
167
  protected _changeDetector: ChangeDetectorRef;
168
168
  private _focusMonitor;
169
169
  private _radioDispatcher;
170
- _animationMode?: string | undefined;
171
170
  private _providerOverride?;
172
171
  private _uniqueId;
173
172
  /** The unique ID for the radio button. */
@@ -222,7 +221,9 @@ export declare abstract class _MatRadioButtonBase extends _MatRadioButtonMixinBa
222
221
  private _removeUniqueSelectionListener;
223
222
  /** The native `<input type=radio>` element */
224
223
  _inputElement: ElementRef<HTMLInputElement>;
225
- constructor(radioGroup: _MatRadioGroupBase<_MatRadioButtonBase>, elementRef: ElementRef, _changeDetector: ChangeDetectorRef, _focusMonitor: FocusMonitor, _radioDispatcher: UniqueSelectionDispatcher, _animationMode?: string | undefined, _providerOverride?: MatRadioDefaultOptions | undefined, tabIndex?: string);
224
+ /** Whether animations are disabled. */
225
+ _noopAnimations: boolean;
226
+ constructor(radioGroup: _MatRadioGroupBase<_MatRadioButtonBase>, elementRef: ElementRef, _changeDetector: ChangeDetectorRef, _focusMonitor: FocusMonitor, _radioDispatcher: UniqueSelectionDispatcher, animationMode?: string, _providerOverride?: MatRadioDefaultOptions | undefined, tabIndex?: string);
226
227
  /** Focuses the radio button. */
227
228
  focus(options?: FocusOptions, origin?: FocusOrigin): void;
228
229
  /**
@@ -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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.addFontsToIndex = void 0;
20
+ const schematics_1 = require("@angular-devkit/schematics");
21
+ const schematics_2 = require("@angular/cdk/schematics");
22
+ const workspace_1 = require("@schematics/angular/utility/workspace");
23
+ /** Adds the Material Design fonts to the index HTML file. */
24
+ function addFontsToIndex(options) {
25
+ return (host) => __awaiter(this, void 0, void 0, function* () {
26
+ const workspace = yield workspace_1.getWorkspace(host);
27
+ const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
28
+ const projectIndexFiles = schematics_2.getProjectIndexFiles(project);
29
+ if (!projectIndexFiles.length) {
30
+ throw new schematics_1.SchematicsException('No project index HTML file could be found.');
31
+ }
32
+ const preconnect = `<link rel="preconnect" href="https://fonts.gstatic.com">`;
33
+ const fonts = [
34
+ 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap',
35
+ 'https://fonts.googleapis.com/icon?family=Material+Icons',
36
+ ];
37
+ projectIndexFiles.forEach(indexFilePath => {
38
+ schematics_2.appendHtmlElementToHead(host, indexFilePath, preconnect);
39
+ fonts.forEach(font => {
40
+ schematics_2.appendHtmlElementToHead(host, indexFilePath, `<link href="${font}" rel="stylesheet">`);
41
+ });
42
+ });
43
+ });
44
+ }
45
+ exports.addFontsToIndex = addFontsToIndex;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZm9udHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvZm9udHMvbWF0ZXJpYWwtZm9udHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0FBRUgsMkRBQTJFO0FBQzNFLHdEQUlpQztBQUNqQyxxRUFBbUU7QUFHbkUsNkRBQTZEO0FBQzdELFNBQWdCLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLE9BQU8sQ0FBTyxJQUFVLEVBQUUsRUFBRTtRQUMxQixNQUFNLFNBQVMsR0FBRyxNQUFNLHdCQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsb0NBQXVCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLGlDQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsTUFBTSxJQUFJLGdDQUFtQixDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDN0U7UUFFRCxNQUFNLFVBQVUsR0FBRywwREFBMEQsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRztZQUNaLCtFQUErRTtZQUMvRSx5REFBeUQ7U0FDMUQsQ0FBQztRQUVGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxvQ0FBdUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRXpELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25CLG9DQUF1QixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsZUFBZSxJQUFJLHFCQUFxQixDQUFDLENBQUM7WUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQSxDQUFDO0FBQ0osQ0FBQztBQXhCRCwwQ0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNzRXhjZXB0aW9uLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge1xuICBhcHBlbmRIdG1sRWxlbWVudFRvSGVhZCxcbiAgZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2UsXG4gIGdldFByb2plY3RJbmRleEZpbGVzLFxufSBmcm9tICdAYW5ndWxhci9jZGsvc2NoZW1hdGljcyc7XG5pbXBvcnQge2dldFdvcmtzcGFjZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3dvcmtzcGFjZSc7XG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi4vc2NoZW1hJztcblxuLyoqIEFkZHMgdGhlIE1hdGVyaWFsIERlc2lnbiBmb250cyB0byB0aGUgaW5kZXggSFRNTCBmaWxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEZvbnRzVG9JbmRleChvcHRpb25zOiBTY2hlbWEpOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlKSA9PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlKGhvc3QpO1xuICAgIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG4gICAgY29uc3QgcHJvamVjdEluZGV4RmlsZXMgPSBnZXRQcm9qZWN0SW5kZXhGaWxlcyhwcm9qZWN0KTtcblxuICAgIGlmICghcHJvamVjdEluZGV4RmlsZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbignTm8gcHJvamVjdCBpbmRleCBIVE1MIGZpbGUgY291bGQgYmUgZm91bmQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlY29ubmVjdCA9IGA8bGluayByZWw9XCJwcmVjb25uZWN0XCIgaHJlZj1cImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb21cIj5gO1xuICAgIGNvbnN0IGZvbnRzID0gW1xuICAgICAgJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRAMzAwOzQwMDs1MDAmZGlzcGxheT1zd2FwJyxcbiAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zJyxcbiAgICBdO1xuXG4gICAgcHJvamVjdEluZGV4RmlsZXMuZm9yRWFjaChpbmRleEZpbGVQYXRoID0+IHtcbiAgICAgIGFwcGVuZEh0bWxFbGVtZW50VG9IZWFkKGhvc3QsIGluZGV4RmlsZVBhdGgsIHByZWNvbm5lY3QpO1xuXG4gICAgICBmb250cy5mb3JFYWNoKGZvbnQgPT4ge1xuICAgICAgICBhcHBlbmRIdG1sRWxlbWVudFRvSGVhZChob3N0LCBpbmRleEZpbGVQYXRoLCBgPGxpbmsgaHJlZj1cIiR7Zm9udH1cIiByZWw9XCJzdHlsZXNoZWV0XCI+YCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -18,7 +18,7 @@ const package_config_1 = require("./package-config");
18
18
  * Note that the fallback version range does not use caret, but tilde because that is
19
19
  * the default for Angular framework dependencies in CLI projects.
20
20
  */
21
- const fallbackMaterialVersionRange = `~12.0.0-rc.3-sha-043a742df`;
21
+ const fallbackMaterialVersionRange = `~12.0.2-sha-48d2df2428`;
22
22
  /**
23
23
  * Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be
24
24
  * automatically executed if developers run `ng add @angular/material`.
@@ -0,0 +1,55 @@
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 tasks_1 = require("@angular-devkit/schematics/tasks");
11
+ const package_config_1 = require("./package-config");
12
+ /**
13
+ * Version range that will be used for the Angular CDK and Angular Material if this
14
+ * schematic has been run outside of the CLI `ng add` command. In those cases, there
15
+ * can be no dependency on `@angular/material` in the `package.json` file, and we need
16
+ * to manually insert the dependency based on the build version placeholder.
17
+ *
18
+ * Note that the fallback version range does not use caret, but tilde because that is
19
+ * the default for Angular framework dependencies in CLI projects.
20
+ */
21
+ const fallbackMaterialVersionRange = `~12.0.2-sha-48d2df2428`;
22
+ /**
23
+ * Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be
24
+ * automatically executed if developers run `ng add @angular/material`.
25
+ *
26
+ * Since the Angular Material schematics depend on the schematic utility functions from the CDK,
27
+ * we need to install the CDK before loading the schematic files that import from the CDK.
28
+ */
29
+ function default_1(options) {
30
+ return (host, context) => {
31
+ // Version tag of the `@angular/core` dependency that has been loaded from the `package.json`
32
+ // of the CLI project. This tag should be preferred because all Angular dependencies should
33
+ // have the same version tag if possible.
34
+ const ngCoreVersionTag = package_config_1.getPackageVersionFromPackageJson(host, '@angular/core');
35
+ const materialVersionRange = package_config_1.getPackageVersionFromPackageJson(host, '@angular/material');
36
+ const angularDependencyVersion = ngCoreVersionTag || `^12.0.0 || ^13.0.0-0`;
37
+ // The CLI inserts `@angular/material` into the `package.json` before this schematic runs.
38
+ // This means that we do not need to insert Angular Material into `package.json` files again.
39
+ // In some cases though, it could happen that this schematic runs outside of the CLI `ng add`
40
+ // command, or Material is only listed a dev dependency. If that is the case, we insert a
41
+ // version based on the current build version (substituted version placeholder).
42
+ if (materialVersionRange === null) {
43
+ package_config_1.addPackageToPackageJson(host, '@angular/material', fallbackMaterialVersionRange);
44
+ }
45
+ package_config_1.addPackageToPackageJson(host, '@angular/cdk', materialVersionRange || fallbackMaterialVersionRange);
46
+ package_config_1.addPackageToPackageJson(host, '@angular/forms', angularDependencyVersion);
47
+ package_config_1.addPackageToPackageJson(host, '@angular/animations', angularDependencyVersion);
48
+ // Since the Angular Material schematics depend on the schematic utility functions from the
49
+ // CDK, we need to install the CDK before loading the schematic files that import from the CDK.
50
+ const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask());
51
+ context.addTask(new tasks_1.RunSchematicTask('ng-add-setup-project', options), [installTaskId]);
52
+ };
53
+ }
54
+ exports.default = default_1;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFHSCw0REFBMEY7QUFDMUYscURBQTJGO0FBRzNGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQztBQUUxRDs7Ozs7O0dBTUc7QUFDSCxtQkFBd0IsT0FBZTtJQUNyQyxPQUFPLENBQUMsSUFBVSxFQUFFLE9BQXlCLEVBQUUsRUFBRTtRQUMvQyw2RkFBNkY7UUFDN0YsMkZBQTJGO1FBQzNGLHlDQUF5QztRQUN6QyxNQUFNLGdCQUFnQixHQUFHLGlEQUFnQyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRixNQUFNLG9CQUFvQixHQUFHLGlEQUFnQyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sd0JBQXdCLEdBQUcsZ0JBQWdCLElBQUksVUFBVSxDQUFDO1FBRWhFLDBGQUEwRjtRQUMxRiw2RkFBNkY7UUFDN0YsNkZBQTZGO1FBQzdGLHlGQUF5RjtRQUN6RixnRkFBZ0Y7UUFDaEYsSUFBSSxvQkFBb0IsS0FBSyxJQUFJLEVBQUU7WUFDakMsd0NBQXVCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLDRCQUE0QixDQUFDLENBQUM7U0FDbEY7UUFFRCx3Q0FBdUIsQ0FDbkIsSUFBSSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsSUFBSSw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2hGLHdDQUF1QixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFFLHdDQUF1QixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBRS9FLDJGQUEyRjtRQUMzRiwrRkFBK0Y7UUFDL0YsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLDhCQUFzQixFQUFFLENBQUMsQ0FBQztRQUVwRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksd0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUMsQ0FBQztBQUNKLENBQUM7QUE3QkQsNEJBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljQ29udGV4dCwgVHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtOb2RlUGFja2FnZUluc3RhbGxUYXNrLCBSdW5TY2hlbWF0aWNUYXNrfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy90YXNrcyc7XG5pbXBvcnQge2FkZFBhY2thZ2VUb1BhY2thZ2VKc29uLCBnZXRQYWNrYWdlVmVyc2lvbkZyb21QYWNrYWdlSnNvbn0gZnJvbSAnLi9wYWNrYWdlLWNvbmZpZyc7XG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIFZlcnNpb24gcmFuZ2UgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBBbmd1bGFyIENESyBhbmQgQW5ndWxhciBNYXRlcmlhbCBpZiB0aGlzXG4gKiBzY2hlbWF0aWMgaGFzIGJlZW4gcnVuIG91dHNpZGUgb2YgdGhlIENMSSBgbmcgYWRkYCBjb21tYW5kLiBJbiB0aG9zZSBjYXNlcywgdGhlcmVcbiAqIGNhbiBiZSBubyBkZXBlbmRlbmN5IG9uIGBAYW5ndWxhci9tYXRlcmlhbGAgaW4gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUsIGFuZCB3ZSBuZWVkXG4gKiB0byBtYW51YWxseSBpbnNlcnQgdGhlIGRlcGVuZGVuY3kgYmFzZWQgb24gdGhlIGJ1aWxkIHZlcnNpb24gcGxhY2Vob2xkZXIuXG4gKlxuICogTm90ZSB0aGF0IHRoZSBmYWxsYmFjayB2ZXJzaW9uIHJhbmdlIGRvZXMgbm90IHVzZSBjYXJldCwgYnV0IHRpbGRlIGJlY2F1c2UgdGhhdCBpc1xuICogdGhlIGRlZmF1bHQgZm9yIEFuZ3VsYXIgZnJhbWV3b3JrIGRlcGVuZGVuY2llcyBpbiBDTEkgcHJvamVjdHMuXG4gKi9cbmNvbnN0IGZhbGxiYWNrTWF0ZXJpYWxWZXJzaW9uUmFuZ2UgPSBgfjAuMC4wLVBMQUNFSE9MREVSYDtcblxuLyoqXG4gKiBTY2hlbWF0aWMgZmFjdG9yeSBlbnRyeS1wb2ludCBmb3IgdGhlIGBuZy1hZGRgIHNjaGVtYXRpYy4gVGhlIG5nLWFkZCBzY2hlbWF0aWMgd2lsbCBiZVxuICogYXV0b21hdGljYWxseSBleGVjdXRlZCBpZiBkZXZlbG9wZXJzIHJ1biBgbmcgYWRkIEBhbmd1bGFyL21hdGVyaWFsYC5cbiAqXG4gKiBTaW5jZSB0aGUgQW5ndWxhciBNYXRlcmlhbCBzY2hlbWF0aWNzIGRlcGVuZCBvbiB0aGUgc2NoZW1hdGljIHV0aWxpdHkgZnVuY3Rpb25zIGZyb20gdGhlIENESyxcbiAqIHdlIG5lZWQgdG8gaW5zdGFsbCB0aGUgQ0RLIGJlZm9yZSBsb2FkaW5nIHRoZSBzY2hlbWF0aWMgZmlsZXMgdGhhdCBpbXBvcnQgZnJvbSB0aGUgQ0RLLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihvcHRpb25zOiBTY2hlbWEpOiBSdWxlIHtcbiAgcmV0dXJuIChob3N0OiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgLy8gVmVyc2lvbiB0YWcgb2YgdGhlIGBAYW5ndWxhci9jb3JlYCBkZXBlbmRlbmN5IHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gdGhlIGBwYWNrYWdlLmpzb25gXG4gICAgLy8gb2YgdGhlIENMSSBwcm9qZWN0LiBUaGlzIHRhZyBzaG91bGQgYmUgcHJlZmVycmVkIGJlY2F1c2UgYWxsIEFuZ3VsYXIgZGVwZW5kZW5jaWVzIHNob3VsZFxuICAgIC8vIGhhdmUgdGhlIHNhbWUgdmVyc2lvbiB0YWcgaWYgcG9zc2libGUuXG4gICAgY29uc3QgbmdDb3JlVmVyc2lvblRhZyA9IGdldFBhY2thZ2VWZXJzaW9uRnJvbVBhY2thZ2VKc29uKGhvc3QsICdAYW5ndWxhci9jb3JlJyk7XG4gICAgY29uc3QgbWF0ZXJpYWxWZXJzaW9uUmFuZ2UgPSBnZXRQYWNrYWdlVmVyc2lvbkZyb21QYWNrYWdlSnNvbihob3N0LCAnQGFuZ3VsYXIvbWF0ZXJpYWwnKTtcbiAgICBjb25zdCBhbmd1bGFyRGVwZW5kZW5jeVZlcnNpb24gPSBuZ0NvcmVWZXJzaW9uVGFnIHx8IGAwLjAuMC1OR2A7XG5cbiAgICAvLyBUaGUgQ0xJIGluc2VydHMgYEBhbmd1bGFyL21hdGVyaWFsYCBpbnRvIHRoZSBgcGFja2FnZS5qc29uYCBiZWZvcmUgdGhpcyBzY2hlbWF0aWMgcnVucy5cbiAgICAvLyBUaGlzIG1lYW5zIHRoYXQgd2UgZG8gbm90IG5lZWQgdG8gaW5zZXJ0IEFuZ3VsYXIgTWF0ZXJpYWwgaW50byBgcGFja2FnZS5qc29uYCBmaWxlcyBhZ2Fpbi5cbiAgICAvLyBJbiBzb21lIGNhc2VzIHRob3VnaCwgaXQgY291bGQgaGFwcGVuIHRoYXQgdGhpcyBzY2hlbWF0aWMgcnVucyBvdXRzaWRlIG9mIHRoZSBDTEkgYG5nIGFkZGBcbiAgICAvLyBjb21tYW5kLCBvciBNYXRlcmlhbCBpcyBvbmx5IGxpc3RlZCBhIGRldiBkZXBlbmRlbmN5LiBJZiB0aGF0IGlzIHRoZSBjYXNlLCB3ZSBpbnNlcnQgYVxuICAgIC8vIHZlcnNpb24gYmFzZWQgb24gdGhlIGN1cnJlbnQgYnVpbGQgdmVyc2lvbiAoc3Vic3RpdHV0ZWQgdmVyc2lvbiBwbGFjZWhvbGRlcikuXG4gICAgaWYgKG1hdGVyaWFsVmVyc2lvblJhbmdlID09PSBudWxsKSB7XG4gICAgICBhZGRQYWNrYWdlVG9QYWNrYWdlSnNvbihob3N0LCAnQGFuZ3VsYXIvbWF0ZXJpYWwnLCBmYWxsYmFja01hdGVyaWFsVmVyc2lvblJhbmdlKTtcbiAgICB9XG5cbiAgICBhZGRQYWNrYWdlVG9QYWNrYWdlSnNvbihcbiAgICAgICAgaG9zdCwgJ0Bhbmd1bGFyL2NkaycsIG1hdGVyaWFsVmVyc2lvblJhbmdlIHx8IGZhbGxiYWNrTWF0ZXJpYWxWZXJzaW9uUmFuZ2UpO1xuICAgIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKGhvc3QsICdAYW5ndWxhci9mb3JtcycsIGFuZ3VsYXJEZXBlbmRlbmN5VmVyc2lvbik7XG4gICAgYWRkUGFja2FnZVRvUGFja2FnZUpzb24oaG9zdCwgJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnLCBhbmd1bGFyRGVwZW5kZW5jeVZlcnNpb24pO1xuXG4gICAgLy8gU2luY2UgdGhlIEFuZ3VsYXIgTWF0ZXJpYWwgc2NoZW1hdGljcyBkZXBlbmQgb24gdGhlIHNjaGVtYXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBmcm9tIHRoZVxuICAgIC8vIENESywgd2UgbmVlZCB0byBpbnN0YWxsIHRoZSBDREsgYmVmb3JlIGxvYWRpbmcgdGhlIHNjaGVtYXRpYyBmaWxlcyB0aGF0IGltcG9ydCBmcm9tIHRoZSBDREsuXG4gICAgY29uc3QgaW5zdGFsbFRhc2tJZCA9IGNvbnRleHQuYWRkVGFzayhuZXcgTm9kZVBhY2thZ2VJbnN0YWxsVGFzaygpKTtcblxuICAgIGNvbnRleHQuYWRkVGFzayhuZXcgUnVuU2NoZW1hdGljVGFzaygnbmctYWRkLXNldHVwLXByb2plY3QnLCBvcHRpb25zKSwgW2luc3RhbGxUYXNrSWRdKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,47 @@
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.getPackageVersionFromPackageJson = exports.addPackageToPackageJson = void 0;
11
+ /**
12
+ * Sorts the keys of the given object.
13
+ * @returns A new object instance with sorted keys
14
+ */
15
+ function sortObjectByKeys(obj) {
16
+ return Object.keys(obj).sort().reduce((result, key) => (result[key] = obj[key]) && result, {});
17
+ }
18
+ /** Adds a package to the package.json in the given host tree. */
19
+ function addPackageToPackageJson(host, pkg, version) {
20
+ if (host.exists('package.json')) {
21
+ const sourceText = host.read('package.json').toString('utf-8');
22
+ const json = JSON.parse(sourceText);
23
+ if (!json.dependencies) {
24
+ json.dependencies = {};
25
+ }
26
+ if (!json.dependencies[pkg]) {
27
+ json.dependencies[pkg] = version;
28
+ json.dependencies = sortObjectByKeys(json.dependencies);
29
+ }
30
+ host.overwrite('package.json', JSON.stringify(json, null, 2));
31
+ }
32
+ return host;
33
+ }
34
+ exports.addPackageToPackageJson = addPackageToPackageJson;
35
+ /** Gets the version of the specified package by looking at the package.json in the given tree. */
36
+ function getPackageVersionFromPackageJson(tree, name) {
37
+ if (!tree.exists('package.json')) {
38
+ return null;
39
+ }
40
+ const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
41
+ if (packageJson.dependencies && packageJson.dependencies[name]) {
42
+ return packageJson.dependencies[name];
43
+ }
44
+ return null;
45
+ }
46
+ exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvcGFja2FnZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBUUg7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFXO0lBQ25DLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakcsQ0FBQztBQUVELGlFQUFpRTtBQUNqRSxTQUFnQix1QkFBdUIsQ0FBQyxJQUFVLEVBQUUsR0FBVyxFQUFFLE9BQWU7SUFFOUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFnQixDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekQ7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvRDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQW5CRCwwREFtQkM7QUFFRCxrR0FBa0c7QUFDbEcsU0FBZ0IsZ0NBQWdDLENBQUMsSUFBVSxFQUFFLElBQVk7SUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQWdCLENBQUM7SUFFM0YsSUFBSSxXQUFXLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDOUQsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBWkQsNEVBWUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbmludGVyZmFjZSBQYWNrYWdlSnNvbiB7XG4gIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBTb3J0cyB0aGUga2V5cyBvZiB0aGUgZ2l2ZW4gb2JqZWN0LlxuICogQHJldHVybnMgQSBuZXcgb2JqZWN0IGluc3RhbmNlIHdpdGggc29ydGVkIGtleXNcbiAqL1xuZnVuY3Rpb24gc29ydE9iamVjdEJ5S2V5cyhvYmo6IG9iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5zb3J0KCkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4gKHJlc3VsdFtrZXldID0gb2JqW2tleV0pICYmIHJlc3VsdCwge30pO1xufVxuXG4vKiogQWRkcyBhIHBhY2thZ2UgdG8gdGhlIHBhY2thZ2UuanNvbiBpbiB0aGUgZ2l2ZW4gaG9zdCB0cmVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKGhvc3Q6IFRyZWUsIHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiBUcmVlIHtcblxuICBpZiAoaG9zdC5leGlzdHMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgY29uc3Qgc291cmNlVGV4dCA9IGhvc3QucmVhZCgncGFja2FnZS5qc29uJykhLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHNvdXJjZVRleHQpIGFzIFBhY2thZ2VKc29uO1xuXG4gICAgaWYgKCFqc29uLmRlcGVuZGVuY2llcykge1xuICAgICAganNvbi5kZXBlbmRlbmNpZXMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAoIWpzb24uZGVwZW5kZW5jaWVzW3BrZ10pIHtcbiAgICAgIGpzb24uZGVwZW5kZW5jaWVzW3BrZ10gPSB2ZXJzaW9uO1xuICAgICAganNvbi5kZXBlbmRlbmNpZXMgPSBzb3J0T2JqZWN0QnlLZXlzKGpzb24uZGVwZW5kZW5jaWVzKTtcbiAgICB9XG5cbiAgICBob3N0Lm92ZXJ3cml0ZSgncGFja2FnZS5qc29uJywgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMikpO1xuICB9XG5cbiAgcmV0dXJuIGhvc3Q7XG59XG5cbi8qKiBHZXRzIHRoZSB2ZXJzaW9uIG9mIHRoZSBzcGVjaWZpZWQgcGFja2FnZSBieSBsb29raW5nIGF0IHRoZSBwYWNrYWdlLmpzb24gaW4gdGhlIGdpdmVuIHRyZWUuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZVZlcnNpb25Gcm9tUGFja2FnZUpzb24odHJlZTogVHJlZSwgbmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghdHJlZS5leGlzdHMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UodHJlZS5yZWFkKCdwYWNrYWdlLmpzb24nKSEudG9TdHJpbmcoJ3V0ZjgnKSkgYXMgUGFja2FnZUpzb247XG5cbiAgaWYgKHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyAmJiBwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXNbbmFtZV0pIHtcbiAgICByZXR1cm4gcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzW25hbWVdO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -0,0 +1,10 @@
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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctYWRkL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgLyoqIE5hbWUgb2YgdGhlIHByb2plY3QuICovXG4gIHByb2plY3Q6IHN0cmluZztcblxuICAvKiogV2hldGhlciBBbmd1bGFyIGJyb3dzZXIgYW5pbWF0aW9ucyBzaG91bGQgYmUgc2V0IHVwLiAqL1xuICBhbmltYXRpb25zOiBib29sZWFuO1xuXG4gIC8qKiBOYW1lIG9mIHByZS1idWlsdCB0aGVtZSB0byBpbnN0YWxsLiAqL1xuICB0aGVtZTogJ2luZGlnby1waW5rJyB8ICdkZWVwcHVycGxlLWFtYmVyJyB8ICdwaW5rLWJsdWVncmV5JyB8ICdwdXJwbGUtZ3JlZW4nIHwgJ2N1c3RvbSc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2V0IHVwIGdsb2JhbCB0eXBvZ3JhcGh5IHN0eWxlcy4gKi9cbiAgdHlwb2dyYXBoeTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,121 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ const schematics_1 = require("@angular-devkit/schematics");
20
+ const schematics_2 = require("@angular/cdk/schematics");
21
+ const workspace_1 = require("@schematics/angular/utility/workspace");
22
+ const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
23
+ const material_fonts_1 = require("./fonts/material-fonts");
24
+ const theming_1 = require("./theming/theming");
25
+ /** Name of the Angular module that enables Angular browser animations. */
26
+ const browserAnimationsModuleName = 'BrowserAnimationsModule';
27
+ /** Name of the module that switches Angular animations to a noop implementation. */
28
+ const noopAnimationsModuleName = 'NoopAnimationsModule';
29
+ /**
30
+ * Scaffolds the basics of a Angular Material application, this includes:
31
+ * - Add Packages to package.json
32
+ * - Adds pre-built themes to styles.ext
33
+ * - Adds Browser Animation to app.module
34
+ */
35
+ function default_1(options) {
36
+ return (host, context) => __awaiter(this, void 0, void 0, function* () {
37
+ const workspace = yield workspace_1.getWorkspace(host);
38
+ const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
39
+ if (project.extensions.projectType === workspace_models_1.ProjectType.Application) {
40
+ return schematics_1.chain([
41
+ addAnimationsModule(options),
42
+ theming_1.addThemeToAppStyles(options),
43
+ material_fonts_1.addFontsToIndex(options),
44
+ addMaterialAppStyles(options),
45
+ theming_1.addTypographyClass(options),
46
+ ]);
47
+ }
48
+ context.logger.warn('Angular Material has been set up in your workspace. There is no additional setup ' +
49
+ 'required for consuming Angular Material in your library project.\n\n' +
50
+ 'If you intended to run the schematic on a different project, pass the `--project` ' +
51
+ 'option.');
52
+ return;
53
+ });
54
+ }
55
+ exports.default = default_1;
56
+ /**
57
+ * Adds an animation module to the root module of the specified project. In case the "animations"
58
+ * option is set to false, we still add the `NoopAnimationsModule` because otherwise various
59
+ * components of Angular Material will throw an exception.
60
+ */
61
+ function addAnimationsModule(options) {
62
+ return (host, context) => __awaiter(this, void 0, void 0, function* () {
63
+ const workspace = yield workspace_1.getWorkspace(host);
64
+ const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
65
+ const appModulePath = schematics_2.getAppModulePath(host, schematics_2.getProjectMainFile(project));
66
+ if (options.animations) {
67
+ // In case the project explicitly uses the NoopAnimationsModule, we should print a warning
68
+ // message that makes the user aware of the fact that we won't automatically set up
69
+ // animations. If we would add the BrowserAnimationsModule while the NoopAnimationsModule
70
+ // is already configured, we would cause unexpected behavior and runtime exceptions.
71
+ if (schematics_2.hasNgModuleImport(host, appModulePath, noopAnimationsModuleName)) {
72
+ context.logger.error(`Could not set up "${browserAnimationsModuleName}" ` +
73
+ `because "${noopAnimationsModuleName}" is already imported.`);
74
+ context.logger.info(`Please manually set up browser animations.`);
75
+ return;
76
+ }
77
+ schematics_2.addModuleImportToRootModule(host, browserAnimationsModuleName, '@angular/platform-browser/animations', project);
78
+ }
79
+ else if (!schematics_2.hasNgModuleImport(host, appModulePath, browserAnimationsModuleName)) {
80
+ // Do not add the NoopAnimationsModule module if the project already explicitly uses
81
+ // the BrowserAnimationsModule.
82
+ schematics_2.addModuleImportToRootModule(host, noopAnimationsModuleName, '@angular/platform-browser/animations', project);
83
+ }
84
+ });
85
+ }
86
+ /**
87
+ * Adds custom Material styles to the project style file. The custom CSS sets up the Roboto font
88
+ * and reset the default browser body margin.
89
+ */
90
+ function addMaterialAppStyles(options) {
91
+ return (host, context) => __awaiter(this, void 0, void 0, function* () {
92
+ const workspace = yield workspace_1.getWorkspace(host);
93
+ const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
94
+ const styleFilePath = schematics_2.getProjectStyleFile(project);
95
+ const logger = context.logger;
96
+ if (!styleFilePath) {
97
+ logger.error(`Could not find the default style file for this project.`);
98
+ logger.info(`Consider manually adding the Roboto font to your CSS.`);
99
+ logger.info(`More information at https://fonts.google.com/specimen/Roboto`);
100
+ return;
101
+ }
102
+ const buffer = host.read(styleFilePath);
103
+ if (!buffer) {
104
+ logger.error(`Could not read the default style file within the project ` +
105
+ `(${styleFilePath})`);
106
+ logger.info(`Please consider manually setting up the Roboto font.`);
107
+ return;
108
+ }
109
+ const htmlContent = buffer.toString();
110
+ const insertion = '\n' +
111
+ `html, body { height: 100%; }\n` +
112
+ `body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }\n`;
113
+ if (htmlContent.includes(insertion)) {
114
+ return;
115
+ }
116
+ const recorder = host.beginUpdate(styleFilePath);
117
+ recorder.insertLeft(htmlContent.length, insertion);
118
+ host.commitUpdate(recorder);
119
+ });
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9zY2hlbWF0aWNzL25nLWFkZC9zZXR1cC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7O0FBRUgsMkRBQStFO0FBQy9FLHdEQU9pQztBQUNqQyxxRUFBbUU7QUFDbkUsbUZBQXlFO0FBQ3pFLDJEQUF1RDtBQUV2RCwrQ0FBMEU7QUFFMUUsMEVBQTBFO0FBQzFFLE1BQU0sMkJBQTJCLEdBQUcseUJBQXlCLENBQUM7QUFFOUQsb0ZBQW9GO0FBQ3BGLE1BQU0sd0JBQXdCLEdBQUcsc0JBQXNCLENBQUM7QUFFeEQ7Ozs7O0dBS0c7QUFDSCxtQkFBd0IsT0FBZTtJQUNyQyxPQUFPLENBQU8sSUFBVSxFQUFFLE9BQXlCLEVBQUUsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxNQUFNLHdCQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsb0NBQXVCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLDhCQUFXLENBQUMsV0FBVyxFQUFFO1lBQzlELE9BQU8sa0JBQUssQ0FBQztnQkFDWCxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7Z0JBQzVCLDZCQUFtQixDQUFDLE9BQU8sQ0FBQztnQkFDNUIsZ0NBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hCLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztnQkFDN0IsNEJBQWtCLENBQUMsT0FBTyxDQUFDO2FBQzVCLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2YsbUZBQW1GO1lBQ25GLHNFQUFzRTtZQUN0RSxvRkFBb0Y7WUFDcEYsU0FBUyxDQUFDLENBQUM7UUFDZixPQUFPO0lBQ1QsQ0FBQyxDQUFBLENBQUM7QUFDSixDQUFDO0FBckJELDRCQXFCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLE9BQWU7SUFDMUMsT0FBTyxDQUFPLElBQVUsRUFBRSxPQUF5QixFQUFFLEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsTUFBTSx3QkFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLG9DQUF1QixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsNkJBQWdCLENBQUMsSUFBSSxFQUFFLCtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFMUUsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RCLDBGQUEwRjtZQUMxRixtRkFBbUY7WUFDbkYseUZBQXlGO1lBQ3pGLG9GQUFvRjtZQUNwRixJQUFJLDhCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsd0JBQXdCLENBQUMsRUFBRTtnQkFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2hCLHFCQUFxQiwyQkFBMkIsSUFBSTtvQkFDcEQsWUFBWSx3QkFBd0Isd0JBQXdCLENBQUMsQ0FBQztnQkFDbEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNENBQTRDLENBQUMsQ0FBQztnQkFDbEUsT0FBTzthQUNSO1lBRUQsd0NBQTJCLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUN6RCxzQ0FBc0MsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksQ0FBQyw4QkFBaUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixDQUFDLEVBQUU7WUFDL0Usb0ZBQW9GO1lBQ3BGLCtCQUErQjtZQUMvQix3Q0FBMkIsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQ3hELHNDQUFzQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQyxDQUFBLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FBQyxPQUFlO0lBQzNDLE9BQU8sQ0FBTyxJQUFVLEVBQUUsT0FBeUIsRUFBRSxFQUFFO1FBQ3JELE1BQU0sU0FBUyxHQUFHLE1BQU0sd0JBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxvQ0FBdUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sYUFBYSxHQUFHLGdDQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFOUIsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDeEUsTUFBTSxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsOERBQThELENBQUMsQ0FBQztZQUM1RSxPQUFPO1NBQ1I7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLDJEQUEyRDtnQkFDdEUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUNwRSxPQUFPO1NBQ1I7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSTtZQUNwQixnQ0FBZ0M7WUFDaEMsMEVBQTBFLENBQUM7UUFFN0UsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakQsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFBLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Y2hhaW4sIFJ1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7XG4gIGFkZE1vZHVsZUltcG9ydFRvUm9vdE1vZHVsZSxcbiAgZ2V0QXBwTW9kdWxlUGF0aCxcbiAgZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2UsXG4gIGdldFByb2plY3RNYWluRmlsZSxcbiAgZ2V0UHJvamVjdFN0eWxlRmlsZSxcbiAgaGFzTmdNb2R1bGVJbXBvcnQsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY2hlbWF0aWNzJztcbmltcG9ydCB7Z2V0V29ya3NwYWNlfSBmcm9tICdAc2NoZW1hdGljcy9hbmd1bGFyL3V0aWxpdHkvd29ya3NwYWNlJztcbmltcG9ydCB7UHJvamVjdFR5cGV9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS93b3Jrc3BhY2UtbW9kZWxzJztcbmltcG9ydCB7YWRkRm9udHNUb0luZGV4fSBmcm9tICcuL2ZvbnRzL21hdGVyaWFsLWZvbnRzJztcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQge2FkZFRoZW1lVG9BcHBTdHlsZXMsIGFkZFR5cG9ncmFwaHlDbGFzc30gZnJvbSAnLi90aGVtaW5nL3RoZW1pbmcnO1xuXG4vKiogTmFtZSBvZiB0aGUgQW5ndWxhciBtb2R1bGUgdGhhdCBlbmFibGVzIEFuZ3VsYXIgYnJvd3NlciBhbmltYXRpb25zLiAqL1xuY29uc3QgYnJvd3NlckFuaW1hdGlvbnNNb2R1bGVOYW1lID0gJ0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlJztcblxuLyoqIE5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IHN3aXRjaGVzIEFuZ3VsYXIgYW5pbWF0aW9ucyB0byBhIG5vb3AgaW1wbGVtZW50YXRpb24uICovXG5jb25zdCBub29wQW5pbWF0aW9uc01vZHVsZU5hbWUgPSAnTm9vcEFuaW1hdGlvbnNNb2R1bGUnO1xuXG4vKipcbiAqIFNjYWZmb2xkcyB0aGUgYmFzaWNzIG9mIGEgQW5ndWxhciBNYXRlcmlhbCBhcHBsaWNhdGlvbiwgdGhpcyBpbmNsdWRlczpcbiAqICAtIEFkZCBQYWNrYWdlcyB0byBwYWNrYWdlLmpzb25cbiAqICAtIEFkZHMgcHJlLWJ1aWx0IHRoZW1lcyB0byBzdHlsZXMuZXh0XG4gKiAgLSBBZGRzIEJyb3dzZXIgQW5pbWF0aW9uIHRvIGFwcC5tb2R1bGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ob3B0aW9uczogU2NoZW1hKTogUnVsZSB7XG4gIHJldHVybiBhc3luYyAoaG9zdDogVHJlZSwgY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHdvcmtzcGFjZSA9IGF3YWl0IGdldFdvcmtzcGFjZShob3N0KTtcbiAgICBjb25zdCBwcm9qZWN0ID0gZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlLCBvcHRpb25zLnByb2plY3QpO1xuXG4gICAgaWYgKHByb2plY3QuZXh0ZW5zaW9ucy5wcm9qZWN0VHlwZSA9PT0gUHJvamVjdFR5cGUuQXBwbGljYXRpb24pIHtcbiAgICAgIHJldHVybiBjaGFpbihbXG4gICAgICAgIGFkZEFuaW1hdGlvbnNNb2R1bGUob3B0aW9ucyksXG4gICAgICAgIGFkZFRoZW1lVG9BcHBTdHlsZXMob3B0aW9ucyksXG4gICAgICAgIGFkZEZvbnRzVG9JbmRleChvcHRpb25zKSxcbiAgICAgICAgYWRkTWF0ZXJpYWxBcHBTdHlsZXMob3B0aW9ucyksXG4gICAgICAgIGFkZFR5cG9ncmFwaHlDbGFzcyhvcHRpb25zKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICBjb250ZXh0LmxvZ2dlci53YXJuKFxuICAgICAgICAnQW5ndWxhciBNYXRlcmlhbCBoYXMgYmVlbiBzZXQgdXAgaW4geW91ciB3b3Jrc3BhY2UuIFRoZXJlIGlzIG5vIGFkZGl0aW9uYWwgc2V0dXAgJyArXG4gICAgICAgICdyZXF1aXJlZCBmb3IgY29uc3VtaW5nIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBsaWJyYXJ5IHByb2plY3QuXFxuXFxuJyArXG4gICAgICAgICdJZiB5b3UgaW50ZW5kZWQgdG8gcnVuIHRoZSBzY2hlbWF0aWMgb24gYSBkaWZmZXJlbnQgcHJvamVjdCwgcGFzcyB0aGUgYC0tcHJvamVjdGAgJyArXG4gICAgICAgICdvcHRpb24uJyk7XG4gICAgcmV0dXJuO1xuICB9O1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYW5pbWF0aW9uIG1vZHVsZSB0byB0aGUgcm9vdCBtb2R1bGUgb2YgdGhlIHNwZWNpZmllZCBwcm9qZWN0LiBJbiBjYXNlIHRoZSBcImFuaW1hdGlvbnNcIlxuICogb3B0aW9uIGlzIHNldCB0byBmYWxzZSwgd2Ugc3RpbGwgYWRkIHRoZSBgTm9vcEFuaW1hdGlvbnNNb2R1bGVgIGJlY2F1c2Ugb3RoZXJ3aXNlIHZhcmlvdXNcbiAqIGNvbXBvbmVudHMgb2YgQW5ndWxhciBNYXRlcmlhbCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYWRkQW5pbWF0aW9uc01vZHVsZShvcHRpb25zOiBTY2hlbWEpIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlKGhvc3QpO1xuICAgIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG4gICAgY29uc3QgYXBwTW9kdWxlUGF0aCA9IGdldEFwcE1vZHVsZVBhdGgoaG9zdCwgZ2V0UHJvamVjdE1haW5GaWxlKHByb2plY3QpKTtcblxuICAgIGlmIChvcHRpb25zLmFuaW1hdGlvbnMpIHtcbiAgICAgIC8vIEluIGNhc2UgdGhlIHByb2plY3QgZXhwbGljaXRseSB1c2VzIHRoZSBOb29wQW5pbWF0aW9uc01vZHVsZSwgd2Ugc2hvdWxkIHByaW50IGEgd2FybmluZ1xuICAgICAgLy8gbWVzc2FnZSB0aGF0IG1ha2VzIHRoZSB1c2VyIGF3YXJlIG9mIHRoZSBmYWN0IHRoYXQgd2Ugd29uJ3QgYXV0b21hdGljYWxseSBzZXQgdXBcbiAgICAgIC8vIGFuaW1hdGlvbnMuIElmIHdlIHdvdWxkIGFkZCB0aGUgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgd2hpbGUgdGhlIE5vb3BBbmltYXRpb25zTW9kdWxlXG4gICAgICAvLyBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQsIHdlIHdvdWxkIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIHJ1bnRpbWUgZXhjZXB0aW9ucy5cbiAgICAgIGlmIChoYXNOZ01vZHVsZUltcG9ydChob3N0LCBhcHBNb2R1bGVQYXRoLCBub29wQW5pbWF0aW9uc01vZHVsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgYENvdWxkIG5vdCBzZXQgdXAgXCIke2Jyb3dzZXJBbmltYXRpb25zTW9kdWxlTmFtZX1cIiBgICtcbiAgICAgICAgICAgIGBiZWNhdXNlIFwiJHtub29wQW5pbWF0aW9uc01vZHVsZU5hbWV9XCIgaXMgYWxyZWFkeSBpbXBvcnRlZC5gKTtcbiAgICAgICAgY29udGV4dC5sb2dnZXIuaW5mbyhgUGxlYXNlIG1hbnVhbGx5IHNldCB1cCBicm93c2VyIGFuaW1hdGlvbnMuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYWRkTW9kdWxlSW1wb3J0VG9Sb290TW9kdWxlKGhvc3QsIGJyb3dzZXJBbmltYXRpb25zTW9kdWxlTmFtZSxcbiAgICAgICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJywgcHJvamVjdCk7XG4gICAgfSBlbHNlIGlmICghaGFzTmdNb2R1bGVJbXBvcnQoaG9zdCwgYXBwTW9kdWxlUGF0aCwgYnJvd3NlckFuaW1hdGlvbnNNb2R1bGVOYW1lKSkge1xuICAgICAgLy8gRG8gbm90IGFkZCB0aGUgTm9vcEFuaW1hdGlvbnNNb2R1bGUgbW9kdWxlIGlmIHRoZSBwcm9qZWN0IGFscmVhZHkgZXhwbGljaXRseSB1c2VzXG4gICAgICAvLyB0aGUgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUuXG4gICAgICBhZGRNb2R1bGVJbXBvcnRUb1Jvb3RNb2R1bGUoaG9zdCwgbm9vcEFuaW1hdGlvbnNNb2R1bGVOYW1lLFxuICAgICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJywgcHJvamVjdCk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEFkZHMgY3VzdG9tIE1hdGVyaWFsIHN0eWxlcyB0byB0aGUgcHJvamVjdCBzdHlsZSBmaWxlLiBUaGUgY3VzdG9tIENTUyBzZXRzIHVwIHRoZSBSb2JvdG8gZm9udFxuICogYW5kIHJlc2V0IHRoZSBkZWZhdWx0IGJyb3dzZXIgYm9keSBtYXJnaW4uXG4gKi9cbmZ1bmN0aW9uIGFkZE1hdGVyaWFsQXBwU3R5bGVzKG9wdGlvbnM6IFNjaGVtYSkge1xuICByZXR1cm4gYXN5bmMgKGhvc3Q6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSBhd2FpdCBnZXRXb3Jrc3BhY2UoaG9zdCk7XG4gICAgY29uc3QgcHJvamVjdCA9IGdldFByb2plY3RGcm9tV29ya3NwYWNlKHdvcmtzcGFjZSwgb3B0aW9ucy5wcm9qZWN0KTtcbiAgICBjb25zdCBzdHlsZUZpbGVQYXRoID0gZ2V0UHJvamVjdFN0eWxlRmlsZShwcm9qZWN0KTtcbiAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlcjtcblxuICAgIGlmICghc3R5bGVGaWxlUGF0aCkge1xuICAgICAgbG9nZ2VyLmVycm9yKGBDb3VsZCBub3QgZmluZCB0aGUgZGVmYXVsdCBzdHlsZSBmaWxlIGZvciB0aGlzIHByb2plY3QuYCk7XG4gICAgICBsb2dnZXIuaW5mbyhgQ29uc2lkZXIgbWFudWFsbHkgYWRkaW5nIHRoZSBSb2JvdG8gZm9udCB0byB5b3VyIENTUy5gKTtcbiAgICAgIGxvZ2dlci5pbmZvKGBNb3JlIGluZm9ybWF0aW9uIGF0IGh0dHBzOi8vZm9udHMuZ29vZ2xlLmNvbS9zcGVjaW1lbi9Sb2JvdG9gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBob3N0LnJlYWQoc3R5bGVGaWxlUGF0aCk7XG5cbiAgICBpZiAoIWJ1ZmZlcikge1xuICAgICAgbG9nZ2VyLmVycm9yKGBDb3VsZCBub3QgcmVhZCB0aGUgZGVmYXVsdCBzdHlsZSBmaWxlIHdpdGhpbiB0aGUgcHJvamVjdCBgICtcbiAgICAgICAgYCgke3N0eWxlRmlsZVBhdGh9KWApO1xuICAgICAgbG9nZ2VyLmluZm8oYFBsZWFzZSBjb25zaWRlciBtYW51YWxseSBzZXR0aW5nIHVwIHRoZSBSb2JvdG8gZm9udC5gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBodG1sQ29udGVudCA9IGJ1ZmZlci50b1N0cmluZygpO1xuICAgIGNvbnN0IGluc2VydGlvbiA9ICdcXG4nICtcbiAgICAgIGBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XFxuYCArXG4gICAgICBgYm9keSB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XFxuYDtcblxuICAgIGlmIChodG1sQ29udGVudC5pbmNsdWRlcyhpbnNlcnRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjb3JkZXIgPSBob3N0LmJlZ2luVXBkYXRlKHN0eWxlRmlsZVBhdGgpO1xuXG4gICAgcmVjb3JkZXIuaW5zZXJ0TGVmdChodG1sQ29udGVudC5sZW5ndGgsIGluc2VydGlvbik7XG4gICAgaG9zdC5jb21taXRVcGRhdGUocmVjb3JkZXIpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,51 @@
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.createCustomTheme = void 0;
11
+ /** Create custom theme for the given application configuration. */
12
+ function createCustomTheme(name = 'app') {
13
+ return `
14
+ // Custom Theming for Angular Material
15
+ // For more information: https://material.angular.io/guide/theming
16
+ @use '~@angular/material' as mat;
17
+ // Plus imports for other components in your app.
18
+
19
+ // Include the common styles for Angular Material. We include this here so that you only
20
+ // have to load a single css file for Angular Material in your app.
21
+ // Be sure that you only ever include this mixin once!
22
+ @include mat.core();
23
+
24
+ // Define the palettes for your theme using the Material Design palettes available in palette.scss
25
+ // (imported above). For each palette, you can optionally specify a default, lighter, and darker
26
+ // hue. Available color palettes: https://material.io/design/color/
27
+ $${name}-primary: mat.define-palette(mat.$indigo-palette);
28
+ $${name}-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400);
29
+
30
+ // The warn palette is optional (defaults to red).
31
+ $${name}-warn: mat.define-palette(mat.$red-palette);
32
+
33
+ // Create the theme object. A theme consists of configurations for individual
34
+ // theming systems such as "color" or "typography".
35
+ $${name}-theme: mat.define-light-theme((
36
+ color: (
37
+ primary: $${name}-primary,
38
+ accent: $${name}-accent,
39
+ warn: $${name}-warn,
40
+ )
41
+ ));
42
+
43
+ // Include theme styles for core and each component used in your app.
44
+ // Alternatively, you can import and @include the theme mixins for each component
45
+ // that you are using.
46
+ @include mat.all-component-themes($${name}-theme);
47
+
48
+ `;
49
+ }
50
+ exports.createCustomTheme = createCustomTheme;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWN1c3RvbS10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9zY2hlbWF0aWNzL25nLWFkZC90aGVtaW5nL2NyZWF0ZS1jdXN0b20tdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsbUVBQW1FO0FBQ25FLFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsS0FBSztJQUN0RCxPQUFPOzs7Ozs7Ozs7Ozs7OztHQWNKLElBQUk7R0FDSixJQUFJOzs7R0FHSixJQUFJOzs7O0dBSUosSUFBSTs7Z0JBRVMsSUFBSTtlQUNMLElBQUk7YUFDTixJQUFJOzs7Ozs7O3FDQU9vQixJQUFJOztDQUV4QyxDQUFDO0FBQ0YsQ0FBQztBQXJDRCw4Q0FxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqIENyZWF0ZSBjdXN0b20gdGhlbWUgZm9yIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbVRoZW1lKG5hbWU6IHN0cmluZyA9ICdhcHAnKSB7XG5yZXR1cm4gYFxuLy8gQ3VzdG9tIFRoZW1pbmcgZm9yIEFuZ3VsYXIgTWF0ZXJpYWxcbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xuQHVzZSAnfkBhbmd1bGFyL21hdGVyaWFsJyBhcyBtYXQ7XG4vLyBQbHVzIGltcG9ydHMgZm9yIG90aGVyIGNvbXBvbmVudHMgaW4geW91ciBhcHAuXG5cbi8vIEluY2x1ZGUgdGhlIGNvbW1vbiBzdHlsZXMgZm9yIEFuZ3VsYXIgTWF0ZXJpYWwuIFdlIGluY2x1ZGUgdGhpcyBoZXJlIHNvIHRoYXQgeW91IG9ubHlcbi8vIGhhdmUgdG8gbG9hZCBhIHNpbmdsZSBjc3MgZmlsZSBmb3IgQW5ndWxhciBNYXRlcmlhbCBpbiB5b3VyIGFwcC5cbi8vIEJlIHN1cmUgdGhhdCB5b3Ugb25seSBldmVyIGluY2x1ZGUgdGhpcyBtaXhpbiBvbmNlIVxuQGluY2x1ZGUgbWF0LmNvcmUoKTtcblxuLy8gRGVmaW5lIHRoZSBwYWxldHRlcyBmb3IgeW91ciB0aGVtZSB1c2luZyB0aGUgTWF0ZXJpYWwgRGVzaWduIHBhbGV0dGVzIGF2YWlsYWJsZSBpbiBwYWxldHRlLnNjc3Ncbi8vIChpbXBvcnRlZCBhYm92ZSkuIEZvciBlYWNoIHBhbGV0dGUsIHlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgZGVmYXVsdCwgbGlnaHRlciwgYW5kIGRhcmtlclxuLy8gaHVlLiBBdmFpbGFibGUgY29sb3IgcGFsZXR0ZXM6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuJCR7bmFtZX0tcHJpbWFyeTogbWF0LmRlZmluZS1wYWxldHRlKG1hdC4kaW5kaWdvLXBhbGV0dGUpO1xuJCR7bmFtZX0tYWNjZW50OiBtYXQuZGVmaW5lLXBhbGV0dGUobWF0LiRwaW5rLXBhbGV0dGUsIEEyMDAsIEExMDAsIEE0MDApO1xuXG4vLyBUaGUgd2FybiBwYWxldHRlIGlzIG9wdGlvbmFsIChkZWZhdWx0cyB0byByZWQpLlxuJCR7bmFtZX0td2FybjogbWF0LmRlZmluZS1wYWxldHRlKG1hdC4kcmVkLXBhbGV0dGUpO1xuXG4vLyBDcmVhdGUgdGhlIHRoZW1lIG9iamVjdC4gQSB0aGVtZSBjb25zaXN0cyBvZiBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbFxuLy8gdGhlbWluZyBzeXN0ZW1zIHN1Y2ggYXMgXCJjb2xvclwiIG9yIFwidHlwb2dyYXBoeVwiLlxuJCR7bmFtZX0tdGhlbWU6IG1hdC5kZWZpbmUtbGlnaHQtdGhlbWUoKFxuICBjb2xvcjogKFxuICAgIHByaW1hcnk6ICQke25hbWV9LXByaW1hcnksXG4gICAgYWNjZW50OiAkJHtuYW1lfS1hY2NlbnQsXG4gICAgd2FybjogJCR7bmFtZX0td2FybixcbiAgKVxuKSk7XG5cbi8vIEluY2x1ZGUgdGhlbWUgc3R5bGVzIGZvciBjb3JlIGFuZCBlYWNoIGNvbXBvbmVudCB1c2VkIGluIHlvdXIgYXBwLlxuLy8gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBpbXBvcnQgYW5kIEBpbmNsdWRlIHRoZSB0aGVtZSBtaXhpbnMgZm9yIGVhY2ggY29tcG9uZW50XG4vLyB0aGF0IHlvdSBhcmUgdXNpbmcuXG5AaW5jbHVkZSBtYXQuYWxsLWNvbXBvbmVudC10aGVtZXMoJCR7bmFtZX0tdGhlbWUpO1xuXG5gO1xufVxuIl19