@theia/core 1.65.0-next.19 → 1.65.0-next.39

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 (339) hide show
  1. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts +1 -1
  2. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
  3. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +1 -1
  4. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
  5. package/lib/browser/catalog.json +24 -7
  6. package/lib/browser/common-frontend-contribution.d.ts +2 -3
  7. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  8. package/lib/browser/common-frontend-contribution.js +3 -4
  9. package/lib/browser/common-frontend-contribution.js.map +1 -1
  10. package/lib/browser/encoding-registry.d.ts +1 -1
  11. package/lib/browser/encoding-registry.d.ts.map +1 -1
  12. package/lib/browser/encoding-registry.js +1 -1
  13. package/lib/browser/encoding-registry.js.map +1 -1
  14. package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
  15. package/lib/browser/frontend-application-bindings.js +10 -17
  16. package/lib/browser/frontend-application-bindings.js.map +1 -1
  17. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  18. package/lib/browser/frontend-application-module.js +4 -5
  19. package/lib/browser/frontend-application-module.js.map +1 -1
  20. package/lib/browser/frontend-application.d.ts +1 -1
  21. package/lib/browser/frontend-application.d.ts.map +1 -1
  22. package/lib/browser/frontend-application.js +1 -1
  23. package/lib/browser/frontend-application.js.map +1 -1
  24. package/lib/browser/hover-service.d.ts +1 -2
  25. package/lib/browser/hover-service.d.ts.map +1 -1
  26. package/lib/browser/hover-service.js +1 -2
  27. package/lib/browser/hover-service.js.map +1 -1
  28. package/lib/browser/icon-theme-service.d.ts +3 -2
  29. package/lib/browser/icon-theme-service.d.ts.map +1 -1
  30. package/lib/browser/icon-theme-service.js +4 -3
  31. package/lib/browser/icon-theme-service.js.map +1 -1
  32. package/lib/browser/index.d.ts +0 -1
  33. package/lib/browser/index.d.ts.map +1 -1
  34. package/lib/browser/index.js +0 -1
  35. package/lib/browser/index.js.map +1 -1
  36. package/lib/browser/keybinding.d.ts +1 -1
  37. package/lib/browser/keybinding.d.ts.map +1 -1
  38. package/lib/browser/keybinding.js +1 -1
  39. package/lib/browser/keybinding.js.map +1 -1
  40. package/lib/browser/keybinding.spec.js +1 -1
  41. package/lib/browser/keybinding.spec.js.map +1 -1
  42. package/lib/browser/menu/browser-menu-plugin.d.ts +2 -2
  43. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  44. package/lib/browser/menu/browser-menu-plugin.js +2 -3
  45. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  46. package/lib/browser/open-with-service.d.ts +1 -1
  47. package/lib/browser/open-with-service.d.ts.map +1 -1
  48. package/lib/browser/open-with-service.js +3 -3
  49. package/lib/browser/open-with-service.js.map +1 -1
  50. package/lib/browser/opener-service.d.ts +1 -2
  51. package/lib/browser/opener-service.d.ts.map +1 -1
  52. package/lib/browser/opener-service.js.map +1 -1
  53. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts +6 -0
  54. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts.map +1 -0
  55. package/lib/browser/preferences/frontend-config-preference-contributions.js +60 -0
  56. package/lib/browser/preferences/frontend-config-preference-contributions.js.map +1 -0
  57. package/lib/browser/preferences/index.d.ts +0 -5
  58. package/lib/browser/preferences/index.d.ts.map +1 -1
  59. package/lib/browser/preferences/index.js +0 -5
  60. package/lib/browser/preferences/index.js.map +1 -1
  61. package/lib/browser/preferences/preference-contribution.d.ts +0 -96
  62. package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
  63. package/lib/browser/preferences/preference-contribution.js +14 -355
  64. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  65. package/lib/browser/preferences/preference-proxy.spec.js +25 -17
  66. package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
  67. package/lib/browser/preferences/preference-schema-provider.spec.js +21 -34
  68. package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
  69. package/lib/browser/preferences/preference-service.spec.js +57 -80
  70. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  71. package/lib/browser/preferences/preference-validation-service.d.ts +24 -26
  72. package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
  73. package/lib/browser/preferences/preference-validation-service.js +40 -20
  74. package/lib/browser/preferences/preference-validation-service.js.map +1 -1
  75. package/lib/browser/preferences/preference-validation-service.spec.js +10 -6
  76. package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
  77. package/lib/browser/preferences/test/mock-preference-provider.d.ts +2 -3
  78. package/lib/browser/preferences/test/mock-preference-provider.d.ts.map +1 -1
  79. package/lib/browser/preferences/test/mock-preference-provider.js +5 -7
  80. package/lib/browser/preferences/test/mock-preference-provider.js.map +1 -1
  81. package/lib/browser/preferences/test/mock-preference-proxy.d.ts.map +1 -1
  82. package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
  83. package/lib/browser/preferences/test/mock-preference-service.d.ts +1 -4
  84. package/lib/browser/preferences/test/mock-preference-service.d.ts.map +1 -1
  85. package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
  86. package/lib/browser/quick-input/quick-command-service.d.ts +1 -1
  87. package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
  88. package/lib/browser/quick-input/quick-command-service.js +1 -1
  89. package/lib/browser/quick-input/quick-command-service.js.map +1 -1
  90. package/lib/browser/request/browser-request-service.d.ts +1 -1
  91. package/lib/browser/request/browser-request-service.d.ts.map +1 -1
  92. package/lib/browser/request/browser-request-service.js +2 -2
  93. package/lib/browser/request/browser-request-service.js.map +1 -1
  94. package/lib/browser/shell/application-shell.d.ts +1 -1
  95. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  96. package/lib/browser/shell/application-shell.js +7 -6
  97. package/lib/browser/shell/application-shell.js.map +1 -1
  98. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +3 -2
  99. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  100. package/lib/browser/shell/tab-bars.d.ts +1 -1
  101. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  102. package/lib/browser/shell/theia-dock-panel.d.ts +1 -1
  103. package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
  104. package/lib/browser/status-bar/status-bar.d.ts +1 -1
  105. package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
  106. package/lib/browser/status-bar/status-bar.js +3 -2
  107. package/lib/browser/status-bar/status-bar.js.map +1 -1
  108. package/lib/browser/theming.d.ts +5 -4
  109. package/lib/browser/theming.d.ts.map +1 -1
  110. package/lib/browser/theming.js +7 -6
  111. package/lib/browser/theming.js.map +1 -1
  112. package/lib/browser/tooltip-service.d.ts +1 -1
  113. package/lib/browser/tooltip-service.d.ts.map +1 -1
  114. package/lib/browser/tooltip-service.js +1 -1
  115. package/lib/browser/tooltip-service.js.map +1 -1
  116. package/lib/browser/tree/index.d.ts +0 -1
  117. package/lib/browser/tree/index.d.ts.map +1 -1
  118. package/lib/browser/tree/index.js +0 -1
  119. package/lib/browser/tree/index.js.map +1 -1
  120. package/lib/browser/tree/tree-widget.d.ts +2 -2
  121. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  122. package/lib/browser/tree/tree-widget.js +3 -3
  123. package/lib/browser/tree/tree-widget.js.map +1 -1
  124. package/lib/browser/widgets/widget.js +4 -4
  125. package/lib/browser/widgets/widget.js.map +1 -1
  126. package/lib/browser/window/default-secondary-window-service.d.ts +1 -2
  127. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  128. package/lib/browser/window/default-secondary-window-service.js +1 -2
  129. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  130. package/lib/browser/window/default-window-service.d.ts +1 -1
  131. package/lib/browser/window/default-window-service.d.ts.map +1 -1
  132. package/lib/browser/window/default-window-service.js +1 -1
  133. package/lib/browser/window/default-window-service.js.map +1 -1
  134. package/lib/browser/window/default-window-service.spec.js +1 -1
  135. package/lib/browser/window/default-window-service.spec.js.map +1 -1
  136. package/lib/browser/window/window-title-service.d.ts +1 -1
  137. package/lib/browser/window/window-title-service.d.ts.map +1 -1
  138. package/lib/browser/window/window-title-service.js +1 -1
  139. package/lib/browser/window/window-title-service.js.map +1 -1
  140. package/lib/{browser → common}/core-preferences.d.ts +2 -1
  141. package/lib/common/core-preferences.d.ts.map +1 -0
  142. package/lib/{browser → common}/core-preferences.js +17 -18
  143. package/lib/common/core-preferences.js.map +1 -0
  144. package/lib/common/index.d.ts +4 -0
  145. package/lib/common/index.d.ts.map +1 -1
  146. package/lib/common/index.js +4 -0
  147. package/lib/common/index.js.map +1 -1
  148. package/lib/common/inversify-utils.d.ts +31 -0
  149. package/lib/common/inversify-utils.d.ts.map +1 -0
  150. package/lib/common/inversify-utils.js +60 -0
  151. package/lib/common/inversify-utils.js.map +1 -0
  152. package/lib/common/json-schema.d.ts +1 -0
  153. package/lib/common/json-schema.d.ts.map +1 -1
  154. package/lib/common/preferences/defaults-preference-provider.d.ts +21 -0
  155. package/lib/common/preferences/defaults-preference-provider.d.ts.map +1 -0
  156. package/lib/common/preferences/defaults-preference-provider.js +99 -0
  157. package/lib/common/preferences/defaults-preference-provider.js.map +1 -0
  158. package/lib/common/preferences/index.d.ts +12 -0
  159. package/lib/common/preferences/index.d.ts.map +1 -0
  160. package/lib/common/preferences/index.js +30 -0
  161. package/lib/common/preferences/index.js.map +1 -0
  162. package/lib/{browser → common}/preferences/injectable-preference-proxy.d.ts +1 -1
  163. package/lib/common/preferences/injectable-preference-proxy.d.ts.map +1 -0
  164. package/lib/{browser → common}/preferences/injectable-preference-proxy.js +2 -2
  165. package/lib/common/preferences/injectable-preference-proxy.js.map +1 -0
  166. package/lib/common/preferences/preference-configurations.d.ts.map +1 -0
  167. package/lib/common/preferences/preference-configurations.js.map +1 -0
  168. package/lib/{browser → common}/preferences/preference-language-override-service.d.ts +4 -13
  169. package/lib/common/preferences/preference-language-override-service.d.ts.map +1 -0
  170. package/lib/{browser → common}/preferences/preference-language-override-service.js +14 -30
  171. package/lib/common/preferences/preference-language-override-service.js.map +1 -0
  172. package/lib/common/preferences/preference-provider-impl.d.ts +52 -0
  173. package/lib/common/preferences/preference-provider-impl.d.ts.map +1 -0
  174. package/lib/{browser/preferences/preference-provider.js → common/preferences/preference-provider-impl.js} +23 -95
  175. package/lib/common/preferences/preference-provider-impl.js.map +1 -0
  176. package/lib/{browser → common}/preferences/preference-provider.d.ts +34 -59
  177. package/lib/common/preferences/preference-provider.d.ts.map +1 -0
  178. package/lib/common/preferences/preference-provider.js +71 -0
  179. package/lib/common/preferences/preference-provider.js.map +1 -0
  180. package/lib/common/preferences/preference-provider.spec.d.ts.map +1 -0
  181. package/lib/{browser → common}/preferences/preference-provider.spec.js +4 -4
  182. package/lib/common/preferences/preference-provider.spec.js.map +1 -0
  183. package/lib/{browser → common}/preferences/preference-proxy.d.ts +2 -2
  184. package/lib/common/preferences/preference-proxy.d.ts.map +1 -0
  185. package/lib/{browser → common}/preferences/preference-proxy.js +10 -10
  186. package/lib/common/preferences/preference-proxy.js.map +1 -0
  187. package/lib/common/preferences/preference-schema-service.d.ts +55 -0
  188. package/lib/common/preferences/preference-schema-service.d.ts.map +1 -0
  189. package/lib/common/preferences/preference-schema-service.js +402 -0
  190. package/lib/common/preferences/preference-schema-service.js.map +1 -0
  191. package/lib/common/preferences/preference-schema.d.ts +145 -43
  192. package/lib/common/preferences/preference-schema.d.ts.map +1 -1
  193. package/lib/common/preferences/preference-schema.js +3 -41
  194. package/lib/common/preferences/preference-schema.js.map +1 -1
  195. package/lib/common/preferences/preference-scope.d.ts +4 -1
  196. package/lib/common/preferences/preference-scope.d.ts.map +1 -1
  197. package/lib/common/preferences/preference-scope.js +5 -14
  198. package/lib/common/preferences/preference-scope.js.map +1 -1
  199. package/lib/{browser → common}/preferences/preference-service.d.ts +9 -10
  200. package/lib/common/preferences/preference-service.d.ts.map +1 -0
  201. package/lib/{browser → common}/preferences/preference-service.js +65 -60
  202. package/lib/common/preferences/preference-service.js.map +1 -0
  203. package/lib/common/supported-encodings.d.ts.map +1 -0
  204. package/lib/common/supported-encodings.js.map +1 -0
  205. package/lib/{browser/tree → common}/tree-preference.d.ts +1 -1
  206. package/lib/common/tree-preference.d.ts.map +1 -0
  207. package/lib/{browser/tree → common}/tree-preference.js +3 -5
  208. package/lib/common/tree-preference.js.map +1 -0
  209. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +2 -1
  210. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
  211. package/lib/electron-browser/menu/electron-context-menu-renderer.js +2 -1
  212. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  213. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -2
  214. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
  215. package/lib/electron-browser/menu/electron-main-menu-factory.js +1 -1
  216. package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
  217. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -2
  218. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  219. package/lib/electron-browser/menu/electron-menu-contribution.js +6 -6
  220. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  221. package/lib/electron-browser/window/electron-window-module.js +1 -1
  222. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  223. package/lib/electron-browser/window/electron-window-service.d.ts +1 -1
  224. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  225. package/lib/electron-browser/window/electron-window-service.js +1 -1
  226. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  227. package/lib/{electron-browser/window → electron-common}/electron-window-preferences.d.ts +2 -1
  228. package/lib/electron-common/electron-window-preferences.d.ts.map +1 -0
  229. package/lib/{electron-browser/window → electron-common}/electron-window-preferences.js +7 -7
  230. package/lib/electron-common/electron-window-preferences.js.map +1 -0
  231. package/lib/electron-node/window/electron-window-module.d.ts +4 -0
  232. package/lib/electron-node/window/electron-window-module.d.ts.map +1 -0
  233. package/lib/{browser/preferences/preference-scope.js → electron-node/window/electron-window-module.js} +7 -5
  234. package/lib/electron-node/window/electron-window-module.js.map +1 -0
  235. package/lib/node/backend-application-module.d.ts.map +1 -1
  236. package/lib/node/backend-application-module.js +13 -0
  237. package/lib/node/backend-application-module.js.map +1 -1
  238. package/lib/node/backend-application.js +1 -1
  239. package/package.json +6 -5
  240. package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +1 -1
  241. package/src/browser/common-frontend-contribution.ts +2 -3
  242. package/src/browser/encoding-registry.ts +1 -1
  243. package/src/browser/frontend-application-bindings.ts +8 -13
  244. package/src/browser/frontend-application-module.ts +4 -4
  245. package/src/browser/frontend-application.ts +1 -1
  246. package/src/browser/hover-service.ts +1 -2
  247. package/src/browser/icon-theme-service.ts +3 -2
  248. package/src/browser/index.ts +0 -1
  249. package/src/browser/keybinding.spec.ts +1 -1
  250. package/src/browser/keybinding.ts +1 -1
  251. package/src/browser/menu/browser-menu-plugin.ts +4 -4
  252. package/src/browser/open-with-service.ts +1 -1
  253. package/src/browser/opener-service.ts +1 -2
  254. package/src/browser/preferences/frontend-config-preference-contributions.ts +52 -0
  255. package/src/browser/preferences/index.ts +0 -5
  256. package/src/browser/preferences/preference-contribution.ts +16 -398
  257. package/src/browser/preferences/preference-proxy.spec.ts +27 -17
  258. package/src/browser/preferences/preference-schema-provider.spec.ts +25 -37
  259. package/src/browser/preferences/preference-service.spec.ts +32 -56
  260. package/src/browser/preferences/preference-validation-service.spec.ts +27 -19
  261. package/src/browser/preferences/preference-validation-service.ts +60 -41
  262. package/src/browser/preferences/test/mock-preference-provider.ts +2 -5
  263. package/src/browser/preferences/test/mock-preference-proxy.ts +1 -2
  264. package/src/browser/preferences/test/mock-preference-service.ts +1 -4
  265. package/src/browser/quick-input/quick-command-service.ts +1 -1
  266. package/src/browser/request/browser-request-service.ts +4 -4
  267. package/src/browser/shell/application-shell.ts +7 -6
  268. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +5 -5
  269. package/src/browser/shell/tab-bars.ts +1 -1
  270. package/src/browser/shell/theia-dock-panel.ts +1 -1
  271. package/src/browser/status-bar/status-bar.tsx +3 -2
  272. package/src/browser/theming.ts +7 -6
  273. package/src/browser/tooltip-service.tsx +1 -1
  274. package/src/browser/tree/index.ts +0 -1
  275. package/src/browser/tree/tree-widget.tsx +4 -4
  276. package/src/browser/widgets/widget.ts +4 -4
  277. package/src/browser/window/default-secondary-window-service.ts +1 -2
  278. package/src/browser/window/default-window-service.spec.ts +1 -1
  279. package/src/browser/window/default-window-service.ts +1 -1
  280. package/src/browser/window/window-title-service.ts +1 -1
  281. package/src/{browser → common}/core-preferences.ts +16 -17
  282. package/src/common/index.ts +4 -0
  283. package/src/common/inversify-utils.ts +63 -0
  284. package/src/common/json-schema.ts +1 -0
  285. package/src/common/preferences/defaults-preference-provider.ts +91 -0
  286. package/src/common/preferences/index.ts +27 -0
  287. package/src/{browser → common}/preferences/injectable-preference-proxy.ts +3 -3
  288. package/src/{browser → common}/preferences/preference-language-override-service.ts +12 -29
  289. package/src/common/preferences/preference-provider-impl.ts +165 -0
  290. package/src/{browser → common}/preferences/preference-provider.spec.ts +6 -5
  291. package/src/common/preferences/preference-provider.ts +164 -0
  292. package/src/{browser → common}/preferences/preference-proxy.ts +15 -14
  293. package/src/common/preferences/preference-schema-service.ts +434 -0
  294. package/src/common/preferences/preference-schema.ts +156 -64
  295. package/src/common/preferences/preference-scope.ts +5 -13
  296. package/src/{browser → common}/preferences/preference-service.ts +71 -65
  297. package/src/{browser/tree → common}/tree-preference.ts +2 -4
  298. package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -1
  299. package/src/electron-browser/menu/electron-main-menu-factory.ts +2 -2
  300. package/src/electron-browser/menu/electron-menu-contribution.ts +9 -6
  301. package/src/electron-browser/window/electron-window-module.ts +1 -1
  302. package/src/electron-browser/window/electron-window-service.ts +1 -1
  303. package/src/{electron-browser/window → electron-common}/electron-window-preferences.ts +6 -6
  304. package/src/{browser/preferences/preference-scope.ts → electron-node/window/electron-window-module.ts} +7 -3
  305. package/src/node/backend-application-module.ts +28 -1
  306. package/src/node/backend-application.ts +1 -1
  307. package/lib/browser/core-preferences.d.ts.map +0 -1
  308. package/lib/browser/core-preferences.js.map +0 -1
  309. package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +0 -1
  310. package/lib/browser/preferences/injectable-preference-proxy.js.map +0 -1
  311. package/lib/browser/preferences/preference-configurations.d.ts.map +0 -1
  312. package/lib/browser/preferences/preference-configurations.js.map +0 -1
  313. package/lib/browser/preferences/preference-language-override-service.d.ts.map +0 -1
  314. package/lib/browser/preferences/preference-language-override-service.js.map +0 -1
  315. package/lib/browser/preferences/preference-provider.d.ts.map +0 -1
  316. package/lib/browser/preferences/preference-provider.js.map +0 -1
  317. package/lib/browser/preferences/preference-provider.spec.d.ts.map +0 -1
  318. package/lib/browser/preferences/preference-provider.spec.js.map +0 -1
  319. package/lib/browser/preferences/preference-proxy.d.ts.map +0 -1
  320. package/lib/browser/preferences/preference-proxy.js.map +0 -1
  321. package/lib/browser/preferences/preference-scope.d.ts +0 -3
  322. package/lib/browser/preferences/preference-scope.d.ts.map +0 -1
  323. package/lib/browser/preferences/preference-scope.js.map +0 -1
  324. package/lib/browser/preferences/preference-service.d.ts.map +0 -1
  325. package/lib/browser/preferences/preference-service.js.map +0 -1
  326. package/lib/browser/supported-encodings.d.ts.map +0 -1
  327. package/lib/browser/supported-encodings.js.map +0 -1
  328. package/lib/browser/tree/tree-preference.d.ts.map +0 -1
  329. package/lib/browser/tree/tree-preference.js.map +0 -1
  330. package/lib/electron-browser/window/electron-window-preferences.d.ts.map +0 -1
  331. package/lib/electron-browser/window/electron-window-preferences.js.map +0 -1
  332. package/src/browser/preferences/preference-provider.ts +0 -277
  333. /package/lib/{browser → common}/preferences/preference-configurations.d.ts +0 -0
  334. /package/lib/{browser → common}/preferences/preference-configurations.js +0 -0
  335. /package/lib/{browser → common}/preferences/preference-provider.spec.d.ts +0 -0
  336. /package/lib/{browser → common}/supported-encodings.d.ts +0 -0
  337. /package/lib/{browser → common}/supported-encodings.js +0 -0
  338. /package/src/{browser → common}/preferences/preference-configurations.ts +0 -0
  339. /package/src/{browser → common}/supported-encodings.ts +0 -0
