@angular/material 20.0.0-next.2 → 20.0.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/index.d.ts +5 -4
- package/badge/index.d.ts +2 -2
- package/badge/testing/index.d.ts +1 -1
- package/{badge.d-49a8a74b.d.ts → badge.d-d42103d0.d.ts} +1 -1
- package/bottom-sheet/index.d.ts +1 -0
- package/button/index.d.ts +4 -4
- package/button-toggle/index.d.ts +4 -4
- package/button-toggle/testing/index.d.ts +1 -1
- package/{button-toggle.d-edc8acff.d.ts → button-toggle.d-e3ddc80f.d.ts} +1 -1
- package/checkbox/index.d.ts +1 -1
- package/chips/index.d.ts +13 -3
- package/core/index.d.ts +11 -6
- package/core/m2/_theming.scss +68 -44
- package/core/tokens/_density.scss +1 -0
- package/datepicker/index.d.ts +5 -4
- package/dialog/index.d.ts +2 -2
- package/dialog/testing/index.d.ts +1 -1
- package/{dialog.d-57867441.d.ts → dialog.d-4ffbd89c.d.ts} +1 -1
- package/fesm2022/animation-5f89c9a6.mjs +33 -0
- package/fesm2022/animation-5f89c9a6.mjs.map +1 -0
- package/fesm2022/autocomplete/testing.mjs +2 -2
- package/fesm2022/autocomplete/testing.mjs.map +1 -1
- package/fesm2022/autocomplete.mjs +28 -25
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge/testing.mjs.map +1 -1
- package/fesm2022/badge.mjs +16 -15
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs +16 -13
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button/testing.mjs.map +1 -1
- package/fesm2022/button-toggle/testing.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs +19 -18
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs +8 -7
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card/testing.mjs.map +1 -1
- package/fesm2022/card.mjs +47 -47
- package/fesm2022/checkbox/testing.mjs.map +1 -1
- package/fesm2022/checkbox.mjs +16 -15
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips/testing.mjs +7 -1
- package/fesm2022/chips/testing.mjs.map +1 -1
- package/fesm2022/chips.mjs +74 -58
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/{common-module-2d64df09.mjs → common-module-3ec8031a.mjs} +5 -5
- package/fesm2022/{common-module-2d64df09.mjs.map → common-module-3ec8031a.mjs.map} +1 -1
- package/fesm2022/core/testing.mjs +2 -2
- package/fesm2022/core.mjs +26 -47
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/{date-range-input-harness-de70be6a.mjs → date-range-input-harness-3718a667.mjs} +1 -1
- package/fesm2022/date-range-input-harness-3718a667.mjs.map +1 -0
- package/fesm2022/datepicker/testing.mjs +2 -2
- package/fesm2022/datepicker/testing.mjs.map +1 -1
- package/fesm2022/datepicker.mjs +96 -93
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog/testing.mjs +3 -2
- package/fesm2022/dialog/testing.mjs.map +1 -1
- package/fesm2022/dialog.mjs +3 -2
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider.mjs +8 -8
- package/fesm2022/{error-options-4a00765e.mjs → error-options-ee129e4b.mjs} +7 -7
- package/fesm2022/{error-options-4a00765e.mjs.map → error-options-ee129e4b.mjs.map} +1 -1
- package/fesm2022/expansion.mjs +30 -29
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field/testing.mjs +4 -4
- package/fesm2022/{form-field-6d755764.mjs → form-field-9a53ebf1.mjs} +34 -34
- package/fesm2022/form-field-9a53ebf1.mjs.map +1 -0
- package/fesm2022/form-field.mjs +4 -3
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/grid-list.mjs +25 -25
- package/fesm2022/icon/testing.mjs +8 -8
- package/fesm2022/{icon-button-0850d958.mjs → icon-button-acdabdec.mjs} +13 -12
- package/fesm2022/icon-button-acdabdec.mjs.map +1 -0
- package/fesm2022/{icon-module-3f77a24d.mjs → icon-module-fd90a70e.mjs} +10 -10
- package/fesm2022/{icon-module-3f77a24d.mjs.map → icon-module-fd90a70e.mjs.map} +1 -1
- package/fesm2022/{icon-registry-13a3b98e.mjs → icon-registry-c1df72ea.mjs} +4 -4
- package/fesm2022/{icon-registry-13a3b98e.mjs.map → icon-registry-c1df72ea.mjs.map} +1 -1
- package/fesm2022/icon.mjs +3 -3
- package/fesm2022/{index-1763d3a6.mjs → index-1ea85b8e.mjs} +9 -9
- package/fesm2022/{index-1763d3a6.mjs.map → index-1ea85b8e.mjs.map} +1 -1
- package/fesm2022/{index-4bc1d6d3.mjs → index-b8da641d.mjs} +7 -7
- package/fesm2022/{index-4bc1d6d3.mjs.map → index-b8da641d.mjs.map} +1 -1
- package/fesm2022/input.mjs +13 -12
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/{internal-form-field-434c4039.mjs → internal-form-field-7304c17d.mjs} +4 -4
- package/fesm2022/{internal-form-field-434c4039.mjs.map → internal-form-field-7304c17d.mjs.map} +1 -1
- package/fesm2022/{line-d6afe347.mjs → line-d0757c01.mjs} +9 -9
- package/fesm2022/{line-d6afe347.mjs.map → line-d0757c01.mjs.map} +1 -1
- package/fesm2022/list.mjs +58 -59
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/material.mjs.map +1 -1
- package/fesm2022/menu/testing.mjs.map +1 -1
- package/fesm2022/menu.mjs +25 -23
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/{module-cf951a02.mjs → module-2701d616.mjs} +18 -18
- package/fesm2022/{module-cf951a02.mjs.map → module-2701d616.mjs.map} +1 -1
- package/fesm2022/{module-d757bba0.mjs → module-8175acdf.mjs} +7 -7
- package/fesm2022/{module-d757bba0.mjs.map → module-8175acdf.mjs.map} +1 -1
- package/fesm2022/{module-47e3be58.mjs → module-8c65f824.mjs} +18 -18
- package/fesm2022/module-8c65f824.mjs.map +1 -0
- package/fesm2022/{module-a5f9ab72.mjs → module-a40bca65.mjs} +36 -32
- package/fesm2022/module-a40bca65.mjs.map +1 -0
- package/fesm2022/{module-1c16a0a9.mjs → module-e7f30cea.mjs} +20 -19
- package/fesm2022/module-e7f30cea.mjs.map +1 -0
- package/fesm2022/{optgroup-harness-5e66b138.mjs → optgroup-harness-d5cf72ed.mjs} +2 -2
- package/fesm2022/optgroup-harness-d5cf72ed.mjs.map +1 -0
- package/fesm2022/{option-07c3c660.mjs → option-a77bb984.mjs} +10 -10
- package/fesm2022/{option-07c3c660.mjs.map → option-a77bb984.mjs.map} +1 -1
- package/fesm2022/{option-harness-3b7c1106.mjs → option-harness-b4971f41.mjs} +1 -1
- package/fesm2022/option-harness-b4971f41.mjs.map +1 -0
- package/fesm2022/paginator/testing.mjs +3 -3
- package/fesm2022/paginator/testing.mjs.map +1 -1
- package/fesm2022/paginator.mjs +27 -26
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs +11 -12
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs +11 -12
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/{pseudo-checkbox-af5a4ea4.mjs → pseudo-checkbox-006bd0a9.mjs} +8 -7
- package/fesm2022/pseudo-checkbox-006bd0a9.mjs.map +1 -0
- package/fesm2022/{pseudo-checkbox-module-216fae38.mjs → pseudo-checkbox-module-d04dbe5a.mjs} +7 -7
- package/fesm2022/{pseudo-checkbox-module-216fae38.mjs.map → pseudo-checkbox-module-d04dbe5a.mjs.map} +1 -1
- package/fesm2022/radio/testing.mjs.map +1 -1
- package/fesm2022/radio.mjs +18 -19
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/{ripple-9939d1f5.mjs → ripple-18f3bc18.mjs} +11 -10
- package/fesm2022/{ripple-9939d1f5.mjs.map → ripple-18f3bc18.mjs.map} +1 -1
- package/fesm2022/{ripple-loader-f2078c66.mjs → ripple-loader-e685c61f.mjs} +13 -13
- package/fesm2022/ripple-loader-e685c61f.mjs.map +1 -0
- package/fesm2022/select/testing.mjs +3 -3
- package/fesm2022/{select-harness-69d47123.mjs → select-harness-30466074.mjs} +3 -3
- package/fesm2022/select-harness-30466074.mjs.map +1 -0
- package/fesm2022/select.mjs +13 -12
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav/testing.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +27 -26
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle/testing.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs +14 -15
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider/testing.mjs.map +1 -1
- package/fesm2022/slider.mjs +23 -24
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar/testing.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs +34 -31
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/sort/testing.mjs.map +1 -1
- package/fesm2022/sort.mjs +19 -18
- package/fesm2022/sort.mjs.map +1 -1
- package/fesm2022/stepper/testing.mjs.map +1 -1
- package/fesm2022/stepper.mjs +43 -42
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/{structural-styles-d5ada3b3.mjs → structural-styles-e3fe1eb7.mjs} +4 -4
- package/fesm2022/{structural-styles-d5ada3b3.mjs.map → structural-styles-e3fe1eb7.mjs.map} +1 -1
- package/fesm2022/table/testing.mjs.map +1 -1
- package/fesm2022/table.mjs +56 -56
- package/fesm2022/tabs/testing.mjs.map +1 -1
- package/fesm2022/tabs.mjs +58 -65
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/timepicker/testing.mjs +1 -1
- package/fesm2022/timepicker/testing.mjs.map +1 -1
- package/fesm2022/timepicker.mjs +27 -26
- package/fesm2022/timepicker.mjs.map +1 -1
- package/fesm2022/toolbar/testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +11 -11
- package/fesm2022/tooltip/testing.mjs.map +1 -1
- package/fesm2022/tooltip.mjs +3 -2
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree/testing.mjs.map +1 -1
- package/fesm2022/tree.mjs +26 -26
- package/{index.d-0536b706.d.ts → index.d-cc6e48d4.d.ts} +1 -1
- package/{index.d-37e31cd3.d.ts → index.d-d77f0821.d.ts} +2 -2
- package/list/index.d.ts +3 -3
- package/menu/index.d.ts +3 -2
- package/{module.d-74a721b9.d.ts → module.d-9a0cb968.d.ts} +1 -0
- package/{module.d-ba05faa6.d.ts → module.d-a23953f5.d.ts} +1 -1
- package/{module.d-792a497c.d.ts → module.d-d86ca350.d.ts} +3 -3
- package/package.json +2 -2
- package/paginator/index.d.ts +8 -8
- package/progress-bar/index.d.ts +0 -1
- package/{pseudo-checkbox-module.d-3abc0461.d.ts → pseudo-checkbox-module.d-d21de92b.d.ts} +1 -1
- package/radio/index.d.ts +2 -2
- package/{ripple-loader.d-8aac2988.d.ts → ripple-loader.d-e5ac6c14.d.ts} +1 -1
- package/{ripple.d-2fb57d04.d.ts → ripple.d-f2cd74cf.d.ts} +1 -1
- package/schematics/ng-add/fonts/material-fonts.js +1 -1
- package/schematics/ng-add/fonts/material-fonts.js.map +1 -0
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/package-config.js +1 -1
- package/schematics/ng-add/package-config.js.map +1 -0
- package/schematics/ng-add/schema.js +1 -1
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/setup-project.js +1 -1
- package/schematics/ng-add/setup-project.js.map +1 -0
- package/schematics/ng-add/theming/create-custom-theme.js +1 -1
- package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
- package/schematics/ng-add/theming/theming.js +1 -1
- package/schematics/ng-add/theming/theming.js.map +1 -0
- package/schematics/ng-generate/address-form/index.js +1 -1
- package/schematics/ng-generate/address-form/index.js.map +1 -0
- package/schematics/ng-generate/address-form/schema.js +1 -1
- package/schematics/ng-generate/address-form/schema.js.map +1 -0
- package/schematics/ng-generate/dashboard/index.js +1 -1
- package/schematics/ng-generate/dashboard/index.js.map +1 -0
- package/schematics/ng-generate/dashboard/schema.js +1 -1
- package/schematics/ng-generate/dashboard/schema.js.map +1 -0
- package/schematics/ng-generate/navigation/index.js +1 -1
- package/schematics/ng-generate/navigation/index.js.map +1 -0
- package/schematics/ng-generate/navigation/schema.js +1 -1
- package/schematics/ng-generate/navigation/schema.js.map +1 -0
- package/schematics/ng-generate/table/index.js +1 -1
- package/schematics/ng-generate/table/index.js.map +1 -0
- package/schematics/ng-generate/table/schema.js +1 -1
- package/schematics/ng-generate/table/schema.js.map +1 -0
- package/schematics/ng-generate/theme-color/index_bundled.js +3828 -2237
- package/schematics/ng-generate/theme-color/index_bundled.js.map +4 -4
- package/schematics/ng-generate/tree/index.js +1 -1
- package/schematics/ng-generate/tree/index.js.map +1 -0
- package/schematics/ng-generate/tree/schema.js +1 -1
- package/schematics/ng-generate/tree/schema.js.map +1 -0
- package/schematics/ng-update/index_bundled.js +194 -782
- package/schematics/ng-update/index_bundled.js.map +4 -4
- package/schematics/tsconfig.json +26 -0
- package/select/index.d.ts +5 -5
- package/sidenav/index.d.ts +1 -1
- package/slider/index.d.ts +2 -2
- package/snack-bar/index.d.ts +5 -4
- package/sort/index.d.ts +1 -1
- package/stepper/index.d.ts +3 -3
- package/tabs/index.d.ts +4 -4
- package/timepicker/index.d.ts +0 -1
- package/tooltip/index.d.ts +1 -1
- package/fesm2022/date-range-input-harness-de70be6a.mjs.map +0 -1
- package/fesm2022/form-field-6d755764.mjs.map +0 -1
- package/fesm2022/icon-button-0850d958.mjs.map +0 -1
- package/fesm2022/module-1c16a0a9.mjs.map +0 -1
- package/fesm2022/module-47e3be58.mjs.map +0 -1
- package/fesm2022/module-a5f9ab72.mjs.map +0 -1
- package/fesm2022/optgroup-harness-5e66b138.mjs.map +0 -1
- package/fesm2022/option-harness-3b7c1106.mjs.map +0 -1
- package/fesm2022/pseudo-checkbox-af5a4ea4.mjs.map +0 -1
- package/fesm2022/ripple-loader-f2078c66.mjs.map +0 -1
- package/fesm2022/select-harness-69d47123.mjs.map +0 -1
- package/schematics/ng-add/fonts/material-fonts.mjs +0 -34
- package/schematics/ng-add/index.mjs +0 -54
- package/schematics/ng-add/package-config.mjs +0 -51
- package/schematics/ng-add/schema.mjs +0 -10
- package/schematics/ng-add/setup-project.mjs +0 -75
- package/schematics/ng-add/theming/create-custom-theme.mjs +0 -30
- package/schematics/ng-add/theming/theming.mjs +0 -151
- package/schematics/ng-generate/address-form/index.mjs +0 -43
- package/schematics/ng-generate/address-form/schema.mjs +0 -10
- package/schematics/ng-generate/dashboard/index.mjs +0 -42
- package/schematics/ng-generate/dashboard/schema.mjs +0 -10
- package/schematics/ng-generate/navigation/index.mjs +0 -42
- package/schematics/ng-generate/navigation/schema.mjs +0 -10
- package/schematics/ng-generate/table/index.mjs +0 -40
- package/schematics/ng-generate/table/schema.mjs +0 -10
- package/schematics/ng-generate/tree/index.mjs +0 -40
- package/schematics/ng-generate/tree/schema.mjs +0 -10
- package/schematics/schematics.externs.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-loader-f2078c66.mjs","sources":["../../../../../../src/material/core/private/ripple-loader.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n ANIMATION_MODULE_TYPE,\n Injectable,\n Injector,\n NgZone,\n OnDestroy,\n RendererFactory2,\n inject,\n} from '@angular/core';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleRenderer,\n RippleTarget,\n defaultRippleAnimationConfig,\n} from '../ripple';\nimport {Platform, _bindEventWithOptions, _getEventTarget} from '@angular/cdk/platform';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/** The options for the MatRippleLoader's event listeners. */\nconst eventListenerOptions = {capture: true};\n\n/**\n * The events that should trigger the initialization of the ripple.\n * Note that we use `mousedown`, rather than `click`, for mouse devices because\n * we can't rely on `mouseenter` in the shadow DOM and `click` happens too late.\n */\nconst rippleInteractionEvents = ['focus', 'mousedown', 'mouseenter', 'touchstart'];\n\n/** The attribute attached to a component whose ripple has not yet been initialized. */\nconst matRippleUninitialized = 'mat-ripple-loader-uninitialized';\n\n/** Additional classes that should be added to the ripple when it is rendered. */\nconst matRippleClassName = 'mat-ripple-loader-class-name';\n\n/** Whether the ripple should be centered. */\nconst matRippleCentered = 'mat-ripple-loader-centered';\n\n/** Whether the ripple should be disabled. */\nconst matRippleDisabled = 'mat-ripple-loader-disabled';\n\n/**\n * Handles attaching ripples on demand.\n *\n * This service allows us to avoid eagerly creating & attaching MatRipples.\n * It works by creating & attaching a ripple only when a component is first interacted with.\n *\n * @docs-private\n */\n@Injectable({providedIn: 'root'})\nexport class MatRippleLoader implements OnDestroy {\n private _document = inject(DOCUMENT);\n private _animationMode = inject(ANIMATION_MODULE_TYPE, {optional: true});\n private _globalRippleOptions = inject(MAT_RIPPLE_GLOBAL_OPTIONS, {optional: true});\n private _platform = inject(Platform);\n private _ngZone = inject(NgZone);\n private _injector = inject(Injector);\n private _eventCleanups: (() => void)[];\n private _hosts = new Map<\n HTMLElement,\n {renderer: RippleRenderer; target: RippleTarget; hasSetUpEvents: boolean}\n >();\n\n constructor() {\n const renderer = inject(RendererFactory2).createRenderer(null, null);\n\n this._eventCleanups = this._ngZone.runOutsideAngular(() => {\n return rippleInteractionEvents.map(name =>\n _bindEventWithOptions(\n renderer,\n this._document,\n name,\n this._onInteraction,\n eventListenerOptions,\n ),\n );\n });\n }\n\n ngOnDestroy(): void {\n const hosts = this._hosts.keys();\n\n for (const host of hosts) {\n this.destroyRipple(host);\n }\n\n this._eventCleanups.forEach(cleanup => cleanup());\n }\n\n /**\n * Configures the ripple that will be rendered by the ripple loader.\n *\n * Stores the given information about how the ripple should be configured on the host\n * element so that it can later be retrived & used when the ripple is actually created.\n */\n configureRipple(\n host: HTMLElement,\n config: {\n className?: string;\n centered?: boolean;\n disabled?: boolean;\n },\n ): void {\n // Indicates that the ripple has not yet been rendered for this component.\n host.setAttribute(matRippleUninitialized, this._globalRippleOptions?.namespace ?? '');\n\n // Store the additional class name(s) that should be added to the ripple element.\n if (config.className || !host.hasAttribute(matRippleClassName)) {\n host.setAttribute(matRippleClassName, config.className || '');\n }\n\n // Store whether the ripple should be centered.\n if (config.centered) {\n host.setAttribute(matRippleCentered, '');\n }\n\n if (config.disabled) {\n host.setAttribute(matRippleDisabled, '');\n }\n }\n\n /** Sets the disabled state on the ripple instance corresponding to the given host element. */\n setDisabled(host: HTMLElement, disabled: boolean): void {\n const ripple = this._hosts.get(host);\n\n // If the ripple has already been instantiated, just disable it.\n if (ripple) {\n ripple.target.rippleDisabled = disabled;\n\n if (!disabled && !ripple.hasSetUpEvents) {\n ripple.hasSetUpEvents = true;\n ripple.renderer.setupTriggerEvents(host);\n }\n } else if (disabled) {\n // Otherwise, set an attribute so we know what the\n // disabled state should be when the ripple is initialized.\n host.setAttribute(matRippleDisabled, '');\n } else {\n host.removeAttribute(matRippleDisabled);\n }\n }\n\n /**\n * Handles creating and attaching component internals\n * when a component is initially interacted with.\n */\n private _onInteraction = (event: Event) => {\n const eventTarget = _getEventTarget(event);\n\n if (eventTarget instanceof HTMLElement) {\n // TODO(wagnermaciel): Consider batching these events to improve runtime performance.\n const element = eventTarget.closest(\n `[${matRippleUninitialized}=\"${this._globalRippleOptions?.namespace ?? ''}\"]`,\n );\n\n if (element) {\n this._createRipple(element as HTMLElement);\n }\n }\n };\n\n /** Creates a MatRipple and appends it to the given element. */\n private _createRipple(host: HTMLElement): void {\n if (!this._document || this._hosts.has(host)) {\n return;\n }\n\n // Create the ripple element.\n host.querySelector('.mat-ripple')?.remove();\n const rippleEl = this._document.createElement('span');\n rippleEl.classList.add('mat-ripple', host.getAttribute(matRippleClassName)!);\n host.append(rippleEl);\n\n const isNoopAnimations = this._animationMode === 'NoopAnimations';\n const globalOptions = this._globalRippleOptions;\n const enterDuration = isNoopAnimations\n ? 0\n : globalOptions?.animation?.enterDuration ?? defaultRippleAnimationConfig.enterDuration;\n const exitDuration = isNoopAnimations\n ? 0\n : globalOptions?.animation?.exitDuration ?? defaultRippleAnimationConfig.exitDuration;\n const target: RippleTarget = {\n rippleDisabled:\n isNoopAnimations || globalOptions?.disabled || host.hasAttribute(matRippleDisabled),\n rippleConfig: {\n centered: host.hasAttribute(matRippleCentered),\n terminateOnPointerUp: globalOptions?.terminateOnPointerUp,\n animation: {\n enterDuration,\n exitDuration,\n },\n },\n };\n\n const renderer = new RippleRenderer(\n target,\n this._ngZone,\n rippleEl,\n this._platform,\n this._injector,\n );\n const hasSetUpEvents = !target.rippleDisabled;\n\n if (hasSetUpEvents) {\n renderer.setupTriggerEvents(host);\n }\n\n this._hosts.set(host, {\n target,\n renderer,\n hasSetUpEvents,\n });\n\n host.removeAttribute(matRippleUninitialized);\n }\n\n destroyRipple(host: HTMLElement): void {\n const ripple = this._hosts.get(host);\n\n if (ripple) {\n ripple.renderer._removeTriggerEvents();\n this._hosts.delete(host);\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-harness-69d47123.mjs","sources":["../../../../../../src/material/select/testing/select-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarnessConstructor, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {\n MatOptionHarness,\n MatOptgroupHarness,\n OptionHarnessFilters,\n OptgroupHarnessFilters,\n} from '../../core/testing';\nimport {MatFormFieldControlHarness} from '../../form-field/testing/control';\nimport {SelectHarnessFilters} from './select-harness-filters';\n\n/** Harness for interacting with a mat-select in tests. */\nexport class MatSelectHarness extends MatFormFieldControlHarness {\n static hostSelector = '.mat-mdc-select';\n private _prefix = 'mat-mdc';\n private _optionClass = MatOptionHarness;\n private _optionGroupClass = MatOptgroupHarness;\n private _documentRootLocator = this.documentRootLocatorFactory();\n private _backdrop = this._documentRootLocator.locatorFor('.cdk-overlay-backdrop');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a select with specific attributes.\n * @param options Options for filtering which select instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatSelectHarness>(\n this: ComponentHarnessConstructor<T>,\n options: SelectHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => {\n return (await harness.isDisabled()) === disabled;\n },\n );\n }\n\n /** Gets a boolean promise indicating if the select is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-disabled`);\n }\n\n /** Gets a boolean promise indicating if the select is valid. */\n async isValid(): Promise<boolean> {\n return !(await (await this.host()).hasClass('ng-invalid'));\n }\n\n /** Gets a boolean promise indicating if the select is required. */\n async isRequired(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-required`);\n }\n\n /** Gets a boolean promise indicating if the select is empty (no value is selected). */\n async isEmpty(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-empty`);\n }\n\n /** Gets a boolean promise indicating if the select is in multi-selection mode. */\n async isMultiple(): Promise<boolean> {\n return (await this.host()).hasClass(`${this._prefix}-select-multiple`);\n }\n\n /** Gets a promise for the select's value text. */\n async getValueText(): Promise<string> {\n const value = await this.locatorFor(`.${this._prefix}-select-value`)();\n return value.text();\n }\n\n /** Focuses the select and returns a void promise that indicates when the action is complete. */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /** Blurs the select and returns a void promise that indicates when the action is complete. */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the select is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Gets the options inside the select panel. */\n async getOptions(filter?: Omit<OptionHarnessFilters, 'ancestor'>): Promise<MatOptionHarness[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionHarnessFilters),\n )();\n }\n\n /** Gets the groups of options inside the panel. */\n async getOptionGroups(\n filter?: Omit<OptgroupHarnessFilters, 'ancestor'>,\n ): Promise<MatOptgroupHarness[]> {\n return this._documentRootLocator.locatorForAll(\n this._optionGroupClass.with({\n ...(filter || {}),\n ancestor: await this._getPanelSelector(),\n } as OptgroupHarnessFilters),\n )() as Promise<MatOptgroupHarness[]>;\n }\n\n /** Gets whether the select is open. */\n async isOpen(): Promise<boolean> {\n return !!(await this._documentRootLocator.locatorForOptional(await this._getPanelSelector())());\n }\n\n /** Opens the select's panel. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const trigger = await this.locatorFor(`.${this._prefix}-select-trigger`)();\n return trigger.click();\n }\n }\n\n /**\n * Clicks the options that match the passed-in filter. If the select is in multi-selection\n * mode all options will be clicked, otherwise the harness will pick the first matching option.\n */\n async clickOptions(filter?: OptionHarnessFilters): Promise<void> {\n await this.open();\n\n const [isMultiple, options] = await parallel(() => [\n this.isMultiple(),\n this.getOptions(filter),\n ]);\n\n if (options.length === 0) {\n throw Error('Select does not have options matching the specified filter');\n }\n\n if (isMultiple) {\n await parallel(() => options.map(option => option.click()));\n } else {\n await options[0].click();\n }\n }\n\n /** Closes the select's panel. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n // This is the most consistent way that works both in both single and multi-select modes,\n // but it assumes that only one overlay is open at a time. We should be able to make it\n // a bit more precise after #16645 where we can dispatch an ESCAPE press to the host instead.\n return (await this._backdrop()).click();\n }\n }\n\n /** Gets the selector that should be used to find this select's panel. */\n private async _getPanelSelector(): Promise<string> {\n const id = await (await this.host()).getAttribute('id');\n return `#${id}-panel`;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.addFontsToIndex = addFontsToIndex;
|
|
11
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
12
|
-
const schematics_2 = require("@angular/cdk/schematics");
|
|
13
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
14
|
-
/** Adds the Material Design fonts to the index HTML file. */
|
|
15
|
-
function addFontsToIndex(options) {
|
|
16
|
-
return async (host) => {
|
|
17
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
18
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, options.project);
|
|
19
|
-
const projectIndexFiles = (0, schematics_2.getProjectIndexFiles)(project);
|
|
20
|
-
if (!projectIndexFiles.length) {
|
|
21
|
-
throw new schematics_1.SchematicsException('No project index HTML file could be found.');
|
|
22
|
-
}
|
|
23
|
-
const fonts = [
|
|
24
|
-
'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap',
|
|
25
|
-
'https://fonts.googleapis.com/icon?family=Material+Icons',
|
|
26
|
-
];
|
|
27
|
-
projectIndexFiles.forEach(indexFilePath => {
|
|
28
|
-
fonts.forEach(font => {
|
|
29
|
-
(0, schematics_2.appendHtmlElementToHead)(host, indexFilePath, `<link href="${font}" rel="stylesheet">`);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZm9udHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvZm9udHMvbWF0ZXJpYWwtZm9udHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFZSCwwQ0FxQkM7QUEvQkQsMkRBQTJFO0FBQzNFLHdEQUlpQztBQUNqQyxxRUFBbUU7QUFHbkUsNkRBQTZEO0FBQzdELFNBQWdCLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLE9BQU8sS0FBSyxFQUFFLElBQVUsRUFBRSxFQUFFO1FBQzFCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUEsb0NBQXVCLEVBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxNQUFNLGlCQUFpQixHQUFHLElBQUEsaUNBQW9CLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxnQ0FBbUIsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRztZQUNaLCtFQUErRTtZQUMvRSx5REFBeUQ7U0FDMUQsQ0FBQztRQUVGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQixJQUFBLG9DQUF1QixFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsZUFBZSxJQUFJLHFCQUFxQixDQUFDLENBQUM7WUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljc0V4Y2VwdGlvbiwgVHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtcbiAgYXBwZW5kSHRtbEVsZW1lbnRUb0hlYWQsXG4gIGdldFByb2plY3RGcm9tV29ya3NwYWNlLFxuICBnZXRQcm9qZWN0SW5kZXhGaWxlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtnZXRXb3Jrc3BhY2V9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS93b3Jrc3BhY2UnO1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4uL3NjaGVtYSc7XG5cbi8qKiBBZGRzIHRoZSBNYXRlcmlhbCBEZXNpZ24gZm9udHMgdG8gdGhlIGluZGV4IEhUTUwgZmlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRGb250c1RvSW5kZXgob3B0aW9uczogU2NoZW1hKTogUnVsZSB7XG4gIHJldHVybiBhc3luYyAoaG9zdDogVHJlZSkgPT4ge1xuICAgIGNvbnN0IHdvcmtzcGFjZSA9IGF3YWl0IGdldFdvcmtzcGFjZShob3N0KTtcbiAgICBjb25zdCBwcm9qZWN0ID0gZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlLCBvcHRpb25zLnByb2plY3QpO1xuICAgIGNvbnN0IHByb2plY3RJbmRleEZpbGVzID0gZ2V0UHJvamVjdEluZGV4RmlsZXMocHJvamVjdCk7XG5cbiAgICBpZiAoIXByb2plY3RJbmRleEZpbGVzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oJ05vIHByb2plY3QgaW5kZXggSFRNTCBmaWxlIGNvdWxkIGJlIGZvdW5kLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGZvbnRzID0gW1xuICAgICAgJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRAMzAwOzQwMDs1MDAmZGlzcGxheT1zd2FwJyxcbiAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zJyxcbiAgICBdO1xuXG4gICAgcHJvamVjdEluZGV4RmlsZXMuZm9yRWFjaChpbmRleEZpbGVQYXRoID0+IHtcbiAgICAgIGZvbnRzLmZvckVhY2goZm9udCA9PiB7XG4gICAgICAgIGFwcGVuZEh0bWxFbGVtZW50VG9IZWFkKGhvc3QsIGluZGV4RmlsZVBhdGgsIGA8bGluayBocmVmPVwiJHtmb250fVwiIHJlbD1cInN0eWxlc2hlZXRcIj5gKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuIl19
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.default = default_1;
|
|
11
|
-
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
12
|
-
const package_config_1 = require("./package-config");
|
|
13
|
-
/**
|
|
14
|
-
* Version range that will be used for the Angular CDK and Angular Material if this
|
|
15
|
-
* schematic has been run outside of the CLI `ng add` command. In those cases, there
|
|
16
|
-
* can be no dependency on `@angular/material` in the `package.json` file, and we need
|
|
17
|
-
* to manually insert the dependency based on the build version placeholder.
|
|
18
|
-
*
|
|
19
|
-
* Note that the fallback version range does not use caret, but tilde because that is
|
|
20
|
-
* the default for Angular framework dependencies in CLI projects.
|
|
21
|
-
*/
|
|
22
|
-
const fallbackMaterialVersionRange = `~20.0.0-next.2`;
|
|
23
|
-
/**
|
|
24
|
-
* Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be
|
|
25
|
-
* automatically executed if developers run `ng add @angular/material`.
|
|
26
|
-
*
|
|
27
|
-
* Since the Angular Material schematics depend on the schematic utility functions from the CDK,
|
|
28
|
-
* we need to install the CDK before loading the schematic files that import from the CDK.
|
|
29
|
-
*/
|
|
30
|
-
function default_1(options) {
|
|
31
|
-
return (host, context) => {
|
|
32
|
-
// Version tag of the `@angular/core` dependency that has been loaded from the `package.json`
|
|
33
|
-
// of the CLI project. This tag should be preferred because all Angular dependencies should
|
|
34
|
-
// have the same version tag if possible.
|
|
35
|
-
const ngCoreVersionTag = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/core');
|
|
36
|
-
const materialVersionRange = (0, package_config_1.getPackageVersionFromPackageJson)(host, '@angular/material');
|
|
37
|
-
const angularDependencyVersion = ngCoreVersionTag || `^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0`;
|
|
38
|
-
// The CLI inserts `@angular/material` into the `package.json` before this schematic runs.
|
|
39
|
-
// This means that we do not need to insert Angular Material into `package.json` files again.
|
|
40
|
-
// In some cases though, it could happen that this schematic runs outside of the CLI `ng add`
|
|
41
|
-
// command, or Material is only listed a dev dependency. If that is the case, we insert a
|
|
42
|
-
// version based on the current build version (substituted version placeholder).
|
|
43
|
-
if (materialVersionRange === null) {
|
|
44
|
-
(0, package_config_1.addPackageToPackageJson)(host, '@angular/material', fallbackMaterialVersionRange);
|
|
45
|
-
}
|
|
46
|
-
(0, package_config_1.addPackageToPackageJson)(host, '@angular/cdk', materialVersionRange || fallbackMaterialVersionRange);
|
|
47
|
-
(0, package_config_1.addPackageToPackageJson)(host, '@angular/forms', angularDependencyVersion);
|
|
48
|
-
// Since the Angular Material schematics depend on the schematic utility functions from the
|
|
49
|
-
// CDK, we need to install the CDK before loading the schematic files that import from the CDK.
|
|
50
|
-
const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask());
|
|
51
|
-
context.addTask(new tasks_1.RunSchematicTask('ng-add-setup-project', options), [installTaskId]);
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUF5QkgsNEJBK0JDO0FBckRELDREQUEwRjtBQUMxRixxREFBMkY7QUFHM0Y7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLDRCQUE0QixHQUFHLG9CQUFvQixDQUFDO0FBRTFEOzs7Ozs7R0FNRztBQUNILG1CQUF5QixPQUFlO0lBQ3RDLE9BQU8sQ0FBQyxJQUFVLEVBQUUsT0FBeUIsRUFBRSxFQUFFO1FBQy9DLDZGQUE2RjtRQUM3RiwyRkFBMkY7UUFDM0YseUNBQXlDO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxpREFBZ0MsRUFBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDakYsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLGlEQUFnQyxFQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sd0JBQXdCLEdBQUcsZ0JBQWdCLElBQUksVUFBVSxDQUFDO1FBRWhFLDBGQUEwRjtRQUMxRiw2RkFBNkY7UUFDN0YsNkZBQTZGO1FBQzdGLHlGQUF5RjtRQUN6RixnRkFBZ0Y7UUFDaEYsSUFBSSxvQkFBb0IsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxJQUFBLHdDQUF1QixFQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxJQUFBLHdDQUF1QixFQUNyQixJQUFJLEVBQ0osY0FBYyxFQUNkLG9CQUFvQixJQUFJLDRCQUE0QixDQUNyRCxDQUFDO1FBQ0YsSUFBQSx3Q0FBdUIsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUUxRSwyRkFBMkY7UUFDM0YsK0ZBQStGO1FBQy9GLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSw4QkFBc0IsRUFBRSxDQUFDLENBQUM7UUFFcEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHdCQUFnQixDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7Tm9kZVBhY2thZ2VJbnN0YWxsVGFzaywgUnVuU2NoZW1hdGljVGFza30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MvdGFza3MnO1xuaW1wb3J0IHthZGRQYWNrYWdlVG9QYWNrYWdlSnNvbiwgZ2V0UGFja2FnZVZlcnNpb25Gcm9tUGFja2FnZUpzb259IGZyb20gJy4vcGFja2FnZS1jb25maWcnO1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hJztcblxuLyoqXG4gKiBWZXJzaW9uIHJhbmdlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgQW5ndWxhciBDREsgYW5kIEFuZ3VsYXIgTWF0ZXJpYWwgaWYgdGhpc1xuICogc2NoZW1hdGljIGhhcyBiZWVuIHJ1biBvdXRzaWRlIG9mIHRoZSBDTEkgYG5nIGFkZGAgY29tbWFuZC4gSW4gdGhvc2UgY2FzZXMsIHRoZXJlXG4gKiBjYW4gYmUgbm8gZGVwZW5kZW5jeSBvbiBgQGFuZ3VsYXIvbWF0ZXJpYWxgIGluIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlLCBhbmQgd2UgbmVlZFxuICogdG8gbWFudWFsbHkgaW5zZXJ0IHRoZSBkZXBlbmRlbmN5IGJhc2VkIG9uIHRoZSBidWlsZCB2ZXJzaW9uIHBsYWNlaG9sZGVyLlxuICpcbiAqIE5vdGUgdGhhdCB0aGUgZmFsbGJhY2sgdmVyc2lvbiByYW5nZSBkb2VzIG5vdCB1c2UgY2FyZXQsIGJ1dCB0aWxkZSBiZWNhdXNlIHRoYXQgaXNcbiAqIHRoZSBkZWZhdWx0IGZvciBBbmd1bGFyIGZyYW1ld29yayBkZXBlbmRlbmNpZXMgaW4gQ0xJIHByb2plY3RzLlxuICovXG5jb25zdCBmYWxsYmFja01hdGVyaWFsVmVyc2lvblJhbmdlID0gYH4wLjAuMC1QTEFDRUhPTERFUmA7XG5cbi8qKlxuICogU2NoZW1hdGljIGZhY3RvcnkgZW50cnktcG9pbnQgZm9yIHRoZSBgbmctYWRkYCBzY2hlbWF0aWMuIFRoZSBuZy1hZGQgc2NoZW1hdGljIHdpbGwgYmVcbiAqIGF1dG9tYXRpY2FsbHkgZXhlY3V0ZWQgaWYgZGV2ZWxvcGVycyBydW4gYG5nIGFkZCBAYW5ndWxhci9tYXRlcmlhbGAuXG4gKlxuICogU2luY2UgdGhlIEFuZ3VsYXIgTWF0ZXJpYWwgc2NoZW1hdGljcyBkZXBlbmQgb24gdGhlIHNjaGVtYXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBmcm9tIHRoZSBDREssXG4gKiB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIENESyBiZWZvcmUgbG9hZGluZyB0aGUgc2NoZW1hdGljIGZpbGVzIHRoYXQgaW1wb3J0IGZyb20gdGhlIENESy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKG9wdGlvbnM6IFNjaGVtYSk6IFJ1bGUge1xuICByZXR1cm4gKGhvc3Q6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICAvLyBWZXJzaW9uIHRhZyBvZiB0aGUgYEBhbmd1bGFyL2NvcmVgIGRlcGVuZGVuY3kgdGhhdCBoYXMgYmVlbiBsb2FkZWQgZnJvbSB0aGUgYHBhY2thZ2UuanNvbmBcbiAgICAvLyBvZiB0aGUgQ0xJIHByb2plY3QuIFRoaXMgdGFnIHNob3VsZCBiZSBwcmVmZXJyZWQgYmVjYXVzZSBhbGwgQW5ndWxhciBkZXBlbmRlbmNpZXMgc2hvdWxkXG4gICAgLy8gaGF2ZSB0aGUgc2FtZSB2ZXJzaW9uIHRhZyBpZiBwb3NzaWJsZS5cbiAgICBjb25zdCBuZ0NvcmVWZXJzaW9uVGFnID0gZ2V0UGFja2FnZVZlcnNpb25Gcm9tUGFja2FnZUpzb24oaG9zdCwgJ0Bhbmd1bGFyL2NvcmUnKTtcbiAgICBjb25zdCBtYXRlcmlhbFZlcnNpb25SYW5nZSA9IGdldFBhY2thZ2VWZXJzaW9uRnJvbVBhY2thZ2VKc29uKGhvc3QsICdAYW5ndWxhci9tYXRlcmlhbCcpO1xuICAgIGNvbnN0IGFuZ3VsYXJEZXBlbmRlbmN5VmVyc2lvbiA9IG5nQ29yZVZlcnNpb25UYWcgfHwgYDAuMC4wLU5HYDtcblxuICAgIC8vIFRoZSBDTEkgaW5zZXJ0cyBgQGFuZ3VsYXIvbWF0ZXJpYWxgIGludG8gdGhlIGBwYWNrYWdlLmpzb25gIGJlZm9yZSB0aGlzIHNjaGVtYXRpYyBydW5zLlxuICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB3ZSBkbyBub3QgbmVlZCB0byBpbnNlcnQgQW5ndWxhciBNYXRlcmlhbCBpbnRvIGBwYWNrYWdlLmpzb25gIGZpbGVzIGFnYWluLlxuICAgIC8vIEluIHNvbWUgY2FzZXMgdGhvdWdoLCBpdCBjb3VsZCBoYXBwZW4gdGhhdCB0aGlzIHNjaGVtYXRpYyBydW5zIG91dHNpZGUgb2YgdGhlIENMSSBgbmcgYWRkYFxuICAgIC8vIGNvbW1hbmQsIG9yIE1hdGVyaWFsIGlzIG9ubHkgbGlzdGVkIGEgZGV2IGRlcGVuZGVuY3kuIElmIHRoYXQgaXMgdGhlIGNhc2UsIHdlIGluc2VydCBhXG4gICAgLy8gdmVyc2lvbiBiYXNlZCBvbiB0aGUgY3VycmVudCBidWlsZCB2ZXJzaW9uIChzdWJzdGl0dXRlZCB2ZXJzaW9uIHBsYWNlaG9sZGVyKS5cbiAgICBpZiAobWF0ZXJpYWxWZXJzaW9uUmFuZ2UgPT09IG51bGwpIHtcbiAgICAgIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKGhvc3QsICdAYW5ndWxhci9tYXRlcmlhbCcsIGZhbGxiYWNrTWF0ZXJpYWxWZXJzaW9uUmFuZ2UpO1xuICAgIH1cblxuICAgIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKFxuICAgICAgaG9zdCxcbiAgICAgICdAYW5ndWxhci9jZGsnLFxuICAgICAgbWF0ZXJpYWxWZXJzaW9uUmFuZ2UgfHwgZmFsbGJhY2tNYXRlcmlhbFZlcnNpb25SYW5nZSxcbiAgICApO1xuICAgIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKGhvc3QsICdAYW5ndWxhci9mb3JtcycsIGFuZ3VsYXJEZXBlbmRlbmN5VmVyc2lvbik7XG5cbiAgICAvLyBTaW5jZSB0aGUgQW5ndWxhciBNYXRlcmlhbCBzY2hlbWF0aWNzIGRlcGVuZCBvbiB0aGUgc2NoZW1hdGljIHV0aWxpdHkgZnVuY3Rpb25zIGZyb20gdGhlXG4gICAgLy8gQ0RLLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIENESyBiZWZvcmUgbG9hZGluZyB0aGUgc2NoZW1hdGljIGZpbGVzIHRoYXQgaW1wb3J0IGZyb20gdGhlIENESy5cbiAgICBjb25zdCBpbnN0YWxsVGFza0lkID0gY29udGV4dC5hZGRUYXNrKG5ldyBOb2RlUGFja2FnZUluc3RhbGxUYXNrKCkpO1xuXG4gICAgY29udGV4dC5hZGRUYXNrKG5ldyBSdW5TY2hlbWF0aWNUYXNrKCduZy1hZGQtc2V0dXAtcHJvamVjdCcsIG9wdGlvbnMpLCBbaW5zdGFsbFRhc2tJZF0pO1xuICB9O1xufVxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.addPackageToPackageJson = addPackageToPackageJson;
|
|
11
|
-
exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
|
|
12
|
-
/**
|
|
13
|
-
* Sorts the keys of the given object.
|
|
14
|
-
* @returns A new object instance with sorted keys
|
|
15
|
-
*/
|
|
16
|
-
function sortObjectByKeys(obj) {
|
|
17
|
-
return Object.keys(obj)
|
|
18
|
-
.sort()
|
|
19
|
-
.reduce((result, key) => {
|
|
20
|
-
result[key] = obj[key];
|
|
21
|
-
return result;
|
|
22
|
-
}, {});
|
|
23
|
-
}
|
|
24
|
-
/** Adds a package to the package.json in the given host tree. */
|
|
25
|
-
function addPackageToPackageJson(host, pkg, version) {
|
|
26
|
-
if (host.exists('package.json')) {
|
|
27
|
-
const sourceText = host.read('package.json').toString('utf-8');
|
|
28
|
-
const json = JSON.parse(sourceText);
|
|
29
|
-
if (!json.dependencies) {
|
|
30
|
-
json.dependencies = {};
|
|
31
|
-
}
|
|
32
|
-
if (!json.dependencies[pkg]) {
|
|
33
|
-
json.dependencies[pkg] = version;
|
|
34
|
-
json.dependencies = sortObjectByKeys(json.dependencies);
|
|
35
|
-
}
|
|
36
|
-
host.overwrite('package.json', JSON.stringify(json, null, 2));
|
|
37
|
-
}
|
|
38
|
-
return host;
|
|
39
|
-
}
|
|
40
|
-
/** Gets the version of the specified package by looking at the package.json in the given tree. */
|
|
41
|
-
function getPackageVersionFromPackageJson(tree, name) {
|
|
42
|
-
if (!tree.exists('package.json')) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
|
|
46
|
-
if (packageJson.dependencies && packageJson.dependencies[name]) {
|
|
47
|
-
return packageJson.dependencies[name];
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1hZGQvcGFja2FnZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUF5QkgsMERBa0JDO0FBR0QsNEVBWUM7QUFsREQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxHQUEyQjtJQUNuRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3BCLElBQUksRUFBRTtTQUNOLE1BQU0sQ0FDTCxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUNELEVBQTRCLENBQzdCLENBQUM7QUFDTixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLFNBQWdCLHVCQUF1QixDQUFDLElBQVUsRUFBRSxHQUFXLEVBQUUsT0FBZTtJQUM5RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBZ0IsQ0FBQztRQUVuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsa0dBQWtHO0FBQ2xHLFNBQWdCLGdDQUFnQyxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBZ0IsQ0FBQztJQUUzRixJQUFJLFdBQVcsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQy9ELE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1RyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcblxuaW50ZXJmYWNlIFBhY2thZ2VKc29uIHtcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIFNvcnRzIHRoZSBrZXlzIG9mIHRoZSBnaXZlbiBvYmplY3QuXG4gKiBAcmV0dXJucyBBIG5ldyBvYmplY3QgaW5zdGFuY2Ugd2l0aCBzb3J0ZWQga2V5c1xuICovXG5mdW5jdGlvbiBzb3J0T2JqZWN0QnlLZXlzKG9iajogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICAgIC5zb3J0KClcbiAgICAucmVkdWNlKFxuICAgICAgKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gb2JqW2tleV07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICApO1xufVxuXG4vKiogQWRkcyBhIHBhY2thZ2UgdG8gdGhlIHBhY2thZ2UuanNvbiBpbiB0aGUgZ2l2ZW4gaG9zdCB0cmVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhY2thZ2VUb1BhY2thZ2VKc29uKGhvc3Q6IFRyZWUsIHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiBUcmVlIHtcbiAgaWYgKGhvc3QuZXhpc3RzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgIGNvbnN0IHNvdXJjZVRleHQgPSBob3N0LnJlYWQoJ3BhY2thZ2UuanNvbicpIS50b1N0cmluZygndXRmLTgnKTtcbiAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShzb3VyY2VUZXh0KSBhcyBQYWNrYWdlSnNvbjtcblxuICAgIGlmICghanNvbi5kZXBlbmRlbmNpZXMpIHtcbiAgICAgIGpzb24uZGVwZW5kZW5jaWVzID0ge307XG4gICAgfVxuXG4gICAgaWYgKCFqc29uLmRlcGVuZGVuY2llc1twa2ddKSB7XG4gICAgICBqc29uLmRlcGVuZGVuY2llc1twa2ddID0gdmVyc2lvbjtcbiAgICAgIGpzb24uZGVwZW5kZW5jaWVzID0gc29ydE9iamVjdEJ5S2V5cyhqc29uLmRlcGVuZGVuY2llcyk7XG4gICAgfVxuXG4gICAgaG9zdC5vdmVyd3JpdGUoJ3BhY2thZ2UuanNvbicsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpKTtcbiAgfVxuXG4gIHJldHVybiBob3N0O1xufVxuXG4vKiogR2V0cyB0aGUgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWVkIHBhY2thZ2UgYnkgbG9va2luZyBhdCB0aGUgcGFja2FnZS5qc29uIGluIHRoZSBnaXZlbiB0cmVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uRnJvbVBhY2thZ2VKc29uKHRyZWU6IFRyZWUsIG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIXRyZWUuZXhpc3RzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKHRyZWUucmVhZCgncGFja2FnZS5qc29uJykhLnRvU3RyaW5nKCd1dGY4JykpIGFzIFBhY2thZ2VKc29uO1xuXG4gIGlmIChwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMgJiYgcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzW25hbWVdKSB7XG4gICAgcmV0dXJuIHBhY2thZ2VKc29uLmRlcGVuZGVuY2llc1tuYW1lXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctYWRkL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYSB7XG4gIC8qKiBOYW1lIG9mIHRoZSBwcm9qZWN0LiAqL1xuICBwcm9qZWN0OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgcHJlLWJ1aWx0IHRoZW1lIHRvIGluc3RhbGwuICovXG4gIHRoZW1lOiAnYXp1cmUtYmx1ZScgfCAncm9zZS1yZWQnIHwgJ21hZ2VudGEtdmlvbGV0JyB8ICdjeWFuLW9yYW5nZScgfCAnY3VzdG9tJztcblxuICAvKiogV2hldGhlciB0byBzZXQgdXAgZ2xvYmFsIHR5cG9ncmFwaHkgc3R5bGVzLiAqL1xuICB0eXBvZ3JhcGh5OiBib29sZWFuO1xufVxuIl19
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.default = default_1;
|
|
11
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
12
|
-
const schematics_2 = require("@angular/cdk/schematics");
|
|
13
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
14
|
-
const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
|
|
15
|
-
const material_fonts_1 = require("./fonts/material-fonts");
|
|
16
|
-
const theming_1 = require("./theming/theming");
|
|
17
|
-
/**
|
|
18
|
-
* Scaffolds the basics of a Angular Material application, this includes:
|
|
19
|
-
* - Add Packages to package.json
|
|
20
|
-
* - Adds pre-built themes to styles.ext
|
|
21
|
-
*/
|
|
22
|
-
function default_1(options) {
|
|
23
|
-
return async (host, context) => {
|
|
24
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
25
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, options.project);
|
|
26
|
-
if (project.extensions['projectType'] === workspace_models_1.ProjectType.Application) {
|
|
27
|
-
return (0, schematics_1.chain)([
|
|
28
|
-
(0, theming_1.addThemeToAppStyles)(options),
|
|
29
|
-
(0, material_fonts_1.addFontsToIndex)(options),
|
|
30
|
-
addMaterialAppStyles(options),
|
|
31
|
-
(0, theming_1.addTypographyClass)(options),
|
|
32
|
-
]);
|
|
33
|
-
}
|
|
34
|
-
context.logger.warn('Angular Material has been set up in your workspace. There is no additional setup ' +
|
|
35
|
-
'required for consuming Angular Material in your library project.\n\n' +
|
|
36
|
-
'If you intended to run the schematic on a different project, pass the `--project` ' +
|
|
37
|
-
'option.');
|
|
38
|
-
return;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Adds custom Material styles to the project style file. The custom CSS sets up the Roboto font
|
|
43
|
-
* and reset the default browser body margin.
|
|
44
|
-
*/
|
|
45
|
-
function addMaterialAppStyles(options) {
|
|
46
|
-
return async (host, context) => {
|
|
47
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
48
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, options.project);
|
|
49
|
-
const styleFilePath = (0, schematics_2.getProjectStyleFile)(project);
|
|
50
|
-
const logger = context.logger;
|
|
51
|
-
if (!styleFilePath) {
|
|
52
|
-
logger.error(`Could not find the default style file for this project.`);
|
|
53
|
-
logger.info(`Consider manually adding the Roboto font to your CSS.`);
|
|
54
|
-
logger.info(`More information at https://fonts.google.com/specimen/Roboto`);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const buffer = host.read(styleFilePath);
|
|
58
|
-
if (!buffer) {
|
|
59
|
-
logger.error(`Could not read the default style file within the project ` + `(${styleFilePath})`);
|
|
60
|
-
logger.info(`Please consider manually setting up the Roboto font.`);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const htmlContent = buffer.toString();
|
|
64
|
-
const insertion = '\n' +
|
|
65
|
-
`html, body { height: 100%; }\n` +
|
|
66
|
-
`body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }\n`;
|
|
67
|
-
if (htmlContent.includes(insertion)) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const recorder = host.beginUpdate(styleFilePath);
|
|
71
|
-
recorder.insertLeft(htmlContent.length, insertion);
|
|
72
|
-
host.commitUpdate(recorder);
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9zY2hlbWF0aWNzL25nLWFkZC9zZXR1cC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBZUgsNEJBcUJDO0FBbENELDJEQUErRTtBQUMvRSx3REFBcUY7QUFDckYscUVBQW1FO0FBQ25FLG1GQUF5RTtBQUN6RSwyREFBdUQ7QUFFdkQsK0NBQTBFO0FBRTFFOzs7O0dBSUc7QUFDSCxtQkFBeUIsT0FBZTtJQUN0QyxPQUFPLEtBQUssRUFBRSxJQUFVLEVBQUUsT0FBeUIsRUFBRSxFQUFFO1FBQ3JELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUEsb0NBQXVCLEVBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssOEJBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsRSxPQUFPLElBQUEsa0JBQUssRUFBQztnQkFDWCxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQztnQkFDNUIsSUFBQSxnQ0FBZSxFQUFDLE9BQU8sQ0FBQztnQkFDeEIsb0JBQW9CLENBQUMsT0FBTyxDQUFDO2dCQUM3QixJQUFBLDRCQUFrQixFQUFDLE9BQU8sQ0FBQzthQUM1QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2pCLG1GQUFtRjtZQUNqRixzRUFBc0U7WUFDdEUsb0ZBQW9GO1lBQ3BGLFNBQVMsQ0FDWixDQUFDO1FBQ0YsT0FBTztJQUNULENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG9CQUFvQixDQUFDLE9BQWU7SUFDM0MsT0FBTyxLQUFLLEVBQUUsSUFBVSxFQUFFLE9BQXlCLEVBQUUsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsd0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFBLG9DQUF1QixFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsSUFBQSxnQ0FBbUIsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRTlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDeEUsTUFBTSxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsOERBQThELENBQUMsQ0FBQztZQUM1RSxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLEtBQUssQ0FDViwyREFBMkQsR0FBRyxJQUFJLGFBQWEsR0FBRyxDQUNuRixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1lBQ3BFLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUNiLElBQUk7WUFDSixnQ0FBZ0M7WUFDaEMsMEVBQTBFLENBQUM7UUFFN0UsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7Y2hhaW4sIFJ1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7Z2V0UHJvamVjdEZyb21Xb3Jrc3BhY2UsIGdldFByb2plY3RTdHlsZUZpbGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY2hlbWF0aWNzJztcbmltcG9ydCB7Z2V0V29ya3NwYWNlfSBmcm9tICdAc2NoZW1hdGljcy9hbmd1bGFyL3V0aWxpdHkvd29ya3NwYWNlJztcbmltcG9ydCB7UHJvamVjdFR5cGV9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS93b3Jrc3BhY2UtbW9kZWxzJztcbmltcG9ydCB7YWRkRm9udHNUb0luZGV4fSBmcm9tICcuL2ZvbnRzL21hdGVyaWFsLWZvbnRzJztcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQge2FkZFRoZW1lVG9BcHBTdHlsZXMsIGFkZFR5cG9ncmFwaHlDbGFzc30gZnJvbSAnLi90aGVtaW5nL3RoZW1pbmcnO1xuXG4vKipcbiAqIFNjYWZmb2xkcyB0aGUgYmFzaWNzIG9mIGEgQW5ndWxhciBNYXRlcmlhbCBhcHBsaWNhdGlvbiwgdGhpcyBpbmNsdWRlczpcbiAqICAtIEFkZCBQYWNrYWdlcyB0byBwYWNrYWdlLmpzb25cbiAqICAtIEFkZHMgcHJlLWJ1aWx0IHRoZW1lcyB0byBzdHlsZXMuZXh0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChvcHRpb25zOiBTY2hlbWEpOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlKGhvc3QpO1xuICAgIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG5cbiAgICBpZiAocHJvamVjdC5leHRlbnNpb25zWydwcm9qZWN0VHlwZSddID09PSBQcm9qZWN0VHlwZS5BcHBsaWNhdGlvbikge1xuICAgICAgcmV0dXJuIGNoYWluKFtcbiAgICAgICAgYWRkVGhlbWVUb0FwcFN0eWxlcyhvcHRpb25zKSxcbiAgICAgICAgYWRkRm9udHNUb0luZGV4KG9wdGlvbnMpLFxuICAgICAgICBhZGRNYXRlcmlhbEFwcFN0eWxlcyhvcHRpb25zKSxcbiAgICAgICAgYWRkVHlwb2dyYXBoeUNsYXNzKG9wdGlvbnMpLFxuICAgICAgXSk7XG4gICAgfVxuICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAnQW5ndWxhciBNYXRlcmlhbCBoYXMgYmVlbiBzZXQgdXAgaW4geW91ciB3b3Jrc3BhY2UuIFRoZXJlIGlzIG5vIGFkZGl0aW9uYWwgc2V0dXAgJyArXG4gICAgICAgICdyZXF1aXJlZCBmb3IgY29uc3VtaW5nIEFuZ3VsYXIgTWF0ZXJpYWwgaW4geW91ciBsaWJyYXJ5IHByb2plY3QuXFxuXFxuJyArXG4gICAgICAgICdJZiB5b3UgaW50ZW5kZWQgdG8gcnVuIHRoZSBzY2hlbWF0aWMgb24gYSBkaWZmZXJlbnQgcHJvamVjdCwgcGFzcyB0aGUgYC0tcHJvamVjdGAgJyArXG4gICAgICAgICdvcHRpb24uJyxcbiAgICApO1xuICAgIHJldHVybjtcbiAgfTtcbn1cblxuLyoqXG4gKiBBZGRzIGN1c3RvbSBNYXRlcmlhbCBzdHlsZXMgdG8gdGhlIHByb2plY3Qgc3R5bGUgZmlsZS4gVGhlIGN1c3RvbSBDU1Mgc2V0cyB1cCB0aGUgUm9ib3RvIGZvbnRcbiAqIGFuZCByZXNldCB0aGUgZGVmYXVsdCBicm93c2VyIGJvZHkgbWFyZ2luLlxuICovXG5mdW5jdGlvbiBhZGRNYXRlcmlhbEFwcFN0eWxlcyhvcHRpb25zOiBTY2hlbWEpIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlKGhvc3QpO1xuICAgIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG4gICAgY29uc3Qgc3R5bGVGaWxlUGF0aCA9IGdldFByb2plY3RTdHlsZUZpbGUocHJvamVjdCk7XG4gICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXI7XG5cbiAgICBpZiAoIXN0eWxlRmlsZVBhdGgpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgQ291bGQgbm90IGZpbmQgdGhlIGRlZmF1bHQgc3R5bGUgZmlsZSBmb3IgdGhpcyBwcm9qZWN0LmApO1xuICAgICAgbG9nZ2VyLmluZm8oYENvbnNpZGVyIG1hbnVhbGx5IGFkZGluZyB0aGUgUm9ib3RvIGZvbnQgdG8geW91ciBDU1MuYCk7XG4gICAgICBsb2dnZXIuaW5mbyhgTW9yZSBpbmZvcm1hdGlvbiBhdCBodHRwczovL2ZvbnRzLmdvb2dsZS5jb20vc3BlY2ltZW4vUm9ib3RvYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gaG9zdC5yZWFkKHN0eWxlRmlsZVBhdGgpO1xuXG4gICAgaWYgKCFidWZmZXIpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCByZWFkIHRoZSBkZWZhdWx0IHN0eWxlIGZpbGUgd2l0aGluIHRoZSBwcm9qZWN0IGAgKyBgKCR7c3R5bGVGaWxlUGF0aH0pYCxcbiAgICAgICk7XG4gICAgICBsb2dnZXIuaW5mbyhgUGxlYXNlIGNvbnNpZGVyIG1hbnVhbGx5IHNldHRpbmcgdXAgdGhlIFJvYm90byBmb250LmApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWxDb250ZW50ID0gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgaW5zZXJ0aW9uID1cbiAgICAgICdcXG4nICtcbiAgICAgIGBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XFxuYCArXG4gICAgICBgYm9keSB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XFxuYDtcblxuICAgIGlmIChodG1sQ29udGVudC5pbmNsdWRlcyhpbnNlcnRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjb3JkZXIgPSBob3N0LmJlZ2luVXBkYXRlKHN0eWxlRmlsZVBhdGgpO1xuXG4gICAgcmVjb3JkZXIuaW5zZXJ0TGVmdChodG1sQ29udGVudC5sZW5ndGgsIGluc2VydGlvbik7XG4gICAgaG9zdC5jb21taXRVcGRhdGUocmVjb3JkZXIpO1xuICB9O1xufVxuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.createCustomTheme = createCustomTheme;
|
|
11
|
-
/** Create custom theme for the given application configuration. */
|
|
12
|
-
function createCustomTheme(name = 'app') {
|
|
13
|
-
return `
|
|
14
|
-
// Custom Theming for Angular Material
|
|
15
|
-
// For more information: https://material.angular.io/guide/theming
|
|
16
|
-
@use '@angular/material' as mat;
|
|
17
|
-
|
|
18
|
-
html {
|
|
19
|
-
@include mat.theme((
|
|
20
|
-
color: (
|
|
21
|
-
theme-type: light,
|
|
22
|
-
primary: mat.$azure-palette,
|
|
23
|
-
tertiary: mat.$blue-palette,
|
|
24
|
-
),
|
|
25
|
-
typography: Roboto,
|
|
26
|
-
density: 0,
|
|
27
|
-
));
|
|
28
|
-
}`;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWN1c3RvbS10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9zY2hlbWF0aWNzL25nLWFkZC90aGVtaW5nL2NyZWF0ZS1jdXN0b20tdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFHSCw4Q0FpQkM7QUFsQkQsbUVBQW1FO0FBQ25FLFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsS0FBSztJQUNwRCxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7RUFlUCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuLyoqIENyZWF0ZSBjdXN0b20gdGhlbWUgZm9yIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbVRoZW1lKG5hbWU6IHN0cmluZyA9ICdhcHAnKSB7XG4gIHJldHVybiBgXG4vLyBDdXN0b20gVGhlbWluZyBmb3IgQW5ndWxhciBNYXRlcmlhbFxuLy8gRm9yIG1vcmUgaW5mb3JtYXRpb246IGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90aGVtaW5nXG5AdXNlICdAYW5ndWxhci9tYXRlcmlhbCcgYXMgbWF0O1xuXG5odG1sIHtcbiAgQGluY2x1ZGUgbWF0LnRoZW1lKChcbiAgICBjb2xvcjogKFxuICAgICAgdGhlbWUtdHlwZTogbGlnaHQsXG4gICAgICBwcmltYXJ5OiBtYXQuJGF6dXJlLXBhbGV0dGUsXG4gICAgICB0ZXJ0aWFyeTogbWF0LiRibHVlLXBhbGV0dGUsXG4gICAgKSxcbiAgICB0eXBvZ3JhcGh5OiBSb2JvdG8sXG4gICAgZGVuc2l0eTogMCxcbiAgKSk7XG59YDtcbn1cbiJdfQ==
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.addThemeToAppStyles = addThemeToAppStyles;
|
|
11
|
-
exports.addTypographyClass = addTypographyClass;
|
|
12
|
-
const core_1 = require("@angular-devkit/core");
|
|
13
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
14
|
-
const schematics_2 = require("@angular/cdk/schematics");
|
|
15
|
-
const change_1 = require("@schematics/angular/utility/change");
|
|
16
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
17
|
-
const path_1 = require("path");
|
|
18
|
-
const create_custom_theme_1 = require("./create-custom-theme");
|
|
19
|
-
/** Path segment that can be found in paths that refer to a prebuilt theme. */
|
|
20
|
-
const prebuiltThemePathSegment = '@angular/material/prebuilt-themes';
|
|
21
|
-
/** Default file name of the custom theme that can be generated. */
|
|
22
|
-
const defaultCustomThemeFilename = 'custom-theme.scss';
|
|
23
|
-
/** Add pre-built styles to the main project style file. */
|
|
24
|
-
function addThemeToAppStyles(options) {
|
|
25
|
-
return (host, context) => {
|
|
26
|
-
const themeName = options.theme || 'azure-blue';
|
|
27
|
-
return themeName === 'custom'
|
|
28
|
-
? insertCustomTheme(options.project, host, context.logger)
|
|
29
|
-
: insertPrebuiltTheme(options.project, themeName, context.logger);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/** Adds the global typography class to the body element. */
|
|
33
|
-
function addTypographyClass(options) {
|
|
34
|
-
return async (host) => {
|
|
35
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
36
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, options.project);
|
|
37
|
-
const projectIndexFiles = (0, schematics_2.getProjectIndexFiles)(project);
|
|
38
|
-
if (!projectIndexFiles.length) {
|
|
39
|
-
throw new schematics_1.SchematicsException('No project index HTML file could be found.');
|
|
40
|
-
}
|
|
41
|
-
if (options.typography) {
|
|
42
|
-
projectIndexFiles.forEach(path => (0, schematics_2.addBodyClass)(host, path, 'mat-typography'));
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Insert a custom theme to project style file. If no valid style file could be found, a new
|
|
48
|
-
* Scss file for the custom theme will be created.
|
|
49
|
-
*/
|
|
50
|
-
async function insertCustomTheme(projectName, host, logger) {
|
|
51
|
-
const workspace = await (0, workspace_1.getWorkspace)(host);
|
|
52
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, projectName);
|
|
53
|
-
const stylesPath = (0, schematics_2.getProjectStyleFile)(project, 'scss');
|
|
54
|
-
const themeContent = (0, create_custom_theme_1.createCustomTheme)(projectName);
|
|
55
|
-
if (!stylesPath) {
|
|
56
|
-
if (!project.sourceRoot) {
|
|
57
|
-
throw new schematics_1.SchematicsException(`Could not find source root for project: "${projectName}". ` +
|
|
58
|
-
`Please make sure that the "sourceRoot" property is set in the workspace config.`);
|
|
59
|
-
}
|
|
60
|
-
// Normalize the path through the devkit utilities because we want to avoid having
|
|
61
|
-
// unnecessary path segments and windows backslash delimiters.
|
|
62
|
-
const customThemePath = (0, core_1.normalize)((0, path_1.join)(project.sourceRoot, defaultCustomThemeFilename));
|
|
63
|
-
if (host.exists(customThemePath)) {
|
|
64
|
-
logger.warn(`Cannot create a custom Angular Material theme because
|
|
65
|
-
${customThemePath} already exists. Skipping custom theme generation.`);
|
|
66
|
-
return (0, schematics_1.noop)();
|
|
67
|
-
}
|
|
68
|
-
host.create(customThemePath, themeContent);
|
|
69
|
-
return addThemeStyleToTarget(projectName, 'build', customThemePath, logger);
|
|
70
|
-
}
|
|
71
|
-
const insertion = new change_1.InsertChange(stylesPath, 0, themeContent);
|
|
72
|
-
const recorder = host.beginUpdate(stylesPath);
|
|
73
|
-
recorder.insertLeft(insertion.pos, insertion.toAdd);
|
|
74
|
-
host.commitUpdate(recorder);
|
|
75
|
-
return (0, schematics_1.noop)();
|
|
76
|
-
}
|
|
77
|
-
/** Insert a pre-built theme into the angular.json file. */
|
|
78
|
-
function insertPrebuiltTheme(project, theme, logger) {
|
|
79
|
-
const themePath = `@angular/material/prebuilt-themes/${theme}.css`;
|
|
80
|
-
return (0, schematics_1.chain)([
|
|
81
|
-
addThemeStyleToTarget(project, 'build', themePath, logger),
|
|
82
|
-
addThemeStyleToTarget(project, 'test', themePath, logger),
|
|
83
|
-
]);
|
|
84
|
-
}
|
|
85
|
-
/** Adds a theming style entry to the given project target options. */
|
|
86
|
-
function addThemeStyleToTarget(projectName, targetName, assetPath, logger) {
|
|
87
|
-
return (0, workspace_1.updateWorkspace)(workspace => {
|
|
88
|
-
const project = (0, schematics_2.getProjectFromWorkspace)(workspace, projectName);
|
|
89
|
-
// Do not update the builder options in case the target does not use the default CLI builder.
|
|
90
|
-
if (!validateDefaultTargetBuilder(project, targetName, logger)) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const targetOptions = (0, schematics_2.getProjectTargetOptions)(project, targetName);
|
|
94
|
-
const styles = targetOptions['styles'];
|
|
95
|
-
if (!styles) {
|
|
96
|
-
targetOptions['styles'] = [assetPath];
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const existingStyles = styles.map(s => (typeof s === 'string' ? s : s.input));
|
|
100
|
-
for (let [index, stylePath] of existingStyles.entries()) {
|
|
101
|
-
// If the given asset is already specified in the styles, we don't need to do anything.
|
|
102
|
-
if (stylePath === assetPath) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
// In case a prebuilt theme is already set up, we can safely replace the theme with the new
|
|
106
|
-
// theme file. If a custom theme is set up, we are not able to safely replace the custom
|
|
107
|
-
// theme because these files can contain custom styles, while prebuilt themes are
|
|
108
|
-
// always packaged and considered replaceable.
|
|
109
|
-
if (stylePath.includes(defaultCustomThemeFilename)) {
|
|
110
|
-
logger.error(`Could not add the selected theme to the CLI project ` +
|
|
111
|
-
`configuration because there is already a custom theme file referenced.`);
|
|
112
|
-
logger.info(`Please manually add the following style file to your configuration:`);
|
|
113
|
-
logger.info(` ${assetPath}`);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
else if (stylePath.includes(prebuiltThemePathSegment)) {
|
|
117
|
-
styles.splice(index, 1);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
styles.unshift(assetPath);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Validates that the specified project target is configured with the default builders which are
|
|
126
|
-
* provided by the Angular CLI. If the configured builder does not match the default builder,
|
|
127
|
-
* this function can either throw or just show a warning.
|
|
128
|
-
*/
|
|
129
|
-
function validateDefaultTargetBuilder(project, targetName, logger) {
|
|
130
|
-
const targets = targetName === 'test' ? (0, schematics_2.getProjectTestTargets)(project) : (0, schematics_2.getProjectBuildTargets)(project);
|
|
131
|
-
const isDefaultBuilder = targets.length > 0;
|
|
132
|
-
// Because the build setup for the Angular CLI can be customized by developers, we can't know
|
|
133
|
-
// where to put the theme file in the workspace configuration if custom builders are being
|
|
134
|
-
// used. In case the builder has been changed for the "build" target, we throw an error and
|
|
135
|
-
// exit because setting up a theme is a primary goal of `ng-add`. Otherwise if just the "test"
|
|
136
|
-
// builder has been changed, we warn because a theme is not mandatory for running tests
|
|
137
|
-
// with Material. See: https://github.com/angular/components/issues/14176
|
|
138
|
-
if (!isDefaultBuilder && targetName === 'build') {
|
|
139
|
-
throw new schematics_1.SchematicsException(`Your project is not using the default builders for ` +
|
|
140
|
-
`"${targetName}". The Angular Material schematics cannot add a theme to the workspace ` +
|
|
141
|
-
`configuration if the builder has been changed.`);
|
|
142
|
-
}
|
|
143
|
-
else if (!isDefaultBuilder) {
|
|
144
|
-
// for non-build targets we gracefully report the error without actually aborting the
|
|
145
|
-
// setup schematic. This is because a theme is not mandatory for running tests.
|
|
146
|
-
logger.warn(`Your project is not using the default builders for "${targetName}". This ` +
|
|
147
|
-
`means that we cannot add the configured theme to the "${targetName}" target.`);
|
|
148
|
-
}
|
|
149
|
-
return isDefaultBuilder;
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9zY2hlbWF0aWNzL25nLWFkZC90aGVtaW5nL3RoZW1pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFpQ0gsa0RBT0M7QUFHRCxnREFjQztBQXZERCwrQ0FBb0U7QUFDcEUsMkRBT29DO0FBQ3BDLHdEQVFpQztBQUNqQywrREFBZ0U7QUFDaEUscUVBQW9GO0FBQ3BGLCtCQUEwQjtBQUUxQiwrREFBd0Q7QUFFeEQsOEVBQThFO0FBQzlFLE1BQU0sd0JBQXdCLEdBQUcsbUNBQW1DLENBQUM7QUFFckUsbUVBQW1FO0FBQ25FLE1BQU0sMEJBQTBCLEdBQUcsbUJBQW1CLENBQUM7QUFFdkQsMkRBQTJEO0FBQzNELFNBQWdCLG1CQUFtQixDQUFDLE9BQWU7SUFDakQsT0FBTyxDQUFDLElBQVUsRUFBRSxPQUF5QixFQUFFLEVBQUU7UUFDL0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUM7UUFDaEQsT0FBTyxTQUFTLEtBQUssUUFBUTtZQUMzQixDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUMxRCxDQUFDLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw0REFBNEQ7QUFDNUQsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZTtJQUNoRCxPQUFPLEtBQUssRUFBRSxJQUFVLEVBQUUsRUFBRTtRQUMxQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsd0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFBLG9DQUF1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LE1BQU0sQ0FBQyxJQUFJLENBQ1QsdURBQXVELFVBQVUsVUFBVTtZQUN6RSx5REFBeUQsVUFBVSxXQUFXLENBQ2pGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZSwgbG9nZ2luZywgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtcbiAgY2hhaW4sXG4gIG5vb3AsXG4gIFJ1bGUsXG4gIFNjaGVtYXRpY0NvbnRleHQsXG4gIFNjaGVtYXRpY3NFeGNlcHRpb24sXG4gIFRyZWUsXG59IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7XG4gIGFkZEJvZHlDbGFzcyxcbiAgZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2UsXG4gIGdldFByb2plY3RTdHlsZUZpbGUsXG4gIGdldFByb2plY3RUYXJnZXRPcHRpb25zLFxuICBnZXRQcm9qZWN0SW5kZXhGaWxlcyxcbiAgZ2V0UHJvamVjdFRlc3RUYXJnZXRzLFxuICBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzLFxufSBmcm9tICdAYW5ndWxhci9jZGsvc2NoZW1hdGljcyc7XG5pbXBvcnQge0luc2VydENoYW5nZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L2NoYW5nZSc7XG5pbXBvcnQge2dldFdvcmtzcGFjZSwgdXBkYXRlV29ya3NwYWNlfSBmcm9tICdAc2NoZW1hdGljcy9hbmd1bGFyL3V0aWxpdHkvd29ya3NwYWNlJztcbmltcG9ydCB7am9pbn0gZnJvbSAncGF0aCc7XG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi4vc2NoZW1hJztcbmltcG9ydCB7Y3JlYXRlQ3VzdG9tVGhlbWV9IGZyb20gJy4vY3JlYXRlLWN1c3RvbS10aGVtZSc7XG5cbi8qKiBQYXRoIHNlZ21lbnQgdGhhdCBjYW4gYmUgZm91bmQgaW4gcGF0aHMgdGhhdCByZWZlciB0byBhIHByZWJ1aWx0IHRoZW1lLiAqL1xuY29uc3QgcHJlYnVpbHRUaGVtZVBhdGhTZWdtZW50ID0gJ0Bhbmd1bGFyL21hdGVyaWFsL3ByZWJ1aWx0LXRoZW1lcyc7XG5cbi8qKiBEZWZhdWx0IGZpbGUgbmFtZSBvZiB0aGUgY3VzdG9tIHRoZW1lIHRoYXQgY2FuIGJlIGdlbmVyYXRlZC4gKi9cbmNvbnN0IGRlZmF1bHRDdXN0b21UaGVtZUZpbGVuYW1lID0gJ2N1c3RvbS10aGVtZS5zY3NzJztcblxuLyoqIEFkZCBwcmUtYnVpbHQgc3R5bGVzIHRvIHRoZSBtYWluIHByb2plY3Qgc3R5bGUgZmlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRUaGVtZVRvQXBwU3R5bGVzKG9wdGlvbnM6IFNjaGVtYSk6IFJ1bGUge1xuICByZXR1cm4gKGhvc3Q6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCB0aGVtZU5hbWUgPSBvcHRpb25zLnRoZW1lIHx8ICdhenVyZS1ibHVlJztcbiAgICByZXR1cm4gdGhlbWVOYW1lID09PSAnY3VzdG9tJ1xuICAgICAgPyBpbnNlcnRDdXN0b21UaGVtZShvcHRpb25zLnByb2plY3QsIGhvc3QsIGNvbnRleHQubG9nZ2VyKVxuICAgICAgOiBpbnNlcnRQcmVidWlsdFRoZW1lKG9wdGlvbnMucHJvamVjdCwgdGhlbWVOYW1lLCBjb250ZXh0LmxvZ2dlcik7XG4gIH07XG59XG5cbi8qKiBBZGRzIHRoZSBnbG9iYWwgdHlwb2dyYXBoeSBjbGFzcyB0byB0aGUgYm9keSBlbGVtZW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFR5cG9ncmFwaHlDbGFzcyhvcHRpb25zOiBTY2hlbWEpOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlKSA9PiB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlKGhvc3QpO1xuICAgIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG4gICAgY29uc3QgcHJvamVjdEluZGV4RmlsZXMgPSBnZXRQcm9qZWN0SW5kZXhGaWxlcyhwcm9qZWN0KTtcblxuICAgIGlmICghcHJvamVjdEluZGV4RmlsZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbignTm8gcHJvamVjdCBpbmRleCBIVE1MIGZpbGUgY291bGQgYmUgZm91bmQuJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHlwb2dyYXBoeSkge1xuICAgICAgcHJvamVjdEluZGV4RmlsZXMuZm9yRWFjaChwYXRoID0+IGFkZEJvZHlDbGFzcyhob3N0LCBwYXRoLCAnbWF0LXR5cG9ncmFwaHknKSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEluc2VydCBhIGN1c3RvbSB0aGVtZSB0byBwcm9qZWN0IHN0eWxlIGZpbGUuIElmIG5vIHZhbGlkIHN0eWxlIGZpbGUgY291bGQgYmUgZm91bmQsIGEgbmV3XG4gKiBTY3NzIGZpbGUgZm9yIHRoZSBjdXN0b20gdGhlbWUgd2lsbCBiZSBjcmVhdGVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbnNlcnRDdXN0b21UaGVtZShcbiAgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgaG9zdDogVHJlZSxcbiAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlckFwaSxcbik6IFByb21pc2U8UnVsZT4ge1xuICBjb25zdCB3b3Jrc3BhY2UgPSBhd2FpdCBnZXRXb3Jrc3BhY2UoaG9zdCk7XG4gIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIHByb2plY3ROYW1lKTtcbiAgY29uc3Qgc3R5bGVzUGF0aCA9IGdldFByb2plY3RTdHlsZUZpbGUocHJvamVjdCwgJ3Njc3MnKTtcbiAgY29uc3QgdGhlbWVDb250ZW50ID0gY3JlYXRlQ3VzdG9tVGhlbWUocHJvamVjdE5hbWUpO1xuXG4gIGlmICghc3R5bGVzUGF0aCkge1xuICAgIGlmICghcHJvamVjdC5zb3VyY2VSb290KSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIHNvdXJjZSByb290IGZvciBwcm9qZWN0OiBcIiR7cHJvamVjdE5hbWV9XCIuIGAgK1xuICAgICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIFwic291cmNlUm9vdFwiIHByb3BlcnR5IGlzIHNldCBpbiB0aGUgd29ya3NwYWNlIGNvbmZpZy5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxpemUgdGhlIHBhdGggdGhyb3VnaCB0aGUgZGV2a2l0IHV0aWxpdGllcyBiZWNhdXNlIHdlIHdhbnQgdG8gYXZvaWQgaGF2aW5nXG4gICAgLy8gdW5uZWNlc3NhcnkgcGF0aCBzZWdtZW50cyBhbmQgd2luZG93cyBiYWNrc2xhc2ggZGVsaW1pdGVycy5cbiAgICBjb25zdCBjdXN0b21UaGVtZVBhdGggPSBub3JtYWxpemUoam9pbihwcm9qZWN0LnNvdXJjZVJvb3QsIGRlZmF1bHRDdXN0b21UaGVtZUZpbGVuYW1lKSk7XG5cbiAgICBpZiAoaG9zdC5leGlzdHMoY3VzdG9tVGhlbWVQYXRoKSkge1xuICAgICAgbG9nZ2VyLndhcm4oYENhbm5vdCBjcmVhdGUgYSBjdXN0b20gQW5ndWxhciBNYXRlcmlhbCB0aGVtZSBiZWNhdXNlXG4gICAgICAgICAgJHtjdXN0b21UaGVtZVBhdGh9IGFscmVhZHkgZXhpc3RzLiBTa2lwcGluZyBjdXN0b20gdGhlbWUgZ2VuZXJhdGlvbi5gKTtcbiAgICAgIHJldHVybiBub29wKCk7XG4gICAgfVxuXG4gICAgaG9zdC5jcmVhdGUoY3VzdG9tVGhlbWVQYXRoLCB0aGVtZUNvbnRlbnQpO1xuICAgIHJldHVybiBhZGRUaGVtZVN0eWxlVG9UYXJnZXQocHJvamVjdE5hbWUsICdidWlsZCcsIGN1c3RvbVRoZW1lUGF0aCwgbG9nZ2VyKTtcbiAgfVxuXG4gIGNvbnN0IGluc2VydGlvbiA9IG5ldyBJbnNlcnRDaGFuZ2Uoc3R5bGVzUGF0aCwgMCwgdGhlbWVDb250ZW50KTtcbiAgY29uc3QgcmVjb3JkZXIgPSBob3N0LmJlZ2luVXBkYXRlKHN0eWxlc1BhdGgpO1xuXG4gIHJlY29yZGVyLmluc2VydExlZnQoaW5zZXJ0aW9uLnBvcywgaW5zZXJ0aW9uLnRvQWRkKTtcbiAgaG9zdC5jb21taXRVcGRhdGUocmVjb3JkZXIpO1xuICByZXR1cm4gbm9vcCgpO1xufVxuXG4vKiogSW5zZXJ0IGEgcHJlLWJ1aWx0IHRoZW1lIGludG8gdGhlIGFuZ3VsYXIuanNvbiBmaWxlLiAqL1xuZnVuY3Rpb24gaW5zZXJ0UHJlYnVpbHRUaGVtZShwcm9qZWN0OiBzdHJpbmcsIHRoZW1lOiBzdHJpbmcsIGxvZ2dlcjogbG9nZ2luZy5Mb2dnZXJBcGkpOiBSdWxlIHtcbiAgY29uc3QgdGhlbWVQYXRoID0gYEBhbmd1bGFyL21hdGVyaWFsL3ByZWJ1aWx0LXRoZW1lcy8ke3RoZW1lfS5jc3NgO1xuXG4gIHJldHVybiBjaGFpbihbXG4gICAgYWRkVGhlbWVTdHlsZVRvVGFyZ2V0KHByb2plY3QsICdidWlsZCcsIHRoZW1lUGF0aCwgbG9nZ2VyKSxcbiAgICBhZGRUaGVtZVN0eWxlVG9UYXJnZXQocHJvamVjdCwgJ3Rlc3QnLCB0aGVtZVBhdGgsIGxvZ2dlciksXG4gIF0pO1xufVxuXG4vKiogQWRkcyBhIHRoZW1pbmcgc3R5bGUgZW50cnkgdG8gdGhlIGdpdmVuIHByb2plY3QgdGFyZ2V0IG9wdGlvbnMuICovXG5mdW5jdGlvbiBhZGRUaGVtZVN0eWxlVG9UYXJnZXQoXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIHRhcmdldE5hbWU6ICd0ZXN0JyB8ICdidWlsZCcsXG4gIGFzc2V0UGF0aDogc3RyaW5nLFxuICBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyQXBpLFxuKTogUnVsZSB7XG4gIHJldHVybiB1cGRhdGVXb3Jrc3BhY2Uod29ya3NwYWNlID0+IHtcbiAgICBjb25zdCBwcm9qZWN0ID0gZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlLCBwcm9qZWN0TmFtZSk7XG5cbiAgICAvLyBEbyBub3QgdXBkYXRlIHRoZSBidWlsZGVyIG9wdGlvbnMgaW4gY2FzZSB0aGUgdGFyZ2V0IGRvZXMgbm90IHVzZSB0aGUgZGVmYXVsdCBDTEkgYnVpbGRlci5cbiAgICBpZiAoIXZhbGlkYXRlRGVmYXVsdFRhcmdldEJ1aWxkZXIocHJvamVjdCwgdGFyZ2V0TmFtZSwgbG9nZ2VyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE9wdGlvbnMgPSBnZXRQcm9qZWN0VGFyZ2V0T3B0aW9ucyhwcm9qZWN0LCB0YXJnZXROYW1lKTtcbiAgICBjb25zdCBzdHlsZXMgPSB0YXJnZXRPcHRpb25zWydzdHlsZXMnXSBhcyAoc3RyaW5nIHwge2lucHV0OiBzdHJpbmd9KVtdO1xuXG4gICAgaWYgKCFzdHlsZXMpIHtcbiAgICAgIHRhcmdldE9wdGlvbnNbJ3N0eWxlcyddID0gW2Fzc2V0UGF0aF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nU3R5bGVzID0gc3R5bGVzLm1hcChzID0+ICh0eXBlb2YgcyA9PT0gJ3N0cmluZycgPyBzIDogcy5pbnB1dCkpO1xuXG4gICAgICBmb3IgKGxldCBbaW5kZXgsIHN0eWxlUGF0aF0gb2YgZXhpc3RpbmdTdHlsZXMuZW50cmllcygpKSB7XG4gICAgICAgIC8vIElmIHRoZSBnaXZlbiBhc3NldCBpcyBhbHJlYWR5IHNwZWNpZmllZCBpbiB0aGUgc3R5bGVzLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLlxuICAgICAgICBpZiAoc3R5bGVQYXRoID09PSBhc3NldFBhdGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbiBjYXNlIGEgcHJlYnVpbHQgdGhlbWUgaXMgYWxyZWFkeSBzZXQgdXAsIHdlIGNhbiBzYWZlbHkgcmVwbGFjZSB0aGUgdGhlbWUgd2l0aCB0aGUgbmV3XG4gICAgICAgIC8vIHRoZW1lIGZpbGUuIElmIGEgY3VzdG9tIHRoZW1lIGlzIHNldCB1cCwgd2UgYXJlIG5vdCBhYmxlIHRvIHNhZmVseSByZXBsYWNlIHRoZSBjdXN0b21cbiAgICAgICAgLy8gdGhlbWUgYmVjYXVzZSB0aGVzZSBmaWxlcyBjYW4gY29udGFpbiBjdXN0b20gc3R5bGVzLCB3aGlsZSBwcmVidWlsdCB0aGVtZXMgYXJlXG4gICAgICAgIC8vIGFsd2F5cyBwYWNrYWdlZCBhbmQgY29uc2lkZXJlZCByZXBsYWNlYWJsZS5cbiAgICAgICAgaWYgKHN0eWxlUGF0aC5pbmNsdWRlcyhkZWZhdWx0Q3VzdG9tVGhlbWVGaWxlbmFtZSkpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICBgQ291bGQgbm90IGFkZCB0aGUgc2VsZWN0ZWQgdGhlbWUgdG8gdGhlIENMSSBwcm9qZWN0IGAgK1xuICAgICAgICAgICAgICBgY29uZmlndXJhdGlvbiBiZWNhdXNlIHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gdGhlbWUgZmlsZSByZWZlcmVuY2VkLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgUGxlYXNlIG1hbnVhbGx5IGFkZCB0aGUgZm9sbG93aW5nIHN0eWxlIGZpbGUgdG8geW91ciBjb25maWd1cmF0aW9uOmApO1xuICAgICAgICAgIGxvZ2dlci5pbmZvKGAgICAgJHthc3NldFBhdGh9YCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHN0eWxlUGF0aC5pbmNsdWRlcyhwcmVidWlsdFRoZW1lUGF0aFNlZ21lbnQpKSB7XG4gICAgICAgICAgc3R5bGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3R5bGVzLnVuc2hpZnQoYXNzZXRQYXRoKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGF0IHRoZSBzcGVjaWZpZWQgcHJvamVjdCB0YXJnZXQgaXMgY29uZmlndXJlZCB3aXRoIHRoZSBkZWZhdWx0IGJ1aWxkZXJzIHdoaWNoIGFyZVxuICogcHJvdmlkZWQgYnkgdGhlIEFuZ3VsYXIgQ0xJLiBJZiB0aGUgY29uZmlndXJlZCBidWlsZGVyIGRvZXMgbm90IG1hdGNoIHRoZSBkZWZhdWx0IGJ1aWxkZXIsXG4gKiB0aGlzIGZ1bmN0aW9uIGNhbiBlaXRoZXIgdGhyb3cgb3IganVzdCBzaG93IGEgd2FybmluZy5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVEZWZhdWx0VGFyZ2V0QnVpbGRlcihcbiAgcHJvamVjdDogd29ya3NwYWNlcy5Qcm9qZWN0RGVmaW5pdGlvbixcbiAgdGFyZ2V0TmFtZTogJ2J1aWxkJyB8ICd0ZXN0JyxcbiAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlckFwaSxcbikge1xuICBjb25zdCB0YXJnZXRzID1cbiAgICB0YXJnZXROYW1lID09PSAndGVzdCcgPyBnZXRQcm9qZWN0VGVzdFRhcmdldHMocHJvamVjdCkgOiBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzKHByb2plY3QpO1xuICBjb25zdCBpc0RlZmF1bHRCdWlsZGVyID0gdGFyZ2V0cy5sZW5ndGggPiAwO1xuXG4gIC8vIEJlY2F1c2UgdGhlIGJ1aWxkIHNldHVwIGZvciB0aGUgQW5ndWxhciBDTEkgY2FuIGJlIGN1c3RvbWl6ZWQgYnkgZGV2ZWxvcGVycywgd2UgY2FuJ3Qga25vd1xuICAvLyB3aGVyZSB0byBwdXQgdGhlIHRoZW1lIGZpbGUgaW4gdGhlIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIGlmIGN1c3RvbSBidWlsZGVycyBhcmUgYmVpbmdcbiAgLy8gdXNlZC4gSW4gY2FzZSB0aGUgYnVpbGRlciBoYXMgYmVlbiBjaGFuZ2VkIGZvciB0aGUgXCJidWlsZFwiIHRhcmdldCwgd2UgdGhyb3cgYW4gZXJyb3IgYW5kXG4gIC8vIGV4aXQgYmVjYXVzZSBzZXR0aW5nIHVwIGEgdGhlbWUgaXMgYSBwcmltYXJ5IGdvYWwgb2YgYG5nLWFkZGAuIE90aGVyd2lzZSBpZiBqdXN0IHRoZSBcInRlc3RcIlxuICAvLyBidWlsZGVyIGhhcyBiZWVuIGNoYW5nZWQsIHdlIHdhcm4gYmVjYXVzZSBhIHRoZW1lIGlzIG5vdCBtYW5kYXRvcnkgZm9yIHJ1bm5pbmcgdGVzdHNcbiAgLy8gd2l0aCBNYXRlcmlhbC4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNDE3NlxuICBpZiAoIWlzRGVmYXVsdEJ1aWxkZXIgJiYgdGFyZ2V0TmFtZSA9PT0gJ2J1aWxkJykge1xuICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgYFlvdXIgcHJvamVjdCBpcyBub3QgdXNpbmcgdGhlIGRlZmF1bHQgYnVpbGRlcnMgZm9yIGAgK1xuICAgICAgICBgXCIke3RhcmdldE5hbWV9XCIuIFRoZSBBbmd1bGFyIE1hdGVyaWFsIHNjaGVtYXRpY3MgY2Fubm90IGFkZCBhIHRoZW1lIHRvIHRoZSB3b3Jrc3BhY2UgYCArXG4gICAgICAgIGBjb25maWd1cmF0aW9uIGlmIHRoZSBidWlsZGVyIGhhcyBiZWVuIGNoYW5nZWQuYCxcbiAgICApO1xuICB9IGVsc2UgaWYgKCFpc0RlZmF1bHRCdWlsZGVyKSB7XG4gICAgLy8gZm9yIG5vbi1idWlsZCB0YXJnZXRzIHdlIGdyYWNlZnVsbHkgcmVwb3J0IHRoZSBlcnJvciB3aXRob3V0IGFjdHVhbGx5IGFib3J0aW5nIHRoZVxuICAgIC8vIHNldHVwIHNjaGVtYXRpYy4gVGhpcyBpcyBiZWNhdXNlIGEgdGhlbWUgaXMgbm90IG1hbmRhdG9yeSBmb3IgcnVubmluZyB0ZXN0cy5cbiAgICBsb2dnZXIud2FybihcbiAgICAgIGBZb3VyIHByb2plY3QgaXMgbm90IHVzaW5nIHRoZSBkZWZhdWx0IGJ1aWxkZXJzIGZvciBcIiR7dGFyZ2V0TmFtZX1cIi4gVGhpcyBgICtcbiAgICAgICAgYG1lYW5zIHRoYXQgd2UgY2Fubm90IGFkZCB0aGUgY29uZmlndXJlZCB0aGVtZSB0byB0aGUgXCIke3RhcmdldE5hbWV9XCIgdGFyZ2V0LmAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpc0RlZmF1bHRCdWlsZGVyO1xufVxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.default = default_1;
|
|
11
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
12
|
-
const schematics_2 = require("@angular/cdk/schematics");
|
|
13
|
-
/**
|
|
14
|
-
* Scaffolds a new table component.
|
|
15
|
-
* Internally it bootstraps the base component schematic
|
|
16
|
-
*/
|
|
17
|
-
function default_1(options) {
|
|
18
|
-
return (0, schematics_1.chain)([
|
|
19
|
-
(0, schematics_2.buildComponent)({ ...options }, {
|
|
20
|
-
template: './__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template',
|
|
21
|
-
stylesheet: './__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template',
|
|
22
|
-
}),
|
|
23
|
-
options.skipImport ? (0, schematics_1.noop)() : addFormModulesToModule(options),
|
|
24
|
-
]);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Adds the required modules to the relative module.
|
|
28
|
-
*/
|
|
29
|
-
function addFormModulesToModule(options) {
|
|
30
|
-
return async (host) => {
|
|
31
|
-
const isStandalone = await (0, schematics_2.isStandaloneSchematic)(host, options);
|
|
32
|
-
if (!isStandalone) {
|
|
33
|
-
const modulePath = (await (0, schematics_2.findModuleFromOptions)(host, options));
|
|
34
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'MatInputModule', '@angular/material/input');
|
|
35
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'MatButtonModule', '@angular/material/button');
|
|
36
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'MatSelectModule', '@angular/material/select');
|
|
37
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'MatRadioModule', '@angular/material/radio');
|
|
38
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'MatCardModule', '@angular/material/card');
|
|
39
|
-
(0, schematics_2.addModuleImportToModule)(host, modulePath, 'ReactiveFormsModule', '@angular/forms');
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvc2NoZW1hdGljcy9uZy1nZW5lcmF0ZS9hZGRyZXNzLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFlSCw0QkFhQztBQTFCRCwyREFBbUU7QUFDbkUsd0RBS2lDO0FBR2pDOzs7R0FHRztBQUNILG1CQUF5QixPQUFlO0lBQ3RDLE9BQU8sSUFBQSxrQkFBSyxFQUFDO1FBQ1gsSUFBQSwyQkFBYyxFQUNaLEVBQUMsR0FBRyxPQUFPLEVBQUMsRUFDWjtZQUNFLFFBQVEsRUFDTixrRkFBa0Y7WUFDcEYsVUFBVSxFQUNSLHVGQUF1RjtTQUMxRixDQUNGO1FBQ0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBQSxpQkFBSSxHQUFFLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztLQUM5RCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLE9BQWU7SUFDN0MsT0FBTyxLQUFLLEVBQUUsSUFBVSxFQUFFLEVBQUU7UUFDMUIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLGtDQUFxQixFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLElBQUEsa0NBQXFCLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFFLENBQUM7WUFDakUsSUFBQSxvQ0FBdUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7WUFDdkYsSUFBQSxvQ0FBdUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixDQUFDLENBQUM7WUFDekYsSUFBQSxvQ0FBdUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixDQUFDLENBQUM7WUFDekYsSUFBQSxvQ0FBdUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7WUFDdkYsSUFBQSxvQ0FBdUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3JGLElBQUEsb0NBQXVCLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2NoYWluLCBub29wLCBSdWxlLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge1xuICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZSxcbiAgYnVpbGRDb21wb25lbnQsXG4gIGZpbmRNb2R1bGVGcm9tT3B0aW9ucyxcbiAgaXNTdGFuZGFsb25lU2NoZW1hdGljLFxufSBmcm9tICdAYW5ndWxhci9jZGsvc2NoZW1hdGljcyc7XG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIFNjYWZmb2xkcyBhIG5ldyB0YWJsZSBjb21wb25lbnQuXG4gKiBJbnRlcm5hbGx5IGl0IGJvb3RzdHJhcHMgdGhlIGJhc2UgY29tcG9uZW50IHNjaGVtYXRpY1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAob3B0aW9uczogU2NoZW1hKTogUnVsZSB7XG4gIHJldHVybiBjaGFpbihbXG4gICAgYnVpbGRDb21wb25lbnQoXG4gICAgICB7Li4ub3B0aW9uc30sXG4gICAgICB7XG4gICAgICAgIHRlbXBsYXRlOlxuICAgICAgICAgICcuL19fcGF0aF9fL19fbmFtZUBkYXNoZXJpemVAaWYtZmxhdF9fL19fbmFtZUBkYXNoZXJpemVfXy5jb21wb25lbnQuaHRtbC50ZW1wbGF0ZScsXG4gICAgICAgIHN0eWxlc2hlZXQ6XG4gICAgICAgICAgJy4vX19wYXRoX18vX19uYW1lQGRhc2hlcml6ZUBpZi1mbGF0X18vX19uYW1lQGRhc2hlcml6ZV9fLmNvbXBvbmVudC5fX3N0eWxlX18udGVtcGxhdGUnLFxuICAgICAgfSxcbiAgICApLFxuICAgIG9wdGlvbnMuc2tpcEltcG9ydCA/IG5vb3AoKSA6IGFkZEZvcm1Nb2R1bGVzVG9Nb2R1bGUob3B0aW9ucyksXG4gIF0pO1xufVxuXG4vKipcbiAqIEFkZHMgdGhlIHJlcXVpcmVkIG1vZHVsZXMgdG8gdGhlIHJlbGF0aXZlIG1vZHVsZS5cbiAqL1xuZnVuY3Rpb24gYWRkRm9ybU1vZHVsZXNUb01vZHVsZShvcHRpb25zOiBTY2hlbWEpIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0OiBUcmVlKSA9PiB7XG4gICAgY29uc3QgaXNTdGFuZGFsb25lID0gYXdhaXQgaXNTdGFuZGFsb25lU2NoZW1hdGljKGhvc3QsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1N0YW5kYWxvbmUpIHtcbiAgICAgIGNvbnN0IG1vZHVsZVBhdGggPSAoYXdhaXQgZmluZE1vZHVsZUZyb21PcHRpb25zKGhvc3QsIG9wdGlvbnMpKSE7XG4gICAgICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZShob3N0LCBtb2R1bGVQYXRoLCAnTWF0SW5wdXRNb2R1bGUnLCAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnKTtcbiAgICAgIGFkZE1vZHVsZUltcG9ydFRvTW9kdWxlKGhvc3QsIG1vZHVsZVBhdGgsICdNYXRCdXR0b25Nb2R1bGUnLCAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJyk7XG4gICAgICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZShob3N0LCBtb2R1bGVQYXRoLCAnTWF0U2VsZWN0TW9kdWxlJywgJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCcpO1xuICAgICAgYWRkTW9kdWxlSW1wb3J0VG9Nb2R1bGUoaG9zdCwgbW9kdWxlUGF0aCwgJ01hdFJhZGlvTW9kdWxlJywgJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJyk7XG4gICAgICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZShob3N0LCBtb2R1bGVQYXRoLCAnTWF0Q2FyZE1vZHVsZScsICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJyk7XG4gICAgICBhZGRNb2R1bGVJbXBvcnRUb01vZHVsZShob3N0LCBtb2R1bGVQYXRoLCAnUmVhY3RpdmVGb3Jtc01vZHVsZScsICdAYW5ndWxhci9mb3JtcycpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5
|
-
*
|
|
6
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctZ2VuZXJhdGUvYWRkcmVzcy1mb3JtL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NjaGVtYSBhcyBDb21wb25lbnRTY2hlbWF9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvY29tcG9uZW50L3NjaGVtYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIGV4dGVuZHMgQ29tcG9uZW50U2NoZW1hIHt9XG4iXX0=
|