@eui/core 23.0.0-alpha.1 → 23.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/CHANGELOG.md +614 -0
  2. package/assets/i18n-eui/bg.json +7 -0
  3. package/assets/i18n-eui/cs.json +7 -0
  4. package/assets/i18n-eui/da.json +7 -0
  5. package/assets/i18n-eui/de.json +7 -0
  6. package/assets/i18n-eui/el.json +7 -0
  7. package/assets/i18n-eui/en.json +8 -1
  8. package/assets/i18n-eui/es.json +7 -0
  9. package/assets/i18n-eui/et.json +7 -0
  10. package/assets/i18n-eui/fi.json +7 -0
  11. package/assets/i18n-eui/fr.json +8 -1
  12. package/assets/i18n-eui/ga.json +7 -0
  13. package/assets/i18n-eui/hr.json +7 -0
  14. package/assets/i18n-eui/hu.json +7 -0
  15. package/assets/i18n-eui/it.json +7 -0
  16. package/assets/i18n-eui/lt.json +7 -0
  17. package/assets/i18n-eui/lv.json +7 -0
  18. package/assets/i18n-eui/mt.json +7 -0
  19. package/assets/i18n-eui/nl.json +7 -0
  20. package/assets/i18n-eui/pl.json +7 -0
  21. package/assets/i18n-eui/pt.json +7 -0
  22. package/assets/i18n-eui/ro.json +7 -0
  23. package/assets/i18n-eui/sk.json +7 -0
  24. package/assets/i18n-eui/sl.json +7 -0
  25. package/assets/i18n-eui/sv.json +7 -0
  26. package/docs/architecture.html +223 -0
  27. package/docs/changelog.html +1013 -2
  28. package/docs/classes/ActivatedRouteAction.html +70 -20
  29. package/docs/classes/AddApiQueueItemAction.html +70 -20
  30. package/docs/classes/AddAppLoadedConfigModulesAction.html +70 -20
  31. package/docs/classes/ApiQueueServiceMock.html +77 -20
  32. package/docs/classes/AsyncStorageService.html +86 -20
  33. package/docs/classes/AsyncStorageServiceMock.html +73 -17
  34. package/docs/classes/CssUtils.html +74 -20
  35. package/docs/classes/EmptyApiQueueAction.html +67 -17
  36. package/docs/classes/ErrorSubClass.html +68 -16
  37. package/docs/classes/EuiAppShellServiceMock.html +505 -0
  38. package/docs/classes/EuiCoreRootGuardClass.html +39 -8
  39. package/docs/classes/EuiError.html +69 -17
  40. package/docs/classes/I18nResourceImpl.html +50 -17
  41. package/docs/classes/InitStoreAction.html +70 -20
  42. package/docs/classes/LogServiceMock.html +67 -17
  43. package/docs/classes/RemoveApiQueueItemAction.html +67 -17
  44. package/docs/classes/StorageService.html +83 -19
  45. package/docs/classes/StorageServiceMock.html +70 -17
  46. package/docs/classes/TranslateServiceMock.html +90 -35
  47. package/docs/classes/UpdateAppConnectionAction.html +67 -17
  48. package/docs/classes/UpdateAppStatusAction.html +67 -17
  49. package/docs/classes/UpdateAppVersionAction.html +67 -17
  50. package/docs/classes/UpdateCurrentModuleAction.html +67 -17
  51. package/docs/classes/UpdateI18nStateAction.html +67 -17
  52. package/docs/classes/UpdateLocaleStateAction.html +67 -17
  53. package/docs/classes/UpdateNotificationsListAction.html +67 -17
  54. package/docs/classes/UpdateUserDashboardAction.html +67 -17
  55. package/docs/classes/UpdateUserDetailsAction.html +67 -17
  56. package/docs/classes/UpdateUserPreferencesAction.html +67 -17
  57. package/docs/classes/UpdateUserRightsAction.html +67 -17
  58. package/docs/classes/UpdateUserStateAction.html +67 -17
  59. package/docs/dependencies.html +38 -4
  60. package/docs/directives/TranslateMockDirective.html +72 -19
  61. package/docs/index.html +26 -2
  62. package/docs/injectables/ApiQueueService.html +97 -20
  63. package/docs/injectables/EuiAppShellService.html +147 -68
  64. package/docs/injectables/EuiDynamicComponentService.html +51 -18
  65. package/docs/injectables/EuiDynamicMenuService.html +67 -20
  66. package/docs/injectables/EuiGrowlService.html +85 -21
  67. package/docs/injectables/EuiLoaderService.html +65 -17
  68. package/docs/injectables/EuiPermissionService.html +95 -20
  69. package/docs/injectables/EuiThemeService.html +94 -107
  70. package/docs/injectables/EuiTimezoneService.html +51 -16
  71. package/docs/injectables/GlobalErrorHandler.html +79 -17
  72. package/docs/injectables/I18nLoader.html +53 -17
  73. package/docs/injectables/I18nService.html +101 -23
  74. package/docs/injectables/I18nServiceMock.html +96 -34
  75. package/docs/injectables/LocalForageService.html +81 -21
  76. package/docs/injectables/LocalStorageService.html +78 -21
  77. package/docs/injectables/LocaleService.html +124 -41
  78. package/docs/injectables/LocaleServiceMock.html +72 -18
  79. package/docs/injectables/LogService.html +68 -17
  80. package/docs/injectables/SessionStorageService.html +78 -21
  81. package/docs/injectables/StoreService.html +91 -22
  82. package/docs/injectables/StoreServiceMock.html +72 -17
  83. package/docs/injectables/UserService.html +97 -23
  84. package/docs/injectables/UserServiceMock.html +81 -23
  85. package/docs/interceptors/AddLangParamInterceptor.html +49 -18
  86. package/docs/interceptors/CachePreventionInterceptor.html +48 -17
  87. package/docs/interceptors/CorsSecurityInterceptor.html +48 -17
  88. package/docs/interceptors/CsrfPreventionInterceptor.html +48 -17
  89. package/docs/interceptors/EuLoginSessionTimeoutHandlingInterceptor.html +48 -17
  90. package/docs/interceptors/HttpErrorHandlerInterceptor.html +48 -17
  91. package/docs/interceptors/UxRequestErrorModelInterceptor.html +48 -17
  92. package/docs/interfaces/Action.html +158 -60
  93. package/docs/interfaces/ActionReducer.html +84 -55
  94. package/docs/interfaces/ComponentInfo.html +395 -0
  95. package/docs/interfaces/Dependency.html +278 -250
  96. package/docs/interfaces/Edit-1.html +395 -0
  97. package/docs/interfaces/Edit-2.html +395 -0
  98. package/docs/interfaces/Edit-3.html +395 -0
  99. package/docs/interfaces/Edit.html +395 -0
  100. package/docs/interfaces/EuiComponentEntry.html +485 -0
  101. package/docs/interfaces/EuiTimeZone.html +121 -93
  102. package/docs/interfaces/IEuiTheme.html +181 -153
  103. package/docs/interfaces/ImportToAdd.html +413 -0
  104. package/docs/interfaces/ImportsArrayInfo.html +356 -0
  105. package/docs/interfaces/Library.html +169 -137
  106. package/docs/interfaces/LoadedResources.html +164 -136
  107. package/docs/interfaces/LoadedResourcesError.html +121 -93
  108. package/docs/interfaces/MemoizedSelector.html +187 -138
  109. package/docs/interfaces/MemoizedSelectorWithProps.html +188 -139
  110. package/docs/interfaces/MigrateAllSchema.html +458 -0
  111. package/docs/interfaces/MigrationResult.html +395 -0
  112. package/docs/interfaces/ModuleLoadEvent.html +164 -136
  113. package/docs/interfaces/ModuleMapping.html +356 -0
  114. package/docs/interfaces/NgModuleInfo.html +395 -0
  115. package/docs/interfaces/Policy.html +164 -136
  116. package/docs/interfaces/ResourceError.html +170 -142
  117. package/docs/interfaces/Schema-1.html +368 -0
  118. package/docs/interfaces/Schema-10.html +368 -0
  119. package/docs/interfaces/Schema-11.html +368 -0
  120. package/docs/interfaces/Schema-12.html +368 -0
  121. package/docs/interfaces/Schema-13.html +368 -0
  122. package/docs/interfaces/Schema-14.html +368 -0
  123. package/docs/interfaces/Schema-15.html +368 -0
  124. package/docs/interfaces/Schema-16.html +368 -0
  125. package/docs/interfaces/Schema-17.html +368 -0
  126. package/docs/interfaces/Schema-18.html +368 -0
  127. package/docs/interfaces/Schema-19.html +368 -0
  128. package/docs/interfaces/Schema-2.html +380 -0
  129. package/docs/interfaces/Schema-20.html +368 -0
  130. package/docs/interfaces/Schema-21.html +368 -0
  131. package/docs/interfaces/Schema-3.html +431 -0
  132. package/docs/interfaces/Schema-4.html +368 -0
  133. package/docs/interfaces/Schema-5.html +368 -0
  134. package/docs/interfaces/Schema-6.html +368 -0
  135. package/docs/interfaces/Schema-7.html +368 -0
  136. package/docs/interfaces/Schema-8.html +368 -0
  137. package/docs/interfaces/Schema-9.html +368 -0
  138. package/docs/interfaces/Schema.html +413 -0
  139. package/docs/interfaces/SelectorEntry.html +511 -0
  140. package/docs/interfaces/TextChange.html +395 -0
  141. package/docs/interfaces/ThemeState.html +121 -93
  142. package/docs/interfaces/TranslationKeys.html +41 -11
  143. package/docs/interfaces/UIState.html +1713 -1640
  144. package/docs/interfaces/body.html +181 -153
  145. package/docs/js/architecture-graph.js +288 -0
  146. package/docs/js/libs/bootstrap-native.js +4 -2
  147. package/docs/js/libs/tablesort.min.js +3 -3
  148. package/docs/js/libs/tablesort.number.min.js +2 -2
  149. package/docs/js/libs/vis-network.min.js +7 -7
  150. package/docs/js/menu-wc.js +158 -14
  151. package/docs/js/routes.js +138 -37
  152. package/docs/js/search/search.js +62 -0
  153. package/docs/js/search/search_index.js +2 -2
  154. package/docs/js/tabs.js +98 -15
  155. package/docs/js/tree.js +44 -7
  156. package/docs/json/EuiPermissionService.md +1 -0
  157. package/docs/json/LocaleService.md +1 -0
  158. package/docs/json/documentation.json +43849 -14367
  159. package/docs/license.html +26 -2
  160. package/docs/llms.txt +2318 -0
  161. package/docs/miscellaneous/enumerations.html +38 -34
  162. package/docs/miscellaneous/functions.html +19810 -769
  163. package/docs/miscellaneous/typealiases.html +59 -27
  164. package/docs/miscellaneous/variables.html +4036 -1032
  165. package/docs/modules/CoreModule.html +34 -9
  166. package/docs/modules/I18nModule.html +34 -9
  167. package/docs/modules/LogModule.html +34 -9
  168. package/docs/modules/TranslateMockModule.html +60 -13
  169. package/docs/modules.html +26 -2
  170. package/docs/overview.html +29 -5
  171. package/docs/pipes/TranslateMockPipe.html +87 -9
  172. package/docs/properties.html +27 -3
  173. package/docs/routes.html +26 -2
  174. package/docs/styles/compodoc.css +365 -44
  175. package/docs/styles/dark.css +16 -0
  176. package/docs/template-playground/hbs-render.service.ts +6 -1
  177. package/fesm2022/eui-core.mjs +326 -145
  178. package/fesm2022/eui-core.mjs.map +1 -1
  179. package/package.json +16 -11
  180. package/schematics/add-eui-imports/index.d.ts +8 -0
  181. package/schematics/add-eui-imports/index.js +525 -0
  182. package/schematics/add-eui-imports/index.js.map +1 -0
  183. package/schematics/add-eui-imports/schema.json +24 -0
  184. package/schematics/add-eui-imports/selector-map.d.ts +35 -0
  185. package/schematics/add-eui-imports/selector-map.js +246 -0
  186. package/schematics/add-eui-imports/selector-map.js.map +1 -0
  187. package/schematics/collection.json +123 -0
  188. package/schematics/fix-no-multiple-empty-lines/index.d.ts +7 -0
  189. package/schematics/fix-no-multiple-empty-lines/index.js +90 -0
  190. package/schematics/fix-no-multiple-empty-lines/index.js.map +1 -0
  191. package/schematics/fix-no-multiple-empty-lines/schema.json +19 -0
  192. package/schematics/icon-migrate/index.d.ts +3 -0
  193. package/schematics/icon-migrate/index.js +228 -0
  194. package/schematics/icon-migrate/index.js.map +1 -0
  195. package/schematics/icon-migrate/schema.d.ts +6 -0
  196. package/schematics/icon-migrate/schema.js +3 -0
  197. package/schematics/icon-migrate/schema.js.map +1 -0
  198. package/schematics/icon-migrate/schema.json +20 -0
  199. package/schematics/migrate/index.d.ts +3 -0
  200. package/schematics/migrate/index.js +98 -0
  201. package/schematics/migrate/index.js.map +1 -0
  202. package/schematics/migrate/replacements/breaking-changes.d.ts +6 -0
  203. package/schematics/migrate/replacements/breaking-changes.js +173 -0
  204. package/schematics/migrate/replacements/breaking-changes.js.map +1 -0
  205. package/schematics/migrate/replacements/eui-modules.d.ts +29 -0
  206. package/schematics/migrate/replacements/eui-modules.js +231 -0
  207. package/schematics/migrate/replacements/eui-modules.js.map +1 -0
  208. package/schematics/migrate/replacements/icons.d.ts +14 -0
  209. package/schematics/migrate/replacements/icons.js +235 -0
  210. package/schematics/migrate/replacements/icons.js.map +1 -0
  211. package/schematics/migrate/replacements/mwp.d.ts +6 -0
  212. package/schematics/migrate/replacements/mwp.js +148 -0
  213. package/schematics/migrate/replacements/mwp.js.map +1 -0
  214. package/schematics/migrate/schema.d.ts +8 -0
  215. package/schematics/migrate/schema.js +3 -0
  216. package/schematics/migrate/schema.js.map +1 -0
  217. package/schematics/migrate/schema.json +25 -0
  218. package/schematics/migrate/utils.d.ts +21 -0
  219. package/schematics/migrate/utils.js +106 -0
  220. package/schematics/migrate/utils.js.map +1 -0
  221. package/schematics/migrate-all/index.d.ts +8 -0
  222. package/schematics/migrate-all/index.js +31 -0
  223. package/schematics/migrate-all/index.js.map +1 -0
  224. package/schematics/migrate-all/schema.json +30 -0
  225. package/schematics/migrate-eui-accent/index.d.ts +7 -0
  226. package/schematics/migrate-eui-accent/index.js +193 -0
  227. package/schematics/migrate-eui-accent/index.js.map +1 -0
  228. package/schematics/migrate-eui-accent/schema.json +19 -0
  229. package/schematics/migrate-eui-alert/index.d.ts +7 -0
  230. package/schematics/migrate-eui-alert/index.js +152 -0
  231. package/schematics/migrate-eui-alert/index.js.map +1 -0
  232. package/schematics/migrate-eui-alert/schema.json +19 -0
  233. package/schematics/migrate-eui-avatar/index.d.ts +7 -0
  234. package/schematics/migrate-eui-avatar/index.js +155 -0
  235. package/schematics/migrate-eui-avatar/index.js.map +1 -0
  236. package/schematics/migrate-eui-avatar/schema.json +19 -0
  237. package/schematics/migrate-eui-button/index.d.ts +7 -0
  238. package/schematics/migrate-eui-button/index.js +191 -0
  239. package/schematics/migrate-eui-button/index.js.map +1 -0
  240. package/schematics/migrate-eui-button/schema.json +19 -0
  241. package/schematics/migrate-eui-chip/index.d.ts +7 -0
  242. package/schematics/migrate-eui-chip/index.js +153 -0
  243. package/schematics/migrate-eui-chip/index.js.map +1 -0
  244. package/schematics/migrate-eui-chip/schema.json +19 -0
  245. package/schematics/migrate-eui-chip-list/index.d.ts +7 -0
  246. package/schematics/migrate-eui-chip-list/index.js +472 -0
  247. package/schematics/migrate-eui-chip-list/index.js.map +1 -0
  248. package/schematics/migrate-eui-chip-list/schema.json +19 -0
  249. package/schematics/migrate-eui-discussion-thread/index.d.ts +7 -0
  250. package/schematics/migrate-eui-discussion-thread/index.js +143 -0
  251. package/schematics/migrate-eui-discussion-thread/index.js.map +1 -0
  252. package/schematics/migrate-eui-discussion-thread/schema.json +19 -0
  253. package/schematics/migrate-eui-editor/index.d.ts +7 -0
  254. package/schematics/migrate-eui-editor/index.js +198 -0
  255. package/schematics/migrate-eui-editor/index.js.map +1 -0
  256. package/schematics/migrate-eui-editor/schema.json +19 -0
  257. package/schematics/migrate-eui-fieldset/index.d.ts +7 -0
  258. package/schematics/migrate-eui-fieldset/index.js +186 -0
  259. package/schematics/migrate-eui-fieldset/index.js.map +1 -0
  260. package/schematics/migrate-eui-fieldset/schema.json +19 -0
  261. package/schematics/migrate-eui-icon-svg/index.d.ts +7 -0
  262. package/schematics/migrate-eui-icon-svg/index.js +197 -0
  263. package/schematics/migrate-eui-icon-svg/index.js.map +1 -0
  264. package/schematics/migrate-eui-icon-svg/schema.json +19 -0
  265. package/schematics/migrate-eui-icon-toggle/index.d.ts +7 -0
  266. package/schematics/migrate-eui-icon-toggle/index.js +194 -0
  267. package/schematics/migrate-eui-icon-toggle/index.js.map +1 -0
  268. package/schematics/migrate-eui-icon-toggle/schema.json +19 -0
  269. package/schematics/migrate-eui-popover/index.d.ts +7 -0
  270. package/schematics/migrate-eui-popover/index.js +152 -0
  271. package/schematics/migrate-eui-popover/index.js.map +1 -0
  272. package/schematics/migrate-eui-popover/schema.json +19 -0
  273. package/schematics/migrate-eui-progress-circle/index.d.ts +7 -0
  274. package/schematics/migrate-eui-progress-circle/index.js +192 -0
  275. package/schematics/migrate-eui-progress-circle/index.js.map +1 -0
  276. package/schematics/migrate-eui-progress-circle/schema.json +19 -0
  277. package/schematics/migrate-eui-table/index.d.ts +7 -0
  278. package/schematics/migrate-eui-table/index.js +544 -0
  279. package/schematics/migrate-eui-table/index.js.map +1 -0
  280. package/schematics/migrate-eui-table/schema.json +19 -0
  281. package/schematics/migrate-eui-tabs/index.d.ts +7 -0
  282. package/schematics/migrate-eui-tabs/index.js +296 -0
  283. package/schematics/migrate-eui-tabs/index.js.map +1 -0
  284. package/schematics/migrate-eui-tabs/schema.json +19 -0
  285. package/schematics/migrate-eui-toolbar-menu/index.d.ts +7 -0
  286. package/schematics/migrate-eui-toolbar-menu/index.js +358 -0
  287. package/schematics/migrate-eui-toolbar-menu/index.js.map +1 -0
  288. package/schematics/migrate-eui-toolbar-menu/schema.json +19 -0
  289. package/schematics/migrate-eui-tooltip/index.d.ts +7 -0
  290. package/schematics/migrate-eui-tooltip/index.js +263 -0
  291. package/schematics/migrate-eui-tooltip/index.js.map +1 -0
  292. package/schematics/migrate-to-standalone/index.d.ts +7 -0
  293. package/schematics/migrate-to-standalone/index.js +723 -0
  294. package/schematics/migrate-to-standalone/index.js.map +1 -0
  295. package/schematics/migrate-to-standalone/schema.json +19 -0
  296. package/schematics/package.json +1 -0
  297. package/schematics/utils/dry-run.d.ts +3 -0
  298. package/schematics/utils/dry-run.js +14 -0
  299. package/schematics/utils/dry-run.js.map +1 -0
  300. package/types/eui-core.d.ts +75 -17
  301. package/types/eui-core.d.ts.map +1 -1
  302. package/docs/js/menu-wc_es5.js +0 -40
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.migrateEuiToolbarMenu = migrateEuiToolbarMenu;
37
+ const compiler_1 = require("@angular/compiler");
38
+ const ts = __importStar(require("typescript"));
39
+ const dry_run_1 = require("../utils/dry-run");
40
+ const OLD_TAG = 'eui-toolbar-menu';
41
+ const NEW_TAG = 'eui-toolbar-mega-menu';
42
+ const OLD_COMPONENT = 'EuiToolbarMenuComponent';
43
+ const NEW_COMPONENT = 'EuiToolbarMegaMenuComponent';
44
+ const OLD_INTERFACE = 'ToolbarItem';
45
+ const NEW_INTERFACE = 'EuiMenuItem';
46
+ const NEW_COMPONENT_PATH = '@eui/components/layout';
47
+ const NEW_INTERFACE_PATH = '@eui/core';
48
+ const REMOVED_OUTPUT = 'menuItemClick';
49
+ function migrateEuiToolbarMenu(options = {}) {
50
+ return (tree, context) => {
51
+ const scanPath = options.path ? '/' + options.path.replace(/^\.?\//, '').replace(/\/$/, '') : '';
52
+ let fileCount = 0;
53
+ visitDir(tree.getDir(scanPath || '/'), (path) => {
54
+ const buffer = tree.read(path);
55
+ if (!buffer)
56
+ return;
57
+ const original = buffer.toString('utf-8');
58
+ if (!original.includes(OLD_TAG) && !original.includes(OLD_COMPONENT) && !original.includes(OLD_INTERFACE))
59
+ return;
60
+ let result;
61
+ if (path.endsWith('.html')) {
62
+ result = migrateTemplate(original, path, context);
63
+ }
64
+ else {
65
+ result = migrateTypeScript(original, path, context);
66
+ }
67
+ if (result !== original) {
68
+ if (options.dryRun) {
69
+ (0, dry_run_1.logDryRun)(context, `Would migrate eui-toolbar-menu → eui-toolbar-mega-menu in ${path}`);
70
+ }
71
+ else {
72
+ tree.overwrite(path, result);
73
+ }
74
+ fileCount++;
75
+ }
76
+ });
77
+ context.logger.info(`Migrated eui-toolbar-menu → eui-toolbar-mega-menu in ${fileCount} file(s).`);
78
+ if (options.dryRun) {
79
+ (0, dry_run_1.logDryRunNote)(context);
80
+ }
81
+ return tree;
82
+ };
83
+ }
84
+ function migrateTemplate(source, filePath, context) {
85
+ const parsed = (0, compiler_1.parseTemplate)(source, '', { preserveWhitespaces: true });
86
+ const edits = [];
87
+ visitNodes(parsed.nodes, source, edits, filePath, context);
88
+ return applyEdits(source, edits);
89
+ }
90
+ function migrateTypeScript(source, filePath, context) {
91
+ let result = migrateInlineTemplates(source, filePath, context);
92
+ result = migrateImportsAndTypes(result, filePath, context);
93
+ return result;
94
+ }
95
+ function migrateInlineTemplates(source, filePath, context) {
96
+ const sourceFile = ts.createSourceFile('', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
97
+ const changes = [];
98
+ const visit = (node) => {
99
+ if (ts.isPropertyAssignment(node) && isTemplateProperty(node) && isComponentMetadataProperty(node)) {
100
+ const init = unwrapExpression(node.initializer);
101
+ if (ts.isStringLiteral(init) || ts.isNoSubstitutionTemplateLiteral(init)) {
102
+ const start = init.getStart(sourceFile) + 1;
103
+ const end = init.getEnd() - 1;
104
+ const rawTemplate = source.slice(start, end);
105
+ if (!rawTemplate.includes(OLD_TAG)) {
106
+ ts.forEachChild(node, visit);
107
+ return;
108
+ }
109
+ const migrated = migrateTemplate(rawTemplate, filePath, context);
110
+ if (migrated !== rawTemplate)
111
+ changes.push({ start, end, replacement: migrated });
112
+ }
113
+ }
114
+ ts.forEachChild(node, visit);
115
+ };
116
+ visit(sourceFile);
117
+ return applyEdits(source, changes);
118
+ }
119
+ function migrateImportsAndTypes(source, filePath, context) {
120
+ if (!source.includes(OLD_COMPONENT) && !source.includes(OLD_INTERFACE))
121
+ return source;
122
+ const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
123
+ const edits = [];
124
+ // Track if EuiMenuItem is already imported from @eui/core
125
+ let hasEuiMenuItemImport = false;
126
+ // First pass: analyze imports
127
+ for (const stmt of sourceFile.statements) {
128
+ if (!ts.isImportDeclaration(stmt))
129
+ continue;
130
+ const moduleSpec = stmt.moduleSpecifier.text;
131
+ const namedBindings = stmt.importClause?.namedBindings;
132
+ if (!namedBindings || !ts.isNamedImports(namedBindings))
133
+ continue;
134
+ for (const specifier of namedBindings.elements) {
135
+ if (specifier.name.text === NEW_INTERFACE && moduleSpec === NEW_INTERFACE_PATH) {
136
+ hasEuiMenuItemImport = true;
137
+ }
138
+ }
139
+ }
140
+ // Second pass: collect edits for import declarations
141
+ for (const stmt of sourceFile.statements) {
142
+ if (!ts.isImportDeclaration(stmt))
143
+ continue;
144
+ const namedBindings = stmt.importClause?.namedBindings;
145
+ if (!namedBindings || !ts.isNamedImports(namedBindings))
146
+ continue;
147
+ const moduleSpec = stmt.moduleSpecifier;
148
+ const specifiers = namedBindings.elements;
149
+ const hasComponent = specifiers.some((s) => s.name.text === OLD_COMPONENT);
150
+ const hasInterface = specifiers.some((s) => s.name.text === OLD_INTERFACE);
151
+ if (hasComponent && hasInterface) {
152
+ // Both are in the same import → must split into two different paths
153
+ const others = specifiers.filter((s) => s.name.text !== OLD_COMPONENT && s.name.text !== OLD_INTERFACE);
154
+ const lines = [];
155
+ lines.push(`import { ${NEW_COMPONENT} } from '${NEW_COMPONENT_PATH}';`);
156
+ if (!hasEuiMenuItemImport) {
157
+ lines.push(`import { ${NEW_INTERFACE} } from '${NEW_INTERFACE_PATH}';`);
158
+ }
159
+ if (others.length > 0) {
160
+ const otherNames = others.map((s) => s.name.text).join(', ');
161
+ lines.push(`import { ${otherNames} } from '${moduleSpec.text}';`);
162
+ }
163
+ edits.push({
164
+ start: stmt.getStart(sourceFile),
165
+ end: stmt.getEnd(),
166
+ replacement: lines.join('\n'),
167
+ });
168
+ }
169
+ else if (hasComponent) {
170
+ edits.push({
171
+ start: moduleSpec.getStart(sourceFile) + 1,
172
+ end: moduleSpec.getEnd() - 1,
173
+ replacement: NEW_COMPONENT_PATH,
174
+ });
175
+ for (const specifier of specifiers) {
176
+ if (specifier.name.text === OLD_COMPONENT) {
177
+ edits.push({
178
+ start: specifier.name.getStart(sourceFile),
179
+ end: specifier.name.getEnd(),
180
+ replacement: NEW_COMPONENT,
181
+ });
182
+ }
183
+ }
184
+ }
185
+ else if (hasInterface) {
186
+ if (hasEuiMenuItemImport) {
187
+ removeImportSpecifier(namedBindings, specifiers.find((s) => s.name.text === OLD_INTERFACE), sourceFile, edits);
188
+ }
189
+ else {
190
+ edits.push({
191
+ start: moduleSpec.getStart(sourceFile) + 1,
192
+ end: moduleSpec.getEnd() - 1,
193
+ replacement: NEW_INTERFACE_PATH,
194
+ });
195
+ for (const specifier of specifiers) {
196
+ if (specifier.name.text === OLD_INTERFACE) {
197
+ edits.push({
198
+ start: specifier.name.getStart(sourceFile),
199
+ end: specifier.name.getEnd(),
200
+ replacement: NEW_INTERFACE,
201
+ });
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ // Third pass: rename identifier references in non-import positions
208
+ const visitRefs = (node) => {
209
+ if (ts.isImportDeclaration(node))
210
+ return; // skip imports (already handled)
211
+ if (ts.isIdentifier(node)) {
212
+ if (node.text === OLD_COMPONENT) {
213
+ edits.push({ start: node.getStart(sourceFile), end: node.getEnd(), replacement: NEW_COMPONENT });
214
+ }
215
+ if (node.text === OLD_INTERFACE) {
216
+ edits.push({ start: node.getStart(sourceFile), end: node.getEnd(), replacement: NEW_INTERFACE });
217
+ }
218
+ }
219
+ ts.forEachChild(node, visitRefs);
220
+ };
221
+ for (const stmt of sourceFile.statements) {
222
+ if (!ts.isImportDeclaration(stmt)) {
223
+ visitRefs(stmt);
224
+ }
225
+ }
226
+ // Warn about ToolbarItem-specific properties
227
+ warnRemovedProperties(sourceFile, filePath, context);
228
+ return applyEdits(source, edits);
229
+ }
230
+ function removeImportSpecifier(namedImports, specifier, sourceFile, edits) {
231
+ const elements = namedImports.elements;
232
+ if (elements.length === 1) {
233
+ // Remove the entire import declaration
234
+ const importDecl = namedImports.parent.parent;
235
+ edits.push({
236
+ start: importDecl.getStart(sourceFile),
237
+ end: importDecl.getEnd(),
238
+ replacement: '',
239
+ });
240
+ }
241
+ else {
242
+ // Remove just this specifier with surrounding comma/whitespace
243
+ const idx = elements.indexOf(specifier);
244
+ let start;
245
+ let end;
246
+ if (idx < elements.length - 1) {
247
+ start = specifier.getStart(sourceFile);
248
+ end = elements[idx + 1].getStart(sourceFile);
249
+ }
250
+ else {
251
+ start = elements[idx - 1].getEnd();
252
+ end = specifier.getEnd();
253
+ }
254
+ edits.push({ start, end, replacement: '' });
255
+ }
256
+ }
257
+ function warnRemovedProperties(sourceFile, filePath, context) {
258
+ const deprecated = ['isHome', 'isSeparator'];
259
+ const visit = (node) => {
260
+ if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name) && deprecated.includes(node.name.text)) {
261
+ const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
262
+ context.logger.warn(`${filePath}:${line + 1} - "${node.name.text}" was part of ToolbarItem but does not exist on EuiMenuItem. Review manually.`);
263
+ }
264
+ if (ts.isPropertyAssignment(node) && ts.isIdentifier(node.name) && deprecated.includes(node.name.text)) {
265
+ const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
266
+ context.logger.warn(`${filePath}:${line + 1} - "${node.name.text}" was part of ToolbarItem but does not exist on EuiMenuItem. Review manually.`);
267
+ }
268
+ ts.forEachChild(node, visit);
269
+ };
270
+ visit(sourceFile);
271
+ }
272
+ function visitNodes(nodes, source, edits, filePath, context) {
273
+ for (const node of nodes) {
274
+ if (node instanceof compiler_1.TmplAstElement) {
275
+ if (node.name === OLD_TAG) {
276
+ collectTagRenames(node, source, edits);
277
+ collectOutputRemovals(node, source, edits, filePath, context);
278
+ }
279
+ visitNodes(node.children, source, edits, filePath, context);
280
+ }
281
+ }
282
+ }
283
+ function collectTagRenames(element, source, edits) {
284
+ // Rename opening tag
285
+ const openStart = element.startSourceSpan.start.offset + 1; // skip '<'
286
+ edits.push({ start: openStart, end: openStart + OLD_TAG.length, replacement: NEW_TAG });
287
+ // Rename closing tag
288
+ if (element.endSourceSpan) {
289
+ const closeStart = element.endSourceSpan.start.offset + 2; // skip '</'
290
+ edits.push({ start: closeStart, end: closeStart + OLD_TAG.length, replacement: NEW_TAG });
291
+ }
292
+ }
293
+ function collectOutputRemovals(element, source, edits, filePath, context) {
294
+ for (const output of element.outputs) {
295
+ if (output.name === REMOVED_OUTPUT) {
296
+ let start = output.sourceSpan.start.offset;
297
+ // Remove leading whitespace
298
+ while (start > 0 && (source[start - 1] === ' ' || source[start - 1] === '\t')) {
299
+ start--;
300
+ }
301
+ edits.push({ start, end: output.sourceSpan.end.offset, replacement: '' });
302
+ const { line } = element.startSourceSpan.start;
303
+ context.logger.warn(`${filePath}:${line + 1} - "(menuItemClick)" has been removed. There is no equivalent on eui-toolbar-mega-menu.`);
304
+ }
305
+ }
306
+ }
307
+ function isTemplateProperty(node) {
308
+ const name = node.name;
309
+ return (ts.isIdentifier(name) && name.text === 'template') || (ts.isStringLiteral(name) && name.text === 'template');
310
+ }
311
+ function isComponentMetadataProperty(node) {
312
+ const objectLiteral = node.parent;
313
+ if (!ts.isObjectLiteralExpression(objectLiteral))
314
+ return false;
315
+ const callExpression = objectLiteral.parent;
316
+ if (!ts.isCallExpression(callExpression) || callExpression.arguments[0] !== objectLiteral)
317
+ return false;
318
+ return ts.isDecorator(callExpression.parent) && ts.isIdentifier(callExpression.expression) && callExpression.expression.text === 'Component';
319
+ }
320
+ function unwrapExpression(expression) {
321
+ let current = expression;
322
+ while (ts.isParenthesizedExpression(current))
323
+ current = current.expression;
324
+ return current;
325
+ }
326
+ function applyEdits(source, edits) {
327
+ // Deduplicate edits at same position (e.g. module path edits when both Component and ToolbarItem are from same source)
328
+ const unique = deduplicateEdits(edits);
329
+ let result = source;
330
+ for (const edit of unique.sort((a, b) => b.start - a.start)) {
331
+ result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);
332
+ }
333
+ return result;
334
+ }
335
+ function deduplicateEdits(edits) {
336
+ const seen = new Map();
337
+ for (const edit of edits) {
338
+ const key = `${edit.start}:${edit.end}`;
339
+ // Last wins for same range
340
+ seen.set(key, edit);
341
+ }
342
+ return Array.from(seen.values());
343
+ }
344
+ function visitDir(dir, callback) {
345
+ for (const file of dir.subfiles) {
346
+ if (file.endsWith('.d.ts'))
347
+ continue;
348
+ if (!file.endsWith('.html') && !file.endsWith('.ts'))
349
+ continue;
350
+ callback(`${dir.path}/${file}`);
351
+ }
352
+ for (const sub of dir.subdirs) {
353
+ if (sub === 'node_modules' || sub === 'dist')
354
+ continue;
355
+ visitDir(dir.dir(sub), callback);
356
+ }
357
+ }
358
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/migrate-eui-toolbar-menu/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "MigrateEuiToolbarMenuSchema",
4
+ "title": "Migrate eui-toolbar-menu to eui-toolbar-mega-menu",
5
+ "type": "object",
6
+ "properties": {
7
+ "path": {
8
+ "type": "string",
9
+ "description": "The path to scan for files.",
10
+ "default": "./",
11
+ "visible": true
12
+ },
13
+ "dryRun": {
14
+ "type": "boolean",
15
+ "default": false,
16
+ "description": "Whether to run in dry-run mode without making actual changes."
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,7 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ interface Schema {
3
+ path?: string;
4
+ dryRun?: boolean;
5
+ }
6
+ export declare function migrateEuiTooltip(options?: Schema): Rule;
7
+ export {};
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.migrateEuiTooltip = migrateEuiTooltip;
37
+ const ts = __importStar(require("typescript"));
38
+ const dry_run_1 = require("../utils/dry-run");
39
+ const OLD_CLASS = 'EuiTooltipConfig';
40
+ const NEW_INTERFACE = 'EuiTooltipInterface';
41
+ function migrateEuiTooltip(options = {}) {
42
+ return (tree, context) => {
43
+ const scanPath = options.path ? '/' + options.path.replace(/^\.?\//, '').replace(/\/$/, '') : '';
44
+ let fileCount = 0;
45
+ visitDir(tree.getDir(scanPath || '/'), (path) => {
46
+ if (!path.endsWith('.ts'))
47
+ return;
48
+ const buffer = tree.read(path);
49
+ if (!buffer)
50
+ return;
51
+ const original = buffer.toString('utf-8');
52
+ if (!original.includes(OLD_CLASS))
53
+ return;
54
+ const result = migrateTypeScript(original, path, context);
55
+ if (result !== original) {
56
+ if (options.dryRun) {
57
+ (0, dry_run_1.logDryRun)(context, `Would migrate EuiTooltipConfig → EuiTooltipInterface in ${path}`);
58
+ }
59
+ else {
60
+ tree.overwrite(path, result);
61
+ }
62
+ fileCount++;
63
+ }
64
+ });
65
+ context.logger.info(`Migrated EuiTooltipConfig → EuiTooltipInterface in ${fileCount} file(s).`);
66
+ if (options.dryRun) {
67
+ (0, dry_run_1.logDryRunNote)(context);
68
+ }
69
+ return tree;
70
+ };
71
+ }
72
+ function migrateTypeScript(source, filePath, context) {
73
+ const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
74
+ const edits = [];
75
+ // Track if EuiTooltipInterface is already imported
76
+ let hasInterfaceImport = false;
77
+ let classImportDecl = null;
78
+ let classImportModuleSpecifier = null;
79
+ // First pass: analyze imports
80
+ for (const stmt of sourceFile.statements) {
81
+ if (!ts.isImportDeclaration(stmt))
82
+ continue;
83
+ const namedBindings = stmt.importClause?.namedBindings;
84
+ if (!namedBindings || !ts.isNamedImports(namedBindings))
85
+ continue;
86
+ for (const specifier of namedBindings.elements) {
87
+ if (specifier.name.text === NEW_INTERFACE) {
88
+ hasInterfaceImport = true;
89
+ }
90
+ if (specifier.name.text === OLD_CLASS) {
91
+ classImportDecl = stmt;
92
+ classImportModuleSpecifier = stmt.moduleSpecifier.text;
93
+ }
94
+ }
95
+ }
96
+ // Second pass: handle import declarations
97
+ for (const stmt of sourceFile.statements) {
98
+ if (!ts.isImportDeclaration(stmt))
99
+ continue;
100
+ const namedBindings = stmt.importClause?.namedBindings;
101
+ if (!namedBindings || !ts.isNamedImports(namedBindings))
102
+ continue;
103
+ const specifiers = namedBindings.elements;
104
+ const classSpecifier = specifiers.find((s) => s.name.text === OLD_CLASS);
105
+ if (!classSpecifier)
106
+ continue;
107
+ if (hasInterfaceImport) {
108
+ // EuiTooltipInterface is already imported elsewhere → remove EuiTooltipConfig from this import
109
+ removeImportSpecifier(namedBindings, classSpecifier, sourceFile, edits);
110
+ }
111
+ else {
112
+ // Rename EuiTooltipConfig → EuiTooltipInterface in the import
113
+ edits.push({
114
+ start: classSpecifier.name.getStart(sourceFile),
115
+ end: classSpecifier.name.getEnd(),
116
+ replacement: NEW_INTERFACE,
117
+ });
118
+ hasInterfaceImport = true;
119
+ }
120
+ }
121
+ // Third pass: replace `new EuiTooltipConfig(...)` → spread/cast to interface
122
+ const visitNewExpressions = (node) => {
123
+ if (ts.isNewExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === OLD_CLASS) {
124
+ const args = node.arguments;
125
+ if (args && args.length === 1) {
126
+ const arg = args[0];
127
+ // `new EuiTooltipConfig({ ... })` → `{ ... } as EuiTooltipInterface`
128
+ // But if the argument is just a variable, we keep it: `varName as EuiTooltipInterface`
129
+ const argText = source.slice(arg.getStart(sourceFile), arg.getEnd());
130
+ if (ts.isObjectLiteralExpression(arg)) {
131
+ // Inline object: `new EuiTooltipConfig({ x: 1 })` → `{ x: 1 }`
132
+ edits.push({
133
+ start: node.getStart(sourceFile),
134
+ end: node.getEnd(),
135
+ replacement: argText,
136
+ });
137
+ }
138
+ else {
139
+ // Variable or expression: `new EuiTooltipConfig(opts)` → `opts`
140
+ edits.push({
141
+ start: node.getStart(sourceFile),
142
+ end: node.getEnd(),
143
+ replacement: argText,
144
+ });
145
+ }
146
+ }
147
+ else if (!args || args.length === 0) {
148
+ // `new EuiTooltipConfig()` → `{} as EuiTooltipInterface`
149
+ edits.push({
150
+ start: node.getStart(sourceFile),
151
+ end: node.getEnd(),
152
+ replacement: `{} as ${NEW_INTERFACE}`,
153
+ });
154
+ }
155
+ return; // don't recurse into children we've already replaced
156
+ }
157
+ ts.forEachChild(node, visitNewExpressions);
158
+ };
159
+ for (const stmt of sourceFile.statements) {
160
+ if (!ts.isImportDeclaration(stmt)) {
161
+ visitNewExpressions(stmt);
162
+ }
163
+ }
164
+ // Fourth pass: rename all remaining identifier references (type annotations, etc.)
165
+ const visitRefs = (node) => {
166
+ if (ts.isImportDeclaration(node))
167
+ return;
168
+ // Skip nodes we already covered in new expressions
169
+ if (ts.isNewExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === OLD_CLASS)
170
+ return;
171
+ if (ts.isIdentifier(node) && node.text === OLD_CLASS) {
172
+ // Ensure this is not part of an import declaration
173
+ if (!isPartOfImport(node)) {
174
+ edits.push({
175
+ start: node.getStart(sourceFile),
176
+ end: node.getEnd(),
177
+ replacement: NEW_INTERFACE,
178
+ });
179
+ }
180
+ }
181
+ ts.forEachChild(node, visitRefs);
182
+ };
183
+ for (const stmt of sourceFile.statements) {
184
+ if (!ts.isImportDeclaration(stmt)) {
185
+ visitRefs(stmt);
186
+ }
187
+ }
188
+ return applyEdits(source, edits);
189
+ }
190
+ function isPartOfImport(node) {
191
+ let current = node.parent;
192
+ while (current) {
193
+ if (ts.isImportDeclaration(current))
194
+ return true;
195
+ current = current.parent;
196
+ }
197
+ return false;
198
+ }
199
+ function removeImportSpecifier(namedImports, specifier, sourceFile, edits) {
200
+ const elements = namedImports.elements;
201
+ if (elements.length === 1) {
202
+ // Remove the entire import declaration
203
+ const importDecl = namedImports.parent.parent;
204
+ let end = importDecl.getEnd();
205
+ // Also remove trailing newline if present
206
+ const fullText = sourceFile.getFullText();
207
+ if (fullText[end] === '\n')
208
+ end++;
209
+ edits.push({
210
+ start: importDecl.getStart(sourceFile),
211
+ end,
212
+ replacement: '',
213
+ });
214
+ }
215
+ else {
216
+ // Remove just this specifier with surrounding comma/whitespace
217
+ const idx = elements.indexOf(specifier);
218
+ let start;
219
+ let end;
220
+ if (idx < elements.length - 1) {
221
+ // Not the last → remove from this specifier start to next specifier start
222
+ start = specifier.getStart(sourceFile);
223
+ end = elements[idx + 1].getStart(sourceFile);
224
+ }
225
+ else {
226
+ // Last element → remove from previous element end to this end
227
+ start = elements[idx - 1].getEnd();
228
+ end = specifier.getEnd();
229
+ }
230
+ edits.push({ start, end, replacement: '' });
231
+ }
232
+ }
233
+ function applyEdits(source, edits) {
234
+ const unique = deduplicateEdits(edits);
235
+ let result = source;
236
+ for (const edit of unique.sort((a, b) => b.start - a.start)) {
237
+ result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);
238
+ }
239
+ return result;
240
+ }
241
+ function deduplicateEdits(edits) {
242
+ const seen = new Map();
243
+ for (const edit of edits) {
244
+ const key = `${edit.start}:${edit.end}`;
245
+ seen.set(key, edit);
246
+ }
247
+ return Array.from(seen.values());
248
+ }
249
+ function visitDir(dir, callback) {
250
+ for (const file of dir.subfiles) {
251
+ if (file.endsWith('.d.ts'))
252
+ continue;
253
+ if (!file.endsWith('.ts'))
254
+ continue;
255
+ callback(`${dir.path}/${file}`);
256
+ }
257
+ for (const sub of dir.subdirs) {
258
+ if (sub === 'node_modules' || sub === 'dist')
259
+ continue;
260
+ visitDir(dir.dir(sub), callback);
261
+ }
262
+ }
263
+ //# sourceMappingURL=index.js.map