@angular/cdk 20.0.0-next.0 → 20.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/a11y/index.d.ts +330 -1234
  2. package/a11y-module.d-7d03e079.d.ts +313 -0
  3. package/accordion/index.d.ts +8 -27
  4. package/activedescendant-key-manager.d-11921e3a.d.ts +31 -0
  5. package/bidi/index.d.ts +3 -62
  6. package/bidi-module.d-f8648621.d.ts +53 -0
  7. package/clipboard/index.d.ts +61 -75
  8. package/coercion/index.d.ts +10 -33
  9. package/coercion/private/index.d.ts +2 -2
  10. package/collections/index.d.ts +13 -291
  11. package/data-source.d-7cab2c9d.d.ts +42 -0
  12. package/dialog/index.d.ts +204 -249
  13. package/drag-drop/index.d.ts +1077 -1157
  14. package/fesm2022/a11y-module-e6996d20.mjs +952 -0
  15. package/fesm2022/a11y-module-e6996d20.mjs.map +1 -0
  16. package/fesm2022/a11y.mjs +47 -2445
  17. package/fesm2022/a11y.mjs.map +1 -1
  18. package/fesm2022/accordion.mjs +12 -16
  19. package/fesm2022/accordion.mjs.map +1 -1
  20. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs +16 -0
  21. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs.map +1 -0
  22. package/fesm2022/array-ee3b4bab.mjs +6 -0
  23. package/fesm2022/array-ee3b4bab.mjs.map +1 -0
  24. package/fesm2022/backwards-compatibility-bcbe473e.mjs +25 -0
  25. package/fesm2022/backwards-compatibility-bcbe473e.mjs.map +1 -0
  26. package/fesm2022/bidi-module-0726b65c.mjs +78 -0
  27. package/fesm2022/bidi-module-0726b65c.mjs.map +1 -0
  28. package/fesm2022/bidi.mjs +4 -143
  29. package/fesm2022/bidi.mjs.map +1 -1
  30. package/fesm2022/breakpoints-observer-d4584b66.mjs +179 -0
  31. package/fesm2022/breakpoints-observer-d4584b66.mjs.map +1 -0
  32. package/fesm2022/cdk.mjs +1 -1
  33. package/fesm2022/cdk.mjs.map +1 -1
  34. package/fesm2022/clipboard.mjs +10 -14
  35. package/fesm2022/clipboard.mjs.map +1 -1
  36. package/fesm2022/coercion/private.mjs +2 -18
  37. package/fesm2022/coercion/private.mjs.map +1 -1
  38. package/fesm2022/coercion.mjs +5 -39
  39. package/fesm2022/coercion.mjs.map +1 -1
  40. package/fesm2022/collections.mjs +7 -476
  41. package/fesm2022/collections.mjs.map +1 -1
  42. package/fesm2022/css-pixel-value-286c9a60.mjs +10 -0
  43. package/fesm2022/css-pixel-value-286c9a60.mjs.map +1 -0
  44. package/fesm2022/data-source-5320b6fd.mjs +15 -0
  45. package/fesm2022/data-source-5320b6fd.mjs.map +1 -0
  46. package/fesm2022/dialog.mjs +37 -39
  47. package/fesm2022/dialog.mjs.map +1 -1
  48. package/fesm2022/directionality-7ea26429.mjs +72 -0
  49. package/fesm2022/directionality-7ea26429.mjs.map +1 -0
  50. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs +44 -0
  51. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs.map +1 -0
  52. package/fesm2022/drag-drop.mjs +48 -50
  53. package/fesm2022/drag-drop.mjs.map +1 -1
  54. package/fesm2022/element-705567fe.mjs +29 -0
  55. package/fesm2022/element-705567fe.mjs.map +1 -0
  56. package/fesm2022/fake-event-detection-7055b1bd.mjs +24 -0
  57. package/fesm2022/fake-event-detection-7055b1bd.mjs.map +1 -0
  58. package/fesm2022/focus-key-manager-58d29acd.mjs +22 -0
  59. package/fesm2022/focus-key-manager-58d29acd.mjs.map +1 -0
  60. package/fesm2022/focus-monitor-cebaa0d1.mjs +629 -0
  61. package/fesm2022/focus-monitor-cebaa0d1.mjs.map +1 -0
  62. package/fesm2022/id-generator-fba495fb.mjs +37 -0
  63. package/fesm2022/id-generator-fba495fb.mjs.map +1 -0
  64. package/fesm2022/keycodes-107cd3e4.mjs +122 -0
  65. package/fesm2022/keycodes-107cd3e4.mjs.map +1 -0
  66. package/fesm2022/keycodes.mjs +2 -136
  67. package/fesm2022/keycodes.mjs.map +1 -1
  68. package/fesm2022/layout.mjs +12 -184
  69. package/fesm2022/layout.mjs.map +1 -1
  70. package/fesm2022/list-key-manager-c7b5cefb.mjs +360 -0
  71. package/fesm2022/list-key-manager-c7b5cefb.mjs.map +1 -0
  72. package/fesm2022/listbox.mjs +21 -20
  73. package/fesm2022/listbox.mjs.map +1 -1
  74. package/fesm2022/menu.mjs +76 -60
  75. package/fesm2022/menu.mjs.map +1 -1
  76. package/fesm2022/modifiers-33a5859e.mjs +13 -0
  77. package/fesm2022/modifiers-33a5859e.mjs.map +1 -0
  78. package/fesm2022/observable-97c0792c.mjs +15 -0
  79. package/fesm2022/observable-97c0792c.mjs.map +1 -0
  80. package/fesm2022/observe-content-d2a6b5a0.mjs +210 -0
  81. package/fesm2022/observe-content-d2a6b5a0.mjs.map +1 -0
  82. package/fesm2022/observers/private.mjs +3 -7
  83. package/fesm2022/observers/private.mjs.map +1 -1
  84. package/fesm2022/observers.mjs +5 -213
  85. package/fesm2022/observers.mjs.map +1 -1
  86. package/fesm2022/overlay-module-863b82c9.mjs +3029 -0
  87. package/fesm2022/overlay-module-863b82c9.mjs.map +1 -0
  88. package/fesm2022/overlay.mjs +28 -3019
  89. package/fesm2022/overlay.mjs.map +1 -1
  90. package/fesm2022/passive-listeners-c0bdc49f.mjs +31 -0
  91. package/fesm2022/passive-listeners-c0bdc49f.mjs.map +1 -0
  92. package/fesm2022/platform-1be098b0.mjs +77 -0
  93. package/fesm2022/platform-1be098b0.mjs.map +1 -0
  94. package/fesm2022/platform.mjs +13 -293
  95. package/fesm2022/platform.mjs.map +1 -1
  96. package/fesm2022/portal-directives-c88fea11.mjs +615 -0
  97. package/fesm2022/portal-directives-c88fea11.mjs.map +1 -0
  98. package/fesm2022/portal.mjs +3 -650
  99. package/fesm2022/portal.mjs.map +1 -1
  100. package/fesm2022/private.mjs +3 -63
  101. package/fesm2022/private.mjs.map +1 -1
  102. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs +156 -0
  103. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs.map +1 -0
  104. package/fesm2022/scrolling-61955dd1.mjs +99 -0
  105. package/fesm2022/scrolling-61955dd1.mjs.map +1 -0
  106. package/fesm2022/scrolling-module-aa9eeac5.mjs +1463 -0
  107. package/fesm2022/scrolling-module-aa9eeac5.mjs.map +1 -0
  108. package/fesm2022/scrolling.mjs +12 -1463
  109. package/fesm2022/scrolling.mjs.map +1 -1
  110. package/fesm2022/selection-model-30243dba.mjs +221 -0
  111. package/fesm2022/selection-model-30243dba.mjs.map +1 -0
  112. package/fesm2022/shadow-dom-9f403d00.mjs +49 -0
  113. package/fesm2022/shadow-dom-9f403d00.mjs.map +1 -0
  114. package/fesm2022/stepper.mjs +32 -30
  115. package/fesm2022/stepper.mjs.map +1 -1
  116. package/fesm2022/style-loader-e14dc585.mjs +47 -0
  117. package/fesm2022/style-loader-e14dc585.mjs.map +1 -0
  118. package/fesm2022/table.mjs +88 -132
  119. package/fesm2022/table.mjs.map +1 -1
  120. package/fesm2022/test-environment-34eef1ee.mjs +19 -0
  121. package/fesm2022/test-environment-34eef1ee.mjs.map +1 -0
  122. package/fesm2022/testing/selenium-webdriver.mjs +2 -1
  123. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  124. package/fesm2022/testing/testbed.mjs +33 -74
  125. package/fesm2022/testing/testbed.mjs.map +1 -1
  126. package/fesm2022/testing.mjs +2 -697
  127. package/fesm2022/testing.mjs.map +1 -1
  128. package/fesm2022/text-field.mjs +24 -23
  129. package/fesm2022/text-field.mjs.map +1 -1
  130. package/fesm2022/text-filtering-b60ba8a2.mjs +698 -0
  131. package/fesm2022/text-filtering-b60ba8a2.mjs.map +1 -0
  132. package/fesm2022/tree-key-manager-2f20c79c.mjs +360 -0
  133. package/fesm2022/tree-key-manager-2f20c79c.mjs.map +1 -0
  134. package/fesm2022/tree.mjs +33 -33
  135. package/fesm2022/tree.mjs.map +1 -1
  136. package/fesm2022/typeahead-11ae39bd.mjs +88 -0
  137. package/fesm2022/typeahead-11ae39bd.mjs.map +1 -0
  138. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs +49 -0
  139. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs.map +1 -0
  140. package/fesm2022/visually-hidden-83aea4a0.mjs +18 -0
  141. package/fesm2022/visually-hidden-83aea4a0.mjs.map +1 -0
  142. package/focus-key-manager.d-415a6958.d.ts +33 -0
  143. package/focus-monitor.d-810a02e6.d.ts +209 -0
  144. package/harness-environment.d-4d615248.d.ts +619 -0
  145. package/index.d.ts +2 -2
  146. package/keycodes/index.d.ts +123 -244
  147. package/layout/index.d.ts +23 -25
  148. package/list-key-manager.d-72e9a2e7.d.ts +164 -0
  149. package/listbox/index.d.ts +91 -107
  150. package/menu/index.d.ts +596 -682
  151. package/number-property.d-ce316715.d.ts +15 -0
  152. package/observe-content.d-c08bc882.d.ts +84 -0
  153. package/observers/index.d.ts +4 -90
  154. package/observers/private/index.d.ts +3 -3
  155. package/overlay/index.d.ts +110 -951
  156. package/overlay-module.d-5d06db8a.d.ts +790 -0
  157. package/package.json +1 -1
  158. package/platform/index.d.ts +45 -86
  159. package/platform.d-0a5b4792.d.ts +33 -0
  160. package/portal/index.d.ts +5 -264
  161. package/portal-directives.d-d345bd53.d.ts +210 -0
  162. package/private/index.d.ts +3 -20
  163. package/schematics/ng-add/index.js +1 -1
  164. package/schematics/ng-add/index.mjs +1 -1
  165. package/schematics/ng-update/html-parsing/angular.js +2 -2
  166. package/schematics/ng-update/html-parsing/angular.mjs +2 -2
  167. package/scrolling/index.d.ts +7 -687
  168. package/scrolling-module.d-a08a462d.d.ts +551 -0
  169. package/selection-model.d-1a70542c.d.ts +111 -0
  170. package/stepper/index.d.ts +74 -124
  171. package/style-loader.d-19baab84.d.ts +21 -0
  172. package/table/index.d.ts +329 -453
  173. package/testing/index.d.ts +32 -675
  174. package/testing/selenium-webdriver/index.d.ts +30 -20
  175. package/testing/testbed/index.d.ts +9 -19
  176. package/text-field/index.d.ts +11 -30
  177. package/tree/index.d.ts +205 -271
  178. package/tree-key-manager-strategy.d-603161dd.d.ts +116 -0
  179. package/unique-selection-dispatcher.d-7993b9f5.d.ts +32 -0
  180. package/view-repeater.d-79039e1f.d.ts +88 -0
  181. package/viewport-ruler.d-f3d3e82f.d.ts +57 -0
