@eui/core 22.0.0-alpha.2 → 22.0.0-alpha.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.
@@ -0,0 +1,514 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.migrateToSignals = migrateToSignals;
37
+ const compiler_1 = require("@angular/compiler");
38
+ const ts = __importStar(require("typescript"));
39
+ const dry_run_1 = require("../utils/dry-run");
40
+ const signal_map_1 = require("./signal-map");
41
+ /**
42
+ * Migrates consumer code that accesses EUI component instances programmatically.
43
+ *
44
+ * When EUI migrated @Input() → input(), @ViewChild() → viewChild(), and
45
+ * @ContentChild() → contentChild(), properties that were plain class fields
46
+ * became signal getters. Consumers who access them via @ViewChild need to
47
+ * change `comp.prop` to `comp.prop()`.
48
+ *
49
+ * This schematic:
50
+ * 1. Finds @ViewChild / @ContentChild fields typed as EUI component classes
51
+ * 2. Resolves untyped @ViewChild('refName') by reading the component template
52
+ * and matching #refName to an EUI element tag/selector
53
+ * 3. Tracks which local variable names hold EUI component references (incl. aliases)
54
+ * 4. Rewrites property accesses on those references: `ref.prop` → `ref.prop()`
55
+ * (only for properties listed in the signal map)
56
+ * 5. Does NOT touch template bindings — those are unaffected by signal migrations
57
+ */
58
+ function migrateToSignals(options = {}) {
59
+ return (tree, context) => {
60
+ const scanPath = options.path ? '/' + options.path.replace(/^\.?\//, '').replace(/\/$/, '') : '';
61
+ let fileCount = 0;
62
+ let propCount = 0;
63
+ visitDir(tree.getDir(scanPath || '/'), (path) => {
64
+ if (!path.endsWith('.ts'))
65
+ return;
66
+ // Skip spec files — test code may use different patterns
67
+ if (path.endsWith('.spec.ts'))
68
+ return;
69
+ const buffer = tree.read(path);
70
+ if (!buffer)
71
+ return;
72
+ const original = buffer.toString('utf-8');
73
+ // Fast bail: file must mention at least one EUI class name or have
74
+ // ViewChild/ContentChild with string refs (which might reference EUI elements)
75
+ if (!hasEuiReference(original) && !hasStringRefQuery(original))
76
+ return;
77
+ const result = migrateTypeScript(original, path, tree, context);
78
+ if (result.source !== original) {
79
+ if (options.dryRun) {
80
+ (0, dry_run_1.logDryRun)(context, `Would migrate ${result.editCount} signal property access(es) in ${path}`);
81
+ }
82
+ else {
83
+ tree.overwrite(path, result.source);
84
+ }
85
+ fileCount++;
86
+ propCount += result.editCount;
87
+ }
88
+ });
89
+ context.logger.info(`Migrated ${propCount} property access(es) to signal getters in ${fileCount} file(s).`);
90
+ if (options.dryRun) {
91
+ (0, dry_run_1.logDryRunNote)(context);
92
+ }
93
+ return tree;
94
+ };
95
+ }
96
+ /** Quick check: does the file reference any EUI class name from the signal map? */
97
+ function hasEuiReference(source) {
98
+ for (const className of Object.keys(signal_map_1.EUI_SIGNAL_MAP)) {
99
+ if (source.includes(className))
100
+ return true;
101
+ }
102
+ return false;
103
+ }
104
+ /** Quick check: does the file have @ViewChild('...') or @ContentChild('...') with string refs? */
105
+ function hasStringRefQuery(source) {
106
+ return /(@ViewChild|@ContentChild|@ViewChildren|@ContentChildren)\s*\(\s*['"]/.test(source);
107
+ }
108
+ function migrateTypeScript(source, filePath, tree, context) {
109
+ const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
110
+ const edits = [];
111
+ // Phase 0: Build template ref map (#refName → EUI class name) from the component's template
112
+ const templateRefMap = buildTemplateRefMap(sourceFile, source, filePath, tree);
113
+ // Phase 1: Collect all variables/properties typed as EUI classes
114
+ const euiRefs = collectEuiReferences(sourceFile, source, templateRefMap);
115
+ if (euiRefs.size === 0) {
116
+ return { source, editCount: 0 };
117
+ }
118
+ // Phase 2: Find property accesses on those references and rewrite signal props
119
+ const visitNode = (node) => {
120
+ // Match: ref.prop (PropertyAccessExpression)
121
+ if (ts.isPropertyAccessExpression(node)) {
122
+ const rewrite = tryRewritePropertyAccess(node, euiRefs, sourceFile, source);
123
+ if (rewrite) {
124
+ edits.push(rewrite);
125
+ }
126
+ }
127
+ ts.forEachChild(node, visitNode);
128
+ };
129
+ ts.forEachChild(sourceFile, visitNode);
130
+ if (edits.length === 0) {
131
+ return { source, editCount: 0 };
132
+ }
133
+ return {
134
+ source: applyEdits(source, edits),
135
+ editCount: edits.length,
136
+ };
137
+ }
138
+ /**
139
+ * Scans the source file for class properties or variables typed as EUI component classes.
140
+ * Returns a map: localName → Set of signal property names.
141
+ *
142
+ * Handles:
143
+ * @ViewChild(EuiXxxComponent) name: EuiXxxComponent;
144
+ * @ViewChild(EuiXxxComponent) name!: EuiXxxComponent;
145
+ * @ViewChild('ref') name: EuiXxxComponent;
146
+ * @ContentChild(EuiXxxComponent) name: EuiXxxComponent;
147
+ * @ViewChild('ref') name: ElementRef; (resolved via template #ref → EUI selector)
148
+ * someVar: EuiXxxComponent; (typed class field, even without decorator)
149
+ * const alias = this.viewChildRef; (alias tracking)
150
+ */
151
+ function collectEuiReferences(sourceFile, source, templateRefMap) {
152
+ const refs = new Map();
153
+ // Pass 1: collect directly-typed references
154
+ const visitDirect = (node) => {
155
+ // Class property declarations
156
+ if (ts.isPropertyDeclaration(node) && node.name && ts.isIdentifier(node.name)) {
157
+ const euiClass = resolveEuiClassName(node, sourceFile, templateRefMap);
158
+ if (euiClass && signal_map_1.EUI_SIGNAL_MAP[euiClass]) {
159
+ refs.set(node.name.text, signal_map_1.EUI_SIGNAL_MAP[euiClass]);
160
+ }
161
+ }
162
+ // Variable declarations (const x: EuiXxxComponent = ...)
163
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
164
+ const typeName = getTypeAnnotationName(node.type);
165
+ if (typeName && signal_map_1.EUI_SIGNAL_MAP[typeName]) {
166
+ refs.set(node.name.text, signal_map_1.EUI_SIGNAL_MAP[typeName]);
167
+ }
168
+ }
169
+ // Parameter declarations (method(ref: EuiXxxComponent))
170
+ if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
171
+ const typeName = getTypeAnnotationName(node.type);
172
+ if (typeName && signal_map_1.EUI_SIGNAL_MAP[typeName]) {
173
+ refs.set(node.name.text, signal_map_1.EUI_SIGNAL_MAP[typeName]);
174
+ }
175
+ }
176
+ ts.forEachChild(node, visitDirect);
177
+ };
178
+ ts.forEachChild(sourceFile, visitDirect);
179
+ // Pass 2: track aliases — variables assigned from already-tracked references
180
+ // e.g. const alias = this.viewChildRef; or const alias = someParam;
181
+ const visitAlias = (node) => {
182
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer) {
183
+ // Skip if already tracked (has explicit type annotation)
184
+ if (refs.has(node.name.text)) {
185
+ ts.forEachChild(node, visitAlias);
186
+ return;
187
+ }
188
+ const aliasedRef = resolveRefName(node.initializer);
189
+ if (aliasedRef && refs.has(aliasedRef)) {
190
+ refs.set(node.name.text, refs.get(aliasedRef));
191
+ }
192
+ }
193
+ ts.forEachChild(node, visitAlias);
194
+ };
195
+ ts.forEachChild(sourceFile, visitAlias);
196
+ return refs;
197
+ }
198
+ /**
199
+ * Resolves the EUI class name from a property declaration.
200
+ * Checks: type annotation → decorator class argument → template ref map.
201
+ */
202
+ function resolveEuiClassName(node, sourceFile, templateRefMap) {
203
+ // Check type annotation first
204
+ const typeName = getTypeAnnotationName(node.type);
205
+ if (typeName && signal_map_1.EUI_SIGNAL_MAP[typeName]) {
206
+ return typeName;
207
+ }
208
+ // Check generic type argument: ElementRef<EuiXxxComponent>
209
+ if (node.type && ts.isTypeReferenceNode(node.type) && node.type.typeArguments?.length) {
210
+ const genericArg = getTypeAnnotationName(node.type.typeArguments[0]);
211
+ if (genericArg && signal_map_1.EUI_SIGNAL_MAP[genericArg]) {
212
+ return genericArg;
213
+ }
214
+ }
215
+ // Check decorator arguments: @ViewChild(EuiXxxComponent) or @ViewChild('refName')
216
+ if (node.modifiers) {
217
+ for (const modifier of node.modifiers) {
218
+ if (!ts.isDecorator(modifier))
219
+ continue;
220
+ if (!ts.isCallExpression(modifier.expression))
221
+ continue;
222
+ const decoratorName = getDecoratorName(modifier.expression);
223
+ if (!decoratorName)
224
+ continue;
225
+ if (!['ViewChild', 'ViewChildren', 'ContentChild', 'ContentChildren'].includes(decoratorName))
226
+ continue;
227
+ const args = modifier.expression.arguments;
228
+ if (args.length > 0) {
229
+ const firstArg = args[0];
230
+ // @ViewChild(EuiXxxComponent) — class reference
231
+ if (ts.isIdentifier(firstArg) && signal_map_1.EUI_SIGNAL_MAP[firstArg.text]) {
232
+ return firstArg.text;
233
+ }
234
+ // @ViewChild('refName') — string template ref, resolve via template
235
+ if (ts.isStringLiteralLike(firstArg)) {
236
+ const refName = firstArg.text;
237
+ const euiClass = templateRefMap.get(refName);
238
+ if (euiClass && signal_map_1.EUI_SIGNAL_MAP[euiClass]) {
239
+ return euiClass;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ return null;
246
+ }
247
+ function getDecoratorName(callExpr) {
248
+ if (ts.isIdentifier(callExpr.expression)) {
249
+ return callExpr.expression.text;
250
+ }
251
+ return null;
252
+ }
253
+ function getTypeAnnotationName(typeNode) {
254
+ if (!typeNode)
255
+ return null;
256
+ if (ts.isTypeReferenceNode(typeNode) && ts.isIdentifier(typeNode.typeName)) {
257
+ return typeNode.typeName.text;
258
+ }
259
+ return null;
260
+ }
261
+ /**
262
+ * Checks if a property access `ref.prop` should be rewritten to `ref.prop()`.
263
+ *
264
+ * We rewrite if:
265
+ * - `ref` is tracked in euiRefs
266
+ * - `prop` is in the signal set for that EUI class
267
+ * - The access is NOT already a call expression (not `ref.prop()` or `ref.prop(args)`)
268
+ * - The access is NOT a write target (not `ref.prop = value`)
269
+ * - The access is NOT a template binding argument (those are unaffected)
270
+ */
271
+ function tryRewritePropertyAccess(node, euiRefs, sourceFile, source) {
272
+ const propName = node.name.text;
273
+ // Resolve the reference name — handle `this.ref.prop` and `ref.prop`
274
+ const refName = resolveRefName(node.expression);
275
+ if (!refName)
276
+ return null;
277
+ const signalProps = euiRefs.get(refName);
278
+ if (!signalProps || !signalProps.has(propName))
279
+ return null;
280
+ // Skip if parent is already a call expression on this property: ref.prop(...)
281
+ if (ts.isCallExpression(node.parent) && node.parent.expression === node) {
282
+ return null;
283
+ }
284
+ // Skip if this is the left side of an assignment: ref.prop = value
285
+ if (ts.isBinaryExpression(node.parent) &&
286
+ node.parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
287
+ node.parent.left === node) {
288
+ return null;
289
+ }
290
+ // Skip if this is a compound assignment: ref.prop += value, ref.prop &&= value, etc.
291
+ if (ts.isBinaryExpression(node.parent) && isAssignmentOperator(node.parent.operatorToken.kind) && node.parent.left === node) {
292
+ return null;
293
+ }
294
+ // Skip if this is used with delete: delete ref.prop
295
+ if (ts.isDeleteExpression(node.parent) && node.parent.expression === node) {
296
+ return null;
297
+ }
298
+ // Skip if inside a typeof: typeof ref.prop
299
+ if (ts.isTypeOfExpression(node.parent) && node.parent.expression === node) {
300
+ return null;
301
+ }
302
+ // Skip property access chains that go deeper: ref.prop.something → ref.prop().something
303
+ // This IS correct — we still want to add ()
304
+ // Rewrite: insert () after the property name
305
+ const end = node.name.getEnd();
306
+ return {
307
+ start: end,
308
+ end: end,
309
+ replacement: '()',
310
+ };
311
+ }
312
+ function isAssignmentOperator(kind) {
313
+ return kind >= ts.SyntaxKind.FirstAssignment && kind <= ts.SyntaxKind.LastAssignment;
314
+ }
315
+ /**
316
+ * Resolves a reference name from an expression.
317
+ * Handles: `ref`, `this.ref`, `this._ref`
318
+ */
319
+ function resolveRefName(expr) {
320
+ // Direct identifier: ref.prop
321
+ if (ts.isIdentifier(expr)) {
322
+ return expr.text;
323
+ }
324
+ // this.ref.prop
325
+ if (ts.isPropertyAccessExpression(expr) && expr.expression.kind === ts.SyntaxKind.ThisKeyword) {
326
+ return expr.name.text;
327
+ }
328
+ return null;
329
+ }
330
+ // ---------------------------------------------------------------------------
331
+ // Template ref resolution
332
+ // ---------------------------------------------------------------------------
333
+ /**
334
+ * Builds a map of template reference variable names (#ref) to EUI class names.
335
+ *
336
+ * Parses the component's template (inline or external) and finds elements like:
337
+ * <eui-alert #myAlert> → myAlert → EuiAlertComponent
338
+ * <input euiAutocomplete #ac> → ac → EuiAutocompleteComponent
339
+ *
340
+ * Returns Map<refName, euiClassName>.
341
+ */
342
+ function buildTemplateRefMap(sourceFile, source, filePath, tree) {
343
+ const refMap = new Map();
344
+ // Find @Component decorator
345
+ const componentMeta = findComponentMetadata(sourceFile, source);
346
+ if (!componentMeta)
347
+ return refMap;
348
+ let templateSource = null;
349
+ if (componentMeta.inlineTemplate !== null) {
350
+ templateSource = componentMeta.inlineTemplate;
351
+ }
352
+ else if (componentMeta.templateUrl) {
353
+ // Resolve templateUrl relative to the TS file
354
+ const dir = filePath.substring(0, filePath.lastIndexOf('/'));
355
+ const templatePath = `${dir}/${componentMeta.templateUrl}`;
356
+ const buffer = tree.read(templatePath);
357
+ if (buffer) {
358
+ templateSource = buffer.toString('utf-8');
359
+ }
360
+ }
361
+ if (!templateSource)
362
+ return refMap;
363
+ // Parse the template and collect #refs
364
+ try {
365
+ const parsed = (0, compiler_1.parseTemplate)(templateSource, '', { preserveWhitespaces: true });
366
+ collectTemplateRefs(parsed.nodes, refMap);
367
+ }
368
+ catch {
369
+ // Template parse failure — silently skip (might be malformed or use third-party syntax)
370
+ }
371
+ return refMap;
372
+ }
373
+ /**
374
+ * Extracts @Component metadata: templateUrl or inline template content.
375
+ */
376
+ function findComponentMetadata(sourceFile, source) {
377
+ let result = null;
378
+ const visit = (node) => {
379
+ if (result)
380
+ return;
381
+ if (ts.isDecorator(node) && ts.isCallExpression(node.expression)) {
382
+ const name = getDecoratorName(node.expression);
383
+ if (name !== 'Component') {
384
+ ts.forEachChild(node, visit);
385
+ return;
386
+ }
387
+ const args = node.expression.arguments;
388
+ if (args.length === 0 || !ts.isObjectLiteralExpression(args[0])) {
389
+ ts.forEachChild(node, visit);
390
+ return;
391
+ }
392
+ const meta = {
393
+ templateUrl: null,
394
+ inlineTemplate: null,
395
+ };
396
+ for (const prop of args[0].properties) {
397
+ if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name))
398
+ continue;
399
+ if (prop.name.text === 'templateUrl') {
400
+ const init = unwrapExpression(prop.initializer);
401
+ if (ts.isStringLiteralLike(init)) {
402
+ meta.templateUrl = init.text;
403
+ }
404
+ }
405
+ if (prop.name.text === 'template') {
406
+ const init = unwrapExpression(prop.initializer);
407
+ if (ts.isStringLiteralLike(init)) {
408
+ meta.inlineTemplate = init.text;
409
+ }
410
+ else if (ts.isNoSubstitutionTemplateLiteral(init)) {
411
+ meta.inlineTemplate = init.text;
412
+ }
413
+ }
414
+ }
415
+ result = meta;
416
+ return;
417
+ }
418
+ ts.forEachChild(node, visit);
419
+ };
420
+ ts.forEachChild(sourceFile, visit);
421
+ return result;
422
+ }
423
+ function unwrapExpression(expression) {
424
+ let current = expression;
425
+ while (ts.isParenthesizedExpression(current))
426
+ current = current.expression;
427
+ return current;
428
+ }
429
+ /**
430
+ * Recursively walks template AST nodes, collecting #refName → EUI class name mappings.
431
+ *
432
+ * For each element with a template reference (#ref), we try to resolve its EUI class:
433
+ * 1. Match element tag name against EUI_SELECTOR_TO_CLASS (e.g. 'eui-alert' → EuiAlertComponent)
434
+ * 2. Match element attributes against attribute selectors (e.g. [euiAutocomplete] → EuiAutocompleteComponent)
435
+ */
436
+ function collectTemplateRefs(nodes, refMap) {
437
+ for (const node of nodes) {
438
+ if (node instanceof compiler_1.TmplAstElement) {
439
+ if (node.references && node.references.length > 0) {
440
+ const euiClass = resolveElementToEuiClass(node);
441
+ if (euiClass) {
442
+ for (const ref of node.references) {
443
+ refMap.set(ref.name, euiClass);
444
+ }
445
+ }
446
+ }
447
+ collectTemplateRefs(node.children, refMap);
448
+ }
449
+ }
450
+ }
451
+ /**
452
+ * Given a template element, resolves it to an EUI class name by checking:
453
+ * 1. Tag name: <eui-alert> → look up 'eui-alert' in EUI_SELECTOR_TO_CLASS
454
+ * 2. Attribute selectors: <input euiAutocomplete> → look up 'input[euiAutocomplete]' or '[euiAutocomplete]'
455
+ */
456
+ function resolveElementToEuiClass(element) {
457
+ const tag = element.name;
458
+ // Direct tag match: eui-alert, eui-dialog, etc.
459
+ if (signal_map_1.EUI_SELECTOR_TO_CLASS[tag]) {
460
+ return signal_map_1.EUI_SELECTOR_TO_CLASS[tag];
461
+ }
462
+ // Attribute selector match: check all attributes against known patterns
463
+ const allAttrNames = [
464
+ ...element.attributes.map((a) => a.name),
465
+ ...element.inputs.map((i) => i.name),
466
+ ];
467
+ for (const attrName of allAttrNames) {
468
+ // Try tag[attr] pattern first (e.g. 'button[euiButton]', 'input[euiAutocomplete]')
469
+ const tagAttrSelector = `${tag}[${attrName}]`;
470
+ if (signal_map_1.EUI_SELECTOR_TO_CLASS[tagAttrSelector]) {
471
+ return signal_map_1.EUI_SELECTOR_TO_CLASS[tagAttrSelector];
472
+ }
473
+ // Try [attr] pattern (e.g. '[euiTooltip]', '[euiLoading]')
474
+ const attrSelector = `[${attrName}]`;
475
+ if (signal_map_1.EUI_SELECTOR_TO_CLASS[attrSelector]) {
476
+ return signal_map_1.EUI_SELECTOR_TO_CLASS[attrSelector];
477
+ }
478
+ }
479
+ return null;
480
+ }
481
+ // ---------------------------------------------------------------------------
482
+ // Edit helpers
483
+ // ---------------------------------------------------------------------------
484
+ function applyEdits(source, edits) {
485
+ const unique = deduplicateEdits(edits);
486
+ let result = source;
487
+ for (const edit of unique.sort((a, b) => b.start - a.start)) {
488
+ result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);
489
+ }
490
+ return result;
491
+ }
492
+ function deduplicateEdits(edits) {
493
+ const seen = new Map();
494
+ for (const edit of edits) {
495
+ const key = `${edit.start}:${edit.end}`;
496
+ seen.set(key, edit);
497
+ }
498
+ return Array.from(seen.values());
499
+ }
500
+ function visitDir(dir, callback) {
501
+ for (const file of dir.subfiles) {
502
+ if (file.endsWith('.d.ts'))
503
+ continue;
504
+ if (!file.endsWith('.ts'))
505
+ continue;
506
+ callback(`${dir.path}/${file}`);
507
+ }
508
+ for (const sub of dir.subdirs) {
509
+ if (sub === 'node_modules' || sub === 'dist')
510
+ continue;
511
+ visitDir(dir.dir(sub), callback);
512
+ }
513
+ }
514
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/migrate-to-signals/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Auto-generated map of EUI component classes whose @Input/@ViewChild/@ContentChild
3
+ * properties became signal-based in next/22.x.
4
+ *
5
+ * Key: class name (e.g. 'EuiButtonComponent')
6
+ * Value: set of property names that are now signals
7
+ *
8
+ * Generated by comparing develop <-> next/22.x branches.
9
+ * Test/mock/stub components are excluded.
10
+ */
11
+ export declare const EUI_SIGNAL_MAP: Record<string, ReadonlySet<string>>;
12
+ /**
13
+ * Map of component/directive selectors to their class names.
14
+ * Used to resolve @ViewChild('selector') to the correct class in EUI_SIGNAL_MAP.
15
+ * Ambiguous selectors (shared by multiple classes) are excluded.
16
+ */
17
+ export declare const EUI_SELECTOR_TO_CLASS: Record<string, string>;