jqwidgets-ng 23.0.7 → 23.1.0
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.
- package/jqwidgets/jqx-all.js +17 -9
- package/jqwidgets/jqxangular.js +1 -1
- package/jqwidgets/jqxbarcode.js +3 -1
- package/jqwidgets/jqxbargauge.js +1 -1
- package/jqwidgets/jqxbulletchart.js +1 -1
- package/jqwidgets/jqxbuttongroup.js +1 -1
- package/jqwidgets/jqxbuttons.js +1 -1
- package/jqwidgets/jqxcalendar.js +1 -1
- package/jqwidgets/jqxchart.annotations.js +1 -1
- package/jqwidgets/jqxchart.api.js +1 -1
- package/jqwidgets/jqxchart.core.js +2 -2
- package/jqwidgets/jqxchart.js +2 -2
- package/jqwidgets/jqxchart.rangeselector.js +1 -1
- package/jqwidgets/jqxchart.waterfall.js +1 -1
- package/jqwidgets/jqxcheckbox.js +1 -1
- package/jqwidgets/jqxcheckboxgroup.js +3 -1
- package/jqwidgets/jqxcolorpicker.js +1 -1
- package/jqwidgets/jqxcombobox.js +1 -1
- package/jqwidgets/jqxcomplexinput.js +1 -1
- package/jqwidgets/jqxcore.js +1 -1
- package/jqwidgets/jqxdata.export.js +1 -1
- package/jqwidgets/jqxdata.js +1 -1
- package/jqwidgets/jqxdatatable.js +2 -2
- package/jqwidgets/jqxdate.js +1 -1
- package/jqwidgets/jqxdatetimeinput.js +1 -1
- package/jqwidgets/jqxdocking.js +1 -1
- package/jqwidgets/jqxdockinglayout.js +1 -1
- package/jqwidgets/jqxdockpanel.js +1 -1
- package/jqwidgets/jqxdragdrop.js +1 -1
- package/jqwidgets/jqxdraw.js +1 -1
- package/jqwidgets/jqxdropdownbutton.js +1 -1
- package/jqwidgets/jqxdropdownlist.js +1 -1
- package/jqwidgets/jqxeditor.js +1 -1
- package/jqwidgets/jqxexpander.js +1 -1
- package/jqwidgets/jqxfileupload.js +1 -1
- package/jqwidgets/jqxform.js +1 -1
- package/jqwidgets/jqxformattedinput.js +1 -1
- package/jqwidgets/jqxgantt.js +1 -1
- package/jqwidgets/jqxgauge.js +1 -1
- package/jqwidgets/jqxgrid.aggregates.js +1 -1
- package/jqwidgets/jqxgrid.columnsreorder.js +1 -1
- package/jqwidgets/jqxgrid.columnsresize.js +2 -2
- package/jqwidgets/jqxgrid.edit.js +1 -1
- package/jqwidgets/jqxgrid.export.js +1 -1
- package/jqwidgets/jqxgrid.filter.js +2 -2
- package/jqwidgets/jqxgrid.grouping.js +1 -1
- package/jqwidgets/jqxgrid.js +2 -2
- package/jqwidgets/jqxgrid.pager.js +1 -1
- package/jqwidgets/jqxgrid.selection.js +1 -1
- package/jqwidgets/jqxgrid.sort.js +1 -1
- package/jqwidgets/jqxgrid.storage.js +2 -2
- package/jqwidgets/jqxheatmap.js +1 -1
- package/jqwidgets/jqxinput.js +1 -1
- package/jqwidgets/jqxkanban.js +1 -1
- package/jqwidgets/jqxknob.js +1 -1
- package/jqwidgets/jqxknockout.js +1 -1
- package/jqwidgets/jqxlayout.js +1 -1
- package/jqwidgets/jqxlistbox.js +1 -1
- package/jqwidgets/jqxlistmenu.js +1 -1
- package/jqwidgets/jqxloader.js +1 -1
- package/jqwidgets/jqxmaskedinput.js +1 -1
- package/jqwidgets/jqxmenu.js +1 -1
- package/jqwidgets/jqxnavbar.js +1 -1
- package/jqwidgets/jqxnavigationbar.js +1 -1
- package/jqwidgets/jqxnotification.js +1 -1
- package/jqwidgets/jqxnumberinput.js +1 -1
- package/jqwidgets/jqxpanel.js +1 -1
- package/jqwidgets/jqxpasswordinput.js +1 -1
- package/jqwidgets/jqxpivot.js +1 -1
- package/jqwidgets/jqxpivotdesigner.js +1 -1
- package/jqwidgets/jqxpivotgrid.js +1 -1
- package/jqwidgets/jqxpopover.js +1 -1
- package/jqwidgets/jqxprogressbar.js +1 -1
- package/jqwidgets/jqxqrcode.js +3 -1
- package/jqwidgets/jqxradiobutton.js +1 -1
- package/jqwidgets/jqxradiobuttongroup.js +3 -1
- package/jqwidgets/jqxrangeselector.js +1 -1
- package/jqwidgets/jqxrating.js +1 -1
- package/jqwidgets/jqxresponsivepanel.js +1 -1
- package/jqwidgets/jqxribbon.js +1 -1
- package/jqwidgets/jqxscheduler.api.js +1 -1
- package/jqwidgets/jqxscheduler.js +2 -2
- package/jqwidgets/jqxscrollbar.js +1 -1
- package/jqwidgets/jqxscrollview.js +1 -1
- package/jqwidgets/jqxslider.js +1 -1
- package/jqwidgets/jqxsortable.js +1 -1
- package/jqwidgets/jqxsplitlayout.js +1 -1
- package/jqwidgets/jqxsplitter.js +1 -1
- package/jqwidgets/jqxswitchbutton.js +1 -1
- package/jqwidgets/jqxtabs.js +1 -1
- package/jqwidgets/jqxtagcloud.js +1 -1
- package/jqwidgets/jqxtextarea.js +1 -1
- package/jqwidgets/jqxtimeline.js +1 -1
- package/jqwidgets/jqxtimepicker.js +1 -1
- package/jqwidgets/jqxtoolbar.js +1 -1
- package/jqwidgets/jqxtooltip.js +1 -1
- package/jqwidgets/jqxtouch.js +1 -1
- package/jqwidgets/jqxtree.js +1 -1
- package/jqwidgets/jqxtreegrid.js +1 -1
- package/jqwidgets/jqxtreemap.js +1 -1
- package/jqwidgets/jqxvalidator.js +1 -1
- package/jqwidgets/jqxwindow.js +2 -2
- package/jqwidgets/modules/jqxbarcode.js +6 -2
- package/jqwidgets/modules/jqxbargauge.js +8 -2
- package/jqwidgets/modules/jqxbulletchart.js +11 -3
- package/jqwidgets/modules/jqxbuttongroup.js +9 -3
- package/jqwidgets/modules/jqxbuttons.js +6 -2
- package/jqwidgets/modules/jqxcalendar.js +11 -3
- package/jqwidgets/modules/jqxchart.js +35 -5
- package/jqwidgets/modules/jqxcheckbox.js +12 -4
- package/jqwidgets/modules/jqxcheckboxgroup.js +12 -4
- package/jqwidgets/modules/jqxcolorpicker.js +15 -5
- package/jqwidgets/modules/jqxcombobox.js +20 -6
- package/jqwidgets/modules/jqxcomplexinput.js +9 -3
- package/jqwidgets/modules/jqxdatatable.js +70 -14
- package/jqwidgets/modules/jqxdatetimeinput.js +36 -10
- package/jqwidgets/modules/jqxdocking.js +19 -5
- package/jqwidgets/modules/jqxdockinglayout.js +30 -8
- package/jqwidgets/modules/jqxdockpanel.js +9 -3
- package/jqwidgets/modules/jqxdragdrop.js +10 -2
- package/jqwidgets/modules/jqxdraw.js +5 -1
- package/jqwidgets/modules/jqxdropdownbutton.js +9 -3
- package/jqwidgets/modules/jqxdropdownlist.js +34 -10
- package/jqwidgets/modules/jqxeditor.js +57 -15
- package/jqwidgets/modules/jqxexpander.js +15 -5
- package/jqwidgets/modules/jqxfileupload.js +12 -4
- package/jqwidgets/modules/jqxform.js +45 -13
- package/jqwidgets/modules/jqxformattedinput.js +35 -11
- package/jqwidgets/modules/jqxgantt.js +6 -2
- package/jqwidgets/modules/jqxgauge.js +14 -4
- package/jqwidgets/modules/jqxgrid.js +652 -571
- package/jqwidgets/modules/jqxheatmap.js +9 -3
- package/jqwidgets/modules/jqxinput.js +11 -3
- package/jqwidgets/modules/jqxkanban.js +47 -13
- package/jqwidgets/modules/jqxknob.js +11 -3
- package/jqwidgets/modules/jqxlayout.js +30 -8
- package/jqwidgets/modules/jqxlineargauge.js +14 -4
- package/jqwidgets/modules/jqxlinkbutton.js +6 -2
- package/jqwidgets/modules/jqxlistbox.js +22 -6
- package/jqwidgets/modules/jqxlistmenu.js +43 -13
- package/jqwidgets/modules/jqxloader.js +6 -2
- package/jqwidgets/modules/jqxmaskedinput.js +6 -2
- package/jqwidgets/modules/jqxmenu.js +20 -6
- package/jqwidgets/modules/jqxnavbar.js +15 -5
- package/jqwidgets/modules/jqxnavigationbar.js +26 -8
- package/jqwidgets/modules/jqxnotification.js +17 -5
- package/jqwidgets/modules/jqxnumberinput.js +26 -8
- package/jqwidgets/modules/jqxpanel.js +14 -4
- package/jqwidgets/modules/jqxpasswordinput.js +16 -4
- package/jqwidgets/modules/jqxpivotdesigner.js +60 -16
- package/jqwidgets/modules/jqxpivotgrid.js +60 -16
- package/jqwidgets/modules/jqxpopover.js +9 -3
- package/jqwidgets/modules/jqxprogressbar.js +6 -2
- package/jqwidgets/modules/jqxqrcode.js +14 -4
- package/jqwidgets/modules/jqxradiobutongroup.js +12 -4
- package/jqwidgets/modules/jqxradiobutton.js +9 -3
- package/jqwidgets/modules/jqxrangeselector.js +11 -3
- package/jqwidgets/modules/jqxrating.js +9 -3
- package/jqwidgets/modules/jqxrepeatbutton.js +6 -2
- package/jqwidgets/modules/jqxresponsivepanel.js +9 -3
- package/jqwidgets/modules/jqxribbon.js +12 -4
- package/jqwidgets/modules/jqxscheduler.js +94 -20
- package/jqwidgets/modules/jqxscrollbar.js +8 -2
- package/jqwidgets/modules/jqxscrollview.js +8 -2
- package/jqwidgets/modules/jqxslider.js +8 -2
- package/jqwidgets/modules/jqxsortable.js +8 -2
- package/jqwidgets/modules/jqxsplitlayout.js +7 -1
- package/jqwidgets/modules/jqxsplitter.js +8 -2
- package/jqwidgets/modules/jqxswitchbutton.js +13 -3
- package/jqwidgets/modules/jqxtabs.js +22 -6
- package/jqwidgets/modules/jqxtagcloud.js +16 -4
- package/jqwidgets/modules/jqxtextarea.js +16 -4
- package/jqwidgets/modules/jqxtimeline.js +6 -2
- package/jqwidgets/modules/jqxtimepicker.js +7 -1
- package/jqwidgets/modules/jqxtogglebutton.js +6 -2
- package/jqwidgets/modules/jqxtoolbar.js +45 -13
- package/jqwidgets/modules/jqxtooltip.js +5 -1
- package/jqwidgets/modules/jqxtree.js +21 -5
- package/jqwidgets/modules/jqxtreegrid.js +72 -14
- package/jqwidgets/modules/jqxtreemap.js +10 -2
- package/jqwidgets/modules/jqxvalidator.js +13 -3
- package/jqwidgets/modules/jqxwindow.js +16 -4
- package/jqwidgets/styles/jqx.base.css +5 -1
- package/package.json +1 -1
- package/schematics/cdk/schematics/index.d.ts +1 -1
- package/schematics/cdk/schematics/index.js +2 -2
- package/schematics/cdk/schematics/index.js.map +1 -0
- package/schematics/cdk/schematics/migration.json +4 -4
- package/schematics/cdk/schematics/ng-add/index.d.ts +1 -1
- package/schematics/cdk/schematics/ng-add/index.js +13 -21
- package/schematics/cdk/schematics/ng-add/index.js.map +1 -0
- package/schematics/cdk/schematics/ng-add/schema.d.ts +1 -1
- package/schematics/cdk/schematics/ng-add/schema.js +2 -2
- package/schematics/cdk/schematics/ng-add/schema.js.map +1 -0
- package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +6 -2
- package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +1 -1
- package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +5 -5
- package/schematics/cdk/schematics/ng-generate/drag-drop/index.d.ts +1 -1
- package/schematics/cdk/schematics/ng-generate/drag-drop/index.js +17 -8
- package/schematics/cdk/schematics/ng-generate/drag-drop/index.js.map +1 -0
- package/schematics/cdk/schematics/ng-generate/drag-drop/schema.d.ts +1 -1
- package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js +2 -2
- package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/attribute-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/class-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/class-names.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/class-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/constructor-checks.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/constructor-checks.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/constructor-checks.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/css-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/css-selectors.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/css-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/css-tokens.d.ts +27 -0
- package/schematics/cdk/schematics/ng-update/data/css-tokens.js +12 -0
- package/schematics/cdk/schematics/ng-update/data/css-tokens.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/element-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/element-selectors.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/element-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/index.d.ts +2 -1
- package/schematics/cdk/schematics/ng-update/data/index.js +3 -2
- package/schematics/cdk/schematics/ng-update/data/index.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/input-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/input-names.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/input-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/method-call-checks.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/method-call-checks.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/method-call-checks.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/output-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/output-names.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/output-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/property-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/property-names.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/property-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/data/symbol-removal.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/data/symbol-removal.js +2 -2
- package/schematics/cdk/schematics/ng-update/data/symbol-removal.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/devkit-file-system.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/devkit-file-system.js +3 -4
- package/schematics/cdk/schematics/ng-update/devkit-file-system.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/devkit-migration-rule.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js +19 -8
- package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/devkit-migration.d.ts +3 -3
- package/schematics/cdk/schematics/ng-update/devkit-migration.js +2 -2
- package/schematics/cdk/schematics/ng-update/devkit-migration.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/find-stylesheets.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/find-stylesheets.js +3 -4
- package/schematics/cdk/schematics/ng-update/find-stylesheets.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/html-parsing/angular.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/html-parsing/angular.js +7 -8
- package/schematics/cdk/schematics/ng-update/html-parsing/angular.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/html-parsing/elements.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/html-parsing/elements.js +8 -8
- package/schematics/cdk/schematics/ng-update/html-parsing/elements.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/index.d.ts +3 -3
- package/schematics/cdk/schematics/ng-update/index.js +6 -7
- package/schematics/cdk/schematics/ng-update/index.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js +12 -9
- package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/class-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/class-names.js +16 -13
- package/schematics/cdk/schematics/ng-update/migrations/class-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js +11 -8
- package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/css-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/css-tokens.d.ts +26 -0
- package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js +83 -0
- package/schematics/cdk/schematics/ng-update/migrations/css-tokens.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/element-selectors.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/input-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/input-names.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/input-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/misc-template.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/misc-template.js +7 -4
- package/schematics/cdk/schematics/ng-update/migrations/misc-template.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/output-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/output-names.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/output-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/property-names.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/property-names.js +9 -6
- package/schematics/cdk/schematics/ng-update/migrations/property-names.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js +11 -7
- package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/public-api.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/public-api.js +2 -2
- package/schematics/cdk/schematics/ng-update/public-api.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/typescript/base-types.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/typescript/base-types.js +3 -4
- package/schematics/cdk/schematics/ng-update/typescript/base-types.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/typescript/imports.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/typescript/imports.js +7 -8
- package/schematics/cdk/schematics/ng-update/typescript/imports.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/typescript/literal.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/typescript/literal.js +4 -5
- package/schematics/cdk/schematics/ng-update/typescript/literal.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.d.ts +1 -1
- package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js +5 -5
- package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
- package/schematics/cdk/schematics/ng-update/upgrade-data.d.ts +3 -2
- package/schematics/cdk/schematics/ng-update/upgrade-data.js +5 -4
- package/schematics/cdk/schematics/ng-update/upgrade-data.js.map +1 -0
- package/schematics/cdk/schematics/paths.d.ts +1 -1
- package/schematics/cdk/schematics/paths.js +2 -2
- package/schematics/cdk/schematics/paths.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/component-resource-collector.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/component-resource-collector.js +4 -6
- package/schematics/cdk/schematics/update-tool/component-resource-collector.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/file-system.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/file-system.js +2 -2
- package/schematics/cdk/schematics/update-tool/file-system.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/index.d.ts +2 -2
- package/schematics/cdk/schematics/update-tool/index.js +4 -10
- package/schematics/cdk/schematics/update-tool/index.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/logger.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/logger.js +2 -2
- package/schematics/cdk/schematics/update-tool/logger.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/migration.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/migration.js +4 -11
- package/schematics/cdk/schematics/update-tool/migration.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/public-api.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/public-api.js +2 -2
- package/schematics/cdk/schematics/update-tool/public-api.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/target-version.d.ts +2 -2
- package/schematics/cdk/schematics/update-tool/target-version.js +5 -6
- package/schematics/cdk/schematics/update-tool/target-version.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/update-recorder.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/update-recorder.js +2 -2
- package/schematics/cdk/schematics/update-tool/update-recorder.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/decorators.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/decorators.js +4 -5
- package/schematics/cdk/schematics/update-tool/utils/decorators.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/diagnostics.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/diagnostics.js +3 -4
- package/schematics/cdk/schematics/update-tool/utils/diagnostics.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/functions.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/functions.js +3 -4
- package/schematics/cdk/schematics/update-tool/utils/functions.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/imports.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/imports.js +3 -4
- package/schematics/cdk/schematics/update-tool/utils/imports.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/line-mappings.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/line-mappings.js +4 -5
- package/schematics/cdk/schematics/update-tool/utils/line-mappings.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js +4 -4
- package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/property-name.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/property-name.js +4 -5
- package/schematics/cdk/schematics/update-tool/utils/property-name.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/utils/virtual-host.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/utils/virtual-host.js +6 -7
- package/schematics/cdk/schematics/update-tool/utils/virtual-host.js.map +1 -0
- package/schematics/cdk/schematics/update-tool/version-changes.d.ts +1 -1
- package/schematics/cdk/schematics/update-tool/version-changes.js +4 -5
- package/schematics/cdk/schematics/update-tool/version-changes.js.map +1 -0
- package/schematics/cdk/schematics/utils/ast/ng-module-imports.d.ts +1 -1
- package/schematics/cdk/schematics/utils/ast/ng-module-imports.js +3 -4
- package/schematics/cdk/schematics/utils/ast/ng-module-imports.js.map +1 -0
- package/schematics/cdk/schematics/utils/ast.d.ts +3 -3
- package/schematics/cdk/schematics/utils/ast.js +28 -18
- package/schematics/cdk/schematics/utils/ast.js.map +1 -0
- package/schematics/cdk/schematics/utils/build-component.d.ts +1 -1
- package/schematics/cdk/schematics/utils/build-component.js +24 -20
- package/schematics/cdk/schematics/utils/build-component.js.map +1 -0
- package/schematics/cdk/schematics/utils/get-project.d.ts +3 -3
- package/schematics/cdk/schematics/utils/get-project.js +3 -4
- package/schematics/cdk/schematics/utils/get-project.js.map +1 -0
- package/schematics/cdk/schematics/utils/html-manipulation.d.ts +1 -1
- package/schematics/cdk/schematics/utils/html-manipulation.js +5 -6
- package/schematics/cdk/schematics/utils/html-manipulation.js.map +1 -0
- package/schematics/cdk/schematics/utils/index.d.ts +1 -1
- package/schematics/cdk/schematics/utils/index.js +2 -2
- package/schematics/cdk/schematics/utils/index.js.map +1 -0
- package/schematics/cdk/schematics/utils/parse5-element.d.ts +1 -1
- package/schematics/cdk/schematics/utils/parse5-element.js +3 -4
- package/schematics/cdk/schematics/utils/parse5-element.js.map +1 -0
- package/schematics/cdk/schematics/utils/project-index-file.d.ts +7 -4
- package/schematics/cdk/schematics/utils/project-index-file.js +32 -10
- package/schematics/cdk/schematics/utils/project-index-file.js.map +1 -0
- package/schematics/cdk/schematics/utils/project-main-file.d.ts +4 -3
- package/schematics/cdk/schematics/utils/project-main-file.js +3 -4
- package/schematics/cdk/schematics/utils/project-main-file.js.map +1 -0
- package/schematics/cdk/schematics/utils/project-style-file.d.ts +3 -3
- package/schematics/cdk/schematics/utils/project-style-file.js +3 -4
- package/schematics/cdk/schematics/utils/project-style-file.js.map +1 -0
- package/schematics/cdk/schematics/utils/project-targets.d.ts +6 -5
- package/schematics/cdk/schematics/utils/project-targets.js +19 -12
- package/schematics/cdk/schematics/utils/project-targets.js.map +1 -0
- package/schematics/cdk/schematics/utils/project-tsconfig-paths.d.ts +4 -4
- package/schematics/cdk/schematics/utils/project-tsconfig-paths.js +29 -18
- package/schematics/cdk/schematics/utils/project-tsconfig-paths.js.map +1 -0
- package/schematics/cdk/schematics/utils/schematic-options.d.ts +3 -3
- package/schematics/cdk/schematics/utils/schematic-options.js +30 -19
- package/schematics/cdk/schematics/utils/schematic-options.js.map +1 -0
- package/schematics/cdk2/schematics/collection.json +18 -0
- package/schematics/cdk2/schematics/index.d.ts +14 -0
- package/schematics/cdk2/schematics/index.mjs +37 -0
- package/schematics/cdk2/schematics/migration.json +15 -0
- package/schematics/cdk2/schematics/ng-add/index.d.ts +17 -0
- package/schematics/cdk2/schematics/ng-add/index.mjs +39 -0
- package/schematics/cdk2/schematics/ng-add/schema.d.ts +11 -0
- package/schematics/cdk2/schematics/ng-add/schema.json +16 -0
- package/schematics/cdk2/schematics/ng-add/schema.mjs +10 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +53 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +17 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +25 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +45 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/index.d.ts +11 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/index.mjs +33 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.d.ts +10 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.json +100 -0
- package/schematics/cdk2/schematics/ng-generate/drag-drop/schema.mjs +10 -0
- package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.d.ts +15 -0
- package/schematics/cdk2/schematics/ng-update/data/attribute-selectors.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/class-names.d.ts +15 -0
- package/schematics/cdk2/schematics/ng-update/data/class-names.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/constructor-checks.d.ts +15 -0
- package/schematics/cdk2/schematics/ng-update/data/constructor-checks.mjs +17 -0
- package/schematics/cdk2/schematics/ng-update/data/css-selectors.d.ts +27 -0
- package/schematics/cdk2/schematics/ng-update/data/css-selectors.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/element-selectors.d.ts +15 -0
- package/schematics/cdk2/schematics/ng-update/data/element-selectors.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/index.d.ts +17 -0
- package/schematics/cdk2/schematics/ng-update/data/index.mjs +34 -0
- package/schematics/cdk2/schematics/ng-update/data/input-names.d.ts +22 -0
- package/schematics/cdk2/schematics/ng-update/data/input-names.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/method-call-checks.d.ts +17 -0
- package/schematics/cdk2/schematics/ng-update/data/method-call-checks.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/output-names.d.ts +22 -0
- package/schematics/cdk2/schematics/ng-update/data/output-names.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/property-names.d.ts +20 -0
- package/schematics/cdk2/schematics/ng-update/data/property-names.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/data/symbol-removal.d.ts +17 -0
- package/schematics/cdk2/schematics/ng-update/data/symbol-removal.mjs +12 -0
- package/schematics/cdk2/schematics/ng-update/devkit-file-system.d.ts +30 -0
- package/schematics/cdk2/schematics/ng-update/devkit-file-system.mjs +84 -0
- package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.d.ts +24 -0
- package/schematics/cdk2/schematics/ng-update/devkit-migration-rule.mjs +131 -0
- package/schematics/cdk2/schematics/ng-update/devkit-migration.d.ts +35 -0
- package/schematics/cdk2/schematics/ng-update/devkit-migration.mjs +20 -0
- package/schematics/cdk2/schematics/ng-update/find-stylesheets.d.ts +16 -0
- package/schematics/cdk2/schematics/ng-update/find-stylesheets.mjs +42 -0
- package/schematics/cdk2/schematics/ng-update/html-parsing/angular.d.ts +15 -0
- package/schematics/cdk2/schematics/ng-update/html-parsing/angular.mjs +52 -0
- package/schematics/cdk2/schematics/ng-update/html-parsing/elements.d.ts +24 -0
- package/schematics/cdk2/schematics/ng-update/html-parsing/elements.mjs +63 -0
- package/schematics/cdk2/schematics/ng-update/index.d.ts +10 -0
- package/schematics/cdk2/schematics/ng-update/index.mjs +30 -0
- package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.d.ts +26 -0
- package/schematics/cdk2/schematics/ng-update/migrations/attribute-selectors.mjs +68 -0
- package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.d.ts +26 -0
- package/schematics/cdk2/schematics/ng-update/migrations/class-inheritance.mjs +55 -0
- package/schematics/cdk2/schematics/ng-update/migrations/class-names.d.ts +32 -0
- package/schematics/cdk2/schematics/ng-update/migrations/class-names.mjs +88 -0
- package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.d.ts +29 -0
- package/schematics/cdk2/schematics/ng-update/migrations/constructor-signature.mjs +136 -0
- package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.d.ts +26 -0
- package/schematics/cdk2/schematics/ng-update/migrations/css-selectors.mjs +72 -0
- package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.d.ts +26 -0
- package/schematics/cdk2/schematics/ng-update/migrations/element-selectors.mjs +63 -0
- package/schematics/cdk2/schematics/ng-update/migrations/input-names.d.ts +26 -0
- package/schematics/cdk2/schematics/ng-update/migrations/input-names.mjs +56 -0
- package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.d.ts +22 -0
- package/schematics/cdk2/schematics/ng-update/migrations/method-call-arguments.mjs +59 -0
- package/schematics/cdk2/schematics/ng-update/migrations/misc-template.d.ts +18 -0
- package/schematics/cdk2/schematics/ng-update/migrations/misc-template.mjs +22 -0
- package/schematics/cdk2/schematics/ng-update/migrations/output-names.d.ts +22 -0
- package/schematics/cdk2/schematics/ng-update/migrations/output-names.mjs +43 -0
- package/schematics/cdk2/schematics/ng-update/migrations/property-names.d.ts +22 -0
- package/schematics/cdk2/schematics/ng-update/migrations/property-names.mjs +57 -0
- package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.d.ts +18 -0
- package/schematics/cdk2/schematics/ng-update/migrations/symbol-removal.mjs +43 -0
- package/schematics/cdk2/schematics/ng-update/public-api.d.ts +19 -0
- package/schematics/cdk2/schematics/ng-update/public-api.mjs +36 -0
- package/schematics/cdk2/schematics/ng-update/typescript/base-types.d.ts +10 -0
- package/schematics/cdk2/schematics/ng-update/typescript/base-types.mjs +24 -0
- package/schematics/cdk2/schematics/ng-update/typescript/imports.d.ts +18 -0
- package/schematics/cdk2/schematics/ng-update/typescript/imports.mjs +54 -0
- package/schematics/cdk2/schematics/ng-update/typescript/literal.d.ts +18 -0
- package/schematics/cdk2/schematics/ng-update/typescript/literal.mjs +33 -0
- package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.d.ts +16 -0
- package/schematics/cdk2/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
- package/schematics/cdk2/schematics/ng-update/upgrade-data.d.ts +34 -0
- package/schematics/cdk2/schematics/ng-update/upgrade-data.mjs +39 -0
- package/schematics/cdk2/schematics/package.json +3 -0
- package/schematics/cdk2/schematics/paths.d.ts +11 -0
- package/schematics/cdk2/schematics/paths.mjs +16 -0
- package/schematics/cdk2/schematics/update-tool/component-resource-collector.d.ts +44 -0
- package/schematics/cdk2/schematics/update-tool/component-resource-collector.mjs +166 -0
- package/schematics/cdk2/schematics/update-tool/file-system.d.ts +72 -0
- package/schematics/cdk2/schematics/update-tool/file-system.mjs +18 -0
- package/schematics/cdk2/schematics/update-tool/index.d.ts +74 -0
- package/schematics/cdk2/schematics/update-tool/index.mjs +178 -0
- package/schematics/cdk2/schematics/update-tool/logger.d.ts +15 -0
- package/schematics/cdk2/schematics/update-tool/logger.mjs +18 -0
- package/schematics/cdk2/schematics/update-tool/migration.d.ts +87 -0
- package/schematics/cdk2/schematics/update-tool/migration.mjs +77 -0
- package/schematics/cdk2/schematics/update-tool/public-api.d.ts +16 -0
- package/schematics/cdk2/schematics/update-tool/public-api.mjs +33 -0
- package/schematics/cdk2/schematics/update-tool/target-version.d.ts +16 -0
- package/schematics/cdk2/schematics/update-tool/target-version.mjs +28 -0
- package/schematics/cdk2/schematics/update-tool/update-recorder.d.ts +13 -0
- package/schematics/cdk2/schematics/update-tool/update-recorder.mjs +10 -0
- package/schematics/cdk2/schematics/update-tool/utils/decorators.d.ts +22 -0
- package/schematics/cdk2/schematics/update-tool/utils/decorators.mjs +42 -0
- package/schematics/cdk2/schematics/update-tool/utils/diagnostics.d.ts +11 -0
- package/schematics/cdk2/schematics/update-tool/utils/diagnostics.mjs +19 -0
- package/schematics/cdk2/schematics/update-tool/utils/functions.d.ts +14 -0
- package/schematics/cdk2/schematics/update-tool/utils/functions.mjs +21 -0
- package/schematics/cdk2/schematics/update-tool/utils/imports.d.ts +17 -0
- package/schematics/cdk2/schematics/update-tool/utils/imports.mjs +111 -0
- package/schematics/cdk2/schematics/update-tool/utils/line-mappings.d.ts +21 -0
- package/schematics/cdk2/schematics/update-tool/utils/line-mappings.mjs +76 -0
- package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.d.ts +18 -0
- package/schematics/cdk2/schematics/update-tool/utils/parse-tsconfig.mjs +45 -0
- package/schematics/cdk2/schematics/update-tool/utils/property-name.d.ts +18 -0
- package/schematics/cdk2/schematics/update-tool/utils/property-name.mjs +28 -0
- package/schematics/cdk2/schematics/update-tool/utils/virtual-host.d.ts +36 -0
- package/schematics/cdk2/schematics/update-tool/utils/virtual-host.mjs +72 -0
- package/schematics/cdk2/schematics/update-tool/version-changes.d.ts +32 -0
- package/schematics/cdk2/schematics/update-tool/version-changes.mjs +39 -0
- package/schematics/cdk2/schematics/utils/ast/ng-module-imports.d.ts +12 -0
- package/schematics/cdk2/schematics/utils/ast/ng-module-imports.mjs +83 -0
- package/schematics/cdk2/schematics/utils/ast.d.ts +25 -0
- package/schematics/cdk2/schematics/utils/ast.mjs +69 -0
- package/schematics/cdk2/schematics/utils/build-component.d.ts +20 -0
- package/schematics/cdk2/schematics/utils/build-component.mjs +184 -0
- package/schematics/cdk2/schematics/utils/get-project.d.ts +13 -0
- package/schematics/cdk2/schematics/utils/get-project.mjs +29 -0
- package/schematics/cdk2/schematics/utils/html-manipulation.d.ts +15 -0
- package/schematics/cdk2/schematics/utils/html-manipulation.mjs +92 -0
- package/schematics/cdk2/schematics/utils/index.d.ts +19 -0
- package/schematics/cdk2/schematics/utils/index.mjs +36 -0
- package/schematics/cdk2/schematics/utils/parse5-element.d.ts +12 -0
- package/schematics/cdk2/schematics/utils/parse5-element.mjs +31 -0
- package/schematics/cdk2/schematics/utils/project-index-file.d.ts +10 -0
- package/schematics/cdk2/schematics/utils/project-index-file.mjs +21 -0
- package/schematics/cdk2/schematics/utils/project-main-file.d.ts +10 -0
- package/schematics/cdk2/schematics/utils/project-main-file.mjs +26 -0
- package/schematics/cdk2/schematics/utils/project-style-file.d.ts +13 -0
- package/schematics/cdk2/schematics/utils/project-style-file.mjs +43 -0
- package/schematics/cdk2/schematics/utils/project-targets.d.ts +14 -0
- package/schematics/cdk2/schematics/utils/project-targets.mjs +39 -0
- package/schematics/cdk2/schematics/utils/project-tsconfig-paths.d.ts +14 -0
- package/schematics/cdk2/schematics/utils/project-tsconfig-paths.mjs +35 -0
- package/schematics/cdk2/schematics/utils/schematic-options.d.ts +20 -0
- package/schematics/cdk2/schematics/utils/schematic-options.mjs +78 -0
- /package/schematics/{cdk/schematics/index.mjs → cdk2/schematics/index.js} +0 -0
- /package/schematics/{cdk/schematics/ng-add/index.mjs → cdk2/schematics/ng-add/index.js} +0 -0
- /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.d.ts +0 -0
- /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.js +0 -0
- /package/schematics/{cdk → cdk2}/schematics/ng-add/package-config.mjs +0 -0
- /package/schematics/{cdk/schematics/ng-add/schema.mjs → cdk2/schematics/ng-add/schema.js} +0 -0
- /package/schematics/{cdk/schematics/ng-generate/drag-drop/index.mjs → cdk2/schematics/ng-generate/drag-drop/index.js} +0 -0
- /package/schematics/{cdk/schematics/ng-generate/drag-drop/schema.mjs → cdk2/schematics/ng-generate/drag-drop/schema.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/attribute-selectors.mjs → cdk2/schematics/ng-update/data/attribute-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/class-names.mjs → cdk2/schematics/ng-update/data/class-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/constructor-checks.mjs → cdk2/schematics/ng-update/data/constructor-checks.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/css-selectors.mjs → cdk2/schematics/ng-update/data/css-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/element-selectors.mjs → cdk2/schematics/ng-update/data/element-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/index.mjs → cdk2/schematics/ng-update/data/index.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/input-names.mjs → cdk2/schematics/ng-update/data/input-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/method-call-checks.mjs → cdk2/schematics/ng-update/data/method-call-checks.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/output-names.mjs → cdk2/schematics/ng-update/data/output-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/property-names.mjs → cdk2/schematics/ng-update/data/property-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/data/symbol-removal.mjs → cdk2/schematics/ng-update/data/symbol-removal.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/devkit-file-system.mjs → cdk2/schematics/ng-update/devkit-file-system.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/devkit-migration-rule.mjs → cdk2/schematics/ng-update/devkit-migration-rule.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/devkit-migration.mjs → cdk2/schematics/ng-update/devkit-migration.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/find-stylesheets.mjs → cdk2/schematics/ng-update/find-stylesheets.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/html-parsing/angular.mjs → cdk2/schematics/ng-update/html-parsing/angular.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/html-parsing/elements.mjs → cdk2/schematics/ng-update/html-parsing/elements.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/index.mjs → cdk2/schematics/ng-update/index.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/attribute-selectors.mjs → cdk2/schematics/ng-update/migrations/attribute-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/class-inheritance.mjs → cdk2/schematics/ng-update/migrations/class-inheritance.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/class-names.mjs → cdk2/schematics/ng-update/migrations/class-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/constructor-signature.mjs → cdk2/schematics/ng-update/migrations/constructor-signature.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/css-selectors.mjs → cdk2/schematics/ng-update/migrations/css-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/element-selectors.mjs → cdk2/schematics/ng-update/migrations/element-selectors.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/input-names.mjs → cdk2/schematics/ng-update/migrations/input-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/method-call-arguments.mjs → cdk2/schematics/ng-update/migrations/method-call-arguments.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/misc-template.mjs → cdk2/schematics/ng-update/migrations/misc-template.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/output-names.mjs → cdk2/schematics/ng-update/migrations/output-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/property-names.mjs → cdk2/schematics/ng-update/migrations/property-names.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/migrations/symbol-removal.mjs → cdk2/schematics/ng-update/migrations/symbol-removal.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/public-api.mjs → cdk2/schematics/ng-update/public-api.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/typescript/base-types.mjs → cdk2/schematics/ng-update/typescript/base-types.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/typescript/imports.mjs → cdk2/schematics/ng-update/typescript/imports.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/typescript/literal.mjs → cdk2/schematics/ng-update/typescript/literal.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/typescript/module-specifiers.mjs → cdk2/schematics/ng-update/typescript/module-specifiers.js} +0 -0
- /package/schematics/{cdk/schematics/ng-update/upgrade-data.mjs → cdk2/schematics/ng-update/upgrade-data.js} +0 -0
- /package/schematics/{cdk/schematics/paths.mjs → cdk2/schematics/paths.js} +0 -0
- /package/schematics/{cdk → cdk2}/schematics/schematics.externs.js +0 -0
- /package/schematics/{cdk → cdk2}/schematics/tsconfig.json +0 -0
- /package/schematics/{cdk/schematics/update-tool/component-resource-collector.mjs → cdk2/schematics/update-tool/component-resource-collector.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/file-system.mjs → cdk2/schematics/update-tool/file-system.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/index.mjs → cdk2/schematics/update-tool/index.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/logger.mjs → cdk2/schematics/update-tool/logger.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/migration.mjs → cdk2/schematics/update-tool/migration.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/public-api.mjs → cdk2/schematics/update-tool/public-api.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/target-version.mjs → cdk2/schematics/update-tool/target-version.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/update-recorder.mjs → cdk2/schematics/update-tool/update-recorder.js} +0 -0
- /package/schematics/{cdk → cdk2}/schematics/update-tool/update-tool.externs.js +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/decorators.mjs → cdk2/schematics/update-tool/utils/decorators.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/diagnostics.mjs → cdk2/schematics/update-tool/utils/diagnostics.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/functions.mjs → cdk2/schematics/update-tool/utils/functions.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/imports.mjs → cdk2/schematics/update-tool/utils/imports.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/line-mappings.mjs → cdk2/schematics/update-tool/utils/line-mappings.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/parse-tsconfig.mjs → cdk2/schematics/update-tool/utils/parse-tsconfig.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/property-name.mjs → cdk2/schematics/update-tool/utils/property-name.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/utils/virtual-host.mjs → cdk2/schematics/update-tool/utils/virtual-host.js} +0 -0
- /package/schematics/{cdk/schematics/update-tool/version-changes.mjs → cdk2/schematics/update-tool/version-changes.js} +0 -0
- /package/schematics/{cdk/schematics/utils/ast/ng-module-imports.mjs → cdk2/schematics/utils/ast/ng-module-imports.js} +0 -0
- /package/schematics/{cdk/schematics/utils/ast.mjs → cdk2/schematics/utils/ast.js} +0 -0
- /package/schematics/{cdk/schematics/utils/build-component.mjs → cdk2/schematics/utils/build-component.js} +0 -0
- /package/schematics/{cdk/schematics/utils/get-project.mjs → cdk2/schematics/utils/get-project.js} +0 -0
- /package/schematics/{cdk/schematics/utils/html-manipulation.mjs → cdk2/schematics/utils/html-manipulation.js} +0 -0
- /package/schematics/{cdk/schematics/utils/index.mjs → cdk2/schematics/utils/index.js} +0 -0
- /package/schematics/{cdk/schematics/utils/parse5-element.mjs → cdk2/schematics/utils/parse5-element.js} +0 -0
- /package/schematics/{cdk/schematics/utils/project-index-file.mjs → cdk2/schematics/utils/project-index-file.js} +0 -0
- /package/schematics/{cdk/schematics/utils/project-main-file.mjs → cdk2/schematics/utils/project-main-file.js} +0 -0
- /package/schematics/{cdk/schematics/utils/project-style-file.mjs → cdk2/schematics/utils/project-style-file.js} +0 -0
- /package/schematics/{cdk/schematics/utils/project-targets.mjs → cdk2/schematics/utils/project-targets.js} +0 -0
- /package/schematics/{cdk/schematics/utils/project-tsconfig-paths.mjs → cdk2/schematics/utils/project-tsconfig-paths.js} +0 -0
- /package/schematics/{cdk/schematics/utils/schematic-options.mjs → cdk2/schematics/utils/schematic-options.js} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { Tree } from '@angular-devkit/schematics';
|
|
9
|
+
/**
|
|
10
|
+
* Finds stylesheets in the given directory from within the specified tree.
|
|
11
|
+
* @param tree Devkit tree where stylesheet files can be found in.
|
|
12
|
+
* @param startDirectory Optional start directory where stylesheets should be searched in.
|
|
13
|
+
* This can be useful if only stylesheets within a given folder are relevant (to avoid
|
|
14
|
+
* unnecessary iterations).
|
|
15
|
+
*/
|
|
16
|
+
export declare function findStylesheetFiles(tree: Tree, startDirectory?: string): string[];
|
|
@@ -0,0 +1,42 @@
|
|
|
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.findStylesheetFiles = void 0;
|
|
11
|
+
const core_1 = require("@angular-devkit/core");
|
|
12
|
+
/** Regular expression that matches stylesheet paths */
|
|
13
|
+
const STYLESHEET_REGEX = /.*\.(css|scss)$/;
|
|
14
|
+
/**
|
|
15
|
+
* Finds stylesheets in the given directory from within the specified tree.
|
|
16
|
+
* @param tree Devkit tree where stylesheet files can be found in.
|
|
17
|
+
* @param startDirectory Optional start directory where stylesheets should be searched in.
|
|
18
|
+
* This can be useful if only stylesheets within a given folder are relevant (to avoid
|
|
19
|
+
* unnecessary iterations).
|
|
20
|
+
*/
|
|
21
|
+
function findStylesheetFiles(tree, startDirectory = '/') {
|
|
22
|
+
const result = [];
|
|
23
|
+
const visitDir = (dirPath) => {
|
|
24
|
+
const { subfiles, subdirs } = tree.getDir(dirPath);
|
|
25
|
+
subfiles.forEach(fileName => {
|
|
26
|
+
if (STYLESHEET_REGEX.test(fileName)) {
|
|
27
|
+
result.push((0, core_1.join)(dirPath, fileName));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
// Visit directories within the current directory to find other stylesheets.
|
|
31
|
+
subdirs.forEach(fragment => {
|
|
32
|
+
// Do not visit directories or files inside node modules or `dist/` folders.
|
|
33
|
+
if (fragment !== 'node_modules' && fragment !== 'dist') {
|
|
34
|
+
visitDir((0, core_1.join)(dirPath, fragment));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
visitDir(startDirectory);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
exports.findStylesheetFiles = findStylesheetFiles;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdHlsZXNoZWV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvZmluZC1zdHlsZXNoZWV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwrQ0FBZ0Q7QUFHaEQsdURBQXVEO0FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFFM0M7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsSUFBVSxFQUFFLGlCQUF5QixHQUFHO0lBQzFFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQWEsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFCLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUEsV0FBSSxFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6Qiw0RUFBNEU7WUFDNUUsSUFBSSxRQUFRLEtBQUssY0FBYyxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7Z0JBQ3RELFFBQVEsQ0FBQyxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsUUFBUSxDQUFDLGNBQXNCLENBQUMsQ0FBQztJQUNqQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBckJELGtEQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2pvaW4sIFBhdGh9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7VHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuXG4vKiogUmVndWxhciBleHByZXNzaW9uIHRoYXQgbWF0Y2hlcyBzdHlsZXNoZWV0IHBhdGhzICovXG5jb25zdCBTVFlMRVNIRUVUX1JFR0VYID0gLy4qXFwuKGNzc3xzY3NzKSQvO1xuXG4vKipcbiAqIEZpbmRzIHN0eWxlc2hlZXRzIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgZnJvbSB3aXRoaW4gdGhlIHNwZWNpZmllZCB0cmVlLlxuICogQHBhcmFtIHRyZWUgRGV2a2l0IHRyZWUgd2hlcmUgc3R5bGVzaGVldCBmaWxlcyBjYW4gYmUgZm91bmQgaW4uXG4gKiBAcGFyYW0gc3RhcnREaXJlY3RvcnkgT3B0aW9uYWwgc3RhcnQgZGlyZWN0b3J5IHdoZXJlIHN0eWxlc2hlZXRzIHNob3VsZCBiZSBzZWFyY2hlZCBpbi5cbiAqICAgVGhpcyBjYW4gYmUgdXNlZnVsIGlmIG9ubHkgc3R5bGVzaGVldHMgd2l0aGluIGEgZ2l2ZW4gZm9sZGVyIGFyZSByZWxldmFudCAodG8gYXZvaWRcbiAqICAgdW5uZWNlc3NhcnkgaXRlcmF0aW9ucykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kU3R5bGVzaGVldEZpbGVzKHRyZWU6IFRyZWUsIHN0YXJ0RGlyZWN0b3J5OiBzdHJpbmcgPSAnLycpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgdmlzaXREaXIgPSAoZGlyUGF0aDogUGF0aCkgPT4ge1xuICAgIGNvbnN0IHtzdWJmaWxlcywgc3ViZGlyc30gPSB0cmVlLmdldERpcihkaXJQYXRoKTtcblxuICAgIHN1YmZpbGVzLmZvckVhY2goZmlsZU5hbWUgPT4ge1xuICAgICAgaWYgKFNUWUxFU0hFRVRfUkVHRVgudGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goam9pbihkaXJQYXRoLCBmaWxlTmFtZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVmlzaXQgZGlyZWN0b3JpZXMgd2l0aGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0byBmaW5kIG90aGVyIHN0eWxlc2hlZXRzLlxuICAgIHN1YmRpcnMuZm9yRWFjaChmcmFnbWVudCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgZGlyZWN0b3JpZXMgb3IgZmlsZXMgaW5zaWRlIG5vZGUgbW9kdWxlcyBvciBgZGlzdC9gIGZvbGRlcnMuXG4gICAgICBpZiAoZnJhZ21lbnQgIT09ICdub2RlX21vZHVsZXMnICYmIGZyYWdtZW50ICE9PSAnZGlzdCcpIHtcbiAgICAgICAgdmlzaXREaXIoam9pbihkaXJQYXRoLCBmcmFnbWVudCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICB2aXNpdERpcihzdGFydERpcmVjdG9yeSBhcyBQYXRoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
/** Finds the specified Angular @Input in the given elements with tag name. */
|
|
9
|
+
export declare function findInputsOnElementWithTag(html: string, inputName: string, tagNames: string[]): number[];
|
|
10
|
+
/** Finds the specified Angular @Input in elements that have one of the specified attributes. */
|
|
11
|
+
export declare function findInputsOnElementWithAttr(html: string, inputName: string, attrs: string[]): number[];
|
|
12
|
+
/** Finds the specified Angular @Output in the given elements with tag name. */
|
|
13
|
+
export declare function findOutputsOnElementWithTag(html: string, outputName: string, tagNames: string[]): number[];
|
|
14
|
+
/** Finds the specified Angular @Output in elements that have one of the specified attributes. */
|
|
15
|
+
export declare function findOutputsOnElementWithAttr(html: string, outputName: string, attrs: string[]): number[];
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.findOutputsOnElementWithAttr = exports.findOutputsOnElementWithTag = exports.findInputsOnElementWithAttr = exports.findInputsOnElementWithTag = void 0;
|
|
11
|
+
const elements_1 = require("./elements");
|
|
12
|
+
/** Finds the specified Angular @Input in the given elements with tag name. */
|
|
13
|
+
function findInputsOnElementWithTag(html, inputName, tagNames) {
|
|
14
|
+
return [
|
|
15
|
+
// Inputs can be also used without brackets (e.g. `<mat-toolbar color="primary">`)
|
|
16
|
+
...(0, elements_1.findAttributeOnElementWithTag)(html, inputName, tagNames),
|
|
17
|
+
// Add one column to the mapped offset because the first bracket for the @Input
|
|
18
|
+
// is part of the attribute and therefore also part of the offset. We only want to return
|
|
19
|
+
// the offset for the inner name of the bracketed input.
|
|
20
|
+
...(0, elements_1.findAttributeOnElementWithTag)(html, `[${inputName}]`, tagNames).map(offset => offset + 1),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
exports.findInputsOnElementWithTag = findInputsOnElementWithTag;
|
|
24
|
+
/** Finds the specified Angular @Input in elements that have one of the specified attributes. */
|
|
25
|
+
function findInputsOnElementWithAttr(html, inputName, attrs) {
|
|
26
|
+
return [
|
|
27
|
+
// Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
|
|
28
|
+
...(0, elements_1.findAttributeOnElementWithAttrs)(html, inputName, attrs),
|
|
29
|
+
// Add one column to the mapped offset because the first bracket for the @Input
|
|
30
|
+
// is part of the attribute and therefore also part of the offset. We only want to return
|
|
31
|
+
// the offset for the inner name of the bracketed input.
|
|
32
|
+
...(0, elements_1.findAttributeOnElementWithAttrs)(html, `[${inputName}]`, attrs).map(offset => offset + 1),
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
exports.findInputsOnElementWithAttr = findInputsOnElementWithAttr;
|
|
36
|
+
/** Finds the specified Angular @Output in the given elements with tag name. */
|
|
37
|
+
function findOutputsOnElementWithTag(html, outputName, tagNames) {
|
|
38
|
+
// Add one column to the mapped offset because the first parenthesis for the @Output
|
|
39
|
+
// is part of the attribute and therefore also part of the offset. We only want to return
|
|
40
|
+
// the offset for the inner name of the output.
|
|
41
|
+
return (0, elements_1.findAttributeOnElementWithTag)(html, `(${outputName})`, tagNames).map(offset => offset + 1);
|
|
42
|
+
}
|
|
43
|
+
exports.findOutputsOnElementWithTag = findOutputsOnElementWithTag;
|
|
44
|
+
/** Finds the specified Angular @Output in elements that have one of the specified attributes. */
|
|
45
|
+
function findOutputsOnElementWithAttr(html, outputName, attrs) {
|
|
46
|
+
// Add one column to the mapped offset because the first bracket for the @Output
|
|
47
|
+
// is part of the attribute and therefore also part of the offset. We only want to return
|
|
48
|
+
// the offset for the inner name of the output.
|
|
49
|
+
return (0, elements_1.findAttributeOnElementWithAttrs)(html, `(${outputName})`, attrs).map(offset => offset + 1);
|
|
50
|
+
}
|
|
51
|
+
exports.findOutputsOnElementWithAttr = findOutputsOnElementWithAttr;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseUNBQTBGO0FBRTFGLDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtJQUM1RixPQUFPO1FBQ0wsa0ZBQWtGO1FBQ2xGLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUMzRCwrRUFBK0U7UUFDL0UseUZBQXlGO1FBQ3pGLHdEQUF3RDtRQUN4RCxHQUFHLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUM3RixDQUFDO0FBQ0osQ0FBQztBQVRELGdFQVNDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHdGQUF3RjtRQUN4RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFURCxrRUFTQztBQUVELCtFQUErRTtBQUMvRSxTQUFnQiwyQkFBMkIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxRQUFrQjtJQUM5RixvRkFBb0Y7SUFDcEYseUZBQXlGO0lBQ3pGLCtDQUErQztJQUMvQyxPQUFPLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFMRCxrRUFLQztBQUVELGlHQUFpRztBQUNqRyxTQUFnQiw0QkFBNEIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxLQUFlO0lBQzVGLGdGQUFnRjtJQUNoRix5RkFBeUY7SUFDekYsK0NBQStDO0lBQy9DLE9BQU8sSUFBQSwwQ0FBK0IsRUFBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQztBQUxELG9FQUtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycywgZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWd9IGZyb20gJy4vZWxlbWVudHMnO1xuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIGlucHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBJbnB1dHMgY2FuIGJlIGFsc28gdXNlZCB3aXRob3V0IGJyYWNrZXRzIChlLmcuIGA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+YClcbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBpbnB1dE5hbWUsIHRhZ05hbWVzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIHRhZ05hbWVzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgYXR0cnM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parses a HTML fragment and traverses all AST nodes in order find elements that
|
|
10
|
+
* include the specified attribute.
|
|
11
|
+
*/
|
|
12
|
+
export declare function findElementsWithAttribute(html: string, attributeName: string): import("parse5/dist/tree-adapters/default").Element[];
|
|
13
|
+
/**
|
|
14
|
+
* Finds elements with explicit tag names that also contain the specified attribute. Returns the
|
|
15
|
+
* attribute start offset based on the specified HTML.
|
|
16
|
+
*/
|
|
17
|
+
export declare function findAttributeOnElementWithTag(html: string, name: string, tagNames: string[]): number[];
|
|
18
|
+
/**
|
|
19
|
+
* Finds elements that contain the given attribute and contain at least one of the other
|
|
20
|
+
* specified attributes. Returns the primary attribute's start offset based on the specified HTML.
|
|
21
|
+
*/
|
|
22
|
+
export declare function findAttributeOnElementWithAttrs(html: string, name: string, attrs: string[]): number[];
|
|
23
|
+
/** Gets the start offset of the given attribute from a Parse5 element. */
|
|
24
|
+
export declare function getStartOffsetOfAttribute(element: any, attributeName: string): number;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getStartOffsetOfAttribute = exports.findAttributeOnElementWithAttrs = exports.findAttributeOnElementWithTag = exports.findElementsWithAttribute = void 0;
|
|
11
|
+
const parse5_1 = require("parse5");
|
|
12
|
+
/**
|
|
13
|
+
* Parses a HTML fragment and traverses all AST nodes in order find elements that
|
|
14
|
+
* include the specified attribute.
|
|
15
|
+
*/
|
|
16
|
+
function findElementsWithAttribute(html, attributeName) {
|
|
17
|
+
const document = (0, parse5_1.parseFragment)(html, { sourceCodeLocationInfo: true });
|
|
18
|
+
const elements = [];
|
|
19
|
+
const visitNodes = (nodes) => {
|
|
20
|
+
nodes.forEach(n => {
|
|
21
|
+
const node = n;
|
|
22
|
+
if (node.childNodes) {
|
|
23
|
+
visitNodes(node.childNodes);
|
|
24
|
+
}
|
|
25
|
+
if (node.attrs?.some(attr => attr.name === attributeName.toLowerCase())) {
|
|
26
|
+
elements.push(node);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
visitNodes(document.childNodes);
|
|
31
|
+
return elements;
|
|
32
|
+
}
|
|
33
|
+
exports.findElementsWithAttribute = findElementsWithAttribute;
|
|
34
|
+
/**
|
|
35
|
+
* Finds elements with explicit tag names that also contain the specified attribute. Returns the
|
|
36
|
+
* attribute start offset based on the specified HTML.
|
|
37
|
+
*/
|
|
38
|
+
function findAttributeOnElementWithTag(html, name, tagNames) {
|
|
39
|
+
return findElementsWithAttribute(html, name)
|
|
40
|
+
.filter(element => tagNames.includes(element.tagName))
|
|
41
|
+
.map(element => getStartOffsetOfAttribute(element, name));
|
|
42
|
+
}
|
|
43
|
+
exports.findAttributeOnElementWithTag = findAttributeOnElementWithTag;
|
|
44
|
+
/**
|
|
45
|
+
* Finds elements that contain the given attribute and contain at least one of the other
|
|
46
|
+
* specified attributes. Returns the primary attribute's start offset based on the specified HTML.
|
|
47
|
+
*/
|
|
48
|
+
function findAttributeOnElementWithAttrs(html, name, attrs) {
|
|
49
|
+
return findElementsWithAttribute(html, name)
|
|
50
|
+
.filter(element => attrs.some(attr => hasElementAttribute(element, attr)))
|
|
51
|
+
.map(element => getStartOffsetOfAttribute(element, name));
|
|
52
|
+
}
|
|
53
|
+
exports.findAttributeOnElementWithAttrs = findAttributeOnElementWithAttrs;
|
|
54
|
+
/** Shorthand function that checks if the specified element contains the given attribute. */
|
|
55
|
+
function hasElementAttribute(element, attributeName) {
|
|
56
|
+
return element.attrs && element.attrs.some(attr => attr.name === attributeName.toLowerCase());
|
|
57
|
+
}
|
|
58
|
+
/** Gets the start offset of the given attribute from a Parse5 element. */
|
|
59
|
+
function getStartOffsetOfAttribute(element, attributeName) {
|
|
60
|
+
return element.sourceCodeLocation.attrs[attributeName.toLowerCase()].startOffset;
|
|
61
|
+
}
|
|
62
|
+
exports.getStartOffsetOfAttribute = getStartOffsetOfAttribute;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2h0bWwtcGFyc2luZy9lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxtQ0FBcUM7QUFHckM7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsSUFBWSxFQUFFLGFBQXFCO0lBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUEsc0JBQWEsRUFBQyxJQUFJLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFjLEVBQUUsQ0FBQztJQUUvQixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtRQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxHQUFHLENBQVksQ0FBQztZQUUxQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDN0I7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDdkUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVoQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBckJELDhEQXFCQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsUUFBa0I7SUFDMUYsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFKRCxzRUFJQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLCtCQUErQixDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsS0FBZTtJQUN6RixPQUFPLHlCQUF5QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7U0FDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFKRCwwRUFJQztBQUVELDRGQUE0RjtBQUM1RixTQUFTLG1CQUFtQixDQUFDLE9BQWdCLEVBQUUsYUFBcUI7SUFDbEUsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsMEVBQTBFO0FBQzFFLFNBQWdCLHlCQUF5QixDQUFDLE9BQVksRUFBRSxhQUFxQjtJQUMzRSxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDO0FBQ25GLENBQUM7QUFGRCw4REFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge3BhcnNlRnJhZ21lbnR9IGZyb20gJ3BhcnNlNSc7XG5pbXBvcnQge0NoaWxkTm9kZSwgRWxlbWVudH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vKipcbiAqIFBhcnNlcyBhIEhUTUwgZnJhZ21lbnQgYW5kIHRyYXZlcnNlcyBhbGwgQVNUIG5vZGVzIGluIG9yZGVyIGZpbmQgZWxlbWVudHMgdGhhdFxuICogaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFbGVtZW50c1dpdGhBdHRyaWJ1dGUoaHRtbDogc3RyaW5nLCBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgZG9jdW1lbnQgPSBwYXJzZUZyYWdtZW50KGh0bWwsIHtzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlfSk7XG4gIGNvbnN0IGVsZW1lbnRzOiBFbGVtZW50W10gPSBbXTtcblxuICBjb25zdCB2aXNpdE5vZGVzID0gKG5vZGVzOiBDaGlsZE5vZGVbXSkgPT4ge1xuICAgIG5vZGVzLmZvckVhY2gobiA9PiB7XG4gICAgICBjb25zdCBub2RlID0gbiBhcyBFbGVtZW50O1xuXG4gICAgICBpZiAobm9kZS5jaGlsZE5vZGVzKSB7XG4gICAgICAgIHZpc2l0Tm9kZXMobm9kZS5jaGlsZE5vZGVzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUuYXR0cnM/LnNvbWUoYXR0ciA9PiBhdHRyLm5hbWUgPT09IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgZWxlbWVudHMucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICB2aXNpdE5vZGVzKGRvY3VtZW50LmNoaWxkTm9kZXMpO1xuXG4gIHJldHVybiBlbGVtZW50cztcbn1cblxuLyoqXG4gKiBGaW5kcyBlbGVtZW50cyB3aXRoIGV4cGxpY2l0IHRhZyBuYW1lcyB0aGF0IGFsc28gY29udGFpbiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZS4gUmV0dXJucyB0aGVcbiAqIGF0dHJpYnV0ZSBzdGFydCBvZmZzZXQgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZmluZEVsZW1lbnRzV2l0aEF0dHJpYnV0ZShodG1sLCBuYW1lKVxuICAgIC5maWx0ZXIoZWxlbWVudCA9PiB0YWdOYW1lcy5pbmNsdWRlcyhlbGVtZW50LnRhZ05hbWUpKVxuICAgIC5tYXAoZWxlbWVudCA9PiBnZXRTdGFydE9mZnNldE9mQXR0cmlidXRlKGVsZW1lbnQsIG5hbWUpKTtcbn1cblxuLyoqXG4gKiBGaW5kcyBlbGVtZW50cyB0aGF0IGNvbnRhaW4gdGhlIGdpdmVuIGF0dHJpYnV0ZSBhbmQgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgdGhlIG90aGVyXG4gKiBzcGVjaWZpZWQgYXR0cmlidXRlcy4gUmV0dXJucyB0aGUgcHJpbWFyeSBhdHRyaWJ1dGUncyBzdGFydCBvZmZzZXQgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYXR0cnM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBmaW5kRWxlbWVudHNXaXRoQXR0cmlidXRlKGh0bWwsIG5hbWUpXG4gICAgLmZpbHRlcihlbGVtZW50ID0+IGF0dHJzLnNvbWUoYXR0ciA9PiBoYXNFbGVtZW50QXR0cmlidXRlKGVsZW1lbnQsIGF0dHIpKSlcbiAgICAubWFwKGVsZW1lbnQgPT4gZ2V0U3RhcnRPZmZzZXRPZkF0dHJpYnV0ZShlbGVtZW50LCBuYW1lKSk7XG59XG5cbi8qKiBTaG9ydGhhbmQgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGNvbnRhaW5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUuICovXG5mdW5jdGlvbiBoYXNFbGVtZW50QXR0cmlidXRlKGVsZW1lbnQ6IEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZWxlbWVudC5hdHRycyAmJiBlbGVtZW50LmF0dHJzLnNvbWUoYXR0ciA9PiBhdHRyLm5hbWUgPT09IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8qKiBHZXRzIHRoZSBzdGFydCBvZmZzZXQgb2YgdGhlIGdpdmVuIGF0dHJpYnV0ZSBmcm9tIGEgUGFyc2U1IGVsZW1lbnQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhcnRPZmZzZXRPZkF0dHJpYnV0ZShlbGVtZW50OiBhbnksIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gIHJldHVybiBlbGVtZW50LnNvdXJjZUNvZGVMb2NhdGlvbi5hdHRyc1thdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCldLnN0YXJ0T2Zmc2V0O1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
9
|
+
/** Entry point for the migration schematics with target of Angular CDK 17.0.0 */
|
|
10
|
+
export declare function updateToV17(): Rule;
|
|
@@ -0,0 +1,30 @@
|
|
|
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.updateToV17 = void 0;
|
|
11
|
+
const target_version_1 = require("../update-tool/target-version");
|
|
12
|
+
const upgrade_data_1 = require("./upgrade-data");
|
|
13
|
+
const devkit_migration_rule_1 = require("./devkit-migration-rule");
|
|
14
|
+
const cdkMigrations = [];
|
|
15
|
+
/** Entry point for the migration schematics with target of Angular CDK 17.0.0 */
|
|
16
|
+
function updateToV17() {
|
|
17
|
+
return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V17, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
|
|
18
|
+
}
|
|
19
|
+
exports.updateToV17 = updateToV17;
|
|
20
|
+
/** Function that will be called when the migration completed. */
|
|
21
|
+
function onMigrationComplete(context, targetVersion, hasFailures) {
|
|
22
|
+
context.logger.info('');
|
|
23
|
+
context.logger.info(` ✓ Updated Angular CDK to ${targetVersion}`);
|
|
24
|
+
context.logger.info('');
|
|
25
|
+
if (hasFailures) {
|
|
26
|
+
context.logger.warn(' ⚠ Some issues were detected but could not be fixed automatically. Please check the ' +
|
|
27
|
+
'output above and fix these issues manually.');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILGtFQUE0RDtBQUM1RCxpREFBOEM7QUFDOUMsbUVBQThGO0FBRTlGLE1BQU0sYUFBYSxHQUE4QixFQUFFLENBQUM7QUFFcEQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRUFBaUU7QUFDakUsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsV0FBb0I7SUFFcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEIsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsd0ZBQXdGO1lBQ3RGLDZDQUE2QyxDQUNoRCxDQUFDO0tBQ0g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuLi91cGRhdGUtdG9vbC90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge2Nka1VwZ3JhZGVEYXRhfSBmcm9tICcuL3VwZ3JhZGUtZGF0YSc7XG5pbXBvcnQge2NyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUsIE51bGxhYmxlRGV2a2l0TWlncmF0aW9ufSBmcm9tICcuL2RldmtpdC1taWdyYXRpb24tcnVsZSc7XG5cbmNvbnN0IGNka01pZ3JhdGlvbnM6IE51bGxhYmxlRGV2a2l0TWlncmF0aW9uW10gPSBbXTtcblxuLyoqIEVudHJ5IHBvaW50IGZvciB0aGUgbWlncmF0aW9uIHNjaGVtYXRpY3Mgd2l0aCB0YXJnZXQgb2YgQW5ndWxhciBDREsgMTcuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WMTcoKTogUnVsZSB7XG4gIHJldHVybiBjcmVhdGVNaWdyYXRpb25TY2hlbWF0aWNSdWxlKFxuICAgIFRhcmdldFZlcnNpb24uVjE3LFxuICAgIGNka01pZ3JhdGlvbnMsXG4gICAgY2RrVXBncmFkZURhdGEsXG4gICAgb25NaWdyYXRpb25Db21wbGV0ZSxcbiAgKTtcbn1cblxuLyoqIEZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGNvbXBsZXRlZC4gKi9cbmZ1bmN0aW9uIG9uTWlncmF0aW9uQ29tcGxldGUoXG4gIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQsXG4gIHRhcmdldFZlcnNpb246IFRhcmdldFZlcnNpb24sXG4gIGhhc0ZhaWx1cmVzOiBib29sZWFuLFxuKSB7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oJycpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKGAgIOKckyAgVXBkYXRlZCBBbmd1bGFyIENESyB0byAke3RhcmdldFZlcnNpb259YCk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oJycpO1xuXG4gIGlmIChoYXNGYWlsdXJlcykge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAnICDimqAgIFNvbWUgaXNzdWVzIHdlcmUgZGV0ZWN0ZWQgYnV0IGNvdWxkIG5vdCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LiBQbGVhc2UgY2hlY2sgdGhlICcgK1xuICAgICAgICAnb3V0cHV0IGFib3ZlIGFuZCBmaXggdGhlc2UgaXNzdWVzIG1hbnVhbGx5LicsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import * as ts from 'typescript';
|
|
9
|
+
import { ResolvedResource } from '../../update-tool/component-resource-collector';
|
|
10
|
+
import { Migration } from '../../update-tool/migration';
|
|
11
|
+
import { AttributeSelectorUpgradeData } from '../data/attribute-selectors';
|
|
12
|
+
import { UpgradeData } from '../upgrade-data';
|
|
13
|
+
/**
|
|
14
|
+
* Migration that walks through every string literal, template and stylesheet
|
|
15
|
+
* in order to switch deprecated attribute selectors to the updated selector.
|
|
16
|
+
*/
|
|
17
|
+
export declare class AttributeSelectorsMigration extends Migration<UpgradeData> {
|
|
18
|
+
/** Required upgrade changes for specified target version. */
|
|
19
|
+
data: AttributeSelectorUpgradeData[];
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
visitNode(node: ts.Node): void;
|
|
22
|
+
visitTemplate(template: ResolvedResource): void;
|
|
23
|
+
visitStylesheet(stylesheet: ResolvedResource): void;
|
|
24
|
+
private _visitStringLiteralLike;
|
|
25
|
+
private _replaceSelector;
|
|
26
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.AttributeSelectorsMigration = void 0;
|
|
11
|
+
const ts = require("typescript");
|
|
12
|
+
const migration_1 = require("../../update-tool/migration");
|
|
13
|
+
const literal_1 = require("../typescript/literal");
|
|
14
|
+
const upgrade_data_1 = require("../upgrade-data");
|
|
15
|
+
/**
|
|
16
|
+
* Migration that walks through every string literal, template and stylesheet
|
|
17
|
+
* in order to switch deprecated attribute selectors to the updated selector.
|
|
18
|
+
*/
|
|
19
|
+
class AttributeSelectorsMigration extends migration_1.Migration {
|
|
20
|
+
/** Required upgrade changes for specified target version. */
|
|
21
|
+
data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'attributeSelectors');
|
|
22
|
+
// Only enable the migration rule if there is upgrade data.
|
|
23
|
+
enabled = this.data.length !== 0;
|
|
24
|
+
visitNode(node) {
|
|
25
|
+
if (ts.isStringLiteralLike(node)) {
|
|
26
|
+
this._visitStringLiteralLike(node);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
visitTemplate(template) {
|
|
30
|
+
this.data.forEach(selector => {
|
|
31
|
+
(0, literal_1.findAllSubstringIndices)(template.content, selector.replace)
|
|
32
|
+
.map(offset => template.start + offset)
|
|
33
|
+
.forEach(start => this._replaceSelector(template.filePath, start, selector));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
visitStylesheet(stylesheet) {
|
|
37
|
+
this.data.forEach(selector => {
|
|
38
|
+
const currentSelector = `[${selector.replace}]`;
|
|
39
|
+
const updatedSelector = `[${selector.replaceWith}]`;
|
|
40
|
+
(0, literal_1.findAllSubstringIndices)(stylesheet.content, currentSelector)
|
|
41
|
+
.map(offset => stylesheet.start + offset)
|
|
42
|
+
.forEach(start => this._replaceSelector(stylesheet.filePath, start, {
|
|
43
|
+
replace: currentSelector,
|
|
44
|
+
replaceWith: updatedSelector,
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
_visitStringLiteralLike(literal) {
|
|
49
|
+
if (literal.parent && literal.parent.kind !== ts.SyntaxKind.CallExpression) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const literalText = literal.getText();
|
|
53
|
+
const filePath = this.fileSystem.resolve(literal.getSourceFile().fileName);
|
|
54
|
+
this.data.forEach(selector => {
|
|
55
|
+
(0, literal_1.findAllSubstringIndices)(literalText, selector.replace)
|
|
56
|
+
.map(offset => literal.getStart() + offset)
|
|
57
|
+
.forEach(start => this._replaceSelector(filePath, start, selector));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
_replaceSelector(filePath, start, data) {
|
|
61
|
+
this.fileSystem
|
|
62
|
+
.edit(filePath)
|
|
63
|
+
.remove(start, data.replace.length)
|
|
64
|
+
.insertRight(start, data.replaceWith);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.AttributeSelectorsMigration = AttributeSelectorsMigration;
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvbWlncmF0aW9ucy9hdHRyaWJ1dGUtc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILGlDQUFpQztBQUdqQywyREFBc0Q7QUFFdEQsbURBQThEO0FBQzlELGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHFCQUFzQjtJQUNyRSw2REFBNkQ7SUFDN0QsSUFBSSxHQUFHLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFFekQsMkRBQTJEO0lBQzNELE9BQU8sR0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFakMsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVRLGFBQWEsQ0FBQyxRQUEwQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7aUJBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLGVBQWUsQ0FBQyxVQUE0QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQztZQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQztZQUVwRCxJQUFBLGlDQUF1QixFQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO2lCQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNoRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLGVBQWU7YUFDN0IsQ0FBQyxDQUNILENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUE2QjtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDMUUsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO2lCQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixRQUF1QixFQUN2QixLQUFhLEVBQ2IsSUFBa0M7UUFFbEMsSUFBSSxDQUFDLFVBQVU7YUFDWixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUNsQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUE5REQsa0VBOERDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9maWxlLXN5c3RlbSc7XG5pbXBvcnQge1Jlc29sdmVkUmVzb3VyY2V9IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL2NvbXBvbmVudC1yZXNvdXJjZS1jb2xsZWN0b3InO1xuaW1wb3J0IHtNaWdyYXRpb259IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL21pZ3JhdGlvbic7XG5pbXBvcnQge0F0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGF9IGZyb20gJy4uL2RhdGEvYXR0cmlidXRlLXNlbGVjdG9ycyc7XG5pbXBvcnQge2ZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzfSBmcm9tICcuLi90eXBlc2NyaXB0L2xpdGVyYWwnO1xuaW1wb3J0IHtnZXRWZXJzaW9uVXBncmFkZURhdGEsIFVwZ3JhZGVEYXRhfSBmcm9tICcuLi91cGdyYWRlLWRhdGEnO1xuXG4vKipcbiAqIE1pZ3JhdGlvbiB0aGF0IHdhbGtzIHRocm91Z2ggZXZlcnkgc3RyaW5nIGxpdGVyYWwsIHRlbXBsYXRlIGFuZCBzdHlsZXNoZWV0XG4gKiBpbiBvcmRlciB0byBzd2l0Y2ggZGVwcmVjYXRlZCBhdHRyaWJ1dGUgc2VsZWN0b3JzIHRvIHRoZSB1cGRhdGVkIHNlbGVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlU2VsZWN0b3JzTWlncmF0aW9uIGV4dGVuZHMgTWlncmF0aW9uPFVwZ3JhZGVEYXRhPiB7XG4gIC8qKiBSZXF1aXJlZCB1cGdyYWRlIGNoYW5nZXMgZm9yIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnYXR0cmlidXRlU2VsZWN0b3JzJyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpIHtcbiAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShub2RlKSkge1xuICAgICAgdGhpcy5fdmlzaXRTdHJpbmdMaXRlcmFsTGlrZShub2RlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKSB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXModGVtcGxhdGUuY29udGVudCwgc2VsZWN0b3IucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gdGVtcGxhdGUuc3RhcnQgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3Rvcih0ZW1wbGF0ZS5maWxlUGF0aCwgc3RhcnQsIHNlbGVjdG9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RvciA9IGBbJHtzZWxlY3Rvci5yZXBsYWNlfV1gO1xuICAgICAgY29uc3QgdXBkYXRlZFNlbGVjdG9yID0gYFske3NlbGVjdG9yLnJlcGxhY2VXaXRofV1gO1xuXG4gICAgICBmaW5kQWxsU3Vic3RyaW5nSW5kaWNlcyhzdHlsZXNoZWV0LmNvbnRlbnQsIGN1cnJlbnRTZWxlY3RvcilcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gc3R5bGVzaGVldC5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT5cbiAgICAgICAgICB0aGlzLl9yZXBsYWNlU2VsZWN0b3Ioc3R5bGVzaGVldC5maWxlUGF0aCwgc3RhcnQsIHtcbiAgICAgICAgICAgIHJlcGxhY2U6IGN1cnJlbnRTZWxlY3RvcixcbiAgICAgICAgICAgIHJlcGxhY2VXaXRoOiB1cGRhdGVkU2VsZWN0b3IsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdFN0cmluZ0xpdGVyYWxMaWtlKGxpdGVyYWw6IHRzLlN0cmluZ0xpdGVyYWxMaWtlKSB7XG4gICAgaWYgKGxpdGVyYWwucGFyZW50ICYmIGxpdGVyYWwucGFyZW50LmtpbmQgIT09IHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXRlcmFsVGV4dCA9IGxpdGVyYWwuZ2V0VGV4dCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUobGl0ZXJhbC5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXMobGl0ZXJhbFRleHQsIHNlbGVjdG9yLnJlcGxhY2UpXG4gICAgICAgIC5tYXAob2Zmc2V0ID0+IGxpdGVyYWwuZ2V0U3RhcnQoKSArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT4gdGhpcy5fcmVwbGFjZVNlbGVjdG9yKGZpbGVQYXRoLCBzdGFydCwgc2VsZWN0b3IpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VTZWxlY3RvcihcbiAgICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIGRhdGE6IEF0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGEsXG4gICkge1xuICAgIHRoaXMuZmlsZVN5c3RlbVxuICAgICAgLmVkaXQoZmlsZVBhdGgpXG4gICAgICAucmVtb3ZlKHN0YXJ0LCBkYXRhLnJlcGxhY2UubGVuZ3RoKVxuICAgICAgLmluc2VydFJpZ2h0KHN0YXJ0LCBkYXRhLnJlcGxhY2VXaXRoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import * as ts from 'typescript';
|
|
9
|
+
import { Migration } from '../../update-tool/migration';
|
|
10
|
+
import { PropertyNameUpgradeData } from '../data/property-names';
|
|
11
|
+
import { UpgradeData } from '../upgrade-data';
|
|
12
|
+
/**
|
|
13
|
+
* Migration that identifies class declarations that extend CDK or Material classes
|
|
14
|
+
* which had a public property change.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ClassInheritanceMigration extends Migration<UpgradeData> {
|
|
17
|
+
/**
|
|
18
|
+
* Map of classes that have been updated. Each class name maps to the according property
|
|
19
|
+
* change data.
|
|
20
|
+
*/
|
|
21
|
+
propertyNames: Map<string, PropertyNameUpgradeData>;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
init(): void;
|
|
24
|
+
visitNode(node: ts.Node): void;
|
|
25
|
+
private _visitClassDeclaration;
|
|
26
|
+
}
|
|
@@ -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
|
+
exports.ClassInheritanceMigration = void 0;
|
|
11
|
+
const ts = require("typescript");
|
|
12
|
+
const migration_1 = require("../../update-tool/migration");
|
|
13
|
+
const base_types_1 = require("../typescript/base-types");
|
|
14
|
+
const upgrade_data_1 = require("../upgrade-data");
|
|
15
|
+
/**
|
|
16
|
+
* Migration that identifies class declarations that extend CDK or Material classes
|
|
17
|
+
* which had a public property change.
|
|
18
|
+
*/
|
|
19
|
+
class ClassInheritanceMigration extends migration_1.Migration {
|
|
20
|
+
/**
|
|
21
|
+
* Map of classes that have been updated. Each class name maps to the according property
|
|
22
|
+
* change data.
|
|
23
|
+
*/
|
|
24
|
+
propertyNames = new Map();
|
|
25
|
+
// Only enable the migration rule if there is upgrade data.
|
|
26
|
+
enabled = this.propertyNames.size !== 0;
|
|
27
|
+
init() {
|
|
28
|
+
(0, upgrade_data_1.getVersionUpgradeData)(this, 'propertyNames')
|
|
29
|
+
.filter(data => data.limitedTo && data.limitedTo.classes)
|
|
30
|
+
.forEach(data => data.limitedTo.classes.forEach(name => this.propertyNames.set(name, data)));
|
|
31
|
+
}
|
|
32
|
+
visitNode(node) {
|
|
33
|
+
if (ts.isClassDeclaration(node)) {
|
|
34
|
+
this._visitClassDeclaration(node);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
_visitClassDeclaration(node) {
|
|
38
|
+
const baseTypes = (0, base_types_1.determineBaseTypes)(node);
|
|
39
|
+
const className = node.name ? node.name.text : '{unknown-name}';
|
|
40
|
+
if (!baseTypes) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
baseTypes.forEach(typeName => {
|
|
44
|
+
const data = this.propertyNames.get(typeName);
|
|
45
|
+
if (data) {
|
|
46
|
+
this.createFailureAtNode(node, `Found class "${className}" which extends class ` +
|
|
47
|
+
`"${typeName}". Please note that the base class property ` +
|
|
48
|
+
`"${data.replace}" has changed to "${data.replaceWith}". ` +
|
|
49
|
+
`You may need to update your class as well.`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ClassInheritanceMigration = ClassInheritanceMigration;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtaW5oZXJpdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvY2xhc3MtaW5oZXJpdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBQ2pDLDJEQUFzRDtBQUV0RCx5REFBNEQ7QUFDNUQsa0RBQW1FO0FBRW5FOzs7R0FHRztBQUNILE1BQWEseUJBQTBCLFNBQVEscUJBQXNCO0lBQ25FOzs7T0FHRztJQUNILGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUUzRCwyREFBMkQ7SUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUUvQixJQUFJO1FBQ1gsSUFBQSxvQ0FBcUIsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO2FBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7YUFDeEQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRVEsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQXlCO1FBQ3RELE1BQU0sU0FBUyxHQUFHLElBQUEsK0JBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBRWhFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFFRCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTlDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FDdEIsSUFBSSxFQUNKLGdCQUFnQixTQUFTLHdCQUF3QjtvQkFDL0MsSUFBSSxRQUFRLDhDQUE4QztvQkFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxxQkFBcUIsSUFBSSxDQUFDLFdBQVcsS0FBSztvQkFDMUQsNENBQTRDLENBQy9DLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBNUNELDhEQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuaW1wb3J0IHtQcm9wZXJ0eU5hbWVVcGdyYWRlRGF0YX0gZnJvbSAnLi4vZGF0YS9wcm9wZXJ0eS1uYW1lcyc7XG5pbXBvcnQge2RldGVybWluZUJhc2VUeXBlc30gZnJvbSAnLi4vdHlwZXNjcmlwdC9iYXNlLXR5cGVzJztcbmltcG9ydCB7Z2V0VmVyc2lvblVwZ3JhZGVEYXRhLCBVcGdyYWRlRGF0YX0gZnJvbSAnLi4vdXBncmFkZS1kYXRhJztcblxuLyoqXG4gKiBNaWdyYXRpb24gdGhhdCBpZGVudGlmaWVzIGNsYXNzIGRlY2xhcmF0aW9ucyB0aGF0IGV4dGVuZCBDREsgb3IgTWF0ZXJpYWwgY2xhc3Nlc1xuICogd2hpY2ggaGFkIGEgcHVibGljIHByb3BlcnR5IGNoYW5nZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzSW5oZXJpdGFuY2VNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqXG4gICAqIE1hcCBvZiBjbGFzc2VzIHRoYXQgaGF2ZSBiZWVuIHVwZGF0ZWQuIEVhY2ggY2xhc3MgbmFtZSBtYXBzIHRvIHRoZSBhY2NvcmRpbmcgcHJvcGVydHlcbiAgICogY2hhbmdlIGRhdGEuXG4gICAqL1xuICBwcm9wZXJ0eU5hbWVzID0gbmV3IE1hcDxzdHJpbmcsIFByb3BlcnR5TmFtZVVwZ3JhZGVEYXRhPigpO1xuXG4gIC8vIE9ubHkgZW5hYmxlIHRoZSBtaWdyYXRpb24gcnVsZSBpZiB0aGVyZSBpcyB1cGdyYWRlIGRhdGEuXG4gIGVuYWJsZWQgPSB0aGlzLnByb3BlcnR5TmFtZXMuc2l6ZSAhPT0gMDtcblxuICBvdmVycmlkZSBpbml0KCk6IHZvaWQge1xuICAgIGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAncHJvcGVydHlOYW1lcycpXG4gICAgICAuZmlsdGVyKGRhdGEgPT4gZGF0YS5saW1pdGVkVG8gJiYgZGF0YS5saW1pdGVkVG8uY2xhc3NlcylcbiAgICAgIC5mb3JFYWNoKGRhdGEgPT4gZGF0YS5saW1pdGVkVG8uY2xhc3Nlcy5mb3JFYWNoKG5hbWUgPT4gdGhpcy5wcm9wZXJ0eU5hbWVzLnNldChuYW1lLCBkYXRhKSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpOiB2b2lkIHtcbiAgICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICB0aGlzLl92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pIHtcbiAgICBjb25zdCBiYXNlVHlwZXMgPSBkZXRlcm1pbmVCYXNlVHlwZXMobm9kZSk7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gbm9kZS5uYW1lID8gbm9kZS5uYW1lLnRleHQgOiAne3Vua25vd24tbmFtZX0nO1xuXG4gICAgaWYgKCFiYXNlVHlwZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBiYXNlVHlwZXMuZm9yRWFjaCh0eXBlTmFtZSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5wcm9wZXJ0eU5hbWVzLmdldCh0eXBlTmFtZSk7XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRmFpbHVyZUF0Tm9kZShcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGBGb3VuZCBjbGFzcyBcIiR7Y2xhc3NOYW1lfVwiIHdoaWNoIGV4dGVuZHMgY2xhc3MgYCArXG4gICAgICAgICAgICBgXCIke3R5cGVOYW1lfVwiLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBiYXNlIGNsYXNzIHByb3BlcnR5IGAgK1xuICAgICAgICAgICAgYFwiJHtkYXRhLnJlcGxhY2V9XCIgaGFzIGNoYW5nZWQgdG8gXCIke2RhdGEucmVwbGFjZVdpdGh9XCIuIGAgK1xuICAgICAgICAgICAgYFlvdSBtYXkgbmVlZCB0byB1cGRhdGUgeW91ciBjbGFzcyBhcyB3ZWxsLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import * as ts from 'typescript';
|
|
9
|
+
import { Migration } from '../../update-tool/migration';
|
|
10
|
+
import { ClassNameUpgradeData } from '../data';
|
|
11
|
+
import { UpgradeData } from '../upgrade-data';
|
|
12
|
+
/**
|
|
13
|
+
* Migration that walks through every identifier that is part of Angular Material or thr CDK
|
|
14
|
+
* and replaces the outdated name with the new one if specified in the upgrade data.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ClassNamesMigration extends Migration<UpgradeData> {
|
|
17
|
+
/** Change data that upgrades to the specified target version. */
|
|
18
|
+
data: ClassNameUpgradeData[];
|
|
19
|
+
/**
|
|
20
|
+
* List of identifier names that have been imported from `@angular/material` or `@angular/cdk`
|
|
21
|
+
* in the current source file and therefore can be considered trusted.
|
|
22
|
+
*/
|
|
23
|
+
trustedIdentifiers: Set<string>;
|
|
24
|
+
/** List of namespaces that have been imported from `@angular/material` or `@angular/cdk`. */
|
|
25
|
+
trustedNamespaces: Set<string>;
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
visitNode(node: ts.Node): void;
|
|
28
|
+
/** Method that is called for every identifier inside of the specified project. */
|
|
29
|
+
private _visitIdentifier;
|
|
30
|
+
/** Creates a failure and replacement for the specified identifier. */
|
|
31
|
+
private _createFailureWithReplacement;
|
|
32
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
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.ClassNamesMigration = void 0;
|
|
11
|
+
const ts = require("typescript");
|
|
12
|
+
const migration_1 = require("../../update-tool/migration");
|
|
13
|
+
const imports_1 = require("../typescript/imports");
|
|
14
|
+
const module_specifiers_1 = require("../typescript/module-specifiers");
|
|
15
|
+
const upgrade_data_1 = require("../upgrade-data");
|
|
16
|
+
/**
|
|
17
|
+
* Migration that walks through every identifier that is part of Angular Material or thr CDK
|
|
18
|
+
* and replaces the outdated name with the new one if specified in the upgrade data.
|
|
19
|
+
*/
|
|
20
|
+
// TODO: rework this rule to identify symbols using the import identifier resolver. This
|
|
21
|
+
// makes it more robust, less AST convoluted and is more TypeScript AST idiomatic. COMP-300.
|
|
22
|
+
class ClassNamesMigration extends migration_1.Migration {
|
|
23
|
+
/** Change data that upgrades to the specified target version. */
|
|
24
|
+
data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'classNames');
|
|
25
|
+
/**
|
|
26
|
+
* List of identifier names that have been imported from `@angular/material` or `@angular/cdk`
|
|
27
|
+
* in the current source file and therefore can be considered trusted.
|
|
28
|
+
*/
|
|
29
|
+
trustedIdentifiers = new Set();
|
|
30
|
+
/** List of namespaces that have been imported from `@angular/material` or `@angular/cdk`. */
|
|
31
|
+
trustedNamespaces = new Set();
|
|
32
|
+
// Only enable the migration rule if there is upgrade data.
|
|
33
|
+
enabled = this.data.length !== 0;
|
|
34
|
+
visitNode(node) {
|
|
35
|
+
if (ts.isIdentifier(node)) {
|
|
36
|
+
this._visitIdentifier(node);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Method that is called for every identifier inside of the specified project. */
|
|
40
|
+
_visitIdentifier(identifier) {
|
|
41
|
+
// For identifiers that aren't listed in the className data, the whole check can be
|
|
42
|
+
// skipped safely.
|
|
43
|
+
if (!this.data.some(data => data.replace === identifier.text)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// For namespace imports that are referring to Angular Material or the CDK, we store the
|
|
47
|
+
// namespace name in order to be able to safely find identifiers that don't belong to the
|
|
48
|
+
// developer's application.
|
|
49
|
+
if ((0, imports_1.isNamespaceImportNode)(identifier) && (0, module_specifiers_1.isMaterialImportDeclaration)(identifier)) {
|
|
50
|
+
this.trustedNamespaces.add(identifier.text);
|
|
51
|
+
return this._createFailureWithReplacement(identifier);
|
|
52
|
+
}
|
|
53
|
+
// For export declarations that are referring to Angular Material or the CDK, the identifier
|
|
54
|
+
// can be immediately updated to the new name.
|
|
55
|
+
if ((0, imports_1.isExportSpecifierNode)(identifier) && (0, module_specifiers_1.isMaterialExportDeclaration)(identifier)) {
|
|
56
|
+
return this._createFailureWithReplacement(identifier);
|
|
57
|
+
}
|
|
58
|
+
// For import declarations that are referring to Angular Material or the CDK, the name of
|
|
59
|
+
// the import identifiers. This allows us to identify identifiers that belong to Material and
|
|
60
|
+
// the CDK, and we won't accidentally touch a developer's identifier.
|
|
61
|
+
if ((0, imports_1.isImportSpecifierNode)(identifier) && (0, module_specifiers_1.isMaterialImportDeclaration)(identifier)) {
|
|
62
|
+
this.trustedIdentifiers.add(identifier.text);
|
|
63
|
+
return this._createFailureWithReplacement(identifier);
|
|
64
|
+
}
|
|
65
|
+
// In case the identifier is part of a property access expression, we need to verify that the
|
|
66
|
+
// property access originates from a namespace that has been imported from Material or the CDK.
|
|
67
|
+
if (ts.isPropertyAccessExpression(identifier.parent)) {
|
|
68
|
+
const expression = identifier.parent.expression;
|
|
69
|
+
if (ts.isIdentifier(expression) && this.trustedNamespaces.has(expression.text)) {
|
|
70
|
+
return this._createFailureWithReplacement(identifier);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (this.trustedIdentifiers.has(identifier.text)) {
|
|
74
|
+
return this._createFailureWithReplacement(identifier);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Creates a failure and replacement for the specified identifier. */
|
|
78
|
+
_createFailureWithReplacement(identifier) {
|
|
79
|
+
const classData = this.data.find(data => data.replace === identifier.text);
|
|
80
|
+
const filePath = this.fileSystem.resolve(identifier.getSourceFile().fileName);
|
|
81
|
+
this.fileSystem
|
|
82
|
+
.edit(filePath)
|
|
83
|
+
.remove(identifier.getStart(), identifier.getWidth())
|
|
84
|
+
.insertRight(identifier.getStart(), classData.replaceWith);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.ClassNamesMigration = ClassNamesMigration;
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvY2xhc3MtbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUNBQWlDO0FBQ2pDLDJEQUFzRDtBQUd0RCxtREFJK0I7QUFDL0IsdUVBR3lDO0FBQ3pDLGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCx3RkFBd0Y7QUFDeEYsNEZBQTRGO0FBQzVGLE1BQWEsbUJBQW9CLFNBQVEscUJBQXNCO0lBQzdELGlFQUFpRTtJQUNqRSxJQUFJLEdBQTJCLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXpFOzs7T0FHRztJQUNILGtCQUFrQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTVDLDZGQUE2RjtJQUM3RixpQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUUzQywyREFBMkQ7SUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUV4QixTQUFTLENBQUMsSUFBYTtRQUM5QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGtGQUFrRjtJQUMxRSxnQkFBZ0IsQ0FBQyxVQUF5QjtRQUNoRCxtRkFBbUY7UUFDbkYsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdELE9BQU87U0FDUjtRQUVELHdGQUF3RjtRQUN4Rix5RkFBeUY7UUFDekYsMkJBQTJCO1FBQzNCLElBQUksSUFBQSwrQkFBcUIsRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLCtDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsNEZBQTRGO1FBQzVGLDhDQUE4QztRQUM5QyxJQUFJLElBQUEsK0JBQXFCLEVBQUMsVUFBVSxDQUFDLElBQUksSUFBQSwrQ0FBMkIsRUFBQyxVQUFVLENBQUMsRUFBRTtZQUNoRixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2RDtRQUVELHlGQUF5RjtRQUN6Riw2RkFBNkY7UUFDN0YscUVBQXFFO1FBQ3JFLElBQUksSUFBQSwrQkFBcUIsRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLCtDQUEyQixFQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsNkZBQTZGO1FBQzdGLCtGQUErRjtRQUMvRixJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFFaEQsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN2RDtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxzRUFBc0U7SUFDOUQsNkJBQTZCLENBQUMsVUFBeUI7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFVBQVU7YUFDWixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDcEQsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBN0VELGtEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7TWlncmF0aW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9taWdyYXRpb24nO1xuXG5pbXBvcnQge0NsYXNzTmFtZVVwZ3JhZGVEYXRhfSBmcm9tICcuLi9kYXRhJztcbmltcG9ydCB7XG4gIGlzRXhwb3J0U3BlY2lmaWVyTm9kZSxcbiAgaXNJbXBvcnRTcGVjaWZpZXJOb2RlLFxuICBpc05hbWVzcGFjZUltcG9ydE5vZGUsXG59IGZyb20gJy4uL3R5cGVzY3JpcHQvaW1wb3J0cyc7XG5pbXBvcnQge1xuICBpc01hdGVyaWFsRXhwb3J0RGVjbGFyYXRpb24sXG4gIGlzTWF0ZXJpYWxJbXBvcnREZWNsYXJhdGlvbixcbn0gZnJvbSAnLi4vdHlwZXNjcmlwdC9tb2R1bGUtc3BlY2lmaWVycyc7XG5pbXBvcnQge2dldFZlcnNpb25VcGdyYWRlRGF0YSwgVXBncmFkZURhdGF9IGZyb20gJy4uL3VwZ3JhZGUtZGF0YSc7XG5cbi8qKlxuICogTWlncmF0aW9uIHRoYXQgd2Fsa3MgdGhyb3VnaCBldmVyeSBpZGVudGlmaWVyIHRoYXQgaXMgcGFydCBvZiBBbmd1bGFyIE1hdGVyaWFsIG9yIHRociBDREtcbiAqIGFuZCByZXBsYWNlcyB0aGUgb3V0ZGF0ZWQgbmFtZSB3aXRoIHRoZSBuZXcgb25lIGlmIHNwZWNpZmllZCBpbiB0aGUgdXBncmFkZSBkYXRhLlxuICovXG4vLyBUT0RPOiByZXdvcmsgdGhpcyBydWxlIHRvIGlkZW50aWZ5IHN5bWJvbHMgdXNpbmcgdGhlIGltcG9ydCBpZGVudGlmaWVyIHJlc29sdmVyLiBUaGlzXG4vLyBtYWtlcyBpdCBtb3JlIHJvYnVzdCwgbGVzcyBBU1QgY29udm9sdXRlZCBhbmQgaXMgbW9yZSBUeXBlU2NyaXB0IEFTVCBpZGlvbWF0aWMuIENPTVAtMzAwLlxuZXhwb3J0IGNsYXNzIENsYXNzTmFtZXNNaWdyYXRpb24gZXh0ZW5kcyBNaWdyYXRpb248VXBncmFkZURhdGE+IHtcbiAgLyoqIENoYW5nZSBkYXRhIHRoYXQgdXBncmFkZXMgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YTogQ2xhc3NOYW1lVXBncmFkZURhdGFbXSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnY2xhc3NOYW1lcycpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGlkZW50aWZpZXIgbmFtZXMgdGhhdCBoYXZlIGJlZW4gaW1wb3J0ZWQgZnJvbSBgQGFuZ3VsYXIvbWF0ZXJpYWxgIG9yIGBAYW5ndWxhci9jZGtgXG4gICAqIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlIGFuZCB0aGVyZWZvcmUgY2FuIGJlIGNvbnNpZGVyZWQgdHJ1c3RlZC5cbiAgICovXG4gIHRydXN0ZWRJZGVudGlmaWVyczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgLyoqIExpc3Qgb2YgbmFtZXNwYWNlcyB0aGF0IGhhdmUgYmVlbiBpbXBvcnRlZCBmcm9tIGBAYW5ndWxhci9tYXRlcmlhbGAgb3IgYEBhbmd1bGFyL2Nka2AuICovXG4gIHRydXN0ZWROYW1lc3BhY2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICAvLyBPbmx5IGVuYWJsZSB0aGUgbWlncmF0aW9uIHJ1bGUgaWYgdGhlcmUgaXMgdXBncmFkZSBkYXRhLlxuICBlbmFibGVkID0gdGhpcy5kYXRhLmxlbmd0aCAhPT0gMDtcblxuICBvdmVycmlkZSB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSk6IHZvaWQge1xuICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZSkpIHtcbiAgICAgIHRoaXMuX3Zpc2l0SWRlbnRpZmllcihub2RlKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWV0aG9kIHRoYXQgaXMgY2FsbGVkIGZvciBldmVyeSBpZGVudGlmaWVyIGluc2lkZSBvZiB0aGUgc3BlY2lmaWVkIHByb2plY3QuICovXG4gIHByaXZhdGUgX3Zpc2l0SWRlbnRpZmllcihpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKSB7XG4gICAgLy8gRm9yIGlkZW50aWZpZXJzIHRoYXQgYXJlbid0IGxpc3RlZCBpbiB0aGUgY2xhc3NOYW1lIGRhdGEsIHRoZSB3aG9sZSBjaGVjayBjYW4gYmVcbiAgICAvLyBza2lwcGVkIHNhZmVseS5cbiAgICBpZiAoIXRoaXMuZGF0YS5zb21lKGRhdGEgPT4gZGF0YS5yZXBsYWNlID09PSBpZGVudGlmaWVyLnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRm9yIG5hbWVzcGFjZSBpbXBvcnRzIHRoYXQgYXJlIHJlZmVycmluZyB0byBBbmd1bGFyIE1hdGVyaWFsIG9yIHRoZSBDREssIHdlIHN0b3JlIHRoZVxuICAgIC8vIG5hbWVzcGFjZSBuYW1lIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gc2FmZWx5IGZpbmQgaWRlbnRpZmllcnMgdGhhdCBkb24ndCBiZWxvbmcgdG8gdGhlXG4gICAgLy8gZGV2ZWxvcGVyJ3MgYXBwbGljYXRpb24uXG4gICAgaWYgKGlzTmFtZXNwYWNlSW1wb3J0Tm9kZShpZGVudGlmaWVyKSAmJiBpc01hdGVyaWFsSW1wb3J0RGVjbGFyYXRpb24oaWRlbnRpZmllcikpIHtcbiAgICAgIHRoaXMudHJ1c3RlZE5hbWVzcGFjZXMuYWRkKGlkZW50aWZpZXIudGV4dCk7XG5cbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgIH1cblxuICAgIC8vIEZvciBleHBvcnQgZGVjbGFyYXRpb25zIHRoYXQgYXJlIHJlZmVycmluZyB0byBBbmd1bGFyIE1hdGVyaWFsIG9yIHRoZSBDREssIHRoZSBpZGVudGlmaWVyXG4gICAgLy8gY2FuIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQgdG8gdGhlIG5ldyBuYW1lLlxuICAgIGlmIChpc0V4cG9ydFNwZWNpZmllck5vZGUoaWRlbnRpZmllcikgJiYgaXNNYXRlcmlhbEV4cG9ydERlY2xhcmF0aW9uKGlkZW50aWZpZXIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRmFpbHVyZVdpdGhSZXBsYWNlbWVudChpZGVudGlmaWVyKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgaW1wb3J0IGRlY2xhcmF0aW9ucyB0aGF0IGFyZSByZWZlcnJpbmcgdG8gQW5ndWxhciBNYXRlcmlhbCBvciB0aGUgQ0RLLCB0aGUgbmFtZSBvZlxuICAgIC8vIHRoZSBpbXBvcnQgaWRlbnRpZmllcnMuIFRoaXMgYWxsb3dzIHVzIHRvIGlkZW50aWZ5IGlkZW50aWZpZXJzIHRoYXQgYmVsb25nIHRvIE1hdGVyaWFsIGFuZFxuICAgIC8vIHRoZSBDREssIGFuZCB3ZSB3b24ndCBhY2NpZGVudGFsbHkgdG91Y2ggYSBkZXZlbG9wZXIncyBpZGVudGlmaWVyLlxuICAgIGlmIChpc0ltcG9ydFNwZWNpZmllck5vZGUoaWRlbnRpZmllcikgJiYgaXNNYXRlcmlhbEltcG9ydERlY2xhcmF0aW9uKGlkZW50aWZpZXIpKSB7XG4gICAgICB0aGlzLnRydXN0ZWRJZGVudGlmaWVycy5hZGQoaWRlbnRpZmllci50ZXh0KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUZhaWx1cmVXaXRoUmVwbGFjZW1lbnQoaWRlbnRpZmllcik7XG4gICAgfVxuXG4gICAgLy8gSW4gY2FzZSB0aGUgaWRlbnRpZmllciBpcyBwYXJ0IG9mIGEgcHJvcGVydHkgYWNjZXNzIGV4cHJlc3Npb24sIHdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhlXG4gICAgLy8gcHJvcGVydHkgYWNjZXNzIG9yaWdpbmF0ZXMgZnJvbSBhIG5hbWVzcGFjZSB0aGF0IGhhcyBiZWVuIGltcG9ydGVkIGZyb20gTWF0ZXJpYWwgb3IgdGhlIENESy5cbiAgICBpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oaWRlbnRpZmllci5wYXJlbnQpKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gaWRlbnRpZmllci5wYXJlbnQuZXhwcmVzc2lvbjtcblxuICAgICAgaWYgKHRzLmlzSWRlbnRpZmllcihleHByZXNzaW9uKSAmJiB0aGlzLnRydXN0ZWROYW1lc3BhY2VzLmhhcyhleHByZXNzaW9uLnRleHQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50cnVzdGVkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIudGV4dCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVGYWlsdXJlV2l0aFJlcGxhY2VtZW50KGlkZW50aWZpZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZmFpbHVyZSBhbmQgcmVwbGFjZW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllci4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRmFpbHVyZVdpdGhSZXBsYWNlbWVudChpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY2xhc3NEYXRhID0gdGhpcy5kYXRhLmZpbmQoZGF0YSA9PiBkYXRhLnJlcGxhY2UgPT09IGlkZW50aWZpZXIudGV4dCkhO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUoaWRlbnRpZmllci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5maWxlU3lzdGVtXG4gICAgICAuZWRpdChmaWxlUGF0aClcbiAgICAgIC5yZW1vdmUoaWRlbnRpZmllci5nZXRTdGFydCgpLCBpZGVudGlmaWVyLmdldFdpZHRoKCkpXG4gICAgICAuaW5zZXJ0UmlnaHQoaWRlbnRpZmllci5nZXRTdGFydCgpLCBjbGFzc0RhdGEucmVwbGFjZVdpdGgpO1xuICB9XG59XG4iXX0=
|