@@ -0,0 +1,210 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ComponentRef, ViewContainerRef, Injector, EmbeddedViewRef, TemplateRef, ElementRef, OnInit, OnDestroy, EventEmitter } from '@angular/core';
3
+
4
+ /** Interface that can be used to generically type a class. */
5
+ interface ComponentType<T> {
6
+ new (...args: any[]): T;
7
+ }
8
+ /**
9
+ * A `Portal` is something that you want to render somewhere else.
10
+ * It can be attach to / detached from a `PortalOutlet`.
11
+ */
12
+ declare abstract class Portal<T> {
13
+ private _attachedHost;
14
+ /** Attach this portal to a host. */
15
+ attach(host: PortalOutlet): T;
16
+ /** Detach this portal from its host */
17
+ detach(): void;
18
+ /** Whether this portal is attached to a host. */
19
+ get isAttached(): boolean;
20
+ /**
21
+ * Sets the PortalOutlet reference without performing `attach()`. This is used directly by
22
+ * the PortalOutlet when it is performing an `attach()` or `detach()`.
23
+ */
24
+ setAttachedHost(host: PortalOutlet | null): void;
25
+ }
26
+ /**
27
+ * A `ComponentPortal` is a portal that instantiates some Component upon attachment.
28
+ */
29
+ declare class ComponentPortal<T> extends Portal<ComponentRef<T>> {
30
+ /** The type of the component that will be instantiated for attachment. */
31
+ component: ComponentType<T>;
32
+ /**
33
+ * Where the attached component should live in Angular's *logical* component tree.
34
+ * This is different from where the component *renders*, which is determined by the PortalOutlet.
35
+ * The origin is necessary when the host is outside of the Angular application context.
36
+ */
37
+ viewContainerRef?: ViewContainerRef | null;
38
+ /** Injector used for the instantiation of the component. */
39
+ injector?: Injector | null;
40
+ /**
41
+ * List of DOM nodes that should be projected through `<ng-content>` of the attached component.
42
+ */
43
+ projectableNodes?: Node[][] | null;
44
+ constructor(component: ComponentType<T>, viewContainerRef?: ViewContainerRef | null, injector?: Injector | null, projectableNodes?: Node[][] | null);
45
+ }
46
+ /**
47
+ * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).
48
+ */
49
+ declare class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {
50
+ /** The embedded template that will be used to instantiate an embedded View in the host. */
51
+ templateRef: TemplateRef<C>;
52
+ /** Reference to the ViewContainer into which the template will be stamped out. */
53
+ viewContainerRef: ViewContainerRef;
54
+ /** Contextual data to be passed in to the embedded view. */
55
+ context?: C | undefined;
56
+ /** The injector to use for the embedded view. */
57
+ injector?: Injector | undefined;
58
+ constructor(
59
+ /** The embedded template that will be used to instantiate an embedded View in the host. */
60
+ templateRef: TemplateRef<C>,
61
+ /** Reference to the ViewContainer into which the template will be stamped out. */
62
+ viewContainerRef: ViewContainerRef,
63
+ /** Contextual data to be passed in to the embedded view. */
64
+ context?: C | undefined,
65
+ /** The injector to use for the embedded view. */
66
+ injector?: Injector | undefined);
67
+ get origin(): ElementRef;
68
+ /**
69
+ * Attach the portal to the provided `PortalOutlet`.
70
+ * When a context is provided it will override the `context` property of the `TemplatePortal`
71
+ * instance.
72
+ */
73
+ attach(host: PortalOutlet, context?: C | undefined): EmbeddedViewRef<C>;
74
+ detach(): void;
75
+ }
76
+ /**
77
+ * A `DomPortal` is a portal whose DOM element will be taken from its current position
78
+ * in the DOM and moved into a portal outlet, when it is attached. On detach, the content
79
+ * will be restored to its original position.
80
+ */
81
+ declare class DomPortal<T = HTMLElement> extends Portal<T> {
82
+ /** DOM node hosting the portal's content. */
83
+ readonly element: T;
84
+ constructor(element: T | ElementRef<T>);
85
+ }
86
+ /** A `PortalOutlet` is a space that can contain a single `Portal`. */
87
+ interface PortalOutlet {
88
+ /** Attaches a portal to this outlet. */
89
+ attach(portal: Portal<any>): any;
90
+ /** Detaches the currently attached portal from this outlet. */
91
+ detach(): any;
92
+ /** Performs cleanup before the outlet is destroyed. */
93
+ dispose(): void;
94
+ /** Whether there is currently a portal attached to this outlet. */
95
+ hasAttached(): boolean;
96
+ }
97
+ /**
98
+ * Partial implementation of PortalOutlet that handles attaching
99
+ * ComponentPortal and TemplatePortal.
100
+ */
101
+ declare abstract class BasePortalOutlet implements PortalOutlet {
102
+ /** The portal currently attached to the host. */
103
+ protected _attachedPortal: Portal<any> | null;
104
+ /** A function that will permanently dispose this host. */
105
+ private _disposeFn;
106
+ /** Whether this host has already been permanently disposed. */
107
+ private _isDisposed;
108
+ /** Whether this host has an attached portal. */
109
+ hasAttached(): boolean;
110
+ attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;
111
+ attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;
112
+ attach(portal: any): any;
113
+ abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
114
+ abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
115
+ readonly attachDomPortal: null | ((portal: DomPortal) => any);
116
+ /** Detaches a previously attached portal. */
117
+ detach(): void;
118
+ /** Permanently dispose of this portal host. */
119
+ dispose(): void;
120
+ /** @docs-private */
121
+ setDisposeFn(fn: () => void): void;
122
+ private _invokeDisposeFn;
123
+ }
124
+
125
+ /**
126
+ * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,
127
+ * the directive instance itself can be attached to a host, enabling declarative use of portals.
128
+ */
129
+ declare class CdkPortal extends TemplatePortal {
130
+ constructor(...args: unknown[]);
131
+ static ɵfac: i0.ɵɵFactoryDeclaration<CdkPortal, never>;
132
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPortal, "[cdkPortal]", ["cdkPortal"], {}, {}, never, never, true, never>;
133
+ }
134
+ /**
135
+ * @deprecated Use `CdkPortal` instead.
136
+ * @breaking-change 9.0.0
137
+ */
138
+ declare class TemplatePortalDirective extends CdkPortal {
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<TemplatePortalDirective, never>;
140
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TemplatePortalDirective, "[cdk-portal], [portal]", ["cdkPortal"], {}, {}, never, never, true, never>;
141
+ }
142
+ /**
143
+ * Possible attached references to the CdkPortalOutlet.
144
+ */
145
+ type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;
146
+ /**
147
+ * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be
148
+ * directly attached to it, enabling declarative use.
149
+ *
150
+ * Usage:
151
+ * `<ng-template [cdkPortalOutlet]="greeting"></ng-template>`
152
+ */
153
+ declare class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {
154
+ private _moduleRef;
155
+ private _document;
156
+ private _viewContainerRef;
157
+ /** Whether the portal component is initialized. */
158
+ private _isInitialized;
159
+ /** Reference to the currently-attached component/view ref. */
160
+ private _attachedRef;
161
+ constructor(...args: unknown[]);
162
+ /** Portal associated with the Portal outlet. */
163
+ get portal(): Portal<any> | null;
164
+ set portal(portal: Portal<any> | null | undefined | '');
165
+ /** Emits when a portal is attached to the outlet. */
166
+ readonly attached: EventEmitter<CdkPortalOutletAttachedRef>;
167
+ /** Component or view reference that is attached to the portal. */
168
+ get attachedRef(): CdkPortalOutletAttachedRef;
169
+ ngOnInit(): void;
170
+ ngOnDestroy(): void;
171
+ /**
172
+ * Attach the given ComponentPortal to this PortalOutlet.
173
+ *
174
+ * @param portal Portal to be attached to the portal outlet.
175
+ * @returns Reference to the created component.
176
+ */
177
+ attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
178
+ /**
179
+ * Attach the given TemplatePortal to this PortalHost as an embedded View.
180
+ * @param portal Portal to be attached.
181
+ * @returns Reference to the created embedded view.
182
+ */
183
+ attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
184
+ /**
185
+ * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.
186
+ * @param portal Portal to be attached.
187
+ * @deprecated To be turned into a method.
188
+ * @breaking-change 10.0.0
189
+ */
190
+ attachDomPortal: (portal: DomPortal) => void;
191
+ /** Gets the root node of the portal outlet. */
192
+ private _getRootNode;
193
+ static ɵfac: i0.ɵɵFactoryDeclaration<CdkPortalOutlet, never>;
194
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPortalOutlet, "[cdkPortalOutlet]", ["cdkPortalOutlet"], { "portal": { "alias": "cdkPortalOutlet"; "required": false; }; }, { "attached": "attached"; }, never, never, true, never>;
195
+ }
196
+ /**
197
+ * @deprecated Use `CdkPortalOutlet` instead.
198
+ * @breaking-change 9.0.0
199
+ */
200
+ declare class PortalHostDirective extends CdkPortalOutlet {
201
+ static ɵfac: i0.ɵɵFactoryDeclaration<PortalHostDirective, never>;
202
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PortalHostDirective, "[cdkPortalHost], [portalHost]", ["cdkPortalHost"], { "portal": { "alias": "cdkPortalHost"; "required": false; }; }, {}, never, never, true, never>;
203
+ }
204
+ declare class PortalModule {
205
+ static ɵfac: i0.ɵɵFactoryDeclaration<PortalModule, never>;
206
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PortalModule, never, [typeof CdkPortal, typeof CdkPortalOutlet, typeof TemplatePortalDirective, typeof PortalHostDirective], [typeof CdkPortal, typeof CdkPortalOutlet, typeof TemplatePortalDirective, typeof PortalHostDirective]>;
207
+ static ɵinj: i0.ɵɵInjectorDeclaration<PortalModule>;
208
+ }
209
+
210
+ export { BasePortalOutlet as B, CdkPortalOutlet as C, DomPortal as D, PortalModule as P, TemplatePortal as T, ComponentPortal as a, type ComponentType as b, type PortalOutlet as c, Portal as d, CdkPortal as e, TemplatePortalDirective as f, type CdkPortalOutletAttachedRef as g, PortalHostDirective as h };
@@ -1,30 +1,13 @@
1
+ export { _ as _CdkPrivateStyleLoader } from '../style-loader.d-19baab84.js';
1
2
  import * as i0 from '@angular/core';
