@umbraco-cms/backoffice 15.3.1 → 15.4.0-rc

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 (1502) hide show
  1. package/dist-cms/apps/app/app-logo.element.d.ts +25 -2
  2. package/dist-cms/apps/app/app-logo.element.js +44 -5
  3. package/dist-cms/apps/backoffice/backoffice.context.js +10 -12
  4. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.d.ts +10 -1
  5. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +28 -24
  6. package/dist-cms/apps/backoffice/components/backoffice-main.element.d.ts +0 -1
  7. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +21 -41
  8. package/dist-cms/apps/installer/installer.context.d.ts +4 -2
  9. package/dist-cms/apps/installer/installer.context.js +4 -2
  10. package/dist-cms/apps/installer/installer.element.d.ts +0 -1
  11. package/dist-cms/apps/installer/installer.element.js +3 -4
  12. package/dist-cms/apps/installer/shared/layout/installer-layout.element.js +2 -1
  13. package/dist-cms/apps/installer/shared/utils.story-helpers.d.ts +2 -1
  14. package/dist-cms/apps/installer/shared/utils.story-helpers.js +6 -5
  15. package/dist-cms/apps/preview/apps/preview-culture.element.d.ts +1 -2
  16. package/dist-cms/apps/preview/apps/preview-culture.element.js +1 -2
  17. package/dist-cms/apps/preview/apps/preview-device.element.d.ts +1 -2
  18. package/dist-cms/apps/preview/apps/preview-device.element.js +1 -2
  19. package/dist-cms/apps/preview/apps/preview-exit.element.d.ts +1 -2
  20. package/dist-cms/apps/preview/apps/preview-exit.element.js +1 -2
  21. package/dist-cms/apps/preview/apps/preview-open-website.element.d.ts +1 -2
  22. package/dist-cms/apps/preview/apps/preview-open-website.element.js +1 -2
  23. package/dist-cms/apps/preview/preview.element.d.ts +1 -2
  24. package/dist-cms/apps/preview/preview.element.js +2 -3
  25. package/dist-cms/assets/lang/da-dk.js +4 -2
  26. package/dist-cms/assets/lang/da-dk.ts +6 -3
  27. package/dist-cms/assets/lang/en-us.js +14 -22
  28. package/dist-cms/assets/lang/en-us.ts +16 -23
  29. package/dist-cms/assets/lang/en.js +38 -15
  30. package/dist-cms/assets/lang/en.ts +41 -15
  31. package/dist-cms/css/dark.theme.css +4 -3
  32. package/dist-cms/css/rte-content.css +35 -30
  33. package/dist-cms/css/umb-css.css +5 -4
  34. package/dist-cms/css/uui-css.css +16 -11
  35. package/dist-cms/custom-elements.json +850 -232
  36. package/dist-cms/external/backend-api/index.js +1 -1
  37. package/dist-cms/external/backend-api/src/sdk.gen.d.ts +73 -2
  38. package/dist-cms/external/backend-api/src/types.gen.d.ts +92 -2
  39. package/dist-cms/external/monaco-editor/{cssMode-CUXEefSS.js → cssMode-DjRnuiTr.js} +1 -1
  40. package/dist-cms/external/monaco-editor/{freemarker2-DzwWvbKB.js → freemarker2-Dp4p3Na1.js} +1 -1
  41. package/dist-cms/external/monaco-editor/{handlebars-CemuYN_Z.js → handlebars-DdY5RWZd.js} +1 -1
  42. package/dist-cms/external/monaco-editor/{html-D4e50Vly.js → html-B73s0s80.js} +1 -1
  43. package/dist-cms/external/monaco-editor/{htmlMode-CgKTZMjM.js → htmlMode-BquRbSmq.js} +1 -1
  44. package/dist-cms/external/monaco-editor/{index-Def4N_V2.js → index-Bitfnghs.js} +18 -18
  45. package/dist-cms/external/monaco-editor/index.js +1 -1
  46. package/dist-cms/external/monaco-editor/{javascript-yQGGFsNP.js → javascript-0jCgtH1R.js} +1 -1
  47. package/dist-cms/external/monaco-editor/{jsonMode-8iHkAe7E.js → jsonMode-BUd-a1bE.js} +1 -1
  48. package/dist-cms/external/monaco-editor/{liquid-DGgcY_1I.js → liquid-DmXgvR3v.js} +1 -1
  49. package/dist-cms/external/monaco-editor/{mdx-DqMkUct3.js → mdx-CKY_Nyrz.js} +1 -1
  50. package/dist-cms/external/monaco-editor/{python-CCzWdJbb.js → python-D96lqhAh.js} +1 -1
  51. package/dist-cms/external/monaco-editor/{razor-CI9Hqcx_.js → razor-CRpUW7sE.js} +1 -1
  52. package/dist-cms/external/monaco-editor/{tsMode-BtpWVR7g.js → tsMode-DlQAxy2q.js} +1 -1
  53. package/dist-cms/external/monaco-editor/{typescript-M3dWBSCy.js → typescript-DdXNNvCJ.js} +1 -1
  54. package/dist-cms/external/monaco-editor/{xml-DQw1AQuz.js → xml-4KavmXJO.js} +1 -1
  55. package/dist-cms/external/monaco-editor/{yaml-Ds0726bJ.js → yaml-mC045hap.js} +1 -1
  56. package/dist-cms/external/router-slot/index.js +1 -1
  57. package/dist-cms/external/router-slot/model.d.ts +1 -0
  58. package/dist-cms/external/tinymce/index.d.ts +3 -0
  59. package/dist-cms/external/tiptap/extensions/tiptap-anchor.extension.d.ts +2 -0
  60. package/dist-cms/external/tiptap/extensions/tiptap-html-global-attributes.extension.d.ts +10 -0
  61. package/dist-cms/external/tiptap/extensions/tiptap-text-indent-extension.d.ts +15 -0
  62. package/dist-cms/external/tiptap/extensions/tiptap-umb-bubble-menu.extension.d.ts +23 -0
  63. package/dist-cms/external/tiptap/extensions/tiptap-umb-table.extension.d.ts +11 -13
  64. package/dist-cms/external/tiptap/index.d.ts +4 -0
  65. package/dist-cms/external/tiptap/index.js +19 -19
  66. package/dist-cms/external/uui/index.js +548 -431
  67. package/dist-cms/json-schema/umbraco-package-schema.d.ts +7 -1
  68. package/dist-cms/json-schema/umbraco-package-schema.js +1 -1
  69. package/dist-cms/libs/context-api/provide/context-provider.js +1 -1
  70. package/dist-cms/libs/extension-api/registry/extension.registry.d.ts +47 -20
  71. package/dist-cms/libs/extension-api/registry/extension.registry.js +97 -49
  72. package/dist-cms/libs/localization-api/localization.controller.js +3 -7
  73. package/dist-cms/libs/observable-api/utils/json-string-comparison.function.js +1 -1
  74. package/dist-cms/mocks/data/data-type/data-type.data.js +33 -13
  75. package/dist-cms/mocks/data/document/data/permissions-test.data.d.ts +2 -0
  76. package/dist-cms/mocks/data/document/data/permissions-test.data.js +126 -0
  77. package/dist-cms/mocks/data/document/document.data.js +11 -1
  78. package/dist-cms/mocks/data/document/document.db.js +14 -0
  79. package/dist-cms/mocks/data/document-blueprint/document-blueprint.data.d.ts +2 -3
  80. package/dist-cms/mocks/data/document-blueprint/document-blueprint.data.js +3 -13
  81. package/dist-cms/mocks/data/document-blueprint/document-blueprint.db.d.ts +0 -1
  82. package/dist-cms/mocks/data/document-blueprint/document-blueprint.db.js +7 -20
  83. package/dist-cms/mocks/data/stylesheet/stylesheet.data.js +43 -47
  84. package/dist-cms/mocks/data/tracked-reference.data.d.ts +2 -2
  85. package/dist-cms/mocks/data/tracked-reference.data.js +5 -0
  86. package/dist-cms/mocks/data/user-group/user-group.data.js +23 -1
  87. package/dist-cms/mocks/handlers/backoffice/backoffice.handlers.js +5 -0
  88. package/dist-cms/monaco-editor/vs/base/browser/browser.js +54 -0
  89. package/dist-cms/monaco-editor/vs/base/browser/canIUse.js +32 -0
  90. package/dist-cms/monaco-editor/vs/base/browser/contextmenu.js +5 -0
  91. package/dist-cms/monaco-editor/vs/base/browser/defaultWorkerFactory.js +195 -0
  92. package/dist-cms/monaco-editor/vs/base/browser/dnd.js +26 -0
  93. package/dist-cms/monaco-editor/vs/base/browser/dom.js +1525 -0
  94. package/dist-cms/monaco-editor/vs/base/browser/domObservable.js +15 -0
  95. package/dist-cms/monaco-editor/vs/base/browser/dompurify/dompurify.js +1569 -0
  96. package/dist-cms/monaco-editor/vs/base/browser/event.js +20 -0
  97. package/dist-cms/monaco-editor/vs/base/browser/fastDomNode.js +250 -0
  98. package/dist-cms/monaco-editor/vs/base/browser/fonts.js +14 -0
  99. package/dist-cms/monaco-editor/vs/base/browser/formattedTextRenderer.js +167 -0
  100. package/dist-cms/monaco-editor/vs/base/browser/globalPointerMoveMonitor.js +80 -0
  101. package/dist-cms/monaco-editor/vs/base/browser/history.js +5 -0
  102. package/dist-cms/monaco-editor/vs/base/browser/iframe.js +85 -0
  103. package/dist-cms/monaco-editor/vs/base/browser/keyboardEvent.js +122 -0
  104. package/dist-cms/monaco-editor/vs/base/browser/markdownRenderer.js +814 -0
  105. package/dist-cms/monaco-editor/vs/base/browser/mouseEvent.js +146 -0
  106. package/dist-cms/monaco-editor/vs/base/browser/performance.js +220 -0
  107. package/dist-cms/monaco-editor/vs/base/browser/pixelRatio.js +85 -0
  108. package/dist-cms/monaco-editor/vs/base/browser/touch.js +268 -0
  109. package/dist-cms/monaco-editor/vs/base/browser/trustedTypes.js +24 -0
  110. package/dist-cms/monaco-editor/vs/base/browser/ui/actionbar/actionViewItems.js +373 -0
  111. package/dist-cms/monaco-editor/vs/base/browser/ui/actionbar/actionbar.css +117 -0
  112. package/dist-cms/monaco-editor/vs/base/browser/ui/actionbar/actionbar.js +417 -0
  113. package/dist-cms/monaco-editor/vs/base/browser/ui/aria/aria.css +9 -0
  114. package/dist-cms/monaco-editor/vs/base/browser/ui/aria/aria.js +81 -0
  115. package/dist-cms/monaco-editor/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.css +36 -0
  116. package/dist-cms/monaco-editor/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.js +1 -0
  117. package/dist-cms/monaco-editor/vs/base/browser/ui/button/button.css +174 -0
  118. package/dist-cms/monaco-editor/vs/base/browser/ui/button/button.js +215 -0
  119. package/dist-cms/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css +33 -0
  120. package/dist-cms/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.css +25 -0
  121. package/dist-cms/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  122. package/dist-cms/monaco-editor/vs/base/browser/ui/codicons/codiconStyles.js +6 -0
  123. package/dist-cms/monaco-editor/vs/base/browser/ui/contextview/contextview.css +16 -0
  124. package/dist-cms/monaco-editor/vs/base/browser/ui/contextview/contextview.js +292 -0
  125. package/dist-cms/monaco-editor/vs/base/browser/ui/countBadge/countBadge.css +24 -0
  126. package/dist-cms/monaco-editor/vs/base/browser/ui/countBadge/countBadge.js +35 -0
  127. package/dist-cms/monaco-editor/vs/base/browser/ui/dialog/dialog.css +155 -0
  128. package/dist-cms/monaco-editor/vs/base/browser/ui/dialog/dialog.js +1 -0
  129. package/dist-cms/monaco-editor/vs/base/browser/ui/dropdown/dropdown.css +46 -0
  130. package/dist-cms/monaco-editor/vs/base/browser/ui/dropdown/dropdown.js +139 -0
  131. package/dist-cms/monaco-editor/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +107 -0
  132. package/dist-cms/monaco-editor/vs/base/browser/ui/findinput/findInput.css +70 -0
  133. package/dist-cms/monaco-editor/vs/base/browser/ui/findinput/findInput.js +293 -0
  134. package/dist-cms/monaco-editor/vs/base/browser/ui/findinput/findInputToggles.js +50 -0
  135. package/dist-cms/monaco-editor/vs/base/browser/ui/findinput/replaceInput.js +173 -0
  136. package/dist-cms/monaco-editor/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +133 -0
  137. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hover.js +6 -0
  138. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hoverDelegate.js +5 -0
  139. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hoverDelegate2.js +27 -0
  140. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hoverDelegateFactory.js +31 -0
  141. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hoverWidget.css +192 -0
  142. package/dist-cms/monaco-editor/vs/base/browser/ui/hover/hoverWidget.js +87 -0
  143. package/dist-cms/monaco-editor/vs/base/browser/ui/iconLabel/iconLabel.js +281 -0
  144. package/dist-cms/monaco-editor/vs/base/browser/ui/iconLabel/iconLabels.js +30 -0
  145. package/dist-cms/monaco-editor/vs/base/browser/ui/iconLabel/iconlabel.css +120 -0
  146. package/dist-cms/monaco-editor/vs/base/browser/ui/inputbox/inputBox.css +107 -0
  147. package/dist-cms/monaco-editor/vs/base/browser/ui/inputbox/inputBox.js +517 -0
  148. package/dist-cms/monaco-editor/vs/base/browser/ui/keybindingLabel/keybindingLabel.css +37 -0
  149. package/dist-cms/monaco-editor/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +122 -0
  150. package/dist-cms/monaco-editor/vs/base/browser/ui/list/list.css +91 -0
  151. package/dist-cms/monaco-editor/vs/base/browser/ui/list/list.js +9 -0
  152. package/dist-cms/monaco-editor/vs/base/browser/ui/list/listPaging.js +121 -0
  153. package/dist-cms/monaco-editor/vs/base/browser/ui/list/listView.js +1073 -0
  154. package/dist-cms/monaco-editor/vs/base/browser/ui/list/listWidget.js +1528 -0
  155. package/dist-cms/monaco-editor/vs/base/browser/ui/list/rangeMap.js +158 -0
  156. package/dist-cms/monaco-editor/vs/base/browser/ui/list/rowCache.js +107 -0
  157. package/dist-cms/monaco-editor/vs/base/browser/ui/list/splice.js +12 -0
  158. package/dist-cms/monaco-editor/vs/base/browser/ui/menu/menu.js +1139 -0
  159. package/dist-cms/monaco-editor/vs/base/browser/ui/mouseCursor/mouseCursor.css +8 -0
  160. package/dist-cms/monaco-editor/vs/base/browser/ui/mouseCursor/mouseCursor.js +6 -0
  161. package/dist-cms/monaco-editor/vs/base/browser/ui/progressbar/progressbar.css +61 -0
  162. package/dist-cms/monaco-editor/vs/base/browser/ui/progressbar/progressbar.js +102 -0
  163. package/dist-cms/monaco-editor/vs/base/browser/ui/radio/radio.css +69 -0
  164. package/dist-cms/monaco-editor/vs/base/browser/ui/radio/radio.js +1 -0
  165. package/dist-cms/monaco-editor/vs/base/browser/ui/resizable/resizable.js +147 -0
  166. package/dist-cms/monaco-editor/vs/base/browser/ui/sash/sash.css +149 -0
  167. package/dist-cms/monaco-editor/vs/base/browser/ui/sash/sash.js +448 -0
  168. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/abstractScrollbar.js +207 -0
  169. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/horizontalScrollbar.js +88 -0
  170. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/media/scrollbars.css +72 -0
  171. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/scrollableElement.js +554 -0
  172. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/scrollableElementOptions.js +5 -0
  173. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/scrollbarArrow.js +75 -0
  174. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/scrollbarState.js +161 -0
  175. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js +90 -0
  176. package/dist-cms/monaco-editor/vs/base/browser/ui/scrollbar/verticalScrollbar.js +91 -0
  177. package/dist-cms/monaco-editor/vs/base/browser/ui/selectBox/selectBox.css +34 -0
  178. package/dist-cms/monaco-editor/vs/base/browser/ui/selectBox/selectBox.js +44 -0
  179. package/dist-cms/monaco-editor/vs/base/browser/ui/selectBox/selectBoxCustom.css +126 -0
  180. package/dist-cms/monaco-editor/vs/base/browser/ui/selectBox/selectBoxCustom.js +849 -0
  181. package/dist-cms/monaco-editor/vs/base/browser/ui/selectBox/selectBoxNative.js +139 -0
  182. package/dist-cms/monaco-editor/vs/base/browser/ui/splitview/splitview.css +70 -0
  183. package/dist-cms/monaco-editor/vs/base/browser/ui/splitview/splitview.js +826 -0
  184. package/dist-cms/monaco-editor/vs/base/browser/ui/table/table.css +57 -0
  185. package/dist-cms/monaco-editor/vs/base/browser/ui/table/table.js +5 -0
  186. package/dist-cms/monaco-editor/vs/base/browser/ui/table/tableWidget.js +177 -0
  187. package/dist-cms/monaco-editor/vs/base/browser/ui/toggle/toggle.css +74 -0
  188. package/dist-cms/monaco-editor/vs/base/browser/ui/toggle/toggle.js +96 -0
  189. package/dist-cms/monaco-editor/vs/base/browser/ui/toolbar/toolbar.css +13 -0
  190. package/dist-cms/monaco-editor/vs/base/browser/ui/toolbar/toolbar.js +139 -0
  191. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/abstractTree.js +2094 -0
  192. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/asyncDataTree.js +845 -0
  193. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/compressedObjectTreeModel.js +371 -0
  194. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/dataTree.js +17 -0
  195. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/indexTreeModel.js +534 -0
  196. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/media/tree.css +174 -0
  197. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/objectTree.js +201 -0
  198. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/objectTreeModel.js +196 -0
  199. package/dist-cms/monaco-editor/vs/base/browser/ui/tree/tree.js +43 -0
  200. package/dist-cms/monaco-editor/vs/base/browser/ui/widget.js +41 -0
  201. package/dist-cms/monaco-editor/vs/base/browser/window.js +14 -0
  202. package/dist-cms/monaco-editor/vs/base/common/actions.js +174 -0
  203. package/dist-cms/monaco-editor/vs/base/common/arrays.js +501 -0
  204. package/dist-cms/monaco-editor/vs/base/common/arraysFind.js +175 -0
  205. package/dist-cms/monaco-editor/vs/base/common/assert.js +59 -0
  206. package/dist-cms/monaco-editor/vs/base/common/async.js +843 -0
  207. package/dist-cms/monaco-editor/vs/base/common/buffer.js +68 -0
  208. package/dist-cms/monaco-editor/vs/base/common/cache.js +59 -0
  209. package/dist-cms/monaco-editor/vs/base/common/cancellation.js +113 -0
  210. package/dist-cms/monaco-editor/vs/base/common/charCode.js +5 -0
  211. package/dist-cms/monaco-editor/vs/base/common/codicons.js +47 -0
  212. package/dist-cms/monaco-editor/vs/base/common/codiconsLibrary.js +580 -0
  213. package/dist-cms/monaco-editor/vs/base/common/codiconsUtil.js +19 -0
  214. package/dist-cms/monaco-editor/vs/base/common/collections.js +35 -0
  215. package/dist-cms/monaco-editor/vs/base/common/color.js +462 -0
  216. package/dist-cms/monaco-editor/vs/base/common/comparers.js +83 -0
  217. package/dist-cms/monaco-editor/vs/base/common/dataTransfer.js +128 -0
  218. package/dist-cms/monaco-editor/vs/base/common/decorators.js +30 -0
  219. package/dist-cms/monaco-editor/vs/base/common/diff/diff.js +899 -0
  220. package/dist-cms/monaco-editor/vs/base/common/diff/diffChange.js +32 -0
  221. package/dist-cms/monaco-editor/vs/base/common/equals.js +82 -0
  222. package/dist-cms/monaco-editor/vs/base/common/errorMessage.js +68 -0
  223. package/dist-cms/monaco-editor/vs/base/common/errors.js +150 -0
  224. package/dist-cms/monaco-editor/vs/base/common/event.js +1280 -0
  225. package/dist-cms/monaco-editor/vs/base/common/extpath.js +144 -0
  226. package/dist-cms/monaco-editor/vs/base/common/filters.js +769 -0
  227. package/dist-cms/monaco-editor/vs/base/common/functional.js +30 -0
  228. package/dist-cms/monaco-editor/vs/base/common/fuzzyScorer.js +138 -0
  229. package/dist-cms/monaco-editor/vs/base/common/glob.js +568 -0
  230. package/dist-cms/monaco-editor/vs/base/common/hash.js +258 -0
  231. package/dist-cms/monaco-editor/vs/base/common/hierarchicalKind.js +24 -0
  232. package/dist-cms/monaco-editor/vs/base/common/history.js +73 -0
  233. package/dist-cms/monaco-editor/vs/base/common/hotReload.js +81 -0
  234. package/dist-cms/monaco-editor/vs/base/common/hotReloadHelpers.js +24 -0
  235. package/dist-cms/monaco-editor/vs/base/common/htmlContent.js +149 -0
  236. package/dist-cms/monaco-editor/vs/base/common/iconLabels.js +85 -0
  237. package/dist-cms/monaco-editor/vs/base/common/idGenerator.js +14 -0
  238. package/dist-cms/monaco-editor/vs/base/common/ime.js +30 -0
  239. package/dist-cms/monaco-editor/vs/base/common/iterator.js +148 -0
  240. package/dist-cms/monaco-editor/vs/base/common/jsonSchema.js +5 -0
  241. package/dist-cms/monaco-editor/vs/base/common/keyCodes.js +372 -0
  242. package/dist-cms/monaco-editor/vs/base/common/keybindingLabels.js +136 -0
  243. package/dist-cms/monaco-editor/vs/base/common/keybindings.js +123 -0
  244. package/dist-cms/monaco-editor/vs/base/common/labels.js +9 -0
  245. package/dist-cms/monaco-editor/vs/base/common/lazy.js +37 -0
  246. package/dist-cms/monaco-editor/vs/base/common/lifecycle.js +355 -0
  247. package/dist-cms/monaco-editor/vs/base/common/linkedList.js +124 -0
  248. package/dist-cms/monaco-editor/vs/base/common/linkedText.js +45 -0
  249. package/dist-cms/monaco-editor/vs/base/common/map.js +573 -0
  250. package/dist-cms/monaco-editor/vs/base/common/marked/marked.js +2538 -0
  251. package/dist-cms/monaco-editor/vs/base/common/marshalling.js +55 -0
  252. package/dist-cms/monaco-editor/vs/base/common/marshallingIds.js +5 -0
  253. package/dist-cms/monaco-editor/vs/base/common/mime.js +8 -0
  254. package/dist-cms/monaco-editor/vs/base/common/naturalLanguage/korean.js +319 -0
  255. package/dist-cms/monaco-editor/vs/base/common/navigator.js +34 -0
  256. package/dist-cms/monaco-editor/vs/base/common/network.js +277 -0
  257. package/dist-cms/monaco-editor/vs/base/common/numbers.js +47 -0
  258. package/dist-cms/monaco-editor/vs/base/common/objects.js +179 -0
  259. package/dist-cms/monaco-editor/vs/base/common/observable.js +16 -0
  260. package/dist-cms/monaco-editor/vs/base/common/observableInternal/api.js +14 -0
  261. package/dist-cms/monaco-editor/vs/base/common/observableInternal/autorun.js +192 -0
  262. package/dist-cms/monaco-editor/vs/base/common/observableInternal/base.js +268 -0
  263. package/dist-cms/monaco-editor/vs/base/common/observableInternal/debugName.js +104 -0
  264. package/dist-cms/monaco-editor/vs/base/common/observableInternal/derived.js +286 -0
  265. package/dist-cms/monaco-editor/vs/base/common/observableInternal/lazyObservableValue.js +118 -0
  266. package/dist-cms/monaco-editor/vs/base/common/observableInternal/logging.js +258 -0
  267. package/dist-cms/monaco-editor/vs/base/common/observableInternal/promise.js +105 -0
  268. package/dist-cms/monaco-editor/vs/base/common/observableInternal/utils.js +366 -0
  269. package/dist-cms/monaco-editor/vs/base/common/path.js +1399 -0
  270. package/dist-cms/monaco-editor/vs/base/common/platform.js +153 -0
  271. package/dist-cms/monaco-editor/vs/base/common/process.js +58 -0
  272. package/dist-cms/monaco-editor/vs/base/common/range.js +44 -0
  273. package/dist-cms/monaco-editor/vs/base/common/resources.js +256 -0
  274. package/dist-cms/monaco-editor/vs/base/common/scrollable.js +320 -0
  275. package/dist-cms/monaco-editor/vs/base/common/search.js +49 -0
  276. package/dist-cms/monaco-editor/vs/base/common/sequence.js +1 -0
  277. package/dist-cms/monaco-editor/vs/base/common/severity.js +49 -0
  278. package/dist-cms/monaco-editor/vs/base/common/stopwatch.js +28 -0
  279. package/dist-cms/monaco-editor/vs/base/common/strings.js +840 -0
  280. package/dist-cms/monaco-editor/vs/base/common/symbols.js +8 -0
  281. package/dist-cms/monaco-editor/vs/base/common/ternarySearchTree.js +618 -0
  282. package/dist-cms/monaco-editor/vs/base/common/tfIdf.js +177 -0
  283. package/dist-cms/monaco-editor/vs/base/common/themables.js +83 -0
  284. package/dist-cms/monaco-editor/vs/base/common/types.js +119 -0
  285. package/dist-cms/monaco-editor/vs/base/common/uint.js +22 -0
  286. package/dist-cms/monaco-editor/vs/base/common/uri.js +602 -0
  287. package/dist-cms/monaco-editor/vs/base/common/uuid.js +56 -0
  288. package/dist-cms/monaco-editor/vs/base/common/worker/simpleWorker.js +461 -0
  289. package/dist-cms/monaco-editor/vs/base/parts/storage/common/storage.js +182 -0
  290. package/dist-cms/monaco-editor/vs/editor/common/commands/replaceCommand.js +82 -0
  291. package/dist-cms/monaco-editor/vs/editor/common/commands/shiftCommand.js +239 -0
  292. package/dist-cms/monaco-editor/vs/editor/common/commands/surroundSelectionCommand.js +41 -0
  293. package/dist-cms/monaco-editor/vs/editor/common/commands/trimTrailingWhitespaceCommand.js +95 -0
  294. package/dist-cms/monaco-editor/vs/editor/common/config/diffEditor.js +37 -0
  295. package/dist-cms/monaco-editor/vs/editor/common/config/editorConfiguration.js +5 -0
  296. package/dist-cms/monaco-editor/vs/editor/common/config/editorConfigurationSchema.js +300 -0
  297. package/dist-cms/monaco-editor/vs/editor/common/config/editorOptions.js +3146 -0
  298. package/dist-cms/monaco-editor/vs/editor/common/config/editorZoom.js +23 -0
  299. package/dist-cms/monaco-editor/vs/editor/common/config/fontInfo.js +153 -0
  300. package/dist-cms/monaco-editor/vs/editor/common/core/characterClassifier.js +56 -0
  301. package/dist-cms/monaco-editor/vs/editor/common/core/cursorColumns.js +109 -0
  302. package/dist-cms/monaco-editor/vs/editor/common/core/dimension.js +5 -0
  303. package/dist-cms/monaco-editor/vs/editor/common/core/editOperation.js +33 -0
  304. package/dist-cms/monaco-editor/vs/editor/common/core/editorColorRegistry.js +89 -0
  305. package/dist-cms/monaco-editor/vs/editor/common/core/eolCounter.js +42 -0
  306. package/dist-cms/monaco-editor/vs/editor/common/core/indentation.js +36 -0
  307. package/dist-cms/monaco-editor/vs/editor/common/core/lineRange.js +304 -0
  308. package/dist-cms/monaco-editor/vs/editor/common/core/offsetRange.js +193 -0
  309. package/dist-cms/monaco-editor/vs/editor/common/core/position.js +140 -0
  310. package/dist-cms/monaco-editor/vs/editor/common/core/positionToOffset.js +24 -0
  311. package/dist-cms/monaco-editor/vs/editor/common/core/range.js +400 -0
  312. package/dist-cms/monaco-editor/vs/editor/common/core/rgba.js +33 -0
  313. package/dist-cms/monaco-editor/vs/editor/common/core/selection.js +142 -0
  314. package/dist-cms/monaco-editor/vs/editor/common/core/stringBuilder.js +119 -0
  315. package/dist-cms/monaco-editor/vs/editor/common/core/textChange.js +245 -0
  316. package/dist-cms/monaco-editor/vs/editor/common/core/textEdit.js +98 -0
  317. package/dist-cms/monaco-editor/vs/editor/common/core/textLength.js +66 -0
  318. package/dist-cms/monaco-editor/vs/editor/common/core/textModelDefaults.js +16 -0
  319. package/dist-cms/monaco-editor/vs/editor/common/core/wordCharacterClassifier.js +83 -0
  320. package/dist-cms/monaco-editor/vs/editor/common/core/wordHelper.js +124 -0
  321. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursor.js +883 -0
  322. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorAtomicMoveOperations.js +142 -0
  323. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorCollection.js +191 -0
  324. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorColumnSelection.js +90 -0
  325. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorContext.js +13 -0
  326. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorDeleteOperations.js +215 -0
  327. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorMoveCommands.js +651 -0
  328. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorMoveOperations.js +287 -0
  329. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorTypeEditOperations.js +952 -0
  330. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorTypeOperations.js +169 -0
  331. package/dist-cms/monaco-editor/vs/editor/common/cursor/cursorWordOperations.js +707 -0
  332. package/dist-cms/monaco-editor/vs/editor/common/cursor/oneCursor.js +114 -0
  333. package/dist-cms/monaco-editor/vs/editor/common/cursorCommon.js +239 -0
  334. package/dist-cms/monaco-editor/vs/editor/common/cursorEvents.js +5 -0
  335. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js +138 -0
  336. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.js +98 -0
  337. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.js +159 -0
  338. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.js +246 -0
  339. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js +247 -0
  340. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js +371 -0
  341. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.js +34 -0
  342. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js +179 -0
  343. package/dist-cms/monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/utils.js +60 -0
  344. package/dist-cms/monaco-editor/vs/editor/common/diff/documentDiffProvider.js +5 -0
  345. package/dist-cms/monaco-editor/vs/editor/common/diff/legacyLinesDiffComputer.js +465 -0
  346. package/dist-cms/monaco-editor/vs/editor/common/diff/linesDiffComputer.js +27 -0
  347. package/dist-cms/monaco-editor/vs/editor/common/diff/linesDiffComputers.js +10 -0
  348. package/dist-cms/monaco-editor/vs/editor/common/diff/rangeMapping.js +170 -0
  349. package/dist-cms/monaco-editor/vs/editor/common/editorAction.js +24 -0
  350. package/dist-cms/monaco-editor/vs/editor/common/editorCommon.js +11 -0
  351. package/dist-cms/monaco-editor/vs/editor/common/editorContextKeys.js +81 -0
  352. package/dist-cms/monaco-editor/vs/editor/common/editorFeatures.js +15 -0
  353. package/dist-cms/monaco-editor/vs/editor/common/editorTheme.js +21 -0
  354. package/dist-cms/monaco-editor/vs/editor/common/encodedTokenAttributes.js +77 -0
  355. package/dist-cms/monaco-editor/vs/editor/common/languageFeatureRegistry.js +177 -0
  356. package/dist-cms/monaco-editor/vs/editor/common/languageSelector.js +109 -0
  357. package/dist-cms/monaco-editor/vs/editor/common/languages/autoIndent.js +387 -0
  358. package/dist-cms/monaco-editor/vs/editor/common/languages/defaultDocumentColorsComputer.js +135 -0
  359. package/dist-cms/monaco-editor/vs/editor/common/languages/enterAction.js +50 -0
  360. package/dist-cms/monaco-editor/vs/editor/common/languages/language.js +6 -0
  361. package/dist-cms/monaco-editor/vs/editor/common/languages/languageConfiguration.js +136 -0
  362. package/dist-cms/monaco-editor/vs/editor/common/languages/languageConfigurationRegistry.js +353 -0
  363. package/dist-cms/monaco-editor/vs/editor/common/languages/linkComputer.js +270 -0
  364. package/dist-cms/monaco-editor/vs/editor/common/languages/modesRegistry.js +56 -0
  365. package/dist-cms/monaco-editor/vs/editor/common/languages/nullTokenize.js +26 -0
  366. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/characterPair.js +37 -0
  367. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/electricCharacter.js +52 -0
  368. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/indentRules.js +61 -0
  369. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/indentationLineProcessor.js +190 -0
  370. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/inplaceReplaceSupport.js +85 -0
  371. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/languageBracketsConfiguration.js +130 -0
  372. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/onEnter.js +106 -0
  373. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/richEditBrackets.js +353 -0
  374. package/dist-cms/monaco-editor/vs/editor/common/languages/supports/tokenization.js +284 -0
  375. package/dist-cms/monaco-editor/vs/editor/common/languages/supports.js +56 -0
  376. package/dist-cms/monaco-editor/vs/editor/common/languages/textToHtmlTokenizer.js +125 -0
  377. package/dist-cms/monaco-editor/vs/editor/common/languages.js +404 -0
  378. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +714 -0
  379. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast.js +482 -0
  380. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js +107 -0
  381. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js +342 -0
  382. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets.js +105 -0
  383. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js +121 -0
  384. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees.js +189 -0
  385. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +112 -0
  386. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader.js +124 -0
  387. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser.js +118 -0
  388. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +104 -0
  389. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer.js +298 -0
  390. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js +94 -0
  391. package/dist-cms/monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/fixBrackets.js +66 -0
  392. package/dist-cms/monaco-editor/vs/editor/common/model/decorationProvider.js +1 -0
  393. package/dist-cms/monaco-editor/vs/editor/common/model/editStack.js +359 -0
  394. package/dist-cms/monaco-editor/vs/editor/common/model/fixedArray.js +67 -0
  395. package/dist-cms/monaco-editor/vs/editor/common/model/guidesTextModelPart.js +402 -0
  396. package/dist-cms/monaco-editor/vs/editor/common/model/indentationGuesser.js +176 -0
  397. package/dist-cms/monaco-editor/vs/editor/common/model/intervalTree.js +986 -0
  398. package/dist-cms/monaco-editor/vs/editor/common/model/mirrorTextModel.js +114 -0
  399. package/dist-cms/monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +1452 -0
  400. package/dist-cms/monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +455 -0
  401. package/dist-cms/monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js +137 -0
  402. package/dist-cms/monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js +360 -0
  403. package/dist-cms/monaco-editor/vs/editor/common/model/prefixSumComputer.js +223 -0
  404. package/dist-cms/monaco-editor/vs/editor/common/model/textModel.js +1899 -0
  405. package/dist-cms/monaco-editor/vs/editor/common/model/textModelPart.js +20 -0
  406. package/dist-cms/monaco-editor/vs/editor/common/model/textModelSearch.js +452 -0
  407. package/dist-cms/monaco-editor/vs/editor/common/model/textModelText.js +20 -0
  408. package/dist-cms/monaco-editor/vs/editor/common/model/textModelTokens.js +429 -0
  409. package/dist-cms/monaco-editor/vs/editor/common/model/tokenizationTextModelPart.js +530 -0
  410. package/dist-cms/monaco-editor/vs/editor/common/model/tokens.js +89 -0
  411. package/dist-cms/monaco-editor/vs/editor/common/model/treeSitterTokens.js +79 -0
  412. package/dist-cms/monaco-editor/vs/editor/common/model/utils.js +31 -0
  413. package/dist-cms/monaco-editor/vs/editor/common/model.js +133 -0
  414. package/dist-cms/monaco-editor/vs/editor/common/modelLineProjectionData.js +299 -0
  415. package/dist-cms/monaco-editor/vs/editor/common/services/editorBaseApi.js +40 -0
  416. package/dist-cms/monaco-editor/vs/editor/common/services/editorSimpleWorker.js +351 -0
  417. package/dist-cms/monaco-editor/vs/editor/common/services/editorWorker.js +6 -0
  418. package/dist-cms/monaco-editor/vs/editor/common/services/editorWorkerHost.js +13 -0
  419. package/dist-cms/monaco-editor/vs/editor/common/services/findSectionHeaders.js +81 -0
  420. package/dist-cms/monaco-editor/vs/editor/common/services/getIconClasses.js +103 -0
  421. package/dist-cms/monaco-editor/vs/editor/common/services/languageFeatureDebounce.js +135 -0
  422. package/dist-cms/monaco-editor/vs/editor/common/services/languageFeatures.js +6 -0
  423. package/dist-cms/monaco-editor/vs/editor/common/services/languageFeaturesService.js +45 -0
  424. package/dist-cms/monaco-editor/vs/editor/common/services/languageService.js +89 -0
  425. package/dist-cms/monaco-editor/vs/editor/common/services/languagesAssociations.js +190 -0
  426. package/dist-cms/monaco-editor/vs/editor/common/services/languagesRegistry.js +236 -0
  427. package/dist-cms/monaco-editor/vs/editor/common/services/markerDecorations.js +6 -0
  428. package/dist-cms/monaco-editor/vs/editor/common/services/markerDecorationsService.js +227 -0
  429. package/dist-cms/monaco-editor/vs/editor/common/services/model.js +6 -0
  430. package/dist-cms/monaco-editor/vs/editor/common/services/modelService.js +418 -0
  431. package/dist-cms/monaco-editor/vs/editor/common/services/resolverService.js +2 -0
  432. package/dist-cms/monaco-editor/vs/editor/common/services/semanticTokensDto.js +79 -0
  433. package/dist-cms/monaco-editor/vs/editor/common/services/semanticTokensProviderStyling.js +276 -0
  434. package/dist-cms/monaco-editor/vs/editor/common/services/semanticTokensStyling.js +6 -0
  435. package/dist-cms/monaco-editor/vs/editor/common/services/semanticTokensStylingService.js +45 -0
  436. package/dist-cms/monaco-editor/vs/editor/common/services/textModelSync/textModelSync.impl.js +304 -0
  437. package/dist-cms/monaco-editor/vs/editor/common/services/textModelSync/textModelSync.protocol.js +5 -0
  438. package/dist-cms/monaco-editor/vs/editor/common/services/textResourceConfiguration.js +3 -0
  439. package/dist-cms/monaco-editor/vs/editor/common/services/treeSitterParserService.js +2 -0
  440. package/dist-cms/monaco-editor/vs/editor/common/services/treeViewsDnd.js +22 -0
  441. package/dist-cms/monaco-editor/vs/editor/common/services/treeViewsDndService.js +9 -0
  442. package/dist-cms/monaco-editor/vs/editor/common/services/unicodeTextModelHighlighter.js +185 -0
  443. package/dist-cms/monaco-editor/vs/editor/common/standalone/standaloneEnums.js +978 -0
  444. package/dist-cms/monaco-editor/vs/editor/common/standaloneStrings.js +39 -0
  445. package/dist-cms/monaco-editor/vs/editor/common/textModelBracketPairs.js +43 -0
  446. package/dist-cms/monaco-editor/vs/editor/common/textModelEvents.js +176 -0
  447. package/dist-cms/monaco-editor/vs/editor/common/textModelGuides.js +38 -0
  448. package/dist-cms/monaco-editor/vs/editor/common/tokenizationRegistry.js +120 -0
  449. package/dist-cms/monaco-editor/vs/editor/common/tokenizationTextModelPart.js +5 -0
  450. package/dist-cms/monaco-editor/vs/editor/common/tokens/contiguousMultilineTokens.js +30 -0
  451. package/dist-cms/monaco-editor/vs/editor/common/tokens/contiguousMultilineTokensBuilder.js +20 -0
  452. package/dist-cms/monaco-editor/vs/editor/common/tokens/contiguousTokensEditing.js +125 -0
  453. package/dist-cms/monaco-editor/vs/editor/common/tokens/contiguousTokensStore.js +204 -0
  454. package/dist-cms/monaco-editor/vs/editor/common/tokens/lineTokens.js +288 -0
  455. package/dist-cms/monaco-editor/vs/editor/common/tokens/sparseMultilineTokens.js +516 -0
  456. package/dist-cms/monaco-editor/vs/editor/common/tokens/sparseTokensStore.js +194 -0
  457. package/dist-cms/monaco-editor/vs/editor/common/viewEventHandler.js +183 -0
  458. package/dist-cms/monaco-editor/vs/editor/common/viewEvents.js +178 -0
  459. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/lineDecorations.js +205 -0
  460. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/linePart.js +23 -0
  461. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/linesLayout.js +768 -0
  462. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/viewLayout.js +355 -0
  463. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/viewLineRenderer.js +910 -0
  464. package/dist-cms/monaco-editor/vs/editor/common/viewLayout/viewLinesViewportData.js +27 -0
  465. package/dist-cms/monaco-editor/vs/editor/common/viewModel/glyphLanesModel.js +58 -0
  466. package/dist-cms/monaco-editor/vs/editor/common/viewModel/minimapTokensColorTracker.js +55 -0
  467. package/dist-cms/monaco-editor/vs/editor/common/viewModel/modelLineProjection.js +329 -0
  468. package/dist-cms/monaco-editor/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +442 -0
  469. package/dist-cms/monaco-editor/vs/editor/common/viewModel/overviewZoneManager.js +174 -0
  470. package/dist-cms/monaco-editor/vs/editor/common/viewModel/viewContext.js +19 -0
  471. package/dist-cms/monaco-editor/vs/editor/common/viewModel/viewModelDecorations.js +165 -0
  472. package/dist-cms/monaco-editor/vs/editor/common/viewModel/viewModelImpl.js +1063 -0
  473. package/dist-cms/monaco-editor/vs/editor/common/viewModel/viewModelLines.js +978 -0
  474. package/dist-cms/monaco-editor/vs/editor/common/viewModel.js +119 -0
  475. package/dist-cms/monaco-editor/vs/editor/common/viewModelEventDispatcher.js +355 -0
  476. package/dist-cms/monaco-editor/vs/nls.js +75 -0
  477. package/dist-cms/monaco-editor/vs/nls.messages.js +14 -0
  478. package/dist-cms/packages/block/block/context/block-manager.context.d.ts +1 -1
  479. package/dist-cms/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.d.ts +2 -1
  480. package/dist-cms/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.js +2 -2
  481. package/dist-cms/packages/block/block/validation/block-editor-validation-property-path-translator-base.api.d.ts +8 -0
  482. package/dist-cms/packages/block/block/validation/block-editor-validation-property-path-translator-base.api.js +26 -0
  483. package/dist-cms/packages/block/block/validation/block-element-data-validation-path-translator.controller.js +6 -0
  484. package/dist-cms/packages/block/block/validation/block-element-values-validation-path-translator.controller.js +6 -0
  485. package/dist-cms/packages/block/block/validation/index.d.ts +1 -0
  486. package/dist-cms/packages/block/block/validation/index.js +1 -0
  487. package/dist-cms/packages/block/block/workspace/block-element-manager.d.ts +6 -0
  488. package/dist-cms/packages/block/block/workspace/block-element-manager.js +10 -3
  489. package/dist-cms/packages/block/block/workspace/block-element-property-dataset.context.js +7 -0
  490. package/dist-cms/packages/block/block/workspace/block-workspace.context.d.ts +13 -0
  491. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +64 -1
  492. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.js +6 -4
  493. package/dist-cms/packages/block/block-grid/{context → block-grid-manager}/block-grid-manager.context.d.ts +5 -2
  494. package/dist-cms/packages/block/block-grid/{context → block-grid-manager}/block-grid-manager.context.js +4 -2
  495. package/dist-cms/packages/block/block-grid/block-grid-manager/constants.d.ts +1 -0
  496. package/dist-cms/packages/block/block-grid/block-grid-manager/constants.js +1 -0
  497. package/dist-cms/packages/block/block-grid/block-grid-manager/index.d.ts +1 -0
  498. package/dist-cms/packages/block/block-grid/block-grid-manager/index.js +1 -0
  499. package/dist-cms/packages/block/block-grid/clipboard/block/paste/block-to-block-grid-paste-translator.d.ts +4 -8
  500. package/dist-cms/packages/block/block-grid/clipboard/block/paste/block-to-block-grid-paste-translator.js +4 -6
  501. package/dist-cms/packages/block/block-grid/clipboard/grid-block/paste/grid-block-to-block-grid-paste-translator.d.ts +4 -7
  502. package/dist-cms/packages/block/block-grid/clipboard/grid-block/paste/grid-block-to-block-grid-paste-translator.js +8 -7
  503. package/dist-cms/packages/block/block-grid/clipboard/manifests.d.ts +2 -1
  504. package/dist-cms/packages/block/block-grid/clipboard/manifests.js +1 -16
  505. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.d.ts +1 -1
  506. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.js +2 -2
  507. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.d.ts +0 -2
  508. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.js +0 -2
  509. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.d.ts +0 -1
  510. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.js +2 -3
  511. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.d.ts +0 -2
  512. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +0 -2
  513. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.d.ts +0 -2
  514. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +2 -4
  515. package/dist-cms/packages/block/block-grid/components/block-grid-block-unsupported/block-grid-block-unsupported.element.d.ts +0 -2
  516. package/dist-cms/packages/block/block-grid/components/block-grid-block-unsupported/block-grid-block-unsupported.element.js +0 -2
  517. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entries}/block-grid-entries.context-token.d.ts +1 -1
  518. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entries}/block-grid-entries.context-token.js +1 -1
  519. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entries}/block-grid-entries.context.d.ts +8 -9
  520. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entries}/block-grid-entries.context.js +20 -9
  521. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.d.ts +1 -2
  522. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +2 -9
  523. package/dist-cms/packages/block/block-grid/components/block-grid-entries/constants.d.ts +1 -0
  524. package/dist-cms/packages/block/block-grid/components/block-grid-entries/constants.js +1 -0
  525. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entry}/block-grid-entry.context-token.d.ts +1 -1
  526. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entry}/block-grid-entry.context-token.js +1 -1
  527. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entry}/block-grid-entry.context.d.ts +10 -10
  528. package/dist-cms/packages/block/block-grid/{context → components/block-grid-entry}/block-grid-entry.context.js +9 -9
  529. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.d.ts +0 -4
  530. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +6 -10
  531. package/dist-cms/packages/block/block-grid/components/block-grid-entry/constants.d.ts +1 -0
  532. package/dist-cms/packages/block/block-grid/components/block-grid-entry/constants.js +1 -0
  533. package/dist-cms/packages/block/block-grid/components/constants.d.ts +2 -0
  534. package/dist-cms/packages/block/block-grid/components/constants.js +2 -0
  535. package/dist-cms/packages/block/block-grid/constants.d.ts +2 -1
  536. package/dist-cms/packages/block/block-grid/constants.js +2 -1
  537. package/dist-cms/packages/block/block-grid/context/constants.d.ts +0 -3
  538. package/dist-cms/packages/block/block-grid/context/constants.js +0 -3
  539. package/dist-cms/packages/block/block-grid/index.d.ts +0 -1
  540. package/dist-cms/packages/block/block-grid/index.js +0 -1
  541. package/dist-cms/packages/block/block-grid/local-components.d.ts +8 -0
  542. package/dist-cms/packages/block/block-grid/local-components.js +8 -0
  543. package/dist-cms/packages/block/block-grid/manifests.d.ts +2 -1
  544. package/dist-cms/packages/block/block-grid/manifests.js +2 -0
  545. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +6 -6
  546. package/dist-cms/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.d.ts +1 -1
  547. package/dist-cms/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.js +1 -1
  548. package/dist-cms/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.d.ts +1 -1
  549. package/dist-cms/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.js +2 -2
  550. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/manifests.d.ts +2 -1
  551. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/manifests.js +3 -1
  552. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-actions/block-grid-paste-from-clipboard.d.ts +21 -0
  553. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-actions/block-grid-paste-from-clipboard.js +40 -0
  554. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-actions/manifests.d.ts +2 -0
  555. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-actions/manifests.js +18 -0
  556. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.d.ts +4 -3
  557. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +41 -11
  558. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/types.d.ts +8 -0
  559. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/types.js +1 -0
  560. package/dist-cms/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.d.ts +1 -1
  561. package/dist-cms/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.js +2 -2
  562. package/dist-cms/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.d.ts +1 -1
  563. package/dist-cms/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.js +2 -2
  564. package/dist-cms/packages/block/block-grid/property-editors/manifests.d.ts +2 -1
  565. package/dist-cms/packages/block/block-grid/validation/block-grid-validation-property-path-translator.api.d.ts +7 -0
  566. package/dist-cms/packages/block/block-grid/validation/block-grid-validation-property-path-translator.api.js +14 -0
  567. package/dist-cms/packages/block/block-grid/validation/manifests.js +10 -0
  568. package/dist-cms/packages/block/block-list/clipboard/block/paste/block-to-block-list-paste-translator.d.ts +2 -2
  569. package/dist-cms/packages/block/block-list/clipboard/block/paste/block-to-block-list-paste-translator.js +3 -3
  570. package/dist-cms/packages/block/block-list/clipboard/manifests.js +0 -3
  571. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +7 -7
  572. package/dist-cms/packages/block/block-list/context/block-list-manager.context.d.ts +5 -2
  573. package/dist-cms/packages/block/block-list/context/block-list-manager.context.js +3 -1
  574. package/dist-cms/packages/block/block-list/manifests.js +3 -1
  575. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.d.ts +3 -1
  576. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +39 -9
  577. package/dist-cms/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.d.ts +1 -1
  578. package/dist-cms/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.js +2 -2
  579. package/dist-cms/packages/block/block-list/validation/block-list-validation-property-path-translator.api.d.ts +7 -0
  580. package/dist-cms/packages/block/block-list/validation/block-list-validation-property-path-translator.api.js +14 -0
  581. package/dist-cms/packages/block/block-list/validation/manifests.d.ts +1 -0
  582. package/dist-cms/packages/block/block-list/validation/manifests.js +10 -0
  583. package/dist-cms/packages/block/block-list/workspace/views/block-list-type-workspace-view.element.js +1 -0
  584. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +5 -5
  585. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.d.ts +2 -2
  586. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.js +6 -2
  587. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.d.ts +5 -2
  588. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +3 -1
  589. package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +2 -2
  590. package/dist-cms/packages/clipboard/constants.d.ts +1 -1
  591. package/dist-cms/packages/clipboard/constants.js +1 -1
  592. package/dist-cms/packages/clipboard/property/actions/constants.d.ts +1 -0
  593. package/dist-cms/packages/clipboard/property/actions/constants.js +1 -0
  594. package/dist-cms/packages/clipboard/property/actions/index.d.ts +1 -0
  595. package/dist-cms/packages/clipboard/property/actions/index.js +1 -0
  596. package/dist-cms/packages/clipboard/property/actions/paste/constants.d.ts +1 -0
  597. package/dist-cms/packages/clipboard/property/actions/paste/constants.js +1 -0
  598. package/dist-cms/packages/clipboard/property/actions/paste/index.d.ts +1 -0
  599. package/dist-cms/packages/clipboard/property/actions/paste/index.js +1 -0
  600. package/dist-cms/packages/clipboard/property/actions/paste/manifests.d.ts +1 -0
  601. package/dist-cms/packages/clipboard/property/actions/paste/manifests.js +17 -16
  602. package/dist-cms/packages/clipboard/property/actions/paste/paste-from-clipboard.property-action.d.ts +1 -0
  603. package/dist-cms/packages/clipboard/property/actions/paste/paste-from-clipboard.property-action.js +5 -0
  604. package/dist-cms/packages/clipboard/property/constants.d.ts +2 -0
  605. package/dist-cms/packages/clipboard/property/constants.js +2 -0
  606. package/dist-cms/packages/clipboard/property/context/clipboard.property-context.d.ts +2 -0
  607. package/dist-cms/packages/clipboard/property/context/clipboard.property-context.js +3 -2
  608. package/dist-cms/packages/clipboard/property/index.d.ts +1 -0
  609. package/dist-cms/packages/clipboard/property/index.js +1 -0
  610. package/dist-cms/packages/clipboard/property/value-translator/paste/types.d.ts +3 -3
  611. package/dist-cms/packages/code-editor/property-editor/property-editor-ui-code-editor.element.js +2 -3
  612. package/dist-cms/packages/core/collection/collection-view.manager.js +1 -0
  613. package/dist-cms/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.js +4 -1
  614. package/dist-cms/packages/core/components/input-color/input-color.element.d.ts +1 -1
  615. package/dist-cms/packages/core/components/input-date/input-date.element.d.ts +1 -0
  616. package/dist-cms/packages/core/components/input-date/input-date.element.js +10 -1
  617. package/dist-cms/packages/core/components/input-dropdown/input-dropdown-list.element.d.ts +12 -4
  618. package/dist-cms/packages/core/components/input-dropdown/input-dropdown-list.element.js +40 -18
  619. package/dist-cms/packages/core/components/input-eye-dropper/input-eye-dropper.element.d.ts +1 -1
  620. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.d.ts +1 -1
  621. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +2 -2
  622. package/dist-cms/packages/core/components/input-radio-button-list/input-radio-button-list.element.d.ts +8 -2
  623. package/dist-cms/packages/core/components/input-radio-button-list/input-radio-button-list.element.js +25 -18
  624. package/dist-cms/packages/core/components/input-slider/input-slider.element.d.ts +1 -1
  625. package/dist-cms/packages/core/components/input-toggle/input-toggle.element.d.ts +1 -1
  626. package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +2 -2
  627. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.d.ts +1 -1
  628. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.d.ts +1 -1
  629. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.js +1 -2
  630. package/dist-cms/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.d.ts +1 -1
  631. package/dist-cms/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.js +6 -3
  632. package/dist-cms/packages/core/content/manager/element-data-manager.js +5 -0
  633. package/dist-cms/packages/core/content/property-dataset-context/element-property-dataset.context.d.ts +2 -0
  634. package/dist-cms/packages/core/content/property-dataset-context/element-property-dataset.context.js +4 -5
  635. package/dist-cms/packages/core/content/workspace/content-detail-validation-path-translator.d.ts +6 -0
  636. package/dist-cms/packages/core/content/workspace/content-detail-validation-path-translator.js +20 -0
  637. package/dist-cms/packages/core/content/workspace/content-detail-workspace-base.d.ts +3 -0
  638. package/dist-cms/packages/core/content/workspace/content-detail-workspace-base.js +52 -8
  639. package/dist-cms/packages/core/content-type/global-components/content-type-workspace-editor-header.element.d.ts +18 -0
  640. package/dist-cms/packages/core/content-type/global-components/content-type-workspace-editor-header.element.js +145 -0
  641. package/dist-cms/packages/core/content-type/global-components/index.d.ts +2 -0
  642. package/dist-cms/packages/core/content-type/global-components/index.js +2 -0
  643. package/dist-cms/packages/core/content-type/index.d.ts +1 -0
  644. package/dist-cms/packages/core/content-type/index.js +1 -0
  645. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-data-source.interface.d.ts +1 -1
  646. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-repository-base.d.ts +2 -1
  647. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-repository-base.js +3 -2
  648. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-repository.interface.d.ts +1 -1
  649. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-server-data-source-base.d.ts +3 -2
  650. package/dist-cms/packages/core/content-type/repository/structure/content-type-structure-server-data-source-base.js +3 -2
  651. package/dist-cms/packages/core/content-type/workspace/content-type-workspace-context-base.d.ts +5 -0
  652. package/dist-cms/packages/core/content-type/workspace/content-type-workspace-context-base.js +7 -0
  653. package/dist-cms/packages/core/content-type/workspace/content-type-workspace-context.interface.d.ts +8 -1
  654. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-group.element.js +2 -9
  655. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.d.ts +1 -0
  656. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.js +9 -1
  657. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-property.element.d.ts +1 -0
  658. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-property.element.js +22 -4
  659. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor-tab.element.js +5 -2
  660. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor.element.d.ts +2 -5
  661. package/dist-cms/packages/core/content-type/workspace/views/design/content-type-design-editor.element.js +48 -27
  662. package/dist-cms/packages/core/culture/components/input-culture-select/input-culture-select.element.d.ts +1 -1
  663. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  664. package/dist-cms/packages/core/entity/constants.d.ts +1 -0
  665. package/dist-cms/packages/core/entity/constants.js +1 -0
  666. package/dist-cms/packages/core/entity/contexts/ancestors/ancestors.entity-context-token.d.ts +3 -0
  667. package/dist-cms/packages/core/entity/contexts/ancestors/ancestors.entity-context-token.js +2 -0
  668. package/dist-cms/packages/core/entity/contexts/ancestors/ancestors.entity-context.d.ts +26 -0
  669. package/dist-cms/packages/core/entity/contexts/ancestors/ancestors.entity-context.js +33 -0
  670. package/dist-cms/packages/core/entity/contexts/ancestors/constants.d.ts +1 -0
  671. package/dist-cms/packages/core/entity/contexts/ancestors/constants.js +1 -0
  672. package/dist-cms/packages/core/entity/contexts/ancestors/index.d.ts +1 -0
  673. package/dist-cms/packages/core/entity/contexts/ancestors/index.js +1 -0
  674. package/dist-cms/packages/core/entity/index.d.ts +2 -0
  675. package/dist-cms/packages/core/entity/index.js +2 -0
  676. package/dist-cms/packages/core/entity-action/constants.d.ts +1 -0
  677. package/dist-cms/packages/core/entity-action/constants.js +1 -0
  678. package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.d.ts +1 -4
  679. package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +2 -10
  680. package/dist-cms/packages/core/entity-action/has-children/condition/constants.d.ts +1 -0
  681. package/dist-cms/packages/core/entity-action/has-children/condition/constants.js +1 -0
  682. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition-config.d.ts +9 -0
  683. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition-config.js +1 -0
  684. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.d.ts +7 -0
  685. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.js +13 -0
  686. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.manifest.d.ts +2 -0
  687. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.manifest.js +7 -0
  688. package/dist-cms/packages/core/entity-action/has-children/constants.d.ts +2 -0
  689. package/dist-cms/packages/core/entity-action/has-children/constants.js +2 -0
  690. package/dist-cms/packages/core/entity-action/has-children/context/constants.d.ts +1 -0
  691. package/dist-cms/packages/core/entity-action/has-children/context/constants.js +1 -0
  692. package/dist-cms/packages/core/entity-action/has-children/context/has-children.context-token.d.ts +3 -0
  693. package/dist-cms/packages/core/entity-action/has-children/context/has-children.context-token.js +2 -0
  694. package/dist-cms/packages/core/entity-action/has-children/context/has-children.entity-context.d.ts +19 -0
  695. package/dist-cms/packages/core/entity-action/has-children/context/has-children.entity-context.js +27 -0
  696. package/dist-cms/packages/core/entity-action/has-children/context/index.d.ts +1 -0
  697. package/dist-cms/packages/core/entity-action/has-children/context/index.js +1 -0
  698. package/dist-cms/packages/core/entity-action/has-children/index.d.ts +1 -0
  699. package/dist-cms/packages/core/entity-action/has-children/index.js +1 -0
  700. package/dist-cms/packages/core/entity-action/has-children/manifests.d.ts +2 -0
  701. package/dist-cms/packages/core/entity-action/has-children/manifests.js +2 -0
  702. package/dist-cms/packages/core/entity-action/index.d.ts +1 -0
  703. package/dist-cms/packages/core/entity-action/index.js +1 -0
  704. package/dist-cms/packages/core/entity-action/manifests.js +2 -0
  705. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +125 -0
  706. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +1 -1
  707. package/dist-cms/packages/core/icon-registry/icons/icon-blend.d.ts +2 -0
  708. package/dist-cms/packages/core/icon-registry/icons/icon-blend.js +1 -0
  709. package/dist-cms/packages/core/icon-registry/icons/icon-columns-2.d.ts +2 -0
  710. package/dist-cms/packages/core/icon-registry/icons/icon-columns-2.js +1 -0
  711. package/dist-cms/packages/core/icon-registry/icons/icon-columns-3.d.ts +2 -0
  712. package/dist-cms/packages/core/icon-registry/icons/icon-columns-3.js +1 -0
  713. package/dist-cms/packages/core/icon-registry/icons/icon-columns-4.d.ts +2 -0
  714. package/dist-cms/packages/core/icon-registry/icons/icon-columns-4.js +1 -0
  715. package/dist-cms/packages/core/icon-registry/icons/icon-grid-2.d.ts +2 -0
  716. package/dist-cms/packages/core/icon-registry/icons/icon-grid-2.js +1 -0
  717. package/dist-cms/packages/core/icon-registry/icons/icon-grid-3.d.ts +2 -0
  718. package/dist-cms/packages/core/icon-registry/icons/icon-grid-3.js +1 -0
  719. package/dist-cms/packages/core/icon-registry/icons/icon-grip.d.ts +2 -0
  720. package/dist-cms/packages/core/icon-registry/icons/icon-grip.js +1 -0
  721. package/dist-cms/packages/core/icon-registry/icons/icon-heading-4.d.ts +2 -0
  722. package/dist-cms/packages/core/icon-registry/icons/icon-heading-4.js +1 -0
  723. package/dist-cms/packages/core/icon-registry/icons/icon-land-plot.d.ts +2 -0
  724. package/dist-cms/packages/core/icon-registry/icons/icon-land-plot.js +1 -0
  725. package/dist-cms/packages/core/icon-registry/icons/icon-layout-dislocated.d.ts +2 -0
  726. package/dist-cms/packages/core/icon-registry/icons/icon-layout-dislocated.js +1 -0
  727. package/dist-cms/packages/core/icon-registry/icons/icon-layout-grid.d.ts +2 -0
  728. package/dist-cms/packages/core/icon-registry/icons/icon-layout-grid.js +1 -0
  729. package/dist-cms/packages/core/icon-registry/icons/icon-layout-list.d.ts +2 -0
  730. package/dist-cms/packages/core/icon-registry/icons/icon-layout-list.js +1 -0
  731. package/dist-cms/packages/core/icon-registry/icons/icon-layout-masonry.d.ts +2 -0
  732. package/dist-cms/packages/core/icon-registry/icons/icon-layout-masonry.js +1 -0
  733. package/dist-cms/packages/core/icon-registry/icons/icon-layout-panel-left.d.ts +2 -0
  734. package/dist-cms/packages/core/icon-registry/icons/icon-layout-panel-left.js +1 -0
  735. package/dist-cms/packages/core/icon-registry/icons/icon-omega.d.ts +2 -0
  736. package/dist-cms/packages/core/icon-registry/icons/icon-omega.js +1 -0
  737. package/dist-cms/packages/core/icon-registry/icons/icon-paragraph.d.ts +2 -0
  738. package/dist-cms/packages/core/icon-registry/icons/icon-paragraph.js +1 -0
  739. package/dist-cms/packages/core/icon-registry/icons/icon-rows-2.d.ts +2 -0
  740. package/dist-cms/packages/core/icon-registry/icons/icon-rows-2.js +1 -0
  741. package/dist-cms/packages/core/icon-registry/icons/icon-rows-3.d.ts +2 -0
  742. package/dist-cms/packages/core/icon-registry/icons/icon-rows-3.js +1 -0
  743. package/dist-cms/packages/core/icon-registry/icons/icon-rows-4.d.ts +2 -0
  744. package/dist-cms/packages/core/icon-registry/icons/icon-rows-4.js +1 -0
  745. package/dist-cms/packages/core/icon-registry/icons/icon-shape-circle.d.ts +2 -0
  746. package/dist-cms/packages/core/icon-registry/icons/icon-shape-circle.js +1 -0
  747. package/dist-cms/packages/core/icon-registry/icons/icon-shape-cylinder.d.ts +2 -0
  748. package/dist-cms/packages/core/icon-registry/icons/icon-shape-cylinder.js +1 -0
  749. package/dist-cms/packages/core/icon-registry/icons/icon-shape-hexagon.d.ts +2 -0
  750. package/dist-cms/packages/core/icon-registry/icons/icon-shape-hexagon.js +1 -0
  751. package/dist-cms/packages/core/icon-registry/icons/icon-shape-rectangle-horizontal.d.ts +2 -0
  752. package/dist-cms/packages/core/icon-registry/icons/icon-shape-rectangle-horizontal.js +1 -0
  753. package/dist-cms/packages/core/icon-registry/icons/icon-shape-rectangle-vertical.d.ts +2 -0
  754. package/dist-cms/packages/core/icon-registry/icons/icon-shape-rectangle-vertical.js +1 -0
  755. package/dist-cms/packages/core/icon-registry/icons/icon-shape-square.d.ts +2 -0
  756. package/dist-cms/packages/core/icon-registry/icons/icon-shape-square.js +1 -0
  757. package/dist-cms/packages/core/icon-registry/icons/icon-shape-triangle-right.d.ts +2 -0
  758. package/dist-cms/packages/core/icon-registry/icons/icon-shape-triangle-right.js +1 -0
  759. package/dist-cms/packages/core/icon-registry/icons/icon-shape-triangle.d.ts +2 -0
  760. package/dist-cms/packages/core/icon-registry/icons/icon-shape-triangle.js +1 -0
  761. package/dist-cms/packages/core/icon-registry/icons/icon-shapes.d.ts +2 -0
  762. package/dist-cms/packages/core/icon-registry/icons/icon-shapes.js +1 -0
  763. package/dist-cms/packages/core/icon-registry/icons/icon-shared-value.d.ts +2 -0
  764. package/dist-cms/packages/core/icon-registry/icons/icon-shared-value.js +1 -0
  765. package/dist-cms/packages/core/icon-registry/icons/icon-spray-can.d.ts +2 -0
  766. package/dist-cms/packages/core/icon-registry/icons/icon-spray-can.js +1 -0
  767. package/dist-cms/packages/core/icon-registry/icons/icon-swatch-book.d.ts +2 -0
  768. package/dist-cms/packages/core/icon-registry/icons/icon-swatch-book.js +1 -0
  769. package/dist-cms/packages/core/icon-registry/icons.d.ts +186 -56
  770. package/dist-cms/packages/core/icon-registry/icons.js +148 -0
  771. package/dist-cms/packages/core/localization/components/ui-culture-input/ui-culture-input.element.d.ts +1 -1
  772. package/dist-cms/packages/core/localization/localize.element.d.ts +1 -1
  773. package/dist-cms/packages/core/localization/localize.element.js +9 -4
  774. package/dist-cms/packages/core/menu/components/menu/index.d.ts +0 -1
  775. package/dist-cms/packages/core/menu/components/menu/index.js +0 -1
  776. package/dist-cms/packages/core/menu/components/menu/menu.element.d.ts +0 -1
  777. package/dist-cms/packages/core/menu/components/menu/menu.element.js +0 -4
  778. package/dist-cms/packages/core/menu/conditions/menu-alias.condition.js +10 -4
  779. package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +10 -0
  780. package/dist-cms/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.js +1 -1
  781. package/dist-cms/packages/core/modal/common/error-viewer/error-viewer-modal.token.d.ts +1 -1
  782. package/dist-cms/packages/core/modal/common/error-viewer/error-viewer-modal.token.js +1 -1
  783. package/dist-cms/packages/core/modal/component/modal.element.js +1 -0
  784. package/dist-cms/packages/core/notification/controllers/peek-error/peek-error.controller.d.ts +1 -1
  785. package/dist-cms/packages/core/notification/extractUmbNotificationColor.function.d.ts +1 -1
  786. package/dist-cms/packages/core/object-type/input-object-type.element.d.ts +1 -1
  787. package/dist-cms/packages/core/picker/search/picker-search-field.element.d.ts +1 -3
  788. package/dist-cms/packages/core/picker/search/picker-search-field.element.js +6 -2
  789. package/dist-cms/packages/core/picker/search/picker-search-result.element.d.ts +1 -3
  790. package/dist-cms/packages/core/picker/search/picker-search-result.element.js +1 -2
  791. package/dist-cms/packages/core/picker-input/picker-input.context.js +1 -1
  792. package/dist-cms/packages/core/property/components/property-layout/property-layout.element.js +17 -4
  793. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  794. package/dist-cms/packages/core/property-type/index.d.ts +1 -0
  795. package/dist-cms/packages/core/property-type/index.js +1 -0
  796. package/dist-cms/packages/core/property-type/utils/index.d.ts +8 -0
  797. package/dist-cms/packages/core/property-type/utils/index.js +9 -0
  798. package/dist-cms/packages/core/property-type/workspace/property-type-workspace.context.d.ts +2 -0
  799. package/dist-cms/packages/core/property-type/workspace/property-type-workspace.context.js +10 -0
  800. package/dist-cms/packages/core/property-type/workspace/views/settings/property-workspace-view-settings.element.js +33 -19
  801. package/dist-cms/packages/core/recycle-bin/tree/tree-item/recycle-bin-tree-item.context.js +1 -1
  802. package/dist-cms/packages/core/resources/resource.controller.d.ts +1 -0
  803. package/dist-cms/packages/core/resources/resource.controller.js +2 -2
  804. package/dist-cms/packages/core/router/index.d.ts +1 -2
  805. package/dist-cms/packages/core/router/index.js +1 -2
  806. package/dist-cms/packages/core/router/modal-registration/modal-route-registration.controller.js +2 -1
  807. package/dist-cms/packages/core/router/{components/router-slot → route}/index.d.ts +1 -0
  808. package/dist-cms/packages/core/router/{components/router-slot → route}/index.js +1 -0
  809. package/dist-cms/packages/core/router/{components → route}/not-found/route-not-found.element.js +1 -2
  810. package/dist-cms/packages/core/router/{components/router-slot → route}/route.context.d.ts +5 -5
  811. package/dist-cms/packages/core/router/{components/router-slot → route}/route.context.js +7 -5
  812. package/dist-cms/packages/core/router/route/route.interface.d.ts +1 -0
  813. package/dist-cms/packages/core/router/route/route.interface.js +1 -0
  814. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot-change.event.d.ts +1 -1
  815. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot-change.event.js +1 -1
  816. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot-init.event.d.ts +1 -1
  817. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot-init.event.js +1 -1
  818. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot.element.d.ts +4 -4
  819. package/dist-cms/packages/core/router/{components/router-slot → route}/router-slot.element.js +4 -4
  820. package/dist-cms/packages/core/section/section.context.d.ts +4 -2
  821. package/dist-cms/packages/core/section/section.context.js +4 -3
  822. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +1 -1
  823. package/dist-cms/packages/core/sorter/sorter.controller.js +1 -1
  824. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  825. package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.d.ts +7 -0
  826. package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +22 -3
  827. package/dist-cms/packages/core/temporary-file/temporary-file.repository.d.ts +1 -0
  828. package/dist-cms/packages/core/temporary-file/temporary-file.repository.js +1 -0
  829. package/dist-cms/packages/core/temporary-file/types.d.ts +10 -1
  830. package/dist-cms/packages/core/temporary-file/types.js +1 -0
  831. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  832. package/dist-cms/packages/core/tree/default/default-tree.context.d.ts +29 -0
  833. package/dist-cms/packages/core/tree/default/default-tree.context.js +54 -0
  834. package/dist-cms/packages/core/tree/default/default-tree.element.d.ts +5 -0
  835. package/dist-cms/packages/core/tree/default/default-tree.element.js +24 -2
  836. package/dist-cms/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.js +1 -0
  837. package/dist-cms/packages/core/tree/entity-actions/move/move-to.action.js +2 -0
  838. package/dist-cms/packages/core/tree/entity-actions/sort-children-of/modal/sort-children-of-modal.element.js +3 -3
  839. package/dist-cms/packages/core/tree/expansion-manager/index.d.ts +1 -0
  840. package/dist-cms/packages/core/tree/expansion-manager/index.js +1 -0
  841. package/dist-cms/packages/core/tree/expansion-manager/tree-expansion-manager.d.ts +60 -0
  842. package/dist-cms/packages/core/tree/expansion-manager/tree-expansion-manager.js +74 -0
  843. package/dist-cms/packages/core/tree/expansion-manager/types.d.ts +2 -0
  844. package/dist-cms/packages/core/tree/expansion-manager/types.js +1 -0
  845. package/dist-cms/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.js +1 -1
  846. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.d.ts +15 -1
  847. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.js +61 -3
  848. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +2 -0
  849. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +14 -3
  850. package/dist-cms/packages/core/tree/tree-item/tree-item-context.interface.d.ts +4 -0
  851. package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.element.js +1 -0
  852. package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.token.d.ts +4 -3
  853. package/dist-cms/packages/core/utils/sanitize/escape-html.function.d.ts +1 -1
  854. package/dist-cms/packages/core/utils/sanitize/escape-html.function.js +1 -1
  855. package/dist-cms/packages/core/validation/components/form-validation-message.element.js +1 -1
  856. package/dist-cms/packages/core/validation/context/index.d.ts +1 -0
  857. package/dist-cms/packages/core/validation/context/index.js +1 -0
  858. package/dist-cms/packages/core/validation/context/server-model-validator.context.d.ts +3 -0
  859. package/dist-cms/packages/core/validation/context/server-model-validator.context.js +40 -6
  860. package/dist-cms/packages/core/validation/context/validation-messages.manager.d.ts +8 -2
  861. package/dist-cms/packages/core/validation/context/validation-messages.manager.js +33 -11
  862. package/dist-cms/packages/core/validation/controllers/bind-server-validation-to-form-control.controller.js +3 -3
  863. package/dist-cms/packages/core/validation/controllers/index.d.ts +1 -0
  864. package/dist-cms/packages/core/validation/controllers/index.js +1 -0
  865. package/dist-cms/packages/core/validation/controllers/types.d.ts +1 -0
  866. package/dist-cms/packages/core/validation/controllers/types.js +1 -0
  867. package/dist-cms/packages/core/validation/controllers/validation-path-translation/index.d.ts +2 -0
  868. package/dist-cms/packages/core/validation/controllers/validation-path-translation/index.js +2 -0
  869. package/dist-cms/packages/core/validation/controllers/validation-path-translation/property-validation-path-translator.extension.d.ts +11 -0
  870. package/dist-cms/packages/core/validation/controllers/validation-path-translation/property-validation-path-translator.extension.js +1 -0
  871. package/dist-cms/packages/core/validation/controllers/validation-path-translation/types.d.ts +31 -0
  872. package/dist-cms/packages/core/validation/controllers/validation-path-translation/types.js +1 -0
  873. package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-path-translation.controller.d.ts +14 -0
  874. package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-path-translation.controller.js +30 -0
  875. package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-property-path-translation.controller.d.ts +20 -0
  876. package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-property-path-translation.controller.js +44 -0
  877. package/dist-cms/packages/core/validation/controllers/validation.controller.d.ts +32 -2
  878. package/dist-cms/packages/core/validation/controllers/validation.controller.js +193 -68
  879. package/dist-cms/packages/core/validation/directives/bind-to-validation.lit-directive.js +1 -1
  880. package/dist-cms/packages/core/validation/index.d.ts +1 -1
  881. package/dist-cms/packages/core/validation/translators/validation-path-translator-base.controller.d.ts +1 -1
  882. package/dist-cms/packages/core/validation/translators/validation-path-translator-base.controller.js +1 -1
  883. package/dist-cms/packages/core/validation/translators/variant-values-validation-path-translator.controller.js +6 -0
  884. package/dist-cms/packages/core/validation/translators/variants-validation-path-translator.controller.js +6 -0
  885. package/dist-cms/packages/core/validation/types.d.ts +2 -0
  886. package/dist-cms/packages/core/validation/types.js +1 -0
  887. package/dist-cms/packages/core/validation/utils/index.d.ts +2 -0
  888. package/dist-cms/packages/core/validation/utils/index.js +2 -0
  889. package/dist-cms/packages/core/validation/utils/query-mapper-json-paths.function.d.ts +12 -0
  890. package/dist-cms/packages/core/validation/utils/query-mapper-json-paths.function.js +47 -0
  891. package/dist-cms/packages/core/validation/utils/scope-mapper-json-paths.function.d.ts +8 -0
  892. package/dist-cms/packages/core/validation/utils/scope-mapper-json-paths.function.js +25 -0
  893. package/dist-cms/packages/core/variant/variant-object-compare.function.d.ts +5 -0
  894. package/dist-cms/packages/core/variant/variant-object-compare.function.js +5 -0
  895. package/dist-cms/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.js +10 -8
  896. package/dist-cms/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.js +22 -24
  897. package/dist-cms/packages/core/workspace/components/workspace-editor/workspace-editor.element.js +2 -2
  898. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +1 -1
  899. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.js +10 -0
  900. package/dist-cms/packages/core/workspace/contexts/tokens/variant-dataset-workspace-context.interface.d.ts +2 -0
  901. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +1 -0
  902. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +15 -12
  903. package/dist-cms/packages/core/workspace/info-app/global-components/workspace-info-app-layout.element.js +7 -1
  904. package/dist-cms/packages/core/workspace/info-app/workspace-info-app.extension.d.ts +2 -2
  905. package/dist-cms/packages/core/workspace/modals/workspace-modal.element.d.ts +3 -1
  906. package/dist-cms/packages/core/workspace/modals/workspace-modal.element.js +17 -1
  907. package/dist-cms/packages/core/workspace/modals/workspace-modal.token.d.ts +1 -0
  908. package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +2 -2
  909. package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +9 -15
  910. package/dist-cms/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.d.ts +1 -1
  911. package/dist-cms/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.js +2 -2
  912. package/dist-cms/packages/data-type/components/data-type-input/data-type-input.element.d.ts +1 -1
  913. package/dist-cms/packages/data-type/entity-actions/manifests.js +3 -2
  914. package/dist-cms/packages/data-type/manifests.js +2 -0
  915. package/dist-cms/packages/data-type/reference/info-app/manifests.d.ts +1 -0
  916. package/dist-cms/packages/data-type/reference/info-app/manifests.js +20 -0
  917. package/dist-cms/packages/data-type/reference/manifests.js +2 -1
  918. package/dist-cms/packages/data-type/reference/repository/data-type-reference.repository.d.ts +5 -13
  919. package/dist-cms/packages/data-type/reference/repository/data-type-reference.repository.js +7 -14
  920. package/dist-cms/packages/data-type/reference/repository/data-type-reference.server.data.d.ts +18 -10
  921. package/dist-cms/packages/data-type/reference/repository/data-type-reference.server.data.js +43 -13
  922. package/dist-cms/packages/data-type/workspace/data-type-workspace.context.js +21 -3
  923. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.js +4 -2
  924. package/dist-cms/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.d.ts +0 -1
  925. package/dist-cms/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.js +1 -3
  926. package/dist-cms/packages/dictionary/entity-action/import/import-dictionary-modal.element.js +2 -2
  927. package/dist-cms/packages/documents/document-redirect-management/dashboard-redirect-management.element.js +1 -3
  928. package/dist-cms/packages/documents/document-types/constants.d.ts +3 -2
  929. package/dist-cms/packages/documents/document-types/constants.js +3 -2
  930. package/dist-cms/packages/documents/document-types/entity-actions/import/modal/document-type-import-modal.element.d.ts +1 -2
  931. package/dist-cms/packages/documents/document-types/entity-actions/import/modal/document-type-import-modal.element.js +21 -22
  932. package/dist-cms/packages/documents/document-types/manifests.js +2 -0
  933. package/dist-cms/packages/documents/document-types/property-editors/document-type-picker/manifests.js +0 -6
  934. package/dist-cms/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.d.ts +0 -1
  935. package/dist-cms/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.js +2 -7
  936. package/dist-cms/packages/documents/document-types/property-type/constants.d.ts +1 -0
  937. package/dist-cms/packages/documents/document-types/property-type/constants.js +1 -0
  938. package/dist-cms/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.d.ts +18 -0
  939. package/dist-cms/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.js +79 -0
  940. package/dist-cms/packages/documents/document-types/property-type/document-type-property-type-reference-response.management-api.mapping.d.ts +8 -0
  941. package/dist-cms/packages/documents/document-types/property-type/document-type-property-type-reference-response.management-api.mapping.js +19 -0
  942. package/dist-cms/packages/documents/document-types/property-type/entity.d.ts +2 -0
  943. package/dist-cms/packages/documents/document-types/property-type/entity.js +1 -0
  944. package/dist-cms/packages/documents/document-types/property-type/manifests.d.ts +1 -0
  945. package/dist-cms/packages/documents/document-types/property-type/manifests.js +19 -0
  946. package/dist-cms/packages/documents/document-types/property-type/types.d.ts +11 -0
  947. package/dist-cms/packages/documents/document-types/property-type/types.js +1 -0
  948. package/dist-cms/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.js +5 -2
  949. package/dist-cms/packages/documents/document-types/workspace/document-type/document-type-workspace-editor.element.d.ts +0 -8
  950. package/dist-cms/packages/documents/document-types/workspace/document-type/document-type-workspace-editor.element.js +3 -122
  951. package/dist-cms/packages/documents/document-types/workspace/document-type/views/settings/document-type-workspace-view-settings.element.js +24 -18
  952. package/dist-cms/packages/documents/documents/audit-log/info-app/document-history-workspace-info-app.element.js +1 -0
  953. package/dist-cms/packages/documents/documents/collection/action/create-document-collection-action.element.js +4 -4
  954. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.js +6 -0
  955. package/dist-cms/packages/documents/documents/collection/types.d.ts +2 -0
  956. package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-entity-actions-table-column-view.element.d.ts +15 -0
  957. package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-entity-actions-table-column-view.element.js +35 -0
  958. package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-table-column-state.element.js +4 -4
  959. package/dist-cms/packages/documents/documents/collection/views/table/document-table-collection-view.element.d.ts +1 -0
  960. package/dist-cms/packages/documents/documents/collection/views/table/document-table-collection-view.element.js +3 -5
  961. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.d.ts +0 -1
  962. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +0 -3
  963. package/dist-cms/packages/documents/documents/entity-actions/create/document-create-options-modal.element.js +3 -3
  964. package/dist-cms/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.js +4 -1
  965. package/dist-cms/packages/documents/documents/global-contexts/document-configuration.context.d.ts +2 -2
  966. package/dist-cms/packages/documents/documents/global-contexts/document-configuration.context.js +3 -4
  967. package/dist-cms/packages/documents/documents/modals/save-modal/document-save-modal.element.js +2 -2
  968. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js +0 -6
  969. package/dist-cms/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.d.ts +0 -1
  970. package/dist-cms/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.js +2 -7
  971. package/dist-cms/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.js +2 -2
  972. package/dist-cms/packages/documents/documents/publishing/publish/workspace-action/save-and-publish.action.js +3 -3
  973. package/dist-cms/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.js +2 -2
  974. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.repository.d.ts +1 -1
  975. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.repository.js +3 -0
  976. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.d.ts +5 -1
  977. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +19 -1
  978. package/dist-cms/packages/documents/documents/publishing/schedule-publish/modal/document-schedule-modal.element.js +3 -2
  979. package/dist-cms/packages/documents/documents/publishing/schedule-publish/workspace-action/manifests.js +1 -1
  980. package/dist-cms/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.d.ts +3 -2
  981. package/dist-cms/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.js +35 -46
  982. package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +10 -4
  983. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.js +4 -0
  984. package/dist-cms/packages/documents/documents/recycle-bin/tree/types.d.ts +1 -1
  985. package/dist-cms/packages/documents/documents/reference/components/document-reference-table.element.d.ts +4 -0
  986. package/dist-cms/packages/documents/documents/reference/components/document-reference-table.element.js +14 -1
  987. package/dist-cms/packages/documents/documents/reference/info-app/manifests.js +5 -2
  988. package/dist-cms/packages/documents/documents/reference/repository/document-reference-response.management-api.mapping.js +1 -0
  989. package/dist-cms/packages/documents/documents/reference/types.d.ts +6 -2
  990. package/dist-cms/packages/documents/documents/rollback/entity-action/manifests.js +1 -0
  991. package/dist-cms/packages/documents/documents/rollback/entity-action/rollback.action.js +3 -1
  992. package/dist-cms/packages/documents/documents/rollback/modal/rollback-modal.element.js +2 -1
  993. package/dist-cms/packages/documents/documents/tree/document-tree.element.d.ts +1 -2
  994. package/dist-cms/packages/documents/documents/tree/document-tree.element.js +1 -2
  995. package/dist-cms/packages/documents/documents/tree/document-tree.server.data-source.js +6 -0
  996. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  997. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +7 -0
  998. package/dist-cms/packages/documents/documents/tree/types.d.ts +2 -0
  999. package/dist-cms/packages/documents/documents/user-permissions/conditions/document-user-permission.condition.js +23 -7
  1000. package/dist-cms/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.d.ts +2 -1
  1001. package/dist-cms/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.js +25 -8
  1002. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +0 -1
  1003. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +20 -9
  1004. package/dist-cms/packages/extension-types/index.d.ts +1 -0
  1005. package/dist-cms/packages/health-check/dashboard-health-check.element.d.ts +2 -1
  1006. package/dist-cms/packages/health-check/dashboard-health-check.element.js +3 -3
  1007. package/dist-cms/packages/health-check/health-check-dashboard.context.d.ts +4 -3
  1008. package/dist-cms/packages/health-check/health-check-dashboard.context.js +4 -3
  1009. package/dist-cms/packages/language/components/input-language/input-language.element.d.ts +9 -1
  1010. package/dist-cms/packages/language/components/input-language/input-language.element.js +39 -16
  1011. package/dist-cms/packages/language/item/langauge-item-ref.element.d.ts +18 -0
  1012. package/dist-cms/packages/language/item/langauge-item-ref.element.js +65 -0
  1013. package/dist-cms/packages/language/item/manifests.d.ts +1 -0
  1014. package/dist-cms/packages/language/item/manifests.js +10 -0
  1015. package/dist-cms/packages/language/manifests.js +13 -11
  1016. package/dist-cms/packages/language/repository/item/language-item.server.data-source.js +2 -0
  1017. package/dist-cms/packages/language/repository/item/types.d.ts +2 -0
  1018. package/dist-cms/packages/log-viewer/components/log-viewer-date-range-selector.element.js +6 -22
  1019. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.d.ts +3 -2
  1020. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +4 -5
  1021. package/dist-cms/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.js +2 -1
  1022. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.js +3 -3
  1023. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.js +0 -1
  1024. package/dist-cms/packages/markdown-editor/property-editors/markdown-editor/markdown-editor-property-value-preset.d.ts +1 -1
  1025. package/dist-cms/packages/markdown-editor/property-editors/markdown-editor/property-editor-ui-markdown-editor.element.js +2 -2
  1026. package/dist-cms/packages/media/dropzone/components/index.d.ts +1 -0
  1027. package/dist-cms/packages/media/dropzone/components/index.js +1 -0
  1028. package/dist-cms/packages/media/dropzone/components/input-dropzone/input-dropzone.element.d.ts +61 -0
  1029. package/dist-cms/packages/media/dropzone/components/input-dropzone/input-dropzone.element.js +268 -0
  1030. package/dist-cms/packages/media/dropzone/constants.d.ts +8 -0
  1031. package/dist-cms/packages/media/{media/dropzone/types.js → dropzone/constants.js} +1 -0
  1032. package/dist-cms/packages/media/dropzone/dropzone-change.event.d.ts +9 -0
  1033. package/dist-cms/packages/media/dropzone/dropzone-change.event.js +7 -0
  1034. package/dist-cms/packages/media/{media/dropzone → dropzone}/dropzone-manager.class.d.ts +11 -2
  1035. package/dist-cms/packages/media/{media/dropzone → dropzone}/dropzone-manager.class.js +73 -29
  1036. package/dist-cms/packages/media/dropzone/index.d.ts +7 -0
  1037. package/dist-cms/packages/media/dropzone/index.js +6 -0
  1038. package/dist-cms/packages/media/dropzone/manifests.d.ts +1 -0
  1039. package/dist-cms/packages/media/dropzone/manifests.js +2 -0
  1040. package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/dropzone-media-type-picker-modal.element.d.ts +1 -1
  1041. package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/dropzone-media-type-picker-modal.element.js +3 -3
  1042. package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/dropzone-media-type-picker-modal.token.d.ts +2 -2
  1043. package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/dropzone-media-type-picker-modal.token.js +1 -1
  1044. package/dist-cms/packages/media/dropzone/modals/manifests.d.ts +1 -0
  1045. package/dist-cms/packages/media/{media/dropzone → dropzone}/types.d.ts +4 -10
  1046. package/dist-cms/packages/media/dropzone/types.js +1 -0
  1047. package/dist-cms/packages/media/manifests.js +2 -0
  1048. package/dist-cms/packages/media/media/collection/action/create-media-collection-action.element.js +3 -3
  1049. package/dist-cms/packages/media/media/collection/media-collection.context.d.ts +1 -1
  1050. package/dist-cms/packages/media/media/collection/media-collection.element.js +2 -2
  1051. package/dist-cms/packages/media/media/collection/types.d.ts +1 -1
  1052. package/dist-cms/packages/media/media/collection/views/grid/media-grid-collection-view.element.js +1 -1
  1053. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-field.element.d.ts +6 -3
  1054. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-field.element.js +61 -43
  1055. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.js +30 -1
  1056. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-preview.element.d.ts +1 -1
  1057. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-preview.element.js +3 -3
  1058. package/dist-cms/packages/media/media/components/input-image-cropper/input-image-cropper.element.d.ts +6 -6
  1059. package/dist-cms/packages/media/media/components/input-image-cropper/input-image-cropper.element.js +52 -47
  1060. package/dist-cms/packages/media/media/components/input-media/input-media.element.d.ts +0 -1
  1061. package/dist-cms/packages/media/media/components/input-media/input-media.element.js +3 -6
  1062. package/dist-cms/packages/media/media/components/input-rich-media/input-rich-media.element.js +6 -4
  1063. package/dist-cms/packages/media/media/components/input-upload-field/input-upload-field.element.d.ts +6 -7
  1064. package/dist-cms/packages/media/media/components/input-upload-field/input-upload-field.element.js +68 -175
  1065. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.d.ts +1 -0
  1066. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.js +4 -1
  1067. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.d.ts +0 -7
  1068. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.js +15 -67
  1069. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.d.ts +1 -0
  1070. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.js +21 -8
  1071. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.d.ts +1 -0
  1072. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.js +21 -13
  1073. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.d.ts +1 -0
  1074. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.js +4 -1
  1075. package/dist-cms/packages/media/media/components/input-upload-field/utils.js +4 -0
  1076. package/dist-cms/packages/media/media/constants.d.ts +0 -1
  1077. package/dist-cms/packages/media/media/constants.js +0 -1
  1078. package/dist-cms/packages/media/media/dropzone/dropzone-media.element.d.ts +42 -0
  1079. package/dist-cms/packages/media/media/dropzone/dropzone-media.element.js +127 -0
  1080. package/dist-cms/packages/media/media/dropzone/dropzone.element.d.ts +7 -32
  1081. package/dist-cms/packages/media/media/dropzone/dropzone.element.js +16 -158
  1082. package/dist-cms/packages/media/media/dropzone/index.d.ts +1 -2
  1083. package/dist-cms/packages/media/media/dropzone/index.js +1 -2
  1084. package/dist-cms/packages/media/media/entity-actions/create/media-create-options-modal.element.js +3 -3
  1085. package/dist-cms/packages/media/media/entity-actions/manifests.js +1 -1
  1086. package/dist-cms/packages/media/media/index.d.ts +4 -0
  1087. package/dist-cms/packages/media/media/index.js +4 -0
  1088. package/dist-cms/packages/media/media/manifests.js +0 -2
  1089. package/dist-cms/packages/media/media/modals/media-picker/components/media-picker-create-item.element.js +1 -1
  1090. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +20 -6
  1091. package/dist-cms/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.d.ts +1 -1
  1092. package/dist-cms/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.js +2 -2
  1093. package/dist-cms/packages/media/media/property-editors/image-crops/property-editor-ui-image-crops.element.js +14 -6
  1094. package/dist-cms/packages/media/media/property-editors/media-entity-picker/property-editor-ui-media-entity-picker.element.js +2 -2
  1095. package/dist-cms/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.js +2 -2
  1096. package/dist-cms/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.d.ts +1 -1
  1097. package/dist-cms/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.js +2 -2
  1098. package/dist-cms/packages/media/media/recycle-bin/entity-action/manifests.js +6 -0
  1099. package/dist-cms/packages/media/media/reference/info-app/manifests.js +5 -2
  1100. package/dist-cms/packages/media/media/reference/repository/media-reference-response.management-api.mapping.js +1 -0
  1101. package/dist-cms/packages/media/media/reference/repository/types.d.ts +6 -2
  1102. package/dist-cms/packages/media/media/types.d.ts +0 -1
  1103. package/dist-cms/packages/media/media-types/constants.d.ts +1 -0
  1104. package/dist-cms/packages/media/media-types/constants.js +1 -0
  1105. package/dist-cms/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.d.ts +0 -1
  1106. package/dist-cms/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.js +21 -22
  1107. package/dist-cms/packages/media/media-types/manifests.js +6 -4
  1108. package/dist-cms/packages/media/media-types/property-editors/media-type-picker/manifests.js +0 -10
  1109. package/dist-cms/packages/media/media-types/property-editors/media-type-picker/property-editor-ui-media-type-picker.element.js +2 -2
  1110. package/dist-cms/packages/media/media-types/property-type/constants.d.ts +1 -0
  1111. package/dist-cms/packages/media/media-types/property-type/constants.js +1 -0
  1112. package/dist-cms/packages/media/media-types/property-type/entity.d.ts +2 -0
  1113. package/dist-cms/packages/media/media-types/property-type/entity.js +1 -0
  1114. package/dist-cms/packages/media/media-types/property-type/manifests.d.ts +1 -0
  1115. package/dist-cms/packages/media/media-types/property-type/manifests.js +19 -0
  1116. package/dist-cms/packages/media/media-types/property-type/media-type-property-type-item-ref.element.d.ts +18 -0
  1117. package/dist-cms/packages/media/media-types/property-type/media-type-property-type-item-ref.element.js +79 -0
  1118. package/dist-cms/packages/media/media-types/property-type/media-type-property-type-reference-response.management-api.mapping.d.ts +8 -0
  1119. package/dist-cms/packages/media/media-types/property-type/media-type-property-type-reference-response.management-api.mapping.js +19 -0
  1120. package/dist-cms/packages/media/media-types/property-type/types.d.ts +11 -0
  1121. package/dist-cms/packages/media/media-types/property-type/types.js +1 -0
  1122. package/dist-cms/packages/media/media-types/repository/structure/media-type-structure.server.data-source.js +5 -2
  1123. package/dist-cms/packages/media/media-types/workspace/media-type-workspace-editor.element.d.ts +0 -9
  1124. package/dist-cms/packages/media/media-types/workspace/media-type-workspace-editor.element.js +3 -123
  1125. package/dist-cms/packages/media/vite.config.js +1 -0
  1126. package/dist-cms/packages/members/member/constants.d.ts +1 -0
  1127. package/dist-cms/packages/members/member/constants.js +1 -0
  1128. package/dist-cms/packages/members/member/entity-actions/manifests.js +4 -2
  1129. package/dist-cms/packages/members/member/item/repository/types.d.ts +9 -1
  1130. package/dist-cms/packages/members/member/manifests.js +2 -0
  1131. package/dist-cms/packages/members/member/property-editor/member-picker/property-editor-ui-member-picker.element.js +2 -2
  1132. package/dist-cms/packages/members/member/reference/constants.d.ts +1 -0
  1133. package/dist-cms/packages/members/member/reference/constants.js +1 -0
  1134. package/dist-cms/packages/members/member/reference/index.d.ts +1 -0
  1135. package/dist-cms/packages/members/member/reference/index.js +1 -0
  1136. package/dist-cms/packages/members/member/reference/info-app/manifests.d.ts +1 -0
  1137. package/dist-cms/packages/members/member/reference/info-app/manifests.js +20 -0
  1138. package/dist-cms/packages/members/member/reference/manifests.d.ts +1 -0
  1139. package/dist-cms/packages/members/member/reference/manifests.js +3 -0
  1140. package/dist-cms/packages/members/member/reference/repository/constants.d.ts +1 -0
  1141. package/dist-cms/packages/members/member/reference/repository/constants.js +1 -0
  1142. package/dist-cms/packages/members/member/reference/repository/index.d.ts +1 -0
  1143. package/dist-cms/packages/members/member/reference/repository/index.js +1 -0
  1144. package/dist-cms/packages/members/member/reference/repository/manifests.d.ts +1 -0
  1145. package/dist-cms/packages/members/member/reference/repository/manifests.js +18 -0
  1146. package/dist-cms/packages/members/member/reference/repository/member-reference-response.management-api.mapping.d.ts +8 -0
  1147. package/dist-cms/packages/members/member/reference/repository/member-reference-response.management-api.mapping.js +25 -0
  1148. package/dist-cms/packages/members/member/reference/repository/member-reference.repository.d.ts +13 -0
  1149. package/dist-cms/packages/members/member/reference/repository/member-reference.repository.js +25 -0
  1150. package/dist-cms/packages/members/member/reference/repository/member-reference.server.data.d.ts +38 -0
  1151. package/dist-cms/packages/members/member/reference/repository/member-reference.server.data.js +83 -0
  1152. package/dist-cms/packages/members/member/reference/repository/types.d.ts +17 -0
  1153. package/dist-cms/packages/members/member/reference/repository/types.js +1 -0
  1154. package/dist-cms/packages/members/member/repository/member-repository-base.d.ts +1 -1
  1155. package/dist-cms/packages/members/member/repository/member-repository-base.js +1 -1
  1156. package/dist-cms/packages/members/member/workspace/member/views/member/member-workspace-view-member-info.element.js +2 -2
  1157. package/dist-cms/packages/members/member/workspace/member/views/member/member-workspace-view-member.element.d.ts +1 -0
  1158. package/dist-cms/packages/members/member/workspace/member/views/member/member-workspace-view-member.element.js +34 -16
  1159. package/dist-cms/packages/members/member-group/components/input-member-group/input-member-group.element.d.ts +0 -1
  1160. package/dist-cms/packages/members/member-group/components/input-member-group/input-member-group.element.js +0 -3
  1161. package/dist-cms/packages/members/member-group/property-editor/member-group-picker/property-editor-ui-member-group-picker.element.js +2 -3
  1162. package/dist-cms/packages/members/member-type/constants.d.ts +2 -1
  1163. package/dist-cms/packages/members/member-type/constants.js +2 -1
  1164. package/dist-cms/packages/members/member-type/manifests.js +2 -0
  1165. package/dist-cms/packages/members/member-type/property-type/constants.d.ts +1 -0
  1166. package/dist-cms/packages/members/member-type/property-type/constants.js +1 -0
  1167. package/dist-cms/packages/members/member-type/property-type/entity.d.ts +2 -0
  1168. package/dist-cms/packages/members/member-type/property-type/entity.js +1 -0
  1169. package/dist-cms/packages/members/member-type/property-type/manifests.d.ts +1 -0
  1170. package/dist-cms/packages/members/member-type/property-type/manifests.js +19 -0
  1171. package/dist-cms/packages/members/member-type/property-type/member-type-property-type-item-ref.element.d.ts +18 -0
  1172. package/dist-cms/packages/members/member-type/property-type/member-type-property-type-item-ref.element.js +79 -0
  1173. package/dist-cms/packages/members/member-type/property-type/member-type-property-type-reference-response.management-api.mapping.d.ts +8 -0
  1174. package/dist-cms/packages/members/member-type/property-type/member-type-property-type-reference-response.management-api.mapping.js +19 -0
  1175. package/dist-cms/packages/members/member-type/property-type/types.d.ts +11 -0
  1176. package/dist-cms/packages/members/member-type/property-type/types.js +1 -0
  1177. package/dist-cms/packages/members/member-type/workspace/member-type-workspace-editor.element.d.ts +0 -8
  1178. package/dist-cms/packages/members/member-type/workspace/member-type-workspace-editor.element.js +3 -131
  1179. package/dist-cms/packages/models-builder/models-builder-dashboard.element.js +9 -17
  1180. package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.d.ts +1 -1
  1181. package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.js +1 -2
  1182. package/dist-cms/packages/multi-url-picker/property-editor/property-editor-ui-multi-url-picker.element.js +2 -2
  1183. package/dist-cms/packages/property-editors/accepted-types/property-editor-ui-accepted-upload-types.element.d.ts +0 -5
  1184. package/dist-cms/packages/property-editors/accepted-types/property-editor-ui-accepted-upload-types.element.js +4 -44
  1185. package/dist-cms/packages/property-editors/checkbox-list/components/input-checkbox-list/input-checkbox-list.element.d.ts +8 -2
  1186. package/dist-cms/packages/property-editors/checkbox-list/components/input-checkbox-list/input-checkbox-list.element.js +30 -24
  1187. package/dist-cms/packages/property-editors/checkbox-list/property-editor-ui-checkbox-list.element.d.ts +9 -1
  1188. package/dist-cms/packages/property-editors/checkbox-list/property-editor-ui-checkbox-list.element.js +19 -5
  1189. package/dist-cms/packages/property-editors/collection/config/bulk-action-permissions/permissions.element.js +2 -2
  1190. package/dist-cms/packages/property-editors/collection/config/column/column-configuration.element.js +15 -7
  1191. package/dist-cms/packages/property-editors/collection/config/column/components/input-collection-content-type-property.element.d.ts +1 -1
  1192. package/dist-cms/packages/property-editors/collection/config/layout/layout-configuration.element.js +15 -7
  1193. package/dist-cms/packages/property-editors/collection/config/order-by/order-by.element.js +2 -2
  1194. package/dist-cms/packages/property-editors/color-picker/property-editor-ui-color-picker.element.js +2 -2
  1195. package/dist-cms/packages/property-editors/color-swatches-editor/property-editor-ui-color-swatches-editor.element.js +2 -2
  1196. package/dist-cms/packages/property-editors/content-picker/components/input-content/input-content.element.d.ts +1 -3
  1197. package/dist-cms/packages/property-editors/content-picker/components/input-content/input-content.element.js +3 -10
  1198. package/dist-cms/packages/property-editors/content-picker/config/source-content/input-content-picker-source.element.d.ts +1 -1
  1199. package/dist-cms/packages/property-editors/content-picker/config/source-content/property-editor-ui-content-picker-source.element.d.ts +1 -1
  1200. package/dist-cms/packages/property-editors/content-picker/config/source-content/property-editor-ui-content-picker-source.element.js +2 -2
  1201. package/dist-cms/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.js +2 -2
  1202. package/dist-cms/packages/property-editors/content-picker/manifests.js +0 -6
  1203. package/dist-cms/packages/property-editors/content-picker/property-editor-ui-content-picker.element.d.ts +11 -12
  1204. package/dist-cms/packages/property-editors/content-picker/property-editor-ui-content-picker.element.js +70 -11
  1205. package/dist-cms/packages/property-editors/date-picker/property-editor-ui-date-picker.element.js +2 -2
  1206. package/dist-cms/packages/property-editors/dropdown/property-editor-ui-dropdown.element.d.ts +12 -3
  1207. package/dist-cms/packages/property-editors/dropdown/property-editor-ui-dropdown.element.js +47 -18
  1208. package/dist-cms/packages/property-editors/eye-dropper/property-editor-ui-eye-dropper.element.js +2 -2
  1209. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.js +4 -5
  1210. package/dist-cms/packages/property-editors/multiple-text-string/property-editor-ui-multiple-text-string.element.js +2 -2
  1211. package/dist-cms/packages/property-editors/number/property-editor-ui-number.element.js +2 -2
  1212. package/dist-cms/packages/property-editors/number-range/property-editor-ui-number-range.element.js +2 -2
  1213. package/dist-cms/packages/property-editors/order-direction/property-editor-ui-order-direction.element.js +2 -2
  1214. package/dist-cms/packages/property-editors/overlay-size/property-editor-ui-overlay-size.element.d.ts +1 -1
  1215. package/dist-cms/packages/property-editors/overlay-size/property-editor-ui-overlay-size.element.js +2 -2
  1216. package/dist-cms/packages/property-editors/radio-button-list/property-editor-ui-radio-button-list.element.d.ts +10 -3
  1217. package/dist-cms/packages/property-editors/radio-button-list/property-editor-ui-radio-button-list.element.js +21 -11
  1218. package/dist-cms/packages/property-editors/select/property-editor-ui-select.element.js +2 -2
  1219. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +2 -2
  1220. package/dist-cms/packages/property-editors/text-box/property-editor-ui-text-box.element.d.ts +1 -1
  1221. package/dist-cms/packages/property-editors/text-box/property-editor-ui-text-box.element.js +2 -2
  1222. package/dist-cms/packages/property-editors/textarea/manifests.js +0 -14
  1223. package/dist-cms/packages/property-editors/textarea/property-editor-ui-textarea.element.d.ts +0 -2
  1224. package/dist-cms/packages/property-editors/textarea/property-editor-ui-textarea.element.js +8 -15
  1225. package/dist-cms/packages/property-editors/toggle/property-editor-ui-toggle.element.js +2 -2
  1226. package/dist-cms/packages/property-editors/value-type/property-editor-ui-value-type.element.d.ts +1 -1
  1227. package/dist-cms/packages/property-editors/value-type/property-editor-ui-value-type.element.js +2 -2
  1228. package/dist-cms/packages/publish-cache/dashboard-published-status.element.d.ts +2 -0
  1229. package/dist-cms/packages/publish-cache/dashboard-published-status.element.js +19 -1
  1230. package/dist-cms/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.d.ts +2 -2
  1231. package/dist-cms/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.js +0 -2
  1232. package/dist-cms/packages/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.d.ts +2 -2
  1233. package/dist-cms/packages/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.js +0 -2
  1234. package/dist-cms/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.d.ts +2 -2
  1235. package/dist-cms/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.js +0 -1
  1236. package/dist-cms/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.d.ts +2 -2
  1237. package/dist-cms/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.js +0 -2
  1238. package/dist-cms/packages/relations/relations/{entity-actions/local-components/confirm-action-entity-references.element.d.ts → global-components/confirm-action-modal-entity-references.element.d.ts} +11 -10
  1239. package/dist-cms/packages/relations/relations/{entity-actions/local-components/confirm-action-entity-references.element.js → global-components/confirm-action-modal-entity-references.element.js} +13 -5
  1240. package/dist-cms/packages/relations/relations/{entity-actions/local-components/confirm-bulk-action-entity-references.element.d.ts → global-components/confirm-bulk-action-modal-entity-references.element.d.ts} +7 -3
  1241. package/dist-cms/packages/relations/relations/{entity-actions/local-components/confirm-bulk-action-entity-references.element.js → global-components/confirm-bulk-action-modal-entity-references.element.js} +4 -5
  1242. package/dist-cms/packages/relations/relations/global-components/index.d.ts +4 -0
  1243. package/dist-cms/packages/relations/relations/global-components/index.js +4 -0
  1244. package/dist-cms/packages/relations/relations/global-components/types.d.ts +2 -0
  1245. package/dist-cms/packages/relations/relations/global-components/types.js +1 -0
  1246. package/dist-cms/packages/relations/relations/index.d.ts +2 -1
  1247. package/dist-cms/packages/relations/relations/index.js +2 -1
  1248. package/dist-cms/packages/relations/relations/manifests.js +2 -0
  1249. package/dist-cms/packages/relations/relations/reference/types.d.ts +2 -2
  1250. package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.d.ts +21 -0
  1251. package/dist-cms/packages/{documents/documents/reference/info-app/document-references-workspace-view-info.element.js → relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.js} +50 -34
  1252. package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.kind.d.ts +2 -0
  1253. package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.kind.js +12 -0
  1254. package/dist-cms/packages/relations/relations/reference/workspace-info-app/manifests.d.ts +2 -0
  1255. package/dist-cms/packages/relations/relations/reference/workspace-info-app/manifests.js +2 -0
  1256. package/dist-cms/packages/relations/relations/reference/workspace-info-app/types.d.ts +13 -0
  1257. package/dist-cms/packages/relations/relations/reference/workspace-info-app/types.js +1 -0
  1258. package/dist-cms/packages/relations/relations/types.d.ts +1 -0
  1259. package/dist-cms/packages/relations/relations/utils.d.ts +6 -1
  1260. package/dist-cms/packages/relations/relations/utils.js +7 -0
  1261. package/dist-cms/packages/rte/components/rte-base.element.js +34 -10
  1262. package/dist-cms/packages/rte/manifests.js +4 -2
  1263. package/dist-cms/packages/rte/validation/manifests.d.ts +1 -0
  1264. package/dist-cms/packages/rte/validation/manifests.js +10 -0
  1265. package/dist-cms/packages/rte/validation/rte-validation-property-path-translator.api.d.ts +7 -0
  1266. package/dist-cms/packages/rte/validation/rte-validation-property-path-translator.api.js +14 -0
  1267. package/dist-cms/packages/settings/welcome/settings-welcome-dashboard.element.js +6 -6
  1268. package/dist-cms/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.d.ts +1 -1
  1269. package/dist-cms/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.js +2 -2
  1270. package/dist-cms/packages/tags/components/tags-input/tags-input.element.d.ts +1 -1
  1271. package/dist-cms/packages/tags/property-editors/tags/Umbraco.Tags.js +2 -2
  1272. package/dist-cms/packages/tags/property-editors/tags/property-editor-ui-tags.element.d.ts +1 -1
  1273. package/dist-cms/packages/tags/property-editors/tags/property-editor-ui-tags.element.js +2 -2
  1274. package/dist-cms/packages/telemetry/dashboard-telemetry.element.js +4 -6
  1275. package/dist-cms/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.element.d.ts +1 -1
  1276. package/dist-cms/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.element.js +4 -3
  1277. package/dist-cms/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-input.element.d.ts +1 -1
  1278. package/dist-cms/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-input.element.js +5 -4
  1279. package/dist-cms/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.js +1 -1
  1280. package/dist-cms/packages/templating/stylesheets/manifests.js +2 -0
  1281. package/dist-cms/packages/templating/stylesheets/property-editors/manifests.d.ts +1 -0
  1282. package/dist-cms/packages/templating/stylesheets/property-editors/manifests.js +2 -0
  1283. package/dist-cms/packages/templating/stylesheets/property-editors/stylesheet-picker/manifests.d.ts +2 -0
  1284. package/dist-cms/packages/templating/stylesheets/property-editors/stylesheet-picker/manifests.js +11 -0
  1285. package/dist-cms/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.element.d.ts +15 -0
  1286. package/dist-cms/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.element.js +43 -0
  1287. package/dist-cms/packages/templating/templates/global-components/input-template/input-template.element.d.ts +1 -1
  1288. package/dist-cms/packages/templating/templates/global-components/input-template/input-template.element.js +2 -2
  1289. package/dist-cms/packages/templating/templates/global-components/template-card/template-card.element.d.ts +1 -1
  1290. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder-modal.element.js +12 -18
  1291. package/dist-cms/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.d.ts +1 -1
  1292. package/dist-cms/packages/tiny-mce/plugins/tinymce-plugin.extension.d.ts +3 -2
  1293. package/dist-cms/packages/tiny-mce/property-editors/block/property-editor-ui-block-rte-type-configuration.element.js +2 -2
  1294. package/dist-cms/packages/tiny-mce/property-editors/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.js +3 -3
  1295. package/dist-cms/packages/tiny-mce/property-editors/max-image-size/property-editor-ui-tiny-mce-maximagesize.element.js +2 -2
  1296. package/dist-cms/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.d.ts +1 -0
  1297. package/dist-cms/packages/tiny-mce/property-editors/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.js +11 -2
  1298. package/dist-cms/packages/tiny-mce/property-editors/tiny-mce/manifests.js +1 -1
  1299. package/dist-cms/packages/tiny-mce/property-editors/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.js +2 -2
  1300. package/dist-cms/packages/tiptap/components/anchor-modal/anchor-modal.element.d.ts +13 -0
  1301. package/dist-cms/packages/tiptap/components/anchor-modal/anchor-modal.element.js +77 -0
  1302. package/dist-cms/packages/tiptap/components/anchor-modal/anchor-modal.token.d.ts +6 -0
  1303. package/dist-cms/packages/tiptap/components/anchor-modal/anchor-modal.token.js +5 -0
  1304. package/dist-cms/packages/tiptap/components/anchor-modal/constants.d.ts +1 -0
  1305. package/dist-cms/packages/tiptap/components/anchor-modal/constants.js +1 -0
  1306. package/dist-cms/packages/tiptap/components/anchor-modal/index.d.ts +1 -0
  1307. package/dist-cms/packages/tiptap/components/anchor-modal/index.js +1 -0
  1308. package/dist-cms/packages/tiptap/components/anchor-modal/manifests.d.ts +2 -0
  1309. package/dist-cms/packages/tiptap/components/anchor-modal/manifests.js +9 -0
  1310. package/dist-cms/packages/tiptap/components/cascading-menu-popover/cascading-menu-popover.element.d.ts +3 -3
  1311. package/dist-cms/packages/tiptap/components/cascading-menu-popover/cascading-menu-popover.element.js +23 -20
  1312. package/dist-cms/packages/tiptap/components/character-map/character-map-modal.element.d.ts +16 -0
  1313. package/dist-cms/packages/tiptap/components/character-map/character-map-modal.element.js +466 -0
  1314. package/dist-cms/packages/tiptap/components/character-map/character-map-modal.token.d.ts +4 -0
  1315. package/dist-cms/packages/tiptap/components/character-map/character-map-modal.token.js +5 -0
  1316. package/dist-cms/packages/tiptap/components/character-map/constants.d.ts +1 -0
  1317. package/dist-cms/packages/tiptap/components/character-map/constants.js +1 -0
  1318. package/dist-cms/packages/tiptap/components/character-map/index.d.ts +1 -0
  1319. package/dist-cms/packages/tiptap/components/character-map/index.js +1 -0
  1320. package/dist-cms/packages/tiptap/components/character-map/manifests.d.ts +2 -0
  1321. package/dist-cms/packages/tiptap/components/character-map/manifests.js +9 -0
  1322. package/dist-cms/packages/tiptap/components/index.d.ts +2 -0
  1323. package/dist-cms/packages/tiptap/components/index.js +2 -0
  1324. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +3 -2
  1325. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.js +61 -56
  1326. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-statusbar.element.d.ts +23 -0
  1327. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-statusbar.element.js +115 -0
  1328. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +2 -1
  1329. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.js +12 -9
  1330. package/dist-cms/packages/tiptap/components/manifests.d.ts +1 -0
  1331. package/dist-cms/packages/tiptap/components/manifests.js +3 -0
  1332. package/dist-cms/packages/tiptap/components/toolbar/style-menu.tiptap-toolbar-api.d.ts +7 -0
  1333. package/dist-cms/packages/tiptap/components/toolbar/style-menu.tiptap-toolbar-api.js +31 -0
  1334. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-button-disabled.element.js +6 -5
  1335. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-button.element.js +4 -3
  1336. package/dist-cms/packages/tiptap/{extensions/toolbar/font-family-tiptap-toolbar.element.d.ts → components/toolbar/tiptap-toolbar-color-picker-button.element.d.ts} +4 -4
  1337. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-color-picker-button.element.js +74 -0
  1338. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-menu.element.d.ts +23 -0
  1339. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-menu.element.js +142 -0
  1340. package/dist-cms/packages/tiptap/components/types.d.ts +1 -0
  1341. package/dist-cms/packages/tiptap/constants.d.ts +3 -0
  1342. package/dist-cms/packages/tiptap/constants.js +3 -0
  1343. package/dist-cms/packages/tiptap/extensions/core/rich-text-essentials.tiptap-api.d.ts +2 -2
  1344. package/dist-cms/packages/tiptap/extensions/core/rich-text-essentials.tiptap-api.js +55 -5
  1345. package/dist-cms/packages/tiptap/extensions/core/text-indent.tiptap-api.d.ts +4 -0
  1346. package/dist-cms/packages/tiptap/extensions/core/text-indent.tiptap-api.js +12 -0
  1347. package/dist-cms/packages/tiptap/extensions/core/word-count.tiptap-api.d.ts +5 -0
  1348. package/dist-cms/packages/tiptap/extensions/core/word-count.tiptap-api.js +10 -0
  1349. package/dist-cms/packages/tiptap/extensions/index.d.ts +1 -0
  1350. package/dist-cms/packages/tiptap/extensions/index.js +1 -0
  1351. package/dist-cms/packages/tiptap/extensions/manifests.d.ts +1 -3
  1352. package/dist-cms/packages/tiptap/extensions/manifests.js +152 -6
  1353. package/dist-cms/packages/tiptap/extensions/statusbar/element-path.tiptap-statusbar-element.d.ts +18 -0
  1354. package/dist-cms/packages/tiptap/extensions/statusbar/element-path.tiptap-statusbar-element.js +74 -0
  1355. package/dist-cms/packages/tiptap/extensions/statusbar/manifests.d.ts +1 -0
  1356. package/dist-cms/packages/tiptap/extensions/statusbar/manifests.js +25 -0
  1357. package/dist-cms/packages/tiptap/extensions/statusbar/word-count.tiptap-statusbar-element.d.ts +18 -0
  1358. package/dist-cms/packages/tiptap/extensions/statusbar/word-count.tiptap-statusbar-element.js +56 -0
  1359. package/dist-cms/packages/tiptap/extensions/style-select/manifests.d.ts +1 -2
  1360. package/dist-cms/packages/tiptap/extensions/style-select/manifests.js +42 -1
  1361. package/dist-cms/packages/tiptap/extensions/style-select/style-select.tiptap-toolbar-api.d.ts +4 -0
  1362. package/dist-cms/packages/tiptap/extensions/style-select/style-select.tiptap-toolbar-api.js +4 -0
  1363. package/dist-cms/packages/tiptap/extensions/table/components/constants.d.ts +1 -0
  1364. package/dist-cms/packages/tiptap/extensions/table/components/constants.js +1 -0
  1365. package/dist-cms/packages/tiptap/extensions/table/components/table-column-menu.element.d.ts +14 -0
  1366. package/dist-cms/packages/tiptap/extensions/table/components/table-column-menu.element.js +48 -0
  1367. package/dist-cms/packages/tiptap/extensions/table/components/table-insert.element.js +1 -1
  1368. package/dist-cms/packages/tiptap/extensions/table/components/table-properties-modal.element.d.ts +14 -0
  1369. package/dist-cms/packages/tiptap/extensions/table/components/table-properties-modal.element.js +123 -0
  1370. package/dist-cms/packages/tiptap/extensions/table/components/table-properties-modal.token.d.ts +5 -0
  1371. package/dist-cms/packages/tiptap/extensions/table/components/table-properties-modal.token.js +5 -0
  1372. package/dist-cms/packages/tiptap/extensions/table/components/table-row-menu.element.d.ts +14 -0
  1373. package/dist-cms/packages/tiptap/extensions/table/components/table-row-menu.element.js +48 -0
  1374. package/dist-cms/packages/tiptap/extensions/table/components/table-toolbar-menu.element.d.ts +11 -0
  1375. package/dist-cms/packages/tiptap/extensions/table/components/table-toolbar-menu.element.js +36 -0
  1376. package/dist-cms/packages/tiptap/extensions/table/index.d.ts +1 -0
  1377. package/dist-cms/packages/tiptap/extensions/table/index.js +1 -0
  1378. package/dist-cms/packages/tiptap/extensions/table/manifests.d.ts +1 -2
  1379. package/dist-cms/packages/tiptap/extensions/table/manifests.js +45 -2
  1380. package/dist-cms/packages/tiptap/extensions/table/table.tiptap-api.d.ts +2 -0
  1381. package/dist-cms/packages/tiptap/extensions/table/table.tiptap-api.js +3 -3
  1382. package/dist-cms/packages/tiptap/extensions/table/table.tiptap-toolbar-api.d.ts +3 -3
  1383. package/dist-cms/packages/tiptap/extensions/table/table.tiptap-toolbar-api.js +128 -107
  1384. package/dist-cms/packages/tiptap/extensions/tiptap-statusbar.extension.d.ts +17 -0
  1385. package/dist-cms/packages/tiptap/extensions/tiptap-statusbar.extension.js +1 -0
  1386. package/dist-cms/packages/tiptap/extensions/tiptap-toolbar.extension.d.ts +42 -2
  1387. package/dist-cms/packages/tiptap/extensions/toolbar/anchor.tiptap-toolbar-api.d.ts +5 -0
  1388. package/dist-cms/packages/tiptap/extensions/toolbar/anchor.tiptap-toolbar-api.js +22 -0
  1389. package/dist-cms/packages/tiptap/extensions/toolbar/character-map.tiptap-toolbar-api.d.ts +5 -0
  1390. package/dist-cms/packages/tiptap/extensions/toolbar/character-map.tiptap-toolbar-api.js +17 -0
  1391. package/dist-cms/packages/tiptap/extensions/toolbar/embedded-media.tiptap-toolbar-api.d.ts +0 -1
  1392. package/dist-cms/packages/tiptap/extensions/toolbar/embedded-media.tiptap-toolbar-api.js +0 -4
  1393. package/dist-cms/packages/tiptap/extensions/toolbar/font-family.tiptap-toolbar-api.d.ts +6 -0
  1394. package/dist-cms/packages/tiptap/extensions/toolbar/font-family.tiptap-toolbar-api.js +8 -0
  1395. package/dist-cms/packages/tiptap/extensions/toolbar/font-size.tiptap-toolbar-api.d.ts +6 -0
  1396. package/dist-cms/packages/tiptap/extensions/toolbar/font-size.tiptap-toolbar-api.js +8 -0
  1397. package/dist-cms/packages/tiptap/extensions/toolbar/text-align-center.tiptap-toolbar-api.js +6 -1
  1398. package/dist-cms/packages/tiptap/extensions/toolbar/text-align-justify.tiptap-toolbar-api.js +6 -1
  1399. package/dist-cms/packages/tiptap/extensions/toolbar/text-align-left.tiptap-toolbar-api.js +6 -1
  1400. package/dist-cms/packages/tiptap/extensions/toolbar/text-align-right.tiptap-toolbar-api.js +6 -1
  1401. package/dist-cms/packages/tiptap/extensions/toolbar/text-color-background.tiptap-toolbar-api.d.ts +5 -0
  1402. package/dist-cms/packages/tiptap/extensions/toolbar/text-color-background.tiptap-toolbar-api.js +6 -0
  1403. package/dist-cms/packages/tiptap/extensions/toolbar/text-color-foreground.tiptap-toolbar-api.d.ts +5 -0
  1404. package/dist-cms/packages/tiptap/extensions/toolbar/text-color-foreground.tiptap-toolbar-api.js +6 -0
  1405. package/dist-cms/packages/tiptap/extensions/toolbar/text-indent.tiptap-toolbar-api.d.ts +5 -0
  1406. package/dist-cms/packages/tiptap/extensions/toolbar/text-indent.tiptap-toolbar-api.js +6 -0
  1407. package/dist-cms/packages/tiptap/extensions/toolbar/text-outdent.tiptap-toolbar-api.d.ts +5 -0
  1408. package/dist-cms/packages/tiptap/extensions/toolbar/text-outdent.tiptap-toolbar-api.js +6 -0
  1409. package/dist-cms/packages/tiptap/extensions/types.d.ts +2 -1
  1410. package/dist-cms/packages/tiptap/manifests.js +6 -1
  1411. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +3 -2
  1412. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.d.ts +20 -0
  1413. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.js +363 -0
  1414. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +78 -46
  1415. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-statusbar-configuration.context.d.ts +21 -0
  1416. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-statusbar-configuration.context.js +128 -0
  1417. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.js +12 -9
  1418. package/dist-cms/packages/tiptap/property-editors/tiptap/manifests.js +36 -9
  1419. package/dist-cms/packages/tiptap/property-editors/tiptap/property-editor-ui-tiptap.element.js +1 -1
  1420. package/dist-cms/packages/tiptap/property-editors/tiptap/types.d.ts +12 -6
  1421. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -1
  1422. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.d.ts +1 -0
  1423. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.js +29 -29
  1424. package/dist-cms/packages/user/user/components/user-input/user-input.element.d.ts +1 -1
  1425. package/dist-cms/packages/user/user/property-editor/user-picker/property-editor-ui-user-picker.element.js +2 -2
  1426. package/dist-cms/packages/user/user/repository/detail/user-detail.server.data-source.js +1 -1
  1427. package/dist-cms/packages/user/user/utils/index.d.ts +1 -5
  1428. package/dist-cms/packages/user/user/utils/index.js +1 -4
  1429. package/dist-cms/packages/user/user/utils/user-kind.d.ts +5 -0
  1430. package/dist-cms/packages/user/user/utils/user-kind.js +4 -0
  1431. package/dist-cms/packages/user/user-group/components/input-user-group/user-group-input.element.d.ts +1 -1
  1432. package/dist-cms/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.d.ts +1 -0
  1433. package/dist-cms/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.js +5 -0
  1434. package/dist-cms/packages/user/user-permission/components/input-entity-user-permission/input-entity-user-permission.element.d.ts +1 -1
  1435. package/dist-cms/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.d.ts +2 -0
  1436. package/dist-cms/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.js +10 -0
  1437. package/dist-cms/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.token.d.ts +1 -0
  1438. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  1439. package/dist-cms/umbraco-package-schema.json +14078 -73088
  1440. package/dist-cms/umbraco-package.json +1 -1
  1441. package/dist-cms/vite-config-base.js +1 -0
  1442. package/dist-cms/vscode-html-custom-data.json +434 -151
  1443. package/examples/validation-context/validation-context-dashboard.ts +120 -109
  1444. package/examples/workspace-context-counter/counter-workspace-context.ts +8 -6
  1445. package/package.json +7 -5
  1446. package/dist-cms/json-schema/all-packages.d.ts +0 -117
  1447. package/dist-cms/json-schema/all-packages.js +0 -117
  1448. package/dist-cms/packages/block/block-grid/components/block-grid-area/index.d.ts +0 -1
  1449. package/dist-cms/packages/block/block-grid/components/block-grid-area/index.js +0 -1
  1450. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/index.d.ts +0 -1
  1451. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/index.js +0 -1
  1452. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/index.d.ts +0 -1
  1453. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/index.js +0 -1
  1454. package/dist-cms/packages/block/block-grid/components/block-grid-block/index.d.ts +0 -1
  1455. package/dist-cms/packages/block/block-grid/components/block-grid-block/index.js +0 -1
  1456. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/index.d.ts +0 -1
  1457. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/index.js +0 -1
  1458. package/dist-cms/packages/block/block-grid/components/block-grid-block-unsupported/index.d.ts +0 -1
  1459. package/dist-cms/packages/block/block-grid/components/block-grid-block-unsupported/index.js +0 -1
  1460. package/dist-cms/packages/block/block-grid/components/block-grid-entries/index.d.ts +0 -1
  1461. package/dist-cms/packages/block/block-grid/components/block-grid-entries/index.js +0 -1
  1462. package/dist-cms/packages/block/block-grid/components/block-grid-entry/index.d.ts +0 -1
  1463. package/dist-cms/packages/block/block-grid/components/block-grid-entry/index.js +0 -1
  1464. package/dist-cms/packages/block/block-grid/components/block-scale-handler/index.d.ts +0 -1
  1465. package/dist-cms/packages/block/block-grid/components/block-scale-handler/index.js +0 -1
  1466. package/dist-cms/packages/block/block-grid/components/ref-grid-block/index.d.ts +0 -1
  1467. package/dist-cms/packages/block/block-grid/components/ref-grid-block/index.js +0 -1
  1468. package/dist-cms/packages/block/block-grid/context/index.d.ts +0 -2
  1469. package/dist-cms/packages/block/block-grid/context/index.js +0 -2
  1470. package/dist-cms/packages/core/menu/components/menu/menu.context.d.ts +0 -9
  1471. package/dist-cms/packages/core/menu/components/menu/menu.context.js +0 -14
  1472. package/dist-cms/packages/core/router/components/router-slot/route.interface.d.ts +0 -1
  1473. package/dist-cms/packages/data-type/workspace/views/info/data-type-workspace-view-info-reference.element.d.ts +0 -18
  1474. package/dist-cms/packages/data-type/workspace/views/info/data-type-workspace-view-info-reference.element.js +0 -109
  1475. package/dist-cms/packages/documents/documents/reference/info-app/document-references-workspace-view-info.element.d.ts +0 -17
  1476. package/dist-cms/packages/media/media/dropzone/constants.d.ts +0 -1
  1477. package/dist-cms/packages/media/media/dropzone/constants.js +0 -1
  1478. package/dist-cms/packages/media/media/dropzone/manifests.d.ts +0 -1
  1479. package/dist-cms/packages/media/media/dropzone/manifests.js +0 -1
  1480. package/dist-cms/packages/media/media/reference/info-app/media-references-workspace-info-app.element.d.ts +0 -19
  1481. package/dist-cms/packages/media/media/reference/info-app/media-references-workspace-info-app.element.js +0 -135
  1482. package/dist-cms/packages/tiptap/extensions/style-select/style-select-tiptap-toolbar.element.d.ts +0 -17
  1483. package/dist-cms/packages/tiptap/extensions/style-select/style-select-tiptap-toolbar.element.js +0 -86
  1484. package/dist-cms/packages/tiptap/extensions/table/table-tiptap-toolbar-button.element.d.ts +0 -14
  1485. package/dist-cms/packages/tiptap/extensions/table/table-tiptap-toolbar-button.element.js +0 -44
  1486. package/dist-cms/packages/tiptap/extensions/toolbar/font-family-tiptap-toolbar.element.js +0 -81
  1487. package/dist-cms/packages/tiptap/extensions/toolbar/font-size-tiptap-toolbar.element.d.ts +0 -13
  1488. package/dist-cms/packages/tiptap/extensions/toolbar/font-size-tiptap-toolbar.element.js +0 -48
  1489. /package/dist-cms/{packages/core/router/components/router-slot/route.interface.js → monaco-editor/vs/base/common/paging.js} +0 -0
  1490. /package/dist-cms/packages/block/block-grid/{context → block-grid-manager}/block-grid-manager.context-token.d.ts +0 -0
  1491. /package/dist-cms/packages/block/block-grid/{context → block-grid-manager}/block-grid-manager.context-token.js +0 -0
  1492. /package/dist-cms/packages/{media/media/dropzone/modals → block/block-grid/validation}/manifests.d.ts +0 -0
  1493. /package/dist-cms/packages/core/router/{components → route}/not-found/route-not-found.element.d.ts +0 -0
  1494. /package/dist-cms/packages/media/{media/dropzone → dropzone}/dropzone-submitted.event.d.ts +0 -0
  1495. /package/dist-cms/packages/media/{media/dropzone → dropzone}/dropzone-submitted.event.js +0 -0
  1496. /package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/index.d.ts +0 -0
  1497. /package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/dropzone-media-type-picker/index.js +0 -0
  1498. /package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/index.d.ts +0 -0
  1499. /package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/index.js +0 -0
  1500. /package/dist-cms/packages/media/{media/dropzone → dropzone}/modals/manifests.js +0 -0
  1501. /package/dist-cms/packages/tiptap/components/toolbar/{default-tiptap-toolbar-element.api.d.ts → default-tiptap-toolbar-api.d.ts} +0 -0
  1502. /package/dist-cms/packages/tiptap/components/toolbar/{default-tiptap-toolbar-element.api.js → default-tiptap-toolbar-api.js} +0 -0
