@api-client/ui 0.5.57 → 0.6.0

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 (1015) hide show
  1. package/INSTRUCTIONS.md +141 -0
  2. package/build/src/builders/DialogBuilder.d.ts +245 -0
  3. package/build/src/builders/DialogBuilder.d.ts.map +1 -0
  4. package/build/src/builders/DialogBuilder.js +406 -0
  5. package/build/src/builders/DialogBuilder.js.map +1 -0
  6. package/build/src/cache/Cache.d.ts +72 -0
  7. package/build/src/cache/Cache.d.ts.map +1 -0
  8. package/build/src/cache/Cache.js +221 -0
  9. package/build/src/cache/Cache.js.map +1 -0
  10. package/build/src/core/Model.d.ts +18 -64
  11. package/build/src/core/Model.d.ts.map +1 -1
  12. package/build/src/core/Model.js +47 -90
  13. package/build/src/core/Model.js.map +1 -1
  14. package/build/src/core/ServiceManager.d.ts.map +1 -1
  15. package/build/src/core/ServiceManager.js +1 -0
  16. package/build/src/core/ServiceManager.js.map +1 -1
  17. package/build/src/data/BreadcrumbsModel.d.ts +37 -0
  18. package/build/src/data/BreadcrumbsModel.d.ts.map +1 -0
  19. package/build/src/data/BreadcrumbsModel.js +77 -0
  20. package/build/src/data/BreadcrumbsModel.js.map +1 -0
  21. package/build/src/data/DataCatalogModel.d.ts +53 -0
  22. package/build/src/data/DataCatalogModel.d.ts.map +1 -0
  23. package/build/src/data/DataCatalogModel.js +174 -0
  24. package/build/src/data/DataCatalogModel.js.map +1 -0
  25. package/build/src/data/DomainBrowserModel.d.ts +30 -0
  26. package/build/src/data/DomainBrowserModel.d.ts.map +1 -0
  27. package/build/src/data/DomainBrowserModel.js +113 -0
  28. package/build/src/data/DomainBrowserModel.js.map +1 -0
  29. package/build/src/data/FileModel.d.ts +36 -0
  30. package/build/src/data/FileModel.d.ts.map +1 -0
  31. package/build/src/data/FileModel.js +71 -0
  32. package/build/src/data/FileModel.js.map +1 -0
  33. package/build/src/data/FileShareModel.d.ts +57 -0
  34. package/build/src/data/FileShareModel.d.ts.map +1 -0
  35. package/build/src/data/FileShareModel.js +238 -0
  36. package/build/src/data/FileShareModel.js.map +1 -0
  37. package/build/src/data/FilesModel.d.ts +71 -0
  38. package/build/src/data/FilesModel.d.ts.map +1 -0
  39. package/build/src/data/FilesModel.js +205 -0
  40. package/build/src/data/FilesModel.js.map +1 -0
  41. package/build/src/data/InvitationModel.d.ts +27 -0
  42. package/build/src/data/InvitationModel.d.ts.map +1 -0
  43. package/build/src/data/InvitationModel.js +66 -0
  44. package/build/src/data/InvitationModel.js.map +1 -0
  45. package/build/src/data/PatchableFileModel.d.ts +167 -0
  46. package/build/src/data/PatchableFileModel.d.ts.map +1 -0
  47. package/build/src/data/PatchableFileModel.js +243 -0
  48. package/build/src/data/PatchableFileModel.js.map +1 -0
  49. package/build/src/data/PatchableLiveDataContentModel.d.ts +8 -0
  50. package/build/src/data/PatchableLiveDataContentModel.d.ts.map +1 -0
  51. package/build/src/data/PatchableLiveDataContentModel.js +32 -0
  52. package/build/src/data/PatchableLiveDataContentModel.js.map +1 -0
  53. package/build/src/data/PatchableRawContentModel.d.ts +10 -0
  54. package/build/src/data/PatchableRawContentModel.d.ts.map +1 -0
  55. package/build/src/data/PatchableRawContentModel.js +38 -0
  56. package/build/src/data/PatchableRawContentModel.js.map +1 -0
  57. package/build/src/data/TrashModel.d.ts +51 -0
  58. package/build/src/data/TrashModel.d.ts.map +1 -0
  59. package/build/src/data/TrashModel.js +112 -0
  60. package/build/src/data/TrashModel.js.map +1 -0
  61. package/build/src/data/UserModel.d.ts +28 -0
  62. package/build/src/data/UserModel.d.ts.map +1 -0
  63. package/build/src/data/UserModel.js +98 -0
  64. package/build/src/data/UserModel.js.map +1 -0
  65. package/build/src/data/UsersModel.d.ts +84 -0
  66. package/build/src/data/UsersModel.d.ts.map +1 -0
  67. package/build/src/data/UsersModel.js +307 -0
  68. package/build/src/data/UsersModel.js.map +1 -0
  69. package/build/src/data/retry_logic.d.ts +66 -0
  70. package/build/src/data/retry_logic.d.ts.map +1 -0
  71. package/build/src/data/retry_logic.js +84 -0
  72. package/build/src/data/retry_logic.js.map +1 -0
  73. package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -1
  74. package/build/src/elements/autocomplete/internals/autocomplete.js +5 -2
  75. package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -1
  76. package/build/src/elements/data-table/DataTable.d.ts +17 -0
  77. package/build/src/elements/data-table/DataTable.d.ts.map +1 -1
  78. package/build/src/elements/data-table/DataTable.js +5 -4
  79. package/build/src/elements/data-table/DataTable.js.map +1 -1
  80. package/build/src/elements/data-table/DataTable.styles.d.ts.map +1 -1
  81. package/build/src/elements/data-table/DataTable.styles.js +7 -2
  82. package/build/src/elements/data-table/DataTable.styles.js.map +1 -1
  83. package/build/src/elements/data-table/data-catalog-table.d.ts +16 -0
  84. package/build/src/elements/data-table/data-catalog-table.d.ts.map +1 -0
  85. package/build/src/elements/data-table/data-catalog-table.js +33 -0
  86. package/build/src/elements/data-table/data-catalog-table.js.map +1 -0
  87. package/build/src/elements/data-table/filesystem-table.d.ts +17 -0
  88. package/build/src/elements/data-table/filesystem-table.d.ts.map +1 -0
  89. package/build/src/elements/data-table/filesystem-table.js +35 -0
  90. package/build/src/elements/data-table/filesystem-table.js.map +1 -0
  91. package/build/src/elements/data-table/internals/DataCatalog.styles.d.ts +3 -0
  92. package/build/src/elements/data-table/internals/DataCatalog.styles.d.ts.map +1 -0
  93. package/build/src/elements/data-table/internals/DataCatalog.styles.js +29 -0
  94. package/build/src/elements/data-table/internals/DataCatalog.styles.js.map +1 -0
  95. package/build/src/elements/data-table/internals/DataCatalogTable.d.ts +44 -0
  96. package/build/src/elements/data-table/internals/DataCatalogTable.d.ts.map +1 -0
  97. package/build/src/elements/data-table/internals/DataCatalogTable.js +208 -0
  98. package/build/src/elements/data-table/internals/DataCatalogTable.js.map +1 -0
  99. package/build/src/elements/data-table/internals/Filesystem.styles.d.ts +3 -0
  100. package/build/src/elements/data-table/internals/Filesystem.styles.d.ts.map +1 -0
  101. package/build/src/elements/data-table/internals/Filesystem.styles.js +23 -0
  102. package/build/src/elements/data-table/internals/Filesystem.styles.js.map +1 -0
  103. package/build/src/elements/data-table/internals/FilesystemDataTable.d.ts +36 -0
  104. package/build/src/elements/data-table/internals/FilesystemDataTable.d.ts.map +1 -0
  105. package/build/src/elements/data-table/internals/FilesystemDataTable.js +230 -0
  106. package/build/src/elements/data-table/internals/FilesystemDataTable.js.map +1 -0
  107. package/build/src/elements/data-table/internals/TrashDataTable.d.ts +32 -0
  108. package/build/src/elements/data-table/internals/TrashDataTable.d.ts.map +1 -0
  109. package/build/src/elements/data-table/internals/TrashDataTable.js +161 -0
  110. package/build/src/elements/data-table/internals/TrashDataTable.js.map +1 -0
  111. package/build/src/elements/data-table/internals/UserData.styles.d.ts +3 -0
  112. package/build/src/elements/data-table/internals/UserData.styles.d.ts.map +1 -0
  113. package/build/src/elements/data-table/internals/UserData.styles.js +16 -0
  114. package/build/src/elements/data-table/internals/UserData.styles.js.map +1 -0
  115. package/build/src/elements/data-table/internals/UsersDataTable.d.ts +30 -0
  116. package/build/src/elements/data-table/internals/UsersDataTable.d.ts.map +1 -0
  117. package/build/src/elements/data-table/internals/UsersDataTable.js +243 -0
  118. package/build/src/elements/data-table/internals/UsersDataTable.js.map +1 -0
  119. package/build/src/elements/data-table/trash-table.d.ts +11 -0
  120. package/build/src/elements/data-table/trash-table.d.ts.map +1 -0
  121. package/build/src/elements/data-table/trash-table.js +28 -0
  122. package/build/src/elements/data-table/trash-table.js.map +1 -0
  123. package/build/src/elements/data-table/users-table.d.ts +11 -0
  124. package/build/src/elements/data-table/users-table.d.ts.map +1 -0
  125. package/build/src/elements/data-table/users-table.js +28 -0
  126. package/build/src/elements/data-table/users-table.js.map +1 -0
  127. package/build/src/elements/file-system/internals/Breadcrumbs.d.ts +0 -2
  128. package/build/src/elements/file-system/internals/Breadcrumbs.d.ts.map +1 -1
  129. package/build/src/elements/file-system/internals/Breadcrumbs.js +0 -2
  130. package/build/src/elements/file-system/internals/Breadcrumbs.js.map +1 -1
  131. package/build/src/elements/file-system/internals/QuickApiFilesystem.d.ts +197 -0
  132. package/build/src/elements/file-system/internals/QuickApiFilesystem.d.ts.map +1 -0
  133. package/build/src/elements/file-system/internals/QuickApiFilesystem.js +434 -0
  134. package/build/src/elements/file-system/internals/QuickApiFilesystem.js.map +1 -0
  135. package/build/src/elements/file-system/internals/QuickApiFilesystem.styles.d.ts +3 -0
  136. package/build/src/elements/file-system/internals/QuickApiFilesystem.styles.d.ts.map +1 -0
  137. package/build/src/elements/file-system/internals/QuickApiFilesystem.styles.js +49 -0
  138. package/build/src/elements/file-system/internals/QuickApiFilesystem.styles.js.map +1 -0
  139. package/build/src/elements/file-system/internals/ShareFile.d.ts +166 -0
  140. package/build/src/elements/file-system/internals/ShareFile.d.ts.map +1 -0
  141. package/build/src/elements/file-system/internals/ShareFile.js +581 -0
  142. package/build/src/elements/file-system/internals/ShareFile.js.map +1 -0
  143. package/build/src/elements/file-system/internals/ShareFile.styles.d.ts +3 -0
  144. package/build/src/elements/file-system/internals/ShareFile.styles.d.ts.map +1 -0
  145. package/build/src/elements/file-system/internals/ShareFile.styles.js +98 -0
  146. package/build/src/elements/file-system/internals/ShareFile.styles.js.map +1 -0
  147. package/build/src/elements/file-system/quick-api-filesystem.d.ts +11 -0
  148. package/build/src/elements/file-system/quick-api-filesystem.d.ts.map +1 -0
  149. package/build/src/elements/file-system/quick-api-filesystem.js +28 -0
  150. package/build/src/elements/file-system/quick-api-filesystem.js.map +1 -0
  151. package/build/src/elements/file-system/share-file.d.ts +20 -0
  152. package/build/src/elements/file-system/share-file.d.ts.map +1 -0
  153. package/build/src/elements/file-system/share-file.js +37 -0
  154. package/build/src/elements/file-system/share-file.js.map +1 -0
  155. package/build/src/elements/file-system/ui-breadcrumbs.d.ts +2 -0
  156. package/build/src/elements/file-system/ui-breadcrumbs.d.ts.map +1 -1
  157. package/build/src/elements/file-system/ui-breadcrumbs.js +2 -0
  158. package/build/src/elements/file-system/ui-breadcrumbs.js.map +1 -1
  159. package/build/src/elements/layout/SplitItem.d.ts.map +1 -1
  160. package/build/src/elements/layout/SplitItem.js +0 -7
  161. package/build/src/elements/layout/SplitItem.js.map +1 -1
  162. package/build/src/elements/navigation/internals/Navigation.d.ts +1 -1
  163. package/build/src/elements/navigation/internals/Navigation.d.ts.map +1 -1
  164. package/build/src/elements/navigation/internals/Navigation.js +10 -4
  165. package/build/src/elements/navigation/internals/Navigation.js.map +1 -1
  166. package/build/src/elements/search-input/internals/input.d.ts +27 -0
  167. package/build/src/elements/search-input/internals/input.d.ts.map +1 -0
  168. package/build/src/elements/search-input/internals/input.js +99 -0
  169. package/build/src/elements/search-input/internals/input.js.map +1 -0
  170. package/build/src/elements/search-input/internals/input.styles.d.ts +3 -0
  171. package/build/src/elements/search-input/internals/input.styles.d.ts.map +1 -0
  172. package/build/src/elements/search-input/internals/input.styles.js +38 -0
  173. package/build/src/elements/search-input/internals/input.styles.js.map +1 -0
  174. package/build/src/elements/search-input/search-input.d.ts +12 -0
  175. package/build/src/elements/search-input/search-input.d.ts.map +1 -0
  176. package/build/src/elements/search-input/search-input.js +30 -0
  177. package/build/src/elements/search-input/search-input.js.map +1 -0
  178. package/build/src/elements/setup/internals/InvitationScreen.d.ts +189 -0
  179. package/build/src/elements/setup/internals/InvitationScreen.d.ts.map +1 -0
  180. package/build/src/elements/setup/internals/InvitationScreen.js +466 -0
  181. package/build/src/elements/setup/internals/InvitationScreen.js.map +1 -0
  182. package/build/src/elements/setup/internals/InvitationScreen.styles.d.ts +3 -0
  183. package/build/src/elements/setup/internals/InvitationScreen.styles.d.ts.map +1 -0
  184. package/build/src/elements/setup/internals/InvitationScreen.styles.js +3 -0
  185. package/build/src/elements/setup/internals/InvitationScreen.styles.js.map +1 -0
  186. package/build/src/elements/setup/internals/LoginScreen.d.ts +61 -0
  187. package/build/src/elements/setup/internals/LoginScreen.d.ts.map +1 -0
  188. package/build/src/elements/setup/internals/LoginScreen.js +181 -0
  189. package/build/src/elements/setup/internals/LoginScreen.js.map +1 -0
  190. package/build/src/elements/setup/internals/LoginScreen.styles.d.ts +3 -0
  191. package/build/src/elements/setup/internals/LoginScreen.styles.d.ts.map +1 -0
  192. package/build/src/elements/setup/internals/LoginScreen.styles.js +3 -0
  193. package/build/src/elements/setup/internals/LoginScreen.styles.js.map +1 -0
  194. package/build/src/elements/setup/internals/OrganizationCreateScreen.d.ts +67 -0
  195. package/build/src/elements/setup/internals/OrganizationCreateScreen.d.ts.map +1 -0
  196. package/build/src/elements/setup/internals/OrganizationCreateScreen.js +194 -0
  197. package/build/src/elements/setup/internals/OrganizationCreateScreen.js.map +1 -0
  198. package/build/src/elements/setup/internals/OrganizationCreateScreen.styles.d.ts +3 -0
  199. package/build/src/elements/setup/internals/OrganizationCreateScreen.styles.d.ts.map +1 -0
  200. package/build/src/elements/setup/internals/OrganizationCreateScreen.styles.js +3 -0
  201. package/build/src/elements/setup/internals/OrganizationCreateScreen.styles.js.map +1 -0
  202. package/build/src/elements/setup/internals/OrganizationSelectionScreen.d.ts +41 -0
  203. package/build/src/elements/setup/internals/OrganizationSelectionScreen.d.ts.map +1 -0
  204. package/build/src/elements/setup/internals/OrganizationSelectionScreen.js +123 -0
  205. package/build/src/elements/setup/internals/OrganizationSelectionScreen.js.map +1 -0
  206. package/build/src/elements/setup/internals/OrganizationSelectionScreen.styles.d.ts +3 -0
  207. package/build/src/elements/setup/internals/OrganizationSelectionScreen.styles.d.ts.map +1 -0
  208. package/build/src/elements/setup/internals/OrganizationSelectionScreen.styles.js +3 -0
  209. package/build/src/elements/setup/internals/OrganizationSelectionScreen.styles.js.map +1 -0
  210. package/build/src/elements/setup/internals/OrganizationSelector.d.ts +56 -0
  211. package/build/src/elements/setup/internals/OrganizationSelector.d.ts.map +1 -0
  212. package/build/src/elements/setup/internals/OrganizationSelector.js +140 -0
  213. package/build/src/elements/setup/internals/OrganizationSelector.js.map +1 -0
  214. package/build/src/elements/setup/internals/OrganizationSelector.styles.d.ts +3 -0
  215. package/build/src/elements/setup/internals/OrganizationSelector.styles.d.ts.map +1 -0
  216. package/build/src/elements/setup/internals/OrganizationSelector.styles.js +3 -0
  217. package/build/src/elements/setup/internals/OrganizationSelector.styles.js.map +1 -0
  218. package/build/src/elements/setup/internals/common.styles.d.ts +3 -0
  219. package/build/src/elements/setup/internals/common.styles.d.ts.map +1 -0
  220. package/build/src/elements/setup/internals/common.styles.js +72 -0
  221. package/build/src/elements/setup/internals/common.styles.js.map +1 -0
  222. package/build/src/elements/setup/internals/icons.d.ts +4 -0
  223. package/build/src/elements/setup/internals/icons.d.ts.map +1 -0
  224. package/build/src/elements/setup/internals/icons.js +41 -0
  225. package/build/src/elements/setup/internals/icons.js.map +1 -0
  226. package/build/src/elements/setup/invitation-screen.d.ts +13 -0
  227. package/build/src/elements/setup/invitation-screen.d.ts.map +1 -0
  228. package/build/src/elements/setup/invitation-screen.js +32 -0
  229. package/build/src/elements/setup/invitation-screen.js.map +1 -0
  230. package/build/src/elements/setup/login-screen.d.ts +12 -0
  231. package/build/src/elements/setup/login-screen.d.ts.map +1 -0
  232. package/build/src/elements/setup/login-screen.js +31 -0
  233. package/build/src/elements/setup/login-screen.js.map +1 -0
  234. package/build/src/elements/setup/organization-create-screen.d.ts +13 -0
  235. package/build/src/elements/setup/organization-create-screen.d.ts.map +1 -0
  236. package/build/src/elements/setup/organization-create-screen.js +32 -0
  237. package/build/src/elements/setup/organization-create-screen.js.map +1 -0
  238. package/build/src/elements/setup/organization-selection-screen.d.ts +14 -0
  239. package/build/src/elements/setup/organization-selection-screen.d.ts.map +1 -0
  240. package/build/src/elements/setup/organization-selection-screen.js +33 -0
  241. package/build/src/elements/setup/organization-selection-screen.js.map +1 -0
  242. package/build/src/elements/setup/organization-selector.d.ts +32 -0
  243. package/build/src/elements/setup/organization-selector.d.ts.map +1 -0
  244. package/build/src/elements/setup/organization-selector.js +50 -0
  245. package/build/src/elements/setup/organization-selector.js.map +1 -0
  246. package/build/src/elements/user/internals/UserAvatar.d.ts +3 -1
  247. package/build/src/elements/user/internals/UserAvatar.d.ts.map +1 -1
  248. package/build/src/elements/user/internals/UserAvatar.js +5 -1
  249. package/build/src/elements/user/internals/UserAvatar.js.map +1 -1
  250. package/build/src/events/DomainEvents.d.ts +31 -0
  251. package/build/src/events/DomainEvents.d.ts.map +1 -0
  252. package/build/src/events/DomainEvents.js +65 -0
  253. package/build/src/events/DomainEvents.js.map +1 -0
  254. package/build/src/events/EventTypes.d.ts +7 -0
  255. package/build/src/events/EventTypes.d.ts.map +1 -1
  256. package/build/src/events/EventTypes.js +8 -0
  257. package/build/src/events/EventTypes.js.map +1 -1
  258. package/build/src/events/Events.d.ts +32 -25
  259. package/build/src/events/Events.d.ts.map +1 -1
  260. package/build/src/events/Events.js +2 -0
  261. package/build/src/events/Events.js.map +1 -1
  262. package/build/src/exceptions/builder.d.ts +11 -0
  263. package/build/src/exceptions/builder.d.ts.map +1 -0
  264. package/build/src/exceptions/builder.js +29 -0
  265. package/build/src/exceptions/builder.js.map +1 -0
  266. package/build/src/help/help_coordinator.d.ts +82 -0
  267. package/build/src/help/help_coordinator.d.ts.map +1 -0
  268. package/build/src/help/help_coordinator.js +206 -0
  269. package/build/src/help/help_coordinator.js.map +1 -0
  270. package/build/src/help/help_panel.d.ts +88 -0
  271. package/build/src/help/help_panel.d.ts.map +1 -0
  272. package/build/src/help/help_panel.js +323 -0
  273. package/build/src/help/help_panel.js.map +1 -0
  274. package/build/src/help/help_panel.styles.d.ts +3 -0
  275. package/build/src/help/help_panel.styles.d.ts.map +1 -0
  276. package/build/src/help/help_panel.styles.js +196 -0
  277. package/build/src/help/help_panel.styles.js.map +1 -0
  278. package/build/src/help/help_service_controller.d.ts +108 -0
  279. package/build/src/help/help_service_controller.d.ts.map +1 -0
  280. package/build/src/help/help_service_controller.js +252 -0
  281. package/build/src/help/help_service_controller.js.map +1 -0
  282. package/build/src/help/help_topic.d.ts +60 -0
  283. package/build/src/help/help_topic.d.ts.map +1 -0
  284. package/build/src/help/help_topic.js +2 -0
  285. package/build/src/help/help_topic.js.map +1 -0
  286. package/build/src/help/index.d.ts +6 -0
  287. package/build/src/help/index.d.ts.map +1 -0
  288. package/build/src/help/index.js +6 -0
  289. package/build/src/help/index.js.map +1 -0
  290. package/build/src/help/render.d.ts +14 -0
  291. package/build/src/help/render.d.ts.map +1 -0
  292. package/build/src/help/render.js +37 -0
  293. package/build/src/help/render.js.map +1 -0
  294. package/build/src/lib/Dom.d.ts +7 -0
  295. package/build/src/lib/Dom.d.ts.map +1 -1
  296. package/build/src/lib/Dom.js +33 -0
  297. package/build/src/lib/Dom.js.map +1 -1
  298. package/build/src/lib/files/Utils.d.ts +10 -0
  299. package/build/src/lib/files/Utils.d.ts.map +1 -1
  300. package/build/src/lib/files/Utils.js +47 -0
  301. package/build/src/lib/files/Utils.js.map +1 -1
  302. package/build/src/md/button/internals/base.d.ts +5 -0
  303. package/build/src/md/button/internals/base.d.ts.map +1 -1
  304. package/build/src/md/button/internals/base.js +23 -4
  305. package/build/src/md/button/internals/base.js.map +1 -1
  306. package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts.map +1 -1
  307. package/build/src/md/dropdown-list/internals/UiDropdownList.js +11 -5
  308. package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
  309. package/build/src/md/icons/Icons.d.ts +2 -1
  310. package/build/src/md/icons/Icons.d.ts.map +1 -1
  311. package/build/src/md/icons/Icons.js +1 -0
  312. package/build/src/md/icons/Icons.js.map +1 -1
  313. package/build/src/md/input/Input.d.ts.map +1 -1
  314. package/build/src/md/input/Input.js +14 -9
  315. package/build/src/md/input/Input.js.map +1 -1
  316. package/build/src/md/list/internals/List.d.ts +8 -0
  317. package/build/src/md/list/internals/List.d.ts.map +1 -1
  318. package/build/src/md/list/internals/List.js +24 -2
  319. package/build/src/md/list/internals/List.js.map +1 -1
  320. package/build/src/md/list/internals/ListItem.d.ts.map +1 -1
  321. package/build/src/md/list/internals/ListItem.js +8 -4
  322. package/build/src/md/list/internals/ListItem.js.map +1 -1
  323. package/build/src/md/menu/internal/Menu.js +2 -2
  324. package/build/src/md/menu/internal/Menu.js.map +1 -1
  325. package/build/src/md/menu/internal/Menu.styles.d.ts.map +1 -1
  326. package/build/src/md/menu/internal/Menu.styles.js +4 -2
  327. package/build/src/md/menu/internal/Menu.styles.js.map +1 -1
  328. package/build/src/md/select/internals/Select.d.ts +4 -3
  329. package/build/src/md/select/internals/Select.d.ts.map +1 -1
  330. package/build/src/md/select/internals/Select.js +12 -15
  331. package/build/src/md/select/internals/Select.js.map +1 -1
  332. package/build/src/md/select/internals/Select.styles.d.ts.map +1 -1
  333. package/build/src/md/select/internals/Select.styles.js +3 -0
  334. package/build/src/md/select/internals/Select.styles.js.map +1 -1
  335. package/build/src/md/switch/internals/SwitchElement.js +3 -3
  336. package/build/src/md/switch/internals/SwitchElement.js.map +1 -1
  337. package/build/src/modeling/api-create-action-editor.d.ts +17 -0
  338. package/build/src/modeling/api-create-action-editor.d.ts.map +1 -0
  339. package/build/src/modeling/api-create-action-editor.js +34 -0
  340. package/build/src/modeling/api-create-action-editor.js.map +1 -0
  341. package/build/src/modeling/api-delete-action-editor.d.ts +21 -0
  342. package/build/src/modeling/api-delete-action-editor.d.ts.map +1 -0
  343. package/build/src/modeling/api-delete-action-editor.js +38 -0
  344. package/build/src/modeling/api-delete-action-editor.js.map +1 -0
  345. package/build/src/modeling/api-list-action-editor.d.ts +25 -0
  346. package/build/src/modeling/api-list-action-editor.d.ts.map +1 -0
  347. package/build/src/modeling/api-list-action-editor.js +42 -0
  348. package/build/src/modeling/api-list-action-editor.js.map +1 -0
  349. package/build/src/modeling/api-modeling-access-configuration.d.ts +21 -0
  350. package/build/src/modeling/api-modeling-access-configuration.d.ts.map +1 -0
  351. package/build/src/modeling/api-modeling-access-configuration.js +37 -0
  352. package/build/src/modeling/api-modeling-access-configuration.js.map +1 -0
  353. package/build/src/modeling/api-modeling-access.d.ts +19 -0
  354. package/build/src/modeling/api-modeling-access.d.ts.map +1 -0
  355. package/build/src/modeling/api-modeling-access.js +39 -0
  356. package/build/src/modeling/api-modeling-access.js.map +1 -0
  357. package/build/src/modeling/api-modeling-actions.d.ts +20 -0
  358. package/build/src/modeling/api-modeling-actions.d.ts.map +1 -0
  359. package/build/src/modeling/api-modeling-actions.js +40 -0
  360. package/build/src/modeling/api-modeling-actions.js.map +1 -0
  361. package/build/src/modeling/api-modeling-description.d.ts +15 -0
  362. package/build/src/modeling/api-modeling-description.d.ts.map +1 -0
  363. package/build/src/modeling/api-modeling-description.js +35 -0
  364. package/build/src/modeling/api-modeling-description.js.map +1 -0
  365. package/build/src/modeling/api-modeling-entity-card.d.ts +11 -0
  366. package/build/src/modeling/api-modeling-entity-card.d.ts.map +1 -0
  367. package/build/src/modeling/api-modeling-entity-card.js +28 -0
  368. package/build/src/modeling/api-modeling-entity-card.js.map +1 -0
  369. package/build/src/modeling/api-modeling-entity-editor.d.ts +17 -0
  370. package/build/src/modeling/api-modeling-entity-editor.d.ts.map +1 -0
  371. package/build/src/modeling/api-modeling-entity-editor.js +35 -0
  372. package/build/src/modeling/api-modeling-entity-editor.js.map +1 -0
  373. package/build/src/modeling/api-modeling-navigation.d.ts +13 -0
  374. package/build/src/modeling/api-modeling-navigation.d.ts.map +1 -0
  375. package/build/src/modeling/api-modeling-navigation.js +31 -0
  376. package/build/src/modeling/api-modeling-navigation.js.map +1 -0
  377. package/build/src/modeling/api-modeling-rate-limiting.d.ts +19 -0
  378. package/build/src/modeling/api-modeling-rate-limiting.d.ts.map +1 -0
  379. package/build/src/modeling/api-modeling-rate-limiting.js +35 -0
  380. package/build/src/modeling/api-modeling-rate-limiting.js.map +1 -0
  381. package/build/src/modeling/api-modeling-session.d.ts +31 -0
  382. package/build/src/modeling/api-modeling-session.d.ts.map +1 -0
  383. package/build/src/modeling/api-modeling-session.js +51 -0
  384. package/build/src/modeling/api-modeling-session.js.map +1 -0
  385. package/build/src/modeling/api-read-action-editor.d.ts +17 -0
  386. package/build/src/modeling/api-read-action-editor.d.ts.map +1 -0
  387. package/build/src/modeling/api-read-action-editor.js +34 -0
  388. package/build/src/modeling/api-read-action-editor.js.map +1 -0
  389. package/build/src/modeling/api-search-action-editor.d.ts +22 -0
  390. package/build/src/modeling/api-search-action-editor.d.ts.map +1 -0
  391. package/build/src/modeling/api-search-action-editor.js +39 -0
  392. package/build/src/modeling/api-search-action-editor.js.map +1 -0
  393. package/build/src/modeling/api-update-action-editor.d.ts +18 -0
  394. package/build/src/modeling/api-update-action-editor.d.ts.map +1 -0
  395. package/build/src/modeling/api-update-action-editor.js +35 -0
  396. package/build/src/modeling/api-update-action-editor.js.map +1 -0
  397. package/build/src/modeling/data-catalog-browser.d.ts +12 -0
  398. package/build/src/modeling/data-catalog-browser.d.ts.map +1 -0
  399. package/build/src/modeling/data-catalog-browser.js +28 -0
  400. package/build/src/modeling/data-catalog-browser.js.map +1 -0
  401. package/build/src/modeling/dialogs/CalculatedTaxonomy.d.ts +64 -0
  402. package/build/src/modeling/dialogs/CalculatedTaxonomy.d.ts.map +1 -0
  403. package/build/src/modeling/dialogs/CalculatedTaxonomy.js +299 -0
  404. package/build/src/modeling/dialogs/CalculatedTaxonomy.js.map +1 -0
  405. package/build/src/modeling/dialogs/CategoryTaxonomy.d.ts +25 -0
  406. package/build/src/modeling/dialogs/CategoryTaxonomy.d.ts.map +1 -0
  407. package/build/src/modeling/dialogs/CategoryTaxonomy.js +210 -0
  408. package/build/src/modeling/dialogs/CategoryTaxonomy.js.map +1 -0
  409. package/build/src/modeling/dialogs/CurrencyTaxonomy.d.ts +27 -0
  410. package/build/src/modeling/dialogs/CurrencyTaxonomy.d.ts.map +1 -0
  411. package/build/src/modeling/dialogs/CurrencyTaxonomy.js +212 -0
  412. package/build/src/modeling/dialogs/CurrencyTaxonomy.js.map +1 -0
  413. package/build/src/modeling/dialogs/EmailTaxonomy.d.ts +21 -0
  414. package/build/src/modeling/dialogs/EmailTaxonomy.d.ts.map +1 -0
  415. package/build/src/modeling/dialogs/EmailTaxonomy.js +166 -0
  416. package/build/src/modeling/dialogs/EmailTaxonomy.js.map +1 -0
  417. package/build/src/modeling/dialogs/GeospatialCoordinatesTaxonomy.d.ts +34 -0
  418. package/build/src/modeling/dialogs/GeospatialCoordinatesTaxonomy.d.ts.map +1 -0
  419. package/build/src/modeling/dialogs/GeospatialCoordinatesTaxonomy.js +488 -0
  420. package/build/src/modeling/dialogs/GeospatialCoordinatesTaxonomy.js.map +1 -0
  421. package/build/src/modeling/dialogs/HtmlTaxonomy.d.ts +31 -0
  422. package/build/src/modeling/dialogs/HtmlTaxonomy.d.ts.map +1 -0
  423. package/build/src/modeling/dialogs/HtmlTaxonomy.js +331 -0
  424. package/build/src/modeling/dialogs/HtmlTaxonomy.js.map +1 -0
  425. package/build/src/modeling/dialogs/MarkdownTaxonomy.d.ts +29 -0
  426. package/build/src/modeling/dialogs/MarkdownTaxonomy.d.ts.map +1 -0
  427. package/build/src/modeling/dialogs/MarkdownTaxonomy.js +290 -0
  428. package/build/src/modeling/dialogs/MarkdownTaxonomy.js.map +1 -0
  429. package/build/src/modeling/dialogs/PasswordTaxonomy.d.ts +22 -0
  430. package/build/src/modeling/dialogs/PasswordTaxonomy.d.ts.map +1 -0
  431. package/build/src/modeling/dialogs/PasswordTaxonomy.js +206 -0
  432. package/build/src/modeling/dialogs/PasswordTaxonomy.js.map +1 -0
  433. package/build/src/modeling/dialogs/PhoneTaxonomy.d.ts +21 -0
  434. package/build/src/modeling/dialogs/PhoneTaxonomy.d.ts.map +1 -0
  435. package/build/src/modeling/dialogs/PhoneTaxonomy.js +242 -0
  436. package/build/src/modeling/dialogs/PhoneTaxonomy.js.map +1 -0
  437. package/build/src/modeling/dialogs/PublicUniqueNameTaxonomy.d.ts +28 -0
  438. package/build/src/modeling/dialogs/PublicUniqueNameTaxonomy.d.ts.map +1 -0
  439. package/build/src/modeling/dialogs/PublicUniqueNameTaxonomy.js +205 -0
  440. package/build/src/modeling/dialogs/PublicUniqueNameTaxonomy.js.map +1 -0
  441. package/build/src/modeling/dialogs/SkuTaxonomy.d.ts +31 -0
  442. package/build/src/modeling/dialogs/SkuTaxonomy.d.ts.map +1 -0
  443. package/build/src/modeling/dialogs/SkuTaxonomy.js +319 -0
  444. package/build/src/modeling/dialogs/SkuTaxonomy.js.map +1 -0
  445. package/build/src/modeling/dialogs/StatusTaxonomy.d.ts +27 -0
  446. package/build/src/modeling/dialogs/StatusTaxonomy.d.ts.map +1 -0
  447. package/build/src/modeling/dialogs/StatusTaxonomy.js +138 -0
  448. package/build/src/modeling/dialogs/StatusTaxonomy.js.map +1 -0
  449. package/build/src/modeling/dialogs/TagsTaxonomy.d.ts +23 -0
  450. package/build/src/modeling/dialogs/TagsTaxonomy.d.ts.map +1 -0
  451. package/build/src/modeling/dialogs/TagsTaxonomy.js +169 -0
  452. package/build/src/modeling/dialogs/TagsTaxonomy.js.map +1 -0
  453. package/build/src/modeling/dialogs/TaxonomyDialog.d.ts +53 -0
  454. package/build/src/modeling/dialogs/TaxonomyDialog.d.ts.map +1 -0
  455. package/build/src/modeling/dialogs/TaxonomyDialog.js +176 -0
  456. package/build/src/modeling/dialogs/TaxonomyDialog.js.map +1 -0
  457. package/build/src/modeling/dialogs/UrlTaxonomy.d.ts +19 -0
  458. package/build/src/modeling/dialogs/UrlTaxonomy.d.ts.map +1 -0
  459. package/build/src/modeling/dialogs/UrlTaxonomy.js +199 -0
  460. package/build/src/modeling/dialogs/UrlTaxonomy.js.map +1 -0
  461. package/build/src/modeling/dialogs/common.d.ts +3 -0
  462. package/build/src/modeling/dialogs/common.d.ts.map +1 -0
  463. package/build/src/modeling/dialogs/common.js +52 -0
  464. package/build/src/modeling/dialogs/common.js.map +1 -0
  465. package/build/src/modeling/domain-association-editor.d.ts +20 -0
  466. package/build/src/modeling/domain-association-editor.d.ts.map +1 -0
  467. package/build/src/modeling/domain-association-editor.js +38 -0
  468. package/build/src/modeling/domain-association-editor.js.map +1 -0
  469. package/build/src/modeling/domain-auto-fields-dialog.d.ts +23 -0
  470. package/build/src/modeling/domain-auto-fields-dialog.d.ts.map +1 -0
  471. package/build/src/modeling/domain-auto-fields-dialog.js +58 -0
  472. package/build/src/modeling/domain-auto-fields-dialog.js.map +1 -0
  473. package/build/src/modeling/domain-browser.d.ts +19 -0
  474. package/build/src/modeling/domain-browser.d.ts.map +1 -0
  475. package/build/src/modeling/domain-browser.js +37 -0
  476. package/build/src/modeling/domain-browser.js.map +1 -0
  477. package/build/src/modeling/domain-entity-editor.d.ts +26 -0
  478. package/build/src/modeling/domain-entity-editor.d.ts.map +1 -0
  479. package/build/src/modeling/domain-entity-editor.js +46 -0
  480. package/build/src/modeling/domain-entity-editor.js.map +1 -0
  481. package/build/src/modeling/domain-file-import.d.ts +16 -0
  482. package/build/src/modeling/domain-file-import.d.ts.map +1 -0
  483. package/build/src/modeling/domain-file-import.js +34 -0
  484. package/build/src/modeling/domain-file-import.js.map +1 -0
  485. package/build/src/modeling/domain-model-editor.d.ts +13 -0
  486. package/build/src/modeling/domain-model-editor.d.ts.map +1 -0
  487. package/build/src/modeling/domain-model-editor.js +33 -0
  488. package/build/src/modeling/domain-model-editor.js.map +1 -0
  489. package/build/src/modeling/domain-namespace-editor.d.ts +14 -0
  490. package/build/src/modeling/domain-namespace-editor.d.ts.map +1 -0
  491. package/build/src/modeling/domain-namespace-editor.js +34 -0
  492. package/build/src/modeling/domain-namespace-editor.js.map +1 -0
  493. package/build/src/modeling/domain-navigation.d.ts +15 -0
  494. package/build/src/modeling/domain-navigation.d.ts.map +1 -0
  495. package/build/src/modeling/domain-navigation.js +33 -0
  496. package/build/src/modeling/domain-navigation.js.map +1 -0
  497. package/build/src/modeling/domain-property-editor.d.ts +14 -0
  498. package/build/src/modeling/domain-property-editor.d.ts.map +1 -0
  499. package/build/src/modeling/domain-property-editor.js +33 -0
  500. package/build/src/modeling/domain-property-editor.js.map +1 -0
  501. package/build/src/modeling/domain-template-browser.d.ts +14 -0
  502. package/build/src/modeling/domain-template-browser.d.ts.map +1 -0
  503. package/build/src/modeling/domain-template-browser.js +31 -0
  504. package/build/src/modeling/domain-template-browser.js.map +1 -0
  505. package/build/src/modeling/domain-validation-report.d.ts +13 -0
  506. package/build/src/modeling/domain-validation-report.d.ts.map +1 -0
  507. package/build/src/modeling/domain-validation-report.js +30 -0
  508. package/build/src/modeling/domain-validation-report.js.map +1 -0
  509. package/build/src/modeling/internals/ApiCreateActionEditor.d.ts +60 -0
  510. package/build/src/modeling/internals/ApiCreateActionEditor.d.ts.map +1 -0
  511. package/build/src/modeling/internals/ApiCreateActionEditor.js +216 -0
  512. package/build/src/modeling/internals/ApiCreateActionEditor.js.map +1 -0
  513. package/build/src/modeling/internals/ApiDeleteActionEditor.d.ts +70 -0
  514. package/build/src/modeling/internals/ApiDeleteActionEditor.d.ts.map +1 -0
  515. package/build/src/modeling/internals/ApiDeleteActionEditor.js +301 -0
  516. package/build/src/modeling/internals/ApiDeleteActionEditor.js.map +1 -0
  517. package/build/src/modeling/internals/ApiEditor.d.ts +59 -0
  518. package/build/src/modeling/internals/ApiEditor.d.ts.map +1 -0
  519. package/build/src/modeling/internals/ApiEditor.js +119 -0
  520. package/build/src/modeling/internals/ApiEditor.js.map +1 -0
  521. package/build/src/modeling/internals/ApiListActionEditor.d.ts +93 -0
  522. package/build/src/modeling/internals/ApiListActionEditor.d.ts.map +1 -0
  523. package/build/src/modeling/internals/ApiListActionEditor.js +505 -0
  524. package/build/src/modeling/internals/ApiListActionEditor.js.map +1 -0
  525. package/build/src/modeling/internals/ApiModelingAccessConfiguration.d.ts +100 -0
  526. package/build/src/modeling/internals/ApiModelingAccessConfiguration.d.ts.map +1 -0
  527. package/build/src/modeling/internals/ApiModelingAccessConfiguration.js +607 -0
  528. package/build/src/modeling/internals/ApiModelingAccessConfiguration.js.map +1 -0
  529. package/build/src/modeling/internals/ApiModelingAccessScreen.d.ts +36 -0
  530. package/build/src/modeling/internals/ApiModelingAccessScreen.d.ts.map +1 -0
  531. package/build/src/modeling/internals/ApiModelingAccessScreen.js +296 -0
  532. package/build/src/modeling/internals/ApiModelingAccessScreen.js.map +1 -0
  533. package/build/src/modeling/internals/ApiModelingActionsScreen.d.ts +82 -0
  534. package/build/src/modeling/internals/ApiModelingActionsScreen.d.ts.map +1 -0
  535. package/build/src/modeling/internals/ApiModelingActionsScreen.js +298 -0
  536. package/build/src/modeling/internals/ApiModelingActionsScreen.js.map +1 -0
  537. package/build/src/modeling/internals/ApiModelingDescriptionScreen.d.ts +40 -0
  538. package/build/src/modeling/internals/ApiModelingDescriptionScreen.d.ts.map +1 -0
  539. package/build/src/modeling/internals/ApiModelingDescriptionScreen.js +356 -0
  540. package/build/src/modeling/internals/ApiModelingDescriptionScreen.js.map +1 -0
  541. package/build/src/modeling/internals/ApiModelingEntityCard.d.ts +74 -0
  542. package/build/src/modeling/internals/ApiModelingEntityCard.d.ts.map +1 -0
  543. package/build/src/modeling/internals/ApiModelingEntityCard.js +225 -0
  544. package/build/src/modeling/internals/ApiModelingEntityCard.js.map +1 -0
  545. package/build/src/modeling/internals/ApiModelingEntityEditor.d.ts +50 -0
  546. package/build/src/modeling/internals/ApiModelingEntityEditor.d.ts.map +1 -0
  547. package/build/src/modeling/internals/ApiModelingEntityEditor.js +384 -0
  548. package/build/src/modeling/internals/ApiModelingEntityEditor.js.map +1 -0
  549. package/build/src/modeling/internals/ApiModelingNavigation.d.ts +36 -0
  550. package/build/src/modeling/internals/ApiModelingNavigation.d.ts.map +1 -0
  551. package/build/src/modeling/internals/ApiModelingNavigation.js +115 -0
  552. package/build/src/modeling/internals/ApiModelingNavigation.js.map +1 -0
  553. package/build/src/modeling/internals/ApiModelingRateLimiting.d.ts +59 -0
  554. package/build/src/modeling/internals/ApiModelingRateLimiting.d.ts.map +1 -0
  555. package/build/src/modeling/internals/ApiModelingRateLimiting.js +394 -0
  556. package/build/src/modeling/internals/ApiModelingRateLimiting.js.map +1 -0
  557. package/build/src/modeling/internals/ApiModelingScreen.d.ts +23 -0
  558. package/build/src/modeling/internals/ApiModelingScreen.d.ts.map +1 -0
  559. package/build/src/modeling/internals/ApiModelingScreen.js +50 -0
  560. package/build/src/modeling/internals/ApiModelingScreen.js.map +1 -0
  561. package/build/src/modeling/internals/ApiModelingSessionScreen.d.ts +79 -0
  562. package/build/src/modeling/internals/ApiModelingSessionScreen.d.ts.map +1 -0
  563. package/build/src/modeling/internals/ApiModelingSessionScreen.js +708 -0
  564. package/build/src/modeling/internals/ApiModelingSessionScreen.js.map +1 -0
  565. package/build/src/modeling/internals/ApiReadActionEditor.d.ts +60 -0
  566. package/build/src/modeling/internals/ApiReadActionEditor.d.ts.map +1 -0
  567. package/build/src/modeling/internals/ApiReadActionEditor.js +216 -0
  568. package/build/src/modeling/internals/ApiReadActionEditor.js.map +1 -0
  569. package/build/src/modeling/internals/ApiSearchActionEditor.d.ts +75 -0
  570. package/build/src/modeling/internals/ApiSearchActionEditor.d.ts.map +1 -0
  571. package/build/src/modeling/internals/ApiSearchActionEditor.js +340 -0
  572. package/build/src/modeling/internals/ApiSearchActionEditor.js.map +1 -0
  573. package/build/src/modeling/internals/ApiUpdateActionEditor.d.ts +67 -0
  574. package/build/src/modeling/internals/ApiUpdateActionEditor.d.ts.map +1 -0
  575. package/build/src/modeling/internals/ApiUpdateActionEditor.js +301 -0
  576. package/build/src/modeling/internals/ApiUpdateActionEditor.js.map +1 -0
  577. package/build/src/modeling/internals/DataCatalogBrowser.d.ts +108 -0
  578. package/build/src/modeling/internals/DataCatalogBrowser.d.ts.map +1 -0
  579. package/build/src/modeling/internals/DataCatalogBrowser.js +320 -0
  580. package/build/src/modeling/internals/DataCatalogBrowser.js.map +1 -0
  581. package/build/src/modeling/internals/DomainAssociationEditor.d.ts +116 -0
  582. package/build/src/modeling/internals/DomainAssociationEditor.d.ts.map +1 -0
  583. package/build/src/modeling/internals/DomainAssociationEditor.js +688 -0
  584. package/build/src/modeling/internals/DomainAssociationEditor.js.map +1 -0
  585. package/build/src/modeling/internals/DomainAutoFieldsDialog.d.ts +45 -0
  586. package/build/src/modeling/internals/DomainAutoFieldsDialog.d.ts.map +1 -0
  587. package/build/src/modeling/internals/DomainAutoFieldsDialog.js +290 -0
  588. package/build/src/modeling/internals/DomainAutoFieldsDialog.js.map +1 -0
  589. package/build/src/modeling/internals/DomainBrowser.d.ts +176 -0
  590. package/build/src/modeling/internals/DomainBrowser.d.ts.map +1 -0
  591. package/build/src/modeling/internals/DomainBrowser.js +492 -0
  592. package/build/src/modeling/internals/DomainBrowser.js.map +1 -0
  593. package/build/src/modeling/internals/DomainEntityEditor.d.ts +168 -0
  594. package/build/src/modeling/internals/DomainEntityEditor.d.ts.map +1 -0
  595. package/build/src/modeling/internals/DomainEntityEditor.js +1183 -0
  596. package/build/src/modeling/internals/DomainEntityEditor.js.map +1 -0
  597. package/build/src/modeling/internals/DomainFileImport.d.ts +101 -0
  598. package/build/src/modeling/internals/DomainFileImport.d.ts.map +1 -0
  599. package/build/src/modeling/internals/DomainFileImport.js +473 -0
  600. package/build/src/modeling/internals/DomainFileImport.js.map +1 -0
  601. package/build/src/modeling/internals/DomainModelEditor.d.ts +15 -0
  602. package/build/src/modeling/internals/DomainModelEditor.d.ts.map +1 -0
  603. package/build/src/modeling/internals/DomainModelEditor.js +81 -0
  604. package/build/src/modeling/internals/DomainModelEditor.js.map +1 -0
  605. package/build/src/modeling/internals/DomainNamespaceEditor.d.ts +15 -0
  606. package/build/src/modeling/internals/DomainNamespaceEditor.d.ts.map +1 -0
  607. package/build/src/modeling/internals/DomainNamespaceEditor.js +81 -0
  608. package/build/src/modeling/internals/DomainNamespaceEditor.js.map +1 -0
  609. package/build/src/modeling/internals/DomainNavigation.d.ts +352 -0
  610. package/build/src/modeling/internals/DomainNavigation.d.ts.map +1 -0
  611. package/build/src/modeling/internals/DomainNavigation.js +1734 -0
  612. package/build/src/modeling/internals/DomainNavigation.js.map +1 -0
  613. package/build/src/modeling/internals/DomainPropertyEditor.d.ts +289 -0
  614. package/build/src/modeling/internals/DomainPropertyEditor.d.ts.map +1 -0
  615. package/build/src/modeling/internals/DomainPropertyEditor.js +1478 -0
  616. package/build/src/modeling/internals/DomainPropertyEditor.js.map +1 -0
  617. package/build/src/modeling/internals/DomainTemplateBrowser.d.ts +82 -0
  618. package/build/src/modeling/internals/DomainTemplateBrowser.d.ts.map +1 -0
  619. package/build/src/modeling/internals/DomainTemplateBrowser.js +492 -0
  620. package/build/src/modeling/internals/DomainTemplateBrowser.js.map +1 -0
  621. package/build/src/modeling/internals/DomainValidationReport.d.ts +85 -0
  622. package/build/src/modeling/internals/DomainValidationReport.d.ts.map +1 -0
  623. package/build/src/modeling/internals/DomainValidationReport.js +372 -0
  624. package/build/src/modeling/internals/DomainValidationReport.js.map +1 -0
  625. package/build/src/modeling/internals/ModelingElement.d.ts +56 -0
  626. package/build/src/modeling/internals/ModelingElement.d.ts.map +1 -0
  627. package/build/src/modeling/internals/ModelingElement.js +122 -0
  628. package/build/src/modeling/internals/ModelingElement.js.map +1 -0
  629. package/build/src/modeling/internals/styles/AccessConfiguration.styles.d.ts +3 -0
  630. package/build/src/modeling/internals/styles/AccessConfiguration.styles.d.ts.map +1 -0
  631. package/build/src/modeling/internals/styles/AccessConfiguration.styles.js +106 -0
  632. package/build/src/modeling/internals/styles/AccessConfiguration.styles.js.map +1 -0
  633. package/build/src/modeling/internals/styles/ApiCreateActionEditor.styles.d.ts +3 -0
  634. package/build/src/modeling/internals/styles/ApiCreateActionEditor.styles.d.ts.map +1 -0
  635. package/build/src/modeling/internals/styles/ApiCreateActionEditor.styles.js +15 -0
  636. package/build/src/modeling/internals/styles/ApiCreateActionEditor.styles.js.map +1 -0
  637. package/build/src/modeling/internals/styles/ApiDeleteActionEditor.styles.d.ts +3 -0
  638. package/build/src/modeling/internals/styles/ApiDeleteActionEditor.styles.d.ts.map +1 -0
  639. package/build/src/modeling/internals/styles/ApiDeleteActionEditor.styles.js +15 -0
  640. package/build/src/modeling/internals/styles/ApiDeleteActionEditor.styles.js.map +1 -0
  641. package/build/src/modeling/internals/styles/ApiListActionEditor.styles.d.ts +3 -0
  642. package/build/src/modeling/internals/styles/ApiListActionEditor.styles.d.ts.map +1 -0
  643. package/build/src/modeling/internals/styles/ApiListActionEditor.styles.js +15 -0
  644. package/build/src/modeling/internals/styles/ApiListActionEditor.styles.js.map +1 -0
  645. package/build/src/modeling/internals/styles/ApiModelingActionsScreen.styles.d.ts +3 -0
  646. package/build/src/modeling/internals/styles/ApiModelingActionsScreen.styles.d.ts.map +1 -0
  647. package/build/src/modeling/internals/styles/ApiModelingActionsScreen.styles.js +31 -0
  648. package/build/src/modeling/internals/styles/ApiModelingActionsScreen.styles.js.map +1 -0
  649. package/build/src/modeling/internals/styles/ApiModelingEntityCard.d.ts +3 -0
  650. package/build/src/modeling/internals/styles/ApiModelingEntityCard.d.ts.map +1 -0
  651. package/build/src/modeling/internals/styles/ApiModelingEntityCard.js +85 -0
  652. package/build/src/modeling/internals/styles/ApiModelingEntityCard.js.map +1 -0
  653. package/build/src/modeling/internals/styles/ApiModelingEntityEditor.d.ts +3 -0
  654. package/build/src/modeling/internals/styles/ApiModelingEntityEditor.d.ts.map +1 -0
  655. package/build/src/modeling/internals/styles/ApiModelingEntityEditor.js +68 -0
  656. package/build/src/modeling/internals/styles/ApiModelingEntityEditor.js.map +1 -0
  657. package/build/src/modeling/internals/styles/ApiModelingNavigation.styles.d.ts +3 -0
  658. package/build/src/modeling/internals/styles/ApiModelingNavigation.styles.d.ts.map +1 -0
  659. package/build/src/modeling/internals/styles/ApiModelingNavigation.styles.js +23 -0
  660. package/build/src/modeling/internals/styles/ApiModelingNavigation.styles.js.map +1 -0
  661. package/build/src/modeling/internals/styles/ApiReadActionEditor.styles.d.ts +3 -0
  662. package/build/src/modeling/internals/styles/ApiReadActionEditor.styles.d.ts.map +1 -0
  663. package/build/src/modeling/internals/styles/ApiReadActionEditor.styles.js +15 -0
  664. package/build/src/modeling/internals/styles/ApiReadActionEditor.styles.js.map +1 -0
  665. package/build/src/modeling/internals/styles/ApiSearchActionEditor.styles.d.ts +3 -0
  666. package/build/src/modeling/internals/styles/ApiSearchActionEditor.styles.d.ts.map +1 -0
  667. package/build/src/modeling/internals/styles/ApiSearchActionEditor.styles.js +15 -0
  668. package/build/src/modeling/internals/styles/ApiSearchActionEditor.styles.js.map +1 -0
  669. package/build/src/modeling/internals/styles/ApiUpdateActionEditor.styles.d.ts +3 -0
  670. package/build/src/modeling/internals/styles/ApiUpdateActionEditor.styles.d.ts.map +1 -0
  671. package/build/src/modeling/internals/styles/ApiUpdateActionEditor.styles.js +15 -0
  672. package/build/src/modeling/internals/styles/ApiUpdateActionEditor.styles.js.map +1 -0
  673. package/build/src/modeling/internals/styles/DataCatalogBrowser.styles.d.ts +3 -0
  674. package/build/src/modeling/internals/styles/DataCatalogBrowser.styles.d.ts.map +1 -0
  675. package/build/src/modeling/internals/styles/DataCatalogBrowser.styles.js +53 -0
  676. package/build/src/modeling/internals/styles/DataCatalogBrowser.styles.js.map +1 -0
  677. package/build/src/modeling/internals/styles/DomainAutoFieldsDialog.d.ts +3 -0
  678. package/build/src/modeling/internals/styles/DomainAutoFieldsDialog.d.ts.map +1 -0
  679. package/build/src/modeling/internals/styles/DomainAutoFieldsDialog.js +35 -0
  680. package/build/src/modeling/internals/styles/DomainAutoFieldsDialog.js.map +1 -0
  681. package/build/src/modeling/internals/styles/DomainBrowser.styles.d.ts +3 -0
  682. package/build/src/modeling/internals/styles/DomainBrowser.styles.d.ts.map +1 -0
  683. package/build/src/modeling/internals/styles/DomainBrowser.styles.js +26 -0
  684. package/build/src/modeling/internals/styles/DomainBrowser.styles.js.map +1 -0
  685. package/build/src/modeling/internals/styles/DomainEntityEditor.styles.d.ts +3 -0
  686. package/build/src/modeling/internals/styles/DomainEntityEditor.styles.d.ts.map +1 -0
  687. package/build/src/modeling/internals/styles/DomainEntityEditor.styles.js +98 -0
  688. package/build/src/modeling/internals/styles/DomainEntityEditor.styles.js.map +1 -0
  689. package/build/src/modeling/internals/styles/DomainFileImport.styles.d.ts +3 -0
  690. package/build/src/modeling/internals/styles/DomainFileImport.styles.d.ts.map +1 -0
  691. package/build/src/modeling/internals/styles/DomainFileImport.styles.js +100 -0
  692. package/build/src/modeling/internals/styles/DomainFileImport.styles.js.map +1 -0
  693. package/build/src/modeling/internals/styles/DomainModelEditor.styles.d.ts +3 -0
  694. package/build/src/modeling/internals/styles/DomainModelEditor.styles.d.ts.map +1 -0
  695. package/build/src/modeling/internals/styles/DomainModelEditor.styles.js +7 -0
  696. package/build/src/modeling/internals/styles/DomainModelEditor.styles.js.map +1 -0
  697. package/build/src/modeling/internals/styles/DomainNamespaceEditor.styles.d.ts +3 -0
  698. package/build/src/modeling/internals/styles/DomainNamespaceEditor.styles.d.ts.map +1 -0
  699. package/build/src/modeling/internals/styles/DomainNamespaceEditor.styles.js +7 -0
  700. package/build/src/modeling/internals/styles/DomainNamespaceEditor.styles.js.map +1 -0
  701. package/build/src/modeling/internals/styles/DomainNavigation.styles.d.ts +3 -0
  702. package/build/src/modeling/internals/styles/DomainNavigation.styles.d.ts.map +1 -0
  703. package/build/src/modeling/internals/styles/DomainNavigation.styles.js +343 -0
  704. package/build/src/modeling/internals/styles/DomainNavigation.styles.js.map +1 -0
  705. package/build/src/modeling/internals/styles/DomainPropertyEditor.styles.d.ts +3 -0
  706. package/build/src/modeling/internals/styles/DomainPropertyEditor.styles.d.ts.map +1 -0
  707. package/build/src/modeling/internals/styles/DomainPropertyEditor.styles.js +18 -0
  708. package/build/src/modeling/internals/styles/DomainPropertyEditor.styles.js.map +1 -0
  709. package/build/src/modeling/internals/styles/DomainTemplateBrowser.styles.d.ts +3 -0
  710. package/build/src/modeling/internals/styles/DomainTemplateBrowser.styles.d.ts.map +1 -0
  711. package/build/src/modeling/internals/styles/DomainTemplateBrowser.styles.js +553 -0
  712. package/build/src/modeling/internals/styles/DomainTemplateBrowser.styles.js.map +1 -0
  713. package/build/src/modeling/internals/styles/DomainValidationReport.styles.d.ts +3 -0
  714. package/build/src/modeling/internals/styles/DomainValidationReport.styles.d.ts.map +1 -0
  715. package/build/src/modeling/internals/styles/DomainValidationReport.styles.js +75 -0
  716. package/build/src/modeling/internals/styles/DomainValidationReport.styles.js.map +1 -0
  717. package/build/src/modeling/internals/styles/EditorCommon.styles.d.ts +8 -0
  718. package/build/src/modeling/internals/styles/EditorCommon.styles.d.ts.map +1 -0
  719. package/build/src/modeling/internals/styles/EditorCommon.styles.js +141 -0
  720. package/build/src/modeling/internals/styles/EditorCommon.styles.js.map +1 -0
  721. package/build/src/modeling/internals/styles/RateLimiting.styles.d.ts +3 -0
  722. package/build/src/modeling/internals/styles/RateLimiting.styles.d.ts.map +1 -0
  723. package/build/src/modeling/internals/styles/RateLimiting.styles.js +83 -0
  724. package/build/src/modeling/internals/styles/RateLimiting.styles.js.map +1 -0
  725. package/build/src/modeling/internals/styles/api.styles.d.ts +3 -0
  726. package/build/src/modeling/internals/styles/api.styles.d.ts.map +1 -0
  727. package/build/src/modeling/internals/styles/api.styles.js +146 -0
  728. package/build/src/modeling/internals/styles/api.styles.js.map +1 -0
  729. package/build/src/modeling/internals/styles/form_styles.d.ts +3 -0
  730. package/build/src/modeling/internals/styles/form_styles.d.ts.map +1 -0
  731. package/build/src/modeling/internals/styles/form_styles.js +107 -0
  732. package/build/src/modeling/internals/styles/form_styles.js.map +1 -0
  733. package/build/src/modeling/internals/styles/learning.styles.d.ts +3 -0
  734. package/build/src/modeling/internals/styles/learning.styles.d.ts.map +1 -0
  735. package/build/src/modeling/internals/styles/learning.styles.js +40 -0
  736. package/build/src/modeling/internals/styles/learning.styles.js.map +1 -0
  737. package/build/src/modeling/lib/access_helpers.d.ts +8 -0
  738. package/build/src/modeling/lib/access_helpers.d.ts.map +1 -0
  739. package/build/src/modeling/lib/access_helpers.js +42 -0
  740. package/build/src/modeling/lib/access_helpers.js.map +1 -0
  741. package/build/src/modeling/lib/formula_parser.d.ts +57 -0
  742. package/build/src/modeling/lib/formula_parser.d.ts.map +1 -0
  743. package/build/src/modeling/lib/formula_parser.js +162 -0
  744. package/build/src/modeling/lib/formula_parser.js.map +1 -0
  745. package/build/src/modeling/lib/ui_mapping.d.ts +60 -0
  746. package/build/src/modeling/lib/ui_mapping.d.ts.map +1 -0
  747. package/build/src/modeling/lib/ui_mapping.js +244 -0
  748. package/build/src/modeling/lib/ui_mapping.js.map +1 -0
  749. package/build/src/modeling/lib/validators.d.ts +15 -0
  750. package/build/src/modeling/lib/validators.d.ts.map +1 -0
  751. package/build/src/modeling/lib/validators.js +26 -0
  752. package/build/src/modeling/lib/validators.js.map +1 -0
  753. package/build/src/modeling/types.d.ts +261 -0
  754. package/build/src/modeling/types.d.ts.map +1 -0
  755. package/build/src/modeling/types.js +2 -0
  756. package/build/src/modeling/types.js.map +1 -0
  757. package/build/src/providers/organization.d.ts +9 -0
  758. package/build/src/providers/organization.d.ts.map +1 -0
  759. package/build/src/providers/organization.js +6 -0
  760. package/build/src/providers/organization.js.map +1 -0
  761. package/build/src/providers/organizations.d.ts +9 -0
  762. package/build/src/providers/organizations.d.ts.map +1 -0
  763. package/build/src/providers/organizations.js +6 -0
  764. package/build/src/providers/organizations.js.map +1 -0
  765. package/build/src/providers/user.d.ts +9 -0
  766. package/build/src/providers/user.d.ts.map +1 -0
  767. package/build/src/providers/user.js +6 -0
  768. package/build/src/providers/user.js.map +1 -0
  769. package/build/src/services/CacheService.d.ts +29 -0
  770. package/build/src/services/CacheService.d.ts.map +1 -0
  771. package/build/src/services/CacheService.js +47 -0
  772. package/build/src/services/CacheService.js.map +1 -0
  773. package/build/src/services/ConfigurationService.d.ts +12 -0
  774. package/build/src/services/ConfigurationService.d.ts.map +1 -0
  775. package/build/src/services/ConfigurationService.js +23 -0
  776. package/build/src/services/ConfigurationService.js.map +1 -0
  777. package/build/src/services/LoggingService.d.ts +29 -0
  778. package/build/src/services/LoggingService.d.ts.map +1 -0
  779. package/build/src/services/LoggingService.js +49 -0
  780. package/build/src/services/LoggingService.js.map +1 -0
  781. package/build/src/services/OrganizationService.d.ts +79 -0
  782. package/build/src/services/OrganizationService.d.ts.map +1 -0
  783. package/build/src/services/OrganizationService.js +222 -0
  784. package/build/src/services/OrganizationService.js.map +1 -0
  785. package/build/src/services/SdkService.d.ts +22 -0
  786. package/build/src/services/SdkService.d.ts.map +1 -0
  787. package/build/src/services/SdkService.js +46 -0
  788. package/build/src/services/SdkService.js.map +1 -0
  789. package/build/src/services/TransmitService.d.ts +14 -0
  790. package/build/src/services/TransmitService.d.ts.map +1 -0
  791. package/build/src/services/TransmitService.js +23 -0
  792. package/build/src/services/TransmitService.js.map +1 -0
  793. package/build/src/services/UserCacheService.d.ts +22 -0
  794. package/build/src/services/UserCacheService.d.ts.map +1 -0
  795. package/build/src/services/UserCacheService.js +49 -0
  796. package/build/src/services/UserCacheService.js.map +1 -0
  797. package/build/src/services/UserService.d.ts +50 -0
  798. package/build/src/services/UserService.d.ts.map +1 -0
  799. package/build/src/services/UserService.js +199 -0
  800. package/build/src/services/UserService.js.map +1 -0
  801. package/build/src/services/api_service.d.ts +22 -0
  802. package/build/src/services/api_service.d.ts.map +1 -0
  803. package/build/src/services/api_service.js +4 -0
  804. package/build/src/services/api_service.js.map +1 -0
  805. package/build/tsconfig.tsbuildinfo +1 -1
  806. package/lit-plugin.log +7904 -0
  807. package/package.json +20 -9
  808. package/src/builders/DialogBuilder.ts +474 -0
  809. package/src/builders/README.md +272 -0
  810. package/src/cache/Cache.ts +265 -0
  811. package/src/core/Model.ts +53 -119
  812. package/src/core/ServiceManager.ts +1 -0
  813. package/src/data/BreadcrumbsModel.ts +85 -0
  814. package/src/data/DataCatalogModel.ts +199 -0
  815. package/src/data/DomainBrowserModel.ts +118 -0
  816. package/src/data/FileModel.ts +76 -0
  817. package/src/data/FileShareModel.ts +258 -0
  818. package/src/data/FilesModel.ts +226 -0
  819. package/src/data/InvitationModel.ts +69 -0
  820. package/src/data/PatchableFileModel.ts +293 -0
  821. package/src/data/PatchableLiveDataContentModel.ts +34 -0
  822. package/src/data/PatchableRawContentModel.ts +43 -0
  823. package/src/data/TrashModel.ts +125 -0
  824. package/src/data/UserModel.ts +102 -0
  825. package/src/data/UsersModel.ts +325 -0
  826. package/src/data/retry_logic.ts +111 -0
  827. package/src/elements/autocomplete/internals/autocomplete.ts +5 -2
  828. package/src/elements/data-table/DataTable.styles.ts +7 -2
  829. package/src/elements/data-table/DataTable.ts +24 -5
  830. package/src/elements/data-table/data-catalog-table.ts +22 -0
  831. package/src/elements/data-table/filesystem-table.ts +24 -0
  832. package/src/elements/data-table/internals/DataCatalog.styles.ts +29 -0
  833. package/src/elements/data-table/internals/DataCatalogTable.ts +234 -0
  834. package/src/elements/data-table/internals/Filesystem.styles.ts +23 -0
  835. package/src/elements/data-table/internals/FilesystemDataTable.ts +227 -0
  836. package/src/elements/data-table/internals/TrashDataTable.ts +157 -0
  837. package/src/elements/data-table/internals/UserData.styles.ts +16 -0
  838. package/src/elements/data-table/internals/UsersDataTable.ts +238 -0
  839. package/src/elements/data-table/trash-table.ts +16 -0
  840. package/src/elements/data-table/users-table.ts +16 -0
  841. package/src/elements/file-system/internals/Breadcrumbs.ts +0 -3
  842. package/src/elements/file-system/internals/QuickApiFilesystem.styles.ts +49 -0
  843. package/src/elements/file-system/internals/QuickApiFilesystem.ts +452 -0
  844. package/src/elements/file-system/internals/ShareFile.styles.ts +98 -0
  845. package/src/elements/file-system/internals/ShareFile.ts +540 -0
  846. package/src/elements/file-system/quick-api-filesystem.ts +16 -0
  847. package/src/elements/file-system/share-file.ts +26 -0
  848. package/src/elements/file-system/ui-breadcrumbs.ts +3 -0
  849. package/src/elements/layout/SplitItem.ts +0 -8
  850. package/src/elements/navigation/internals/Navigation.ts +9 -4
  851. package/src/elements/search-input/internals/input.styles.ts +38 -0
  852. package/src/elements/search-input/internals/input.ts +74 -0
  853. package/src/elements/search-input/search-input.ts +18 -0
  854. package/src/elements/setup/Readme.md +3 -0
  855. package/src/elements/setup/internals/InvitationScreen.styles.ts +3 -0
  856. package/src/elements/setup/internals/InvitationScreen.ts +418 -0
  857. package/src/elements/setup/internals/LoginScreen.styles.ts +3 -0
  858. package/src/elements/setup/internals/LoginScreen.ts +136 -0
  859. package/src/elements/setup/internals/OrganizationCreateScreen.styles.ts +3 -0
  860. package/src/elements/setup/internals/OrganizationCreateScreen.ts +170 -0
  861. package/src/elements/setup/internals/OrganizationSelectionScreen.styles.ts +3 -0
  862. package/src/elements/setup/internals/OrganizationSelectionScreen.ts +100 -0
  863. package/src/elements/setup/internals/OrganizationSelector.styles.ts +3 -0
  864. package/src/elements/setup/internals/OrganizationSelector.ts +133 -0
  865. package/src/elements/setup/internals/common.styles.ts +72 -0
  866. package/src/elements/setup/internals/icons.ts +43 -0
  867. package/src/elements/setup/invitation-screen.ts +20 -0
  868. package/src/elements/setup/login-screen.ts +19 -0
  869. package/src/elements/setup/organization-create-screen.ts +20 -0
  870. package/src/elements/setup/organization-selection-screen.ts +21 -0
  871. package/src/elements/setup/organization-selector.ts +38 -0
  872. package/src/elements/user/internals/UserAvatar.ts +7 -2
  873. package/src/events/DomainEvents.ts +80 -0
  874. package/src/events/EventTypes.ts +8 -0
  875. package/src/events/Events.ts +2 -0
  876. package/src/exceptions/builder.ts +28 -0
  877. package/src/help/README.md +99 -0
  878. package/src/help/help_coordinator.ts +168 -0
  879. package/src/help/help_panel.styles.ts +196 -0
  880. package/src/help/help_panel.ts +329 -0
  881. package/src/help/help_service_controller.ts +338 -0
  882. package/src/help/help_topic.ts +61 -0
  883. package/src/help/index.ts +8 -0
  884. package/src/help/render.ts +41 -0
  885. package/src/lib/Dom.ts +36 -0
  886. package/src/lib/files/Utils.ts +65 -0
  887. package/src/md/button/internals/base.ts +15 -3
  888. package/src/md/dropdown-list/internals/UiDropdownList.ts +11 -4
  889. package/src/md/icons/Icons.ts +8 -0
  890. package/src/md/input/Input.ts +14 -9
  891. package/src/md/list/internals/List.ts +17 -1
  892. package/src/md/list/internals/ListItem.ts +6 -4
  893. package/src/md/menu/internal/Menu.styles.ts +4 -2
  894. package/src/md/menu/internal/Menu.ts +2 -2
  895. package/src/md/select/internals/Select.styles.ts +3 -0
  896. package/src/md/select/internals/Select.ts +16 -18
  897. package/src/md/switch/internals/SwitchElement.ts +3 -3
  898. package/src/modeling/api-create-action-editor.ts +23 -0
  899. package/src/modeling/api-delete-action-editor.ts +27 -0
  900. package/src/modeling/api-list-action-editor.ts +31 -0
  901. package/src/modeling/api-modeling-access-configuration.ts +28 -0
  902. package/src/modeling/api-modeling-access.ts +27 -0
  903. package/src/modeling/api-modeling-actions.ts +30 -0
  904. package/src/modeling/api-modeling-description.ts +23 -0
  905. package/src/modeling/api-modeling-entity-card.ts +16 -0
  906. package/src/modeling/api-modeling-entity-editor.ts +24 -0
  907. package/src/modeling/api-modeling-navigation.ts +19 -0
  908. package/src/modeling/api-modeling-rate-limiting.ts +26 -0
  909. package/src/modeling/api-modeling-session.ts +39 -0
  910. package/src/modeling/api-read-action-editor.ts +23 -0
  911. package/src/modeling/api-search-action-editor.ts +28 -0
  912. package/src/modeling/api-update-action-editor.ts +24 -0
  913. package/src/modeling/data-catalog-browser.ts +18 -0
  914. package/src/modeling/dialogs/CalculatedTaxonomy.ts +305 -0
  915. package/src/modeling/dialogs/CategoryTaxonomy.ts +210 -0
  916. package/src/modeling/dialogs/CurrencyTaxonomy.ts +209 -0
  917. package/src/modeling/dialogs/EmailTaxonomy.ts +163 -0
  918. package/src/modeling/dialogs/GeospatialCoordinatesTaxonomy.ts +500 -0
  919. package/src/modeling/dialogs/HtmlTaxonomy.ts +333 -0
  920. package/src/modeling/dialogs/MarkdownTaxonomy.ts +290 -0
  921. package/src/modeling/dialogs/PasswordTaxonomy.ts +201 -0
  922. package/src/modeling/dialogs/PhoneTaxonomy.ts +238 -0
  923. package/src/modeling/dialogs/PublicUniqueNameTaxonomy.ts +212 -0
  924. package/src/modeling/dialogs/SkuTaxonomy.ts +321 -0
  925. package/src/modeling/dialogs/StatusTaxonomy.ts +132 -0
  926. package/src/modeling/dialogs/TagsTaxonomy.ts +163 -0
  927. package/src/modeling/dialogs/TaxonomyDialog.ts +183 -0
  928. package/src/modeling/dialogs/UrlTaxonomy.ts +194 -0
  929. package/src/modeling/dialogs/common.ts +52 -0
  930. package/src/modeling/domain-association-editor.ts +26 -0
  931. package/src/modeling/domain-auto-fields-dialog.ts +55 -0
  932. package/src/modeling/domain-browser.ts +25 -0
  933. package/src/modeling/domain-entity-editor.ts +34 -0
  934. package/src/modeling/domain-file-import.ts +22 -0
  935. package/src/modeling/domain-model-editor.ts +21 -0
  936. package/src/modeling/domain-namespace-editor.ts +22 -0
  937. package/src/modeling/domain-navigation.ts +21 -0
  938. package/src/modeling/domain-property-editor.ts +21 -0
  939. package/src/modeling/domain-template-browser.ts +19 -0
  940. package/src/modeling/domain-validation-report.ts +18 -0
  941. package/src/modeling/internals/ApiCreateActionEditor.ts +177 -0
  942. package/src/modeling/internals/ApiDeleteActionEditor.ts +269 -0
  943. package/src/modeling/internals/ApiEditor.ts +91 -0
  944. package/src/modeling/internals/ApiListActionEditor.ts +479 -0
  945. package/src/modeling/internals/ApiModelingAccessConfiguration.ts +606 -0
  946. package/src/modeling/internals/ApiModelingAccessScreen.ts +279 -0
  947. package/src/modeling/internals/ApiModelingActionsScreen.ts +333 -0
  948. package/src/modeling/internals/ApiModelingDescriptionScreen.ts +342 -0
  949. package/src/modeling/internals/ApiModelingEntityCard.ts +210 -0
  950. package/src/modeling/internals/ApiModelingEntityEditor.ts +363 -0
  951. package/src/modeling/internals/ApiModelingNavigation.ts +87 -0
  952. package/src/modeling/internals/ApiModelingRateLimiting.ts +389 -0
  953. package/src/modeling/internals/ApiModelingScreen.ts +43 -0
  954. package/src/modeling/internals/ApiModelingSessionScreen.ts +725 -0
  955. package/src/modeling/internals/ApiReadActionEditor.ts +177 -0
  956. package/src/modeling/internals/ApiSearchActionEditor.ts +302 -0
  957. package/src/modeling/internals/ApiUpdateActionEditor.ts +266 -0
  958. package/src/modeling/internals/DataCatalogBrowser.ts +286 -0
  959. package/src/modeling/internals/DomainAssociationEditor.ts +722 -0
  960. package/src/modeling/internals/DomainAutoFieldsDialog.ts +281 -0
  961. package/src/modeling/internals/DomainBrowser.ts +499 -0
  962. package/src/modeling/internals/DomainEntityEditor.ts +1245 -0
  963. package/src/modeling/internals/DomainFileImport.ts +482 -0
  964. package/src/modeling/internals/DomainModelEditor.ts +87 -0
  965. package/src/modeling/internals/DomainNamespaceEditor.ts +87 -0
  966. package/src/modeling/internals/DomainNavigation.ts +1887 -0
  967. package/src/modeling/internals/DomainPropertyEditor.ts +1506 -0
  968. package/src/modeling/internals/DomainTemplateBrowser.ts +500 -0
  969. package/src/modeling/internals/DomainValidationReport.ts +291 -0
  970. package/src/modeling/internals/ModelingElement.ts +95 -0
  971. package/src/modeling/internals/styles/AccessConfiguration.styles.ts +106 -0
  972. package/src/modeling/internals/styles/ApiCreateActionEditor.styles.ts +15 -0
  973. package/src/modeling/internals/styles/ApiDeleteActionEditor.styles.ts +15 -0
  974. package/src/modeling/internals/styles/ApiListActionEditor.styles.ts +15 -0
  975. package/src/modeling/internals/styles/ApiModelingActionsScreen.styles.ts +31 -0
  976. package/src/modeling/internals/styles/ApiModelingEntityCard.ts +85 -0
  977. package/src/modeling/internals/styles/ApiModelingEntityEditor.ts +68 -0
  978. package/src/modeling/internals/styles/ApiModelingNavigation.styles.ts +23 -0
  979. package/src/modeling/internals/styles/ApiReadActionEditor.styles.ts +15 -0
  980. package/src/modeling/internals/styles/ApiSearchActionEditor.styles.ts +15 -0
  981. package/src/modeling/internals/styles/ApiUpdateActionEditor.styles.ts +15 -0
  982. package/src/modeling/internals/styles/DataCatalogBrowser.styles.ts +53 -0
  983. package/src/modeling/internals/styles/DomainAutoFieldsDialog.ts +35 -0
  984. package/src/modeling/internals/styles/DomainBrowser.styles.ts +26 -0
  985. package/src/modeling/internals/styles/DomainEntityEditor.styles.ts +98 -0
  986. package/src/modeling/internals/styles/DomainFileImport.styles.ts +100 -0
  987. package/src/modeling/internals/styles/DomainModelEditor.styles.ts +7 -0
  988. package/src/modeling/internals/styles/DomainNamespaceEditor.styles.ts +7 -0
  989. package/src/modeling/internals/styles/DomainNavigation.styles.ts +343 -0
  990. package/src/modeling/internals/styles/DomainPropertyEditor.styles.ts +18 -0
  991. package/src/modeling/internals/styles/DomainTemplateBrowser.styles.ts +553 -0
  992. package/src/modeling/internals/styles/DomainValidationReport.styles.ts +75 -0
  993. package/src/modeling/internals/styles/EditorCommon.styles.ts +141 -0
  994. package/src/modeling/internals/styles/RateLimiting.styles.ts +83 -0
  995. package/src/modeling/internals/styles/api.styles.ts +146 -0
  996. package/src/modeling/internals/styles/form_styles.ts +107 -0
  997. package/src/modeling/internals/styles/learning.styles.ts +40 -0
  998. package/src/modeling/lib/access_helpers.ts +57 -0
  999. package/src/modeling/lib/formula_parser.ts +187 -0
  1000. package/src/modeling/lib/ui_mapping.ts +258 -0
  1001. package/src/modeling/lib/validators.ts +30 -0
  1002. package/src/modeling/types.ts +279 -0
  1003. package/src/providers/organization.ts +7 -0
  1004. package/src/providers/organizations.ts +7 -0
  1005. package/src/providers/user.ts +7 -0
  1006. package/src/services/CacheService.ts +56 -0
  1007. package/src/services/ConfigurationService.ts +28 -0
  1008. package/src/services/LoggingService.ts +60 -0
  1009. package/src/services/OrganizationService.ts +238 -0
  1010. package/src/services/SdkService.ts +57 -0
  1011. package/src/services/TransmitService.ts +28 -0
  1012. package/src/services/UserCacheService.ts +51 -0
  1013. package/src/services/UserService.ts +214 -0
  1014. package/src/services/api_service.ts +24 -0
  1015. package/tsconfig.json +19 -4