2
- import { Type } from '@angular/core';
3
-
4
- /**
5
- * Service that loads structural styles dynamically
6
- * and ensures that they're only loaded once per app.
7
- */
8
- export declare class _CdkPrivateStyleLoader {
9
- private _appRef;
10
- private _injector;
11
- private _environmentInjector;
12
- /**
13
- * Loads a set of styles.
14
- * @param loader Component which will be instantiated to load the styles.
15
- */
16
- load(loader: Type<unknown>): void;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<_CdkPrivateStyleLoader, never>;
18
- static ɵprov: i0.ɵɵInjectableDeclaration<_CdkPrivateStyleLoader>;
19
- }
20
3
 
21
4
  /**
22
5
  * Component used to load the .cdk-visually-hidden styles.
23
6
  * @docs-private
24
7
  */
25
- export declare class _VisuallyHiddenLoader {
8
+ declare class _VisuallyHiddenLoader {
26
9
  static ɵfac: i0.ɵɵFactoryDeclaration<_VisuallyHiddenLoader, never>;
27
10
  static ɵcmp: i0.ɵɵComponentDeclaration<_VisuallyHiddenLoader, "ng-component", ["cdkVisuallyHidden"], {}, {}, never, never, true, never>;
28
11
  }
29
12
 
30
- export { }
13
+ export { _VisuallyHiddenLoader };
@@ -29,7 +29,7 @@ function default_1() {
29
29
  // In order to align the CDK version with other Angular dependencies that are setup by
30
30
  // `@schematics/angular`, we use tilde instead of caret. This is default for Angular
31
31
  // dependencies in new CLI projects.
32
- (0, package_config_1.addPackageToPackageJson)(host, '@angular/cdk', `~20.0.0-next.0`);
32
+ (0, package_config_1.addPackageToPackageJson)(host, '@angular/cdk', `~20.0.0-next.2`);
33
33
  // Add a task to run the package manager. This is necessary because we updated the
34
34
  // workspace "package.json" file and we want lock files to reflect the new version range.
35
35
  context.addTask(new tasks_1.NodePackageInstallTask());
@@ -29,7 +29,7 @@ function default_1() {
29
29
  // In order to align the CDK version with other Angular dependencies that are setup by
30
30
  // `@schematics/angular`, we use tilde instead of caret. This is default for Angular
31
31
  // dependencies in new CLI projects.
32
- (0, package_config_1.addPackageToPackageJson)(host, '@angular/cdk', `~20.0.0-next.0`);
32
+ (0, package_config_1.addPackageToPackageJson)(host, '@angular/cdk', `~20.0.0-next.2`);
33
33
  // Add a task to run the package manager. This is necessary because we updated the
34
34
  // workspace "package.json" file and we want lock files to reflect the new version range.
35
35
  context.addTask(new tasks_1.NodePackageInstallTask());
@@ -26,7 +26,7 @@ function findInputsOnElementWithTag(html, inputName, tagNames) {
26
26
  /** Finds the specified Angular @Input in elements that have one of the specified attributes. */
27
27
  function findInputsOnElementWithAttr(html, inputName, attrs) {
28
28
  return [
29
- // Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
29
+ // Inputs can be also used without brackets (e.g. `<button matButton color="primary">`)
30
30
  ...(0, elements_1.findAttributeOnElementWithAttrs)(html, inputName, attrs),
31
31
  // Add one column to the mapped offset because the first bracket for the @Input
32
32
  // is part of the attribute and therefore also part of the offset. We only want to return
@@ -48,4 +48,4 @@ function findOutputsOnElementWithAttr(html, outputName, attrs) {
48
48
  // the offset for the inner name of the output.
49
49
  return (0, elements_1.findAttributeOnElementWithAttrs)(html, `(${outputName})`, attrs).map(offset => offset + 1);
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFLSCxnRUFTQztBQUdELGtFQVNDO0FBR0Qsa0VBS0M7QUFHRCxvRUFLQztBQXhDRCx5Q0FBMEY7QUFFMUYsOEVBQThFO0FBQzlFLFNBQWdCLDBCQUEwQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLFFBQWtCO0lBQzVGLE9BQU87UUFDTCxrRkFBa0Y7UUFDbEYsR0FBRyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQzNELCtFQUErRTtRQUMvRSx5RkFBeUY7UUFDekYsd0RBQXdEO1FBQ3hELEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzdGLENBQUM7QUFDSixDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHdGQUF3RjtRQUN4RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsUUFBa0I7SUFDOUYsb0ZBQW9GO0lBQ3BGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQsaUdBQWlHO0FBQ2pHLFNBQWdCLDRCQUE0QixDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDNUYsZ0ZBQWdGO0lBQ2hGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2ZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMsIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnfSBmcm9tICcuL2VsZW1lbnRzJztcblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWcoaHRtbCwgaW5wdXROYW1lLCB0YWdOYW1lcyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgWyR7aW5wdXROYW1lfV1gLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKSxcbiAgXTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gZWxlbWVudHMgdGhhdCBoYXZlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgaW5wdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gW1xuICAgIC8vIElucHV0cyBjYW4gYmUgYWxzbyB1c2VkIHdpdGhvdXQgYnJhY2tldHMgKGUuZy4gYDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5gKVxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgaW5wdXROYW1lLCBhdHRycyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aEF0dHJzKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIGF0dHJzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBPdXRwdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE91dHB1dHNPbkVsZW1lbnRXaXRoVGFnKGh0bWw6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgcGFyZW50aGVzaXMgZm9yIHRoZSBAT3V0cHV0XG4gIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gIC8vIHRoZSBvZmZzZXQgZm9yIHRoZSBpbm5lciBuYW1lIG9mIHRoZSBvdXRwdXQuXG4gIHJldHVybiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgdGFnTmFtZXMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nLCBhdHRyczogc3RyaW5nW10pIHtcbiAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYCgke291dHB1dE5hbWV9KWAsIGF0dHJzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFLSCxnRUFTQztBQUdELGtFQVNDO0FBR0Qsa0VBS0M7QUFHRCxvRUFLQztBQXhDRCx5Q0FBMEY7QUFFMUYsOEVBQThFO0FBQzlFLFNBQWdCLDBCQUEwQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLFFBQWtCO0lBQzVGLE9BQU87UUFDTCxrRkFBa0Y7UUFDbEYsR0FBRyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQzNELCtFQUErRTtRQUMvRSx5RkFBeUY7UUFDekYsd0RBQXdEO1FBQ3hELEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzdGLENBQUM7QUFDSixDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHVGQUF1RjtRQUN2RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsUUFBa0I7SUFDOUYsb0ZBQW9GO0lBQ3BGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQsaUdBQWlHO0FBQ2pHLFNBQWdCLDRCQUE0QixDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDNUYsZ0ZBQWdGO0lBQ2hGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2ZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMsIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnfSBmcm9tICcuL2VsZW1lbnRzJztcblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWcoaHRtbCwgaW5wdXROYW1lLCB0YWdOYW1lcyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgWyR7aW5wdXROYW1lfV1gLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKSxcbiAgXTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gZWxlbWVudHMgdGhhdCBoYXZlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgaW5wdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gW1xuICAgIC8vIElucHV0cyBjYW4gYmUgYWxzbyB1c2VkIHdpdGhvdXQgYnJhY2tldHMgKGUuZy4gYDxidXR0b24gbWF0QnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=
@@ -26,7 +26,7 @@ function findInputsOnElementWithTag(html, inputName, tagNames) {
26
26
  /** Finds the specified Angular @Input in elements that have one of the specified attributes. */
27
27
  function findInputsOnElementWithAttr(html, inputName, attrs) {
28
28
  return [
29
- // Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
29
+ // Inputs can be also used without brackets (e.g. `<button matButton color="primary">`)
30
30
  ...(0, elements_1.findAttributeOnElementWithAttrs)(html, inputName, attrs),
31
31
  // Add one column to the mapped offset because the first bracket for the @Input
32
32
  // is part of the attribute and therefore also part of the offset. We only want to return
@@ -48,4 +48,4 @@ function findOutputsOnElementWithAttr(html, outputName, attrs) {
48
48
  // the offset for the inner name of the output.
49
49
  return (0, elements_1.findAttributeOnElementWithAttrs)(html, `(${outputName})`, attrs).map(offset => offset + 1);
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFLSCxnRUFTQztBQUdELGtFQVNDO0FBR0Qsa0VBS0M7QUFHRCxvRUFLQztBQXhDRCx5Q0FBMEY7QUFFMUYsOEVBQThFO0FBQzlFLFNBQWdCLDBCQUEwQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLFFBQWtCO0lBQzVGLE9BQU87UUFDTCxrRkFBa0Y7UUFDbEYsR0FBRyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQzNELCtFQUErRTtRQUMvRSx5RkFBeUY7UUFDekYsd0RBQXdEO1FBQ3hELEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzdGLENBQUM7QUFDSixDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHdGQUF3RjtRQUN4RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsUUFBa0I7SUFDOUYsb0ZBQW9GO0lBQ3BGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQsaUdBQWlHO0FBQ2pHLFNBQWdCLDRCQUE0QixDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDNUYsZ0ZBQWdGO0lBQ2hGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2ZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMsIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnfSBmcm9tICcuL2VsZW1lbnRzJztcblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWcoaHRtbCwgaW5wdXROYW1lLCB0YWdOYW1lcyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgWyR7aW5wdXROYW1lfV1gLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKSxcbiAgXTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gZWxlbWVudHMgdGhhdCBoYXZlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgaW5wdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gW1xuICAgIC8vIElucHV0cyBjYW4gYmUgYWxzbyB1c2VkIHdpdGhvdXQgYnJhY2tldHMgKGUuZy4gYDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5gKVxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgaW5wdXROYW1lLCBhdHRycyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aEF0dHJzKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIGF0dHJzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBPdXRwdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE91dHB1dHNPbkVsZW1lbnRXaXRoVGFnKGh0bWw6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgcGFyZW50aGVzaXMgZm9yIHRoZSBAT3V0cHV0XG4gIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gIC8vIHRoZSBvZmZzZXQgZm9yIHRoZSBpbm5lciBuYW1lIG9mIHRoZSBvdXRwdXQuXG4gIHJldHVybiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgdGFnTmFtZXMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nLCBhdHRyczogc3RyaW5nW10pIHtcbiAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYCgke291dHB1dE5hbWV9KWAsIGF0dHJzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFLSCxnRUFTQztBQUdELGtFQVNDO0FBR0Qsa0VBS0M7QUFHRCxvRUFLQztBQXhDRCx5Q0FBMEY7QUFFMUYsOEVBQThFO0FBQzlFLFNBQWdCLDBCQUEwQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLFFBQWtCO0lBQzVGLE9BQU87UUFDTCxrRkFBa0Y7UUFDbEYsR0FBRyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQzNELCtFQUErRTtRQUMvRSx5RkFBeUY7UUFDekYsd0RBQXdEO1FBQ3hELEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzdGLENBQUM7QUFDSixDQUFDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHVGQUF1RjtRQUN2RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsUUFBa0I7SUFDOUYsb0ZBQW9GO0lBQ3BGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLHdDQUE2QixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQsaUdBQWlHO0FBQ2pHLFNBQWdCLDRCQUE0QixDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDNUYsZ0ZBQWdGO0lBQ2hGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2ZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMsIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnfSBmcm9tICcuL2VsZW1lbnRzJztcblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gdGhlIGdpdmVuIGVsZW1lbnRzIHdpdGggdGFnIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPG1hdC10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWcoaHRtbCwgaW5wdXROYW1lLCB0YWdOYW1lcyksXG4gICAgLy8gQWRkIG9uZSBjb2x1bW4gdG8gdGhlIG1hcHBlZCBvZmZzZXQgYmVjYXVzZSB0aGUgZmlyc3QgYnJhY2tldCBmb3IgdGhlIEBJbnB1dFxuICAgIC8vIGlzIHBhcnQgb2YgdGhlIGF0dHJpYnV0ZSBhbmQgdGhlcmVmb3JlIGFsc28gcGFydCBvZiB0aGUgb2Zmc2V0LiBXZSBvbmx5IHdhbnQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIGJyYWNrZXRlZCBpbnB1dC5cbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBgWyR7aW5wdXROYW1lfV1gLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKSxcbiAgXTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBASW5wdXQgaW4gZWxlbWVudHMgdGhhdCBoYXZlIG9uZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZElucHV0c09uRWxlbWVudFdpdGhBdHRyKGh0bWw6IHN0cmluZywgaW5wdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gW1xuICAgIC8vIElucHV0cyBjYW4gYmUgYWxzbyB1c2VkIHdpdGhvdXQgYnJhY2tldHMgKGUuZy4gYDxidXR0b24gbWF0QnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=