@@ -0,0 +1,402 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.PreferenceSchemaServiceImpl = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("inversify");
21
+ const disposable_1 = require("../disposable");
22
+ const event_1 = require("../event");
23
+ const preference_schema_1 = require("./preference-schema");
24
+ const preference_scope_1 = require("./preference-scope");
25
+ const preference_provider_1 = require("./preference-provider");
26
+ const contribution_provider_1 = require("../contribution-provider");
27
+ const promise_util_1 = require("../promise-util");
28
+ const NO_OVERRIDE = {};
29
+ const OVERRIDE_PROPERTY = '\\[(.*)\\]$';
30
+ let PreferenceSchemaServiceImpl = class PreferenceSchemaServiceImpl {
31
+ constructor() {
32
+ // Storage structures
33
+ this.schemas = new Set();
34
+ this.properties = new Map();
35
+ /**
36
+ * This map stores default overrides. The primary map key is the base preference name.
37
+ * The preference name maps to a second map keyed by the override identifier or a special object value `NO_OVERRIDE',
38
+ * representing default overrides for the base property. The value in this second map is an array
39
+ * of entries in reverse order of their insertion. This is necessary becuaus multiple clients might register
40
+ * overrides for the same preference key/override combination. The elements in this array consist of a unique, generated
41
+ * identifier and the actual override value. This allows us to always return the last registerd override even
42
+ * when overrides are later removed.
43
+ */
44
+ this.defaultOverrides = new Map();
45
+ this._overrideIdentifiers = new Set();
46
+ this.jsonSchemas = [];
47
+ this._ready = new promise_util_1.Deferred();
48
+ this.nextSchemaTitle = 1;
49
+ this.nextOverrideValueId = 1;
50
+ // Event emitters
51
+ this.defaultValueChangedEmitter = new event_1.Emitter();
52
+ this.schemaChangedEmitter = new event_1.Emitter();
53
+ // Public events
54
+ this.onDidChangeDefaultValue = this.defaultValueChangedEmitter.event;
55
+ this.onDidChangeSchema = this.schemaChangedEmitter.event;
56
+ }
57
+ get ready() {
58
+ return this._ready.promise;
59
+ }
60
+ get overrideIdentifiers() {
61
+ return this._overrideIdentifiers;
62
+ }
63
+ getSchemaProperties() {
64
+ return this.properties;
65
+ }
66
+ init() {
67
+ for (const scope of this.validScopes) {
68
+ this.jsonSchemas[scope] = {
69
+ type: 'object',
70
+ properties: {},
71
+ patternProperties: {},
72
+ additionalProperties: false
73
+ };
74
+ }
75
+ const promises = [];
76
+ this.preferenceContributions.getContributions().forEach(contrib => {
77
+ if (contrib.schema) {
78
+ this.addSchema(contrib.schema);
79
+ }
80
+ if (contrib.initSchema) {
81
+ promises.push(contrib.initSchema(this));
82
+ }
83
+ });
84
+ Promise.all(promises).then(() => this._ready.resolve());
85
+ }
86
+ dispose() {
87
+ this.defaultValueChangedEmitter.dispose();
88
+ this.schemaChangedEmitter.dispose();
89
+ }
90
+ registerOverrideIdentifier(overrideIdentifier) {
91
+ if (!this._overrideIdentifiers.has(overrideIdentifier)) {
92
+ this.addOverrideToJsonSchema(overrideIdentifier);
93
+ this._overrideIdentifiers.add(overrideIdentifier);
94
+ this.schemaChangedEmitter.fire();
95
+ return disposable_1.Disposable.create(() => {
96
+ if (this._overrideIdentifiers.delete(overrideIdentifier)) {
97
+ this.schemaChangedEmitter.fire();
98
+ }
99
+ });
100
+ }
101
+ return disposable_1.Disposable.NULL;
102
+ }
103
+ addSchema(schema) {
104
+ this.schemas.add(schema);
105
+ for (const [key, property] of Object.entries(schema.properties)) {
106
+ if (this.properties.has(key)) {
107
+ throw new Error(`Property with id '${key}' already exists`);
108
+ }
109
+ if (property.scope === undefined) {
110
+ property.scope = schema.scope;
111
+ }
112
+ if (property.overridable === undefined) {
113
+ property.overridable = schema.defaultOverridable;
114
+ }
115
+ this.properties.set(key, property);
116
+ this.setJSONSchemasProperty(key, property);
117
+ if (property.default !== undefined) {
118
+ this.defaultValueChangedEmitter.fire(this.changeFor(key, undefined, this.defaultOverrides.get(key), undefined, property.default));
119
+ }
120
+ }
121
+ this.schemaChangedEmitter.fire();
122
+ return disposable_1.Disposable.create(() => {
123
+ if (this.schemas.delete(schema)) {
124
+ for (const [key, property] of Object.entries(schema.properties)) {
125
+ this.deleteFromJSONSchemas(key, property);
126
+ this.properties.delete(key);
127
+ const overrides = this.defaultOverrides.get(key);
128
+ const baseOverride = overrides === null || overrides === void 0 ? void 0 : overrides.get(NO_OVERRIDE);
129
+ if (baseOverride !== undefined) {
130
+ this.defaultValueChangedEmitter.fire(this.changeFor(key, undefined, overrides, baseOverride, undefined));
131
+ }
132
+ else if (property.default !== undefined) {
133
+ this.defaultValueChangedEmitter.fire(this.changeFor(key, undefined, overrides, property.default, undefined));
134
+ }
135
+ if (overrides) {
136
+ for (const [overrideKey, value] of overrides) {
137
+ if (typeof overrideKey === 'string') {
138
+ this.defaultValueChangedEmitter.fire(this.changeFor(key, overrideKey, overrides, value[0][1], undefined));
139
+ }
140
+ }
141
+ }
142
+ }
143
+ this.schemaChangedEmitter.fire();
144
+ }
145
+ });
146
+ }
147
+ isValidInScope(preferenceName, scope) {
148
+ const property = this.properties.get(preferenceName);
149
+ if (!property) {
150
+ return false;
151
+ }
152
+ // A property is valid in a scope if:
153
+ // 1. It is included (undefined or true)
154
+ // 2. Its scope is not defined (valid in all scopes) or its scope includes the given scope
155
+ return (property.included !== false) &&
156
+ (property.scope === undefined || property.scope >= scope);
157
+ }
158
+ getSchemaProperty(key) {
159
+ return this.properties.get(key);
160
+ }
161
+ updateSchemaProperty(key, property) {
162
+ var _a;
163
+ const existing = this.properties.get(key);
164
+ if (existing) {
165
+ // Update the property with new values
166
+ const updatedProperty = { ...existing, ...property };
167
+ this.properties.set(key, updatedProperty);
168
+ const hasNoBaseOverrideValue = ((_a = this.defaultOverrides.get(key)) === null || _a === void 0 ? void 0 : _a.get(NO_OVERRIDE)) === undefined;
169
+ if (hasNoBaseOverrideValue && !preference_provider_1.PreferenceUtils.deepEqual(property.default, existing.default)) {
170
+ this.defaultValueChangedEmitter.fire(this.changeFor(key, undefined, this.defaultOverrides.get(key), undefined, property.default));
171
+ }
172
+ this.setJSONSchemasProperty(key, updatedProperty);
173
+ this.schemaChangedEmitter.fire();
174
+ }
175
+ else {
176
+ console.warn(`Trying to update non-existent property ${key}`);
177
+ }
178
+ }
179
+ registerOverride(key, overrideIdentifier, value) {
180
+ const overrideId = overrideIdentifier || NO_OVERRIDE;
181
+ const property = this.properties.get(key);
182
+ if (!property) {
183
+ console.warn(`Trying to register default override for non-existent preference: ${key}`);
184
+ }
185
+ else if (!property.overridable && overrideIdentifier) {
186
+ console.warn(`Trying to register default override for identifier ${overrideIdentifier} for non-overridable preference: ${key}`);
187
+ }
188
+ let overrides = this.defaultOverrides.get(key);
189
+ if (!overrides) {
190
+ overrides = new Map();
191
+ this.defaultOverrides.set(key, overrides);
192
+ }
193
+ const oldValue = this.getDefaultValue(key, overrideIdentifier);
194
+ const overrideValueId = this.nextOverrideValueId;
195
+ let override = overrides.get(overrideId);
196
+ if (!override) {
197
+ override = [];
198
+ overrides.set(overrideId, override);
199
+ }
200
+ override.unshift([overrideValueId, value]);
201
+ // Fire event only if the value actually changed
202
+ if (!preference_provider_1.PreferenceUtils.deepEqual(oldValue, value)) {
203
+ const evt = this.changeFor(key, overrideIdentifier, overrides, oldValue, value);
204
+ this.defaultValueChangedEmitter.fire(evt);
205
+ }
206
+ if (property) {
207
+ this.setJSONSchemasProperty(key, property);
208
+ }
209
+ return disposable_1.Disposable.create(() => {
210
+ this.removeOverride(key, overrideIdentifier, overrideValueId);
211
+ });
212
+ }
213
+ changeFor(key, overrideIdentifier, overrides, oldValue, newValue) {
214
+ const affectedOverrides = [];
215
+ if (!overrideIdentifier) {
216
+ for (const id of this._overrideIdentifiers) {
217
+ if (!(overrides === null || overrides === void 0 ? void 0 : overrides.has(id))) {
218
+ affectedOverrides.push(id);
219
+ }
220
+ }
221
+ }
222
+ return {
223
+ key,
224
+ overrideIdentifier: overrideIdentifier,
225
+ otherAffectedOverrides: affectedOverrides,
226
+ oldValue,
227
+ newValue
228
+ };
229
+ }
230
+ removeOverride(key, overrideIdentifier, overrideValueId) {
231
+ const overrideId = overrideIdentifier || NO_OVERRIDE;
232
+ const overrides = this.defaultOverrides.get(key);
233
+ if (overrides) {
234
+ const values = overrides.get(overrideId);
235
+ if (values) {
236
+ const index = values.findIndex(v => v[0] === overrideValueId);
237
+ if (index) {
238
+ const oldValue = this.getDefaultValue(key, overrideIdentifier);
239
+ values.splice(index, 1);
240
+ const newValue = this.getDefaultValue(key, overrideIdentifier);
241
+ if (!preference_provider_1.PreferenceUtils.deepEqual(oldValue, newValue)) {
242
+ const affectedOverrides = [];
243
+ if (!overrideIdentifier) {
244
+ for (const id of this._overrideIdentifiers) {
245
+ if (!overrides.has(id)) {
246
+ affectedOverrides.push(id);
247
+ }
248
+ }
249
+ }
250
+ this.defaultValueChangedEmitter.fire({
251
+ key,
252
+ overrideIdentifier,
253
+ otherAffectedOverrides: affectedOverrides,
254
+ oldValue,
255
+ newValue
256
+ });
257
+ }
258
+ }
259
+ if (values.length === 0) {
260
+ overrides.delete(overrideId);
261
+ }
262
+ }
263
+ if (overrides.size === 0) {
264
+ this.defaultOverrides.delete(key);
265
+ }
266
+ }
267
+ }
268
+ getDefaultValue(key, overrideIdentifier) {
269
+ const overrideId = overrideIdentifier || NO_OVERRIDE;
270
+ const overrides = this.defaultOverrides.get(key);
271
+ if (overrides) {
272
+ const values = overrides.get(overrideId);
273
+ if (values) {
274
+ return values[0][1]; // there will be no empty values arrays in the data structure
275
+ }
276
+ }
277
+ const property = this.properties.get(key);
278
+ return property === null || property === void 0 ? void 0 : property.default;
279
+ }
280
+ inspectDefaultValue(key, overrideIdentifier) {
281
+ const overrideId = overrideIdentifier || NO_OVERRIDE;
282
+ const overrides = this.defaultOverrides.get(key);
283
+ if (overrides) {
284
+ const values = overrides.get(overrideId);
285
+ if (values) {
286
+ return values[0][1]; // there will be no empty values arrays in the data structure
287
+ }
288
+ }
289
+ if (!overrideIdentifier) {
290
+ const property = this.properties.get(key);
291
+ return property === null || property === void 0 ? void 0 : property.default;
292
+ }
293
+ return undefined;
294
+ }
295
+ getJSONSchema(scope) {
296
+ return this.jsonSchemas[scope];
297
+ }
298
+ setJSONSchemasProperty(key, property) {
299
+ for (const scope of this.validScopes) {
300
+ if (this.isValidInScope(key, scope)) {
301
+ this.setJSONSchemaProperty(this.jsonSchemas[scope], key, property);
302
+ }
303
+ }
304
+ }
305
+ deleteFromJSONSchemas(key, property) {
306
+ for (const scope of this.validScopes) {
307
+ if (this.isValidInScope(key, scope)) {
308
+ const schema = this.jsonSchemas[scope];
309
+ for (const name of Object.keys(schema.properties)) {
310
+ if (name.match(OVERRIDE_PROPERTY)) {
311
+ const value = schema.properties[name];
312
+ delete value.properties[key];
313
+ }
314
+ else {
315
+ delete schema.properties[key];
316
+ }
317
+ }
318
+ }
319
+ }
320
+ }
321
+ setJSONSchemaProperty(schema, key, property) {
322
+ // Add property to the schema
323
+ const prop = { ...property, default: this.getDefaultValue(key, undefined) };
324
+ schema.properties[key] = prop;
325
+ delete prop['scope'];
326
+ delete prop['overridable'];
327
+ if (property.overridable) {
328
+ for (const overrideIdentifier of this._overrideIdentifiers) {
329
+ const overrideSchema = schema.properties[`[${overrideIdentifier}]`] || {
330
+ type: 'object',
331
+ properties: {},
332
+ patternProperties: {},
333
+ additionalProperties: false
334
+ };
335
+ schema.properties[`[${overrideIdentifier}]`] = overrideSchema;
336
+ overrideSchema.properties[key] = { ...property, default: this.getDefaultValue(key, overrideIdentifier) };
337
+ }
338
+ }
339
+ }
340
+ addOverrideToJsonSchema(overrideIdentifier) {
341
+ for (const scope of this.validScopes) {
342
+ const schema = this.jsonSchemas[scope];
343
+ const overrideSchema = {
344
+ type: 'object',
345
+ properties: {},
346
+ patternProperties: {},
347
+ additionalProperties: false
348
+ };
349
+ schema.properties[`[${overrideIdentifier}]`] = overrideSchema;
350
+ for (const [key, property] of this.properties.entries()) {
351
+ if (property.overridable && this.isValidInScope(key, scope)) {
352
+ overrideSchema.properties[key] = { ...property, default: this.getDefaultValue(key, overrideIdentifier) };
353
+ }
354
+ }
355
+ }
356
+ }
357
+ getDefaultValues() {
358
+ const result = {};
359
+ for (const [key, property] of this.properties.entries()) {
360
+ if (this.isValidInScope(key, preference_scope_1.PreferenceScope.Default)) {
361
+ if (property.default !== undefined) {
362
+ result[key] = property.default;
363
+ }
364
+ const overrides = this.defaultOverrides.get(key);
365
+ if (overrides) {
366
+ for (const [overrideId, values] of overrides.entries()) {
367
+ if (overrideId === NO_OVERRIDE) {
368
+ result[key] = values[0][1];
369
+ }
370
+ else {
371
+ const overrideKey = `[${overrideId}]`;
372
+ const target = result[overrideKey] || {};
373
+ target[key] = values[0][1];
374
+ result[overrideKey] = target;
375
+ }
376
+ }
377
+ }
378
+ }
379
+ }
380
+ return result;
381
+ }
382
+ };
383
+ exports.PreferenceSchemaServiceImpl = PreferenceSchemaServiceImpl;
384
+ tslib_1.__decorate([
385
+ (0, inversify_1.inject)(preference_scope_1.ValidPreferenceScopes),
386
+ tslib_1.__metadata("design:type", Array)
387
+ ], PreferenceSchemaServiceImpl.prototype, "validScopes", void 0);
388
+ tslib_1.__decorate([
389
+ (0, inversify_1.inject)(contribution_provider_1.ContributionProvider),
390
+ (0, inversify_1.named)(preference_schema_1.PreferenceContribution),
391
+ tslib_1.__metadata("design:type", Object)
392
+ ], PreferenceSchemaServiceImpl.prototype, "preferenceContributions", void 0);
393
+ tslib_1.__decorate([
394
+ (0, inversify_1.postConstruct)(),
395
+ tslib_1.__metadata("design:type", Function),
396
+ tslib_1.__metadata("design:paramtypes", []),
397
+ tslib_1.__metadata("design:returntype", void 0)
398
+ ], PreferenceSchemaServiceImpl.prototype, "init", null);
399
+ exports.PreferenceSchemaServiceImpl = PreferenceSchemaServiceImpl = tslib_1.__decorate([
400
+ (0, inversify_1.injectable)()
401
+ ], PreferenceSchemaServiceImpl);
402
+ //# sourceMappingURL=preference-schema-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference-schema-service.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-schema-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,yCAAqE;AACrE,8CAA2C;AAC3C,oCAAmC;AAGnC,2DAA0J;AAC1J,yDAA4E;AAC5E,+DAAwD;AACxD,oEAAgE;AAChE,kDAA2C;AAE3C,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAGjC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAAjC;QACH,qBAAqB;QACF,YAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtC,eAAU,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC1E;;;;;;;;WAQG;QACgB,qBAAgB,GAAG,IAAI,GAAG,EAAuD,CAAC;QAClF,yBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,gBAAW,GAAkB,EAAE,CAAC;QAEhC,WAAM,GAAG,IAAI,uBAAQ,EAAE,CAAC;QAcjC,oBAAe,GAAG,CAAC,CAAC;QACpB,wBAAmB,GAAG,CAAC,CAAC;QAElC,iBAAiB;QACE,+BAA0B,GAAG,IAAI,eAAO,EAA4B,CAAC;QACrE,yBAAoB,GAAG,IAAI,eAAO,EAAQ,CAAC;QAE9D,gBAAgB;QACP,4BAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;QAChE,sBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAyWjE,CAAC;IA9XG,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAoBS,IAAI;QACV,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG;gBACtB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,oBAAoB,EAAE,KAAK;aAC9B,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACH,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IAED,0BAA0B,CAAC,kBAA0B;QACjD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YAEjC,OAAO,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC1B,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACrC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,uBAAU,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,MAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAClC,CAAC;YAED,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3C,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAQ,CAAC,CAAC,CAAC;YACvI,CAAC;QAEL,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAEjC,OAAO,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAEjD,MAAM,YAAY,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,WAAW,CAAC,CAAC;oBACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC7B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC7G,CAAC;yBAAM,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACxC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;oBACjH,CAAC;oBACD,IAAI,SAAS,EAAE,CAAC;wBACZ,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;4BAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gCAClC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;4BAC9G,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACrC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,cAAsB,EAAE,KAAsB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,qCAAqC;QACrC,wCAAwC;QACxC,0FAA0F;QAC1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC;YAChC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,oBAAoB,CAAC,GAAW,EAAE,QAAgC;;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACX,sCAAsC;YACtC,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAC1C,MAAM,sBAAsB,GAAG,CAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,GAAG,CAAC,WAAW,CAAC,MAAK,SAAS,CAAC;YAC9F,IAAI,sBAAsB,IAAI,CAAC,qCAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3F,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAQ,CAAC,CAAC,CAAC;YACvI,CAAC;YAED,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,GAAW,EAAE,kBAAsC,EAAE,KAAgB;QAClF,MAAM,UAAU,GAAG,kBAAkB,IAAI,WAAW,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,oEAAoE,GAAG,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,sDAAsD,kBAAkB,oCAAoC,GAAG,EAAE,CAAC,CAAC;QACpI,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAE/D,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACjD,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,QAAQ,GAAG,EAAE,CAAC;YACd,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QAE3C,gDAAgD;QAChD,IAAI,CAAC,qCAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChF,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC;IAES,SAAS,CAAC,GAAW,EAAE,kBAAsC,EACnE,SAAkE,EAAE,QAA+B,EAAE,QAA+B;QACpI,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACzC,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,EAAE,CAAC,CAAA,EAAE,CAAC;oBACtB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO;YACH,GAAG;YACH,kBAAkB,EAAE,kBAAkB;YACtC,sBAAsB,EAAE,iBAAiB;YACzC,QAAQ;YACR,QAAQ;SACX,CAAC;IACN,CAAC;IAES,cAAc,CAAC,GAAW,EAAE,kBAAsC,EAAE,eAAuB;QACjG,MAAM,UAAU,GAAG,kBAAkB,IAAI,WAAW,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;oBAC/D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;oBAC/D,IAAI,CAAC,qCAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAEjD,MAAM,iBAAiB,GAAG,EAAE,CAAC;wBAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;4BACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gCACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oCACrB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAC/B,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;4BACjC,GAAG;4BACH,kBAAkB;4BAClB,sBAAsB,EAAE,iBAAiB;4BACzC,QAAQ;4BACR,QAAQ;yBACX,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,kBAAsC;QAC/D,MAAM,UAAU,GAAG,kBAAkB,IAAI,WAAW,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D;YACtF,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,kBAAsC;QACnE,MAAM,UAAU,GAAG,kBAAkB,IAAI,WAAW,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D;YACtF,CAAC;QACL,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,KAAsB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEO,sBAAsB,CAAC,GAAW,EAAE,QAAgC;QACxE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC;IACO,qBAAqB,CAAC,GAAW,EAAE,QAAgC;QACvE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,EAAE,CAAC;oBACjD,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAW,CAAC,IAAI,CAAgB,CAAC;wBACtD,OAAO,KAAK,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACJ,OAAO,MAAM,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,MAAmB,EAAE,GAAW,EAAE,QAAgC;QAC5F,6BAA6B;QAC7B,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,UAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,MAAM,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACzD,MAAM,cAAc,GAAgB,MAAM,CAAC,UAAW,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI;oBACjF,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;oBACd,iBAAiB,EAAE,EAAE;oBACrB,oBAAoB,EAAE,KAAK;iBAC9B,CAAC;gBACF,MAAM,CAAC,UAAW,CAAC,IAAI,kBAAkB,GAAG,CAAC,GAAG,cAAc,CAAC;gBAC/D,cAAc,CAAC,UAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC9G,CAAC;QACL,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,kBAA0B;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,cAAc,GAAgB;gBAChC,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,oBAAoB,EAAE,KAAK;aAC9B,CAAC;YACF,MAAM,CAAC,UAAW,CAAC,IAAI,kBAAkB,GAAG,CAAC,GAAG,cAAc,CAAC;YAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC1D,cAAc,CAAC,UAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBAC9G,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,kCAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACnC,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,SAAS,EAAE,CAAC;oBACZ,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;wBACrD,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;4BAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACJ,MAAM,WAAW,GAAG,IAAI,UAAU,GAAG,CAAC;4BACtC,MAAM,MAAM,GAAe,MAAM,CAAC,WAAW,CAAe,IAAI,EAAE,CAAC;4BACnE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;wBACjC,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAlZY,kEAA2B;AA4C3B;IADR,IAAA,kBAAM,EAAC,wCAAqB,CAAC;;gEACmB;AAG9B;IADlB,IAAA,kBAAM,EAAC,4CAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,0CAAsB,CAAC;;4EAC6B;AAG/E;IADT,IAAA,yBAAa,GAAE;;;;uDAoBf;sCArEQ,2BAA2B;IADvC,IAAA,sBAAU,GAAE;GACA,2BAA2B,CAkZvC"}
@@ -1,62 +1,164 @@
1
- import { JSONValue } from '@lumino/coreutils';
1
+ import { JSONObject, JSONValue } from '@lumino/coreutils';
2
2
  import { IJSONSchema } from '../json-schema';