@@ -0,0 +1,2094 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { $, append, clearNode, createStyleSheet, getWindow, h, hasParentWithClass, asCssValueWithDefault, isKeyboardEvent, addDisposableListener } from '../../dom.js';
6
+ import { DomEmitter } from '../../event.js';
7
+ import { StandardKeyboardEvent } from '../../keyboardEvent.js';
8
+ import { ActionBar } from '../actionbar/actionbar.js';
9
+ import { FindInput } from '../findinput/findInput.js';
10
+ import { unthemedInboxStyles } from '../inputbox/inputBox.js';
11
+ import { ElementsDragAndDropData } from '../list/listView.js';
12
+ import { isActionItem, isButton, isInputElement, isMonacoCustomToggle, isMonacoEditor, isStickyScrollContainer, isStickyScrollElement, List, MouseController } from '../list/listWidget.js';
13
+ import { Toggle, unthemedToggleStyles } from '../toggle/toggle.js';
14
+ import { getVisibleState, isFilterResult } from './indexTreeModel.js';
15
+ import { TreeMouseEventTarget } from './tree.js';
16
+ import { Action } from '../../../common/actions.js';
17
+ import { distinct, equals, range } from '../../../common/arrays.js';
18
+ import { Delayer, disposableTimeout, timeout } from '../../../common/async.js';
19
+ import { Codicon } from '../../../common/codicons.js';
20
+ import { ThemeIcon } from '../../../common/themables.js';
21
+ import { SetMap } from '../../../common/map.js';
22
+ import { Emitter, Event, EventBufferer, Relay } from '../../../common/event.js';
23
+ import { fuzzyScore, FuzzyScore } from '../../../common/filters.js';
24
+ import { Disposable, DisposableStore, dispose, toDisposable } from '../../../common/lifecycle.js';
25
+ import { clamp } from '../../../common/numbers.js';
26
+ import { isNumber } from '../../../common/types.js';
27
+ import './media/tree.css';
28
+ import { localize } from '../../../../nls.js';
29
+ import { createInstantHoverDelegate, getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';
30
+ import { autorun, constObservable } from '../../../common/observable.js';
31
+ import { alert } from '../aria/aria.js';
32
+ class TreeElementsDragAndDropData extends ElementsDragAndDropData {
33
+ constructor(data) {
34
+ super(data.elements.map(node => node.element));
35
+ this.data = data;
36
+ }
37
+ }
38
+ function asTreeDragAndDropData(data) {
39
+ if (data instanceof ElementsDragAndDropData) {
40
+ return new TreeElementsDragAndDropData(data);
41
+ }
42
+ return data;
43
+ }
44
+ class TreeNodeListDragAndDrop {
45
+ constructor(modelProvider, dnd) {
46
+ this.modelProvider = modelProvider;
47
+ this.dnd = dnd;
48
+ this.autoExpandDisposable = Disposable.None;
49
+ this.disposables = new DisposableStore();
50
+ }
51
+ getDragURI(node) {
52
+ return this.dnd.getDragURI(node.element);
53
+ }
54
+ getDragLabel(nodes, originalEvent) {
55
+ if (this.dnd.getDragLabel) {
56
+ return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);
57
+ }
58
+ return undefined;
59
+ }
60
+ onDragStart(data, originalEvent) {
61
+ this.dnd.onDragStart?.(asTreeDragAndDropData(data), originalEvent);
62
+ }
63
+ onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {
64
+ const result = this.dnd.onDragOver(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);
65
+ const didChangeAutoExpandNode = this.autoExpandNode !== targetNode;
66
+ if (didChangeAutoExpandNode) {
67
+ this.autoExpandDisposable.dispose();
68
+ this.autoExpandNode = targetNode;
69
+ }
70
+ if (typeof targetNode === 'undefined') {
71
+ return result;
72
+ }
73
+ if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) {
74
+ this.autoExpandDisposable = disposableTimeout(() => {
75
+ const model = this.modelProvider();
76
+ const ref = model.getNodeLocation(targetNode);
77
+ if (model.isCollapsed(ref)) {
78
+ model.setCollapsed(ref, false);
79
+ }
80
+ this.autoExpandNode = undefined;
81
+ }, 500, this.disposables);
82
+ }
83
+ if (typeof result === 'boolean' || !result.accept || typeof result.bubble === 'undefined' || result.feedback) {
84
+ if (!raw) {
85
+ const accept = typeof result === 'boolean' ? result : result.accept;
86
+ const effect = typeof result === 'boolean' ? undefined : result.effect;
87
+ return { accept, effect, feedback: [targetIndex] };
88
+ }
89
+ return result;
90
+ }
91
+ if (result.bubble === 1 /* TreeDragOverBubble.Up */) {
92
+ const model = this.modelProvider();
93
+ const ref = model.getNodeLocation(targetNode);
94
+ const parentRef = model.getParentNodeLocation(ref);
95
+ const parentNode = model.getNode(parentRef);
96
+ const parentIndex = parentRef && model.getListIndex(parentRef);
97
+ return this.onDragOver(data, parentNode, parentIndex, targetSector, originalEvent, false);
98
+ }
99
+ const model = this.modelProvider();
100
+ const ref = model.getNodeLocation(targetNode);
101
+ const start = model.getListIndex(ref);
102
+ const length = model.getListRenderCount(ref);
103
+ return { ...result, feedback: range(start, start + length) };
104
+ }
105
+ drop(data, targetNode, targetIndex, targetSector, originalEvent) {
106
+ this.autoExpandDisposable.dispose();
107
+ this.autoExpandNode = undefined;
108
+ this.dnd.drop(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);
109
+ }
110
+ onDragEnd(originalEvent) {
111
+ this.dnd.onDragEnd?.(originalEvent);
112
+ }
113
+ dispose() {
114
+ this.disposables.dispose();
115
+ this.dnd.dispose();
116
+ }
117
+ }
118
+ function asListOptions(modelProvider, options) {
119
+ return options && {
120
+ ...options,
121
+ identityProvider: options.identityProvider && {
122
+ getId(el) {
123
+ return options.identityProvider.getId(el.element);
124
+ }
125
+ },
126
+ dnd: options.dnd && new TreeNodeListDragAndDrop(modelProvider, options.dnd),
127
+ multipleSelectionController: options.multipleSelectionController && {
128
+ isSelectionSingleChangeEvent(e) {
129
+ return options.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });
130
+ },
131
+ isSelectionRangeChangeEvent(e) {
132
+ return options.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });
133
+ }
134
+ },
135
+ accessibilityProvider: options.accessibilityProvider && {
136
+ ...options.accessibilityProvider,
137
+ getSetSize(node) {
138
+ const model = modelProvider();
139
+ const ref = model.getNodeLocation(node);
140
+ const parentRef = model.getParentNodeLocation(ref);
141
+ const parentNode = model.getNode(parentRef);
142
+ return parentNode.visibleChildrenCount;
143
+ },
144
+ getPosInSet(node) {
145
+ return node.visibleChildIndex + 1;
146
+ },
147
+ isChecked: options.accessibilityProvider && options.accessibilityProvider.isChecked ? (node) => {
148
+ return options.accessibilityProvider.isChecked(node.element);
149
+ } : undefined,
150
+ getRole: options.accessibilityProvider && options.accessibilityProvider.getRole ? (node) => {
151
+ return options.accessibilityProvider.getRole(node.element);
152
+ } : () => 'treeitem',
153
+ getAriaLabel(e) {
154
+ return options.accessibilityProvider.getAriaLabel(e.element);
155
+ },
156
+ getWidgetAriaLabel() {
157
+ return options.accessibilityProvider.getWidgetAriaLabel();
158
+ },
159
+ getWidgetRole: options.accessibilityProvider && options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree',
160
+ getAriaLevel: options.accessibilityProvider && options.accessibilityProvider.getAriaLevel ? (node) => options.accessibilityProvider.getAriaLevel(node.element) : (node) => {
161
+ return node.depth;
162
+ },
163
+ getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {
164
+ return options.accessibilityProvider.getActiveDescendantId(node.element);
165
+ })
166
+ },
167
+ keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {
168
+ ...options.keyboardNavigationLabelProvider,
169
+ getKeyboardNavigationLabel(node) {
170
+ return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(node.element);
171
+ }
172
+ }
173
+ };
174
+ }
175
+ export class ComposedTreeDelegate {
176
+ constructor(delegate) {
177
+ this.delegate = delegate;
178
+ }
179
+ getHeight(element) {
180
+ return this.delegate.getHeight(element.element);
181
+ }
182
+ getTemplateId(element) {
183
+ return this.delegate.getTemplateId(element.element);
184
+ }
185
+ hasDynamicHeight(element) {
186
+ return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(element.element);
187
+ }
188
+ setDynamicHeight(element, height) {
189
+ this.delegate.setDynamicHeight?.(element.element, height);
190
+ }
191
+ }
192
+ export var RenderIndentGuides;
193
+ (function (RenderIndentGuides) {
194
+ RenderIndentGuides["None"] = "none";
195
+ RenderIndentGuides["OnHover"] = "onHover";
196
+ RenderIndentGuides["Always"] = "always";
197
+ })(RenderIndentGuides || (RenderIndentGuides = {}));
198
+ class EventCollection {
199
+ get elements() {
200
+ return this._elements;
201
+ }
202
+ constructor(onDidChange, _elements = []) {
203
+ this._elements = _elements;
204
+ this.disposables = new DisposableStore();
205
+ this.onDidChange = Event.forEach(onDidChange, elements => this._elements = elements, this.disposables);
206
+ }
207
+ dispose() {
208
+ this.disposables.dispose();
209
+ }
210
+ }
211
+ export class TreeRenderer {
212
+ static { this.DefaultIndent = 8; }
213
+ constructor(renderer, modelProvider, onDidChangeCollapseState, activeNodes, renderedIndentGuides, options = {}) {
214
+ this.renderer = renderer;
215
+ this.modelProvider = modelProvider;
216
+ this.activeNodes = activeNodes;
217
+ this.renderedIndentGuides = renderedIndentGuides;
218
+ this.renderedElements = new Map();
219
+ this.renderedNodes = new Map();
220
+ this.indent = TreeRenderer.DefaultIndent;
221
+ this.hideTwistiesOfChildlessElements = false;
222
+ this.shouldRenderIndentGuides = false;
223
+ this.activeIndentNodes = new Set();
224
+ this.indentGuidesDisposable = Disposable.None;
225
+ this.disposables = new DisposableStore();
226
+ this.templateId = renderer.templateId;
227
+ this.updateOptions(options);
228
+ Event.map(onDidChangeCollapseState, e => e.node)(this.onDidChangeNodeTwistieState, this, this.disposables);
229
+ renderer.onDidChangeTwistieState?.(this.onDidChangeTwistieState, this, this.disposables);
230
+ }
231
+ updateOptions(options = {}) {
232
+ if (typeof options.indent !== 'undefined') {
233
+ const indent = clamp(options.indent, 0, 40);
234
+ if (indent !== this.indent) {
235
+ this.indent = indent;
236
+ for (const [node, templateData] of this.renderedNodes) {
237
+ this.renderTreeElement(node, templateData);
238
+ }
239
+ }
240
+ }
241
+ if (typeof options.renderIndentGuides !== 'undefined') {
242
+ const shouldRenderIndentGuides = options.renderIndentGuides !== RenderIndentGuides.None;
243
+ if (shouldRenderIndentGuides !== this.shouldRenderIndentGuides) {
244
+ this.shouldRenderIndentGuides = shouldRenderIndentGuides;
245
+ for (const [node, templateData] of this.renderedNodes) {
246
+ this._renderIndentGuides(node, templateData);
247
+ }
248
+ this.indentGuidesDisposable.dispose();
249
+ if (shouldRenderIndentGuides) {
250
+ const disposables = new DisposableStore();
251
+ this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, disposables);
252
+ this.indentGuidesDisposable = disposables;
253
+ this._onDidChangeActiveNodes(this.activeNodes.elements);
254
+ }
255
+ }
256
+ }
257
+ if (typeof options.hideTwistiesOfChildlessElements !== 'undefined') {
258
+ this.hideTwistiesOfChildlessElements = options.hideTwistiesOfChildlessElements;
259
+ }
260
+ }
261
+ renderTemplate(container) {
262
+ const el = append(container, $('.monaco-tl-row'));
263
+ const indent = append(el, $('.monaco-tl-indent'));
264
+ const twistie = append(el, $('.monaco-tl-twistie'));
265
+ const contents = append(el, $('.monaco-tl-contents'));
266
+ const templateData = this.renderer.renderTemplate(contents);
267
+ return { container, indent, twistie, indentGuidesDisposable: Disposable.None, templateData };
268
+ }
269
+ renderElement(node, index, templateData, height) {
270
+ this.renderedNodes.set(node, templateData);
271
+ this.renderedElements.set(node.element, node);
272
+ this.renderTreeElement(node, templateData);
273
+ this.renderer.renderElement(node, index, templateData.templateData, height);
274
+ }
275
+ disposeElement(node, index, templateData, height) {
276
+ templateData.indentGuidesDisposable.dispose();
277
+ this.renderer.disposeElement?.(node, index, templateData.templateData, height);
278
+ if (typeof height === 'number') {
279
+ this.renderedNodes.delete(node);
280
+ this.renderedElements.delete(node.element);
281
+ }
282
+ }
283
+ disposeTemplate(templateData) {
284
+ this.renderer.disposeTemplate(templateData.templateData);
285
+ }
286
+ onDidChangeTwistieState(element) {
287
+ const node = this.renderedElements.get(element);
288
+ if (!node) {
289
+ return;
290
+ }
291
+ this.onDidChangeNodeTwistieState(node);
292
+ }
293
+ onDidChangeNodeTwistieState(node) {
294
+ const templateData = this.renderedNodes.get(node);
295
+ if (!templateData) {
296
+ return;
297
+ }
298
+ this._onDidChangeActiveNodes(this.activeNodes.elements);
299
+ this.renderTreeElement(node, templateData);
300
+ }
301
+ renderTreeElement(node, templateData) {
302
+ const indent = TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;
303
+ templateData.twistie.style.paddingLeft = `${indent}px`;
304
+ templateData.indent.style.width = `${indent + this.indent - 16}px`;
305
+ if (node.collapsible) {
306
+ templateData.container.setAttribute('aria-expanded', String(!node.collapsed));
307
+ }
308
+ else {
309
+ templateData.container.removeAttribute('aria-expanded');
310
+ }
311
+ templateData.twistie.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));
312
+ let twistieRendered = false;
313
+ if (this.renderer.renderTwistie) {
314
+ twistieRendered = this.renderer.renderTwistie(node.element, templateData.twistie);
315
+ }
316
+ if (node.collapsible && (!this.hideTwistiesOfChildlessElements || node.visibleChildrenCount > 0)) {
317
+ if (!twistieRendered) {
318
+ templateData.twistie.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));
319
+ }
320
+ templateData.twistie.classList.add('collapsible');
321
+ templateData.twistie.classList.toggle('collapsed', node.collapsed);
322
+ }
323
+ else {
324
+ templateData.twistie.classList.remove('collapsible', 'collapsed');
325
+ }
326
+ this._renderIndentGuides(node, templateData);
327
+ }
328
+ _renderIndentGuides(node, templateData) {
329
+ clearNode(templateData.indent);
330
+ templateData.indentGuidesDisposable.dispose();
331
+ if (!this.shouldRenderIndentGuides) {
332
+ return;
333
+ }
334
+ const disposableStore = new DisposableStore();
335
+ const model = this.modelProvider();
336
+ while (true) {
337
+ const ref = model.getNodeLocation(node);
338
+ const parentRef = model.getParentNodeLocation(ref);
339
+ if (!parentRef) {
340
+ break;
341
+ }
342
+ const parent = model.getNode(parentRef);
343
+ const guide = $('.indent-guide', { style: `width: ${this.indent}px` });
344
+ if (this.activeIndentNodes.has(parent)) {
345
+ guide.classList.add('active');
346
+ }
347
+ if (templateData.indent.childElementCount === 0) {
348
+ templateData.indent.appendChild(guide);
349
+ }
350
+ else {
351
+ templateData.indent.insertBefore(guide, templateData.indent.firstElementChild);
352
+ }
353
+ this.renderedIndentGuides.add(parent, guide);
354
+ disposableStore.add(toDisposable(() => this.renderedIndentGuides.delete(parent, guide)));
355
+ node = parent;
356
+ }
357
+ templateData.indentGuidesDisposable = disposableStore;
358
+ }
359
+ _onDidChangeActiveNodes(nodes) {
360
+ if (!this.shouldRenderIndentGuides) {
361
+ return;
362
+ }
363
+ const set = new Set();
364
+ const model = this.modelProvider();
365
+ nodes.forEach(node => {
366
+ const ref = model.getNodeLocation(node);
367
+ try {
368
+ const parentRef = model.getParentNodeLocation(ref);
369
+ if (node.collapsible && node.children.length > 0 && !node.collapsed) {
370
+ set.add(node);
371
+ }
372
+ else if (parentRef) {
373
+ set.add(model.getNode(parentRef));
374
+ }
375
+ }
376
+ catch {
377
+ // noop
378
+ }
379
+ });
380
+ this.activeIndentNodes.forEach(node => {
381
+ if (!set.has(node)) {
382
+ this.renderedIndentGuides.forEach(node, line => line.classList.remove('active'));
383
+ }
384
+ });
385
+ set.forEach(node => {
386
+ if (!this.activeIndentNodes.has(node)) {
387
+ this.renderedIndentGuides.forEach(node, line => line.classList.add('active'));
388
+ }
389
+ });
390
+ this.activeIndentNodes = set;
391
+ }
392
+ dispose() {
393
+ this.renderedNodes.clear();
394
+ this.renderedElements.clear();
395
+ this.indentGuidesDisposable.dispose();
396
+ dispose(this.disposables);
397
+ }
398
+ }
399
+ class FindFilter {
400
+ get totalCount() { return this._totalCount; }
401
+ get matchCount() { return this._matchCount; }
402
+ constructor(tree, keyboardNavigationLabelProvider, _filter) {
403
+ this.tree = tree;
404
+ this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;
405
+ this._filter = _filter;
406
+ this._totalCount = 0;
407
+ this._matchCount = 0;
408
+ this._pattern = '';
409
+ this._lowercasePattern = '';
410
+ this.disposables = new DisposableStore();
411
+ tree.onWillRefilter(this.reset, this, this.disposables);
412
+ }
413
+ filter(element, parentVisibility) {
414
+ let visibility = 1 /* TreeVisibility.Visible */;
415
+ if (this._filter) {
416
+ const result = this._filter.filter(element, parentVisibility);
417
+ if (typeof result === 'boolean') {
418
+ visibility = result ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;
419
+ }
420
+ else if (isFilterResult(result)) {
421
+ visibility = getVisibleState(result.visibility);
422
+ }
423
+ else {
424
+ visibility = result;
425
+ }
426
+ if (visibility === 0 /* TreeVisibility.Hidden */) {
427
+ return false;
428
+ }
429
+ }
430
+ this._totalCount++;
431
+ if (!this._pattern) {
432
+ this._matchCount++;
433
+ return { data: FuzzyScore.Default, visibility };
434
+ }
435
+ const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(element);
436
+ const labels = Array.isArray(label) ? label : [label];
437
+ for (const l of labels) {
438
+ const labelStr = l && l.toString();
439
+ if (typeof labelStr === 'undefined') {
440
+ return { data: FuzzyScore.Default, visibility };
441
+ }
442
+ let score;
443
+ if (this.tree.findMatchType === TreeFindMatchType.Contiguous) {
444
+ const index = labelStr.toLowerCase().indexOf(this._lowercasePattern);
445
+ if (index > -1) {
446
+ score = [Number.MAX_SAFE_INTEGER, 0];
447
+ for (let i = this._lowercasePattern.length; i > 0; i--) {
448
+ score.push(index + i - 1);
449
+ }
450
+ }
451
+ }
452
+ else {
453
+ score = fuzzyScore(this._pattern, this._lowercasePattern, 0, labelStr, labelStr.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });
454
+ }
455
+ if (score) {
456
+ this._matchCount++;
457
+ return labels.length === 1 ?
458
+ { data: score, visibility } :
459
+ { data: { label: labelStr, score: score }, visibility };
460
+ }
461
+ }
462
+ if (this.tree.findMode === TreeFindMode.Filter) {
463
+ if (typeof this.tree.options.defaultFindVisibility === 'number') {
464
+ return this.tree.options.defaultFindVisibility;
465
+ }
466
+ else if (this.tree.options.defaultFindVisibility) {
467
+ return this.tree.options.defaultFindVisibility(element);
468
+ }
469
+ else {
470
+ return 2 /* TreeVisibility.Recurse */;
471
+ }
472
+ }
473
+ else {
474
+ return { data: FuzzyScore.Default, visibility };
475
+ }
476
+ }
477
+ reset() {
478
+ this._totalCount = 0;
479
+ this._matchCount = 0;
480
+ }
481
+ dispose() {
482
+ dispose(this.disposables);
483
+ }
484
+ }
485
+ export class ModeToggle extends Toggle {
486
+ constructor(opts) {
487
+ super({
488
+ icon: Codicon.listFilter,
489
+ title: localize('filter', "Filter"),
490
+ isChecked: opts.isChecked ?? false,
491
+ hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate('element'),
492
+ inputActiveOptionBorder: opts.inputActiveOptionBorder,
493
+ inputActiveOptionForeground: opts.inputActiveOptionForeground,
494
+ inputActiveOptionBackground: opts.inputActiveOptionBackground
495
+ });
496
+ }
497
+ }
498
+ export class FuzzyToggle extends Toggle {
499
+ constructor(opts) {
500
+ super({
501
+ icon: Codicon.searchFuzzy,
502
+ title: localize('fuzzySearch', "Fuzzy Match"),
503
+ isChecked: opts.isChecked ?? false,
504
+ hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate('element'),
505
+ inputActiveOptionBorder: opts.inputActiveOptionBorder,
506
+ inputActiveOptionForeground: opts.inputActiveOptionForeground,
507
+ inputActiveOptionBackground: opts.inputActiveOptionBackground
508
+ });
509
+ }
510
+ }
511
+ const unthemedFindWidgetStyles = {
512
+ inputBoxStyles: unthemedInboxStyles,
513
+ toggleStyles: unthemedToggleStyles,
514
+ listFilterWidgetBackground: undefined,
515
+ listFilterWidgetNoMatchesOutline: undefined,
516
+ listFilterWidgetOutline: undefined,
517
+ listFilterWidgetShadow: undefined
518
+ };
519
+ export var TreeFindMode;
520
+ (function (TreeFindMode) {
521
+ TreeFindMode[TreeFindMode["Highlight"] = 0] = "Highlight";
522
+ TreeFindMode[TreeFindMode["Filter"] = 1] = "Filter";
523
+ })(TreeFindMode || (TreeFindMode = {}));
524
+ export var TreeFindMatchType;
525
+ (function (TreeFindMatchType) {
526
+ TreeFindMatchType[TreeFindMatchType["Fuzzy"] = 0] = "Fuzzy";
527
+ TreeFindMatchType[TreeFindMatchType["Contiguous"] = 1] = "Contiguous";
528
+ })(TreeFindMatchType || (TreeFindMatchType = {}));
529
+ class FindWidget extends Disposable {
530
+ set mode(mode) {
531
+ this.modeToggle.checked = mode === TreeFindMode.Filter;
532
+ this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', "Type to filter") : localize('type to search', "Type to search"));
533
+ }
534
+ set matchType(matchType) {
535
+ this.matchTypeToggle.checked = matchType === TreeFindMatchType.Fuzzy;
536
+ }
537
+ constructor(container, tree, contextViewProvider, mode, matchType, options) {
538
+ super();
539
+ this.tree = tree;
540
+ this.elements = h('.monaco-tree-type-filter', [
541
+ h('.monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab', { tabIndex: 0 }),
542
+ h('.monaco-tree-type-filter-input@findInput'),
543
+ h('.monaco-tree-type-filter-actionbar@actionbar'),
544
+ ]);
545
+ this.width = 0;
546
+ this.right = 0;
547
+ this.top = 0;
548
+ this._onDidDisable = new Emitter();
549
+ container.appendChild(this.elements.root);
550
+ this._register(toDisposable(() => this.elements.root.remove()));
551
+ const styles = options?.styles ?? unthemedFindWidgetStyles;
552
+ if (styles.listFilterWidgetBackground) {
553
+ this.elements.root.style.backgroundColor = styles.listFilterWidgetBackground;
554
+ }
555
+ if (styles.listFilterWidgetShadow) {
556
+ this.elements.root.style.boxShadow = `0 0 8px 2px ${styles.listFilterWidgetShadow}`;
557
+ }
558
+ const toggleHoverDelegate = this._register(createInstantHoverDelegate());
559
+ this.modeToggle = this._register(new ModeToggle({ ...styles.toggleStyles, isChecked: mode === TreeFindMode.Filter, hoverDelegate: toggleHoverDelegate }));
560
+ this.matchTypeToggle = this._register(new FuzzyToggle({ ...styles.toggleStyles, isChecked: matchType === TreeFindMatchType.Fuzzy, hoverDelegate: toggleHoverDelegate }));
561
+ this.onDidChangeMode = Event.map(this.modeToggle.onChange, () => this.modeToggle.checked ? TreeFindMode.Filter : TreeFindMode.Highlight, this._store);
562
+ this.onDidChangeMatchType = Event.map(this.matchTypeToggle.onChange, () => this.matchTypeToggle.checked ? TreeFindMatchType.Fuzzy : TreeFindMatchType.Contiguous, this._store);
563
+ this.findInput = this._register(new FindInput(this.elements.findInput, contextViewProvider, {
564
+ label: localize('type to search', "Type to search"),
565
+ additionalToggles: [this.modeToggle, this.matchTypeToggle],
566
+ showCommonFindToggles: false,
567
+ inputBoxStyles: styles.inputBoxStyles,
568
+ toggleStyles: styles.toggleStyles,
569
+ history: options?.history
570
+ }));
571
+ this.actionbar = this._register(new ActionBar(this.elements.actionbar));
572
+ this.mode = mode;
573
+ const emitter = this._register(new DomEmitter(this.findInput.inputBox.inputElement, 'keydown'));
574
+ const onKeyDown = Event.chain(emitter.event, $ => $.map(e => new StandardKeyboardEvent(e)));
575
+ this._register(onKeyDown((e) => {
576
+ // Using equals() so we reserve modified keys for future use
577
+ if (e.equals(3 /* KeyCode.Enter */)) {
578
+ // This is the only keyboard way to return to the tree from a history item that isn't the last one
579
+ e.preventDefault();
580
+ e.stopPropagation();
581
+ this.findInput.inputBox.addToHistory();
582
+ this.tree.domFocus();
583
+ return;
584
+ }
585
+ if (e.equals(18 /* KeyCode.DownArrow */)) {
586
+ e.preventDefault();
587
+ e.stopPropagation();
588
+ if (this.findInput.inputBox.isAtLastInHistory() || this.findInput.inputBox.isNowhereInHistory()) {
589
+ // Retain original pre-history DownArrow behavior
590
+ this.findInput.inputBox.addToHistory();
591
+ this.tree.domFocus();
592
+ }
593
+ else {
594
+ // Downward through history
595
+ this.findInput.inputBox.showNextValue();
596
+ }
597
+ return;
598
+ }
599
+ if (e.equals(16 /* KeyCode.UpArrow */)) {
600
+ e.preventDefault();
601
+ e.stopPropagation();
602
+ // Upward through history
603
+ this.findInput.inputBox.showPreviousValue();
604
+ return;
605
+ }
606
+ }));
607
+ const closeAction = this._register(new Action('close', localize('close', "Close"), 'codicon codicon-close', true, () => this.dispose()));
608
+ this.actionbar.push(closeAction, { icon: true, label: false });
609
+ const onGrabMouseDown = this._register(new DomEmitter(this.elements.grab, 'mousedown'));
610
+ this._register(onGrabMouseDown.event(e => {
611
+ const disposables = new DisposableStore();
612
+ const onWindowMouseMove = disposables.add(new DomEmitter(getWindow(e), 'mousemove'));
613
+ const onWindowMouseUp = disposables.add(new DomEmitter(getWindow(e), 'mouseup'));
614
+ const startRight = this.right;
615
+ const startX = e.pageX;
616
+ const startTop = this.top;
617
+ const startY = e.pageY;
618
+ this.elements.grab.classList.add('grabbing');
619
+ const transition = this.elements.root.style.transition;
620
+ this.elements.root.style.transition = 'unset';
621
+ const update = (e) => {
622
+ const deltaX = e.pageX - startX;
623
+ this.right = startRight - deltaX;
624
+ const deltaY = e.pageY - startY;
625
+ this.top = startTop + deltaY;
626
+ this.layout();
627
+ };
628
+ disposables.add(onWindowMouseMove.event(update));
629
+ disposables.add(onWindowMouseUp.event(e => {
630
+ update(e);
631
+ this.elements.grab.classList.remove('grabbing');
632
+ this.elements.root.style.transition = transition;
633
+ disposables.dispose();
634
+ }));
635
+ }));
636
+ const onGrabKeyDown = Event.chain(this._register(new DomEmitter(this.elements.grab, 'keydown')).event, $ => $.map(e => new StandardKeyboardEvent(e)));
637
+ this._register(onGrabKeyDown((e) => {
638
+ let right;
639
+ let top;
640
+ if (e.keyCode === 15 /* KeyCode.LeftArrow */) {
641
+ right = Number.POSITIVE_INFINITY;
642
+ }
643
+ else if (e.keyCode === 17 /* KeyCode.RightArrow */) {
644
+ right = 0;
645
+ }
646
+ else if (e.keyCode === 10 /* KeyCode.Space */) {
647
+ right = this.right === 0 ? Number.POSITIVE_INFINITY : 0;
648
+ }
649
+ if (e.keyCode === 16 /* KeyCode.UpArrow */) {
650
+ top = 0;
651
+ }
652
+ else if (e.keyCode === 18 /* KeyCode.DownArrow */) {
653
+ top = Number.POSITIVE_INFINITY;
654
+ }
655
+ if (right !== undefined) {
656
+ e.preventDefault();
657
+ e.stopPropagation();
658
+ this.right = right;
659
+ this.layout();
660
+ }
661
+ if (top !== undefined) {
662
+ e.preventDefault();
663
+ e.stopPropagation();
664
+ this.top = top;
665
+ const transition = this.elements.root.style.transition;
666
+ this.elements.root.style.transition = 'unset';
667
+ this.layout();
668
+ setTimeout(() => {
669
+ this.elements.root.style.transition = transition;
670
+ }, 0);
671
+ }
672
+ }));
673
+ this.onDidChangeValue = this.findInput.onDidChange;
674
+ }
675
+ layout(width = this.width) {
676
+ this.width = width;
677
+ this.right = clamp(this.right, 0, Math.max(0, width - 212));
678
+ this.elements.root.style.right = `${this.right}px`;
679
+ this.top = clamp(this.top, 0, 24);
680
+ this.elements.root.style.top = `${this.top}px`;
681
+ }
682
+ showMessage(message) {
683
+ this.findInput.showMessage(message);
684
+ }
685
+ clearMessage() {
686
+ this.findInput.clearMessage();
687
+ }
688
+ async dispose() {
689
+ this._onDidDisable.fire();
690
+ this.elements.root.classList.add('disabled');
691
+ await timeout(300);
692
+ super.dispose();
693
+ }
694
+ }
695
+ class FindController {
696
+ get pattern() { return this._pattern; }
697
+ get mode() { return this._mode; }
698
+ set mode(mode) {
699
+ if (mode === this._mode) {
700
+ return;
701
+ }
702
+ this._mode = mode;
703
+ if (this.widget) {
704
+ this.widget.mode = this._mode;
705
+ }
706
+ this.tree.refilter();
707
+ this.render();
708
+ this._onDidChangeMode.fire(mode);
709
+ }
710
+ get matchType() { return this._matchType; }
711
+ set matchType(matchType) {
712
+ if (matchType === this._matchType) {
713
+ return;
714
+ }
715
+ this._matchType = matchType;
716
+ if (this.widget) {
717
+ this.widget.matchType = this._matchType;
718
+ }
719
+ this.tree.refilter();
720
+ this.render();
721
+ this._onDidChangeMatchType.fire(matchType);
722
+ }
723
+ constructor(tree, model, view, filter, contextViewProvider, options = {}) {
724
+ this.tree = tree;
725
+ this.view = view;
726
+ this.filter = filter;
727
+ this.contextViewProvider = contextViewProvider;
728
+ this.options = options;
729
+ this._pattern = '';
730
+ this.width = 0;
731
+ this._onDidChangeMode = new Emitter();
732
+ this.onDidChangeMode = this._onDidChangeMode.event;
733
+ this._onDidChangeMatchType = new Emitter();
734
+ this.onDidChangeMatchType = this._onDidChangeMatchType.event;
735
+ this._onDidChangePattern = new Emitter();
736
+ this._onDidChangeOpenState = new Emitter();
737
+ this.onDidChangeOpenState = this._onDidChangeOpenState.event;
738
+ this.enabledDisposables = new DisposableStore();
739
+ this.disposables = new DisposableStore();
740
+ this._mode = tree.options.defaultFindMode ?? TreeFindMode.Highlight;
741
+ this._matchType = tree.options.defaultFindMatchType ?? TreeFindMatchType.Fuzzy;
742
+ model.onDidSplice(this.onDidSpliceModel, this, this.disposables);
743
+ }
744
+ updateOptions(optionsUpdate = {}) {
745
+ if (optionsUpdate.defaultFindMode !== undefined) {
746
+ this.mode = optionsUpdate.defaultFindMode;
747
+ }
748
+ if (optionsUpdate.defaultFindMatchType !== undefined) {
749
+ this.matchType = optionsUpdate.defaultFindMatchType;
750
+ }
751
+ }
752
+ onDidSpliceModel() {
753
+ if (!this.widget || this.pattern.length === 0) {
754
+ return;
755
+ }
756
+ this.tree.refilter();
757
+ this.render();
758
+ }
759
+ render() {
760
+ const noMatches = this.filter.totalCount > 0 && this.filter.matchCount === 0;
761
+ if (this.pattern && noMatches) {
762
+ alert(localize('replFindNoResults', "No results"));
763
+ if (this.tree.options.showNotFoundMessage ?? true) {
764
+ this.widget?.showMessage({ type: 2 /* MessageType.WARNING */, content: localize('not found', "No elements found.") });
765
+ }
766
+ else {
767
+ this.widget?.showMessage({ type: 2 /* MessageType.WARNING */ });
768
+ }
769
+ }
770
+ else {
771
+ this.widget?.clearMessage();
772
+ if (this.pattern) {
773
+ alert(localize('replFindResults', "{0} results", this.filter.matchCount));
774
+ }
775
+ }
776
+ }
777
+ shouldAllowFocus(node) {
778
+ if (!this.widget || !this.pattern) {
779
+ return true;
780
+ }
781
+ if (this.filter.totalCount > 0 && this.filter.matchCount <= 1) {
782
+ return true;
783
+ }
784
+ return !FuzzyScore.isDefault(node.filterData);
785
+ }
786
+ layout(width) {
787
+ this.width = width;
788
+ this.widget?.layout(width);
789
+ }
790
+ dispose() {
791
+ this._history = undefined;
792
+ this._onDidChangePattern.dispose();
793
+ this.enabledDisposables.dispose();
794
+ this.disposables.dispose();
795
+ }
796
+ }
797
+ function stickyScrollNodeStateEquals(node1, node2) {
798
+ return node1.position === node2.position && stickyScrollNodeEquals(node1, node2);
799
+ }
800
+ function stickyScrollNodeEquals(node1, node2) {
801
+ return node1.node.element === node2.node.element &&
802
+ node1.startIndex === node2.startIndex &&
803
+ node1.height === node2.height &&
804
+ node1.endIndex === node2.endIndex;
805
+ }
806
+ class StickyScrollState {
807
+ constructor(stickyNodes = []) {
808
+ this.stickyNodes = stickyNodes;
809
+ }
810
+ get count() { return this.stickyNodes.length; }
811
+ equal(state) {
812
+ return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeStateEquals);
813
+ }
814
+ lastNodePartiallyVisible() {
815
+ if (this.count === 0) {
816
+ return false;
817
+ }
818
+ const lastStickyNode = this.stickyNodes[this.count - 1];
819
+ if (this.count === 1) {
820
+ return lastStickyNode.position !== 0;
821
+ }
822
+ const secondLastStickyNode = this.stickyNodes[this.count - 2];
823
+ return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position;
824
+ }
825
+ animationStateChanged(previousState) {
826
+ if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) {
827
+ return false;
828
+ }
829
+ if (this.count === 0) {
830
+ return false;
831
+ }
832
+ const lastStickyNode = this.stickyNodes[this.count - 1];
833
+ const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1];
834
+ return lastStickyNode.position !== previousLastStickyNode.position;
835
+ }
836
+ }
837
+ class DefaultStickyScrollDelegate {
838
+ constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {
839
+ for (let i = 0; i < stickyNodes.length; i++) {
840
+ const stickyNode = stickyNodes[i];
841
+ const stickyNodeBottom = stickyNode.position + stickyNode.height;
842
+ if (stickyNodeBottom > maxWidgetHeight || i >= stickyScrollMaxItemCount) {
843
+ return stickyNodes.slice(0, i);
844
+ }
845
+ }
846
+ return stickyNodes;
847
+ }
848
+ }
849
+ class StickyScrollController extends Disposable {
850
+ constructor(tree, model, view, renderers, treeDelegate, options = {}) {
851
+ super();
852
+ this.tree = tree;
853
+ this.model = model;
854
+ this.view = view;
855
+ this.treeDelegate = treeDelegate;
856
+ this.maxWidgetViewRatio = 0.4;
857
+ const stickyScrollOptions = this.validateStickySettings(options);
858
+ this.stickyScrollMaxItemCount = stickyScrollOptions.stickyScrollMaxItemCount;
859
+ this.stickyScrollDelegate = options.stickyScrollDelegate ?? new DefaultStickyScrollDelegate();
860
+ this._widget = this._register(new StickyScrollWidget(view.getScrollableElement(), view, tree, renderers, treeDelegate, options.accessibilityProvider));
861
+ this.onDidChangeHasFocus = this._widget.onDidChangeHasFocus;
862
+ this.onContextMenu = this._widget.onContextMenu;
863
+ this._register(view.onDidScroll(() => this.update()));
864
+ this._register(view.onDidChangeContentHeight(() => this.update()));
865
+ this._register(tree.onDidChangeCollapseState(() => this.update()));
866
+ this.update();
867
+ }
868
+ get height() {
869
+ return this._widget.height;
870
+ }
871
+ getNodeAtHeight(height) {
872
+ let index;
873
+ if (height === 0) {
874
+ index = this.view.firstVisibleIndex;
875
+ }
876
+ else {
877
+ index = this.view.indexAt(height + this.view.scrollTop);
878
+ }
879
+ if (index < 0 || index >= this.view.length) {
880
+ return undefined;
881
+ }
882
+ return this.view.element(index);
883
+ }
884
+ update() {
885
+ const firstVisibleNode = this.getNodeAtHeight(0);
886
+ // Don't render anything if there are no elements
887
+ if (!firstVisibleNode || this.tree.scrollTop === 0) {
888
+ this._widget.setState(undefined);
889
+ return;
890
+ }
891
+ const stickyState = this.findStickyState(firstVisibleNode);
892
+ this._widget.setState(stickyState);
893
+ }
894
+ findStickyState(firstVisibleNode) {
895
+ const stickyNodes = [];
896
+ let firstVisibleNodeUnderWidget = firstVisibleNode;
897
+ let stickyNodesHeight = 0;
898
+ let nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, undefined, stickyNodesHeight);
899
+ while (nextStickyNode) {
900
+ stickyNodes.push(nextStickyNode);
901
+ stickyNodesHeight += nextStickyNode.height;
902
+ if (stickyNodes.length <= this.stickyScrollMaxItemCount) {
903
+ firstVisibleNodeUnderWidget = this.getNextVisibleNode(nextStickyNode);
904
+ if (!firstVisibleNodeUnderWidget) {
905
+ break;
906
+ }
907
+ }
908
+ nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, nextStickyNode.node, stickyNodesHeight);
909
+ }
910
+ const contrainedStickyNodes = this.constrainStickyNodes(stickyNodes);
911
+ return contrainedStickyNodes.length ? new StickyScrollState(contrainedStickyNodes) : undefined;
912
+ }
913
+ getNextVisibleNode(previousStickyNode) {
914
+ return this.getNodeAtHeight(previousStickyNode.position + previousStickyNode.height);
915
+ }
916
+ getNextStickyNode(firstVisibleNodeUnderWidget, previousStickyNode, stickyNodesHeight) {
917
+ const nextStickyNode = this.getAncestorUnderPrevious(firstVisibleNodeUnderWidget, previousStickyNode);
918
+ if (!nextStickyNode) {
919
+ return undefined;
920
+ }
921
+ if (nextStickyNode === firstVisibleNodeUnderWidget) {
922
+ if (!this.nodeIsUncollapsedParent(firstVisibleNodeUnderWidget)) {
923
+ return undefined;
924
+ }
925
+ if (this.nodeTopAlignsWithStickyNodesBottom(firstVisibleNodeUnderWidget, stickyNodesHeight)) {
926
+ return undefined;
927
+ }
928
+ }
929
+ return this.createStickyScrollNode(nextStickyNode, stickyNodesHeight);
930
+ }
931
+ nodeTopAlignsWithStickyNodesBottom(node, stickyNodesHeight) {
932
+ const nodeIndex = this.getNodeIndex(node);
933
+ const elementTop = this.view.getElementTop(nodeIndex);
934
+ const stickyPosition = stickyNodesHeight;
935
+ return this.view.scrollTop === elementTop - stickyPosition;
936
+ }
937
+ createStickyScrollNode(node, currentStickyNodesHeight) {
938
+ const height = this.treeDelegate.getHeight(node);
939
+ const { startIndex, endIndex } = this.getNodeRange(node);
940
+ const position = this.calculateStickyNodePosition(endIndex, currentStickyNodesHeight, height);
941
+ return { node, position, height, startIndex, endIndex };
942
+ }
943
+ getAncestorUnderPrevious(node, previousAncestor = undefined) {
944
+ let currentAncestor = node;
945
+ let parentOfcurrentAncestor = this.getParentNode(currentAncestor);
946
+ while (parentOfcurrentAncestor) {
947
+ if (parentOfcurrentAncestor === previousAncestor) {
948
+ return currentAncestor;
949
+ }
950
+ currentAncestor = parentOfcurrentAncestor;
951
+ parentOfcurrentAncestor = this.getParentNode(currentAncestor);
952
+ }
953
+ if (previousAncestor === undefined) {
954
+ return currentAncestor;
955
+ }
956
+ return undefined;
957
+ }
958
+ calculateStickyNodePosition(lastDescendantIndex, stickyRowPositionTop, stickyNodeHeight) {
959
+ let lastChildRelativeTop = this.view.getRelativeTop(lastDescendantIndex);
960
+ // If the last descendant is only partially visible at the top of the view, getRelativeTop() returns null
961
+ // In that case, utilize the next node's relative top to calculate the sticky node's position
962
+ if (lastChildRelativeTop === null && this.view.firstVisibleIndex === lastDescendantIndex && lastDescendantIndex + 1 < this.view.length) {
963
+ const nodeHeight = this.treeDelegate.getHeight(this.view.element(lastDescendantIndex));
964
+ const nextNodeRelativeTop = this.view.getRelativeTop(lastDescendantIndex + 1);
965
+ lastChildRelativeTop = nextNodeRelativeTop ? nextNodeRelativeTop - nodeHeight / this.view.renderHeight : null;
966
+ }
967
+ if (lastChildRelativeTop === null) {
968
+ return stickyRowPositionTop;
969
+ }
970
+ const lastChildNode = this.view.element(lastDescendantIndex);
971
+ const lastChildHeight = this.treeDelegate.getHeight(lastChildNode);
972
+ const topOfLastChild = lastChildRelativeTop * this.view.renderHeight;
973
+ const bottomOfLastChild = topOfLastChild + lastChildHeight;
974
+ if (stickyRowPositionTop + stickyNodeHeight > bottomOfLastChild && stickyRowPositionTop <= bottomOfLastChild) {
975
+ return bottomOfLastChild - stickyNodeHeight;
976
+ }
977
+ return stickyRowPositionTop;
978
+ }
979
+ constrainStickyNodes(stickyNodes) {
980
+ if (stickyNodes.length === 0) {
981
+ return [];
982
+ }
983
+ // Check if sticky nodes need to be constrained
984
+ const maximumStickyWidgetHeight = this.view.renderHeight * this.maxWidgetViewRatio;
985
+ const lastStickyNode = stickyNodes[stickyNodes.length - 1];
986
+ if (stickyNodes.length <= this.stickyScrollMaxItemCount && lastStickyNode.position + lastStickyNode.height <= maximumStickyWidgetHeight) {
987
+ return stickyNodes;
988
+ }
989
+ // constrain sticky nodes
990
+ const constrainedStickyNodes = this.stickyScrollDelegate.constrainStickyScrollNodes(stickyNodes, this.stickyScrollMaxItemCount, maximumStickyWidgetHeight);
991
+ if (!constrainedStickyNodes.length) {
992
+ return [];
993
+ }
994
+ // Validate constraints
995
+ const lastConstrainedStickyNode = constrainedStickyNodes[constrainedStickyNodes.length - 1];
996
+ if (constrainedStickyNodes.length > this.stickyScrollMaxItemCount || lastConstrainedStickyNode.position + lastConstrainedStickyNode.height > maximumStickyWidgetHeight) {
997
+ throw new Error('stickyScrollDelegate violates constraints');
998
+ }
999
+ return constrainedStickyNodes;
1000
+ }
1001
+ getParentNode(node) {
1002
+ const nodeLocation = this.model.getNodeLocation(node);
1003
+ const parentLocation = this.model.getParentNodeLocation(nodeLocation);
1004
+ return parentLocation ? this.model.getNode(parentLocation) : undefined;
1005
+ }
1006
+ nodeIsUncollapsedParent(node) {
1007
+ const nodeLocation = this.model.getNodeLocation(node);
1008
+ return this.model.getListRenderCount(nodeLocation) > 1;
1009
+ }
1010
+ getNodeIndex(node) {
1011
+ const nodeLocation = this.model.getNodeLocation(node);
1012
+ const nodeIndex = this.model.getListIndex(nodeLocation);
1013
+ return nodeIndex;
1014
+ }
1015
+ getNodeRange(node) {
1016
+ const nodeLocation = this.model.getNodeLocation(node);
1017
+ const startIndex = this.model.getListIndex(nodeLocation);
1018
+ if (startIndex < 0) {
1019
+ throw new Error('Node not found in tree');
1020
+ }
1021
+ const renderCount = this.model.getListRenderCount(nodeLocation);
1022
+ const endIndex = startIndex + renderCount - 1;
1023
+ return { startIndex, endIndex };
1024
+ }
1025
+ nodePositionTopBelowWidget(node) {
1026
+ const ancestors = [];
1027
+ let currentAncestor = this.getParentNode(node);
1028
+ while (currentAncestor) {
1029
+ ancestors.push(currentAncestor);
1030
+ currentAncestor = this.getParentNode(currentAncestor);
1031
+ }
1032
+ let widgetHeight = 0;
1033
+ for (let i = 0; i < ancestors.length && i < this.stickyScrollMaxItemCount; i++) {
1034
+ widgetHeight += this.treeDelegate.getHeight(ancestors[i]);
1035
+ }
1036
+ return widgetHeight;
1037
+ }
1038
+ domFocus() {
1039
+ this._widget.domFocus();
1040
+ }
1041
+ // Whether sticky scroll was the last focused part in the tree or not
1042
+ focusedLast() {
1043
+ return this._widget.focusedLast();
1044
+ }
1045
+ updateOptions(optionsUpdate = {}) {
1046
+ if (!optionsUpdate.stickyScrollMaxItemCount) {
1047
+ return;
1048
+ }
1049
+ const validatedOptions = this.validateStickySettings(optionsUpdate);
1050
+ if (this.stickyScrollMaxItemCount !== validatedOptions.stickyScrollMaxItemCount) {
1051
+ this.stickyScrollMaxItemCount = validatedOptions.stickyScrollMaxItemCount;
1052
+ this.update();
1053
+ }
1054
+ }
1055
+ validateStickySettings(options) {
1056
+ let stickyScrollMaxItemCount = 7;
1057
+ if (typeof options.stickyScrollMaxItemCount === 'number') {
1058
+ stickyScrollMaxItemCount = Math.max(options.stickyScrollMaxItemCount, 1);
1059
+ }
1060
+ return { stickyScrollMaxItemCount };
1061
+ }
1062
+ }
1063
+ class StickyScrollWidget {
1064
+ constructor(container, view, tree, treeRenderers, treeDelegate, accessibilityProvider) {
1065
+ this.view = view;
1066
+ this.tree = tree;
1067
+ this.treeRenderers = treeRenderers;
1068
+ this.treeDelegate = treeDelegate;
1069
+ this.accessibilityProvider = accessibilityProvider;
1070
+ this._previousElements = [];
1071
+ this._previousStateDisposables = new DisposableStore();
1072
+ this._rootDomNode = $('.monaco-tree-sticky-container.empty');
1073
+ container.appendChild(this._rootDomNode);
1074
+ const shadow = $('.monaco-tree-sticky-container-shadow');
1075
+ this._rootDomNode.appendChild(shadow);
1076
+ this.stickyScrollFocus = new StickyScrollFocus(this._rootDomNode, view);
1077
+ this.onDidChangeHasFocus = this.stickyScrollFocus.onDidChangeHasFocus;
1078
+ this.onContextMenu = this.stickyScrollFocus.onContextMenu;
1079
+ }
1080
+ get height() {
1081
+ if (!this._previousState) {
1082
+ return 0;
1083
+ }
1084
+ const lastElement = this._previousState.stickyNodes[this._previousState.count - 1];
1085
+ return lastElement.position + lastElement.height;
1086
+ }
1087
+ setState(state) {
1088
+ const wasVisible = !!this._previousState && this._previousState.count > 0;
1089
+ const isVisible = !!state && state.count > 0;
1090
+ // If state has not changed, do nothing
1091
+ if ((!wasVisible && !isVisible) || (wasVisible && isVisible && this._previousState.equal(state))) {
1092
+ return;
1093
+ }
1094
+ // Update visibility of the widget if changed
1095
+ if (wasVisible !== isVisible) {
1096
+ this.setVisible(isVisible);
1097
+ }
1098
+ if (!isVisible) {
1099
+ this._previousState = undefined;
1100
+ this._previousElements = [];
1101
+ this._previousStateDisposables.clear();
1102
+ return;
1103
+ }
1104
+ const lastStickyNode = state.stickyNodes[state.count - 1];
1105
+ // If the new state is only a change in the last node's position, update the position of the last element
1106
+ if (this._previousState && state.animationStateChanged(this._previousState)) {
1107
+ this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`;
1108
+ }
1109
+ // create new dom elements
1110
+ else {
1111
+ this._previousStateDisposables.clear();
1112
+ const elements = Array(state.count);
1113
+ for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) {
1114
+ const stickyNode = state.stickyNodes[stickyIndex];
1115
+ const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count);
1116
+ elements[stickyIndex] = element;
1117
+ this._rootDomNode.appendChild(element);
1118
+ this._previousStateDisposables.add(disposable);
1119
+ }
1120
+ this.stickyScrollFocus.updateElements(elements, state);
1121
+ this._previousElements = elements;
1122
+ }
1123
+ this._previousState = state;
1124
+ // Set the height of the widget to the bottom of the last sticky node
1125
+ this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`;
1126
+ }
1127
+ createElement(stickyNode, stickyIndex, stickyNodesTotal) {
1128
+ const nodeIndex = stickyNode.startIndex;
1129
+ // Sticky element container
1130
+ const stickyElement = document.createElement('div');
1131
+ stickyElement.style.top = `${stickyNode.position}px`;
1132
+ if (this.tree.options.setRowHeight !== false) {
1133
+ stickyElement.style.height = `${stickyNode.height}px`;
1134
+ }
1135
+ if (this.tree.options.setRowLineHeight !== false) {
1136
+ stickyElement.style.lineHeight = `${stickyNode.height}px`;
1137
+ }
1138
+ stickyElement.classList.add('monaco-tree-sticky-row');
1139
+ stickyElement.classList.add('monaco-list-row');
1140
+ stickyElement.setAttribute('data-index', `${nodeIndex}`);
1141
+ stickyElement.setAttribute('data-parity', nodeIndex % 2 === 0 ? 'even' : 'odd');
1142
+ stickyElement.setAttribute('id', this.view.getElementID(nodeIndex));
1143
+ const accessibilityDisposable = this.setAccessibilityAttributes(stickyElement, stickyNode.node.element, stickyIndex, stickyNodesTotal);
1144
+ // Get the renderer for the node
1145
+ const nodeTemplateId = this.treeDelegate.getTemplateId(stickyNode.node);
1146
+ const renderer = this.treeRenderers.find((renderer) => renderer.templateId === nodeTemplateId);
1147
+ if (!renderer) {
1148
+ throw new Error(`No renderer found for template id ${nodeTemplateId}`);
1149
+ }
1150
+ // To make sure we do not influence the original node, we create a copy of the node
1151
+ // We need to check if it is already a unique instance of the node by the delegate
1152
+ let nodeCopy = stickyNode.node;
1153
+ if (nodeCopy === this.tree.getNode(this.tree.getNodeLocation(stickyNode.node))) {
1154
+ nodeCopy = new Proxy(stickyNode.node, {});
1155
+ }
1156
+ // Render the element
1157
+ const templateData = renderer.renderTemplate(stickyElement);
1158
+ renderer.renderElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);
1159
+ // Remove the element from the DOM when state is disposed
1160
+ const disposable = toDisposable(() => {
1161
+ accessibilityDisposable.dispose();
1162
+ renderer.disposeElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);
1163
+ renderer.disposeTemplate(templateData);
1164
+ stickyElement.remove();
1165
+ });
1166
+ return { element: stickyElement, disposable };
1167
+ }
1168
+ setAccessibilityAttributes(container, element, stickyIndex, stickyNodesTotal) {
1169
+ if (!this.accessibilityProvider) {
1170
+ return Disposable.None;
1171
+ }
1172
+ if (this.accessibilityProvider.getSetSize) {
1173
+ container.setAttribute('aria-setsize', String(this.accessibilityProvider.getSetSize(element, stickyIndex, stickyNodesTotal)));
1174
+ }
1175
+ if (this.accessibilityProvider.getPosInSet) {
1176
+ container.setAttribute('aria-posinset', String(this.accessibilityProvider.getPosInSet(element, stickyIndex)));
1177
+ }
1178
+ if (this.accessibilityProvider.getRole) {
1179
+ container.setAttribute('role', this.accessibilityProvider.getRole(element) ?? 'treeitem');
1180
+ }
1181
+ const ariaLabel = this.accessibilityProvider.getAriaLabel(element);
1182
+ const observable = (ariaLabel && typeof ariaLabel !== 'string') ? ariaLabel : constObservable(ariaLabel);
1183
+ const result = autorun(reader => {
1184
+ const value = reader.readObservable(observable);
1185
+ if (value) {
1186
+ container.setAttribute('aria-label', value);
1187
+ }
1188
+ else {
1189
+ container.removeAttribute('aria-label');
1190
+ }
1191
+ });
1192
+ if (typeof ariaLabel === 'string') {
1193
+ }
1194
+ else if (ariaLabel) {
1195
+ container.setAttribute('aria-label', ariaLabel.get());
1196
+ }
1197
+ const ariaLevel = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(element);
1198
+ if (typeof ariaLevel === 'number') {
1199
+ container.setAttribute('aria-level', `${ariaLevel}`);
1200
+ }
1201
+ // Sticky Scroll elements can not be selected
1202
+ container.setAttribute('aria-selected', String(false));
1203
+ return result;
1204
+ }
1205
+ setVisible(visible) {
1206
+ this._rootDomNode.classList.toggle('empty', !visible);
1207
+ if (!visible) {
1208
+ this.stickyScrollFocus.updateElements([], undefined);
1209
+ }
1210
+ }
1211
+ domFocus() {
1212
+ this.stickyScrollFocus.domFocus();
1213
+ }
1214
+ focusedLast() {
1215
+ return this.stickyScrollFocus.focusedLast();
1216
+ }
1217
+ dispose() {
1218
+ this.stickyScrollFocus.dispose();
1219
+ this._previousStateDisposables.dispose();
1220
+ this._rootDomNode.remove();
1221
+ }
1222
+ }
1223
+ class StickyScrollFocus extends Disposable {
1224
+ get domHasFocus() { return this._domHasFocus; }
1225
+ set domHasFocus(hasFocus) {
1226
+ if (hasFocus !== this._domHasFocus) {
1227
+ this._onDidChangeHasFocus.fire(hasFocus);
1228
+ this._domHasFocus = hasFocus;
1229
+ }
1230
+ }
1231
+ constructor(container, view) {
1232
+ super();
1233
+ this.container = container;
1234
+ this.view = view;
1235
+ this.focusedIndex = -1;
1236
+ this.elements = [];
1237
+ this._onDidChangeHasFocus = new Emitter();
1238
+ this.onDidChangeHasFocus = this._onDidChangeHasFocus.event;
1239
+ this._onContextMenu = new Emitter();
1240
+ this.onContextMenu = this._onContextMenu.event;
1241
+ this._domHasFocus = false;
1242
+ this._register(addDisposableListener(this.container, 'focus', () => this.onFocus()));
1243
+ this._register(addDisposableListener(this.container, 'blur', () => this.onBlur()));
1244
+ this._register(this.view.onDidFocus(() => this.toggleStickyScrollFocused(false)));
1245
+ this._register(this.view.onKeyDown((e) => this.onKeyDown(e)));
1246
+ this._register(this.view.onMouseDown((e) => this.onMouseDown(e)));
1247
+ this._register(this.view.onContextMenu((e) => this.handleContextMenu(e)));
1248
+ }
1249
+ handleContextMenu(e) {
1250
+ const target = e.browserEvent.target;
1251
+ if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {
1252
+ if (this.focusedLast()) {
1253
+ this.view.domFocus();
1254
+ }
1255
+ return;
1256
+ }
1257
+ // The list handles the context menu triggered by a mouse event
1258
+ // In that case only set the focus of the element clicked and leave the rest to the list to handle
1259
+ if (!isKeyboardEvent(e.browserEvent)) {
1260
+ if (!this.state) {
1261
+ throw new Error('Context menu should not be triggered when state is undefined');
1262
+ }
1263
+ const stickyIndex = this.state.stickyNodes.findIndex(stickyNode => stickyNode.node.element === e.element?.element);
1264
+ if (stickyIndex === -1) {
1265
+ throw new Error('Context menu should not be triggered when element is not in sticky scroll widget');
1266
+ }
1267
+ this.container.focus();
1268
+ this.setFocus(stickyIndex);
1269
+ return;
1270
+ }
1271
+ if (!this.state || this.focusedIndex < 0) {
1272
+ throw new Error('Context menu key should not be triggered when focus is not in sticky scroll widget');
1273
+ }
1274
+ const stickyNode = this.state.stickyNodes[this.focusedIndex];
1275
+ const element = stickyNode.node.element;
1276
+ const anchor = this.elements[this.focusedIndex];
1277
+ this._onContextMenu.fire({ element, anchor, browserEvent: e.browserEvent, isStickyScroll: true });
1278
+ }
1279
+ onKeyDown(e) {
1280
+ // Sticky Scroll Navigation
1281
+ if (this.domHasFocus && this.state) {
1282
+ // Move up
1283
+ if (e.key === 'ArrowUp') {
1284
+ this.setFocusedElement(Math.max(0, this.focusedIndex - 1));
1285
+ e.preventDefault();
1286
+ e.stopPropagation();
1287
+ }
1288
+ // Move down, if last sticky node is focused, move focus into first child of last sticky node
1289
+ else if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {
1290
+ if (this.focusedIndex >= this.state.count - 1) {
1291
+ const nodeIndexToFocus = this.state.stickyNodes[this.state.count - 1].startIndex + 1;
1292
+ this.view.domFocus();
1293
+ this.view.setFocus([nodeIndexToFocus]);
1294
+ this.scrollNodeUnderWidget(nodeIndexToFocus, this.state);
1295
+ }
1296
+ else {
1297
+ this.setFocusedElement(this.focusedIndex + 1);
1298
+ }
1299
+ e.preventDefault();
1300
+ e.stopPropagation();
1301
+ }
1302
+ }
1303
+ }
1304
+ onMouseDown(e) {
1305
+ const target = e.browserEvent.target;
1306
+ if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {
1307
+ return;
1308
+ }
1309
+ e.browserEvent.preventDefault();
1310
+ e.browserEvent.stopPropagation();
1311
+ }
1312
+ updateElements(elements, state) {
1313
+ if (state && state.count === 0) {
1314
+ throw new Error('Sticky scroll state must be undefined when there are no sticky nodes');
1315
+ }
1316
+ if (state && state.count !== elements.length) {
1317
+ throw new Error('Sticky scroll focus received illigel state');
1318
+ }
1319
+ const previousIndex = this.focusedIndex;
1320
+ this.removeFocus();
1321
+ this.elements = elements;
1322
+ this.state = state;
1323
+ if (state) {
1324
+ const newFocusedIndex = clamp(previousIndex, 0, state.count - 1);
1325
+ this.setFocus(newFocusedIndex);
1326
+ }
1327
+ else {
1328
+ if (this.domHasFocus) {
1329
+ this.view.domFocus();
1330
+ }
1331
+ }
1332
+ // must come last as it calls blur()
1333
+ this.container.tabIndex = state ? 0 : -1;
1334
+ }
1335
+ setFocusedElement(stickyIndex) {
1336
+ // doesn't imply that the widget has (or will have) focus
1337
+ const state = this.state;
1338
+ if (!state) {
1339
+ throw new Error('Cannot set focus when state is undefined');
1340
+ }
1341
+ this.setFocus(stickyIndex);
1342
+ if (stickyIndex < state.count - 1) {
1343
+ return;
1344
+ }
1345
+ // If the last sticky node is not fully visible, scroll it into view
1346
+ if (state.lastNodePartiallyVisible()) {
1347
+ const lastStickyNode = state.stickyNodes[stickyIndex];
1348
+ this.scrollNodeUnderWidget(lastStickyNode.endIndex + 1, state);
1349
+ }
1350
+ }
1351
+ scrollNodeUnderWidget(nodeIndex, state) {
1352
+ const lastStickyNode = state.stickyNodes[state.count - 1];
1353
+ const secondLastStickyNode = state.count > 1 ? state.stickyNodes[state.count - 2] : undefined;
1354
+ const elementScrollTop = this.view.getElementTop(nodeIndex);
1355
+ const elementTargetViewTop = secondLastStickyNode ? secondLastStickyNode.position + secondLastStickyNode.height + lastStickyNode.height : lastStickyNode.height;
1356
+ this.view.scrollTop = elementScrollTop - elementTargetViewTop;
1357
+ }
1358
+ domFocus() {
1359
+ if (!this.state) {
1360
+ throw new Error('Cannot focus when state is undefined');
1361
+ }
1362
+ this.container.focus();
1363
+ }
1364
+ focusedLast() {
1365
+ if (!this.state) {
1366
+ return false;
1367
+ }
1368
+ return this.view.getHTMLElement().classList.contains('sticky-scroll-focused');
1369
+ }
1370
+ removeFocus() {
1371
+ if (this.focusedIndex === -1) {
1372
+ return;
1373
+ }
1374
+ this.toggleElementFocus(this.elements[this.focusedIndex], false);
1375
+ this.focusedIndex = -1;
1376
+ }
1377
+ setFocus(newFocusIndex) {
1378
+ if (0 > newFocusIndex) {
1379
+ throw new Error('addFocus() can not remove focus');
1380
+ }
1381
+ if (!this.state && newFocusIndex >= 0) {
1382
+ throw new Error('Cannot set focus index when state is undefined');
1383
+ }
1384
+ if (this.state && newFocusIndex >= this.state.count) {
1385
+ throw new Error('Cannot set focus index to an index that does not exist');
1386
+ }
1387
+ const oldIndex = this.focusedIndex;
1388
+ if (oldIndex >= 0) {
1389
+ this.toggleElementFocus(this.elements[oldIndex], false);
1390
+ }
1391
+ if (newFocusIndex >= 0) {
1392
+ this.toggleElementFocus(this.elements[newFocusIndex], true);
1393
+ }
1394
+ this.focusedIndex = newFocusIndex;
1395
+ }
1396
+ toggleElementFocus(element, focused) {
1397
+ this.toggleElementActiveFocus(element, focused && this.domHasFocus);
1398
+ this.toggleElementPassiveFocus(element, focused);
1399
+ }
1400
+ toggleCurrentElementActiveFocus(focused) {
1401
+ if (this.focusedIndex === -1) {
1402
+ return;
1403
+ }
1404
+ this.toggleElementActiveFocus(this.elements[this.focusedIndex], focused);
1405
+ }
1406
+ toggleElementActiveFocus(element, focused) {
1407
+ // active focus is set when sticky scroll has focus
1408
+ element.classList.toggle('focused', focused);
1409
+ }
1410
+ toggleElementPassiveFocus(element, focused) {
1411
+ // passive focus allows to show focus when sticky scroll does not have focus
1412
+ // for example when the context menu has focus
1413
+ element.classList.toggle('passive-focused', focused);
1414
+ }
1415
+ toggleStickyScrollFocused(focused) {
1416
+ // Weather the last focus in the view was sticky scroll and not the list
1417
+ // Is only removed when the focus is back in the tree an no longer in sticky scroll
1418
+ this.view.getHTMLElement().classList.toggle('sticky-scroll-focused', focused);
1419
+ }
1420
+ onFocus() {
1421
+ if (!this.state || this.elements.length === 0) {
1422
+ throw new Error('Cannot focus when state is undefined or elements are empty');
1423
+ }
1424
+ this.domHasFocus = true;
1425
+ this.toggleStickyScrollFocused(true);
1426
+ this.toggleCurrentElementActiveFocus(true);
1427
+ if (this.focusedIndex === -1) {
1428
+ this.setFocus(0);
1429
+ }
1430
+ }
1431
+ onBlur() {
1432
+ this.domHasFocus = false;
1433
+ this.toggleCurrentElementActiveFocus(false);
1434
+ }
1435
+ dispose() {
1436
+ this.toggleStickyScrollFocused(false);
1437
+ this._onDidChangeHasFocus.fire(false);
1438
+ super.dispose();
1439
+ }
1440
+ }
1441
+ function asTreeMouseEvent(event) {
1442
+ let target = TreeMouseEventTarget.Unknown;
1443
+ if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-twistie', 'monaco-tl-row')) {
1444
+ target = TreeMouseEventTarget.Twistie;
1445
+ }
1446
+ else if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-contents', 'monaco-tl-row')) {
1447
+ target = TreeMouseEventTarget.Element;
1448
+ }
1449
+ else if (hasParentWithClass(event.browserEvent.target, 'monaco-tree-type-filter', 'monaco-list')) {
1450
+ target = TreeMouseEventTarget.Filter;
1451
+ }
1452
+ return {
1453
+ browserEvent: event.browserEvent,
1454
+ element: event.element ? event.element.element : null,
1455
+ target
1456
+ };
1457
+ }
1458
+ function asTreeContextMenuEvent(event) {
1459
+ const isStickyScroll = isStickyScrollContainer(event.browserEvent.target);
1460
+ return {
1461
+ element: event.element ? event.element.element : null,
1462
+ browserEvent: event.browserEvent,
1463
+ anchor: event.anchor,
1464
+ isStickyScroll
1465
+ };
1466
+ }
1467
+ function dfs(node, fn) {
1468
+ fn(node);
1469
+ node.children.forEach(child => dfs(child, fn));
1470
+ }
1471
+ /**
1472
+ * The trait concept needs to exist at the tree level, because collapsed
1473
+ * tree nodes will not be known by the list.
1474
+ */
1475
+ class Trait {
1476
+ get nodeSet() {
1477
+ if (!this._nodeSet) {
1478
+ this._nodeSet = this.createNodeSet();
1479
+ }
1480
+ return this._nodeSet;
1481
+ }
1482
+ constructor(getFirstViewElementWithTrait, identityProvider) {
1483
+ this.getFirstViewElementWithTrait = getFirstViewElementWithTrait;
1484
+ this.identityProvider = identityProvider;
1485
+ this.nodes = [];
1486
+ this._onDidChange = new Emitter();
1487
+ this.onDidChange = this._onDidChange.event;
1488
+ }
1489
+ set(nodes, browserEvent) {
1490
+ if (!browserEvent?.__forceEvent && equals(this.nodes, nodes)) {
1491
+ return;
1492
+ }
1493
+ this._set(nodes, false, browserEvent);
1494
+ }
1495
+ _set(nodes, silent, browserEvent) {
1496
+ this.nodes = [...nodes];
1497
+ this.elements = undefined;
1498
+ this._nodeSet = undefined;
1499
+ if (!silent) {
1500
+ const that = this;
1501
+ this._onDidChange.fire({ get elements() { return that.get(); }, browserEvent });
1502
+ }
1503
+ }
1504
+ get() {
1505
+ if (!this.elements) {
1506
+ this.elements = this.nodes.map(node => node.element);
1507
+ }
1508
+ return [...this.elements];
1509
+ }
1510
+ getNodes() {
1511
+ return this.nodes;
1512
+ }
1513
+ has(node) {
1514
+ return this.nodeSet.has(node);
1515
+ }
1516
+ onDidModelSplice({ insertedNodes, deletedNodes }) {
1517
+ if (!this.identityProvider) {
1518
+ const set = this.createNodeSet();
1519
+ const visit = (node) => set.delete(node);
1520
+ deletedNodes.forEach(node => dfs(node, visit));
1521
+ this.set([...set.values()]);
1522
+ return;
1523
+ }
1524
+ const deletedNodesIdSet = new Set();
1525
+ const deletedNodesVisitor = (node) => deletedNodesIdSet.add(this.identityProvider.getId(node.element).toString());
1526
+ deletedNodes.forEach(node => dfs(node, deletedNodesVisitor));
1527
+ const insertedNodesMap = new Map();
1528
+ const insertedNodesVisitor = (node) => insertedNodesMap.set(this.identityProvider.getId(node.element).toString(), node);
1529
+ insertedNodes.forEach(node => dfs(node, insertedNodesVisitor));
1530
+ const nodes = [];
1531
+ for (const node of this.nodes) {
1532
+ const id = this.identityProvider.getId(node.element).toString();
1533
+ const wasDeleted = deletedNodesIdSet.has(id);
1534
+ if (!wasDeleted) {
1535
+ nodes.push(node);
1536
+ }
1537
+ else {
1538
+ const insertedNode = insertedNodesMap.get(id);
1539
+ if (insertedNode && insertedNode.visible) {
1540
+ nodes.push(insertedNode);
1541
+ }
1542
+ }
1543
+ }
1544
+ if (this.nodes.length > 0 && nodes.length === 0) {
1545
+ const node = this.getFirstViewElementWithTrait();
1546
+ if (node) {
1547
+ nodes.push(node);
1548
+ }
1549
+ }
1550
+ this._set(nodes, true);
1551
+ }
1552
+ createNodeSet() {
1553
+ const set = new Set();
1554
+ for (const node of this.nodes) {
1555
+ set.add(node);
1556
+ }
1557
+ return set;
1558
+ }
1559
+ }
1560
+ class TreeNodeListMouseController extends MouseController {
1561
+ constructor(list, tree, stickyScrollProvider) {
1562
+ super(list);
1563
+ this.tree = tree;
1564
+ this.stickyScrollProvider = stickyScrollProvider;
1565
+ }
1566
+ onViewPointer(e) {
1567
+ if (isButton(e.browserEvent.target) ||
1568
+ isInputElement(e.browserEvent.target) ||
1569
+ isMonacoEditor(e.browserEvent.target)) {
1570
+ return;
1571
+ }
1572
+ if (e.browserEvent.isHandledByList) {
1573
+ return;
1574
+ }
1575
+ const node = e.element;
1576
+ if (!node) {
1577
+ return super.onViewPointer(e);
1578
+ }
1579
+ if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) {
1580
+ return super.onViewPointer(e);
1581
+ }
1582
+ const target = e.browserEvent.target;
1583
+ const onTwistie = target.classList.contains('monaco-tl-twistie')
1584
+ || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && e.browserEvent.offsetX < 16);
1585
+ const isStickyElement = isStickyScrollElement(e.browserEvent.target);
1586
+ let expandOnlyOnTwistieClick = false;
1587
+ if (isStickyElement) {
1588
+ expandOnlyOnTwistieClick = true;
1589
+ }
1590
+ else if (typeof this.tree.expandOnlyOnTwistieClick === 'function') {
1591
+ expandOnlyOnTwistieClick = this.tree.expandOnlyOnTwistieClick(node.element);
1592
+ }
1593
+ else {
1594
+ expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;
1595
+ }
1596
+ if (!isStickyElement) {
1597
+ if (expandOnlyOnTwistieClick && !onTwistie && e.browserEvent.detail !== 2) {
1598
+ return super.onViewPointer(e);
1599
+ }
1600
+ if (!this.tree.expandOnDoubleClick && e.browserEvent.detail === 2) {
1601
+ return super.onViewPointer(e);
1602
+ }
1603
+ }
1604
+ else {
1605
+ this.handleStickyScrollMouseEvent(e, node);
1606
+ }
1607
+ if (node.collapsible && (!isStickyElement || onTwistie)) {
1608
+ const location = this.tree.getNodeLocation(node);
1609
+ const recursive = e.browserEvent.altKey;
1610
+ this.tree.setFocus([location]);
1611
+ this.tree.toggleCollapsed(location, recursive);
1612
+ if (onTwistie) {
1613
+ // Do not set this before calling a handler on the super class, because it will reject it as handled
1614
+ e.browserEvent.isHandledByList = true;
1615
+ return;
1616
+ }
1617
+ }
1618
+ if (!isStickyElement) {
1619
+ super.onViewPointer(e);
1620
+ }
1621
+ }
1622
+ handleStickyScrollMouseEvent(e, node) {
1623
+ if (isMonacoCustomToggle(e.browserEvent.target) || isActionItem(e.browserEvent.target)) {
1624
+ return;
1625
+ }
1626
+ const stickyScrollController = this.stickyScrollProvider();
1627
+ if (!stickyScrollController) {
1628
+ throw new Error('Sticky scroll controller not found');
1629
+ }
1630
+ const nodeIndex = this.list.indexOf(node);
1631
+ const elementScrollTop = this.list.getElementTop(nodeIndex);
1632
+ const elementTargetViewTop = stickyScrollController.nodePositionTopBelowWidget(node);
1633
+ this.tree.scrollTop = elementScrollTop - elementTargetViewTop;
1634
+ this.list.domFocus();
1635
+ this.list.setFocus([nodeIndex]);
1636
+ this.list.setSelection([nodeIndex]);
1637
+ }
1638
+ onDoubleClick(e) {
1639
+ const onTwistie = e.browserEvent.target.classList.contains('monaco-tl-twistie');
1640
+ if (onTwistie || !this.tree.expandOnDoubleClick) {
1641
+ return;
1642
+ }
1643
+ if (e.browserEvent.isHandledByList) {
1644
+ return;
1645
+ }
1646
+ super.onDoubleClick(e);
1647
+ }
1648
+ // to make sure dom focus is not stolen (for example with context menu)
1649
+ onMouseDown(e) {
1650
+ const target = e.browserEvent.target;
1651
+ if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {
1652
+ super.onMouseDown(e);
1653
+ return;
1654
+ }
1655
+ }
1656
+ onContextMenu(e) {
1657
+ const target = e.browserEvent.target;
1658
+ if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {
1659
+ super.onContextMenu(e);
1660
+ return;
1661
+ }
1662
+ }
1663
+ }
1664
+ /**
1665
+ * We use this List subclass to restore selection and focus as nodes
1666
+ * get rendered in the list, possibly due to a node expand() call.
1667
+ */
1668
+ class TreeNodeList extends List {
1669
+ constructor(user, container, virtualDelegate, renderers, focusTrait, selectionTrait, anchorTrait, options) {
1670
+ super(user, container, virtualDelegate, renderers, options);
1671
+ this.focusTrait = focusTrait;
1672
+ this.selectionTrait = selectionTrait;
1673
+ this.anchorTrait = anchorTrait;
1674
+ }
1675
+ createMouseController(options) {
1676
+ return new TreeNodeListMouseController(this, options.tree, options.stickyScrollProvider);
1677
+ }
1678
+ splice(start, deleteCount, elements = []) {
1679
+ super.splice(start, deleteCount, elements);
1680
+ if (elements.length === 0) {
1681
+ return;
1682
+ }
1683
+ const additionalFocus = [];
1684
+ const additionalSelection = [];
1685
+ let anchor;
1686
+ elements.forEach((node, index) => {
1687
+ if (this.focusTrait.has(node)) {
1688
+ additionalFocus.push(start + index);
1689
+ }
1690
+ if (this.selectionTrait.has(node)) {
1691
+ additionalSelection.push(start + index);
1692
+ }
1693
+ if (this.anchorTrait.has(node)) {
1694
+ anchor = start + index;
1695
+ }
1696
+ });
1697
+ if (additionalFocus.length > 0) {
1698
+ super.setFocus(distinct([...super.getFocus(), ...additionalFocus]));
1699
+ }
1700
+ if (additionalSelection.length > 0) {
1701
+ super.setSelection(distinct([...super.getSelection(), ...additionalSelection]));
1702
+ }
1703
+ if (typeof anchor === 'number') {
1704
+ super.setAnchor(anchor);
1705
+ }
1706
+ }
1707
+ setFocus(indexes, browserEvent, fromAPI = false) {
1708
+ super.setFocus(indexes, browserEvent);
1709
+ if (!fromAPI) {
1710
+ this.focusTrait.set(indexes.map(i => this.element(i)), browserEvent);
1711
+ }
1712
+ }
1713
+ setSelection(indexes, browserEvent, fromAPI = false) {
1714
+ super.setSelection(indexes, browserEvent);
1715
+ if (!fromAPI) {
1716
+ this.selectionTrait.set(indexes.map(i => this.element(i)), browserEvent);
1717
+ }
1718
+ }
1719
+ setAnchor(index, fromAPI = false) {
1720
+ super.setAnchor(index);
1721
+ if (!fromAPI) {
1722
+ if (typeof index === 'undefined') {
1723
+ this.anchorTrait.set([]);
1724
+ }
1725
+ else {
1726
+ this.anchorTrait.set([this.element(index)]);
1727
+ }
1728
+ }
1729
+ }
1730
+ }
1731
+ export class AbstractTree {
1732
+ get onDidScroll() { return this.view.onDidScroll; }
1733
+ get onDidChangeFocus() { return this.eventBufferer.wrapEvent(this.focus.onDidChange); }
1734
+ get onDidChangeSelection() { return this.eventBufferer.wrapEvent(this.selection.onDidChange); }
1735
+ get onMouseDblClick() { return Event.filter(Event.map(this.view.onMouseDblClick, asTreeMouseEvent), e => e.target !== TreeMouseEventTarget.Filter); }
1736
+ get onMouseOver() { return Event.map(this.view.onMouseOver, asTreeMouseEvent); }
1737
+ get onMouseOut() { return Event.map(this.view.onMouseOut, asTreeMouseEvent); }
1738
+ get onContextMenu() { return Event.any(Event.filter(Event.map(this.view.onContextMenu, asTreeContextMenuEvent), e => !e.isStickyScroll), this.stickyScrollController?.onContextMenu ?? Event.None); }
1739
+ get onPointer() { return Event.map(this.view.onPointer, asTreeMouseEvent); }
1740
+ get onKeyDown() { return this.view.onKeyDown; }
1741
+ get onDidFocus() { return this.view.onDidFocus; }
1742
+ get onDidChangeModel() { return Event.signal(this.model.onDidSplice); }
1743
+ get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }
1744
+ get findMode() { return this.findController?.mode ?? TreeFindMode.Highlight; }
1745
+ set findMode(findMode) { if (this.findController) {
1746
+ this.findController.mode = findMode;
1747
+ } }
1748
+ get findMatchType() { return this.findController?.matchType ?? TreeFindMatchType.Fuzzy; }
1749
+ set findMatchType(findFuzzy) { if (this.findController) {
1750
+ this.findController.matchType = findFuzzy;
1751
+ } }
1752
+ get expandOnDoubleClick() { return typeof this._options.expandOnDoubleClick === 'undefined' ? true : this._options.expandOnDoubleClick; }
1753
+ get expandOnlyOnTwistieClick() { return typeof this._options.expandOnlyOnTwistieClick === 'undefined' ? true : this._options.expandOnlyOnTwistieClick; }
1754
+ get onDidDispose() { return this.view.onDidDispose; }
1755
+ constructor(_user, container, delegate, renderers, _options = {}) {
1756
+ this._user = _user;
1757
+ this._options = _options;
1758
+ this.eventBufferer = new EventBufferer();
1759
+ this.onDidChangeFindOpenState = Event.None;
1760
+ this.onDidChangeStickyScrollFocused = Event.None;
1761
+ this.disposables = new DisposableStore();
1762
+ this._onWillRefilter = new Emitter();
1763
+ this.onWillRefilter = this._onWillRefilter.event;
1764
+ this._onDidUpdateOptions = new Emitter();
1765
+ this.treeDelegate = new ComposedTreeDelegate(delegate);
1766
+ const onDidChangeCollapseStateRelay = new Relay();
1767
+ const onDidChangeActiveNodes = new Relay();
1768
+ const activeNodes = this.disposables.add(new EventCollection(onDidChangeActiveNodes.event));
1769
+ const renderedIndentGuides = new SetMap();
1770
+ this.renderers = renderers.map(r => new TreeRenderer(r, () => this.model, onDidChangeCollapseStateRelay.event, activeNodes, renderedIndentGuides, _options));
1771
+ for (const r of this.renderers) {
1772
+ this.disposables.add(r);
1773
+ }
1774
+ let filter;
1775
+ if (_options.keyboardNavigationLabelProvider) {
1776
+ filter = new FindFilter(this, _options.keyboardNavigationLabelProvider, _options.filter);
1777
+ _options = { ..._options, filter: filter }; // TODO need typescript help here
1778
+ this.disposables.add(filter);
1779
+ }
1780
+ this.focus = new Trait(() => this.view.getFocusedElements()[0], _options.identityProvider);
1781
+ this.selection = new Trait(() => this.view.getSelectedElements()[0], _options.identityProvider);
1782
+ this.anchor = new Trait(() => this.view.getAnchorElement(), _options.identityProvider);
1783
+ this.view = new TreeNodeList(_user, container, this.treeDelegate, this.renderers, this.focus, this.selection, this.anchor, { ...asListOptions(() => this.model, _options), tree: this, stickyScrollProvider: () => this.stickyScrollController });
1784
+ this.model = this.createModel(_user, this.view, _options);
1785
+ onDidChangeCollapseStateRelay.input = this.model.onDidChangeCollapseState;
1786
+ const onDidModelSplice = Event.forEach(this.model.onDidSplice, e => {
1787
+ this.eventBufferer.bufferEvents(() => {
1788
+ this.focus.onDidModelSplice(e);
1789
+ this.selection.onDidModelSplice(e);
1790
+ });
1791
+ }, this.disposables);
1792
+ // Make sure the `forEach` always runs
1793
+ onDidModelSplice(() => null, null, this.disposables);
1794
+ // Active nodes can change when the model changes or when focus or selection change.
1795
+ // We debounce it with 0 delay since these events may fire in the same stack and we only
1796
+ // want to run this once. It also doesn't matter if it runs on the next tick since it's only
1797
+ // a nice to have UI feature.
1798
+ const activeNodesEmitter = this.disposables.add(new Emitter());
1799
+ const activeNodesDebounce = this.disposables.add(new Delayer(0));
1800
+ this.disposables.add(Event.any(onDidModelSplice, this.focus.onDidChange, this.selection.onDidChange)(() => {
1801
+ activeNodesDebounce.trigger(() => {
1802
+ const set = new Set();
1803
+ for (const node of this.focus.getNodes()) {
1804
+ set.add(node);
1805
+ }
1806
+ for (const node of this.selection.getNodes()) {
1807
+ set.add(node);
1808
+ }
1809
+ activeNodesEmitter.fire([...set.values()]);
1810
+ });
1811
+ }));
1812
+ onDidChangeActiveNodes.input = activeNodesEmitter.event;
1813
+ if (_options.keyboardSupport !== false) {
1814
+ const onKeyDown = Event.chain(this.view.onKeyDown, $ => $.filter(e => !isInputElement(e.target))
1815
+ .map(e => new StandardKeyboardEvent(e)));
1816
+ Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 15 /* KeyCode.LeftArrow */))(this.onLeftArrow, this, this.disposables);
1817
+ Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 17 /* KeyCode.RightArrow */))(this.onRightArrow, this, this.disposables);
1818
+ Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 10 /* KeyCode.Space */))(this.onSpace, this, this.disposables);
1819
+ }
1820
+ if ((_options.findWidgetEnabled ?? true) && _options.keyboardNavigationLabelProvider && _options.contextViewProvider) {
1821
+ const opts = this.options.findWidgetStyles ? { styles: this.options.findWidgetStyles } : undefined;
1822
+ this.findController = new FindController(this, this.model, this.view, filter, _options.contextViewProvider, opts);
1823
+ this.focusNavigationFilter = node => this.findController.shouldAllowFocus(node);
1824
+ this.onDidChangeFindOpenState = this.findController.onDidChangeOpenState;
1825
+ this.disposables.add(this.findController);
1826
+ this.onDidChangeFindMode = this.findController.onDidChangeMode;
1827
+ this.onDidChangeFindMatchType = this.findController.onDidChangeMatchType;
1828
+ }
1829
+ else {
1830
+ this.onDidChangeFindMode = Event.None;
1831
+ this.onDidChangeFindMatchType = Event.None;
1832
+ }
1833
+ if (_options.enableStickyScroll) {
1834
+ this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, _options);
1835
+ this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;
1836
+ }
1837
+ this.styleElement = createStyleSheet(this.view.getHTMLElement());
1838
+ this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);
1839
+ }
1840
+ updateOptions(optionsUpdate = {}) {
1841
+ this._options = { ...this._options, ...optionsUpdate };
1842
+ for (const renderer of this.renderers) {
1843
+ renderer.updateOptions(optionsUpdate);
1844
+ }
1845
+ this.view.updateOptions(this._options);
1846
+ this.findController?.updateOptions(optionsUpdate);
1847
+ this.updateStickyScroll(optionsUpdate);
1848
+ this._onDidUpdateOptions.fire(this._options);
1849
+ this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);
1850
+ }
1851
+ get options() {
1852
+ return this._options;
1853
+ }
1854
+ updateStickyScroll(optionsUpdate) {
1855
+ if (!this.stickyScrollController && this._options.enableStickyScroll) {
1856
+ this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, this._options);
1857
+ this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;
1858
+ }
1859
+ else if (this.stickyScrollController && !this._options.enableStickyScroll) {
1860
+ this.onDidChangeStickyScrollFocused = Event.None;
1861
+ this.stickyScrollController.dispose();
1862
+ this.stickyScrollController = undefined;
1863
+ }
1864
+ this.stickyScrollController?.updateOptions(optionsUpdate);
1865
+ }
1866
+ // Widget
1867
+ getHTMLElement() {
1868
+ return this.view.getHTMLElement();
1869
+ }
1870
+ get scrollTop() {
1871
+ return this.view.scrollTop;
1872
+ }
1873
+ set scrollTop(scrollTop) {
1874
+ this.view.scrollTop = scrollTop;
1875
+ }
1876
+ get scrollHeight() {
1877
+ return this.view.scrollHeight;
1878
+ }
1879
+ get renderHeight() {
1880
+ return this.view.renderHeight;
1881
+ }
1882
+ get ariaLabel() {
1883
+ return this.view.ariaLabel;
1884
+ }
1885
+ set ariaLabel(value) {
1886
+ this.view.ariaLabel = value;
1887
+ }
1888
+ domFocus() {
1889
+ if (this.stickyScrollController?.focusedLast()) {
1890
+ this.stickyScrollController.domFocus();
1891
+ }
1892
+ else {
1893
+ this.view.domFocus();
1894
+ }
1895
+ }
1896
+ layout(height, width) {
1897
+ this.view.layout(height, width);
1898
+ if (isNumber(width)) {
1899
+ this.findController?.layout(width);
1900
+ }
1901
+ }
1902
+ style(styles) {
1903
+ const suffix = `.${this.view.domId}`;
1904
+ const content = [];
1905
+ if (styles.treeIndentGuidesStroke) {
1906
+ content.push(`.monaco-list${suffix}:hover .monaco-tl-indent > .indent-guide, .monaco-list${suffix}.always .monaco-tl-indent > .indent-guide { border-color: ${styles.treeInactiveIndentGuidesStroke}; }`);
1907
+ content.push(`.monaco-list${suffix} .monaco-tl-indent > .indent-guide.active { border-color: ${styles.treeIndentGuidesStroke}; }`);
1908
+ }
1909
+ // Sticky Scroll Background
1910
+ const stickyScrollBackground = styles.treeStickyScrollBackground ?? styles.listBackground;
1911
+ if (stickyScrollBackground) {
1912
+ content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${stickyScrollBackground}; }`);
1913
+ content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${stickyScrollBackground}; }`);
1914
+ }
1915
+ // Sticky Scroll Border
1916
+ if (styles.treeStickyScrollBorder) {
1917
+ content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${styles.treeStickyScrollBorder}; }`);
1918
+ }
1919
+ // Sticky Scroll Shadow
1920
+ if (styles.treeStickyScrollShadow) {
1921
+ content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${styles.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`);
1922
+ }
1923
+ // Sticky Scroll Focus
1924
+ if (styles.listFocusForeground) {
1925
+ content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);
1926
+ content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`);
1927
+ }
1928
+ // Sticky Scroll Focus Outlines
1929
+ const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, styles.listFocusOutline ?? ''));
1930
+ if (focusAndSelectionOutline) { // default: listFocusOutline
1931
+ content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);
1932
+ content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`);
1933
+ }
1934
+ if (styles.listFocusOutline) { // default: set
1935
+ content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);
1936
+ content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`);
1937
+ content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);
1938
+ content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);
1939
+ content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);
1940
+ }
1941
+ this.styleElement.textContent = content.join('\n');
1942
+ this.view.style(styles);
1943
+ }
1944
+ // Tree navigation
1945
+ getParentElement(location) {
1946
+ const parentRef = this.model.getParentNodeLocation(location);
1947
+ const parentNode = this.model.getNode(parentRef);
1948
+ return parentNode.element;
1949
+ }
1950
+ getFirstElementChild(location) {
1951
+ return this.model.getFirstElementChild(location);
1952
+ }
1953
+ // Tree
1954
+ getNode(location) {
1955
+ return this.model.getNode(location);
1956
+ }
1957
+ getNodeLocation(node) {
1958
+ return this.model.getNodeLocation(node);
1959
+ }
1960
+ collapse(location, recursive = false) {
1961
+ return this.model.setCollapsed(location, true, recursive);
1962
+ }
1963
+ expand(location, recursive = false) {
1964
+ return this.model.setCollapsed(location, false, recursive);
1965
+ }
1966
+ toggleCollapsed(location, recursive = false) {
1967
+ return this.model.setCollapsed(location, undefined, recursive);
1968
+ }
1969
+ isCollapsible(location) {
1970
+ return this.model.isCollapsible(location);
1971
+ }
1972
+ setCollapsible(location, collapsible) {
1973
+ return this.model.setCollapsible(location, collapsible);
1974
+ }
1975
+ isCollapsed(location) {
1976
+ return this.model.isCollapsed(location);
1977
+ }
1978
+ refilter() {
1979
+ this._onWillRefilter.fire(undefined);
1980
+ this.model.refilter();
1981
+ }
1982
+ setSelection(elements, browserEvent) {
1983
+ this.eventBufferer.bufferEvents(() => {
1984
+ const nodes = elements.map(e => this.model.getNode(e));
1985
+ this.selection.set(nodes, browserEvent);
1986
+ const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);
1987
+ this.view.setSelection(indexes, browserEvent, true);
1988
+ });
1989
+ }
1990
+ getSelection() {
1991
+ return this.selection.get();
1992
+ }
1993
+ setFocus(elements, browserEvent) {
1994
+ this.eventBufferer.bufferEvents(() => {
1995
+ const nodes = elements.map(e => this.model.getNode(e));
1996
+ this.focus.set(nodes, browserEvent);
1997
+ const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);
1998
+ this.view.setFocus(indexes, browserEvent, true);
1999
+ });
2000
+ }
2001
+ focusNext(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2002
+ this.view.focusNext(n, loop, browserEvent, filter);
2003
+ }
2004
+ focusPrevious(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2005
+ this.view.focusPrevious(n, loop, browserEvent, filter);
2006
+ }
2007
+ focusNextPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2008
+ return this.view.focusNextPage(browserEvent, filter);
2009
+ }
2010
+ focusPreviousPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2011
+ return this.view.focusPreviousPage(browserEvent, filter, () => this.stickyScrollController?.height ?? 0);
2012
+ }
2013
+ focusLast(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2014
+ this.view.focusLast(browserEvent, filter);
2015
+ }
2016
+ focusFirst(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {
2017
+ this.view.focusFirst(browserEvent, filter);
2018
+ }
2019
+ getFocus() {
2020
+ return this.focus.get();
2021
+ }
2022
+ reveal(location, relativeTop) {
2023
+ this.model.expandTo(location);
2024
+ const index = this.model.getListIndex(location);
2025
+ if (index === -1) {
2026
+ return;
2027
+ }
2028
+ if (!this.stickyScrollController) {
2029
+ this.view.reveal(index, relativeTop);
2030
+ }
2031
+ else {
2032
+ const paddingTop = this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(location));
2033
+ this.view.reveal(index, relativeTop, paddingTop);
2034
+ }
2035
+ }
2036
+ // List
2037
+ onLeftArrow(e) {
2038
+ e.preventDefault();
2039
+ e.stopPropagation();
2040
+ const nodes = this.view.getFocusedElements();
2041
+ if (nodes.length === 0) {
2042
+ return;
2043
+ }
2044
+ const node = nodes[0];
2045
+ const location = this.model.getNodeLocation(node);
2046
+ const didChange = this.model.setCollapsed(location, true);
2047
+ if (!didChange) {
2048
+ const parentLocation = this.model.getParentNodeLocation(location);
2049
+ if (!parentLocation) {
2050
+ return;
2051
+ }
2052
+ const parentListIndex = this.model.getListIndex(parentLocation);
2053
+ this.view.reveal(parentListIndex);
2054
+ this.view.setFocus([parentListIndex]);
2055
+ }
2056
+ }
2057
+ onRightArrow(e) {
2058
+ e.preventDefault();
2059
+ e.stopPropagation();
2060
+ const nodes = this.view.getFocusedElements();
2061
+ if (nodes.length === 0) {
2062
+ return;
2063
+ }
2064
+ const node = nodes[0];
2065
+ const location = this.model.getNodeLocation(node);
2066
+ const didChange = this.model.setCollapsed(location, false);
2067
+ if (!didChange) {
2068
+ if (!node.children.some(child => child.visible)) {
2069
+ return;
2070
+ }
2071
+ const [focusedIndex] = this.view.getFocus();
2072
+ const firstChildIndex = focusedIndex + 1;
2073
+ this.view.reveal(firstChildIndex);
2074
+ this.view.setFocus([firstChildIndex]);
2075
+ }
2076
+ }
2077
+ onSpace(e) {
2078
+ e.preventDefault();
2079
+ e.stopPropagation();
2080
+ const nodes = this.view.getFocusedElements();
2081
+ if (nodes.length === 0) {
2082
+ return;
2083
+ }
2084
+ const node = nodes[0];
2085
+ const location = this.model.getNodeLocation(node);
2086
+ const recursive = e.browserEvent.altKey;
2087
+ this.model.setCollapsed(location, undefined, recursive);
2088
+ }
2089
+ dispose() {
2090
+ dispose(this.disposables);
2091
+ this.stickyScrollController?.dispose();
2092
+ this.view.dispose();
2093
+ }
2094
+ }