@eui/core 22.0.0-alpha.29 → 22.0.0-alpha.30

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.
@@ -2348,12 +2348,12 @@
2348
2348
  },
2349
2349
  {
2350
2350
  "name": "Schema",
2351
- "id": "interface-Schema-e96d29c1785a16147de773cebe7ab5d4ed82aa23c6b1f7737113252a14d156e236f46f7a16340432dec900b664c8005be0aef5d0a628c2f5b8dd2ec7e41edf56-4",
2352
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
2351
+ "id": "interface-Schema-585b211d989563bbec5bd67bcdb58d5f264396adbe0ed2e51d0b4a0ecaf8b3ec36d821647c170d616bb409fc603c5a4c0e699eb7511e02c6add8d8670fc9cb9f-4",
2352
+ "file": "packages/core/schematics/migrate-eui-alert/index.ts",
2353
2353
  "deprecated": false,
2354
2354
  "deprecationMessage": "",
2355
2355
  "type": "interface",
2356
- "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'euiAccent';\nconst NEW_NAME = 'euiPrimary';\nconst EUI_DIRECTIVES = ['euiButton', 'euiList', 'euiListItem'];\n\nexport function migrateEuiAccent(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(OLD_NAME)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would replace '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on EUI components in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction isEuiElement(element: TmplAstElement): boolean {\n if (element.name.startsWith('eui-')) return true;\n return element.attributes.some((a) => EUI_DIRECTIVES.includes(a.name)) ||\n element.inputs.some((i) => EUI_DIRECTIVES.includes(i.name));\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(OLD_NAME)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: NEW_NAME });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isEuiElement(node)) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2356
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['alertIconType', 'alertIconFillColor', 'isMuted', 'isBordered']);\n\nexport function migrateEuiAlert(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-alert') && !original.includes('euiAlert')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove deprecated inputs in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (![...REMOVED_INPUTS].some((input) => original.includes(input))) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && REMOVED_INPUTS.has(node.name.text)) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(\n `${path}:${line + 1} - Manual action needed: \"${node.name.text}\" is no longer a valid input on eui-alert. Remove this assignment.`,\n );\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-alert inputs from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n // Apply removals in reverse order\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, start) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n // Simple approach: find template strings containing eui-alert and process them\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-alert') && !templateContent.includes('euiAlert')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === 'eui-alert' || hasAttribute(node, 'euiAlert')) {\n collectRemovals(node, removals);\n }\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction hasAttribute(element: TmplAstElement, name: string): boolean {\n return element.attributes.some((a) => a.name === name);\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2357
2357
  "displayName": "Schema",
2358
2358
  "properties": [
2359
2359
  {
@@ -2395,12 +2395,12 @@
2395
2395
  },
2396
2396
  {
2397
2397
  "name": "Schema",
2398
- "id": "interface-Schema-585b211d989563bbec5bd67bcdb58d5f264396adbe0ed2e51d0b4a0ecaf8b3ec36d821647c170d616bb409fc603c5a4c0e699eb7511e02c6add8d8670fc9cb9f-5",
2399
- "file": "packages/core/schematics/migrate-eui-alert/index.ts",
2398
+ "id": "interface-Schema-c7e2cc0add09c97d83ec2675d59c86951681f8e2d49f133fb2f216ca98d0da1fdf892d45af31f19ecbbfd0d32f4ad70dd99e862f75725d3812f66a73ec34362c-5",
2399
+ "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
2400
2400
  "deprecated": false,
2401
2401
  "deprecationMessage": "",
2402
2402
  "type": "interface",
2403
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['alertIconType', 'alertIconFillColor', 'isMuted', 'isBordered']);\n\nexport function migrateEuiAlert(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-alert') && !original.includes('euiAlert')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove deprecated inputs in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (![...REMOVED_INPUTS].some((input) => original.includes(input))) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && REMOVED_INPUTS.has(node.name.text)) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(\n `${path}:${line + 1} - Manual action needed: \"${node.name.text}\" is no longer a valid input on eui-alert. Remove this assignment.`,\n );\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-alert inputs from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n // Apply removals in reverse order\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, start) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n // Simple approach: find template strings containing eui-alert and process them\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-alert') && !templateContent.includes('euiAlert')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === 'eui-alert' || hasAttribute(node, 'euiAlert')) {\n collectRemovals(node, removals);\n }\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction hasAttribute(element: TmplAstElement, name: string): boolean {\n return element.attributes.some((a) => a.name === name);\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2403
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['isFlat']);\n\nexport function migrateEuiAvatar(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-avatar') && !original.includes('euiAvatar')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove 'isFlat' input in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (!original.includes('isFlat')) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'isFlat') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"isFlat\" is no longer a valid input on eui-avatar. Remove this assignment.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-avatar 'isFlat' input from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-avatar') && !templateContent.includes('euiAvatar')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction isAvatarElement(element: TmplAstElement): boolean {\n if (element.name === 'eui-avatar') return true;\n return element.attributes.some((a) => a.name === 'euiAvatar');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isAvatarElement(node)) collectRemovals(node, removals);\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2404
2404
  "displayName": "Schema",
2405
2405
  "properties": [
2406
2406
  {
@@ -2442,12 +2442,12 @@
2442
2442
  },
2443
2443
  {
2444
2444
  "name": "Schema",
2445
- "id": "interface-Schema-c7e2cc0add09c97d83ec2675d59c86951681f8e2d49f133fb2f216ca98d0da1fdf892d45af31f19ecbbfd0d32f4ad70dd99e862f75725d3812f66a73ec34362c-6",
2446
- "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
2445
+ "id": "interface-Schema-c0c08f5e83da9afa13ce8375f982fb280b9bde854e00c914f41b04d44deecd531496c2cee264b50314e92a6260c26cebe35741a2cf5ec068d8b6da5c5267539e-6",
2446
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
2447
2447
  "deprecated": false,
2448
2448
  "deprecationMessage": "",
2449
2449
  "type": "interface",
2450
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['isFlat']);\n\nexport function migrateEuiAvatar(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-avatar') && !original.includes('euiAvatar')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove 'isFlat' input in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (!original.includes('isFlat')) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'isFlat') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"isFlat\" is no longer a valid input on eui-avatar. Remove this assignment.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-avatar 'isFlat' input from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-avatar') && !templateContent.includes('euiAvatar')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction isAvatarElement(element: TmplAstElement): boolean {\n if (element.name === 'eui-avatar') return true;\n return element.attributes.some((a) => a.name === 'euiAvatar');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isAvatarElement(node)) collectRemovals(node, removals);\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2450
+ "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'euiButtonCall';\nconst NEW_NAME = 'euiCTAButton';\n\nexport function migrateEuiButton(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(OLD_NAME)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (!original.includes(OLD_NAME)) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\". Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on elements with euiButton in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(OLD_NAME)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction hasEuiButtonAttribute(element: TmplAstElement): boolean {\n return element.attributes.some((a) => a.name === 'euiButton') ||\n element.inputs.some((i) => i.name === 'euiButton');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (hasEuiButtonAttribute(node)) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2451
2451
  "displayName": "Schema",
2452
2452
  "properties": [
2453
2453
  {
@@ -2489,12 +2489,12 @@
2489
2489
  },
2490
2490
  {
2491
2491
  "name": "Schema",
2492
- "id": "interface-Schema-c0c08f5e83da9afa13ce8375f982fb280b9bde854e00c914f41b04d44deecd531496c2cee264b50314e92a6260c26cebe35741a2cf5ec068d8b6da5c5267539e-7",
2493
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
2492
+ "id": "interface-Schema-e96d29c1785a16147de773cebe7ab5d4ed82aa23c6b1f7737113252a14d156e236f46f7a16340432dec900b664c8005be0aef5d0a628c2f5b8dd2ec7e41edf56-7",
2493
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
2494
2494
  "deprecated": false,
2495
2495
  "deprecationMessage": "",
2496
2496
  "type": "interface",
2497
- "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'euiButtonCall';\nconst NEW_NAME = 'euiCTAButton';\n\nexport function migrateEuiButton(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(OLD_NAME)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if (!original.includes(OLD_NAME)) return;\n\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\". Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on elements with euiButton in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(OLD_NAME)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction hasEuiButtonAttribute(element: TmplAstElement): boolean {\n return element.attributes.some((a) => a.name === 'euiButton') ||\n element.inputs.some((i) => i.name === 'euiButton');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (hasEuiButtonAttribute(node)) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2497
+ "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'euiAccent';\nconst NEW_NAME = 'euiPrimary';\nconst EUI_DIRECTIVES = ['euiButton', 'euiList', 'euiListItem'];\n\nexport function migrateEuiAccent(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(OLD_NAME)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would replace '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on EUI components in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction isEuiElement(element: TmplAstElement): boolean {\n if (element.name.startsWith('eui-')) return true;\n return element.attributes.some((a) => EUI_DIRECTIVES.includes(a.name)) ||\n element.inputs.some((i) => EUI_DIRECTIVES.includes(i.name));\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(OLD_NAME)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: NEW_NAME });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isEuiElement(node)) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2498
2498
  "displayName": "Schema",
2499
2499
  "properties": [
2500
2500
  {
@@ -2536,12 +2536,12 @@
2536
2536
  },
2537
2537
  {
2538
2538
  "name": "Schema",
2539
- "id": "interface-Schema-311bef7d5e4b40b356b0fdb5e35dd89e48a5c5beec29eeb865c22c2ca1c4c4fb1fd0bb4391ed0b33825a6d1d744bc3a2e9822b347fbc686a537e15b170c279dd-8",
2540
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
2539
+ "id": "interface-Schema-39d3d52e788050bebc4e0b99ed0756f7e9727556cb090ae8796bd4261a56463fe1f479c322b23028cd4134d71e4d1dc44cd248ac62a9a148b5fc46a665466f7c-8",
2540
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
2541
2541
  "deprecated": false,
2542
2542
  "deprecationMessage": "",
2543
2543
  "type": "interface",
2544
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\nconst CHIP_LIST_TAG = 'eui-chip-list';\nconst CHIP_LIST_ATTR = 'euiChipList';\nconst CHIP_TAG = 'eui-chip';\nconst CHIP_ATTR = 'euiChip';\n\nconst PROPAGATED_INPUTS = new Set([\n 'euiPrimary', 'euiSecondary', 'euiSuccess', 'euiInfo', 'euiWarning',\n 'euiDanger', 'euiAccent', 'euiVariant', 'euiSizeS', 'euiSizeVariant',\n 'euiOutline', 'euiDisabled',\n]);\n\nconst WARN_PROPERTIES = new Set([...PROPAGATED_INPUTS, 'chipRemove', 'isChipsRemovable', 'chipsLabelTruncateCount',\n 'maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel',\n 'isChipsSorted', 'chipsSortOrder']);\n\nconst REMOVED_INPUTS = new Set(['maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel', 'isChipsSorted', 'chipsSortOrder']);\n\nconst TRUNCATE_PIPE_IMPORT = 'EuiTruncatePipe';\nconst TRUNCATE_PIPE_PATH = '@eui/components/pipes';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\ninterface Edit {\n start: number;\n end: number;\n replacement: string;\n}\n\nexport function migrateEuiChipList(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n const filesNeedingTruncateImport = new Set<string>();\n\n visitDir(tree.getDir(scanPath || '/'), (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(CHIP_LIST_TAG) && !original.includes(CHIP_LIST_ATTR)) return;\n\n let result: string;\n let addedTruncate = false;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n if (result !== original && result.includes('euiTruncate') && !original.includes('euiTruncate')) {\n // Find the associated .ts file\n const tsPath = path.replace(/\\.html$/, '.ts');\n if (tree.exists(tsPath)) {\n filesNeedingTruncateImport.add(tsPath);\n } else {\n // Try component naming convention\n const componentTsPath = path.replace(/\\.html$/, '.component.ts');\n if (tree.exists(componentTsPath)) {\n filesNeedingTruncateImport.add(componentTsPath);\n }\n }\n }\n } else {\n result = migrateInlineTemplates(original);\n if (result !== original && result.includes('euiTruncate') && !original.includes('euiTruncate')) {\n addedTruncate = true;\n }\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would move variant/size/outline inputs to child eui-chip in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n if (addedTruncate) {\n filesNeedingTruncateImport.add(path);\n }\n\n // Warn about TS usages of removed properties\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if ([...WARN_PROPERTIES].some((p) => original.includes(p))) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && WARN_PROPERTIES.has(node.name.text)) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(\n `${path}:${line + 1} - \"${node.name.text}\" has been removed from eui-chip-list. Move it to individual eui-chip elements.`,\n );\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n }\n });\n\n // Add EuiTruncatePipe import to component files that need it\n for (const tsPath of filesNeedingTruncateImport) {\n const buffer = tree.read(tsPath);\n if (!buffer) continue;\n const source = buffer.toString('utf-8');\n if (source.includes(TRUNCATE_PIPE_IMPORT)) continue;\n const result = addTruncatePipeImport(source, tsPath);\n if (result !== source) {\n if (!options.dryRun) {\n tree.overwrite(tsPath, result);\n }\n }\n }\n\n context.logger.info(`Migrated eui-chip-list inputs/outputs to child eui-chip in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction addTruncatePipeImport(source: string, filePath: string): string {\n const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true);\n const edits: Edit[] = [];\n\n // 1. Add ES import statement for EuiTruncatePipe\n let hasEsImport = false;\n let lastImportEnd = 0;\n\n for (const stmt of sourceFile.statements) {\n if (ts.isImportDeclaration(stmt)) {\n lastImportEnd = stmt.getEnd();\n const moduleSpec = (stmt.moduleSpecifier as ts.StringLiteral).text;\n if (moduleSpec === TRUNCATE_PIPE_PATH) {\n const namedBindings = stmt.importClause?.namedBindings;\n if (namedBindings && ts.isNamedImports(namedBindings)) {\n if (namedBindings.elements.some((el) => el.name.text === TRUNCATE_PIPE_IMPORT)) {\n hasEsImport = true;\n } else {\n // Add to existing import from same path\n const lastEl = namedBindings.elements[namedBindings.elements.length - 1];\n edits.push({ start: lastEl.getEnd(), end: lastEl.getEnd(), replacement: `, ${TRUNCATE_PIPE_IMPORT}` });\n hasEsImport = true;\n }\n }\n }\n }\n }\n\n if (!hasEsImport) {\n const importStatement = `\\nimport { ${TRUNCATE_PIPE_IMPORT} } from '${TRUNCATE_PIPE_PATH}';`;\n edits.push({ start: lastImportEnd, end: lastImportEnd, replacement: importStatement });\n }\n\n // 2. Add EuiTruncatePipe to @Component imports array\n const visit = (node: ts.Node): void => {\n if (ts.isClassDeclaration(node)) {\n const decs = ts.getDecorators(node);\n if (!decs) return;\n for (const dec of decs) {\n if (!ts.isCallExpression(dec.expression) || !ts.isIdentifier(dec.expression.expression) || dec.expression.expression.text !== 'Component') continue;\n const metadata = dec.expression.arguments[0];\n if (!ts.isObjectLiteralExpression(metadata)) continue;\n for (const prop of metadata.properties) {\n if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name) || prop.name.text !== 'imports') continue;\n if (!ts.isArrayLiteralExpression(prop.initializer)) continue;\n const arr = prop.initializer;\n const arrText = source.slice(arr.getStart(sourceFile), arr.getEnd());\n if (arrText.includes(TRUNCATE_PIPE_IMPORT)) continue;\n if (arr.elements.length > 0) {\n const lastElement = arr.elements[arr.elements.length - 1];\n edits.push({ start: lastElement.getEnd(), end: lastElement.getEnd(), replacement: `,\\n ${TRUNCATE_PIPE_IMPORT}` });\n } else {\n edits.push({ start: arr.getStart(sourceFile) + 1, end: arr.getEnd() - 1, replacement: TRUNCATE_PIPE_IMPORT });\n }\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: Edit[] = [];\n\n visitNodes(parsed.nodes, source, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: Edit[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(CHIP_LIST_TAG) && !rawTemplate.includes(CHIP_LIST_ATTR)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, replacement: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, changes);\n}\n\nfunction visitNodes(nodes: TmplAstNode[], source: string, edits: Edit[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipListElement(node)) {\n migrateChipListElement(node, source, edits);\n }\n visitNodes(node.children, source, edits);\n }\n }\n}\n\nfunction isChipListElement(element: TmplAstElement): boolean {\n if (element.name === CHIP_LIST_TAG) return true;\n return element.attributes.some((a) => a.name === CHIP_LIST_ATTR);\n}\n\nfunction isChipElement(element: TmplAstElement): boolean {\n if (element.name === CHIP_TAG) return true;\n return element.attributes.some((a) => a.name === CHIP_ATTR);\n}\n\nfunction findChildChips(nodes: TmplAstNode[]): TmplAstElement[] {\n const chips: TmplAstElement[] = [];\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipElement(node)) {\n chips.push(node);\n } else {\n chips.push(...findChildChips(node.children));\n }\n }\n }\n return chips;\n}\n\nfunction migrateChipListElement(element: TmplAstElement, source: string, edits: Edit[]): void {\n const childChips = findChildChips(element.children);\n const insertions: string[] = [];\n let truncateValue: string | null = null;\n\n // Collect and remove propagated static attributes\n for (const attr of element.attributes) {\n if (PROPAGATED_INPUTS.has(attr.name)) {\n edits.push(removalEdit(attr, source));\n insertions.push(attr.value ? `${attr.name}=\"${attr.value}\"` : attr.name);\n }\n if (attr.name === 'isChipsRemovable') {\n edits.push(removalEdit(attr, source));\n insertions.push('isChipRemovable');\n }\n if (attr.name === 'chipsLabelTruncateCount') {\n edits.push(removalEdit(attr, source));\n truncateValue = attr.value || null;\n }\n if (REMOVED_INPUTS.has(attr.name)) {\n edits.push(removalEdit(attr, source));\n }\n }\n\n // Collect and remove propagated bound inputs\n for (const input of element.inputs) {\n if (PROPAGATED_INPUTS.has(input.name)) {\n edits.push(removalEdit(input, source));\n const raw = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n insertions.push(raw);\n }\n if (input.name === 'isChipsRemovable') {\n edits.push(removalEdit(input, source));\n const valueText = extractBindingValue(input, source);\n insertions.push(`[isChipRemovable]=\"${valueText}\"`);\n }\n if (input.name === 'chipsLabelTruncateCount') {\n edits.push(removalEdit(input, source));\n truncateValue = extractBindingValue(input, source);\n }\n if (REMOVED_INPUTS.has(input.name)) {\n edits.push(removalEdit(input, source));\n }\n }\n\n // Collect and remove (chipRemove) output\n let chipRemoveHandler: string | null = null;\n for (const output of element.outputs) {\n if (output.name === 'chipRemove') {\n edits.push(removalEdit(output, source));\n chipRemoveHandler = extractHandlerExpression(output, source);\n }\n }\n\n if (chipRemoveHandler) {\n insertions.push(`(remove)=\"${chipRemoveHandler}\"`);\n }\n\n // Add collected attributes to each child eui-chip\n if (insertions.length > 0) {\n for (const chip of childChips) {\n const existingNames = getExistingAttrNames(chip);\n const toInsert = insertions.filter((ins) => {\n const name = extractAttrName(ins);\n return !existingNames.has(name);\n });\n if (toInsert.length > 0) {\n const insertPos = chip.startSourceSpan.end.offset - 1;\n edits.push({ start: insertPos, end: insertPos, replacement: ' ' + toInsert.join(' ') });\n }\n }\n }\n\n // Add euiTruncate pipe to chip label content\n if (truncateValue) {\n for (const chip of childChips) {\n const labelEdit = buildTruncatePipeEdit(chip, source, truncateValue);\n if (labelEdit) edits.push(labelEdit);\n }\n }\n}\n\nfunction buildTruncatePipeEdit(chip: TmplAstElement, source: string, truncateValue: string): Edit | null {\n // Find <span euiLabel>...</span> inside the chip\n const labelEl = findLabelElement(chip.children);\n if (labelEl && labelEl.endSourceSpan) {\n const contentStart = labelEl.startSourceSpan.end.offset;\n const contentEnd = labelEl.endSourceSpan.start.offset;\n const content = source.slice(contentStart, contentEnd);\n if (content && !content.includes('euiTruncate')) {\n const trimmed = content.trim();\n const interpMatch = trimmed.match(/^\\{\\{\\s*(.+?)\\s*\\}\\}$/);\n if (interpMatch) {\n return { start: contentStart, end: contentEnd, replacement: `{{ ${interpMatch[1]} | euiTruncate: ${truncateValue} }}` };\n }\n return { start: contentStart, end: contentEnd, replacement: `{{ '${trimmed}' | euiTruncate: ${truncateValue} }}` };\n }\n }\n\n // Check direct text content inside chip (no label element)\n if (chip.endSourceSpan) {\n const chipContentStart = chip.startSourceSpan.end.offset;\n const chipContentEnd = chip.endSourceSpan.start.offset;\n const chipContent = source.slice(chipContentStart, chipContentEnd);\n const trimmed = chipContent.trim();\n const interpMatch = trimmed.match(/^\\{\\{\\s*(.+?)\\s*\\}\\}$/);\n if (interpMatch && !chipContent.includes('euiTruncate')) {\n return { start: chipContentStart, end: chipContentEnd, replacement: `{{ ${interpMatch[1]} | euiTruncate: ${truncateValue} }}` };\n }\n }\n return null;\n}\n\nfunction findLabelElement(nodes: TmplAstNode[]): TmplAstElement | null {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.attributes.some((a) => a.name === 'euiLabel')) return node;\n const nested = findLabelElement(node.children);\n if (nested) return nested;\n }\n }\n return null;\n}\n\nfunction getExistingAttrNames(element: TmplAstElement): Set<string> {\n const names = new Set<string>();\n for (const attr of element.attributes) names.add(attr.name);\n for (const input of element.inputs) names.add(input.name);\n for (const output of element.outputs) names.add(output.name);\n return names;\n}\n\nfunction extractAttrName(insertion: string): string {\n const outputMatch = insertion.match(/^\\(([^)]+)\\)/);\n if (outputMatch) return outputMatch[1];\n const inputMatch = insertion.match(/^\\[([^\\]]+)\\]/);\n if (inputMatch) return inputMatch[1];\n return insertion.split('=')[0];\n}\n\nfunction removalEdit(node: TmplAstTextAttribute | TmplAstBoundAttribute | TmplAstBoundEvent, source: string): Edit {\n let start = node.sourceSpan.start.offset;\n while (start > 0 && (source[start - 1] === ' ' || source[start - 1] === '\\t')) {\n start--;\n }\n return { start, end: node.sourceSpan.end.offset, replacement: '' };\n}\n\nfunction extractBindingValue(input: TmplAstBoundAttribute, source: string): string {\n const raw = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n const match = raw.match(/=[\"']([^\"']*)[\"']/);\n return match ? match[1] : 'true';\n}\n\nfunction extractHandlerExpression(output: TmplAstBoundEvent, source: string): string {\n const raw = source.slice(output.sourceSpan.start.offset, output.sourceSpan.end.offset);\n const match = raw.match(/=[\"']([^\"']*)[\"']/);\n return match ? match[1] : '';\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction applyEdits(source: string, edits: Edit[]): string {\n const unique = deduplicateEdits(edits);\n let result = source;\n for (const edit of unique.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n\nfunction deduplicateEdits(edits: Edit[]): Edit[] {\n const seen = new Map<string, Edit>();\n for (const edit of edits) {\n seen.set(`${edit.start}:${edit.end}`, edit);\n }\n return Array.from(seen.values());\n}\n",
2544
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['isSquared']);\n\nexport function migrateEuiChip(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-chip') && !original.includes('euiChip')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove 'isSquared' input in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS usages inline\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes('isSquared')) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'isSquared') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"isSquared\" is no longer a valid input on eui-chip. Remove this assignment.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-chip 'isSquared' input from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-chip') && !templateContent.includes('euiChip')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction isChipElement(element: TmplAstElement): boolean {\n if (element.name === 'eui-chip') return true;\n return element.attributes.some((a) => a.name === 'euiChip');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipElement(node)) collectRemovals(node, removals);\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2545
2545
  "displayName": "Schema",
2546
2546
  "properties": [
2547
2547
  {
@@ -2553,7 +2553,7 @@
2553
2553
  "indexKey": "",
2554
2554
  "optional": true,
2555
2555
  "description": "",
2556
- "line": 28,
2556
+ "line": 8,
2557
2557
  "rawdescription": "\n"
2558
2558
  },
2559
2559
  {
@@ -2565,7 +2565,7 @@
2565
2565
  "indexKey": "",
2566
2566
  "optional": true,
2567
2567
  "description": "",
2568
- "line": 27,
2568
+ "line": 7,
2569
2569
  "rawdescription": "\n"
2570
2570
  }
2571
2571
  ],
@@ -2583,12 +2583,12 @@
2583
2583
  },
2584
2584
  {
2585
2585
  "name": "Schema",
2586
- "id": "interface-Schema-869dfc324e9111966817cbebb3553eabfe200acfe33bb77efa71a6c46e1cba0ff5852de7b9ade3060f87264035b99591361331a9e0622daaac22b8d59146c761-9",
2587
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
2586
+ "id": "interface-Schema-311bef7d5e4b40b356b0fdb5e35dd89e48a5c5beec29eeb865c22c2ca1c4c4fb1fd0bb4391ed0b33825a6d1d744bc3a2e9822b347fbc686a537e15b170c279dd-9",
2587
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
2588
2588
  "deprecated": false,
2589
2589
  "deprecationMessage": "",
2590
2590
  "type": "interface",
2591
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-discussion-thread';\n\nexport function migrateEuiDiscussionThread(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove [trackBy] binding in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS usages inline\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes('trackByFn')) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'trackByFn') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"trackByFn\" has been removed from ${COMPONENT_TAG}. Remove this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed trackByFn-based [trackBy] bindings from ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, source, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes(COMPONENT_TAG)) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction visitNodes(nodes: TmplAstNode[], source: string, removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRemovals(node, source, removals);\n visitNodes(node.children, source, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, source: string, removals: { start: number; end: number }[]): void {\n for (const input of element.inputs) {\n if (input.name === 'trackBy') {\n const valueSource = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n if (valueSource.includes('trackByFn')) {\n removals.push({ start: input.sourceSpan.start.offset, end: input.sourceSpan.end.offset });\n }\n }\n }\n}\n",
2591
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\nconst CHIP_LIST_TAG = 'eui-chip-list';\nconst CHIP_LIST_ATTR = 'euiChipList';\nconst CHIP_TAG = 'eui-chip';\nconst CHIP_ATTR = 'euiChip';\n\nconst PROPAGATED_INPUTS = new Set([\n 'euiPrimary', 'euiSecondary', 'euiSuccess', 'euiInfo', 'euiWarning',\n 'euiDanger', 'euiAccent', 'euiVariant', 'euiSizeS', 'euiSizeVariant',\n 'euiOutline', 'euiDisabled',\n]);\n\nconst WARN_PROPERTIES = new Set([...PROPAGATED_INPUTS, 'chipRemove', 'isChipsRemovable', 'chipsLabelTruncateCount',\n 'maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel',\n 'isChipsSorted', 'chipsSortOrder']);\n\nconst REMOVED_INPUTS = new Set(['maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel', 'isChipsSorted', 'chipsSortOrder']);\n\nconst TRUNCATE_PIPE_IMPORT = 'EuiTruncatePipe';\nconst TRUNCATE_PIPE_PATH = '@eui/components/pipes';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\ninterface Edit {\n start: number;\n end: number;\n replacement: string;\n}\n\nexport function migrateEuiChipList(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n const filesNeedingTruncateImport = new Set<string>();\n\n visitDir(tree.getDir(scanPath || '/'), (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(CHIP_LIST_TAG) && !original.includes(CHIP_LIST_ATTR)) return;\n\n let result: string;\n let addedTruncate = false;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n if (result !== original && result.includes('euiTruncate') && !original.includes('euiTruncate')) {\n // Find the associated .ts file\n const tsPath = path.replace(/\\.html$/, '.ts');\n if (tree.exists(tsPath)) {\n filesNeedingTruncateImport.add(tsPath);\n } else {\n // Try component naming convention\n const componentTsPath = path.replace(/\\.html$/, '.component.ts');\n if (tree.exists(componentTsPath)) {\n filesNeedingTruncateImport.add(componentTsPath);\n }\n }\n }\n } else {\n result = migrateInlineTemplates(original);\n if (result !== original && result.includes('euiTruncate') && !original.includes('euiTruncate')) {\n addedTruncate = true;\n }\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would move variant/size/outline inputs to child eui-chip in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n if (addedTruncate) {\n filesNeedingTruncateImport.add(path);\n }\n\n // Warn about TS usages of removed properties\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts')) {\n if ([...WARN_PROPERTIES].some((p) => original.includes(p))) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && WARN_PROPERTIES.has(node.name.text)) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(\n `${path}:${line + 1} - \"${node.name.text}\" has been removed from eui-chip-list. Move it to individual eui-chip elements.`,\n );\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n }\n });\n\n // Add EuiTruncatePipe import to component files that need it\n for (const tsPath of filesNeedingTruncateImport) {\n const buffer = tree.read(tsPath);\n if (!buffer) continue;\n const source = buffer.toString('utf-8');\n if (source.includes(TRUNCATE_PIPE_IMPORT)) continue;\n const result = addTruncatePipeImport(source, tsPath);\n if (result !== source) {\n if (!options.dryRun) {\n tree.overwrite(tsPath, result);\n }\n }\n }\n\n context.logger.info(`Migrated eui-chip-list inputs/outputs to child eui-chip in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction addTruncatePipeImport(source: string, filePath: string): string {\n const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true);\n const edits: Edit[] = [];\n\n // 1. Add ES import statement for EuiTruncatePipe\n let hasEsImport = false;\n let lastImportEnd = 0;\n\n for (const stmt of sourceFile.statements) {\n if (ts.isImportDeclaration(stmt)) {\n lastImportEnd = stmt.getEnd();\n const moduleSpec = (stmt.moduleSpecifier as ts.StringLiteral).text;\n if (moduleSpec === TRUNCATE_PIPE_PATH) {\n const namedBindings = stmt.importClause?.namedBindings;\n if (namedBindings && ts.isNamedImports(namedBindings)) {\n if (namedBindings.elements.some((el) => el.name.text === TRUNCATE_PIPE_IMPORT)) {\n hasEsImport = true;\n } else {\n // Add to existing import from same path\n const lastEl = namedBindings.elements[namedBindings.elements.length - 1];\n edits.push({ start: lastEl.getEnd(), end: lastEl.getEnd(), replacement: `, ${TRUNCATE_PIPE_IMPORT}` });\n hasEsImport = true;\n }\n }\n }\n }\n }\n\n if (!hasEsImport) {\n const importStatement = `\\nimport { ${TRUNCATE_PIPE_IMPORT} } from '${TRUNCATE_PIPE_PATH}';`;\n edits.push({ start: lastImportEnd, end: lastImportEnd, replacement: importStatement });\n }\n\n // 2. Add EuiTruncatePipe to @Component imports array\n const visit = (node: ts.Node): void => {\n if (ts.isClassDeclaration(node)) {\n const decs = ts.getDecorators(node);\n if (!decs) return;\n for (const dec of decs) {\n if (!ts.isCallExpression(dec.expression) || !ts.isIdentifier(dec.expression.expression) || dec.expression.expression.text !== 'Component') continue;\n const metadata = dec.expression.arguments[0];\n if (!ts.isObjectLiteralExpression(metadata)) continue;\n for (const prop of metadata.properties) {\n if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name) || prop.name.text !== 'imports') continue;\n if (!ts.isArrayLiteralExpression(prop.initializer)) continue;\n const arr = prop.initializer;\n const arrText = source.slice(arr.getStart(sourceFile), arr.getEnd());\n if (arrText.includes(TRUNCATE_PIPE_IMPORT)) continue;\n if (arr.elements.length > 0) {\n const lastElement = arr.elements[arr.elements.length - 1];\n edits.push({ start: lastElement.getEnd(), end: lastElement.getEnd(), replacement: `,\\n ${TRUNCATE_PIPE_IMPORT}` });\n } else {\n edits.push({ start: arr.getStart(sourceFile) + 1, end: arr.getEnd() - 1, replacement: TRUNCATE_PIPE_IMPORT });\n }\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: Edit[] = [];\n\n visitNodes(parsed.nodes, source, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: Edit[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(CHIP_LIST_TAG) && !rawTemplate.includes(CHIP_LIST_ATTR)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, replacement: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, changes);\n}\n\nfunction visitNodes(nodes: TmplAstNode[], source: string, edits: Edit[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipListElement(node)) {\n migrateChipListElement(node, source, edits);\n }\n visitNodes(node.children, source, edits);\n }\n }\n}\n\nfunction isChipListElement(element: TmplAstElement): boolean {\n if (element.name === CHIP_LIST_TAG) return true;\n return element.attributes.some((a) => a.name === CHIP_LIST_ATTR);\n}\n\nfunction isChipElement(element: TmplAstElement): boolean {\n if (element.name === CHIP_TAG) return true;\n return element.attributes.some((a) => a.name === CHIP_ATTR);\n}\n\nfunction findChildChips(nodes: TmplAstNode[]): TmplAstElement[] {\n const chips: TmplAstElement[] = [];\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipElement(node)) {\n chips.push(node);\n } else {\n chips.push(...findChildChips(node.children));\n }\n }\n }\n return chips;\n}\n\nfunction migrateChipListElement(element: TmplAstElement, source: string, edits: Edit[]): void {\n const childChips = findChildChips(element.children);\n const insertions: string[] = [];\n let truncateValue: string | null = null;\n\n // Collect and remove propagated static attributes\n for (const attr of element.attributes) {\n if (PROPAGATED_INPUTS.has(attr.name)) {\n edits.push(removalEdit(attr, source));\n insertions.push(attr.value ? `${attr.name}=\"${attr.value}\"` : attr.name);\n }\n if (attr.name === 'isChipsRemovable') {\n edits.push(removalEdit(attr, source));\n insertions.push('isChipRemovable');\n }\n if (attr.name === 'chipsLabelTruncateCount') {\n edits.push(removalEdit(attr, source));\n truncateValue = attr.value || null;\n }\n if (REMOVED_INPUTS.has(attr.name)) {\n edits.push(removalEdit(attr, source));\n }\n }\n\n // Collect and remove propagated bound inputs\n for (const input of element.inputs) {\n if (PROPAGATED_INPUTS.has(input.name)) {\n edits.push(removalEdit(input, source));\n const raw = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n insertions.push(raw);\n }\n if (input.name === 'isChipsRemovable') {\n edits.push(removalEdit(input, source));\n const valueText = extractBindingValue(input, source);\n insertions.push(`[isChipRemovable]=\"${valueText}\"`);\n }\n if (input.name === 'chipsLabelTruncateCount') {\n edits.push(removalEdit(input, source));\n truncateValue = extractBindingValue(input, source);\n }\n if (REMOVED_INPUTS.has(input.name)) {\n edits.push(removalEdit(input, source));\n }\n }\n\n // Collect and remove (chipRemove) output\n let chipRemoveHandler: string | null = null;\n for (const output of element.outputs) {\n if (output.name === 'chipRemove') {\n edits.push(removalEdit(output, source));\n chipRemoveHandler = extractHandlerExpression(output, source);\n }\n }\n\n if (chipRemoveHandler) {\n insertions.push(`(remove)=\"${chipRemoveHandler}\"`);\n }\n\n // Add collected attributes to each child eui-chip\n if (insertions.length > 0) {\n for (const chip of childChips) {\n const existingNames = getExistingAttrNames(chip);\n const toInsert = insertions.filter((ins) => {\n const name = extractAttrName(ins);\n return !existingNames.has(name);\n });\n if (toInsert.length > 0) {\n const insertPos = chip.startSourceSpan.end.offset - 1;\n edits.push({ start: insertPos, end: insertPos, replacement: ' ' + toInsert.join(' ') });\n }\n }\n }\n\n // Add euiTruncate pipe to chip label content\n if (truncateValue) {\n for (const chip of childChips) {\n const labelEdit = buildTruncatePipeEdit(chip, source, truncateValue);\n if (labelEdit) edits.push(labelEdit);\n }\n }\n}\n\nfunction buildTruncatePipeEdit(chip: TmplAstElement, source: string, truncateValue: string): Edit | null {\n // Find <span euiLabel>...</span> inside the chip\n const labelEl = findLabelElement(chip.children);\n if (labelEl && labelEl.endSourceSpan) {\n const contentStart = labelEl.startSourceSpan.end.offset;\n const contentEnd = labelEl.endSourceSpan.start.offset;\n const content = source.slice(contentStart, contentEnd);\n if (content && !content.includes('euiTruncate')) {\n const trimmed = content.trim();\n const interpMatch = trimmed.match(/^\\{\\{\\s*(.+?)\\s*\\}\\}$/);\n if (interpMatch) {\n return { start: contentStart, end: contentEnd, replacement: `{{ ${interpMatch[1]} | euiTruncate: ${truncateValue} }}` };\n }\n return { start: contentStart, end: contentEnd, replacement: `{{ '${trimmed}' | euiTruncate: ${truncateValue} }}` };\n }\n }\n\n // Check direct text content inside chip (no label element)\n if (chip.endSourceSpan) {\n const chipContentStart = chip.startSourceSpan.end.offset;\n const chipContentEnd = chip.endSourceSpan.start.offset;\n const chipContent = source.slice(chipContentStart, chipContentEnd);\n const trimmed = chipContent.trim();\n const interpMatch = trimmed.match(/^\\{\\{\\s*(.+?)\\s*\\}\\}$/);\n if (interpMatch && !chipContent.includes('euiTruncate')) {\n return { start: chipContentStart, end: chipContentEnd, replacement: `{{ ${interpMatch[1]} | euiTruncate: ${truncateValue} }}` };\n }\n }\n return null;\n}\n\nfunction findLabelElement(nodes: TmplAstNode[]): TmplAstElement | null {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.attributes.some((a) => a.name === 'euiLabel')) return node;\n const nested = findLabelElement(node.children);\n if (nested) return nested;\n }\n }\n return null;\n}\n\nfunction getExistingAttrNames(element: TmplAstElement): Set<string> {\n const names = new Set<string>();\n for (const attr of element.attributes) names.add(attr.name);\n for (const input of element.inputs) names.add(input.name);\n for (const output of element.outputs) names.add(output.name);\n return names;\n}\n\nfunction extractAttrName(insertion: string): string {\n const outputMatch = insertion.match(/^\\(([^)]+)\\)/);\n if (outputMatch) return outputMatch[1];\n const inputMatch = insertion.match(/^\\[([^\\]]+)\\]/);\n if (inputMatch) return inputMatch[1];\n return insertion.split('=')[0];\n}\n\nfunction removalEdit(node: TmplAstTextAttribute | TmplAstBoundAttribute | TmplAstBoundEvent, source: string): Edit {\n let start = node.sourceSpan.start.offset;\n while (start > 0 && (source[start - 1] === ' ' || source[start - 1] === '\\t')) {\n start--;\n }\n return { start, end: node.sourceSpan.end.offset, replacement: '' };\n}\n\nfunction extractBindingValue(input: TmplAstBoundAttribute, source: string): string {\n const raw = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n const match = raw.match(/=[\"']([^\"']*)[\"']/);\n return match ? match[1] : 'true';\n}\n\nfunction extractHandlerExpression(output: TmplAstBoundEvent, source: string): string {\n const raw = source.slice(output.sourceSpan.start.offset, output.sourceSpan.end.offset);\n const match = raw.match(/=[\"']([^\"']*)[\"']/);\n return match ? match[1] : '';\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction applyEdits(source: string, edits: Edit[]): string {\n const unique = deduplicateEdits(edits);\n let result = source;\n for (const edit of unique.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n\nfunction deduplicateEdits(edits: Edit[]): Edit[] {\n const seen = new Map<string, Edit>();\n for (const edit of edits) {\n seen.set(`${edit.start}:${edit.end}`, edit);\n }\n return Array.from(seen.values());\n}\n",
2592
2592
  "displayName": "Schema",
2593
2593
  "properties": [
2594
2594
  {
@@ -2600,7 +2600,7 @@
2600
2600
  "indexKey": "",
2601
2601
  "optional": true,
2602
2602
  "description": "",
2603
- "line": 8,
2603
+ "line": 28,
2604
2604
  "rawdescription": "\n"
2605
2605
  },
2606
2606
  {
@@ -2612,7 +2612,7 @@
2612
2612
  "indexKey": "",
2613
2613
  "optional": true,
2614
2614
  "description": "",
2615
- "line": 7,
2615
+ "line": 27,
2616
2616
  "rawdescription": "\n"
2617
2617
  }
2618
2618
  ],
@@ -2630,12 +2630,12 @@
2630
2630
  },
2631
2631
  {
2632
2632
  "name": "Schema",
2633
- "id": "interface-Schema-375dc0924084a2acbafe4a6a32577d59f631c9a386d151180d8fb1c89e7e7cd23da9fd459e597592ed823692adb6ad2633c50baf16621f003246e8c9bb1c6ce0-10",
2634
- "file": "packages/core/schematics/migrate-eui-editor/index.ts",
2633
+ "id": "interface-Schema-869dfc324e9111966817cbebb3553eabfe200acfe33bb77efa71a6c46e1cba0ff5852de7b9ade3060f87264035b99591361331a9e0622daaac22b8d59146c761-10",
2634
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
2635
2635
  "deprecated": false,
2636
2636
  "deprecationMessage": "",
2637
2637
  "type": "interface",
2638
- "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\nconst COMPONENT_TAG = 'eui-editor';\nconst OLD_NAME = 'onEditorChanged';\nconst NEW_NAME = 'contentChange';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nexport function migrateEuiEditor(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n\n if (path.endsWith('.html')) {\n if (!original.includes(COMPONENT_TAG)) return;\n const result = migrateTemplate(original);\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n return;\n }\n\n // .ts file — handle both migration and warnings in one pass\n const hasTag = original.includes(COMPONENT_TAG);\n const hasOldName = original.includes(OLD_NAME);\n if (!hasTag && !hasOldName) return;\n\n if (hasTag) {\n const result = migrateInlineTemplates(original);\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n }\n\n // Warn about TS property access usages (skip spec files)\n if (hasOldName && !path.endsWith('.spec.ts')) {\n warnPropertyAccesses(path, original, context);\n }\n });\n\n context.logger.info(`Renamed '(${OLD_NAME})' → '(${NEW_NAME})' on ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit); return;\n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction warnPropertyAccesses(path: string, source: string, context: SchematicContext): void {\n const sourceFile = ts.createSourceFile(path, source, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\" on ${COMPONENT_TAG}. Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const output of element.outputs) {\n if (output.name === OLD_NAME) {\n edits.push({ start: output.keySpan!.start.offset, end: output.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2638
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-discussion-thread';\n\nexport function migrateEuiDiscussionThread(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove [trackBy] binding in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS usages inline\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes('trackByFn')) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'trackByFn') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"trackByFn\" has been removed from ${COMPONENT_TAG}. Remove this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed trackByFn-based [trackBy] bindings from ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, source, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes(COMPONENT_TAG)) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction visitNodes(nodes: TmplAstNode[], source: string, removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRemovals(node, source, removals);\n visitNodes(node.children, source, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, source: string, removals: { start: number; end: number }[]): void {\n for (const input of element.inputs) {\n if (input.name === 'trackBy') {\n const valueSource = source.slice(input.sourceSpan.start.offset, input.sourceSpan.end.offset);\n if (valueSource.includes('trackByFn')) {\n removals.push({ start: input.sourceSpan.start.offset, end: input.sourceSpan.end.offset });\n }\n }\n }\n}\n",
2639
2639
  "displayName": "Schema",
2640
2640
  "properties": [
2641
2641
  {
@@ -2647,7 +2647,7 @@
2647
2647
  "indexKey": "",
2648
2648
  "optional": true,
2649
2649
  "description": "",
2650
- "line": 12,
2650
+ "line": 8,
2651
2651
  "rawdescription": "\n"
2652
2652
  },
2653
2653
  {
@@ -2659,7 +2659,7 @@
2659
2659
  "indexKey": "",
2660
2660
  "optional": true,
2661
2661
  "description": "",
2662
- "line": 11,
2662
+ "line": 7,
2663
2663
  "rawdescription": "\n"
2664
2664
  }
2665
2665
  ],
@@ -2677,12 +2677,12 @@
2677
2677
  },
2678
2678
  {
2679
2679
  "name": "Schema",
2680
- "id": "interface-Schema-b3ff4600c4a5ca1888c45e5baf3600fa6dc6477f1e473e5241ff6682e2929dc8950a5dfa8b1048a348dba7ad1f0ce8cc3681471933911b689e04713334ef4811-11",
2681
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
2680
+ "id": "interface-Schema-375dc0924084a2acbafe4a6a32577d59f631c9a386d151180d8fb1c89e7e7cd23da9fd459e597592ed823692adb6ad2633c50baf16621f003246e8c9bb1c6ce0-11",
2681
+ "file": "packages/core/schematics/migrate-eui-editor/index.ts",
2682
2682
  "deprecated": false,
2683
2683
  "deprecationMessage": "",
2684
2684
  "type": "interface",
2685
- "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-icon-svg';\n\nconst INPUT_RENAMES = new Map([\n ['variant', 'fillColor'],\n ['aria-label', 'ariaLabel'],\n]);\n\nconst TS_PROPERTY_RENAMES = new Map([\n ['variant', 'fillColor'],\n]);\n\nexport function migrateEuiIconSvg(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename deprecated inputs in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n });\n\n context.logger.info(`Migrated eui-icon-svg inputs in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) {\n changes.push({ start, end, text: migrated });\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && TS_PROPERTY_RENAMES.has(node.name.text)) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: TS_PROPERTY_RENAMES.get(node.name.text)! });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) {\n current = current.expression;\n }\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) {\n collectRenames(node, edits);\n }\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n const newName = INPUT_RENAMES.get(attr.name);\n if (newName) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: newName });\n }\n }\n for (const input of element.inputs) {\n const newName = INPUT_RENAMES.get(input.name);\n if (newName) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: newName });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2685
+ "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\nconst COMPONENT_TAG = 'eui-editor';\nconst OLD_NAME = 'onEditorChanged';\nconst NEW_NAME = 'contentChange';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nexport function migrateEuiEditor(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n\n if (path.endsWith('.html')) {\n if (!original.includes(COMPONENT_TAG)) return;\n const result = migrateTemplate(original);\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n return;\n }\n\n // .ts file — handle both migration and warnings in one pass\n const hasTag = original.includes(COMPONENT_TAG);\n const hasOldName = original.includes(OLD_NAME);\n if (!hasTag && !hasOldName) return;\n\n if (hasTag) {\n const result = migrateInlineTemplates(original);\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n }\n\n // Warn about TS property access usages (skip spec files)\n if (hasOldName && !path.endsWith('.spec.ts')) {\n warnPropertyAccesses(path, original, context);\n }\n });\n\n context.logger.info(`Renamed '(${OLD_NAME})' → '(${NEW_NAME})' on ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit); return;\n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction warnPropertyAccesses(path: string, source: string, context: SchematicContext): void {\n const sourceFile = ts.createSourceFile(path, source, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\" on ${COMPONENT_TAG}. Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const output of element.outputs) {\n if (output.name === OLD_NAME) {\n edits.push({ start: output.keySpan!.start.offset, end: output.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2686
2686
  "displayName": "Schema",
2687
2687
  "properties": [
2688
2688
  {
@@ -2694,7 +2694,7 @@
2694
2694
  "indexKey": "",
2695
2695
  "optional": true,
2696
2696
  "description": "",
2697
- "line": 8,
2697
+ "line": 12,
2698
2698
  "rawdescription": "\n"
2699
2699
  },
2700
2700
  {
@@ -2706,7 +2706,7 @@
2706
2706
  "indexKey": "",
2707
2707
  "optional": true,
2708
2708
  "description": "",
2709
- "line": 7,
2709
+ "line": 11,
2710
2710
  "rawdescription": "\n"
2711
2711
  }
2712
2712
  ],
@@ -2724,12 +2724,12 @@
2724
2724
  },
2725
2725
  {
2726
2726
  "name": "Schema",
2727
- "id": "interface-Schema-39d3d52e788050bebc4e0b99ed0756f7e9727556cb090ae8796bd4261a56463fe1f479c322b23028cd4134d71e4d1dc44cd248ac62a9a148b5fc46a665466f7c-12",
2728
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
2727
+ "id": "interface-Schema-0ee574e11dd651dd971057cb66220845e5b87b2949c69c623c8ddf7355af92a396c58c237a52a05f18c22a5332a2695b717bcfeb8ea840c4e7df8d0084c2b49c-12",
2728
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
2729
2729
  "deprecated": false,
2730
2730
  "deprecationMessage": "",
2731
2731
  "type": "interface",
2732
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst REMOVED_INPUTS = new Set(['isSquared']);\n\nexport function migrateEuiChip(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes('eui-chip') && !original.includes('euiChip')) return;\n\n const result = path.endsWith('.html')\n ? migrateTemplate(original)\n : migrateInlineTemplates(original);\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would remove 'isSquared' input in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS usages inline\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes('isSquared')) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === 'isSquared') {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"isSquared\" is no longer a valid input on eui-chip. Remove this assignment.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Removed deprecated eui-chip 'isSquared' input from ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const removals: { start: number; end: number }[] = [];\n\n visitNodes(parsed.nodes, removals);\n\n let result = source;\n for (const { start, end } of removals.sort((a, b) => b.start - a.start)) {\n let adjustedStart = start;\n while (adjustedStart > 0 && (result[adjustedStart - 1] === ' ' || result[adjustedStart - 1] === '\\t')) {\n adjustedStart--;\n }\n result = result.slice(0, adjustedStart) + result.slice(end);\n }\n\n return result;\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const templateRegex = /template\\s*:\\s*`([^`]*)`/gs;\n return source.replace(templateRegex, (match, templateContent: string) => {\n if (!templateContent.includes('eui-chip') && !templateContent.includes('euiChip')) return match;\n const migrated = migrateTemplate(templateContent);\n if (migrated === templateContent) return match;\n return match.replace(templateContent, migrated);\n });\n}\n\nfunction isChipElement(element: TmplAstElement): boolean {\n if (element.name === 'eui-chip') return true;\n return element.attributes.some((a) => a.name === 'euiChip');\n}\n\nfunction visitNodes(nodes: TmplAstNode[], removals: { start: number; end: number }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (isChipElement(node)) collectRemovals(node, removals);\n visitNodes(node.children, removals);\n }\n }\n}\n\nfunction collectRemovals(element: TmplAstElement, removals: { start: number; end: number }[]): void {\n for (const attr of element.attributes) {\n if (REMOVED_INPUTS.has(attr.name)) {\n removals.push(getAttributeSpan(attr));\n }\n }\n for (const input of element.inputs) {\n if (REMOVED_INPUTS.has(input.name)) {\n removals.push(getAttributeSpan(input));\n }\n }\n}\n\nfunction getAttributeSpan(attr: TmplAstTextAttribute | TmplAstBoundAttribute): { start: number; end: number } {\n return { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };\n}\n",
2732
+ "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-fieldset';\nconst OLD_NAME = 'iconSvgType';\nconst NEW_NAME = 'iconSvgName';\n\nexport function migrateEuiFieldset(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages (merged from warnTsUsages)\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes(OLD_NAME)) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\" on ${COMPONENT_TAG}. Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2733
2733
  "displayName": "Schema",
2734
2734
  "properties": [
2735
2735
  {
@@ -2771,12 +2771,12 @@
2771
2771
  },
2772
2772
  {
2773
2773
  "name": "Schema",
2774
- "id": "interface-Schema-21147930d3fbc38fbb3052a2ed9e7aa2b7505e6ed8c88c28796ce7101bd2ad914726eb230dda5826647036190edec6dae7e7e1d172387cd3803aa00bcdf790be-13",
2775
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
2774
+ "id": "interface-Schema-b3ff4600c4a5ca1888c45e5baf3600fa6dc6477f1e473e5241ff6682e2929dc8950a5dfa8b1048a348dba7ad1f0ce8cc3681471933911b689e04713334ef4811-13",
2775
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
2776
2776
  "deprecated": false,
2777
2777
  "deprecationMessage": "",
2778
2778
  "type": "interface",
2779
- "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'iconSet';\nconst NEW_NAME = 'iconSvgName';\nconst COMPONENT_TAG = 'eui-icon-toggle';\n\nexport function migrateEuiIconToggle(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let templateCount = 0;\n let tsCount = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n if (path.endsWith('.html')) templateCount++;\n else tsCount++;\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on ${COMPONENT_TAG} in ${templateCount + tsCount} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) {\n changes.push({ start, end, text: migrated });\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: NEW_NAME });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) {\n current = current.expression;\n }\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) {\n collectRenames(node, edits);\n }\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2779
+ "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-icon-svg';\n\nconst INPUT_RENAMES = new Map([\n ['variant', 'fillColor'],\n ['aria-label', 'ariaLabel'],\n]);\n\nconst TS_PROPERTY_RENAMES = new Map([\n ['variant', 'fillColor'],\n]);\n\nexport function migrateEuiIconSvg(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename deprecated inputs in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n });\n\n context.logger.info(`Migrated eui-icon-svg inputs in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) {\n changes.push({ start, end, text: migrated });\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && TS_PROPERTY_RENAMES.has(node.name.text)) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: TS_PROPERTY_RENAMES.get(node.name.text)! });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) {\n current = current.expression;\n }\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) {\n collectRenames(node, edits);\n }\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n const newName = INPUT_RENAMES.get(attr.name);\n if (newName) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: newName });\n }\n }\n for (const input of element.inputs) {\n const newName = INPUT_RENAMES.get(input.name);\n if (newName) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: newName });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2780
2780
  "displayName": "Schema",
2781
2781
  "properties": [
2782
2782
  {
@@ -2818,12 +2818,12 @@
2818
2818
  },
2819
2819
  {
2820
2820
  "name": "Schema",
2821
- "id": "interface-Schema-0ee574e11dd651dd971057cb66220845e5b87b2949c69c623c8ddf7355af92a396c58c237a52a05f18c22a5332a2695b717bcfeb8ea840c4e7df8d0084c2b49c-14",
2822
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
2821
+ "id": "interface-Schema-21147930d3fbc38fbb3052a2ed9e7aa2b7505e6ed8c88c28796ce7101bd2ad914726eb230dda5826647036190edec6dae7e7e1d172387cd3803aa00bcdf790be-14",
2822
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
2823
2823
  "deprecated": false,
2824
2824
  "deprecationMessage": "",
2825
2825
  "type": "interface",
2826
- "sourceCode": "import { parseTemplate, TmplAstElement, TmplAstNode } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst COMPONENT_TAG = 'eui-fieldset';\nconst OLD_NAME = 'iconSvgType';\nconst NEW_NAME = 'iconSvgName';\n\nexport function migrateEuiFieldset(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let count = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n count++;\n }\n\n // Warn about TS property access usages (merged from warnTsUsages)\n if (path.endsWith('.ts') && !path.endsWith('.spec.ts') && original.includes(OLD_NAME)) {\n const sourceFile = ts.createSourceFile(path, original, ts.ScriptTarget.Latest, true);\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n context.logger.warn(`${path}:${line + 1} - \"${OLD_NAME}\" has been renamed to \"${NEW_NAME}\" on ${COMPONENT_TAG}. Update this reference manually.`);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on ${COMPONENT_TAG} in ${count} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit); return; \n}\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) changes.push({ start, end, text: migrated });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) current = current.expression;\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) collectRenames(node, edits);\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2826
+ "sourceCode": "import { parseTemplate, TmplAstBoundAttribute, TmplAstElement, TmplAstNode, TmplAstTextAttribute } from '@angular/compiler';\nimport { DirEntry, Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { logDryRun, logDryRunNote } from '../utils/dry-run';\n\ninterface Schema {\n path?: string;\n dryRun?: boolean;\n}\n\nconst OLD_NAME = 'iconSet';\nconst NEW_NAME = 'iconSvgName';\nconst COMPONENT_TAG = 'eui-icon-toggle';\n\nexport function migrateEuiIconToggle(options: Schema = {}): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const scanPath = options.path ? '/' + options.path.replace(/^\\.?\\//, '').replace(/\\/$/, '') : '';\n let templateCount = 0;\n let tsCount = 0;\n\n const dir = tree.getDir(scanPath || '/');\n visitDir(dir, (path) => {\n const buffer = tree.read(path);\n if (!buffer) return;\n\n const original = buffer.toString('utf-8');\n if (!original.includes(COMPONENT_TAG)) return;\n\n let result: string;\n\n if (path.endsWith('.html')) {\n result = migrateTemplate(original);\n } else {\n result = migrateInlineTemplates(original);\n result = renameTsPropertyAccesses(result);\n }\n\n if (result !== original) {\n if (options.dryRun) {\n logDryRun(context, `Would rename '${OLD_NAME}' → '${NEW_NAME}' in ${path}`);\n } else {\n tree.overwrite(path, result);\n }\n if (path.endsWith('.html')) templateCount++;\n else tsCount++;\n }\n });\n\n context.logger.info(`Renamed '${OLD_NAME}' → '${NEW_NAME}' on ${COMPONENT_TAG} in ${templateCount + tsCount} file(s).`);\n if (options.dryRun) {\n logDryRunNote(context);\n }\n return tree;\n };\n}\n\nfunction visitDir(dir: DirEntry, callback: (path: string) => void): void {\n for (const file of dir.subfiles) {\n if (file.endsWith('.d.ts')) continue;\n if (!file.endsWith('.html') && !file.endsWith('.ts')) continue;\n callback(`${dir.path}/${file}`);\n }\n for (const sub of dir.subdirs) {\n if (sub === 'node_modules' || sub === 'dist') continue;\n visitDir(dir.dir(sub), callback);\n }\n}\n\nfunction migrateTemplate(source: string): string {\n const parsed = parseTemplate(source, '', { preserveWhitespaces: true });\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n visitNodes(parsed.nodes, edits);\n\n return applyEdits(source, edits);\n}\n\nfunction migrateInlineTemplates(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const changes: { start: number; end: number; text: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {\n const init = unwrapExpression(node.initializer);\n if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {\n const start = init.getStart(sourceFile) + 1;\n const end = init.getEnd() - 1;\n const rawTemplate = source.slice(start, end);\n if (!rawTemplate.includes(COMPONENT_TAG)) {\n ts.forEachChild(node, visit);\n return;\n }\n const migrated = migrateTemplate(rawTemplate);\n if (migrated !== rawTemplate) {\n changes.push({ start, end, text: migrated });\n }\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n let result = source;\n for (const change of changes.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, change.start) + change.text + result.slice(change.end);\n }\n return result;\n}\n\nfunction renameTsPropertyAccesses(source: string): string {\n const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);\n const edits: { start: number; end: number; replacement: string }[] = [];\n\n const visit = (node: ts.Node): void => {\n if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && node.name.text === OLD_NAME) {\n edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), replacement: NEW_NAME });\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n\n return applyEdits(source, edits);\n}\n\nfunction isTemplateProperty(node: ts.PropertyAssignment): boolean {\n const name = node.name;\n return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');\n}\n\nfunction isComponentMetadataProperty(node: ts.PropertyAssignment): boolean {\n const objectLiteral = node.parent;\n if (!ts.isObjectLiteralExpression(objectLiteral)) return false;\n const callExpression = objectLiteral.parent;\n if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral) return false;\n return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';\n}\n\nfunction unwrapExpression(expression: ts.Expression): ts.Expression {\n let current = expression;\n while (ts.isParenthesizedExpression(current)) {\n current = current.expression;\n }\n return current;\n}\n\nfunction visitNodes(nodes: TmplAstNode[], edits: { start: number; end: number; replacement: string }[]): void {\n for (const node of nodes) {\n if (node instanceof TmplAstElement) {\n if (node.name === COMPONENT_TAG) {\n collectRenames(node, edits);\n }\n visitNodes(node.children, edits);\n }\n }\n}\n\nfunction collectRenames(element: TmplAstElement, edits: { start: number; end: number; replacement: string }[]): void {\n for (const attr of element.attributes) {\n if (attr.name === OLD_NAME) {\n edits.push({ start: attr.keySpan!.start.offset, end: attr.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n for (const input of element.inputs) {\n if (input.name === OLD_NAME) {\n edits.push({ start: input.keySpan!.start.offset, end: input.keySpan!.end.offset, replacement: NEW_NAME });\n }\n }\n}\n\nfunction applyEdits(source: string, edits: { start: number; end: number; replacement: string }[]): string {\n let result = source;\n for (const edit of edits.sort((a, b) => b.start - a.start)) {\n result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);\n }\n return result;\n}\n",
2827
2827
  "displayName": "Schema",
2828
2828
  "properties": [
2829
2829
  {
@@ -22314,34 +22314,34 @@
22314
22314
  "name": "COMPONENT_TAG",
22315
22315
  "ctype": "miscellaneous",
22316
22316
  "subtype": "variable",
22317
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
22317
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
22318
22318
  "coverageIgnore": false,
22319
22319
  "deprecated": false,
22320
22320
  "deprecationMessage": "",
22321
22321
  "type": "string",
22322
- "defaultValue": "'eui-icon-svg'"
22322
+ "defaultValue": "'eui-fieldset'"
22323
22323
  },
22324
22324
  {
22325
22325
  "name": "COMPONENT_TAG",
22326
22326
  "ctype": "miscellaneous",
22327
22327
  "subtype": "variable",
22328
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
22328
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
22329
22329
  "coverageIgnore": false,
22330
22330
  "deprecated": false,
22331
22331
  "deprecationMessage": "",
22332
22332
  "type": "string",
22333
- "defaultValue": "'eui-icon-toggle'"
22333
+ "defaultValue": "'eui-icon-svg'"
22334
22334
  },
22335
22335
  {
22336
22336
  "name": "COMPONENT_TAG",
22337
22337
  "ctype": "miscellaneous",
22338
22338
  "subtype": "variable",
22339
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
22339
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
22340
22340
  "coverageIgnore": false,
22341
22341
  "deprecated": false,
22342
22342
  "deprecationMessage": "",
22343
22343
  "type": "string",
22344
- "defaultValue": "'eui-fieldset'"
22344
+ "defaultValue": "'eui-icon-toggle'"
22345
22345
  },
22346
22346
  {
22347
22347
  "name": "CONFIG_TOKEN",
@@ -23246,23 +23246,23 @@
23246
23246
  "name": "NEW_NAME",
23247
23247
  "ctype": "miscellaneous",
23248
23248
  "subtype": "variable",
23249
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
23249
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
23250
23250
  "coverageIgnore": false,
23251
23251
  "deprecated": false,
23252
23252
  "deprecationMessage": "",
23253
23253
  "type": "string",
23254
- "defaultValue": "'euiPrimary'"
23254
+ "defaultValue": "'euiCTAButton'"
23255
23255
  },
23256
23256
  {
23257
23257
  "name": "NEW_NAME",
23258
23258
  "ctype": "miscellaneous",
23259
23259
  "subtype": "variable",
23260
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
23260
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
23261
23261
  "coverageIgnore": false,
23262
23262
  "deprecated": false,
23263
23263
  "deprecationMessage": "",
23264
23264
  "type": "string",
23265
- "defaultValue": "'euiCTAButton'"
23265
+ "defaultValue": "'euiPrimary'"
23266
23266
  },
23267
23267
  {
23268
23268
  "name": "NEW_NAME",
@@ -23279,7 +23279,7 @@
23279
23279
  "name": "NEW_NAME",
23280
23280
  "ctype": "miscellaneous",
23281
23281
  "subtype": "variable",
23282
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
23282
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
23283
23283
  "coverageIgnore": false,
23284
23284
  "deprecated": false,
23285
23285
  "deprecationMessage": "",
@@ -23290,7 +23290,7 @@
23290
23290
  "name": "NEW_NAME",
23291
23291
  "ctype": "miscellaneous",
23292
23292
  "subtype": "variable",
23293
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
23293
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
23294
23294
  "coverageIgnore": false,
23295
23295
  "deprecated": false,
23296
23296
  "deprecationMessage": "",
@@ -23391,23 +23391,23 @@
23391
23391
  "name": "OLD_NAME",
23392
23392
  "ctype": "miscellaneous",
23393
23393
  "subtype": "variable",
23394
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
23394
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
23395
23395
  "coverageIgnore": false,
23396
23396
  "deprecated": false,
23397
23397
  "deprecationMessage": "",
23398
23398
  "type": "string",
23399
- "defaultValue": "'euiAccent'"
23399
+ "defaultValue": "'euiButtonCall'"
23400
23400
  },
23401
23401
  {
23402
23402
  "name": "OLD_NAME",
23403
23403
  "ctype": "miscellaneous",
23404
23404
  "subtype": "variable",
23405
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
23405
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
23406
23406
  "coverageIgnore": false,
23407
23407
  "deprecated": false,
23408
23408
  "deprecationMessage": "",
23409
23409
  "type": "string",
23410
- "defaultValue": "'euiButtonCall'"
23410
+ "defaultValue": "'euiAccent'"
23411
23411
  },
23412
23412
  {
23413
23413
  "name": "OLD_NAME",
@@ -23424,23 +23424,23 @@
23424
23424
  "name": "OLD_NAME",
23425
23425
  "ctype": "miscellaneous",
23426
23426
  "subtype": "variable",
23427
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
23427
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
23428
23428
  "coverageIgnore": false,
23429
23429
  "deprecated": false,
23430
23430
  "deprecationMessage": "",
23431
23431
  "type": "string",
23432
- "defaultValue": "'iconSet'"
23432
+ "defaultValue": "'iconSvgType'"
23433
23433
  },
23434
23434
  {
23435
23435
  "name": "OLD_NAME",
23436
23436
  "ctype": "miscellaneous",
23437
23437
  "subtype": "variable",
23438
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
23438
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
23439
23439
  "coverageIgnore": false,
23440
23440
  "deprecated": false,
23441
23441
  "deprecationMessage": "",
23442
23442
  "type": "string",
23443
- "defaultValue": "'iconSvgType'"
23443
+ "defaultValue": "'iconSet'"
23444
23444
  },
23445
23445
  {
23446
23446
  "name": "OLD_PIPE",
@@ -23593,23 +23593,23 @@
23593
23593
  "name": "REMOVED_INPUTS",
23594
23594
  "ctype": "miscellaneous",
23595
23595
  "subtype": "variable",
23596
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
23596
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
23597
23597
  "coverageIgnore": false,
23598
23598
  "deprecated": false,
23599
23599
  "deprecationMessage": "",
23600
23600
  "type": "unknown",
23601
- "defaultValue": "new Set(['maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel', 'isChipsSorted', 'chipsSortOrder'])"
23601
+ "defaultValue": "new Set(['isSquared'])"
23602
23602
  },
23603
23603
  {
23604
23604
  "name": "REMOVED_INPUTS",
23605
23605
  "ctype": "miscellaneous",
23606
23606
  "subtype": "variable",
23607
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
23607
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
23608
23608
  "coverageIgnore": false,
23609
23609
  "deprecated": false,
23610
23610
  "deprecationMessage": "",
23611
23611
  "type": "unknown",
23612
- "defaultValue": "new Set(['isSquared'])"
23612
+ "defaultValue": "new Set(['maxVisibleChipsCount', 'isMaxVisibleChipsOpened', 'toggleLinkMoreLabel', 'toggleLinkLessLabel', 'isChipsSorted', 'chipsSortOrder'])"
23613
23613
  },
23614
23614
  {
23615
23615
  "name": "REMOVED_INPUTS",
@@ -24383,7 +24383,7 @@
24383
24383
  },
24384
24384
  {
24385
24385
  "name": "applyEdits",
24386
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
24386
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
24387
24387
  "ctype": "miscellaneous",
24388
24388
  "subtype": "function",
24389
24389
  "coverageIgnore": false,
@@ -24428,7 +24428,7 @@
24428
24428
  },
24429
24429
  {
24430
24430
  "name": "applyEdits",
24431
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
24431
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
24432
24432
  "ctype": "miscellaneous",
24433
24433
  "subtype": "function",
24434
24434
  "coverageIgnore": false,
@@ -24563,7 +24563,7 @@
24563
24563
  },
24564
24564
  {
24565
24565
  "name": "applyEdits",
24566
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
24566
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
24567
24567
  "ctype": "miscellaneous",
24568
24568
  "subtype": "function",
24569
24569
  "coverageIgnore": false,
@@ -24608,7 +24608,7 @@
24608
24608
  },
24609
24609
  {
24610
24610
  "name": "applyEdits",
24611
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
24611
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
24612
24612
  "ctype": "miscellaneous",
24613
24613
  "subtype": "function",
24614
24614
  "coverageIgnore": false,
@@ -24653,7 +24653,7 @@
24653
24653
  },
24654
24654
  {
24655
24655
  "name": "applyEdits",
24656
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
24656
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
24657
24657
  "ctype": "miscellaneous",
24658
24658
  "subtype": "function",
24659
24659
  "coverageIgnore": false,
@@ -26040,7 +26040,7 @@
26040
26040
  },
26041
26041
  {
26042
26042
  "name": "collectRemovals",
26043
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
26043
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
26044
26044
  "ctype": "miscellaneous",
26045
26045
  "subtype": "function",
26046
26046
  "coverageIgnore": false,
@@ -26056,12 +26056,6 @@
26056
26056
  "deprecated": false,
26057
26057
  "deprecationMessage": ""
26058
26058
  },
26059
- {
26060
- "name": "source",
26061
- "type": "string",
26062
- "deprecated": false,
26063
- "deprecationMessage": ""
26064
- },
26065
26059
  {
26066
26060
  "name": "removals",
26067
26061
  "deprecated": false,
@@ -26079,15 +26073,6 @@
26079
26073
  "text": "param"
26080
26074
  }
26081
26075
  },
26082
- {
26083
- "name": "source",
26084
- "type": "string",
26085
- "deprecated": false,
26086
- "deprecationMessage": "",
26087
- "tagName": {
26088
- "text": "param"
26089
- }
26090
- },
26091
26076
  {
26092
26077
  "name": "removals",
26093
26078
  "deprecated": false,
@@ -26100,7 +26085,7 @@
26100
26085
  },
26101
26086
  {
26102
26087
  "name": "collectRemovals",
26103
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
26088
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
26104
26089
  "ctype": "miscellaneous",
26105
26090
  "subtype": "function",
26106
26091
  "coverageIgnore": false,
@@ -26116,6 +26101,12 @@
26116
26101
  "deprecated": false,
26117
26102
  "deprecationMessage": ""
26118
26103
  },
26104
+ {
26105
+ "name": "source",
26106
+ "type": "string",
26107
+ "deprecated": false,
26108
+ "deprecationMessage": ""
26109
+ },
26119
26110
  {
26120
26111
  "name": "removals",
26121
26112
  "deprecated": false,
@@ -26133,6 +26124,15 @@
26133
26124
  "text": "param"
26134
26125
  }
26135
26126
  },
26127
+ {
26128
+ "name": "source",
26129
+ "type": "string",
26130
+ "deprecated": false,
26131
+ "deprecationMessage": "",
26132
+ "tagName": {
26133
+ "text": "param"
26134
+ }
26135
+ },
26136
26136
  {
26137
26137
  "name": "removals",
26138
26138
  "deprecated": false,
@@ -26190,7 +26190,7 @@
26190
26190
  },
26191
26191
  {
26192
26192
  "name": "collectRenames",
26193
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
26193
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
26194
26194
  "ctype": "miscellaneous",
26195
26195
  "subtype": "function",
26196
26196
  "coverageIgnore": false,
@@ -26235,7 +26235,7 @@
26235
26235
  },
26236
26236
  {
26237
26237
  "name": "collectRenames",
26238
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
26238
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
26239
26239
  "ctype": "miscellaneous",
26240
26240
  "subtype": "function",
26241
26241
  "coverageIgnore": false,
@@ -26325,7 +26325,7 @@
26325
26325
  },
26326
26326
  {
26327
26327
  "name": "collectRenames",
26328
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
26328
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
26329
26329
  "ctype": "miscellaneous",
26330
26330
  "subtype": "function",
26331
26331
  "coverageIgnore": false,
@@ -26370,7 +26370,7 @@
26370
26370
  },
26371
26371
  {
26372
26372
  "name": "collectRenames",
26373
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
26373
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
26374
26374
  "ctype": "miscellaneous",
26375
26375
  "subtype": "function",
26376
26376
  "coverageIgnore": false,
@@ -26415,7 +26415,7 @@
26415
26415
  },
26416
26416
  {
26417
26417
  "name": "collectRenames",
26418
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
26418
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
26419
26419
  "ctype": "miscellaneous",
26420
26420
  "subtype": "function",
26421
26421
  "coverageIgnore": false,
@@ -29754,7 +29754,7 @@
29754
29754
  },
29755
29755
  {
29756
29756
  "name": "isChipElement",
29757
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
29757
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
29758
29758
  "ctype": "miscellaneous",
29759
29759
  "subtype": "function",
29760
29760
  "coverageIgnore": false,
@@ -29786,7 +29786,7 @@
29786
29786
  },
29787
29787
  {
29788
29788
  "name": "isChipElement",
29789
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
29789
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
29790
29790
  "ctype": "miscellaneous",
29791
29791
  "subtype": "function",
29792
29792
  "coverageIgnore": false,
@@ -29850,7 +29850,7 @@
29850
29850
  },
29851
29851
  {
29852
29852
  "name": "isComponentMetadataProperty",
29853
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
29853
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
29854
29854
  "ctype": "miscellaneous",
29855
29855
  "subtype": "function",
29856
29856
  "coverageIgnore": false,
@@ -29880,7 +29880,7 @@
29880
29880
  },
29881
29881
  {
29882
29882
  "name": "isComponentMetadataProperty",
29883
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
29883
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
29884
29884
  "ctype": "miscellaneous",
29885
29885
  "subtype": "function",
29886
29886
  "coverageIgnore": false,
@@ -29970,7 +29970,7 @@
29970
29970
  },
29971
29971
  {
29972
29972
  "name": "isComponentMetadataProperty",
29973
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
29973
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
29974
29974
  "ctype": "miscellaneous",
29975
29975
  "subtype": "function",
29976
29976
  "coverageIgnore": false,
@@ -30000,7 +30000,7 @@
30000
30000
  },
30001
30001
  {
30002
30002
  "name": "isComponentMetadataProperty",
30003
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
30003
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
30004
30004
  "ctype": "miscellaneous",
30005
30005
  "subtype": "function",
30006
30006
  "coverageIgnore": false,
@@ -30030,7 +30030,7 @@
30030
30030
  },
30031
30031
  {
30032
30032
  "name": "isComponentMetadataProperty",
30033
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
30033
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
30034
30034
  "ctype": "miscellaneous",
30035
30035
  "subtype": "function",
30036
30036
  "coverageIgnore": false,
@@ -30395,7 +30395,7 @@
30395
30395
  },
30396
30396
  {
30397
30397
  "name": "isTemplateProperty",
30398
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
30398
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
30399
30399
  "ctype": "miscellaneous",
30400
30400
  "subtype": "function",
30401
30401
  "coverageIgnore": false,
@@ -30425,7 +30425,7 @@
30425
30425
  },
30426
30426
  {
30427
30427
  "name": "isTemplateProperty",
30428
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
30428
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
30429
30429
  "ctype": "miscellaneous",
30430
30430
  "subtype": "function",
30431
30431
  "coverageIgnore": false,
@@ -30515,7 +30515,7 @@
30515
30515
  },
30516
30516
  {
30517
30517
  "name": "isTemplateProperty",
30518
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
30518
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
30519
30519
  "ctype": "miscellaneous",
30520
30520
  "subtype": "function",
30521
30521
  "coverageIgnore": false,
@@ -30545,7 +30545,7 @@
30545
30545
  },
30546
30546
  {
30547
30547
  "name": "isTemplateProperty",
30548
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
30548
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
30549
30549
  "ctype": "miscellaneous",
30550
30550
  "subtype": "function",
30551
30551
  "coverageIgnore": false,
@@ -30575,7 +30575,7 @@
30575
30575
  },
30576
30576
  {
30577
30577
  "name": "isTemplateProperty",
30578
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
30578
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
30579
30579
  "ctype": "miscellaneous",
30580
30580
  "subtype": "function",
30581
30581
  "coverageIgnore": false,
@@ -32227,7 +32227,7 @@
32227
32227
  },
32228
32228
  {
32229
32229
  "name": "migrateInlineTemplates",
32230
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
32230
+ "file": "packages/core/schematics/migrate-eui-alert/index.ts",
32231
32231
  "ctype": "miscellaneous",
32232
32232
  "subtype": "function",
32233
32233
  "coverageIgnore": false,
@@ -32259,7 +32259,7 @@
32259
32259
  },
32260
32260
  {
32261
32261
  "name": "migrateInlineTemplates",
32262
- "file": "packages/core/schematics/migrate-eui-alert/index.ts",
32262
+ "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
32263
32263
  "ctype": "miscellaneous",
32264
32264
  "subtype": "function",
32265
32265
  "coverageIgnore": false,
@@ -32291,7 +32291,7 @@
32291
32291
  },
32292
32292
  {
32293
32293
  "name": "migrateInlineTemplates",
32294
- "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
32294
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
32295
32295
  "ctype": "miscellaneous",
32296
32296
  "subtype": "function",
32297
32297
  "coverageIgnore": false,
@@ -32323,7 +32323,7 @@
32323
32323
  },
32324
32324
  {
32325
32325
  "name": "migrateInlineTemplates",
32326
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
32326
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
32327
32327
  "ctype": "miscellaneous",
32328
32328
  "subtype": "function",
32329
32329
  "coverageIgnore": false,
@@ -32355,7 +32355,7 @@
32355
32355
  },
32356
32356
  {
32357
32357
  "name": "migrateInlineTemplates",
32358
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
32358
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
32359
32359
  "ctype": "miscellaneous",
32360
32360
  "subtype": "function",
32361
32361
  "coverageIgnore": false,
@@ -32387,7 +32387,7 @@
32387
32387
  },
32388
32388
  {
32389
32389
  "name": "migrateInlineTemplates",
32390
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
32390
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
32391
32391
  "ctype": "miscellaneous",
32392
32392
  "subtype": "function",
32393
32393
  "coverageIgnore": false,
@@ -32419,7 +32419,7 @@
32419
32419
  },
32420
32420
  {
32421
32421
  "name": "migrateInlineTemplates",
32422
- "file": "packages/core/schematics/migrate-eui-editor/index.ts",
32422
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
32423
32423
  "ctype": "miscellaneous",
32424
32424
  "subtype": "function",
32425
32425
  "coverageIgnore": false,
@@ -32451,7 +32451,7 @@
32451
32451
  },
32452
32452
  {
32453
32453
  "name": "migrateInlineTemplates",
32454
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
32454
+ "file": "packages/core/schematics/migrate-eui-editor/index.ts",
32455
32455
  "ctype": "miscellaneous",
32456
32456
  "subtype": "function",
32457
32457
  "coverageIgnore": false,
@@ -32483,7 +32483,7 @@
32483
32483
  },
32484
32484
  {
32485
32485
  "name": "migrateInlineTemplates",
32486
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
32486
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
32487
32487
  "ctype": "miscellaneous",
32488
32488
  "subtype": "function",
32489
32489
  "coverageIgnore": false,
@@ -32515,7 +32515,7 @@
32515
32515
  },
32516
32516
  {
32517
32517
  "name": "migrateInlineTemplates",
32518
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
32518
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
32519
32519
  "ctype": "miscellaneous",
32520
32520
  "subtype": "function",
32521
32521
  "coverageIgnore": false,
@@ -32547,7 +32547,7 @@
32547
32547
  },
32548
32548
  {
32549
32549
  "name": "migrateInlineTemplates",
32550
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
32550
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
32551
32551
  "ctype": "miscellaneous",
32552
32552
  "subtype": "function",
32553
32553
  "coverageIgnore": false,
@@ -32767,7 +32767,7 @@
32767
32767
  },
32768
32768
  {
32769
32769
  "name": "migrateTemplate",
32770
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
32770
+ "file": "packages/core/schematics/migrate-eui-alert/index.ts",
32771
32771
  "ctype": "miscellaneous",
32772
32772
  "subtype": "function",
32773
32773
  "coverageIgnore": false,
@@ -32799,7 +32799,7 @@
32799
32799
  },
32800
32800
  {
32801
32801
  "name": "migrateTemplate",
32802
- "file": "packages/core/schematics/migrate-eui-alert/index.ts",
32802
+ "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
32803
32803
  "ctype": "miscellaneous",
32804
32804
  "subtype": "function",
32805
32805
  "coverageIgnore": false,
@@ -32831,7 +32831,7 @@
32831
32831
  },
32832
32832
  {
32833
32833
  "name": "migrateTemplate",
32834
- "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
32834
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
32835
32835
  "ctype": "miscellaneous",
32836
32836
  "subtype": "function",
32837
32837
  "coverageIgnore": false,
@@ -32863,7 +32863,7 @@
32863
32863
  },
32864
32864
  {
32865
32865
  "name": "migrateTemplate",
32866
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
32866
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
32867
32867
  "ctype": "miscellaneous",
32868
32868
  "subtype": "function",
32869
32869
  "coverageIgnore": false,
@@ -32895,7 +32895,7 @@
32895
32895
  },
32896
32896
  {
32897
32897
  "name": "migrateTemplate",
32898
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
32898
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
32899
32899
  "ctype": "miscellaneous",
32900
32900
  "subtype": "function",
32901
32901
  "coverageIgnore": false,
@@ -32927,7 +32927,7 @@
32927
32927
  },
32928
32928
  {
32929
32929
  "name": "migrateTemplate",
32930
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
32930
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
32931
32931
  "ctype": "miscellaneous",
32932
32932
  "subtype": "function",
32933
32933
  "coverageIgnore": false,
@@ -32959,7 +32959,7 @@
32959
32959
  },
32960
32960
  {
32961
32961
  "name": "migrateTemplate",
32962
- "file": "packages/core/schematics/migrate-eui-editor/index.ts",
32962
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
32963
32963
  "ctype": "miscellaneous",
32964
32964
  "subtype": "function",
32965
32965
  "coverageIgnore": false,
@@ -32991,7 +32991,7 @@
32991
32991
  },
32992
32992
  {
32993
32993
  "name": "migrateTemplate",
32994
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
32994
+ "file": "packages/core/schematics/migrate-eui-editor/index.ts",
32995
32995
  "ctype": "miscellaneous",
32996
32996
  "subtype": "function",
32997
32997
  "coverageIgnore": false,
@@ -33023,7 +33023,7 @@
33023
33023
  },
33024
33024
  {
33025
33025
  "name": "migrateTemplate",
33026
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
33026
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
33027
33027
  "ctype": "miscellaneous",
33028
33028
  "subtype": "function",
33029
33029
  "coverageIgnore": false,
@@ -33055,7 +33055,7 @@
33055
33055
  },
33056
33056
  {
33057
33057
  "name": "migrateTemplate",
33058
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
33058
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
33059
33059
  "ctype": "miscellaneous",
33060
33060
  "subtype": "function",
33061
33061
  "coverageIgnore": false,
@@ -33087,7 +33087,7 @@
33087
33087
  },
33088
33088
  {
33089
33089
  "name": "migrateTemplate",
33090
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
33090
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
33091
33091
  "ctype": "miscellaneous",
33092
33092
  "subtype": "function",
33093
33093
  "coverageIgnore": false,
@@ -35301,7 +35301,7 @@
35301
35301
  },
35302
35302
  {
35303
35303
  "name": "unwrapExpression",
35304
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
35304
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
35305
35305
  "ctype": "miscellaneous",
35306
35306
  "subtype": "function",
35307
35307
  "coverageIgnore": false,
@@ -35331,7 +35331,7 @@
35331
35331
  },
35332
35332
  {
35333
35333
  "name": "unwrapExpression",
35334
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
35334
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
35335
35335
  "ctype": "miscellaneous",
35336
35336
  "subtype": "function",
35337
35337
  "coverageIgnore": false,
@@ -35421,7 +35421,7 @@
35421
35421
  },
35422
35422
  {
35423
35423
  "name": "unwrapExpression",
35424
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
35424
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
35425
35425
  "ctype": "miscellaneous",
35426
35426
  "subtype": "function",
35427
35427
  "coverageIgnore": false,
@@ -35451,7 +35451,7 @@
35451
35451
  },
35452
35452
  {
35453
35453
  "name": "unwrapExpression",
35454
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
35454
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
35455
35455
  "ctype": "miscellaneous",
35456
35456
  "subtype": "function",
35457
35457
  "coverageIgnore": false,
@@ -35481,7 +35481,7 @@
35481
35481
  },
35482
35482
  {
35483
35483
  "name": "unwrapExpression",
35484
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
35484
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
35485
35485
  "ctype": "miscellaneous",
35486
35486
  "subtype": "function",
35487
35487
  "coverageIgnore": false,
@@ -35944,7 +35944,7 @@
35944
35944
  },
35945
35945
  {
35946
35946
  "name": "visitDir",
35947
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
35947
+ "file": "packages/core/schematics/migrate-eui-alert/index.ts",
35948
35948
  "ctype": "miscellaneous",
35949
35949
  "subtype": "function",
35950
35950
  "coverageIgnore": false,
@@ -35989,7 +35989,7 @@
35989
35989
  },
35990
35990
  {
35991
35991
  "name": "visitDir",
35992
- "file": "packages/core/schematics/migrate-eui-alert/index.ts",
35992
+ "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
35993
35993
  "ctype": "miscellaneous",
35994
35994
  "subtype": "function",
35995
35995
  "coverageIgnore": false,
@@ -36034,7 +36034,7 @@
36034
36034
  },
36035
36035
  {
36036
36036
  "name": "visitDir",
36037
- "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
36037
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
36038
36038
  "ctype": "miscellaneous",
36039
36039
  "subtype": "function",
36040
36040
  "coverageIgnore": false,
@@ -36079,7 +36079,7 @@
36079
36079
  },
36080
36080
  {
36081
36081
  "name": "visitDir",
36082
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
36082
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
36083
36083
  "ctype": "miscellaneous",
36084
36084
  "subtype": "function",
36085
36085
  "coverageIgnore": false,
@@ -36124,7 +36124,7 @@
36124
36124
  },
36125
36125
  {
36126
36126
  "name": "visitDir",
36127
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
36127
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
36128
36128
  "ctype": "miscellaneous",
36129
36129
  "subtype": "function",
36130
36130
  "coverageIgnore": false,
@@ -36169,7 +36169,7 @@
36169
36169
  },
36170
36170
  {
36171
36171
  "name": "visitDir",
36172
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
36172
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
36173
36173
  "ctype": "miscellaneous",
36174
36174
  "subtype": "function",
36175
36175
  "coverageIgnore": false,
@@ -36214,7 +36214,7 @@
36214
36214
  },
36215
36215
  {
36216
36216
  "name": "visitDir",
36217
- "file": "packages/core/schematics/migrate-eui-editor/index.ts",
36217
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
36218
36218
  "ctype": "miscellaneous",
36219
36219
  "subtype": "function",
36220
36220
  "coverageIgnore": false,
@@ -36259,7 +36259,7 @@
36259
36259
  },
36260
36260
  {
36261
36261
  "name": "visitDir",
36262
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
36262
+ "file": "packages/core/schematics/migrate-eui-editor/index.ts",
36263
36263
  "ctype": "miscellaneous",
36264
36264
  "subtype": "function",
36265
36265
  "coverageIgnore": false,
@@ -36304,7 +36304,7 @@
36304
36304
  },
36305
36305
  {
36306
36306
  "name": "visitDir",
36307
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
36307
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
36308
36308
  "ctype": "miscellaneous",
36309
36309
  "subtype": "function",
36310
36310
  "coverageIgnore": false,
@@ -36349,7 +36349,7 @@
36349
36349
  },
36350
36350
  {
36351
36351
  "name": "visitDir",
36352
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
36352
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
36353
36353
  "ctype": "miscellaneous",
36354
36354
  "subtype": "function",
36355
36355
  "coverageIgnore": false,
@@ -36394,7 +36394,7 @@
36394
36394
  },
36395
36395
  {
36396
36396
  "name": "visitDir",
36397
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
36397
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
36398
36398
  "ctype": "miscellaneous",
36399
36399
  "subtype": "function",
36400
36400
  "coverageIgnore": false,
@@ -36844,7 +36844,7 @@
36844
36844
  },
36845
36845
  {
36846
36846
  "name": "visitNodes",
36847
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
36847
+ "file": "packages/core/schematics/migrate-eui-alert/index.ts",
36848
36848
  "ctype": "miscellaneous",
36849
36849
  "subtype": "function",
36850
36850
  "coverageIgnore": false,
@@ -36860,7 +36860,7 @@
36860
36860
  "deprecationMessage": ""
36861
36861
  },
36862
36862
  {
36863
- "name": "edits",
36863
+ "name": "removals",
36864
36864
  "deprecated": false,
36865
36865
  "deprecationMessage": ""
36866
36866
  }
@@ -36876,7 +36876,7 @@
36876
36876
  }
36877
36877
  },
36878
36878
  {
36879
- "name": "edits",
36879
+ "name": "removals",
36880
36880
  "deprecated": false,
36881
36881
  "deprecationMessage": "",
36882
36882
  "tagName": {
@@ -36887,7 +36887,7 @@
36887
36887
  },
36888
36888
  {
36889
36889
  "name": "visitNodes",
36890
- "file": "packages/core/schematics/migrate-eui-alert/index.ts",
36890
+ "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
36891
36891
  "ctype": "miscellaneous",
36892
36892
  "subtype": "function",
36893
36893
  "coverageIgnore": false,
@@ -36930,7 +36930,7 @@
36930
36930
  },
36931
36931
  {
36932
36932
  "name": "visitNodes",
36933
- "file": "packages/core/schematics/migrate-eui-avatar/index.ts",
36933
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
36934
36934
  "ctype": "miscellaneous",
36935
36935
  "subtype": "function",
36936
36936
  "coverageIgnore": false,
@@ -36946,7 +36946,7 @@
36946
36946
  "deprecationMessage": ""
36947
36947
  },
36948
36948
  {
36949
- "name": "removals",
36949
+ "name": "edits",
36950
36950
  "deprecated": false,
36951
36951
  "deprecationMessage": ""
36952
36952
  }
@@ -36962,7 +36962,7 @@
36962
36962
  }
36963
36963
  },
36964
36964
  {
36965
- "name": "removals",
36965
+ "name": "edits",
36966
36966
  "deprecated": false,
36967
36967
  "deprecationMessage": "",
36968
36968
  "tagName": {
@@ -36973,7 +36973,7 @@
36973
36973
  },
36974
36974
  {
36975
36975
  "name": "visitNodes",
36976
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
36976
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
36977
36977
  "ctype": "miscellaneous",
36978
36978
  "subtype": "function",
36979
36979
  "coverageIgnore": false,
@@ -37016,7 +37016,7 @@
37016
37016
  },
37017
37017
  {
37018
37018
  "name": "visitNodes",
37019
- "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
37019
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
37020
37020
  "ctype": "miscellaneous",
37021
37021
  "subtype": "function",
37022
37022
  "coverageIgnore": false,
@@ -37032,13 +37032,7 @@
37032
37032
  "deprecationMessage": ""
37033
37033
  },
37034
37034
  {
37035
- "name": "source",
37036
- "type": "string",
37037
- "deprecated": false,
37038
- "deprecationMessage": ""
37039
- },
37040
- {
37041
- "name": "edits",
37035
+ "name": "removals",
37042
37036
  "deprecated": false,
37043
37037
  "deprecationMessage": ""
37044
37038
  }
@@ -37054,16 +37048,7 @@
37054
37048
  }
37055
37049
  },
37056
37050
  {
37057
- "name": "source",
37058
- "type": "string",
37059
- "deprecated": false,
37060
- "deprecationMessage": "",
37061
- "tagName": {
37062
- "text": "param"
37063
- }
37064
- },
37065
- {
37066
- "name": "edits",
37051
+ "name": "removals",
37067
37052
  "deprecated": false,
37068
37053
  "deprecationMessage": "",
37069
37054
  "tagName": {
@@ -37074,7 +37059,7 @@
37074
37059
  },
37075
37060
  {
37076
37061
  "name": "visitNodes",
37077
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
37062
+ "file": "packages/core/schematics/migrate-eui-chip-list/index.ts",
37078
37063
  "ctype": "miscellaneous",
37079
37064
  "subtype": "function",
37080
37065
  "coverageIgnore": false,
@@ -37096,7 +37081,7 @@
37096
37081
  "deprecationMessage": ""
37097
37082
  },
37098
37083
  {
37099
- "name": "removals",
37084
+ "name": "edits",
37100
37085
  "deprecated": false,
37101
37086
  "deprecationMessage": ""
37102
37087
  }
@@ -37121,7 +37106,7 @@
37121
37106
  }
37122
37107
  },
37123
37108
  {
37124
- "name": "removals",
37109
+ "name": "edits",
37125
37110
  "deprecated": false,
37126
37111
  "deprecationMessage": "",
37127
37112
  "tagName": {
@@ -37132,7 +37117,7 @@
37132
37117
  },
37133
37118
  {
37134
37119
  "name": "visitNodes",
37135
- "file": "packages/core/schematics/migrate-eui-editor/index.ts",
37120
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
37136
37121
  "ctype": "miscellaneous",
37137
37122
  "subtype": "function",
37138
37123
  "coverageIgnore": false,
@@ -37148,7 +37133,13 @@
37148
37133
  "deprecationMessage": ""
37149
37134
  },
37150
37135
  {
37151
- "name": "edits",
37136
+ "name": "source",
37137
+ "type": "string",
37138
+ "deprecated": false,
37139
+ "deprecationMessage": ""
37140
+ },
37141
+ {
37142
+ "name": "removals",
37152
37143
  "deprecated": false,
37153
37144
  "deprecationMessage": ""
37154
37145
  }
@@ -37164,7 +37155,16 @@
37164
37155
  }
37165
37156
  },
37166
37157
  {
37167
- "name": "edits",
37158
+ "name": "source",
37159
+ "type": "string",
37160
+ "deprecated": false,
37161
+ "deprecationMessage": "",
37162
+ "tagName": {
37163
+ "text": "param"
37164
+ }
37165
+ },
37166
+ {
37167
+ "name": "removals",
37168
37168
  "deprecated": false,
37169
37169
  "deprecationMessage": "",
37170
37170
  "tagName": {
@@ -37175,7 +37175,7 @@
37175
37175
  },
37176
37176
  {
37177
37177
  "name": "visitNodes",
37178
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
37178
+ "file": "packages/core/schematics/migrate-eui-editor/index.ts",
37179
37179
  "ctype": "miscellaneous",
37180
37180
  "subtype": "function",
37181
37181
  "coverageIgnore": false,
@@ -37218,7 +37218,7 @@
37218
37218
  },
37219
37219
  {
37220
37220
  "name": "visitNodes",
37221
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
37221
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
37222
37222
  "ctype": "miscellaneous",
37223
37223
  "subtype": "function",
37224
37224
  "coverageIgnore": false,
@@ -37234,7 +37234,7 @@
37234
37234
  "deprecationMessage": ""
37235
37235
  },
37236
37236
  {
37237
- "name": "removals",
37237
+ "name": "edits",
37238
37238
  "deprecated": false,
37239
37239
  "deprecationMessage": ""
37240
37240
  }
@@ -37250,7 +37250,7 @@
37250
37250
  }
37251
37251
  },
37252
37252
  {
37253
- "name": "removals",
37253
+ "name": "edits",
37254
37254
  "deprecated": false,
37255
37255
  "deprecationMessage": "",
37256
37256
  "tagName": {
@@ -37261,7 +37261,7 @@
37261
37261
  },
37262
37262
  {
37263
37263
  "name": "visitNodes",
37264
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
37264
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
37265
37265
  "ctype": "miscellaneous",
37266
37266
  "subtype": "function",
37267
37267
  "coverageIgnore": false,
@@ -37304,7 +37304,7 @@
37304
37304
  },
37305
37305
  {
37306
37306
  "name": "visitNodes",
37307
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
37307
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
37308
37308
  "ctype": "miscellaneous",
37309
37309
  "subtype": "function",
37310
37310
  "coverageIgnore": false,
@@ -39124,93 +39124,93 @@
39124
39124
  "defaultValue": "'onEditorChanged'"
39125
39125
  }
39126
39126
  ],
39127
- "packages/core/schematics/migrate-eui-icon-svg/index.ts": [
39127
+ "packages/core/schematics/migrate-eui-fieldset/index.ts": [
39128
39128
  {
39129
39129
  "name": "COMPONENT_TAG",
39130
39130
  "ctype": "miscellaneous",
39131
39131
  "subtype": "variable",
39132
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39132
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39133
39133
  "coverageIgnore": false,
39134
39134
  "deprecated": false,
39135
39135
  "deprecationMessage": "",
39136
39136
  "type": "string",
39137
- "defaultValue": "'eui-icon-svg'"
39137
+ "defaultValue": "'eui-fieldset'"
39138
39138
  },
39139
39139
  {
39140
- "name": "INPUT_RENAMES",
39140
+ "name": "NEW_NAME",
39141
39141
  "ctype": "miscellaneous",
39142
39142
  "subtype": "variable",
39143
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39143
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39144
39144
  "coverageIgnore": false,
39145
39145
  "deprecated": false,
39146
39146
  "deprecationMessage": "",
39147
- "type": "unknown",
39148
- "defaultValue": "new Map([\n ['variant', 'fillColor'],\n ['aria-label', 'ariaLabel'],\n])"
39147
+ "type": "string",
39148
+ "defaultValue": "'iconSvgName'"
39149
39149
  },
39150
39150
  {
39151
- "name": "TS_PROPERTY_RENAMES",
39151
+ "name": "OLD_NAME",
39152
39152
  "ctype": "miscellaneous",
39153
39153
  "subtype": "variable",
39154
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39154
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39155
39155
  "coverageIgnore": false,
39156
39156
  "deprecated": false,
39157
39157
  "deprecationMessage": "",
39158
- "type": "unknown",
39159
- "defaultValue": "new Map([\n ['variant', 'fillColor'],\n])"
39158
+ "type": "string",
39159
+ "defaultValue": "'iconSvgType'"
39160
39160
  }
39161
39161
  ],
39162
- "packages/core/schematics/migrate-eui-icon-toggle/index.ts": [
39162
+ "packages/core/schematics/migrate-eui-icon-svg/index.ts": [
39163
39163
  {
39164
39164
  "name": "COMPONENT_TAG",
39165
39165
  "ctype": "miscellaneous",
39166
39166
  "subtype": "variable",
39167
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39167
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39168
39168
  "coverageIgnore": false,
39169
39169
  "deprecated": false,
39170
39170
  "deprecationMessage": "",
39171
39171
  "type": "string",
39172
- "defaultValue": "'eui-icon-toggle'"
39172
+ "defaultValue": "'eui-icon-svg'"
39173
39173
  },
39174
39174
  {
39175
- "name": "NEW_NAME",
39175
+ "name": "INPUT_RENAMES",
39176
39176
  "ctype": "miscellaneous",
39177
39177
  "subtype": "variable",
39178
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39178
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39179
39179
  "coverageIgnore": false,
39180
39180
  "deprecated": false,
39181
39181
  "deprecationMessage": "",
39182
- "type": "string",
39183
- "defaultValue": "'iconSvgName'"
39182
+ "type": "unknown",
39183
+ "defaultValue": "new Map([\n ['variant', 'fillColor'],\n ['aria-label', 'ariaLabel'],\n])"
39184
39184
  },
39185
39185
  {
39186
- "name": "OLD_NAME",
39186
+ "name": "TS_PROPERTY_RENAMES",
39187
39187
  "ctype": "miscellaneous",
39188
39188
  "subtype": "variable",
39189
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39189
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
39190
39190
  "coverageIgnore": false,
39191
39191
  "deprecated": false,
39192
39192
  "deprecationMessage": "",
39193
- "type": "string",
39194
- "defaultValue": "'iconSet'"
39193
+ "type": "unknown",
39194
+ "defaultValue": "new Map([\n ['variant', 'fillColor'],\n])"
39195
39195
  }
39196
39196
  ],
39197
- "packages/core/schematics/migrate-eui-fieldset/index.ts": [
39197
+ "packages/core/schematics/migrate-eui-icon-toggle/index.ts": [
39198
39198
  {
39199
39199
  "name": "COMPONENT_TAG",
39200
39200
  "ctype": "miscellaneous",
39201
39201
  "subtype": "variable",
39202
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39202
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39203
39203
  "coverageIgnore": false,
39204
39204
  "deprecated": false,
39205
39205
  "deprecationMessage": "",
39206
39206
  "type": "string",
39207
- "defaultValue": "'eui-fieldset'"
39207
+ "defaultValue": "'eui-icon-toggle'"
39208
39208
  },
39209
39209
  {
39210
39210
  "name": "NEW_NAME",
39211
39211
  "ctype": "miscellaneous",
39212
39212
  "subtype": "variable",
39213
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39213
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39214
39214
  "coverageIgnore": false,
39215
39215
  "deprecated": false,
39216
39216
  "deprecationMessage": "",
@@ -39221,12 +39221,12 @@
39221
39221
  "name": "OLD_NAME",
39222
39222
  "ctype": "miscellaneous",
39223
39223
  "subtype": "variable",
39224
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
39224
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
39225
39225
  "coverageIgnore": false,
39226
39226
  "deprecated": false,
39227
39227
  "deprecationMessage": "",
39228
39228
  "type": "string",
39229
- "defaultValue": "'iconSvgType'"
39229
+ "defaultValue": "'iconSet'"
39230
39230
  }
39231
39231
  ],
39232
39232
  "packages/core/src/lib/helpers/event-helpers.ts": [
@@ -44731,10 +44731,10 @@
44731
44731
  ]
44732
44732
  }
44733
44733
  ],
44734
- "packages/core/schematics/migrate-eui-accent/index.ts": [
44734
+ "packages/core/schematics/migrate-eui-button/index.ts": [
44735
44735
  {
44736
44736
  "name": "applyEdits",
44737
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44737
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44738
44738
  "ctype": "miscellaneous",
44739
44739
  "subtype": "function",
44740
44740
  "coverageIgnore": false,
@@ -44779,7 +44779,7 @@
44779
44779
  },
44780
44780
  {
44781
44781
  "name": "collectRenames",
44782
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44782
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44783
44783
  "ctype": "miscellaneous",
44784
44784
  "subtype": "function",
44785
44785
  "coverageIgnore": false,
@@ -44823,8 +44823,8 @@
44823
44823
  ]
44824
44824
  },
44825
44825
  {
44826
- "name": "isComponentMetadataProperty",
44827
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44826
+ "name": "hasEuiButtonAttribute",
44827
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44828
44828
  "ctype": "miscellaneous",
44829
44829
  "subtype": "function",
44830
44830
  "coverageIgnore": false,
@@ -44832,10 +44832,11 @@
44832
44832
  "deprecationMessage": "",
44833
44833
  "rawdescription": "",
44834
44834
  "description": "",
44835
- "displayName": "isComponentMetadataProperty",
44835
+ "displayName": "hasEuiButtonAttribute",
44836
44836
  "args": [
44837
44837
  {
44838
- "name": "node",
44838
+ "name": "element",
44839
+ "type": "TmplAstElement",
44839
44840
  "deprecated": false,
44840
44841
  "deprecationMessage": ""
44841
44842
  }
@@ -44843,7 +44844,8 @@
44843
44844
  "returnType": "boolean",
44844
44845
  "jsdoctags": [
44845
44846
  {
44846
- "name": "node",
44847
+ "name": "element",
44848
+ "type": "TmplAstElement",
44847
44849
  "deprecated": false,
44848
44850
  "deprecationMessage": "",
44849
44851
  "tagName": {
@@ -44853,8 +44855,8 @@
44853
44855
  ]
44854
44856
  },
44855
44857
  {
44856
- "name": "isEuiElement",
44857
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44858
+ "name": "isComponentMetadataProperty",
44859
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44858
44860
  "ctype": "miscellaneous",
44859
44861
  "subtype": "function",
44860
44862
  "coverageIgnore": false,
@@ -44862,11 +44864,10 @@
44862
44864
  "deprecationMessage": "",
44863
44865
  "rawdescription": "",
44864
44866
  "description": "",
44865
- "displayName": "isEuiElement",
44867
+ "displayName": "isComponentMetadataProperty",
44866
44868
  "args": [
44867
44869
  {
44868
- "name": "element",
44869
- "type": "TmplAstElement",
44870
+ "name": "node",
44870
44871
  "deprecated": false,
44871
44872
  "deprecationMessage": ""
44872
44873
  }
@@ -44874,8 +44875,7 @@
44874
44875
  "returnType": "boolean",
44875
44876
  "jsdoctags": [
44876
44877
  {
44877
- "name": "element",
44878
- "type": "TmplAstElement",
44878
+ "name": "node",
44879
44879
  "deprecated": false,
44880
44880
  "deprecationMessage": "",
44881
44881
  "tagName": {
@@ -44886,7 +44886,7 @@
44886
44886
  },
44887
44887
  {
44888
44888
  "name": "isTemplateProperty",
44889
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44889
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44890
44890
  "ctype": "miscellaneous",
44891
44891
  "subtype": "function",
44892
44892
  "coverageIgnore": false,
@@ -44915,8 +44915,8 @@
44915
44915
  ]
44916
44916
  },
44917
44917
  {
44918
- "name": "migrateEuiAccent",
44919
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44918
+ "name": "migrateEuiButton",
44919
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44920
44920
  "ctype": "miscellaneous",
44921
44921
  "subtype": "function",
44922
44922
  "coverageIgnore": false,
@@ -44924,7 +44924,7 @@
44924
44924
  "deprecationMessage": "",
44925
44925
  "rawdescription": "",
44926
44926
  "description": "",
44927
- "displayName": "migrateEuiAccent",
44927
+ "displayName": "migrateEuiButton",
44928
44928
  "args": [
44929
44929
  {
44930
44930
  "name": "options",
@@ -44950,7 +44950,7 @@
44950
44950
  },
44951
44951
  {
44952
44952
  "name": "migrateInlineTemplates",
44953
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44953
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44954
44954
  "ctype": "miscellaneous",
44955
44955
  "subtype": "function",
44956
44956
  "coverageIgnore": false,
@@ -44982,7 +44982,7 @@
44982
44982
  },
44983
44983
  {
44984
44984
  "name": "migrateTemplate",
44985
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
44985
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
44986
44986
  "ctype": "miscellaneous",
44987
44987
  "subtype": "function",
44988
44988
  "coverageIgnore": false,
@@ -45012,41 +45012,9 @@
45012
45012
  }
45013
45013
  ]
45014
45014
  },
45015
- {
45016
- "name": "renameTsPropertyAccesses",
45017
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45018
- "ctype": "miscellaneous",
45019
- "subtype": "function",
45020
- "coverageIgnore": false,
45021
- "deprecated": false,
45022
- "deprecationMessage": "",
45023
- "rawdescription": "",
45024
- "description": "",
45025
- "displayName": "renameTsPropertyAccesses",
45026
- "args": [
45027
- {
45028
- "name": "source",
45029
- "type": "string",
45030
- "deprecated": false,
45031
- "deprecationMessage": ""
45032
- }
45033
- ],
45034
- "returnType": "string",
45035
- "jsdoctags": [
45036
- {
45037
- "name": "source",
45038
- "type": "string",
45039
- "deprecated": false,
45040
- "deprecationMessage": "",
45041
- "tagName": {
45042
- "text": "param"
45043
- }
45044
- }
45045
- ]
45046
- },
45047
45015
  {
45048
45016
  "name": "unwrapExpression",
45049
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45017
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
45050
45018
  "ctype": "miscellaneous",
45051
45019
  "subtype": "function",
45052
45020
  "coverageIgnore": false,
@@ -45076,7 +45044,7 @@
45076
45044
  },
45077
45045
  {
45078
45046
  "name": "visitDir",
45079
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45047
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
45080
45048
  "ctype": "miscellaneous",
45081
45049
  "subtype": "function",
45082
45050
  "coverageIgnore": false,
@@ -45121,7 +45089,7 @@
45121
45089
  },
45122
45090
  {
45123
45091
  "name": "visitNodes",
45124
- "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45092
+ "file": "packages/core/schematics/migrate-eui-button/index.ts",
45125
45093
  "ctype": "miscellaneous",
45126
45094
  "subtype": "function",
45127
45095
  "coverageIgnore": false,
@@ -45163,10 +45131,10 @@
45163
45131
  ]
45164
45132
  }
45165
45133
  ],
45166
- "packages/core/schematics/migrate-eui-button/index.ts": [
45134
+ "packages/core/schematics/migrate-eui-accent/index.ts": [
45167
45135
  {
45168
45136
  "name": "applyEdits",
45169
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45137
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45170
45138
  "ctype": "miscellaneous",
45171
45139
  "subtype": "function",
45172
45140
  "coverageIgnore": false,
@@ -45211,7 +45179,7 @@
45211
45179
  },
45212
45180
  {
45213
45181
  "name": "collectRenames",
45214
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45182
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45215
45183
  "ctype": "miscellaneous",
45216
45184
  "subtype": "function",
45217
45185
  "coverageIgnore": false,
@@ -45255,8 +45223,8 @@
45255
45223
  ]
45256
45224
  },
45257
45225
  {
45258
- "name": "hasEuiButtonAttribute",
45259
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45226
+ "name": "isComponentMetadataProperty",
45227
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45260
45228
  "ctype": "miscellaneous",
45261
45229
  "subtype": "function",
45262
45230
  "coverageIgnore": false,
@@ -45264,11 +45232,10 @@
45264
45232
  "deprecationMessage": "",
45265
45233
  "rawdescription": "",
45266
45234
  "description": "",
45267
- "displayName": "hasEuiButtonAttribute",
45235
+ "displayName": "isComponentMetadataProperty",
45268
45236
  "args": [
45269
45237
  {
45270
- "name": "element",
45271
- "type": "TmplAstElement",
45238
+ "name": "node",
45272
45239
  "deprecated": false,
45273
45240
  "deprecationMessage": ""
45274
45241
  }
@@ -45276,8 +45243,7 @@
45276
45243
  "returnType": "boolean",
45277
45244
  "jsdoctags": [
45278
45245
  {
45279
- "name": "element",
45280
- "type": "TmplAstElement",
45246
+ "name": "node",
45281
45247
  "deprecated": false,
45282
45248
  "deprecationMessage": "",
45283
45249
  "tagName": {
@@ -45287,8 +45253,8 @@
45287
45253
  ]
45288
45254
  },
45289
45255
  {
45290
- "name": "isComponentMetadataProperty",
45291
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45256
+ "name": "isEuiElement",
45257
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45292
45258
  "ctype": "miscellaneous",
45293
45259
  "subtype": "function",
45294
45260
  "coverageIgnore": false,
@@ -45296,10 +45262,11 @@
45296
45262
  "deprecationMessage": "",
45297
45263
  "rawdescription": "",
45298
45264
  "description": "",
45299
- "displayName": "isComponentMetadataProperty",
45265
+ "displayName": "isEuiElement",
45300
45266
  "args": [
45301
45267
  {
45302
- "name": "node",
45268
+ "name": "element",
45269
+ "type": "TmplAstElement",
45303
45270
  "deprecated": false,
45304
45271
  "deprecationMessage": ""
45305
45272
  }
@@ -45307,7 +45274,8 @@
45307
45274
  "returnType": "boolean",
45308
45275
  "jsdoctags": [
45309
45276
  {
45310
- "name": "node",
45277
+ "name": "element",
45278
+ "type": "TmplAstElement",
45311
45279
  "deprecated": false,
45312
45280
  "deprecationMessage": "",
45313
45281
  "tagName": {
@@ -45318,7 +45286,7 @@
45318
45286
  },
45319
45287
  {
45320
45288
  "name": "isTemplateProperty",
45321
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45289
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45322
45290
  "ctype": "miscellaneous",
45323
45291
  "subtype": "function",
45324
45292
  "coverageIgnore": false,
@@ -45347,8 +45315,8 @@
45347
45315
  ]
45348
45316
  },
45349
45317
  {
45350
- "name": "migrateEuiButton",
45351
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45318
+ "name": "migrateEuiAccent",
45319
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45352
45320
  "ctype": "miscellaneous",
45353
45321
  "subtype": "function",
45354
45322
  "coverageIgnore": false,
@@ -45356,7 +45324,7 @@
45356
45324
  "deprecationMessage": "",
45357
45325
  "rawdescription": "",
45358
45326
  "description": "",
45359
- "displayName": "migrateEuiButton",
45327
+ "displayName": "migrateEuiAccent",
45360
45328
  "args": [
45361
45329
  {
45362
45330
  "name": "options",
@@ -45382,7 +45350,7 @@
45382
45350
  },
45383
45351
  {
45384
45352
  "name": "migrateInlineTemplates",
45385
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45353
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45386
45354
  "ctype": "miscellaneous",
45387
45355
  "subtype": "function",
45388
45356
  "coverageIgnore": false,
@@ -45414,7 +45382,7 @@
45414
45382
  },
45415
45383
  {
45416
45384
  "name": "migrateTemplate",
45417
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45385
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45418
45386
  "ctype": "miscellaneous",
45419
45387
  "subtype": "function",
45420
45388
  "coverageIgnore": false,
@@ -45444,9 +45412,41 @@
45444
45412
  }
45445
45413
  ]
45446
45414
  },
45415
+ {
45416
+ "name": "renameTsPropertyAccesses",
45417
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45418
+ "ctype": "miscellaneous",
45419
+ "subtype": "function",
45420
+ "coverageIgnore": false,
45421
+ "deprecated": false,
45422
+ "deprecationMessage": "",
45423
+ "rawdescription": "",
45424
+ "description": "",
45425
+ "displayName": "renameTsPropertyAccesses",
45426
+ "args": [
45427
+ {
45428
+ "name": "source",
45429
+ "type": "string",
45430
+ "deprecated": false,
45431
+ "deprecationMessage": ""
45432
+ }
45433
+ ],
45434
+ "returnType": "string",
45435
+ "jsdoctags": [
45436
+ {
45437
+ "name": "source",
45438
+ "type": "string",
45439
+ "deprecated": false,
45440
+ "deprecationMessage": "",
45441
+ "tagName": {
45442
+ "text": "param"
45443
+ }
45444
+ }
45445
+ ]
45446
+ },
45447
45447
  {
45448
45448
  "name": "unwrapExpression",
45449
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45449
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45450
45450
  "ctype": "miscellaneous",
45451
45451
  "subtype": "function",
45452
45452
  "coverageIgnore": false,
@@ -45476,7 +45476,7 @@
45476
45476
  },
45477
45477
  {
45478
45478
  "name": "visitDir",
45479
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45479
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45480
45480
  "ctype": "miscellaneous",
45481
45481
  "subtype": "function",
45482
45482
  "coverageIgnore": false,
@@ -45521,7 +45521,7 @@
45521
45521
  },
45522
45522
  {
45523
45523
  "name": "visitNodes",
45524
- "file": "packages/core/schematics/migrate-eui-button/index.ts",
45524
+ "file": "packages/core/schematics/migrate-eui-accent/index.ts",
45525
45525
  "ctype": "miscellaneous",
45526
45526
  "subtype": "function",
45527
45527
  "coverageIgnore": false,
@@ -45993,10 +45993,10 @@
45993
45993
  ]
45994
45994
  }
45995
45995
  ],
45996
- "packages/core/schematics/migrate-eui-icon-svg/index.ts": [
45996
+ "packages/core/schematics/migrate-eui-fieldset/index.ts": [
45997
45997
  {
45998
45998
  "name": "applyEdits",
45999
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
45999
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46000
46000
  "ctype": "miscellaneous",
46001
46001
  "subtype": "function",
46002
46002
  "coverageIgnore": false,
@@ -46041,7 +46041,7 @@
46041
46041
  },
46042
46042
  {
46043
46043
  "name": "collectRenames",
46044
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46044
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46045
46045
  "ctype": "miscellaneous",
46046
46046
  "subtype": "function",
46047
46047
  "coverageIgnore": false,
@@ -46086,7 +46086,7 @@
46086
46086
  },
46087
46087
  {
46088
46088
  "name": "isComponentMetadataProperty",
46089
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46089
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46090
46090
  "ctype": "miscellaneous",
46091
46091
  "subtype": "function",
46092
46092
  "coverageIgnore": false,
@@ -46116,7 +46116,7 @@
46116
46116
  },
46117
46117
  {
46118
46118
  "name": "isTemplateProperty",
46119
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46119
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46120
46120
  "ctype": "miscellaneous",
46121
46121
  "subtype": "function",
46122
46122
  "coverageIgnore": false,
@@ -46145,8 +46145,8 @@
46145
46145
  ]
46146
46146
  },
46147
46147
  {
46148
- "name": "migrateEuiIconSvg",
46149
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46148
+ "name": "migrateEuiFieldset",
46149
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46150
46150
  "ctype": "miscellaneous",
46151
46151
  "subtype": "function",
46152
46152
  "coverageIgnore": false,
@@ -46154,7 +46154,7 @@
46154
46154
  "deprecationMessage": "",
46155
46155
  "rawdescription": "",
46156
46156
  "description": "",
46157
- "displayName": "migrateEuiIconSvg",
46157
+ "displayName": "migrateEuiFieldset",
46158
46158
  "args": [
46159
46159
  {
46160
46160
  "name": "options",
@@ -46180,7 +46180,7 @@
46180
46180
  },
46181
46181
  {
46182
46182
  "name": "migrateInlineTemplates",
46183
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46183
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46184
46184
  "ctype": "miscellaneous",
46185
46185
  "subtype": "function",
46186
46186
  "coverageIgnore": false,
@@ -46212,7 +46212,7 @@
46212
46212
  },
46213
46213
  {
46214
46214
  "name": "migrateTemplate",
46215
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46215
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46216
46216
  "ctype": "miscellaneous",
46217
46217
  "subtype": "function",
46218
46218
  "coverageIgnore": false,
@@ -46242,41 +46242,9 @@
46242
46242
  }
46243
46243
  ]
46244
46244
  },
46245
- {
46246
- "name": "renameTsPropertyAccesses",
46247
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46248
- "ctype": "miscellaneous",
46249
- "subtype": "function",
46250
- "coverageIgnore": false,
46251
- "deprecated": false,
46252
- "deprecationMessage": "",
46253
- "rawdescription": "",
46254
- "description": "",
46255
- "displayName": "renameTsPropertyAccesses",
46256
- "args": [
46257
- {
46258
- "name": "source",
46259
- "type": "string",
46260
- "deprecated": false,
46261
- "deprecationMessage": ""
46262
- }
46263
- ],
46264
- "returnType": "string",
46265
- "jsdoctags": [
46266
- {
46267
- "name": "source",
46268
- "type": "string",
46269
- "deprecated": false,
46270
- "deprecationMessage": "",
46271
- "tagName": {
46272
- "text": "param"
46273
- }
46274
- }
46275
- ]
46276
- },
46277
46245
  {
46278
46246
  "name": "unwrapExpression",
46279
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46247
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46280
46248
  "ctype": "miscellaneous",
46281
46249
  "subtype": "function",
46282
46250
  "coverageIgnore": false,
@@ -46306,7 +46274,7 @@
46306
46274
  },
46307
46275
  {
46308
46276
  "name": "visitDir",
46309
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46277
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46310
46278
  "ctype": "miscellaneous",
46311
46279
  "subtype": "function",
46312
46280
  "coverageIgnore": false,
@@ -46351,7 +46319,7 @@
46351
46319
  },
46352
46320
  {
46353
46321
  "name": "visitNodes",
46354
- "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46322
+ "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46355
46323
  "ctype": "miscellaneous",
46356
46324
  "subtype": "function",
46357
46325
  "coverageIgnore": false,
@@ -46393,10 +46361,10 @@
46393
46361
  ]
46394
46362
  }
46395
46363
  ],
46396
- "packages/core/schematics/migrate-eui-icon-toggle/index.ts": [
46364
+ "packages/core/schematics/migrate-eui-icon-svg/index.ts": [
46397
46365
  {
46398
46366
  "name": "applyEdits",
46399
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46367
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46400
46368
  "ctype": "miscellaneous",
46401
46369
  "subtype": "function",
46402
46370
  "coverageIgnore": false,
@@ -46441,7 +46409,7 @@
46441
46409
  },
46442
46410
  {
46443
46411
  "name": "collectRenames",
46444
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46412
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46445
46413
  "ctype": "miscellaneous",
46446
46414
  "subtype": "function",
46447
46415
  "coverageIgnore": false,
@@ -46486,7 +46454,7 @@
46486
46454
  },
46487
46455
  {
46488
46456
  "name": "isComponentMetadataProperty",
46489
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46457
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46490
46458
  "ctype": "miscellaneous",
46491
46459
  "subtype": "function",
46492
46460
  "coverageIgnore": false,
@@ -46516,7 +46484,7 @@
46516
46484
  },
46517
46485
  {
46518
46486
  "name": "isTemplateProperty",
46519
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46487
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46520
46488
  "ctype": "miscellaneous",
46521
46489
  "subtype": "function",
46522
46490
  "coverageIgnore": false,
@@ -46545,8 +46513,8 @@
46545
46513
  ]
46546
46514
  },
46547
46515
  {
46548
- "name": "migrateEuiIconToggle",
46549
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46516
+ "name": "migrateEuiIconSvg",
46517
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46550
46518
  "ctype": "miscellaneous",
46551
46519
  "subtype": "function",
46552
46520
  "coverageIgnore": false,
@@ -46554,7 +46522,7 @@
46554
46522
  "deprecationMessage": "",
46555
46523
  "rawdescription": "",
46556
46524
  "description": "",
46557
- "displayName": "migrateEuiIconToggle",
46525
+ "displayName": "migrateEuiIconSvg",
46558
46526
  "args": [
46559
46527
  {
46560
46528
  "name": "options",
@@ -46580,7 +46548,7 @@
46580
46548
  },
46581
46549
  {
46582
46550
  "name": "migrateInlineTemplates",
46583
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46551
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46584
46552
  "ctype": "miscellaneous",
46585
46553
  "subtype": "function",
46586
46554
  "coverageIgnore": false,
@@ -46612,7 +46580,7 @@
46612
46580
  },
46613
46581
  {
46614
46582
  "name": "migrateTemplate",
46615
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46583
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46616
46584
  "ctype": "miscellaneous",
46617
46585
  "subtype": "function",
46618
46586
  "coverageIgnore": false,
@@ -46644,7 +46612,7 @@
46644
46612
  },
46645
46613
  {
46646
46614
  "name": "renameTsPropertyAccesses",
46647
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46615
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46648
46616
  "ctype": "miscellaneous",
46649
46617
  "subtype": "function",
46650
46618
  "coverageIgnore": false,
@@ -46676,7 +46644,7 @@
46676
46644
  },
46677
46645
  {
46678
46646
  "name": "unwrapExpression",
46679
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46647
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46680
46648
  "ctype": "miscellaneous",
46681
46649
  "subtype": "function",
46682
46650
  "coverageIgnore": false,
@@ -46706,7 +46674,7 @@
46706
46674
  },
46707
46675
  {
46708
46676
  "name": "visitDir",
46709
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46677
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46710
46678
  "ctype": "miscellaneous",
46711
46679
  "subtype": "function",
46712
46680
  "coverageIgnore": false,
@@ -46751,7 +46719,7 @@
46751
46719
  },
46752
46720
  {
46753
46721
  "name": "visitNodes",
46754
- "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46722
+ "file": "packages/core/schematics/migrate-eui-icon-svg/index.ts",
46755
46723
  "ctype": "miscellaneous",
46756
46724
  "subtype": "function",
46757
46725
  "coverageIgnore": false,
@@ -46793,10 +46761,10 @@
46793
46761
  ]
46794
46762
  }
46795
46763
  ],
46796
- "packages/core/schematics/migrate-eui-fieldset/index.ts": [
46764
+ "packages/core/schematics/migrate-eui-icon-toggle/index.ts": [
46797
46765
  {
46798
46766
  "name": "applyEdits",
46799
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46767
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46800
46768
  "ctype": "miscellaneous",
46801
46769
  "subtype": "function",
46802
46770
  "coverageIgnore": false,
@@ -46841,7 +46809,7 @@
46841
46809
  },
46842
46810
  {
46843
46811
  "name": "collectRenames",
46844
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46812
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46845
46813
  "ctype": "miscellaneous",
46846
46814
  "subtype": "function",
46847
46815
  "coverageIgnore": false,
@@ -46886,7 +46854,7 @@
46886
46854
  },
46887
46855
  {
46888
46856
  "name": "isComponentMetadataProperty",
46889
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46857
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46890
46858
  "ctype": "miscellaneous",
46891
46859
  "subtype": "function",
46892
46860
  "coverageIgnore": false,
@@ -46916,7 +46884,7 @@
46916
46884
  },
46917
46885
  {
46918
46886
  "name": "isTemplateProperty",
46919
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46887
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46920
46888
  "ctype": "miscellaneous",
46921
46889
  "subtype": "function",
46922
46890
  "coverageIgnore": false,
@@ -46945,8 +46913,8 @@
46945
46913
  ]
46946
46914
  },
46947
46915
  {
46948
- "name": "migrateEuiFieldset",
46949
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46916
+ "name": "migrateEuiIconToggle",
46917
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46950
46918
  "ctype": "miscellaneous",
46951
46919
  "subtype": "function",
46952
46920
  "coverageIgnore": false,
@@ -46954,7 +46922,7 @@
46954
46922
  "deprecationMessage": "",
46955
46923
  "rawdescription": "",
46956
46924
  "description": "",
46957
- "displayName": "migrateEuiFieldset",
46925
+ "displayName": "migrateEuiIconToggle",
46958
46926
  "args": [
46959
46927
  {
46960
46928
  "name": "options",
@@ -46980,7 +46948,7 @@
46980
46948
  },
46981
46949
  {
46982
46950
  "name": "migrateInlineTemplates",
46983
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46951
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
46984
46952
  "ctype": "miscellaneous",
46985
46953
  "subtype": "function",
46986
46954
  "coverageIgnore": false,
@@ -47012,7 +46980,7 @@
47012
46980
  },
47013
46981
  {
47014
46982
  "name": "migrateTemplate",
47015
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
46983
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
47016
46984
  "ctype": "miscellaneous",
47017
46985
  "subtype": "function",
47018
46986
  "coverageIgnore": false,
@@ -47042,9 +47010,41 @@
47042
47010
  }
47043
47011
  ]
47044
47012
  },
47013
+ {
47014
+ "name": "renameTsPropertyAccesses",
47015
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
47016
+ "ctype": "miscellaneous",
47017
+ "subtype": "function",
47018
+ "coverageIgnore": false,
47019
+ "deprecated": false,
47020
+ "deprecationMessage": "",
47021
+ "rawdescription": "",
47022
+ "description": "",
47023
+ "displayName": "renameTsPropertyAccesses",
47024
+ "args": [
47025
+ {
47026
+ "name": "source",
47027
+ "type": "string",
47028
+ "deprecated": false,
47029
+ "deprecationMessage": ""
47030
+ }
47031
+ ],
47032
+ "returnType": "string",
47033
+ "jsdoctags": [
47034
+ {
47035
+ "name": "source",
47036
+ "type": "string",
47037
+ "deprecated": false,
47038
+ "deprecationMessage": "",
47039
+ "tagName": {
47040
+ "text": "param"
47041
+ }
47042
+ }
47043
+ ]
47044
+ },
47045
47045
  {
47046
47046
  "name": "unwrapExpression",
47047
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
47047
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
47048
47048
  "ctype": "miscellaneous",
47049
47049
  "subtype": "function",
47050
47050
  "coverageIgnore": false,
@@ -47074,7 +47074,7 @@
47074
47074
  },
47075
47075
  {
47076
47076
  "name": "visitDir",
47077
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
47077
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
47078
47078
  "ctype": "miscellaneous",
47079
47079
  "subtype": "function",
47080
47080
  "coverageIgnore": false,
@@ -47119,7 +47119,7 @@
47119
47119
  },
47120
47120
  {
47121
47121
  "name": "visitNodes",
47122
- "file": "packages/core/schematics/migrate-eui-fieldset/index.ts",
47122
+ "file": "packages/core/schematics/migrate-eui-icon-toggle/index.ts",
47123
47123
  "ctype": "miscellaneous",
47124
47124
  "subtype": "function",
47125
47125
  "coverageIgnore": false,
@@ -50777,10 +50777,10 @@
50777
50777
  ]
50778
50778
  }
50779
50779
  ],
50780
- "packages/core/schematics/migrate-eui-discussion-thread/index.ts": [
50780
+ "packages/core/schematics/migrate-eui-chip/index.ts": [
50781
50781
  {
50782
50782
  "name": "collectRemovals",
50783
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
50783
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50784
50784
  "ctype": "miscellaneous",
50785
50785
  "subtype": "function",
50786
50786
  "coverageIgnore": false,
@@ -50796,12 +50796,6 @@
50796
50796
  "deprecated": false,
50797
50797
  "deprecationMessage": ""
50798
50798
  },
50799
- {
50800
- "name": "source",
50801
- "type": "string",
50802
- "deprecated": false,
50803
- "deprecationMessage": ""
50804
- },
50805
50799
  {
50806
50800
  "name": "removals",
50807
50801
  "deprecated": false,
@@ -50820,16 +50814,37 @@
50820
50814
  }
50821
50815
  },
50822
50816
  {
50823
- "name": "source",
50824
- "type": "string",
50817
+ "name": "removals",
50825
50818
  "deprecated": false,
50826
50819
  "deprecationMessage": "",
50827
50820
  "tagName": {
50828
50821
  "text": "param"
50829
50822
  }
50830
- },
50823
+ }
50824
+ ]
50825
+ },
50826
+ {
50827
+ "name": "getAttributeSpan",
50828
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50829
+ "ctype": "miscellaneous",
50830
+ "subtype": "function",
50831
+ "coverageIgnore": false,
50832
+ "deprecated": false,
50833
+ "deprecationMessage": "",
50834
+ "rawdescription": "",
50835
+ "description": "",
50836
+ "displayName": "getAttributeSpan",
50837
+ "args": [
50831
50838
  {
50832
- "name": "removals",
50839
+ "name": "attr",
50840
+ "deprecated": false,
50841
+ "deprecationMessage": ""
50842
+ }
50843
+ ],
50844
+ "returnType": "{ start: number; end: number }",
50845
+ "jsdoctags": [
50846
+ {
50847
+ "name": "attr",
50833
50848
  "deprecated": false,
50834
50849
  "deprecationMessage": "",
50835
50850
  "tagName": {
@@ -50839,8 +50854,8 @@
50839
50854
  ]
50840
50855
  },
50841
50856
  {
50842
- "name": "migrateEuiDiscussionThread",
50843
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
50857
+ "name": "isChipElement",
50858
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50844
50859
  "ctype": "miscellaneous",
50845
50860
  "subtype": "function",
50846
50861
  "coverageIgnore": false,
@@ -50848,7 +50863,39 @@
50848
50863
  "deprecationMessage": "",
50849
50864
  "rawdescription": "",
50850
50865
  "description": "",
50851
- "displayName": "migrateEuiDiscussionThread",
50866
+ "displayName": "isChipElement",
50867
+ "args": [
50868
+ {
50869
+ "name": "element",
50870
+ "type": "TmplAstElement",
50871
+ "deprecated": false,
50872
+ "deprecationMessage": ""
50873
+ }
50874
+ ],
50875
+ "returnType": "boolean",
50876
+ "jsdoctags": [
50877
+ {
50878
+ "name": "element",
50879
+ "type": "TmplAstElement",
50880
+ "deprecated": false,
50881
+ "deprecationMessage": "",
50882
+ "tagName": {
50883
+ "text": "param"
50884
+ }
50885
+ }
50886
+ ]
50887
+ },
50888
+ {
50889
+ "name": "migrateEuiChip",
50890
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50891
+ "ctype": "miscellaneous",
50892
+ "subtype": "function",
50893
+ "coverageIgnore": false,
50894
+ "deprecated": false,
50895
+ "deprecationMessage": "",
50896
+ "rawdescription": "",
50897
+ "description": "",
50898
+ "displayName": "migrateEuiChip",
50852
50899
  "args": [
50853
50900
  {
50854
50901
  "name": "options",
@@ -50874,7 +50921,7 @@
50874
50921
  },
50875
50922
  {
50876
50923
  "name": "migrateInlineTemplates",
50877
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
50924
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50878
50925
  "ctype": "miscellaneous",
50879
50926
  "subtype": "function",
50880
50927
  "coverageIgnore": false,
@@ -50906,7 +50953,7 @@
50906
50953
  },
50907
50954
  {
50908
50955
  "name": "migrateTemplate",
50909
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
50956
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50910
50957
  "ctype": "miscellaneous",
50911
50958
  "subtype": "function",
50912
50959
  "coverageIgnore": false,
@@ -50938,7 +50985,7 @@
50938
50985
  },
50939
50986
  {
50940
50987
  "name": "visitDir",
50941
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
50988
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50942
50989
  "ctype": "miscellaneous",
50943
50990
  "subtype": "function",
50944
50991
  "coverageIgnore": false,
@@ -50983,7 +51030,7 @@
50983
51030
  },
50984
51031
  {
50985
51032
  "name": "visitNodes",
50986
- "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51033
+ "file": "packages/core/schematics/migrate-eui-chip/index.ts",
50987
51034
  "ctype": "miscellaneous",
50988
51035
  "subtype": "function",
50989
51036
  "coverageIgnore": false,
@@ -50998,12 +51045,6 @@
50998
51045
  "deprecated": false,
50999
51046
  "deprecationMessage": ""
51000
51047
  },
51001
- {
51002
- "name": "source",
51003
- "type": "string",
51004
- "deprecated": false,
51005
- "deprecationMessage": ""
51006
- },
51007
51048
  {
51008
51049
  "name": "removals",
51009
51050
  "deprecated": false,
@@ -51020,15 +51061,6 @@
51020
51061
  "text": "param"
51021
51062
  }
51022
51063
  },
51023
- {
51024
- "name": "source",
51025
- "type": "string",
51026
- "deprecated": false,
51027
- "deprecationMessage": "",
51028
- "tagName": {
51029
- "text": "param"
51030
- }
51031
- },
51032
51064
  {
51033
51065
  "name": "removals",
51034
51066
  "deprecated": false,
@@ -51040,10 +51072,10 @@
51040
51072
  ]
51041
51073
  }
51042
51074
  ],
51043
- "packages/core/schematics/migrate-eui-chip/index.ts": [
51075
+ "packages/core/schematics/migrate-eui-discussion-thread/index.ts": [
51044
51076
  {
51045
51077
  "name": "collectRemovals",
51046
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51078
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51047
51079
  "ctype": "miscellaneous",
51048
51080
  "subtype": "function",
51049
51081
  "coverageIgnore": false,
@@ -51059,6 +51091,12 @@
51059
51091
  "deprecated": false,
51060
51092
  "deprecationMessage": ""
51061
51093
  },
51094
+ {
51095
+ "name": "source",
51096
+ "type": "string",
51097
+ "deprecated": false,
51098
+ "deprecationMessage": ""
51099
+ },
51062
51100
  {
51063
51101
  "name": "removals",
51064
51102
  "deprecated": false,
@@ -51077,69 +51115,16 @@
51077
51115
  }
51078
51116
  },
51079
51117
  {
51080
- "name": "removals",
51081
- "deprecated": false,
51082
- "deprecationMessage": "",
51083
- "tagName": {
51084
- "text": "param"
51085
- }
51086
- }
51087
- ]
51088
- },
51089
- {
51090
- "name": "getAttributeSpan",
51091
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51092
- "ctype": "miscellaneous",
51093
- "subtype": "function",
51094
- "coverageIgnore": false,
51095
- "deprecated": false,
51096
- "deprecationMessage": "",
51097
- "rawdescription": "",
51098
- "description": "",
51099
- "displayName": "getAttributeSpan",
51100
- "args": [
51101
- {
51102
- "name": "attr",
51103
- "deprecated": false,
51104
- "deprecationMessage": ""
51105
- }
51106
- ],
51107
- "returnType": "{ start: number; end: number }",
51108
- "jsdoctags": [
51109
- {
51110
- "name": "attr",
51118
+ "name": "source",
51119
+ "type": "string",
51111
51120
  "deprecated": false,
51112
51121
  "deprecationMessage": "",
51113
51122
  "tagName": {
51114
51123
  "text": "param"
51115
51124
  }
51116
- }
51117
- ]
51118
- },
51119
- {
51120
- "name": "isChipElement",
51121
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51122
- "ctype": "miscellaneous",
51123
- "subtype": "function",
51124
- "coverageIgnore": false,
51125
- "deprecated": false,
51126
- "deprecationMessage": "",
51127
- "rawdescription": "",
51128
- "description": "",
51129
- "displayName": "isChipElement",
51130
- "args": [
51131
- {
51132
- "name": "element",
51133
- "type": "TmplAstElement",
51134
- "deprecated": false,
51135
- "deprecationMessage": ""
51136
- }
51137
- ],
51138
- "returnType": "boolean",
51139
- "jsdoctags": [
51125
+ },
51140
51126
  {
51141
- "name": "element",
51142
- "type": "TmplAstElement",
51127
+ "name": "removals",
51143
51128
  "deprecated": false,
51144
51129
  "deprecationMessage": "",
51145
51130
  "tagName": {
@@ -51149,8 +51134,8 @@
51149
51134
  ]
51150
51135
  },
51151
51136
  {
51152
- "name": "migrateEuiChip",
51153
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51137
+ "name": "migrateEuiDiscussionThread",
51138
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51154
51139
  "ctype": "miscellaneous",
51155
51140
  "subtype": "function",
51156
51141
  "coverageIgnore": false,
@@ -51158,7 +51143,7 @@
51158
51143
  "deprecationMessage": "",
51159
51144
  "rawdescription": "",
51160
51145
  "description": "",
51161
- "displayName": "migrateEuiChip",
51146
+ "displayName": "migrateEuiDiscussionThread",
51162
51147
  "args": [
51163
51148
  {
51164
51149
  "name": "options",
@@ -51184,7 +51169,7 @@
51184
51169
  },
51185
51170
  {
51186
51171
  "name": "migrateInlineTemplates",
51187
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51172
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51188
51173
  "ctype": "miscellaneous",
51189
51174
  "subtype": "function",
51190
51175
  "coverageIgnore": false,
@@ -51216,7 +51201,7 @@
51216
51201
  },
51217
51202
  {
51218
51203
  "name": "migrateTemplate",
51219
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51204
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51220
51205
  "ctype": "miscellaneous",
51221
51206
  "subtype": "function",
51222
51207
  "coverageIgnore": false,
@@ -51248,7 +51233,7 @@
51248
51233
  },
51249
51234
  {
51250
51235
  "name": "visitDir",
51251
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51236
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51252
51237
  "ctype": "miscellaneous",
51253
51238
  "subtype": "function",
51254
51239
  "coverageIgnore": false,
@@ -51293,7 +51278,7 @@
51293
51278
  },
51294
51279
  {
51295
51280
  "name": "visitNodes",
51296
- "file": "packages/core/schematics/migrate-eui-chip/index.ts",
51281
+ "file": "packages/core/schematics/migrate-eui-discussion-thread/index.ts",
51297
51282
  "ctype": "miscellaneous",
51298
51283
  "subtype": "function",
51299
51284
  "coverageIgnore": false,
@@ -51308,6 +51293,12 @@
51308
51293
  "deprecated": false,
51309
51294
  "deprecationMessage": ""
51310
51295
  },
51296
+ {
51297
+ "name": "source",
51298
+ "type": "string",
51299
+ "deprecated": false,
51300
+ "deprecationMessage": ""
51301
+ },
51311
51302
  {
51312
51303
  "name": "removals",
51313
51304
  "deprecated": false,
@@ -51324,6 +51315,15 @@
51324
51315
  "text": "param"
51325
51316
  }
51326
51317
  },
51318
+ {
51319
+ "name": "source",
51320
+ "type": "string",
51321
+ "deprecated": false,
51322
+ "deprecationMessage": "",
51323
+ "tagName": {
51324
+ "text": "param"
51325
+ }
51326
+ },
51327
51327
  {
51328
51328
  "name": "removals",
51329
51329
  "deprecated": false,