@@ -0,0 +1,1887 @@
1
+ import { html, type PropertyValues, type TemplateResult } from 'lit'
2
+ import { property, state } from 'lit/decorators.js'
3
+ import { LitElement } from 'lit'
4
+ import { classMap } from 'lit/directives/class-map.js'
5
+ import { DataDomain } from '@api-client/core/modeling/DataDomain.js'
6
+ import {
7
+ DataDomainKind,
8
+ DomainAssociationKind,
9
+ DomainEntityKind,
10
+ DomainModelKind,
11
+ DomainNamespaceKind,
12
+ DomainPropertyKind,
13
+ } from '@api-client/core/models/kinds.js'
14
+ import type { DomainNamespace } from '@api-client/core/modeling/DomainNamespace.js'
15
+ import type { DomainModel } from '@api-client/core/modeling/DomainModel.js'
16
+ import type { DomainEntity } from '@api-client/core/modeling/DomainEntity.js'
17
+ import type { DomainSearchResult } from '@api-client/core/modeling/types.js'
18
+ import type { DomainSelectionInfo } from '../types.js'
19
+ import { getDomainLabel, getFieldIcon, getDomainIconType } from '../lib/ui_mapping.js'
20
+ import type { DomainProperty } from '@api-client/core/modeling/DomainProperty.js'
21
+ import type { DomainAssociation } from '@api-client/core/modeling/DomainAssociation.js'
22
+ import type { DomainElement } from '@api-client/core/modeling/DomainElement.js'
23
+ import type { IconType } from '../../md/icons/Icons.js'
24
+
25
+ /**
26
+ * Event detail for multi-selection
27
+ */
28
+ export interface DomainMultiSelectionEventDetail {
29
+ items: DomainSelectionInfo[]
30
+ selectionType: string
31
+ }
32
+
33
+ /**
34
+ * Event detail for drag and drop operations
35
+ */
36
+ export interface DomainDragDropEventDetail {
37
+ items: DomainSelectionInfo[]
38
+ target: DomainSelectionInfo
39
+ }
40
+
41
+ /**
42
+ * A new navigation element for DataDomain hierarchy that supports:
43
+ * - Single click selection with selection events
44
+ * - Ctrl+click multi-selection
45
+ * - Drag and drop operations with proper validation
46
+ * - Mixed selection type prevention
47
+ *
48
+ * @fires items-selected {CustomEvent<DomainMultiSelectionEventDetail>} - when multiple items are selected
49
+ * @fires items-dropped {CustomEvent<DomainDragDropEventDetail>} - when items are dropped (or pasted)
50
+ * @fires item-selected {CustomEvent<DomainSelectionInfo>} - when a single item is selected
51
+ * @fires selection-cleared {CustomEvent<void>} - when selection is cleared
52
+ * @fires items-cut {CustomEvent<{ items: DomainSelectionInfo[], cutItemsType: string }>} - when items are cut
53
+ */
54
+ export default class DomainNavigation extends LitElement {
55
+ /**
56
+ * The root DataDomain to render
57
+ */
58
+ @property({ type: Object })
59
+ accessor root: DataDomain | undefined
60
+
61
+ #selected: string | undefined
62
+
63
+ /**
64
+ * The currently selected item key.
65
+ * To be used by the parent component to control selection.
66
+ * @attribute selected
67
+ */
68
+ @property({ type: String })
69
+ set selected(value: string | undefined) {
70
+ const old = this.#selected
71
+ this.#selected = value
72
+ this.requestUpdate('selected', old)
73
+ }
74
+
75
+ get selected(): string | undefined {
76
+ return this.#selected
77
+ }
78
+
79
+ /**
80
+ * Highlighted item key for visual indication.
81
+ * Highlighted item only renders with a different style. Has no other meaning.
82
+ */
83
+ @property({ type: String }) accessor highlighted: string | undefined
84
+
85
+ /**
86
+ * Currently selected items
87
+ */
88
+ @state()
89
+ accessor selectedItems = new Set<DomainSelectionInfo>()
90
+
91
+ /**
92
+ * The type of currently selected items (namespace, model, or entity)
93
+ */
94
+ @state()
95
+ accessor selectionType: string | undefined
96
+
97
+ /**
98
+ * Items currently being dragged
99
+ */
100
+ @state()
101
+ accessor draggedItems = new Set<DomainSelectionInfo>()
102
+
103
+ /**
104
+ * Current drag target
105
+ */
106
+ @state()
107
+ accessor dragTarget: string | undefined
108
+
109
+ /**
110
+ * Set of parent items (by key) that are opened/expanded in the view
111
+ */
112
+ @state()
113
+ accessor openedParents = new Set<string>()
114
+
115
+ /**
116
+ * Items that have been cut and are waiting to be pasted
117
+ */
118
+ @state()
119
+ accessor cutItems = new Set<DomainSelectionInfo>()
120
+
121
+ /**
122
+ * The type of items that were cut
123
+ */
124
+ @state()
125
+ accessor cutItemsType: string | undefined
126
+
127
+ /**
128
+ * Currently focused item key for keyboard navigation
129
+ */
130
+ @state()
131
+ accessor focusedItem: string | undefined
132
+
133
+ /**
134
+ * Current search query
135
+ */
136
+ @state()
137
+ accessor searchQuery: string | undefined
138
+
139
+ /**
140
+ * Search results from domain search
141
+ */
142
+ @state()
143
+ accessor searchResults: DomainSearchResult[] = []
144
+
145
+ /**
146
+ * List of all visible items in navigation order (for keyboard navigation)
147
+ */
148
+ private visibleItems: DomainSelectionInfo[] = []
149
+
150
+ // Utility methods for working with selection sets
151
+
152
+ /**
153
+ * Check if an item is selected by key
154
+ */
155
+ private isItemSelected(key: string): boolean {
156
+ for (const item of this.selectedItems) {
157
+ if (item.key === key) return true
158
+ }
159
+ return false
160
+ }
161
+
162
+ /**
163
+ * Check if an item is dragged by key
164
+ */
165
+ private isItemDragged(key: string): boolean {
166
+ for (const item of this.draggedItems) {
167
+ if (item.key === key) return true
168
+ }
169
+ return false
170
+ }
171
+
172
+ /**
173
+ * Check if an item is cut by key
174
+ */
175
+ private isItemCut(key: string): boolean {
176
+ for (const item of this.cutItems) {
177
+ if (item.key === key) return true
178
+ }
179
+ return false
180
+ }
181
+
182
+ /**
183
+ * Remove item from selection by key
184
+ */
185
+ private removeFromSelection(key: string): void {
186
+ for (const item of this.selectedItems) {
187
+ if (item.key === key) {
188
+ this.selectedItems.delete(item)
189
+ break
190
+ }
191
+ }
192
+ }
193
+
194
+ constructor() {
195
+ super()
196
+ this.handleDomainChange = this.handleDomainChange.bind(this)
197
+ this.handleKeyDown = this.handleKeyDown.bind(this)
198
+ this.addEventListener('focus', this.handleFocus.bind(this))
199
+ }
200
+
201
+ override connectedCallback(): void {
202
+ super.connectedCallback()
203
+ this.setAttribute('aria-label', 'Domain hierarchy navigation')
204
+ this.setAttribute('role', 'tree')
205
+ this.setAttribute('tabindex', '0') // Make component focusable for keyboard events
206
+
207
+ // Add keyboard event listener
208
+ this.addEventListener('keydown', this.handleKeyDown)
209
+ }
210
+
211
+ override disconnectedCallback(): void {
212
+ super.disconnectedCallback()
213
+
214
+ // Clean up keyboard event listener
215
+ this.removeEventListener('keydown', this.handleKeyDown)
216
+ }
217
+
218
+ protected handleFocus(): void {
219
+ if (!this.focusedItem) {
220
+ this.updateVisibleItemsList()
221
+ this.focusedItem = this.visibleItems[0]?.key
222
+ }
223
+ if (!this.focusedItem) {
224
+ return
225
+ }
226
+ this.removeAttribute('tabindex')
227
+ }
228
+
229
+ protected override willUpdate(cp: PropertyValues<this>): void {
230
+ if (cp.has('root')) {
231
+ const old = cp.get('root')
232
+ if (old) {
233
+ old.removeEventListener('change', this.handleDomainChange)
234
+ }
235
+ this.root?.addEventListener('change', this.handleDomainChange)
236
+
237
+ // Initialize collapsed state for new root
238
+ if (this.root && this.root !== old) {
239
+ this.initializeOpenedParents()
240
+ }
241
+ }
242
+ if (cp.has('selected')) {
243
+ this.selectedItems.clear()
244
+ if (this.selected) {
245
+ const selectedItem = this.findItemDetails(this.selected)
246
+ if (selectedItem) {
247
+ this.selectedItems.add(selectedItem)
248
+ }
249
+ this.ensureVisibility(this.selected)
250
+ }
251
+ }
252
+ super.willUpdate(cp)
253
+ }
254
+
255
+ protected override updated(cp: PropertyValues<this>): void {
256
+ super.updated(cp)
257
+ if (cp.has('focusedItem')) {
258
+ this.focusOnCurrentItem()
259
+ }
260
+ }
261
+
262
+ protected handleDomainChange(): void {
263
+ this.requestUpdate()
264
+ }
265
+
266
+ /**
267
+ * Toggle collapsed state of a parent item
268
+ */
269
+ protected toggleCollapsed(key: string, event?: MouseEvent): void {
270
+ if (event) {
271
+ event.preventDefault()
272
+ event.stopPropagation()
273
+ }
274
+
275
+ if (this.openedParents.has(key)) {
276
+ this.openedParents.delete(key)
277
+ } else {
278
+ this.openedParents.add(key)
279
+ }
280
+ this.requestUpdate()
281
+ }
282
+
283
+ /**
284
+ * Check if an item is collapsed
285
+ */
286
+ protected isCollapsed(key: string): boolean {
287
+ return !this.openedParents.has(key)
288
+ }
289
+
290
+ /**
291
+ * Initialize the opened state.
292
+ *
293
+ * @TODO: When selection change from the outside, we should also update the openedParents
294
+ * to ensure that the parent of the selected item is always expanded.
295
+ */
296
+ protected initializeOpenedParents(): void {
297
+ this.openedParents.clear()
298
+ }
299
+
300
+ protected ensureVisibility(key: string): void {
301
+ if (!this.root) return
302
+
303
+ const node = this.root.graph.node(key)
304
+ if (!node) {
305
+ return
306
+ }
307
+ let current: DataDomain | DomainNamespace | DomainModel | DomainEntity | undefined = node.getParentInstance()
308
+ while (current) {
309
+ if (current.key === this.root.key) {
310
+ current = undefined
311
+ break // Reached the root, no need to expand further
312
+ }
313
+ this.openedParents.add(current.key)
314
+ if (!(current instanceof DataDomain)) {
315
+ current = current.getParentInstance()
316
+ } else {
317
+ current = undefined // No parent for DataDomain
318
+ }
319
+ }
320
+ this.requestUpdate()
321
+ }
322
+
323
+ /**
324
+ * Expand all collapsed items
325
+ */
326
+ expandAll(): void {
327
+ this.openedParents.clear()
328
+
329
+ if (!this.root) return
330
+
331
+ const collectParentKeys = (container: DataDomain | DomainNamespace): void => {
332
+ // Add namespaces that have children
333
+ for (const namespace of container.listNamespaces()) {
334
+ if (namespace.hasFields()) {
335
+ this.openedParents.add(namespace.key)
336
+ collectParentKeys(namespace)
337
+ }
338
+ }
339
+
340
+ // Add models that have entities
341
+ for (const model of container.listModels()) {
342
+ if (model.hasFields()) {
343
+ this.openedParents.add(model.key)
344
+ }
345
+ }
346
+ }
347
+
348
+ collectParentKeys(this.root)
349
+ this.requestUpdate()
350
+ }
351
+
352
+ /**
353
+ * Collapse all parent items
354
+ */
355
+ collapseAll(): void {
356
+ this.openedParents.clear()
357
+ this.requestUpdate()
358
+ }
359
+
360
+ /**
361
+ * Clear current selection
362
+ */
363
+ clearSelection(): void {
364
+ this.selectedItems.clear()
365
+ this.selectionType = undefined
366
+ this.requestUpdate()
367
+ this.dispatchSelectionCleared()
368
+ }
369
+
370
+ /**
371
+ * Handle keyboard shortcuts
372
+ */
373
+ protected handleKeyDown(event: KeyboardEvent): void {
374
+ const { key, ctrlKey, metaKey } = event
375
+ const isCtrlPressed = ctrlKey || metaKey
376
+
377
+ // Update visible items list for navigation
378
+ this.updateVisibleItemsList()
379
+
380
+ if (isCtrlPressed) {
381
+ // Only handle if there are selected items for cut/paste operations
382
+ if (this.selectedItems.size > 0) {
383
+ switch (key.toLowerCase()) {
384
+ case 'x':
385
+ event.preventDefault()
386
+ this.cutSelectedItems()
387
+ break
388
+ case 'v':
389
+ event.preventDefault()
390
+ this.pasteItems()
391
+ break
392
+ case 'c':
393
+ // Future: could implement copy functionality
394
+ break
395
+ }
396
+ }
397
+ return
398
+ }
399
+
400
+ // Handle navigation keys
401
+ switch (key) {
402
+ case 'ArrowUp':
403
+ event.preventDefault()
404
+ this.moveFocusUp()
405
+ break
406
+ case 'ArrowDown':
407
+ event.preventDefault()
408
+ this.moveFocusDown()
409
+ break
410
+ case 'ArrowLeft':
411
+ event.preventDefault()
412
+ this.handleArrowLeft()
413
+ break
414
+ case 'ArrowRight':
415
+ event.preventDefault()
416
+ this.handleArrowRight()
417
+ break
418
+ case ' ':
419
+ case 'Space':
420
+ event.preventDefault()
421
+ this.handleSpaceKey()
422
+ break
423
+ case 'Home':
424
+ event.preventDefault()
425
+ this.moveFocusToFirst()
426
+ break
427
+ case 'End':
428
+ event.preventDefault()
429
+ this.moveFocusToLast()
430
+ break
431
+ case 'Escape':
432
+ this.cancelCut()
433
+ break
434
+ case 'Enter':
435
+ event.preventDefault()
436
+ this.handleEnterKey()
437
+ break
438
+ }
439
+ }
440
+
441
+ /**
442
+ * Cut the currently selected items
443
+ */
444
+ protected cutSelectedItems(): void {
445
+ if (this.selectedItems.size === 0) return
446
+
447
+ // Clear any previous cut items
448
+ this.cutItems.clear()
449
+
450
+ // Set current selection as cut items
451
+ for (const item of this.selectedItems) {
452
+ this.cutItems.add(item)
453
+ }
454
+ this.cutItemsType = this.selectionType
455
+
456
+ // Clear selection but keep the cut items
457
+ this.selectedItems.clear()
458
+ this.selectionType = undefined
459
+
460
+ this.requestUpdate()
461
+ this.dispatchCutItems()
462
+ }
463
+
464
+ /**
465
+ * Paste cut items to the current selection target
466
+ */
467
+ protected pasteItems(): void {
468
+ if (this.cutItems.size === 0) return
469
+
470
+ // If there's a single selected item, try to paste to it
471
+ if (this.selectedItems.size === 1) {
472
+ const targetItem = Array.from(this.selectedItems)[0]
473
+ if (targetItem && this.isValidPasteTarget(targetItem.key, targetItem.kind)) {
474
+ this.performPaste(targetItem.key, targetItem.kind)
475
+ }
476
+ } else if (this.selectedItems.size === 0) {
477
+ // If no selection, try to paste to root
478
+ if (this.root && this.isValidPasteTarget(this.root.key, this.root.kind)) {
479
+ this.performPaste(this.root.key, this.root.kind)
480
+ }
481
+ }
482
+ }
483
+
484
+ /**
485
+ * Perform the actual paste operation
486
+ */
487
+ protected performPaste(targetKey: string, targetKind: string): void {
488
+ const items = Array.from(this.cutItems)
489
+
490
+ if (items.length === 0) return
491
+
492
+ const dropDetail: DomainDragDropEventDetail = {
493
+ items,
494
+ target: {
495
+ key: targetKey,
496
+ kind: targetKind,
497
+ parent: this.findItemDetails(targetKey)?.parent,
498
+ domain: this.root ? this.root.key : '',
499
+ },
500
+ }
501
+
502
+ this.dispatchEvent(new CustomEvent('items-dropped', { detail: dropDetail, bubbles: true }))
503
+
504
+ // Clear cut state after successful paste
505
+ this.cutItems.clear()
506
+ this.cutItemsType = undefined
507
+ this.requestUpdate()
508
+ }
509
+
510
+ /**
511
+ * Cancel current cut operation
512
+ */
513
+ protected cancelCut(): void {
514
+ this.cutItems.clear()
515
+ this.cutItemsType = undefined
516
+ this.requestUpdate()
517
+ }
518
+
519
+ /**
520
+ * Check if target is valid for pasting cut items
521
+ */
522
+ protected isValidPasteTarget(targetKey: string, targetKind: string): boolean {
523
+ if (!this.cutItemsType || this.isItemCut(targetKey)) {
524
+ return false
525
+ }
526
+
527
+ // Use the same validation logic as drag and drop
528
+ // Entities can only be pasted on models
529
+ if (this.cutItemsType === DomainEntityKind) {
530
+ return targetKind === DomainModelKind
531
+ }
532
+
533
+ // Models can be pasted on namespaces or root
534
+ if (this.cutItemsType === DomainModelKind) {
535
+ return targetKind === DomainNamespaceKind || targetKind === DataDomainKind
536
+ }
537
+
538
+ // Namespaces can be pasted on other namespaces or root
539
+ if (this.cutItemsType === DomainNamespaceKind) {
540
+ return targetKind === DomainNamespaceKind || targetKind === DataDomainKind
541
+ }
542
+
543
+ return false
544
+ }
545
+
546
+ /**
547
+ * Dispatch cut items event
548
+ */
549
+ protected dispatchCutItems(): void {
550
+ const items = Array.from(this.cutItems)
551
+
552
+ const detail = {
553
+ items,
554
+ cutItemsType: this.cutItemsType || '',
555
+ }
556
+
557
+ this.dispatchEvent(new CustomEvent('items-cut', { detail, bubbles: true }))
558
+ }
559
+
560
+ /**
561
+ * Update the list of visible items for keyboard navigation
562
+ */
563
+ protected updateVisibleItemsList(): void {
564
+ this.visibleItems = []
565
+ if (!this.root) return
566
+
567
+ const addVisibleItems = (container: DataDomain | DomainNamespace, level = 0): void => {
568
+ // Add namespaces
569
+ for (const namespace of container.listNamespaces()) {
570
+ const item = this.findItemDetails(namespace.key)
571
+ if (item) {
572
+ this.visibleItems.push(item)
573
+ }
574
+
575
+ // Add children if not collapsed
576
+ if (namespace.hasFields() && !this.isCollapsed(namespace.key)) {
577
+ addVisibleItems(namespace, level + 1)
578
+ }
579
+ }
580
+
581
+ // Add models
582
+ for (const model of container.listModels()) {
583
+ const item = this.findItemDetails(model.key)
584
+ if (item) {
585
+ this.visibleItems.push(item)
586
+ }
587
+
588
+ // Add entities if not collapsed
589
+ if (model.hasFields() && !this.isCollapsed(model.key)) {
590
+ for (const entity of model.listEntities()) {
591
+ const entityItem = this.findItemDetails(entity.key)
592
+ if (entityItem) {
593
+ this.visibleItems.push(entityItem)
594
+ }
595
+ }
596
+ }
597
+ }
598
+ }
599
+
600
+ addVisibleItems(this.root)
601
+ }
602
+
603
+ /**
604
+ * Move focus to the previous item
605
+ */
606
+ protected moveFocusUp(): void {
607
+ if (this.visibleItems.length === 0) return
608
+
609
+ const currentIndex = this.focusedItem ? this.visibleItems.findIndex((item) => item.key === this.focusedItem) : -1
610
+
611
+ const newIndex = currentIndex <= 0 ? this.visibleItems.length - 1 : currentIndex - 1
612
+ this.focusedItem = this.visibleItems[newIndex].key
613
+ this.requestUpdate()
614
+ }
615
+
616
+ /**
617
+ * Move focus to the next item
618
+ */
619
+ protected moveFocusDown(): void {
620
+ if (this.visibleItems.length === 0) return
621
+
622
+ const currentIndex = this.focusedItem ? this.visibleItems.findIndex((item) => item.key === this.focusedItem) : -1
623
+
624
+ const newIndex = currentIndex >= this.visibleItems.length - 1 ? 0 : currentIndex + 1
625
+ this.focusedItem = this.visibleItems[newIndex].key
626
+ this.requestUpdate()
627
+ }
628
+
629
+ /**
630
+ * Handle left arrow key - collapse item or move to parent
631
+ */
632
+ protected handleArrowLeft(): void {
633
+ if (!this.focusedItem) return
634
+
635
+ const focusedDetails = this.findItemDetails(this.focusedItem)
636
+ if (!focusedDetails) return
637
+
638
+ // If item is expanded, collapse it
639
+ if (
640
+ (focusedDetails.kind === DomainNamespaceKind || focusedDetails.kind === DomainModelKind) &&
641
+ !this.isCollapsed(this.focusedItem)
642
+ ) {
643
+ this.toggleCollapsed(this.focusedItem)
644
+ return
645
+ }
646
+
647
+ // If item is already collapsed or is a leaf, move to parent
648
+ if (focusedDetails.parent) {
649
+ this.focusedItem = focusedDetails.parent
650
+ this.requestUpdate()
651
+ }
652
+ }
653
+
654
+ /**
655
+ * Handle right arrow key - expand item or move to first child
656
+ */
657
+ protected handleArrowRight(): void {
658
+ if (!this.focusedItem) return
659
+
660
+ const focusedDetails = this.findItemDetails(this.focusedItem)
661
+ if (!focusedDetails) return
662
+
663
+ // If item can be expanded and is collapsed, expand it
664
+ if (
665
+ (focusedDetails.kind === DomainNamespaceKind || focusedDetails.kind === DomainModelKind) &&
666
+ this.isCollapsed(this.focusedItem)
667
+ ) {
668
+ this.toggleCollapsed(this.focusedItem)
669
+ this.updateVisibleItemsList()
670
+ this.requestUpdate()
671
+ return
672
+ }
673
+
674
+ // If item is already expanded, move to first child
675
+ this.updateVisibleItemsList()
676
+ const currentIndex = this.visibleItems.findIndex((item) => item.key === this.focusedItem)
677
+ if (currentIndex >= 0 && currentIndex < this.visibleItems.length - 1) {
678
+ const nextItem = this.visibleItems[currentIndex + 1]
679
+ // Only move to next item if it's actually a child (has current item as parent)
680
+ if (nextItem.parent === this.focusedItem) {
681
+ this.focusedItem = nextItem.key
682
+ this.requestUpdate()
683
+ }
684
+ }
685
+ }
686
+
687
+ /**
688
+ * Handle space key - select/deselect focused item
689
+ */
690
+ protected handleSpaceKey(): void {
691
+ if (!this.focusedItem) return
692
+
693
+ const item = this.findItemDetails(this.focusedItem)
694
+ if (item) {
695
+ // Toggle selection of focused item
696
+ if (this.isItemSelected(this.focusedItem)) {
697
+ // Deselect if already selected
698
+ this.removeFromSelection(this.focusedItem)
699
+ if (this.selectedItems.size === 0) {
700
+ this.selectionType = undefined
701
+ }
702
+ } else {
703
+ // Select the focused item
704
+ this.handleSingleSelection(item.key, item.kind, item.domain, item.parent)
705
+ }
706
+ this.requestUpdate()
707
+ }
708
+ }
709
+
710
+ /**
711
+ * Handle enter key - activate focused item (same as click)
712
+ */
713
+ protected handleEnterKey(): void {
714
+ if (!this.focusedItem) return
715
+
716
+ const item = this.findItemDetails(this.focusedItem)
717
+ if (item) {
718
+ this.handleSingleSelection(item.key, item.kind, item.domain, item.parent)
719
+ }
720
+ }
721
+
722
+ /**
723
+ * Move focus to first item
724
+ */
725
+ protected moveFocusToFirst(): void {
726
+ if (this.visibleItems.length === 0) return
727
+ this.focusedItem = this.visibleItems[0].key
728
+ }
729
+
730
+ /**
731
+ * Move focus to last item
732
+ */
733
+ protected moveFocusToLast(): void {
734
+ if (this.visibleItems.length === 0) return
735
+ this.focusedItem = this.visibleItems[this.visibleItems.length - 1].key
736
+ }
737
+
738
+ /**
739
+ * Handle item click for selection
740
+ */
741
+ protected handleItemClick(event: MouseEvent, key: string, kind: string, domain: string, parent?: string): void {
742
+ event.preventDefault()
743
+ event.stopPropagation()
744
+
745
+ // Update focus when clicking
746
+ this.focusedItem = key
747
+
748
+ const isCtrlClick = event.ctrlKey || event.metaKey
749
+
750
+ if (isCtrlClick) {
751
+ this.handleMultiSelection(key, kind, domain, parent)
752
+ } else {
753
+ this.handleSingleSelection(key, kind, domain, parent)
754
+ }
755
+ }
756
+
757
+ /**
758
+ * Handle item receiving focus
759
+ */
760
+ protected handleItemFocus(key: string): void {
761
+ this.focusedItem = key
762
+ }
763
+
764
+ protected focusOnCurrentItem(): void {
765
+ if (!this.focusedItem) return
766
+
767
+ const itemElement = this.shadowRoot?.querySelector(`[data-key="${this.focusedItem}"]`)
768
+ if (itemElement instanceof HTMLElement) {
769
+ itemElement.focus()
770
+ itemElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })
771
+ }
772
+ }
773
+
774
+ /**
775
+ * Handle single item selection
776
+ */
777
+ protected handleSingleSelection(key: string, kind: string, domain: string, parent?: string): void {
778
+ // Clear previous selection
779
+ this.selectedItems.clear()
780
+ const selectionInfo: DomainSelectionInfo = { key, kind, domain, parent }
781
+ this.selectedItems.add(selectionInfo)
782
+ this.selectionType = kind
783
+ this.#selected = key
784
+
785
+ this.requestUpdate()
786
+ this.dispatchSingleSelection(key, kind, domain, parent)
787
+ }
788
+
789
+ protected handleFieldSelection(key: string, kind: string, domain: string, parent: string): void {
790
+ // Clear previous selection
791
+ this.selectedItems.clear()
792
+ const selectionInfo: DomainSelectionInfo = { key: parent, kind: DomainEntityKind, domain }
793
+ this.selectedItems.add(selectionInfo)
794
+ this.selectionType = DomainEntityKind
795
+ this.#selected = parent
796
+
797
+ this.requestUpdate()
798
+ this.dispatchSingleSelection(key, kind, domain, parent)
799
+ }
800
+
801
+ /**
802
+ * Handle multi-item selection with Ctrl+click
803
+ */
804
+ protected handleMultiSelection(key: string, kind: string, domain: string, parent?: string): void {
805
+ // Check for mixed type selection
806
+ if (this.selectionType && this.selectionType !== kind) {
807
+ // Mixed selection not allowed - clear and start new selection
808
+ this.handleSingleSelection(key, kind, domain, parent)
809
+ return
810
+ }
811
+
812
+ const selectionInfo: DomainSelectionInfo = { key, kind, domain, parent }
813
+
814
+ // Toggle selection
815
+ if (this.isItemSelected(key)) {
816
+ this.removeFromSelection(key)
817
+ // If no items left, clear selection type
818
+ if (this.selectedItems.size === 0) {
819
+ this.selectionType = undefined
820
+ }
821
+ } else {
822
+ this.selectedItems.add(selectionInfo)
823
+ this.selectionType = kind
824
+ }
825
+
826
+ this.requestUpdate()
827
+ this.dispatchMultiSelection()
828
+ }
829
+
830
+ /**
831
+ * Dispatch single selection event
832
+ */
833
+ protected dispatchSingleSelection(key: string, kind: string, domain: string, parent?: string): void {
834
+ const detail: DomainSelectionInfo = { key, kind, domain, parent }
835
+ this.dispatchEvent(new CustomEvent('item-selected', { detail, bubbles: true }))
836
+ }
837
+
838
+ /**
839
+ * Dispatch multi-selection event
840
+ */
841
+ protected dispatchMultiSelection(): void {
842
+ const items = Array.from(this.selectedItems)
843
+
844
+ const detail: DomainMultiSelectionEventDetail = {
845
+ items,
846
+ selectionType: this.selectionType || '',
847
+ }
848
+
849
+ this.dispatchEvent(new CustomEvent('items-selected', { detail, bubbles: true }))
850
+ }
851
+
852
+ /**
853
+ * Dispatch selection cleared event
854
+ */
855
+ protected dispatchSelectionCleared(): void {
856
+ this.dispatchEvent(new CustomEvent('selection-cleared', { bubbles: true }))
857
+ }
858
+
859
+ /**
860
+ * Find item details by key
861
+ */
862
+ protected findItemDetails(key: string): DomainSelectionInfo | undefined {
863
+ if (!this.root) return undefined
864
+
865
+ // Check if it's the root domain
866
+ if (key === this.root.key) {
867
+ return { key, kind: DataDomainKind, domain: this.root.key }
868
+ }
869
+
870
+ // Search in namespaces
871
+ const namespace = this.root.findNamespace(key)
872
+ if (namespace) {
873
+ const parent = namespace.getParentInstance()
874
+ return {
875
+ key,
876
+ kind: DomainNamespaceKind,
877
+ domain: this.root.key,
878
+ parent: parent?.key !== this.root.key ? parent?.key : undefined,
879
+ }
880
+ }
881
+
882
+ // Search in models
883
+ const model = this.root.findModel(key)
884
+ if (model) {
885
+ const parent = model.getParentInstance()
886
+ return {
887
+ key,
888
+ kind: DomainModelKind,
889
+ domain: this.root.key,
890
+ parent: parent?.key !== this.root.key ? parent?.key : undefined,
891
+ }
892
+ }
893
+
894
+ // Search in entities
895
+ const entity = this.root.findEntity(key)
896
+ if (entity) {
897
+ const model = entity.getParentInstance()
898
+ return {
899
+ key,
900
+ kind: DomainEntityKind,
901
+ domain: this.root.key,
902
+ parent: model?.key,
903
+ }
904
+ }
905
+
906
+ return undefined
907
+ }
908
+
909
+ /**
910
+ * Handle drag start
911
+ */
912
+ protected handleDragStart(event: DragEvent, key: string): void {
913
+ if (!event.dataTransfer) return
914
+
915
+ let selectedItems = Array.from(this.selectedItems)
916
+
917
+ if (!this.isItemSelected(key)) {
918
+ // If the dragged item is not selected, select only this item
919
+ selectedItems = []
920
+ const item = this.getItemDetailsForKey(key)
921
+ if (item) {
922
+ selectedItems.push(item)
923
+ }
924
+ }
925
+
926
+ // Set drag data
927
+ this.draggedItems.clear()
928
+ for (const selectedItem of selectedItems) {
929
+ this.draggedItems.add(selectedItem)
930
+ }
931
+
932
+ const selectedKeys = selectedItems.map((item) => item.key)
933
+
934
+ event.dataTransfer.setData('text/plain', selectedKeys.join(','))
935
+ event.dataTransfer.setData(
936
+ 'application/json',
937
+ JSON.stringify({
938
+ items: selectedItems,
939
+ })
940
+ )
941
+ event.dataTransfer.effectAllowed = 'move'
942
+
943
+ this.requestUpdate()
944
+ }
945
+
946
+ /**
947
+ * Handle drag over
948
+ */
949
+ protected handleDragOver(event: DragEvent, key: string, kind: string): void {
950
+ if (!event.dataTransfer) return
951
+
952
+ // Check if this is a valid drop target
953
+ if (this.isValidDropTarget(key, kind)) {
954
+ event.preventDefault()
955
+ this.dragTarget = key
956
+ this.requestUpdate()
957
+ }
958
+ }
959
+
960
+ /**
961
+ * Handle drag leave
962
+ */
963
+ protected handleDragLeave(): void {
964
+ this.dragTarget = undefined
965
+ this.requestUpdate()
966
+ }
967
+
968
+ /**
969
+ * Handle drop
970
+ */
971
+ protected handleDrop(event: DragEvent, targetKey: string, targetKind: string): void {
972
+ event.preventDefault()
973
+
974
+ if (!event.dataTransfer) return
975
+
976
+ try {
977
+ const dragData = JSON.parse(event.dataTransfer.getData('application/json'))
978
+
979
+ let items: DomainSelectionInfo[] = []
980
+
981
+ if (dragData.items) {
982
+ // New format with full item information
983
+ items = dragData.items as DomainSelectionInfo[]
984
+ } else if (Array.isArray(dragData)) {
985
+ // Legacy format - just keys
986
+ items = dragData.map((key: string) => this.findItemDetails(key)).filter(Boolean) as DomainSelectionInfo[]
987
+ } else if (dragData.keys) {
988
+ // Fallback - extract keys and find details
989
+ items = dragData.keys.map((key: string) => this.findItemDetails(key)).filter(Boolean) as DomainSelectionInfo[]
990
+ }
991
+
992
+ if (items.length > 0 && this.isValidDropTarget(targetKey, targetKind)) {
993
+ const dropDetail: DomainDragDropEventDetail = {
994
+ items,
995
+ target: {
996
+ key: targetKey,
997
+ kind: targetKind,
998
+ parent: this.findItemDetails(targetKey)?.parent,
999
+ domain: this.root ? this.root.key : '',
1000
+ },
1001
+ }
1002
+
1003
+ this.dispatchEvent(new CustomEvent('items-dropped', { detail: dropDetail, bubbles: true }))
1004
+ }
1005
+ } catch {
1006
+ // Error handling drop - would normally log to error reporting service
1007
+ }
1008
+
1009
+ // Clean up drag state
1010
+ this.draggedItems.clear()
1011
+ this.dragTarget = undefined
1012
+ this.requestUpdate()
1013
+ }
1014
+
1015
+ /**
1016
+ * Handle drag end
1017
+ */
1018
+ protected handleDragEnd(): void {
1019
+ this.draggedItems.clear()
1020
+ this.requestUpdate()
1021
+ }
1022
+
1023
+ /**
1024
+ * Handle click on external (read-only) items
1025
+ */
1026
+ protected handleExternalItemClick(e: MouseEvent, key: string, kind: string, domain: string, parent?: string): void {
1027
+ e.stopPropagation()
1028
+
1029
+ if (e.ctrlKey || e.metaKey) {
1030
+ // Multi-selection
1031
+ this.handleExternalMultiSelection(key, kind, domain, parent)
1032
+ } else {
1033
+ // Single selection
1034
+ this.handleExternalSingleSelection(key, kind, domain, parent)
1035
+ }
1036
+ }
1037
+
1038
+ /**
1039
+ * Handle single selection for external items
1040
+ */
1041
+ protected handleExternalSingleSelection(key: string, kind: string, domain: string, parent?: string): void {
1042
+ this.selectedItems.clear()
1043
+ const selectionInfo: DomainSelectionInfo = { key, kind, domain, parent }
1044
+ this.selectedItems.add(selectionInfo)
1045
+ this.focusedItem = key
1046
+ this.#selected = key
1047
+
1048
+ const event: DomainSelectionInfo = {
1049
+ key,
1050
+ kind,
1051
+ domain,
1052
+ parent,
1053
+ }
1054
+
1055
+ this.dispatchEvent(new CustomEvent('item-selected', { detail: event }))
1056
+ this.requestUpdate()
1057
+ }
1058
+
1059
+ /**
1060
+ * Handle multi-selection for external items
1061
+ */
1062
+ protected handleExternalMultiSelection(key: string, kind: string, domain: string, parent?: string): void {
1063
+ // Check for mixed selection types
1064
+ if (this.selectedItems.size > 0) {
1065
+ // Get the kind of already selected items
1066
+ const firstSelectedItem = this.getFirstSelectedItemKind()
1067
+ if (firstSelectedItem && firstSelectedItem !== kind) {
1068
+ // Mixed selection not allowed, replace selection
1069
+ this.selectedItems.clear()
1070
+ const selectionInfo: DomainSelectionInfo = { key, kind, domain, parent }
1071
+ this.selectedItems.add(selectionInfo)
1072
+ this.focusedItem = key
1073
+
1074
+ const event: DomainSelectionInfo = {
1075
+ key,
1076
+ kind,
1077
+ domain,
1078
+ parent,
1079
+ }
1080
+
1081
+ this.dispatchEvent(new CustomEvent('item-selected', { detail: event }))
1082
+ this.requestUpdate()
1083
+ return
1084
+ }
1085
+ }
1086
+
1087
+ const selectionInfo: DomainSelectionInfo = { key, kind, domain, parent }
1088
+
1089
+ // Toggle selection
1090
+ if (this.isItemSelected(key)) {
1091
+ this.removeFromSelection(key)
1092
+ } else {
1093
+ this.selectedItems.add(selectionInfo)
1094
+ }
1095
+ this.focusedItem = key
1096
+
1097
+ // Dispatch multi-selection event
1098
+ const items = Array.from(this.selectedItems)
1099
+
1100
+ const event: DomainMultiSelectionEventDetail = {
1101
+ items,
1102
+ selectionType: kind,
1103
+ }
1104
+ this.dispatchEvent(new CustomEvent('items-selected', { detail: event }))
1105
+ this.requestUpdate()
1106
+ }
1107
+
1108
+ /**
1109
+ * Get the kind of the first selected item
1110
+ */
1111
+ protected getFirstSelectedItemKind(): string | undefined {
1112
+ if (this.selectedItems.size === 0) return undefined
1113
+
1114
+ const firstItem = this.selectedItems.values().next().value
1115
+ return firstItem?.kind
1116
+ }
1117
+
1118
+ /**
1119
+ * Get item details for a given key
1120
+ */
1121
+ protected getItemDetailsForKey(key: string): DomainSelectionInfo | undefined {
1122
+ // First try the main domain
1123
+ if (this.root) {
1124
+ const result = this.findItemInDomain(key, this.root)
1125
+ if (result) return result
1126
+ }
1127
+
1128
+ // Then try external domains
1129
+ if (this.root?.dependencies) {
1130
+ for (const [, externalDomain] of this.root.dependencies) {
1131
+ const result = this.findItemInDomain(key, externalDomain)
1132
+ if (result) return result
1133
+ }
1134
+ }
1135
+
1136
+ return undefined
1137
+ }
1138
+
1139
+ /**
1140
+ * Find item details within a specific domain
1141
+ */
1142
+ protected findItemInDomain(key: string, domain: DataDomain): DomainSelectionInfo | undefined {
1143
+ // Check if it's the domain itself
1144
+ if (domain.key === key) {
1145
+ return {
1146
+ key: domain.key,
1147
+ kind: domain.kind,
1148
+ domain: domain.key,
1149
+ }
1150
+ }
1151
+
1152
+ const ns = domain.findNamespace(key)
1153
+ if (ns) {
1154
+ return {
1155
+ key: ns.key,
1156
+ kind: DomainNamespaceKind,
1157
+ domain: domain.key,
1158
+ parent: ns.getParentInstance()?.key,
1159
+ }
1160
+ }
1161
+
1162
+ const model = domain.findModel(key)
1163
+ if (model) {
1164
+ return {
1165
+ key: model.key,
1166
+ kind: DomainModelKind,
1167
+ domain: domain.key,
1168
+ parent: model.getParentInstance()?.key,
1169
+ }
1170
+ }
1171
+
1172
+ const entity = domain.findEntity(key)
1173
+ if (entity) {
1174
+ const modelParent = entity.getParentInstance()
1175
+ return {
1176
+ key: entity.key,
1177
+ kind: DomainEntityKind,
1178
+ domain: domain.key,
1179
+ parent: modelParent?.key,
1180
+ }
1181
+ }
1182
+
1183
+ return undefined
1184
+ }
1185
+
1186
+ /**
1187
+ * Find item in nested namespace structure
1188
+ */
1189
+ protected findItemInNamespace(
1190
+ key: string,
1191
+ namespace: DomainNamespace,
1192
+ domain: string
1193
+ ): DomainSelectionInfo | undefined {
1194
+ const field = namespace.fields.find((field) => field.key === key)
1195
+ if (!field) {
1196
+ return undefined
1197
+ }
1198
+ if (field.type === 'model') {
1199
+ return {
1200
+ key: field.key,
1201
+ kind: DomainModelKind,
1202
+ domain,
1203
+ parent: namespace.key,
1204
+ }
1205
+ }
1206
+ if (field.type === 'namespace') {
1207
+ return {
1208
+ key: field.key,
1209
+ kind: DomainNamespaceKind,
1210
+ domain,
1211
+ parent: namespace.key,
1212
+ }
1213
+ }
1214
+ return undefined
1215
+ }
1216
+
1217
+ /**
1218
+ * Check if a target is valid for dropping the current selection
1219
+ */
1220
+ protected isValidDropTarget(targetKey: string, targetKind: string): boolean {
1221
+ if (!this.selectionType || this.isItemSelected(targetKey)) {
1222
+ return false
1223
+ }
1224
+
1225
+ // Entities can only be dropped on models
1226
+ if (this.selectionType === DomainEntityKind) {
1227
+ return targetKind === DomainModelKind
1228
+ }
1229
+
1230
+ // Models can be dropped on namespaces or root
1231
+ if (this.selectionType === DomainModelKind) {
1232
+ return targetKind === DomainNamespaceKind || targetKind === DataDomainKind
1233
+ }
1234
+
1235
+ // Namespaces can be dropped on other namespaces or root
1236
+ if (this.selectionType === DomainNamespaceKind) {
1237
+ return targetKind === DomainNamespaceKind || targetKind === DataDomainKind
1238
+ }
1239
+
1240
+ return false
1241
+ }
1242
+
1243
+ protected handleSearch(event: CustomEvent<{ input: string }>): void {
1244
+ const query = event.detail.input
1245
+ this.searchDomain(query)
1246
+ }
1247
+
1248
+ protected handleSearchClear(): void {
1249
+ this.clearSearch()
1250
+ }
1251
+
1252
+ searchDomain(query: string): void {
1253
+ const domain = this.root
1254
+ if (!domain) return
1255
+
1256
+ this.searchQuery = query.trim()
1257
+
1258
+ if (!this.searchQuery) {
1259
+ this.clearSearch()
1260
+ return
1261
+ }
1262
+
1263
+ const found = domain.search({
1264
+ query: this.searchQuery,
1265
+ })
1266
+ this.searchResults = found
1267
+ }
1268
+
1269
+ protected handleSearchResultClick(event: MouseEvent, result: DomainSearchResult): void {
1270
+ event.preventDefault()
1271
+ event.stopPropagation()
1272
+
1273
+ const { key, node } = result
1274
+ const kind = node.kind
1275
+ const domain = node.domain.key
1276
+
1277
+ // For now, just clear search and navigate to the item
1278
+ // Selection logic can be implemented later
1279
+ this.clearSearch()
1280
+
1281
+ // Find the parent for proper selection info
1282
+ let parent: string | undefined
1283
+ if (kind === DomainEntityKind) {
1284
+ const entity = node as DomainEntity
1285
+ const modelParent = entity.getParentInstance()
1286
+ parent = modelParent?.key
1287
+ this.ensureVisibility(key)
1288
+ this.handleSingleSelection(key, kind, domain, parent)
1289
+ } else if (kind === DomainModelKind || kind === DomainNamespaceKind) {
1290
+ const parentInstance = (node as DomainModel | DomainNamespace).getParentInstance()
1291
+ parent = parentInstance?.key !== domain ? parentInstance?.key : undefined
1292
+ this.ensureVisibility(key)
1293
+ this.handleSingleSelection(key, kind, domain, parent)
1294
+ } else if (kind === DomainAssociationKind) {
1295
+ const association = node as DomainAssociation
1296
+ const modelParent = association.getParentInstance()
1297
+ parent = modelParent?.key
1298
+ if (parent) {
1299
+ this.ensureVisibility(parent)
1300
+ this.handleFieldSelection(key, kind, domain, parent)
1301
+ }
1302
+ } else if (kind === DomainPropertyKind) {
1303
+ const property = node as DomainProperty
1304
+ const modelParent = property.getParentInstance()
1305
+ parent = modelParent?.key
1306
+ if (parent) {
1307
+ this.ensureVisibility(parent)
1308
+ this.handleFieldSelection(key, kind, domain, parent)
1309
+ }
1310
+ }
1311
+ }
1312
+
1313
+ clearSearch(): void {
1314
+ this.searchQuery = undefined
1315
+ this.searchResults = []
1316
+ }
1317
+
1318
+ handleSearchKeyDown(e: KeyboardEvent): void {
1319
+ e.stopPropagation()
1320
+ if (e.defaultPrevented) {
1321
+ return
1322
+ }
1323
+ }
1324
+
1325
+ override render(): TemplateResult {
1326
+ const { root } = this
1327
+ if (!root) {
1328
+ return html`<div class="empty-state">No data domain available</div>`
1329
+ }
1330
+ const hasFields = root.hasFields()
1331
+ const hasDependencies = root.dependencies?.size > 0
1332
+ if (!hasFields && !hasDependencies) {
1333
+ return html`<div class="empty-state">No schemas to display</div>`
1334
+ }
1335
+
1336
+ return html`
1337
+ <div class="hierarchy-tree">
1338
+ ${this.cutItems.size > 0
1339
+ ? this.renderCutItemsInfo()
1340
+ : this.selectedItems.size > 1
1341
+ ? this.renderMultiSelectionInfo()
1342
+ : this.renderDomainHeader(root)}
1343
+ ${this.searchQuery ? this.renderSearchResults() : ''}
1344
+ ${hasFields ? this.renderDomainTree(root) : this.renderEmptyDomain()} ${this.renderExternalDomains()}
1345
+ </div>
1346
+ `
1347
+ }
1348
+
1349
+ protected renderEmptyDomain(): TemplateResult {
1350
+ return html`<div class="empty-state">No data to render.</div>`
1351
+ }
1352
+
1353
+ protected renderCutItemsInfo(): TemplateResult {
1354
+ const count = this.cutItems.size
1355
+ const type = getDomainLabel(this.cutItemsType || 'items')
1356
+
1357
+ return html`
1358
+ <div class="multi-selection-info cut-items">
1359
+ <span class="body-small"
1360
+ >${count} ${type}${count > 1 ? 's' : ''} cut - Select target and press Ctrl+V to paste</span
1361
+ >
1362
+ <ui-button size="xs" color="tonal" @click="${this.cancelCut}">Cancel</ui-button>
1363
+ </div>
1364
+ `
1365
+ }
1366
+
1367
+ protected renderDomainTitle(root: DataDomain): TemplateResult {
1368
+ return html`<h2 class="domain-title title-small">${root.info.getLabel()}</h2>`
1369
+ }
1370
+
1371
+ protected renderDomainHeader(root: DataDomain): TemplateResult {
1372
+ const hasCollapsibleItems =
1373
+ [...root.listNamespaces()].some((ns) => ns.hasFields()) || [...root.listModels()].some((m) => m.hasFields())
1374
+
1375
+ return html`
1376
+ <div class="domain-header">
1377
+ <search-input
1378
+ class="search-input"
1379
+ placeholder="Search domain..."
1380
+ @search="${this.handleSearch}"
1381
+ @clear="${this.handleSearchClear}"
1382
+ @keydown="${this.handleSearchKeyDown}"
1383
+ value="${this.searchQuery || ''}"
1384
+ ></search-input>
1385
+ ${hasCollapsibleItems
1386
+ ? html`
1387
+ <div class="expand-controls">
1388
+ <ui-icon-button @click="${this.expandAll}" color="standard" shape="round" size="xs" title="Expand all"
1389
+ ><ui-icon icon="add"></ui-icon
1390
+ ></ui-icon-button>
1391
+ <ui-icon-button
1392
+ @click="${this.collapseAll}"
1393
+ color="standard"
1394
+ shape="round"
1395
+ size="xs"
1396
+ title="Collapse all"
1397
+ ><ui-icon icon="remove"></ui-icon
1398
+ ></ui-icon-button>
1399
+ </div>
1400
+ `
1401
+ : ''}
1402
+ </div>
1403
+ `
1404
+ }
1405
+
1406
+ protected renderSearchResults(): TemplateResult {
1407
+ if (!this.searchQuery || this.searchResults.length === 0) {
1408
+ return html`
1409
+ <div class="search-results-overlay">
1410
+ <div class="search-no-results">
1411
+ <span class="body-medium">No results found for "${this.searchQuery}"</span>
1412
+ </div>
1413
+ </div>
1414
+ `
1415
+ }
1416
+
1417
+ return html`
1418
+ <div class="search-results-overlay">
1419
+ <div class="search-results-list">
1420
+ ${this.searchResults.map((result) => this.renderSearchResultItem(result))}
1421
+ </div>
1422
+ </div>
1423
+ `
1424
+ }
1425
+
1426
+ protected getSearchIcon(item: DomainElement): IconType {
1427
+ switch (item.kind) {
1428
+ case DomainAssociationKind:
1429
+ case DomainPropertyKind:
1430
+ return getFieldIcon(item as DomainProperty | DomainAssociation)
1431
+ default:
1432
+ return getDomainIconType(item.kind)
1433
+ }
1434
+ }
1435
+
1436
+ protected renderSearchResultItem(result: DomainSearchResult): TemplateResult {
1437
+ const { node, key, isForeign, matchedFields } = result
1438
+ const nodeInfo = node.info
1439
+ const icon = this.getSearchIcon(node)
1440
+
1441
+ return html`
1442
+ <div
1443
+ class="search-result-item"
1444
+ data-key="${key}"
1445
+ data-kind="${node.kind}"
1446
+ data-domain="${node.domain.key}"
1447
+ @click="${(e: MouseEvent) => this.handleSearchResultClick(e, result)}"
1448
+ >
1449
+ <div class="search-result-content">
1450
+ <div class="search-result-main">
1451
+ <ui-icon class="search-result-icon" icon="${icon}"></ui-icon>
1452
+ <div class="search-result-info">
1453
+ <span class="search-result-name body-medium">${nodeInfo.getLabel()}</span>
1454
+ ${isForeign ? html`<span class="search-result-badge label-small">External</span>` : ''}
1455
+ </div>
1456
+ </div>
1457
+ ${nodeInfo.description
1458
+ ? html`<div class="search-result-description body-small">${nodeInfo.description}</div>`
1459
+ : ''}
1460
+ ${matchedFields.length > 0
1461
+ ? html`
1462
+ <div class="search-result-matches">
1463
+ <span class="label-small">Matched: ${matchedFields.join(', ')}</span>
1464
+ </div>
1465
+ `
1466
+ : ''}
1467
+ </div>
1468
+ </div>
1469
+ `
1470
+ }
1471
+
1472
+ protected renderMultiSelectionInfo(): TemplateResult {
1473
+ const count = this.selectedItems.size
1474
+ const type = getDomainLabel(this.selectionType || 'items')
1475
+ return html`
1476
+ <div class="multi-selection-info">
1477
+ <span class="body-small">${count} ${type}${count > 1 ? 's' : ''} selected</span>
1478
+ <ui-button size="xs" color="tonal" @click="${this.clearSelection}">Clear Selection</ui-button>
1479
+ </div>
1480
+ `
1481
+ }
1482
+
1483
+ protected renderDomainTree(root: DataDomain | DomainNamespace): TemplateResult {
1484
+ const items: TemplateResult[] = []
1485
+
1486
+ // Render namespaces
1487
+ for (const namespace of root.listNamespaces()) {
1488
+ items.push(this.renderNamespaceItem(namespace, root))
1489
+ }
1490
+
1491
+ // Render models
1492
+ for (const model of root.listModels()) {
1493
+ items.push(this.renderModelItem(model, root))
1494
+ }
1495
+
1496
+ return html`<div class="tree-items">${items}</div>`
1497
+ }
1498
+
1499
+ /**
1500
+ * Render external data domains from dependencies
1501
+ */
1502
+ protected renderExternalDomains(): TemplateResult {
1503
+ if (!this.root?.dependencies?.size) {
1504
+ return html``
1505
+ }
1506
+
1507
+ const externalDomains: TemplateResult[] = []
1508
+
1509
+ for (const [, externalDomain] of this.root.dependencies) {
1510
+ externalDomains.push(this.renderExternalDomain(externalDomain))
1511
+ }
1512
+
1513
+ return html`
1514
+ <div class="external-domains">
1515
+ <ui-divider></ui-divider>
1516
+ <div class="external-domains-header">
1517
+ <h3 class="external-domains-title title-medium">External Dependencies</h3>
1518
+ </div>
1519
+ ${externalDomains}
1520
+ </div>
1521
+ `
1522
+ }
1523
+
1524
+ /**
1525
+ * Render a single external domain
1526
+ */
1527
+ protected renderExternalDomain(domain: DataDomain): TemplateResult {
1528
+ return html`
1529
+ <div class="external-domain">
1530
+ <div class="external-domain-header">
1531
+ <h4 class="external-domain-title title-small">${domain.info.getLabel()}</h4>
1532
+ <span class="external-domain-badge label-medium">Read-only</span>
1533
+ </div>
1534
+ ${this.renderExternalDomainTree(domain)}
1535
+ </div>
1536
+ `
1537
+ }
1538
+
1539
+ /**
1540
+ * Render external domain tree (read-only)
1541
+ */
1542
+ protected renderExternalDomainTree(domain: DataDomain | DomainNamespace): TemplateResult {
1543
+ const items: TemplateResult[] = []
1544
+
1545
+ // Render namespaces
1546
+ for (const namespace of domain.listNamespaces()) {
1547
+ items.push(this.renderExternalNamespaceItem(namespace, domain))
1548
+ }
1549
+
1550
+ // Render models
1551
+ for (const model of domain.listModels()) {
1552
+ items.push(this.renderExternalModelItem(model, domain))
1553
+ }
1554
+
1555
+ return html`<div class="external-tree-items">${items}</div>`
1556
+ }
1557
+
1558
+ protected renderNamespaceItem(namespace: DomainNamespace, parent: DataDomain | DomainNamespace): TemplateResult {
1559
+ const hasChildren = namespace.hasFields()
1560
+ const isSelected = this.isItemSelected(namespace.key)
1561
+ const isMultiSelected = isSelected && this.selectedItems.size > 1
1562
+ const isDragSource = this.isItemDragged(namespace.key)
1563
+ const isDragTarget = this.dragTarget === namespace.key
1564
+ const isCollapsed = this.isCollapsed(namespace.key)
1565
+ const isCut = this.isItemCut(namespace.key)
1566
+ const isFocused = this.focusedItem === namespace.key
1567
+
1568
+ return html`
1569
+ <div class="tree-item" role="treeitem">
1570
+ <div
1571
+ class="item-content ${classMap({
1572
+ 'selected': isSelected && !isMultiSelected,
1573
+ 'multi-selected': isMultiSelected,
1574
+ 'drag-source': isDragSource,
1575
+ 'drag-over': isDragTarget,
1576
+ 'cut': isCut,
1577
+ 'focused': isFocused,
1578
+ 'highlighted': this.highlighted === namespace.key,
1579
+ })}"
1580
+ tabindex="${isFocused ? '0' : '-1'}"
1581
+ draggable="true"
1582
+ data-key="${namespace.key}"
1583
+ data-kind="${namespace.kind}"
1584
+ data-domain="${namespace.domain.key}"
1585
+ data-parent="${parent.key !== namespace.domain.key ? parent.key : ''}"
1586
+ @click="${(e: MouseEvent) =>
1587
+ this.handleItemClick(
1588
+ e,
1589
+ namespace.key,
1590
+ namespace.kind,
1591
+ namespace.domain.key,
1592
+ parent.key !== namespace.domain.key ? parent.key : undefined
1593
+ )}"
1594
+ @focus="${() => this.handleItemFocus(namespace.key)}"
1595
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, namespace.key)}"
1596
+ @dragover="${(e: DragEvent) => this.handleDragOver(e, namespace.key, namespace.kind)}"
1597
+ @dragleave="${() => this.handleDragLeave()}"
1598
+ @drop="${(e: DragEvent) => this.handleDrop(e, namespace.key, namespace.kind)}"
1599
+ @dragend="${() => this.handleDragEnd()}"
1600
+ >
1601
+ ${hasChildren
1602
+ ? html`
1603
+ <ui-icon
1604
+ class="expand-icon ${isCollapsed ? '' : 'expanded'}"
1605
+ icon="chevronRight"
1606
+ @click="${(e: MouseEvent) => this.toggleCollapsed(namespace.key, e)}"
1607
+ ></ui-icon>
1608
+ `
1609
+ : html`<span class="expand-placeholder"></span>`}
1610
+ <ui-icon class="item-icon" icon="${getDomainIconType(namespace.kind)}"></ui-icon>
1611
+ <span class="item-label">${namespace.info.getLabel()}</span>
1612
+ </div>
1613
+ ${hasChildren && !isCollapsed ? html` <div class="children">${this.renderDomainTree(namespace)}</div>` : ''}
1614
+ </div>
1615
+ `
1616
+ }
1617
+
1618
+ protected renderModelItem(model: DomainModel, parent: DataDomain | DomainNamespace): TemplateResult {
1619
+ const hasEntities = model.hasFields()
1620
+ const isSelected = this.isItemSelected(model.key)
1621
+ const isMultiSelected = this.selectedItems.size > 1 && isSelected
1622
+ const isDragSource = this.isItemDragged(model.key)
1623
+ const isDragTarget = this.dragTarget === model.key
1624
+ const isCollapsed = this.isCollapsed(model.key)
1625
+ const isCut = this.isItemCut(model.key)
1626
+ const isFocused = this.focusedItem === model.key
1627
+
1628
+ return html`
1629
+ <div class="tree-item" role="treeitem">
1630
+ <div
1631
+ class="item-content ${classMap({
1632
+ 'selected': isSelected && !isMultiSelected,
1633
+ 'multi-selected': isMultiSelected,
1634
+ 'drag-source': isDragSource,
1635
+ 'drag-over': isDragTarget,
1636
+ 'cut': isCut,
1637
+ 'focused': isFocused,
1638
+ 'highlighted': this.highlighted === model.key,
1639
+ })}"
1640
+ tabindex="${isFocused ? '0' : '-1'}"
1641
+ draggable="true"
1642
+ data-key="${model.key}"
1643
+ data-kind="${model.kind}"
1644
+ data-domain="${model.domain.key}"
1645
+ data-parent="${parent.key !== model.domain.key ? parent.key : ''}"
1646
+ @click="${(e: MouseEvent) =>
1647
+ this.handleItemClick(
1648
+ e,
1649
+ model.key,
1650
+ model.kind,
1651
+ model.domain.key,
1652
+ parent.key !== model.domain.key ? parent.key : undefined
1653
+ )}"
1654
+ @focus="${() => this.handleItemFocus(model.key)}"
1655
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, model.key)}"
1656
+ @dragover="${(e: DragEvent) => this.handleDragOver(e, model.key, model.kind)}"
1657
+ @dragleave="${() => this.handleDragLeave()}"
1658
+ @drop="${(e: DragEvent) => this.handleDrop(e, model.key, model.kind)}"
1659
+ @dragend="${() => this.handleDragEnd()}"
1660
+ >
1661
+ ${hasEntities
1662
+ ? html`
1663
+ <ui-icon
1664
+ class="expand-icon ${isCollapsed ? '' : 'expanded'}"
1665
+ icon="chevronRight"
1666
+ @click="${(e: MouseEvent) => this.toggleCollapsed(model.key, e)}"
1667
+ ></ui-icon>
1668
+ `
1669
+ : html`<span class="expand-placeholder"></span>`}
1670
+ <ui-icon class="item-icon" icon="${getDomainIconType(model.kind)}"></ui-icon>
1671
+ <span class="item-label">${model.info.getLabel()}</span>
1672
+ </div>
1673
+ ${hasEntities && !isCollapsed ? html` <div class="children">${this.renderEntityList(model)}</div>` : ''}
1674
+ </div>
1675
+ `
1676
+ }
1677
+
1678
+ protected renderEntityList(model: DomainModel): TemplateResult {
1679
+ const entities: TemplateResult[] = []
1680
+
1681
+ for (const entity of model.listEntities()) {
1682
+ entities.push(this.renderEntityItem(entity, model))
1683
+ }
1684
+
1685
+ return html`<div class="entity-items">${entities}</div>`
1686
+ }
1687
+
1688
+ protected renderEntityItem(entity: DomainEntity, parent: DomainModel): TemplateResult {
1689
+ const isSelected = this.isItemSelected(entity.key)
1690
+ const isMultiSelected = isSelected && this.selectedItems.size > 1
1691
+ const isDragSource = this.isItemDragged(entity.key)
1692
+ const isCut = this.isItemCut(entity.key)
1693
+ const isFocused = this.focusedItem === entity.key
1694
+
1695
+ return html`
1696
+ <div class="tree-item" role="treeitem">
1697
+ <div
1698
+ class="item-content ${classMap({
1699
+ 'selected': isSelected && !isMultiSelected,
1700
+ 'multi-selected': isMultiSelected,
1701
+ 'drag-source': isDragSource,
1702
+ 'cut': isCut,
1703
+ 'focused': isFocused,
1704
+ 'highlighted': this.highlighted === entity.key,
1705
+ })}"
1706
+ tabindex="${isFocused ? '0' : '-1'}"
1707
+ draggable="true"
1708
+ data-key="${entity.key}"
1709
+ data-kind="${entity.kind}"
1710
+ data-domain="${entity.domain.key}"
1711
+ data-parent="${parent.key !== entity.domain.key ? parent.key : ''}"
1712
+ @click="${(e: MouseEvent) => this.handleItemClick(e, entity.key, entity.kind, entity.domain.key, parent.key)}"
1713
+ @focus="${() => this.handleItemFocus(entity.key)}"
1714
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, entity.key)}"
1715
+ @dragend="${() => this.handleDragEnd()}"
1716
+ >
1717
+ <span class="expand-placeholder"></span>
1718
+ <ui-icon class="item-icon" icon="${getDomainIconType(entity.kind)}"></ui-icon>
1719
+ <span class="item-label">${entity.info.getLabel()}</span>
1720
+ </div>
1721
+ </div>
1722
+ `
1723
+ }
1724
+
1725
+ /**
1726
+ * Render external namespace item (read-only)
1727
+ */
1728
+ protected renderExternalNamespaceItem(
1729
+ namespace: DomainNamespace,
1730
+ parent: DataDomain | DomainNamespace
1731
+ ): TemplateResult {
1732
+ const hasChildren = namespace.hasFields()
1733
+ const isSelected = this.isItemSelected(namespace.key)
1734
+ const isMultiSelected = this.selectedItems.size > 1 && isSelected
1735
+ const isCollapsed = this.isCollapsed(namespace.key)
1736
+ const isFocused = this.focusedItem === namespace.key
1737
+
1738
+ return html`
1739
+ <div class="tree-item external-item" role="treeitem">
1740
+ <div
1741
+ class="item-content external-item-content ${classMap({
1742
+ 'selected': isSelected && !isMultiSelected,
1743
+ 'multi-selected': isMultiSelected,
1744
+ 'focused': isFocused,
1745
+ 'highlighted': this.highlighted === namespace.key,
1746
+ })}"
1747
+ tabindex="${isFocused ? '0' : '-1'}"
1748
+ draggable="true"
1749
+ data-key="${namespace.key}"
1750
+ data-kind="${namespace.kind}"
1751
+ data-domain="${namespace.domain.key}"
1752
+ data-parent="${parent.key !== namespace.domain.key ? parent.key : ''}"
1753
+ @click="${(e: MouseEvent) =>
1754
+ this.handleExternalItemClick(
1755
+ e,
1756
+ namespace.key,
1757
+ namespace.kind,
1758
+ namespace.domain.key,
1759
+ parent.key !== namespace.domain.key ? parent.key : undefined
1760
+ )}"
1761
+ @focus="${() => this.handleItemFocus(namespace.key)}"
1762
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, namespace.key)}"
1763
+ @dragend="${() => this.handleDragEnd()}"
1764
+ >
1765
+ ${hasChildren
1766
+ ? html`
1767
+ <ui-icon
1768
+ class="expand-icon ${isCollapsed ? '' : 'expanded'}"
1769
+ icon="chevronRight"
1770
+ @click="${(e: MouseEvent) => this.toggleCollapsed(namespace.key, e)}"
1771
+ ></ui-icon>
1772
+ `
1773
+ : html`<span class="expand-placeholder"></span>`}
1774
+ <ui-icon class="item-icon" icon="${getDomainIconType(namespace.kind)}"></ui-icon>
1775
+ <span class="item-label">${namespace.info.getLabel()}</span>
1776
+ </div>
1777
+ ${hasChildren && !isCollapsed
1778
+ ? html` <div class="children">${this.renderExternalDomainTree(namespace)}</div>`
1779
+ : ''}
1780
+ </div>
1781
+ `
1782
+ }
1783
+
1784
+ /**
1785
+ * Render external model item (read-only)
1786
+ */
1787
+ protected renderExternalModelItem(model: DomainModel, parent: DataDomain | DomainNamespace): TemplateResult {
1788
+ const hasEntities = model.hasFields()
1789
+ const isSelected = this.isItemSelected(model.key)
1790
+ const isMultiSelected = this.selectedItems.size > 1 && isSelected
1791
+ const isCollapsed = this.isCollapsed(model.key)
1792
+ const isFocused = this.focusedItem === model.key
1793
+
1794
+ return html`
1795
+ <div class="tree-item external-item" role="treeitem">
1796
+ <div
1797
+ class="item-content external-item-content ${classMap({
1798
+ 'selected': isSelected && !isMultiSelected,
1799
+ 'multi-selected': isMultiSelected,
1800
+ 'focused': isFocused,
1801
+ 'highlighted': this.highlighted === model.key,
1802
+ })}"
1803
+ tabindex="${isFocused ? '0' : '-1'}"
1804
+ draggable="true"
1805
+ data-key="${model.key}"
1806
+ data-kind="${model.kind}"
1807
+ data-domain="${model.domain.key}"
1808
+ data-parent="${parent.key !== model.domain.key ? parent.key : ''}"
1809
+ @click="${(e: MouseEvent) =>
1810
+ this.handleExternalItemClick(
1811
+ e,
1812
+ model.key,
1813
+ model.kind,
1814
+ model.domain.key,
1815
+ parent.key !== model.domain.key ? parent.key : undefined
1816
+ )}"
1817
+ @focus="${() => this.handleItemFocus(model.key)}"
1818
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, model.key)}"
1819
+ @dragend="${() => this.handleDragEnd()}"
1820
+ >
1821
+ ${hasEntities
1822
+ ? html`
1823
+ <ui-icon
1824
+ class="expand-icon ${isCollapsed ? '' : 'expanded'}"
1825
+ icon="chevronRight"
1826
+ @click="${(e: MouseEvent) => this.toggleCollapsed(model.key, e)}"
1827
+ ></ui-icon>
1828
+ `
1829
+ : html`<span class="expand-placeholder"></span>`}
1830
+ <ui-icon class="item-icon" icon="${getDomainIconType(model.kind)}"></ui-icon>
1831
+ <span class="item-label">${model.info.getLabel()}</span>
1832
+ </div>
1833
+ ${hasEntities && !isCollapsed ? html` <div class="children">${this.renderExternalEntityList(model)}</div>` : ''}
1834
+ </div>
1835
+ `
1836
+ }
1837
+
1838
+ /**
1839
+ * Render external entity list
1840
+ */
1841
+ protected renderExternalEntityList(model: DomainModel): TemplateResult {
1842
+ const entities: TemplateResult[] = []
1843
+
1844
+ for (const entity of model.listEntities()) {
1845
+ entities.push(this.renderExternalEntityItem(entity, model))
1846
+ }
1847
+
1848
+ return html`<div class="external-entity-items">${entities}</div>`
1849
+ }
1850
+
1851
+ /**
1852
+ * Render external entity item (read-only)
1853
+ */
1854
+ protected renderExternalEntityItem(entity: DomainEntity, parent: DomainModel): TemplateResult {
1855
+ const isSelected = this.isItemSelected(entity.key)
1856
+ const isMultiSelected = this.selectedItems.size > 1 && isSelected
1857
+ const isFocused = this.focusedItem === entity.key
1858
+
1859
+ return html`
1860
+ <div class="tree-item external-item" role="treeitem">
1861
+ <div
1862
+ class="item-content external-item-content ${classMap({
1863
+ 'selected': isSelected && !isMultiSelected,
1864
+ 'multi-selected': isMultiSelected,
1865
+ 'focused': isFocused,
1866
+ 'highlighted': this.highlighted === entity.key,
1867
+ })}"
1868
+ tabindex="${isFocused ? '0' : '-1'}"
1869
+ draggable="true"
1870
+ data-key="${entity.key}"
1871
+ data-kind="${entity.kind}"
1872
+ data-domain="${entity.domain.key}"
1873
+ data-parent="${parent.key !== entity.domain.key ? parent.key : ''}"
1874
+ @click="${(e: MouseEvent) =>
1875
+ this.handleExternalItemClick(e, entity.key, entity.kind, entity.domain.key, parent.key)}"
1876
+ @focus="${() => this.handleItemFocus(entity.key)}"
1877
+ @dragstart="${(e: DragEvent) => this.handleDragStart(e, entity.key)}"
1878
+ @dragend="${() => this.handleDragEnd()}"
1879
+ >
1880
+ <span class="expand-placeholder"></span>
1881
+ <ui-icon class="item-icon" icon="${getDomainIconType(entity.kind)}"></ui-icon>
1882
+ <span class="item-label">${entity.info.getLabel()}</span>
1883
+ </div>
1884
+ </div>
1885
+ `
1886
+ }
1887
+ }