3
3
  import { PreferenceScope } from './preference-scope';
4
- export interface PreferenceSchema {
5
- [name: string]: any;
6
- scope?: 'application' | 'window' | 'resource' | PreferenceScope;
7
- overridable?: boolean;
4
+ import { Event } from '../event';
5
+ import { Disposable } from '../disposable';
6
+ export declare const PreferenceContribution: unique symbol;
7
+ /**
8
+ * A {@link PreferenceContribution} allows adding additional custom preferences.
9
+ * For this, the {@link PreferenceContribution} has to provide a valid `PrefernceSchema` specifying which preferences
10
+ * are available including their types and description.
11
+ *
12
+ * ### Example usage
13
+ * ```typescript
14
+ * const MyPreferencesSchema: PreferenceSchema = {
15
+ * 'scope': PreferenceScope.Folder,
16
+ * 'properties': {
17
+ * 'myext.decorations.enabled': {
18
+ * 'type': 'boolean',
19
+ * 'description': 'Show file status',
20
+ * 'default': true
21
+ * },
22
+ * // [...]
23
+ * }
24
+ * }
25
+ * @injectable()
26
+ * export class MyPreferenceContribution implements PreferenceContribution{
27
+ * schema= MyPreferencesSchema;
28
+ * }
29
+ * ```
30
+ */
31
+ export interface PreferenceContribution {
32
+ readonly schema?: PreferenceSchema;
8
33
  /**
9
- * The title of the preference schema.
10
- * It is used in the preference UI to associate a localized group of preferences.
34
+ * Allows to do additional intialisation of the preference schema, for example registering overrides
35
+ * @param service the preference schema service
11
36
  */
12
- title?: string;
13
- properties: PreferenceSchemaProperties;
14
- }
15
- export declare namespace PreferenceSchema {
16
- function is(obj: unknown): obj is PreferenceSchema;
17
- function getDefaultScope(schema: PreferenceSchema): PreferenceScope;
18
- }
19
- export interface PreferenceSchemaProperties {
20
- [name: string]: PreferenceSchemaProperty;
37
+ initSchema?(service: PreferenceSchemaService): Promise<void>;
21
38
  }
22
- export declare namespace PreferenceSchemaProperties {
23
- function is(obj: unknown): obj is PreferenceSchemaProperties;
39
+ export interface IndexedAccess<T> {
40
+ [name: string]: T;
24
41
  }
25
- export interface PreferenceDataSchema {
26
- [name: string]: any;
42
+ export interface PreferenceSchema {
43
+ /** The default scope for properties in this schema */
27
44
  scope?: PreferenceScope;
28
- properties: {
29
- [name: string]: PreferenceDataProperty;
30
- };
31
- patternProperties: {
32
- [name: string]: PreferenceDataProperty;
33
- };
45
+ /** Optional title to be used in UI */
46
+ title?: string;
47
+ /** Whether properties in this schema are overridable by default. Defaults to false. */
48
+ defaultOverridable?: boolean;
49
+ properties: IndexedAccess<PreferenceDataProperty>;
34
50
  }
35
- export interface PreferenceItem extends IJSONSchema {
51
+ export interface PreferenceDataProperty extends IJSONSchema {
36
52
  /**
37
- * preference default value, if `undefined` then `default`
53
+ * Whether distinct values can be defined for language override identifers. E.g. values valid when editing typescript files vs.
54
+ * when editing Java files
38
55
  */
39
- defaultValue?: JSONValue;
40
56
  overridable?: boolean;
41
- /** If false, the preference will not be included in the schema or the UI. */
57
+ /** If false, the preference will not be included in the schema or the UI. E.g. OS-Specific prefs */
42
58
  included?: boolean;
43
59
  /** If true, this item will registered as part of the preference schema, but hidden in the preference editor UI. */
44
60
  hidden?: boolean;
45
- [key: string]: any;
46
- }
47
- export interface PreferenceSchemaProperty extends PreferenceItem {
48
- description?: string;
49
- markdownDescription?: string;
50
- scope?: 'application' | 'machine' | 'window' | 'resource' | 'language-overridable' | 'machine-overridable' | PreferenceScope;
51
- tags?: string[];
52
- }
53
- export interface PreferenceDataProperty extends PreferenceItem {
54
- description?: string;
55
- markdownDescription?: string;
61
+ /** The maximum scope where values for this property can be set. */
56
62
  scope?: PreferenceScope;
63
+ /** Metadata intended for custom renderers */
57
64
  typeDetails?: any;
65
+ /** Tags can be searched for in the UI */
66
+ tags?: string[];
67
+ }
68
+ export interface DefaultValueChangedEvent {
69
+ /** The preference key */
70
+ key: string;
71
+ /** The override identifier that the default changed for */
72
+ overrideIdentifier?: string;
73
+ /**
74
+ * When the default for the base property changes, indicates which override identifiers will be affected
75
+ */
76
+ otherAffectedOverrides: string[];
77
+ oldValue: JSONValue | undefined;
78
+ newValue: JSONValue | undefined;
58
79
  }
59
- export declare namespace PreferenceDataProperty {
60
- function fromPreferenceSchemaProperty(schemaProps: PreferenceSchemaProperty, defaultScope?: PreferenceScope): PreferenceDataProperty;
80
+ export declare const PreferenceSchemaService: unique symbol;
81
+ export interface PreferenceSchemaService {
82
+ /**
83
+ * Resolves after static contributions have been processed
84
+ */
85
+ readonly ready: Promise<void>;
86
+ /**
87
+ * Register an override identifier for language specific preferences
88
+ * @param overrideIdentifier The identifier to register
89
+ * @returns A disposable to unregister the identifier
90
+ */
91
+ registerOverrideIdentifier(overrideIdentifier: string): Disposable;
92
+ readonly overrideIdentifiers: ReadonlySet<string>;
93
+ /**
94
+ * Add a preference schema. It is an error to register the same property in two different schemas
95
+ * @param schema The schema to add
96
+ * @returns A disposable to remove the schema
97
+ */
98
+ addSchema(schema: PreferenceSchema): Disposable;
99
+ /**
100
+ * The scopes which this preference schema service handles. Any properties that are not applicable within the
101
+ * valid scopes will be ignored
102
+ */
103
+ readonly validScopes: readonly PreferenceScope[];
104
+ /**
105
+ * Check if a preference is valid in a specific scope
106
+ * @param preferenceName The preference name
107
+ * @param scope The scope to check
108
+ * @returns True if the preference is valid in the given scope
109
+ */
110
+ isValidInScope(preferenceName: string, scope: PreferenceScope): boolean;
111
+ getSchemaProperty(key: string): PreferenceDataProperty | undefined;
112
+ getSchemaProperties(): ReadonlyMap<string, PreferenceDataProperty>;
113
+ /**
114
+ * Update a property in the schema. The corresponding JSON Schemas, etc. will be updated
115
+ * @param key The property key
116
+ * @param property The updated property
117
+ */
118
+ updateSchemaProperty(key: string, property: PreferenceDataProperty): void;
119
+ /**
120
+ * Register an override for a preference default value. If multiple overrides are registered for the same value,
121
+ * the last override will be in effect. Removing the last override will make the second-to-last override active, etc.
122
+ * @param key The preference key
123
+ * @param overrideIdentifier The override identifier, undefined for global default
124
+ * @param value The default value
125
+ * @returns A disposable to unregister the override
126
+ */
127
+ registerOverride(key: string, overrideIdentifier: string | undefined, value: JSONValue): Disposable;
128
+ /**
129
+ * Get the default value for a preference. This is the value a client will see for the given key/override
130
+ * @param key The preference key
131
+ * @param overrideIdentifier The override identifier, undefined for global default
132
+ * @returns The default value or undefined if not found
133
+ */
134
+ getDefaultValue(key: string, overrideIdentifier: string | undefined): JSONValue | undefined;
135
+ /**
136
+ * Gets the default value for a preference. This method not fall back to the global value if no override is given
137
+ * @param key The preference key
138
+ * @param overrideIdentifier The override identifier, undefined for global default
139
+ * @returns The default value or undefined if not found
140
+ */
141
+ inspectDefaultValue(key: string, overrideIdentifier: string | undefined): JSONValue | undefined;
142
+ /**
143
+ * Gets a JSON schema a preference.json file for the given scope.
144
+ * @param scope The scope to generate schema for
145
+ * @returns The JSON schema
146
+ */
147
+ getJSONSchema(scope: PreferenceScope): IJSONSchema;
148
+ /**
149
+ * Get the collection of all defined default values as JSONObject of the form like in a preferences.json
150
+ *
151
+ * #### Example usage
152
+ * ```json
153
+ * {
154
+ * "my.preference": "a string default",
155
+ * "[typescript]": {
156
+ * "another.preference": 39
157
+ * }
158
+ * }
159
+ */
160
+ getDefaultValues(): JSONObject;
161
+ onDidChangeDefaultValue: Event<DefaultValueChangedEvent>;
162
+ onDidChangeSchema: Event<void>;
61
163
  }
62
164
  //# sourceMappingURL=preference-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preference-schema.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,WAAW,gBAAgB;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,0BAA0B,CAAA;CACzC;AACD,yBAAiB,gBAAgB,CAAC;IAC9B,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAExD;IACD,SAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAQzE;CACJ;AAED,MAAM,WAAW,0BAA0B;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAA;CAC3C;AACD,yBAAiB,0BAA0B,CAAC;IACxC,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,0BAA0B,CAElE;CACJ;AAED,MAAM,WAAW,oBAAoB;IACjC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IACpB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAAA;KACzC,CAAA;IACD,iBAAiB,EAAE;QACf,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAAA;KACzC,CAAC;CACL;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IAC/C;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AACD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,eAAe,CAAC;IAC7H,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,WAAW,CAAC,EAAE,GAAG,CAAC;CACrB;AACD,yBAAiB,sBAAsB,CAAC;IACpC,SAAgB,4BAA4B,CAAC,WAAW,EAAE,wBAAwB,EAAE,YAAY,GAAE,eAA2C,GAAG,sBAAsB,CAOrK;CACJ"}
1
+ {"version":3,"file":"preference-schema.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,sDAAsD;IACtD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mHAAmH;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC;AAED,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,CAAC,kBAAkB,EAAE,MAAM,GAAG,UAAU,CAAC;IACnE,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACjD;;;;;OAKG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;IACxE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAC;IACnE,mBAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE1E;;;;;;;OAOG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC;IACpG;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5F;;;;;OAKG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAEhG;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAAC;IACnD;;;;;;;;;;;OAWG;IACH,gBAAgB,IAAI,UAAU,CAAC;IAG/B,uBAAuB,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACzD,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAClC"}