@umbraco-cms/backoffice 17.1.0 → 17.2.0-rc2

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 (629) hide show
  1. package/{dist-cms/custom-elements.json → custom-elements.json} +817 -721
  2. package/dist-cms/apps/app/app.element.js +1 -0
  3. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +4 -5
  4. package/dist-cms/assets/lang/ar.js +3 -2
  5. package/dist-cms/assets/lang/bs.js +3 -2
  6. package/dist-cms/assets/lang/cs.js +2 -1
  7. package/dist-cms/assets/lang/cy.js +3 -2
  8. package/dist-cms/assets/lang/da.js +4 -2
  9. package/dist-cms/assets/lang/de.js +2 -1
  10. package/dist-cms/assets/lang/en.js +9 -2
  11. package/dist-cms/assets/lang/es.js +5 -1
  12. package/dist-cms/assets/lang/fr.js +2 -1
  13. package/dist-cms/assets/lang/he.js +2 -1
  14. package/dist-cms/assets/lang/hr.js +3 -2
  15. package/dist-cms/assets/lang/it.js +2 -1
  16. package/dist-cms/assets/lang/ja.js +2 -1
  17. package/dist-cms/assets/lang/ko.js +2 -1
  18. package/dist-cms/assets/lang/nb.js +2 -1
  19. package/dist-cms/assets/lang/nl.js +2 -1
  20. package/dist-cms/assets/lang/pl.js +2 -1
  21. package/dist-cms/assets/lang/pt-br.js +2 -1
  22. package/dist-cms/assets/lang/pt.js +3 -2
  23. package/dist-cms/assets/lang/ru.js +2 -1
  24. package/dist-cms/assets/lang/sv.js +2 -1
  25. package/dist-cms/assets/lang/tr.js +2 -1
  26. package/dist-cms/assets/lang/uk.js +2 -1
  27. package/dist-cms/assets/lang/vi.js +3 -2
  28. package/dist-cms/assets/lang/zh-tw.js +2 -1
  29. package/dist-cms/assets/lang/zh.js +2 -1
  30. package/dist-cms/external/uui/package.json +2 -2
  31. package/dist-cms/libs/class-api/package.json +8 -0
  32. package/dist-cms/libs/class-api/vite.config.d.ts +2 -0
  33. package/dist-cms/libs/class-api/vite.config.js +15 -0
  34. package/dist-cms/libs/context-api/package.json +8 -0
  35. package/dist-cms/libs/context-api/vite.config.d.ts +2 -0
  36. package/dist-cms/libs/context-api/vite.config.js +15 -0
  37. package/dist-cms/libs/context-proxy/package.json +8 -0
  38. package/dist-cms/libs/context-proxy/vite.config.d.ts +2 -0
  39. package/dist-cms/libs/context-proxy/vite.config.js +15 -0
  40. package/dist-cms/libs/controller-api/package.json +8 -0
  41. package/dist-cms/libs/controller-api/vite.config.d.ts +2 -0
  42. package/dist-cms/libs/controller-api/vite.config.js +15 -0
  43. package/dist-cms/libs/element-api/package.json +8 -0
  44. package/dist-cms/libs/element-api/vite.config.d.ts +2 -0
  45. package/dist-cms/libs/element-api/vite.config.js +15 -0
  46. package/dist-cms/libs/extension-api/functions/load-manifest-api.function.js +9 -1
  47. package/dist-cms/libs/extension-api/functions/load-manifest-element.function.js +9 -1
  48. package/dist-cms/libs/extension-api/functions/load-manifest-plain-js.function.d.ts +2 -2
  49. package/dist-cms/libs/extension-api/functions/load-manifest-plain-js.function.js +7 -4
  50. package/dist-cms/libs/extension-api/package.json +8 -0
  51. package/dist-cms/libs/extension-api/types/utils.d.ts +4 -4
  52. package/dist-cms/libs/extension-api/vite.config.d.ts +2 -0
  53. package/dist-cms/libs/extension-api/vite.config.js +15 -0
  54. package/dist-cms/libs/localization-api/package.json +8 -0
  55. package/dist-cms/libs/localization-api/vite.config.d.ts +2 -0
  56. package/dist-cms/libs/localization-api/vite.config.js +15 -0
  57. package/dist-cms/libs/observable-api/package.json +8 -0
  58. package/dist-cms/libs/observable-api/vite.config.d.ts +2 -0
  59. package/dist-cms/libs/observable-api/vite.config.js +15 -0
  60. package/dist-cms/packages/block/block/conditions/manifests.js +6 -3
  61. package/dist-cms/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.js +1 -1
  62. package/dist-cms/packages/block/block/workspace/block-element-property-dataset.context.js +0 -6
  63. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.d.ts +2 -1
  64. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +17 -12
  65. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.d.ts +1 -0
  66. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +46 -38
  67. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.d.ts +3 -3
  68. package/dist-cms/packages/block/block-grid/components/block-grid-area/block-grid-area.element.js +5 -5
  69. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.context.js +5 -1
  70. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +2 -2
  71. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/manifests.js +6 -6
  72. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +6 -1
  73. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.d.ts +1 -0
  74. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.js +3 -15
  75. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +0 -3
  76. package/dist-cms/packages/block/block-rte/types.d.ts +1 -0
  77. package/dist-cms/packages/block/block-single/property-editors/block-single-editor/manifests.js +2 -2
  78. package/dist-cms/packages/block/block-single/property-editors/block-single-editor/property-editor-ui-block-single.element.js +6 -1
  79. package/dist-cms/packages/clipboard/clipboard-entry/detail/manifests.js +2 -1
  80. package/dist-cms/packages/clipboard/clipboard-entry/item/manifests.js +2 -1
  81. package/dist-cms/packages/content/content/collection/workspace-has-content-collection/manifests.js +2 -1
  82. package/dist-cms/packages/content/content/conditions/has-properties/content-has-properties.condition.manifest.js +2 -1
  83. package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +10 -15
  84. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +2 -2
  85. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +24 -14
  86. package/dist-cms/packages/content/content/workspace/content-detail-workspace-type-transform.controller.js +73 -29
  87. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.d.ts +1 -0
  88. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +17 -9
  89. package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.d.ts +6 -0
  90. package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.js +26 -1
  91. package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.js +21 -1
  92. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +2 -1
  93. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-properties.element.js +13 -2
  94. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.js +13 -15
  95. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +13 -3
  96. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.d.ts +1 -0
  97. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +12 -6
  98. package/dist-cms/packages/core/auth/auth.context.js +15 -12
  99. package/dist-cms/packages/core/backend-api/types.gen.d.ts +33 -0
  100. package/dist-cms/packages/core/collection/action/collection-action-button.element.js +1 -1
  101. package/dist-cms/packages/core/collection/action/create/collection-create-action.element.js +1 -1
  102. package/dist-cms/packages/core/collection/bulk-action/collection-bulk-action.manager.d.ts +9 -4
  103. package/dist-cms/packages/core/collection/bulk-action/collection-bulk-action.manager.js +39 -9
  104. package/dist-cms/packages/core/collection/collection-item-picker-modal/collection-item-picker-modal.element.d.ts +2 -0
  105. package/dist-cms/packages/core/collection/collection-item-picker-modal/collection-item-picker-modal.element.js +72 -16
  106. package/dist-cms/packages/core/collection/collection-item-picker-modal/types.d.ts +2 -1
  107. package/dist-cms/packages/core/collection/collection.element.d.ts +1 -0
  108. package/dist-cms/packages/core/collection/collection.element.js +6 -0
  109. package/dist-cms/packages/core/collection/components/collection-filter-field.element.js +2 -2
  110. package/dist-cms/packages/core/collection/components/collection-selection-actions.element.d.ts +1 -0
  111. package/dist-cms/packages/core/collection/components/collection-selection-actions.element.js +9 -0
  112. package/dist-cms/packages/core/collection/components/collection-toolbar.element.d.ts +1 -0
  113. package/dist-cms/packages/core/collection/components/collection-toolbar.element.js +4 -0
  114. package/dist-cms/packages/core/collection/conditions/collection-has-items.condition.d.ts +7 -0
  115. package/dist-cms/packages/core/collection/conditions/collection-has-items.condition.js +12 -0
  116. package/dist-cms/packages/core/collection/conditions/constants.d.ts +1 -0
  117. package/dist-cms/packages/core/collection/conditions/constants.js +1 -0
  118. package/dist-cms/packages/core/collection/conditions/index.d.ts +1 -0
  119. package/dist-cms/packages/core/collection/conditions/index.js +1 -0
  120. package/dist-cms/packages/core/collection/conditions/manifests.js +10 -2
  121. package/dist-cms/packages/core/collection/conditions/types.d.ts +4 -1
  122. package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +7 -4
  123. package/dist-cms/packages/core/collection/default/collection-default.context.js +36 -17
  124. package/dist-cms/packages/core/collection/filter/manifests.d.ts +2 -0
  125. package/dist-cms/packages/core/collection/filter/manifests.js +2 -0
  126. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-api.interface.d.ts +13 -0
  127. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-api.interface.js +1 -0
  128. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-element.interface.d.ts +7 -0
  129. package/dist-cms/packages/core/collection/filter/text/collection-text-filter-element.interface.js +1 -0
  130. package/dist-cms/packages/core/collection/filter/text/collection-text-filter.extension.d.ts +11 -0
  131. package/dist-cms/packages/core/collection/filter/text/collection-text-filter.extension.js +1 -0
  132. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.api.d.ts +25 -0
  133. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.api.js +47 -0
  134. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.element.d.ts +32 -0
  135. package/dist-cms/packages/core/collection/filter/text/default-collection-text-filter.element.js +73 -0
  136. package/dist-cms/packages/core/collection/filter/text/manifests.d.ts +2 -0
  137. package/dist-cms/packages/core/collection/filter/text/manifests.js +14 -0
  138. package/dist-cms/packages/core/collection/filter/text/types.d.ts +3 -0
  139. package/dist-cms/packages/core/collection/filter/text/types.js +1 -0
  140. package/dist-cms/packages/core/collection/filter/types.d.ts +1 -0
  141. package/dist-cms/packages/core/collection/filter/types.js +1 -0
  142. package/dist-cms/packages/core/collection/index.d.ts +1 -0
  143. package/dist-cms/packages/core/collection/index.js +1 -0
  144. package/dist-cms/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.d.ts +5 -2
  145. package/dist-cms/packages/core/collection/item/entity-collection-item-card/default-collection-item-card.element.js +11 -5
  146. package/dist-cms/packages/core/collection/manifests.js +3 -1
  147. package/dist-cms/packages/core/collection/selection/collection-selection.manager.d.ts +17 -0
  148. package/dist-cms/packages/core/collection/selection/collection-selection.manager.js +29 -0
  149. package/dist-cms/packages/core/collection/selection/types.d.ts +7 -0
  150. package/dist-cms/packages/core/collection/selection/types.js +1 -0
  151. package/dist-cms/packages/core/collection/types.d.ts +9 -1
  152. package/dist-cms/packages/core/collection/view/card/card-collection-view.element.js +18 -5
  153. package/dist-cms/packages/core/collection/view/index.d.ts +1 -0
  154. package/dist-cms/packages/core/collection/view/index.js +1 -0
  155. package/dist-cms/packages/core/collection/view/ref/ref-collection-view.element.js +10 -2
  156. package/dist-cms/packages/core/collection/view/umb-collection-view-element-base.d.ts +13 -0
  157. package/dist-cms/packages/core/collection/view/umb-collection-view-element-base.js +33 -0
  158. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.d.ts +3 -1
  159. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +54 -24
  160. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +1 -1
  161. package/dist-cms/packages/core/components/code-block/code-block.element.js +1 -0
  162. package/dist-cms/packages/core/components/figure-card/figure-card.element.d.ts +33 -0
  163. package/dist-cms/packages/core/components/figure-card/figure-card.element.js +241 -0
  164. package/dist-cms/packages/core/components/index.d.ts +1 -0
  165. package/dist-cms/packages/core/components/index.js +1 -0
  166. package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +2 -3
  167. package/dist-cms/packages/core/components/split-panel/split-panel.element.js +2 -3
  168. package/dist-cms/packages/core/components/table/table.element.d.ts +14 -2
  169. package/dist-cms/packages/core/components/table/table.element.js +46 -18
  170. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  171. package/dist-cms/packages/core/entity/entity-type/manifests.js +2 -1
  172. package/dist-cms/packages/core/entity/entity-unique/manifests.js +2 -1
  173. package/dist-cms/packages/core/entity-action/common/delete/delete.action.js +13 -0
  174. package/dist-cms/packages/core/entity-action/entity-action-list.element.d.ts +1 -0
  175. package/dist-cms/packages/core/entity-action/entity-action-list.element.js +6 -9
  176. package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.d.ts +1 -0
  177. package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.js +24 -5
  178. package/dist-cms/packages/core/entity-action/has-children/condition/entity-has-children.condition.manifest.js +2 -1
  179. package/dist-cms/packages/core/entity-item/entity-item-ref/default-item-ref.element.d.ts +1 -0
  180. package/dist-cms/packages/core/entity-item/entity-item-ref/default-item-ref.element.js +5 -0
  181. package/dist-cms/packages/core/entity-item/index.d.ts +1 -0
  182. package/dist-cms/packages/core/entity-item/index.js +1 -0
  183. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.d.ts +2 -1
  184. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.js +82 -107
  185. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.d.ts +2 -2
  186. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.js +2 -2
  187. package/dist-cms/packages/core/entity-sign/kinds/icon/index.js +1 -0
  188. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.js +4 -2
  189. package/dist-cms/packages/core/entry-point.d.ts +8 -8
  190. package/dist-cms/packages/core/entry-point.js +12 -11
  191. package/dist-cms/packages/core/event/closed.event.d.ts +5 -0
  192. package/dist-cms/packages/core/event/delete.event.d.ts +6 -0
  193. package/dist-cms/packages/core/event/delete.event.js +2 -1
  194. package/dist-cms/packages/core/event/deselected.event.d.ts +5 -0
  195. package/dist-cms/packages/core/event/input.event.d.ts +1 -0
  196. package/dist-cms/packages/core/event/input.event.js +2 -1
  197. package/dist-cms/packages/core/event/opened.event.d.ts +5 -0
  198. package/dist-cms/packages/core/event/selected.event.d.ts +5 -0
  199. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +9 -11
  200. package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +18 -14
  201. package/dist-cms/packages/core/modal/conditions/in-modal/constants.d.ts +1 -0
  202. package/dist-cms/packages/core/modal/conditions/in-modal/constants.js +1 -0
  203. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition-config.d.ts +15 -0
  204. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition-config.js +1 -0
  205. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.d.ts +8 -0
  206. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.js +19 -0
  207. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.manifest.d.ts +2 -0
  208. package/dist-cms/packages/core/modal/conditions/in-modal/in-modal.condition.manifest.js +8 -0
  209. package/dist-cms/packages/core/modal/conditions/index.d.ts +2 -0
  210. package/dist-cms/packages/core/modal/conditions/index.js +1 -0
  211. package/dist-cms/packages/core/modal/conditions/manifests.d.ts +1 -0
  212. package/dist-cms/packages/core/modal/conditions/manifests.js +2 -0
  213. package/dist-cms/packages/core/modal/conditions/types.d.ts +1 -0
  214. package/dist-cms/packages/core/modal/conditions/types.js +1 -0
  215. package/dist-cms/packages/core/modal/context/index.d.ts +2 -1
  216. package/dist-cms/packages/core/modal/context/index.js +2 -1
  217. package/dist-cms/packages/core/modal/context/modal-manager.context-token.d.ts +3 -0
  218. package/dist-cms/packages/core/modal/context/modal-manager.context-token.js +2 -0
  219. package/dist-cms/packages/core/modal/context/modal-manager.context.d.ts +1 -2
  220. package/dist-cms/packages/core/modal/context/modal-manager.context.js +2 -2
  221. package/dist-cms/packages/core/modal/context/modal.context.js +2 -1
  222. package/dist-cms/packages/core/modal/index.d.ts +1 -0
  223. package/dist-cms/packages/core/modal/index.js +1 -0
  224. package/dist-cms/packages/core/modal/manifests.js +2 -1
  225. package/dist-cms/packages/core/models/index.d.ts +10 -0
  226. package/dist-cms/packages/core/package.json +1 -1
  227. package/dist-cms/packages/core/picker/search/picker-search-field.element.js +1 -10
  228. package/dist-cms/packages/core/picker/search/picker-search-result.element.d.ts +2 -1
  229. package/dist-cms/packages/core/picker/search/picker-search-result.element.js +26 -3
  230. package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.d.ts +1 -0
  231. package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.js +9 -1
  232. package/dist-cms/packages/core/picker-input/picker-input.context.d.ts +25 -0
  233. package/dist-cms/packages/core/picker-input/picker-input.context.js +83 -12
  234. package/dist-cms/packages/core/property/components/property/index.d.ts +1 -0
  235. package/dist-cms/packages/core/property/components/property/index.js +1 -0
  236. package/dist-cms/packages/core/property/components/property/property.context-token.d.ts +4 -0
  237. package/dist-cms/packages/core/property/components/property/property.context-token.js +3 -0
  238. package/dist-cms/packages/core/property/components/property/property.context.d.ts +0 -2
  239. package/dist-cms/packages/core/property/components/property/property.context.js +1 -2
  240. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  241. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.d.ts +21 -0
  242. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.js +115 -36
  243. package/dist-cms/packages/core/property-editor-data-source/item/data/manifests.js +2 -1
  244. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.d.ts +18 -0
  245. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.js +63 -0
  246. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.kind.d.ts +2 -0
  247. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.kind.js +16 -0
  248. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/index.d.ts +1 -0
  249. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/index.js +1 -0
  250. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/manifests.d.ts +2 -0
  251. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/manifests.js +2 -0
  252. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/types.d.ts +14 -0
  253. package/dist-cms/packages/core/recycle-bin/collection-action/empty-recycle-bin/types.js +1 -0
  254. package/dist-cms/packages/core/recycle-bin/collection-action/index.d.ts +1 -0
  255. package/dist-cms/packages/core/recycle-bin/collection-action/index.js +1 -0
  256. package/dist-cms/packages/core/recycle-bin/collection-action/manifests.d.ts +2 -0
  257. package/dist-cms/packages/core/recycle-bin/collection-action/manifests.js +2 -0
  258. package/dist-cms/packages/core/recycle-bin/conditions/is-not-trashed/entity-is-not-trashed.condition.manifest.js +2 -1
  259. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.d.ts +2 -2
  260. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.js +2 -2
  261. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.manifest.js +2 -1
  262. package/dist-cms/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.js +3 -3
  263. package/dist-cms/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.js +1 -1
  264. package/dist-cms/packages/core/recycle-bin/index.d.ts +2 -1
  265. package/dist-cms/packages/core/recycle-bin/manifests.js +2 -0
  266. package/dist-cms/packages/core/router/path-pattern.class.d.ts +6 -0
  267. package/dist-cms/packages/core/router/path-pattern.class.js +11 -2
  268. package/dist-cms/packages/core/router/route/forbidden/route-forbidden.element.js +1 -1
  269. package/dist-cms/packages/core/router/route/index.d.ts +1 -0
  270. package/dist-cms/packages/core/router/route/index.js +1 -0
  271. package/dist-cms/packages/core/router/route/route.context-token.d.ts +3 -0
  272. package/dist-cms/packages/core/router/route/route.context-token.js +2 -0
  273. package/dist-cms/packages/core/router/route/route.context.d.ts +1 -2
  274. package/dist-cms/packages/core/router/route/route.context.js +5 -3
  275. package/dist-cms/packages/core/router/route/router-slot.element.d.ts +1 -1
  276. package/dist-cms/packages/core/router/route/router-slot.element.js +17 -15
  277. package/dist-cms/packages/core/router/router-slot/router-slot.js +2 -0
  278. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +1 -1
  279. package/dist-cms/packages/core/temporary-file/config/manifests.js +2 -1
  280. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  281. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  282. package/dist-cms/packages/core/tree/default/default-tree.context.d.ts +2 -2
  283. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.js +6 -2
  284. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +21 -0
  285. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +35 -5
  286. package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.element.js +9 -8
  287. package/dist-cms/packages/core/utils/debounce/debounce.function.d.ts +12 -1
  288. package/dist-cms/packages/core/utils/debounce/debounce.function.js +15 -4
  289. package/dist-cms/packages/core/validation/controllers/form-control-validator.controller.js +2 -1
  290. package/dist-cms/packages/core/validation/controllers/validation.controller.js +20 -22
  291. package/dist-cms/packages/core/validation/events/validation-valid.event.d.ts +5 -0
  292. package/dist-cms/packages/core/validation/utils/replace-start-of-path.function.js +1 -1
  293. package/dist-cms/packages/core/variant/context/variant.context.js +1 -0
  294. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +10 -6
  295. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.d.ts +7 -0
  296. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +7 -0
  297. package/dist-cms/packages/core/workspace/conditions/constants.d.ts +1 -0
  298. package/dist-cms/packages/core/workspace/conditions/constants.js +1 -0
  299. package/dist-cms/packages/core/workspace/conditions/manifests.js +2 -0
  300. package/dist-cms/packages/core/workspace/conditions/types.d.ts +1 -0
  301. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/constants.d.ts +1 -0
  302. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/constants.js +1 -0
  303. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/manifests.d.ts +2 -0
  304. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/manifests.js +7 -0
  305. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/types.d.ts +9 -0
  306. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/types.js +1 -0
  307. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/workspace-is-loaded.condition.d.ts +7 -0
  308. package/dist-cms/packages/core/workspace/conditions/workspace-is-loaded/workspace-is-loaded.condition.js +14 -0
  309. package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.d.ts +1 -0
  310. package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.js +28 -0
  311. package/dist-cms/packages/core/workspace/modals/workspace-modal.element.js +4 -2
  312. package/dist-cms/packages/core/workspace/paths.d.ts +16 -0
  313. package/dist-cms/packages/core/workspace/paths.js +2 -0
  314. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/constants.d.ts +1 -0
  315. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/constants.js +1 -0
  316. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/data-type-allow-delete-action.condition.d.ts +8 -0
  317. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/data-type-allow-delete-action.condition.js +26 -0
  318. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/index.d.ts +1 -0
  319. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/index.js +1 -0
  320. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/manifest.d.ts +1 -0
  321. package/dist-cms/packages/data-type/entity-actions/conditions/allow-delete/manifest.js +9 -0
  322. package/dist-cms/packages/data-type/entity-actions/conditions/manifests.d.ts +1 -0
  323. package/dist-cms/packages/data-type/entity-actions/conditions/manifests.js +2 -0
  324. package/dist-cms/packages/data-type/entity-actions/constants.d.ts +1 -0
  325. package/dist-cms/packages/data-type/entity-actions/constants.js +1 -0
  326. package/dist-cms/packages/data-type/entity-actions/manifests.js +8 -0
  327. package/dist-cms/packages/data-type/manifests.js +2 -1
  328. package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.d.ts +1 -0
  329. package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +39 -16
  330. package/dist-cms/packages/data-type/repository/detail/manifests.js +2 -1
  331. package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.js +1 -0
  332. package/dist-cms/packages/data-type/repository/item/manifests.js +2 -1
  333. package/dist-cms/packages/data-type/repository/item/types.d.ts +1 -0
  334. package/dist-cms/packages/data-type/tree/folder/repository/manifests.js +2 -1
  335. package/dist-cms/packages/data-type/tree/manifests.js +2 -1
  336. package/dist-cms/packages/data-type/tree/tree-item-children/collection/views/data-type-tree-item-table-collection-view.element.js +1 -1
  337. package/dist-cms/packages/dictionary/manifests.js +2 -1
  338. package/dist-cms/packages/dictionary/repository/detail/manifests.js +2 -1
  339. package/dist-cms/packages/dictionary/repository/item/manifests.js +2 -1
  340. package/dist-cms/packages/dictionary/tree/manifests.js +2 -1
  341. package/dist-cms/packages/documents/document-blueprints/manifests.js +2 -1
  342. package/dist-cms/packages/documents/document-blueprints/repository/detail/manifests.js +2 -1
  343. package/dist-cms/packages/documents/document-blueprints/repository/item/manifests.js +2 -1
  344. package/dist-cms/packages/documents/document-blueprints/tree/folder/repository/manifests.js +2 -1
  345. package/dist-cms/packages/documents/document-blueprints/tree/manifests.js +2 -1
  346. package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.js +2 -2
  347. package/dist-cms/packages/documents/document-types/manifests.js +2 -1
  348. package/dist-cms/packages/documents/document-types/repository/detail/manifests.js +2 -1
  349. package/dist-cms/packages/documents/document-types/repository/item/manifests.js +2 -1
  350. package/dist-cms/packages/documents/document-types/tree/folder/repository/manifests.js +2 -1
  351. package/dist-cms/packages/documents/document-types/tree/manifests.js +2 -1
  352. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-allow-edit-invariant-from-non-default-controller-base.d.ts +19 -0
  353. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-allow-edit-invariant-from-non-default-controller-base.js +45 -0
  354. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-block-workspace-allow-edit-invariant-from-non-default.controller.d.ts +6 -0
  355. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-block-workspace-allow-edit-invariant-from-non-default.controller.js +74 -0
  356. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-workspace-allow-edit-invariant-from-non-default.controller.d.ts +5 -0
  357. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/document-workspace-allow-edit-invariant-from-non-default.controller.js +18 -0
  358. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/manifests.d.ts +1 -0
  359. package/dist-cms/packages/documents/documents/allow-edit-invariant-from-non-default/manifests.js +29 -0
  360. package/dist-cms/packages/documents/documents/collection/action/create-document-collection-action.element.js +2 -2
  361. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +5 -0
  362. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +5 -0
  363. package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/create-blueprint.action.d.ts +2 -2
  364. package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/create-blueprint.action.js +2 -2
  365. package/dist-cms/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.js +1 -1
  366. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.js +1 -1
  367. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.js +1 -1
  368. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.js +1 -1
  369. package/dist-cms/packages/documents/documents/item/repository/manifests.js +2 -1
  370. package/dist-cms/packages/documents/documents/manifests.js +4 -1
  371. package/dist-cms/packages/documents/documents/modals/shared/document-variant-language-picker.element.d.ts +2 -1
  372. package/dist-cms/packages/documents/documents/modals/shared/document-variant-language-picker.element.js +17 -2
  373. package/dist-cms/packages/documents/documents/preview/workspace-action-menu-item/preview-option.action.d.ts +2 -2
  374. package/dist-cms/packages/documents/documents/preview/workspace-action-menu-item/preview-option.action.js +2 -2
  375. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.d.ts +15 -0
  376. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.js +137 -67
  377. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +1 -2
  378. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.d.ts +1 -0
  379. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.js +46 -66
  380. package/dist-cms/packages/documents/documents/recycle-bin/collection-action/manifests.d.ts +1 -0
  381. package/dist-cms/packages/documents/documents/recycle-bin/collection-action/manifests.js +23 -0
  382. package/dist-cms/packages/documents/documents/recycle-bin/manifests.js +4 -1
  383. package/dist-cms/packages/documents/documents/recycle-bin/tree/data/manifests.js +2 -1
  384. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +1 -2
  385. package/dist-cms/packages/documents/documents/repository/detail/manifests.js +2 -1
  386. package/dist-cms/packages/documents/documents/rollback/modal/rollback-modal.element.d.ts +1 -0
  387. package/dist-cms/packages/documents/documents/rollback/modal/rollback-modal.element.js +34 -7
  388. package/dist-cms/packages/documents/documents/tree/manifests.js +2 -1
  389. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  390. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +1 -0
  391. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.d.ts +1 -1
  392. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +9 -4
  393. package/dist-cms/packages/documents/documents/tree/utils.d.ts +7 -0
  394. package/dist-cms/packages/documents/documents/tree/utils.js +8 -0
  395. package/dist-cms/packages/documents/documents/types.d.ts +1 -0
  396. package/dist-cms/packages/documents/documents/url/repository/manifests.js +2 -1
  397. package/dist-cms/packages/documents/documents/user-permissions/document/conditions/manifests.js +2 -1
  398. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.js +1 -1
  399. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.js +1 -1
  400. package/dist-cms/packages/documents/documents/utils.d.ts +7 -1
  401. package/dist-cms/packages/documents/documents/utils.js +35 -7
  402. package/dist-cms/packages/documents/documents/workspace/conditions/is-not-trashed/document-is-not-trashed.condition.manifest.js +2 -1
  403. package/dist-cms/packages/documents/documents/workspace/conditions/is-trashed/document-is-trashed.condition.manifest.js +2 -1
  404. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +11 -1
  405. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.d.ts +2 -1
  406. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +0 -29
  407. package/dist-cms/packages/extension-insights/collection/views/table/extension-table-collection-view.element.js +1 -0
  408. package/dist-cms/packages/language/conditions/language-user-permission/manifests.js +2 -1
  409. package/dist-cms/packages/language/manifests.js +2 -1
  410. package/dist-cms/packages/language/repository/detail/manifests.js +2 -1
  411. package/dist-cms/packages/language/repository/item/manifests.js +2 -1
  412. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +18 -4
  413. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.d.ts +1 -1
  414. package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.js +0 -1
  415. package/dist-cms/packages/media/dropzone/dropzone-change.event.js +1 -0
  416. package/dist-cms/packages/media/dropzone/dropzone-submitted.event.d.ts +5 -0
  417. package/dist-cms/packages/media/imaging/components/imaging-thumbnail.element.js +2 -1
  418. package/dist-cms/packages/media/imaging/manifests.js +2 -1
  419. package/dist-cms/packages/media/media/components/input-image-cropper/crop-change.event.d.ts +5 -0
  420. package/dist-cms/packages/media/media/components/input-image-cropper/focalpoint-change.event.d.ts +5 -0
  421. package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.js +2 -1
  422. package/dist-cms/packages/media/media/components/input-image-cropper/utils.d.ts +6 -0
  423. package/dist-cms/packages/media/media/components/input-image-cropper/utils.js +7 -0
  424. package/dist-cms/packages/media/media/components/input-media/input-media.context.js +5 -0
  425. package/dist-cms/packages/media/media/components/input-rich-media/input-rich-media.element.js +1 -0
  426. package/dist-cms/packages/media/media/dropzone/dropzone-media.element.js +44 -38
  427. package/dist-cms/packages/media/media/index.d.ts +1 -1
  428. package/dist-cms/packages/media/media/index.js +1 -1
  429. package/dist-cms/packages/media/media/manifests.js +2 -1
  430. package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.d.ts +1 -0
  431. package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.js +1 -0
  432. package/dist-cms/packages/media/media/modals/image-cropper-editor/index.d.ts +0 -2
  433. package/dist-cms/packages/media/media/modals/image-cropper-editor/index.js +0 -2
  434. package/dist-cms/packages/media/media/modals/media-caption-alt-text/index.d.ts +1 -1
  435. package/dist-cms/packages/media/media/modals/media-caption-alt-text/index.js +1 -1
  436. package/dist-cms/packages/media/media/modals/media-picker/index.d.ts +0 -2
  437. package/dist-cms/packages/media/media/modals/media-picker/index.js +0 -2
  438. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.d.ts +1 -0
  439. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +39 -10
  440. package/dist-cms/packages/media/media/recycle-bin/collection-action/manifests.d.ts +1 -0
  441. package/dist-cms/packages/media/media/recycle-bin/collection-action/manifests.js +23 -0
  442. package/dist-cms/packages/media/media/recycle-bin/manifests.js +2 -0
  443. package/dist-cms/packages/media/media/recycle-bin/tree/manifests.js +2 -1
  444. package/dist-cms/packages/media/media/repository/detail/manifests.js +2 -1
  445. package/dist-cms/packages/media/media/repository/item/manifests.js +2 -1
  446. package/dist-cms/packages/media/media/tree/manifests.js +2 -1
  447. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.context.d.ts +1 -0
  448. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.context.js +3 -1
  449. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.element.d.ts +3 -1
  450. package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.element.js +11 -4
  451. package/dist-cms/packages/media/media/tree/utils.d.ts +7 -0
  452. package/dist-cms/packages/media/media/tree/utils.js +8 -0
  453. package/dist-cms/packages/media/media/url/repository/manifests.js +2 -1
  454. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.d.ts +2 -1
  455. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +28 -4
  456. package/dist-cms/packages/media/media-types/components/input-media-type/input-media-type.element.js +7 -3
  457. package/dist-cms/packages/media/media-types/manifests.js +2 -1
  458. package/dist-cms/packages/media/media-types/repository/detail/manifests.js +2 -1
  459. package/dist-cms/packages/media/media-types/repository/item/manifests.js +2 -1
  460. package/dist-cms/packages/media/media-types/tree/folder/repository/manifests.js +2 -1
  461. package/dist-cms/packages/media/media-types/tree/manifests.js +2 -1
  462. package/dist-cms/packages/media/umbraco-package.d.ts +2 -1
  463. package/dist-cms/packages/media/umbraco-package.js +2 -1
  464. package/dist-cms/packages/members/member/collection/action/create-member-collection-action.element.d.ts +3 -3
  465. package/dist-cms/packages/members/member/collection/action/create-member-collection-action.element.js +6 -6
  466. package/dist-cms/packages/members/member/collection/types.d.ts +2 -4
  467. package/dist-cms/packages/members/member/item/repository/manifests.js +2 -1
  468. package/dist-cms/packages/members/member/manifests.js +2 -1
  469. package/dist-cms/packages/members/member/repository/detail/manifests.js +2 -1
  470. package/dist-cms/packages/members/member-group/manifests.js +2 -1
  471. package/dist-cms/packages/members/member-group/repository/detail/manifests.js +2 -1
  472. package/dist-cms/packages/members/member-group/repository/item/manifests.js +2 -1
  473. package/dist-cms/packages/members/member-public-access/modal/public-access-modal.element.d.ts +2 -0
  474. package/dist-cms/packages/members/member-public-access/modal/public-access-modal.element.js +90 -24
  475. package/dist-cms/packages/members/member-type/components/input-member-type/input-member-type.element.js +4 -0
  476. package/dist-cms/packages/members/member-type/manifests.js +2 -1
  477. package/dist-cms/packages/members/member-type/repository/detail/manifests.js +2 -1
  478. package/dist-cms/packages/members/member-type/repository/item/manifests.js +2 -1
  479. package/dist-cms/packages/members/member-type/tree/folder/repository/manifests.js +2 -1
  480. package/dist-cms/packages/members/member-type/tree/manifests.js +2 -1
  481. package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js +5 -0
  482. package/dist-cms/packages/packages/package/repository/manifests.js +2 -1
  483. package/dist-cms/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.js +1 -0
  484. package/dist-cms/packages/property-editors/content-picker/dynamic-root/modals/manifests.js +13 -1
  485. package/dist-cms/packages/property-editors/content-picker/property-editor-ui-content-picker.element.js +5 -2
  486. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.context.d.ts +2 -1
  487. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.context.js +10 -6
  488. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.element.d.ts +1 -0
  489. package/dist-cms/packages/property-editors/entity-data-picker/input/input-entity-data.element.js +8 -2
  490. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/constants.d.ts +1 -0
  491. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/constants.js +1 -0
  492. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/manifests.js +12 -1
  493. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/views/manifests.d.ts +1 -0
  494. package/dist-cms/packages/property-editors/entity-data-picker/picker-collection/views/manifests.js +28 -0
  495. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +1 -1
  496. package/dist-cms/packages/property-editors/umbraco-package.d.ts +2 -1
  497. package/dist-cms/packages/property-editors/umbraco-package.js +2 -1
  498. package/dist-cms/packages/relations/relation-types/repository/detail/manifests.js +2 -1
  499. package/dist-cms/packages/static-file/manifests.js +2 -1
  500. package/dist-cms/packages/static-file/repository/item/manifests.js +2 -1
  501. package/dist-cms/packages/static-file/tree/manifests.js +2 -1
  502. package/dist-cms/packages/tags/repository/manifests.js +2 -1
  503. package/dist-cms/packages/templating/partial-views/manifests.js +2 -1
  504. package/dist-cms/packages/templating/partial-views/repository/item/manifests.js +2 -1
  505. package/dist-cms/packages/templating/partial-views/repository/manifests.js +2 -1
  506. package/dist-cms/packages/templating/partial-views/tree/folder/repository/manifests.js +2 -1
  507. package/dist-cms/packages/templating/partial-views/tree/manifests.js +2 -1
  508. package/dist-cms/packages/templating/scripts/manifests.js +2 -1
  509. package/dist-cms/packages/templating/scripts/repository/item/manifests.js +2 -1
  510. package/dist-cms/packages/templating/scripts/repository/manifests.js +2 -1
  511. package/dist-cms/packages/templating/scripts/tree/folder/repository/manifests.js +2 -1
  512. package/dist-cms/packages/templating/scripts/tree/manifests.js +2 -1
  513. package/dist-cms/packages/templating/stylesheets/manifests.js +2 -1
  514. package/dist-cms/packages/templating/stylesheets/repository/item/manifests.js +2 -1
  515. package/dist-cms/packages/templating/stylesheets/repository/manifests.js +2 -1
  516. package/dist-cms/packages/templating/stylesheets/tree/folder/repository/manifests.js +2 -1
  517. package/dist-cms/packages/templating/stylesheets/tree/manifests.js +2 -1
  518. package/dist-cms/packages/templating/templates/manifests.js +2 -1
  519. package/dist-cms/packages/templating/templates/repository/detail/manifests.js +2 -1
  520. package/dist-cms/packages/templating/templates/repository/item/manifests.js +2 -1
  521. package/dist-cms/packages/templating/templates/tree/manifests.js +2 -1
  522. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +6 -0
  523. package/dist-cms/packages/templating/umbraco-package.d.ts +2 -1
  524. package/dist-cms/packages/templating/umbraco-package.js +2 -1
  525. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +1 -1
  526. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.js +18 -9
  527. package/dist-cms/packages/tiptap/extensions/block/block.tiptap-api.js +14 -12
  528. package/dist-cms/packages/tiptap/extensions/block/block.tiptap-extension.js +1 -12
  529. package/dist-cms/packages/tiptap/extensions/heading/heading6.tiptap-toolbar-api.d.ts +1 -1
  530. package/dist-cms/packages/tiptap/extensions/heading/heading6.tiptap-toolbar-api.js +1 -1
  531. package/dist-cms/packages/tiptap/extensions/html-attr-class/html-attr-class.tiptap-extension.js +26 -2
  532. package/dist-cms/packages/tiptap/extensions/link/link.tiptap-extension.d.ts +7 -0
  533. package/dist-cms/packages/tiptap/extensions/link/link.tiptap-extension.js +14 -17
  534. package/dist-cms/packages/tiptap/extensions/style-menu/style-menu.tiptap-toolbar-api.js +1 -0
  535. package/dist-cms/packages/tiptap/extensions/subscript/subscript.tiptap-api.d.ts +1 -1
  536. package/dist-cms/packages/tiptap/extensions/subscript/subscript.tiptap-api.js +1 -1
  537. package/dist-cms/packages/tiptap/extensions/superscript/superscript.tiptap-api.d.ts +1 -1
  538. package/dist-cms/packages/tiptap/extensions/superscript/superscript.tiptap-api.js +1 -1
  539. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-api.d.ts +2 -1
  540. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-api.js +4 -6
  541. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-extension.d.ts +3 -10
  542. package/dist-cms/packages/tiptap/extensions/text-direction/text-direction.tiptap-extension.js +6 -35
  543. package/dist-cms/packages/tiptap/externals.js +1 -4
  544. package/dist-cms/packages/tiptap/package.json +10 -10
  545. package/dist-cms/packages/ufm/plugins/marked-ufm.plugin.js +3 -2
  546. package/dist-cms/packages/umbraco-news/components/umb-news-card.element.d.ts +1 -1
  547. package/dist-cms/packages/umbraco-news/components/umb-news-card.element.js +88 -60
  548. package/dist-cms/packages/umbraco-news/components/umb-news-container.element.js +1 -1
  549. package/dist-cms/packages/user/current-user/conditions/group-id/group-id.condition.manifest.js +2 -1
  550. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.d.ts +2 -2
  551. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.js +2 -2
  552. package/dist-cms/packages/user/current-user/conditions/is-admin/is-admin.condition.manifest.js +2 -1
  553. package/dist-cms/packages/user/current-user/history/manifests.js +2 -1
  554. package/dist-cms/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.d.ts +2 -0
  555. package/dist-cms/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.js +59 -21
  556. package/dist-cms/packages/user/current-user/repository/current-user.repository.js +4 -0
  557. package/dist-cms/packages/user/current-user/repository/current-user.server.data-source.js +1 -1
  558. package/dist-cms/packages/user/current-user/repository/manifests.js +4 -2
  559. package/dist-cms/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.d.ts +3 -4
  560. package/dist-cms/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.js +7 -8
  561. package/dist-cms/packages/user/user/collection/action/manifests.js +5 -0
  562. package/dist-cms/packages/user/user/collection/item/user-collection-item-card.element.js +2 -0
  563. package/dist-cms/packages/user/user/collection/user-collection-header.element.js +4 -4
  564. package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.d.ts +5 -7
  565. package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.js +39 -51
  566. package/dist-cms/packages/user/user/components/user-avatar/user-avatar.element.d.ts +1 -3
  567. package/dist-cms/packages/user/user/components/user-avatar/user-avatar.element.js +2 -2
  568. package/dist-cms/packages/user/user/components/user-input/user-input.element.d.ts +1 -0
  569. package/dist-cms/packages/user/user/components/user-input/user-input.element.js +11 -8
  570. package/dist-cms/packages/user/user/invite/collection-action/manifests.js +5 -0
  571. package/dist-cms/packages/user/user/manifests.js +2 -1
  572. package/dist-cms/packages/user/user/modals/user-picker/user-picker-modal.token.js +3 -3
  573. package/dist-cms/packages/user/user/repository/config/manifests.js +2 -1
  574. package/dist-cms/packages/user/user/repository/detail/manifests.js +2 -1
  575. package/dist-cms/packages/user/user/repository/item/manifests.js +2 -1
  576. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-assign-access/user-workspace-assign-access.element.js +4 -0
  577. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.d.ts +3 -3
  578. package/dist-cms/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.js +14 -11
  579. package/dist-cms/packages/user/user/workspace/user/user-workspace.context.d.ts +1 -3
  580. package/dist-cms/packages/user/user/workspace/user/user-workspace.context.js +2 -2
  581. package/dist-cms/packages/user/user-group/collection/filter/manifests.d.ts +1 -0
  582. package/dist-cms/packages/user/user-group/collection/filter/manifests.js +16 -0
  583. package/dist-cms/packages/user/user-group/collection/manifests.js +5 -4
  584. package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.js +8 -0
  585. package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.server.data-source.js +3 -1
  586. package/dist-cms/packages/user/user-group/collection/types.d.ts +3 -3
  587. package/dist-cms/packages/user/user-group/collection/user-group-collection.context-token.d.ts +7 -2
  588. package/dist-cms/packages/user/user-group/collection/user-group-collection.context-token.js +3 -0
  589. package/dist-cms/packages/user/user-group/collection/views/user-group-table-collection-view.element.js +11 -3
  590. package/dist-cms/packages/user/user-group/components/user-group-ref/user-group-ref.element.d.ts +1 -0
  591. package/dist-cms/packages/user/user-group/components/user-group-ref/user-group-ref.element.js +11 -12
  592. package/dist-cms/packages/user/user-group/manifests.js +2 -1
  593. package/dist-cms/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.js +1 -0
  594. package/dist-cms/packages/user/user-group/repository/detail/manifests.js +2 -1
  595. package/dist-cms/packages/user/user-group/repository/detail/user-group-detail.server.data-source.js +4 -0
  596. package/dist-cms/packages/user/user-group/repository/item/manifests.js +2 -1
  597. package/dist-cms/packages/user/user-group/types.d.ts +1 -0
  598. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace-editor.element.d.ts +1 -0
  599. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace-editor.element.js +47 -13
  600. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace.context.d.ts +7 -0
  601. package/dist-cms/packages/user/user-group/workspace/user-group/user-group-workspace.context.js +9 -0
  602. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.js +2 -1
  603. package/dist-cms/packages/webhook/manifests.js +2 -1
  604. package/dist-cms/packages/webhook/webhook/repository/detail/manifests.js +2 -1
  605. package/dist-cms/packages/webhook/webhook/repository/item/manifests.js +2 -1
  606. package/dist-cms/packages/webhook/webhook-event/repository/manifests.js +2 -1
  607. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  608. package/examples/collection/collection/filter/manifests.ts +17 -0
  609. package/examples/collection/collection/manifests.ts +2 -0
  610. package/examples/picker-data-source/example-custom-picker-collection-data-source.ts +5 -5
  611. package/examples/picker-data-source/index.ts +2 -0
  612. package/examples/picker-data-source/with-thumbnail/example-custom-with-thumbnail-picker-collection-data-source.ts +83 -0
  613. package/examples/picker-data-source/with-thumbnail/images/blue-flowers-small.jpg +0 -0
  614. package/examples/picker-data-source/with-thumbnail/images/branch-small.jpg +0 -0
  615. package/examples/picker-data-source/with-thumbnail/images/grass-small.jpg +0 -0
  616. package/examples/picker-data-source/with-thumbnail/images/red-flowers-small.jpg +0 -0
  617. package/examples/picker-data-source/with-thumbnail/manifests.ts +16 -0
  618. package/examples/workspace-context-initial-name/index.ts +4 -0
  619. package/examples/workspace-context-initial-name/workspace-context.ts +0 -1
  620. package/package.json +22 -18
  621. package/{dist-cms/umbraco-package-schema.json → umbraco-package-schema.json} +706 -1
  622. package/{dist-cms/vscode-html-custom-data.json → vscode-html-custom-data.json} +74 -44
  623. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.d.ts +0 -17
  624. package/dist-cms/packages/user/user/collection/views/grid/user-grid-collection-view.element.js +0 -81
  625. package/dist-cms/packages/user/user-group/collection/user-group-collection.context.d.ts +0 -8
  626. package/dist-cms/packages/user/user-group/collection/user-group-collection.context.js +0 -8
  627. package/dist-cms/packages/user/user-group/collection/user-group-collection.element.d.ts +0 -13
  628. package/dist-cms/packages/user/user-group/collection/user-group-collection.element.js +0 -48
  629. package/dist-cms/umbraco-package.json +0 -1
@@ -1,9 +1,11 @@
1
1
  import { UmbUnpublishDocumentEntityAction } from '../entity-action/index.js';
2
2
  import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_UNPUBLISH_MODAL } from '../../../constants.js';
3
3
  import { UmbDocumentPublishingRepository } from '../../repository/index.js';
4
+ import { UmbDocumentPublishEntityBulkAction } from '../../publish/entity-bulk-action/publish.bulk-action.js';
5
+ import { UmbDocumentItemRepository } from '../../../item/repository/index.js';
4
6
  import { umbConfirmModal, umbOpenModal } from '../../../../../core/modal/index.js';
5
7
  import { UmbEntityBulkActionBase } from '../../../../../core/entity-bulk-action/index.js';
6
- import { UMB_APP_LANGUAGE_CONTEXT, UmbLanguageCollectionRepository } from '../../../../../language/index.js';
8
+ import { UmbLanguageCollectionRepository } from '../../../../../language/index.js';
7
9
  import { UmbVariantId } from '../../../../../core/variant/index.js';
8
10
  import { UmbLocalizationController } from '../../../../../../libs/localization-api/index.js';
9
11
  import { UMB_ENTITY_CONTEXT } from '../../../../../core/entity/index.js';
@@ -18,7 +20,6 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
18
20
  }
19
21
  const entityType = entityContext.getEntityType();
20
22
  const unique = entityContext.getUnique();
21
- const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT);
22
23
  const localize = new UmbLocalizationController(this);
23
24
  if (!entityType)
24
25
  throw new Error('Entity type not found');
@@ -34,75 +35,43 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
34
35
  await action.execute();
35
36
  return;
36
37
  }
38
+ // Fetch document items and languages in parallel
39
+ const itemRepository = new UmbDocumentItemRepository(this._host);
37
40
  const languageRepository = new UmbLanguageCollectionRepository(this._host);
38
- const { data: languageData } = await languageRepository.requestCollection({});
39
- const options = (languageData?.items ?? []).map((language) => ({
40
- language,
41
- variant: {
42
- name: language.name,
43
- culture: language.unique,
44
- state: null,
45
- createDate: null,
46
- publishDate: null,
47
- updateDate: null,
48
- segment: null,
49
- scheduledPublishDate: null,
50
- scheduledUnpublishDate: null,
51
- flags: [],
52
- },
53
- unique: new UmbVariantId(language.unique, null).toString(),
54
- culture: language.unique,
55
- segment: null,
56
- }));
57
- const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);
58
- if (!eventContext) {
59
- throw new Error('Event context not found');
60
- }
61
- const event = new UmbRequestReloadChildrenOfEntityEvent({
62
- entityType,
63
- unique,
64
- });
65
- // If there is only one language available, we can skip the modal and unpublish directly:
66
- if (options.length === 1) {
67
- const localizationController = new UmbLocalizationController(this._host);
41
+ const [{ data: documentItems }, { data: languageData }] = await Promise.all([
42
+ itemRepository.requestItems(this.selection),
43
+ languageRepository.requestCollection({}),
44
+ ]);
45
+ if (!documentItems?.length)
46
+ return;
47
+ const { allInvariant, options } = UmbDocumentPublishEntityBulkAction.buildVariantOptions(documentItems, languageData?.items ?? []);
48
+ // If there is only one language available, or all selected documents are invariant, we can skip the modal and unpublish directly:
49
+ if (options.length === 1 || allInvariant) {
68
50
  const confirm = await umbConfirmModal(this, {
69
- headline: localizationController.term('actions_unpublish'),
70
- content: localizationController.term('prompt_confirmListViewUnpublish'),
51
+ headline: localize.term('actions_unpublish'),
52
+ content: localize.term('prompt_confirmListViewUnpublish'),
71
53
  color: 'warning',
72
- confirmLabel: localizationController.term('actions_unpublish'),
54
+ confirmLabel: localize.term('actions_unpublish'),
73
55
  }).catch(() => false);
74
56
  if (confirm !== false) {
75
- const variantId = new UmbVariantId(options[0].language.unique, null);
76
- const publishingRepository = new UmbDocumentPublishingRepository(this._host);
77
- let documentCnt = 0;
78
- for (let i = 0; i < this.selection.length; i++) {
79
- const id = this.selection[i];
80
- const { error } = await publishingRepository.unpublish(id, [variantId]);
81
- if (!error) {
82
- documentCnt++;
83
- }
84
- }
57
+ // For invariant documents, use null culture; otherwise use the first language
58
+ const variantId = allInvariant
59
+ ? UmbVariantId.CreateInvariant()
60
+ : new UmbVariantId(options[0].language.unique, null);
61
+ const documentCnt = await this.#unpublishDocuments(this.selection, [variantId]);
62
+ const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT);
85
63
  notificationContext?.peek('positive', {
86
64
  data: {
87
65
  headline: localize.term('speechBubbles_contentUnpublished'),
88
66
  message: localize.term('speechBubbles_editMultiContentUnpublishedText', documentCnt),
89
67
  },
90
68
  });
91
- eventContext.dispatchEvent(event);
69
+ await this.#reloadChildren(entityType, unique);
92
70
  }
93
71
  return;
94
72
  }
95
- // Figure out the default selections
96
- // TODO: Missing features to pre-select the variant that fits with the variant-id of the tree/collection? (Again only relevant if the action is executed from a Tree or Collection) [NL]
97
- const selection = [];
98
- const context = await this.getContext(UMB_APP_LANGUAGE_CONTEXT);
99
- if (!context)
100
- throw new Error('App language context not found');
101
- const appCulture = context.getAppCulture();
102
- // If the app language is one of the options, select it by default:
103
- if (appCulture && options.some((o) => o.unique === appCulture)) {
104
- selection.push(new UmbVariantId(appCulture, null).toString());
105
- }
73
+ // Pre-select all cultures from the selected documents
74
+ const selection = options.map((o) => o.unique);
106
75
  const result = await umbOpenModal(this, UMB_DOCUMENT_UNPUBLISH_MODAL, {
107
76
  data: {
108
77
  options,
@@ -112,23 +81,34 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
112
81
  if (!result?.selection.length)
113
82
  return;
114
83
  const variantIds = result?.selection.map((x) => UmbVariantId.FromString(x)) ?? [];
115
- const repository = new UmbDocumentPublishingRepository(this._host);
116
84
  if (variantIds.length) {
117
- let documentCnt = 0;
118
- for (const unique of this.selection) {
119
- const { error } = await repository.unpublish(unique, variantIds);
120
- if (!error) {
121
- documentCnt++;
122
- }
123
- }
85
+ const documentCnt = await this.#unpublishDocuments(this.selection, variantIds);
86
+ const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT);
124
87
  notificationContext?.peek('positive', {
125
88
  data: {
126
89
  headline: localize.term('speechBubbles_contentUnpublished'),
127
90
  message: localize.term('speechBubbles_editMultiVariantUnpublishedText', documentCnt, localize.list(variantIds.map((v) => v.culture ?? ''))),
128
91
  },
129
92
  });
130
- eventContext.dispatchEvent(event);
93
+ await this.#reloadChildren(entityType, unique);
131
94
  }
132
95
  }
96
+ async #unpublishDocuments(uniques, variantIds) {
97
+ const repository = new UmbDocumentPublishingRepository(this._host);
98
+ let successCount = 0;
99
+ for (const unique of uniques) {
100
+ const { error } = await repository.unpublish(unique, variantIds);
101
+ if (!error)
102
+ successCount++;
103
+ }
104
+ return successCount;
105
+ }
106
+ async #reloadChildren(entityType, unique) {
107
+ const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);
108
+ if (!eventContext)
109
+ return;
110
+ const event = new UmbRequestReloadChildrenOfEntityEvent({ entityType, unique });
111
+ eventContext.dispatchEvent(event);
112
+ }
133
113
  }
134
114
  export { UmbDocumentUnpublishEntityBulkAction as api };
@@ -0,0 +1 @@
1
+ export declare const manifests: Array<UmbExtensionManifest>;
@@ -0,0 +1,23 @@
1
+ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, UMB_DOCUMENT_RECYCLE_BIN_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, } from '../constants.js';
2
+ import { UMB_COLLECTION_ALIAS_CONDITION, UMB_COLLECTION_HAS_ITEMS_CONDITION_ALIAS, } from '../../../../core/collection/index.js';
3
+ export const manifests = [
4
+ {
5
+ type: 'collectionAction',
6
+ kind: 'emptyRecycleBin',
7
+ name: 'Document Collection Empty Recycle Bin Action',
8
+ alias: 'Umb.CollectionAction.Document.EmptyRecycleBin',
9
+ meta: {
10
+ label: '#actions_emptyrecyclebin',
11
+ recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS,
12
+ },
13
+ conditions: [
14
+ {
15
+ alias: UMB_COLLECTION_ALIAS_CONDITION,
16
+ match: UMB_DOCUMENT_RECYCLE_BIN_TREE_ITEM_CHILDREN_COLLECTION_ALIAS,
17
+ },
18
+ {
19
+ alias: UMB_COLLECTION_HAS_ITEMS_CONDITION_ALIAS,
20
+ },
21
+ ],
22
+ },
23
+ ];
@@ -1,3 +1,5 @@
1
+ import { UmbAllowDocumentRecycleBinCurrentUserCondition } from './allow-document-recycle-bin.condition.js';
2
+ import { manifests as collectionManifests } from './collection-action/manifests.js';
1
3
  import { manifests as entityActionManifests } from './entity-action/manifests.js';
2
4
  import { manifests as menuManifests } from './menu/manifests.js';
3
5
  import { manifests as repositoryManifests } from './repository/manifests.js';
@@ -8,8 +10,9 @@ export const manifests = [
8
10
  type: 'condition',
9
11
  name: 'Allow Document Recycle Bin Current User Condition',
10
12
  alias: 'Umb.Condition.CurrentUser.AllowDocumentRecycleBin',
11
- api: () => import('./allow-document-recycle-bin.condition.js'),
13
+ api: UmbAllowDocumentRecycleBinCurrentUserCondition,
12
14
  },
15
+ ...collectionManifests,
13
16
  ...entityActionManifests,
14
17
  ...menuManifests,
15
18
  ...repositoryManifests,
@@ -1,4 +1,5 @@
1
1
  import { UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS, } from '../constants.js';
2
+ import { UmbDocumentRecycleBinTreeStore } from './document-recycle-bin-tree.store.js';
2
3
  export const manifests = [
3
4
  {
4
5
  type: 'repository',
@@ -10,6 +11,6 @@ export const manifests = [
10
11
  type: 'treeStore',
11
12
  alias: UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS,
12
13
  name: 'Document Recycle Bin Tree Store',
13
- api: () => import('./document-recycle-bin-tree.store.js'),
14
+ api: UmbDocumentRecycleBinTreeStore,
14
15
  },
15
16
  ];
@@ -1,4 +1,4 @@
1
- import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_PROPERTY_VALUE_ENTITY_TYPE } from '../../entity.js';
1
+ import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
2
2
  import { UmbId } from '../../../../core/id/index.js';
3
3
  import { DocumentService } from '../../../../core/backend-api/index.js';
4
4
  import { tryExecute } from '../../../../core/resources/index.js';
@@ -65,7 +65,6 @@ export class UmbDocumentServerDataSource extends UmbControllerBase {
65
65
  values: data.values.map((value) => {
66
66
  return {
67
67
  editorAlias: value.editorAlias,
68
- entityType: UMB_DOCUMENT_PROPERTY_VALUE_ENTITY_TYPE,
69
68
  culture: value.culture || null,
70
69
  segment: value.segment || null,
71
70
  alias: value.alias,
@@ -1,4 +1,5 @@
1
1
  import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_DETAIL_STORE_ALIAS } from './constants.js';
2
+ import { UmbDocumentDetailStore } from './document-detail.store.js';
2
3
  export const manifests = [
3
4
  {
4
5
  type: 'repository',
@@ -10,6 +11,6 @@ export const manifests = [
10
11
  type: 'store',
11
12
  alias: UMB_DOCUMENT_DETAIL_STORE_ALIAS,
12
13
  name: 'Document Detail Store',
13
- api: () => import('./document-detail.store.js'),
14
+ api: UmbDocumentDetailStore,
14
15
  },
15
16
  ];
@@ -9,6 +9,7 @@ export declare class UmbRollbackModalElement extends UmbModalBaseElement<UmbRoll
9
9
  private _isInvariant;
10
10
  private _availableVariants;
11
11
  private _diffs;
12
+ private _showDiff;
12
13
  constructor();
13
14
  get currentVersionHeader(): string;
14
15
  render(): import("lit-html").TemplateResult<1>;
@@ -33,6 +33,7 @@ let UmbRollbackModalElement = class UmbRollbackModalElement extends UmbModalBase
33
33
  this._isInvariant = true;
34
34
  this._availableVariants = [];
35
35
  this._diffs = [];
36
+ this._showDiff = false;
36
37
  this.#rollbackRepository = new UmbRollbackRepository(this);
37
38
  this.#userItemRepository = new UmbUserItemRepository(this);
38
39
  this.#localizeDateOptions = {
@@ -141,7 +142,9 @@ let UmbRollbackModalElement = class UmbRollbackModalElement extends UmbModalBase
141
142
  };
142
143
  }),
143
144
  };
144
- await this.#setDiffs();
145
+ if (this._showDiff) {
146
+ await this.#setDiffs();
147
+ }
145
148
  }
146
149
  async #onRollback() {
147
150
  if (!this._selectedVersion)
@@ -188,9 +191,24 @@ let UmbRollbackModalElement = class UmbRollbackModalElement extends UmbModalBase
188
191
  this._selectedCulture = value.toString();
189
192
  this.#requestVersions();
190
193
  }
194
+ #onToggleDiff(event) {
195
+ const checkbox = event.target;
196
+ this._showDiff = checkbox.checked;
197
+ // If we have toggled on and have a selected version, immediately show the diff.
198
+ if (this._showDiff && this._selectedVersion) {
199
+ this.#setDiffs();
200
+ }
201
+ }
191
202
  #trimQuotes(str) {
192
203
  return str.replace(/^['"]|['"]$/g, '');
193
204
  }
205
+ #getPlainValue(alias) {
206
+ if (alias === 'name') {
207
+ return this._selectedVersion?.name ?? '';
208
+ }
209
+ const prop = this._selectedVersion?.properties.find((x) => x.alias === alias);
210
+ return prop ? this.#trimQuotes(JSON.stringify(prop.value)) : '';
211
+ }
194
212
  #renderCultureSelect() {
195
213
  return html `
196
214
  <uui-select
@@ -260,9 +278,15 @@ let UmbRollbackModalElement = class UmbRollbackModalElement extends UmbModalBase
260
278
  >No selected version</uui-box
261
279
  >
262
280
  `;
281
+ // Build list of property aliases to display (name + all properties)
282
+ const propertyAliases = ['name', ...this._selectedVersion.properties.map((p) => p.alias)];
263
283
  return html `
264
284
  <uui-box headline=${this.currentVersionHeader} id="box-right">
265
- ${unsafeHTML(this.localize.term('rollback_diffHelp'))}
285
+ <uui-toggle
286
+ label=${this.localize.term('rollback_showDiff')}
287
+ @change=${this.#onToggleDiff}
288
+ .checked=${this._showDiff}></uui-toggle>
289
+ ${this._showDiff ? html `<p>${unsafeHTML(this.localize.term('rollback_diffHelp'))}</p>` : nothing}
266
290
  <uui-table>
267
291
  <uui-table-column style="width: 0"></uui-table-column>
268
292
  <uui-table-column></uui-table-column>
@@ -271,19 +295,19 @@ let UmbRollbackModalElement = class UmbRollbackModalElement extends UmbModalBase
271
295
  <uui-table-head-cell>${this.localize.term('general_alias')}</uui-table-head-cell>
272
296
  <uui-table-head-cell>${this.localize.term('general_value')}</uui-table-head-cell>
273
297
  </uui-table-head>
274
- ${repeat(this._diffs, (item) => item.alias, (item) => {
275
- const diff = this._diffs.find((x) => x?.alias === item.alias);
298
+ ${repeat(propertyAliases, (alias) => alias, (alias) => {
299
+ const diff = this._diffs.find((x) => x?.alias === alias);
276
300
  return html `
277
301
  <uui-table-row>
278
- <uui-table-cell>${item.alias}</uui-table-cell>
302
+ <uui-table-cell>${alias}</uui-table-cell>
279
303
  <uui-table-cell>
280
- ${diff
304
+ ${this._showDiff && diff
281
305
  ? diff.diff.map((part) => part.added
282
306
  ? html `<span class="diff-added">${part.value}</span>`
283
307
  : part.removed
284
308
  ? html `<span class="diff-removed">${part.value}</span>`
285
309
  : part.value)
286
- : nothing}
310
+ : this.#getPlainValue(alias)}
287
311
  </uui-table-cell>
288
312
  </uui-table-row>
289
313
  `;
@@ -462,6 +486,9 @@ __decorate([
462
486
  __decorate([
463
487
  state()
464
488
  ], UmbRollbackModalElement.prototype, "_diffs", void 0);
489
+ __decorate([
490
+ state()
491
+ ], UmbRollbackModalElement.prototype, "_showDiff", void 0);
465
492
  UmbRollbackModalElement = __decorate([
466
493
  customElement('umb-rollback-modal')
467
494
  ], UmbRollbackModalElement);
@@ -1,5 +1,6 @@
1
1
  import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js';
2
2
  import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js';
3
+ import { UmbDocumentTreeStore } from './document-tree.store.js';
3
4
  export const UMB_DOCUMENT_TREE_REPOSITORY_ALIAS = 'Umb.Repository.Document.Tree';
4
5
  /**
5
6
  * @deprecated Use {@link UMB_DOCUMENT_TREE_REPOSITORY_ALIAS} instead. This will be removed in Umbraco 18.
@@ -17,7 +18,7 @@ export const manifests = [
17
18
  type: 'treeStore',
18
19
  alias: UMB_DOCUMENT_TREE_STORE_ALIAS,
19
20
  name: 'Document Tree Store',
20
- api: () => import('./document-tree.store.js'),
21
+ api: UmbDocumentTreeStore,
21
22
  },
22
23
  {
23
24
  type: 'tree',
@@ -12,6 +12,7 @@ export declare class UmbDocumentTreeItemContext extends UmbDefaultTreeItemContex
12
12
  readonly flags: import("rxjs").Observable<import("../../../../core/entity-flag/index.js").UmbEntityFlag[]>;
13
13
  readonly ancestors: import("rxjs").Observable<import("../../../../core/entity/index.js").UmbEntityModel[]>;
14
14
  readonly isTrashed: import("rxjs").Observable<boolean>;
15
+ readonly noAccess: import("rxjs").Observable<boolean>;
15
16
  setIsMenu(isMenu: boolean): void;
16
17
  constructor(host: UmbControllerHost);
17
18
  setTreeItem(treeItem: UmbDocumentTreeItemModel | undefined): void;
@@ -42,6 +42,7 @@ export class UmbDocumentTreeItemContext extends UmbDefaultTreeItemContext {
42
42
  // TODO: Move to API
43
43
  this.ancestors = this._treeItem.asObservablePart((item) => item?.ancestors ?? []);
44
44
  this.isTrashed = this._treeItem.asObservablePart((item) => item?.isTrashed ?? false);
45
+ this.noAccess = this._treeItem.asObservablePart((item) => item?.noAccess ?? false);
45
46
  this.observe(this.isTrashed, (isTrashed) => {
46
47
  this.#isTrashedContext.setIsTrashed(isTrashed);
47
48
  });
@@ -3,8 +3,8 @@ import type { UmbDocumentTreeItemContext } from './document-tree-item.context.js
3
3
  import { UmbTreeItemElementBase } from '../../../../core/tree/index.js';
4
4
  export declare class UmbDocumentTreeItemElement extends UmbTreeItemElementBase<UmbDocumentTreeItemModel, UmbDocumentTreeItemContext> {
5
5
  #private;
6
- get api(): UmbDocumentTreeItemContext | undefined;
7
6
  set api(value: UmbDocumentTreeItemContext | undefined);
7
+ get api(): UmbDocumentTreeItemContext | undefined;
8
8
  private _name;
9
9
  /**
10
10
  * @internal
@@ -28,9 +28,6 @@ let UmbDocumentTreeItemElement = class UmbDocumentTreeItemElement extends UmbTre
28
28
  };
29
29
  }
30
30
  #api;
31
- get api() {
32
- return this.#api;
33
- }
34
31
  set api(value) {
35
32
  this.#api = value;
36
33
  if (this.#api) {
@@ -43,9 +40,15 @@ let UmbDocumentTreeItemElement = class UmbDocumentTreeItemElement extends UmbTre
43
40
  });
44
41
  this.observe(this.#api.icon, (icon) => (this.#icon = icon || ''));
45
42
  this.observe(this.#api.flags, (flags) => (this._flags = flags || ''));
43
+ // Observe noAccess from context and update base class property (_noAccess).
44
+ // This enables access restriction behavior (click prevention) and styling from the base class.
45
+ this.observe(this.#api.noAccess, (noAccess) => (this._noAccess = noAccess));
46
46
  }
47
47
  super.api = value;
48
48
  }
49
+ get api() {
50
+ return this.#api;
51
+ }
49
52
  #icon;
50
53
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
54
  _extractFlags(item) {
@@ -55,7 +58,9 @@ let UmbDocumentTreeItemElement = class UmbDocumentTreeItemElement extends UmbTre
55
58
  return this.#icon;
56
59
  }
57
60
  renderLabel() {
58
- return html `<span id="label" slot="label" class=${classMap({ draft: this._isDraft })}>${this._name}</span> `;
61
+ return html `<span id="label" slot="label" class=${classMap({ draft: this._isDraft, noAccess: this._noAccess })}>
62
+ ${this._name}
63
+ </span> `;
59
64
  }
60
65
  static { this.styles = [
61
66
  ...UmbTreeItemElementBase.styles,
@@ -0,0 +1,7 @@
1
+ import type { UmbDocumentTreeItemModel } from './types.js';
2
+ /**
3
+ * Type guard to check if an item is a document tree item with noAccess property
4
+ * @param {unknown} item - The item to check
5
+ * @returns {boolean} true if the item is a UmbDocumentTreeItemModel
6
+ */
7
+ export declare function isDocumentTreeItem(item: unknown): item is UmbDocumentTreeItemModel;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type guard to check if an item is a document tree item with noAccess property
3
+ * @param {unknown} item - The item to check
4
+ * @returns {boolean} true if the item is a UmbDocumentTreeItemModel
5
+ */
6
+ export function isDocumentTreeItem(item) {
7
+ return typeof item === 'object' && item !== null && 'noAccess' in item;
8
+ }
@@ -45,6 +45,7 @@ export interface UmbDocumentUrlInfoModel {
45
45
  export interface UmbDocumentValueModel<ValueType = unknown> extends UmbElementValueModel<ValueType> {
46
46
  }
47
47
  export interface UmbDocumentVariantOptionModel extends UmbEntityVariantOptionModel<UmbDocumentVariantModel> {
48
+ documentCount?: number;
48
49
  }
49
50
  export interface UmbDocumentVariantPublishModel extends UmbEntityVariantPublishModel {
50
51
  }
@@ -1,4 +1,5 @@
1
1
  import { UMB_DOCUMENT_URL_REPOSITORY_ALIAS, UMB_DOCUMENT_URL_STORE_ALIAS } from './constants.js';
2
+ import { UmbDocumentUrlStore } from './document-url.store.js';
2
3
  const urlRepository = {
3
4
  type: 'repository',
4
5
  alias: UMB_DOCUMENT_URL_REPOSITORY_ALIAS,
@@ -9,6 +10,6 @@ const urlStore = {
9
10
  type: 'itemStore',
10
11
  alias: UMB_DOCUMENT_URL_STORE_ALIAS,
11
12
  name: 'Document Url Store',
12
- api: () => import('./document-url.store.js'),
13
+ api: UmbDocumentUrlStore,
13
14
  };
14
15
  export const manifests = [urlRepository, urlStore];
@@ -1,9 +1,10 @@
1
1
  import { UMB_DOCUMENT_USER_PERMISSION_CONDITION_ALIAS } from './constants.js';
2
+ import { UmbDocumentUserPermissionCondition } from './document-user-permission.condition.js';
2
3
  export const manifests = [
3
4
  {
4
5
  type: 'condition',
5
6
  name: 'Document User Permission Condition',
6
7
  alias: UMB_DOCUMENT_USER_PERMISSION_CONDITION_ALIAS,
7
- api: () => import('./document-user-permission.condition.js'),
8
+ api: UmbDocumentUserPermissionCondition,
8
9
  },
9
10
  ];
@@ -83,7 +83,7 @@ let UmbDocumentPropertyValueUserPermissionFlowPropertyTypeModalElement = class U
83
83
  ${this._documentTypeProperties.length > 0
84
84
  ? repeat(this._documentTypeProperties, (item) => item.unique, (item) => html `
85
85
  <uui-ref-node
86
- name=${item.name ?? ''}
86
+ name=${this.localize.string(item.name ?? '')}
87
87
  detail=${this.#getItemDetail(item)}
88
88
  ?selectable=${this._pickableFilter(item)}
89
89
  select-only
@@ -173,7 +173,7 @@ let UmbInputDocumentPropertyValueUserPermissionElement = class UmbInputDocumentP
173
173
  }
174
174
  const documentType = this._documentTypes?.find((item) => item.unique === permission.documentType.unique);
175
175
  const propertyType = documentType?.properties.find((item) => item.unique === permission.propertyType.unique);
176
- const permissionName = `${documentType?.name}: ${propertyType?.name} (${propertyType?.alias})`;
176
+ const permissionName = `${this.localize.string(documentType?.name)}: ${this.localize.string(propertyType?.name)} (${propertyType?.alias})`;
177
177
  const verbNames = this.#getVerbNamesForPermission(permission);
178
178
  return html `
179
179
  <uui-ref-node .name=${permissionName} .detail=${verbNames || ''} readonly>
@@ -1,5 +1,11 @@
1
1
  import type { UmbDocumentVariantOptionModel } from './types.js';
2
2
  type VariantType = UmbDocumentVariantOptionModel;
3
- export declare const sortVariants: (a: VariantType, b: VariantType) => number;
3
+ /**
4
+ * Sorts document variants based on multiple criteria:
5
+ * @param {VariantType} a - First variant to compare
6
+ * @param {VariantType} b - Second variant to compare
7
+ * @returns {number} - Sorting value
8
+ */
9
+ export declare function sortVariants(a: VariantType, b: VariantType): number;
4
10
  export declare const TimeOptions: Intl.DateTimeFormatOptions;
5
11
  export {};
@@ -13,17 +13,45 @@ const getVariantStateOrderValue = (variant) => {
13
13
  }
14
14
  return variantStatesOrder[variant.state] || fallbackOrder;
15
15
  };
16
- export const sortVariants = (a, b) => {
17
- const compareDefault = (a, b) => (a.language?.isDefault ? -1 : 1) - (b.language?.isDefault ? -1 : 1);
18
- // Make sure mandatory variants goes on top, unless they are published, cause then they already goes to the top and then we want to mix them with other published variants.
19
- const compareMandatory = (a, b) => a.variant?.state === DocumentVariantStateModel.PUBLISHED_PENDING_CHANGES ||
16
+ // eslint-disable-next-line jsdoc/require-jsdoc
17
+ function compareDefault(a, b) {
18
+ return (a.language?.isDefault ? -1 : 1) - (b.language?.isDefault ? -1 : 1);
19
+ }
20
+ // Make sure mandatory variants goes on top, unless they are published, cause then they already goes to the top and then we want to mix them with other published variants.
21
+ // eslint-disable-next-line jsdoc/require-jsdoc
22
+ function compareMandatory(a, b) {
23
+ return a.variant?.state === DocumentVariantStateModel.PUBLISHED_PENDING_CHANGES ||
20
24
  a.variant?.state === DocumentVariantStateModel.PUBLISHED
21
25
  ? 0
22
26
  : (a.language?.isMandatory ? -1 : 1) - (b.language?.isMandatory ? -1 : 1);
23
- const compareState = (a, b) => getVariantStateOrderValue(a.variant) - getVariantStateOrderValue(b.variant);
24
- const compareName = (a, b) => a.variant?.name.localeCompare(b.variant?.name || '') || 99;
27
+ }
28
+ // eslint-disable-next-line jsdoc/require-jsdoc
29
+ function compareState(a, b) {
30
+ return getVariantStateOrderValue(a.variant) - getVariantStateOrderValue(b.variant);
31
+ }
32
+ // eslint-disable-next-line jsdoc/require-jsdoc
33
+ function compareName(a, b) {
34
+ const nameA = a.language?.name;
35
+ const nameB = b.language?.name;
36
+ // If both names are missing, consider them equal.
37
+ if (!nameA && !nameB)
38
+ return 0;
39
+ // If only one name is missing, sort the defined name first.
40
+ if (!nameA)
41
+ return 1;
42
+ if (!nameB)
43
+ return -1;
44
+ return nameA.localeCompare(nameB);
45
+ }
46
+ /**
47
+ * Sorts document variants based on multiple criteria:
48
+ * @param {VariantType} a - First variant to compare
49
+ * @param {VariantType} b - Second variant to compare
50
+ * @returns {number} - Sorting value
51
+ */
52
+ export function sortVariants(a, b) {
25
53
  return compareDefault(a, b) || compareMandatory(a, b) || compareState(a, b) || compareName(a, b);
26
- };
54
+ }
27
55
  export const TimeOptions = {
28
56
  year: 'numeric',
29
57
  month: 'long',
@@ -1,7 +1,8 @@
1
1
  import { UMB_DOCUMENT_IS_NOT_TRASHED_CONDITION_ALIAS } from './constants.js';
2
+ import { UmbDocumentIsNotTrashedWorkspaceCondition } from './document-is-not-trashed.condition.js';
2
3
  export const manifest = {
3
4
  type: 'condition',
4
5
  name: 'Document is not trashed Workspace Condition',
5
6
  alias: UMB_DOCUMENT_IS_NOT_TRASHED_CONDITION_ALIAS,
6
- api: () => import('./document-is-not-trashed.condition.js'),
7
+ api: UmbDocumentIsNotTrashedWorkspaceCondition,
7
8
  };
@@ -1,7 +1,8 @@
1
1
  import { UMB_DOCUMENT_IS_TRASHED_CONDITION_ALIAS } from './constants.js';
2
+ import { UmbDocumentIsTrashedWorkspaceCondition } from './document-is-trashed.condition.js';
2
3
  export const manifest = {
3
4
  type: 'condition',
4
5
  name: 'Document is trashed Workspace Condition',
5
6
  alias: UMB_DOCUMENT_IS_TRASHED_CONDITION_ALIAS,
6
- api: () => import('./document-is-trashed.condition.js'),
7
+ api: UmbDocumentIsTrashedWorkspaceCondition,
7
8
  };
@@ -54,6 +54,7 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
54
54
  #generateRoutes() {
55
55
  if (!this.#variants || this.#variants.length === 0 || !this.#appCulture) {
56
56
  this._routes = [];
57
+ this.#ensureForbiddenRoute(this._routes);
57
58
  return;
58
59
  }
59
60
  // Generate split view routes for all available routes
@@ -115,6 +116,16 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
115
116
  },
116
117
  });
117
118
  }
119
+ this.#ensureForbiddenRoute(routes);
120
+ this._routes = routes;
121
+ }
122
+ /**
123
+ * Ensure that there is a route to handle forbidden access.
124
+ * This route will display a forbidden message when the user does not have permission to access certain resources.
125
+ * Also handles not found routes.
126
+ * @param routes
127
+ */
128
+ #ensureForbiddenRoute(routes = []) {
118
129
  routes.push({
119
130
  path: '**',
120
131
  component: async () => {
@@ -122,7 +133,6 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
122
133
  return this.#isForbidden ? router.UmbRouteForbiddenElement : router.UmbRouteNotFoundElement;
123
134
  },
124
135
  });
125
- this._routes = routes;
126
136
  }
127
137
  render() {
128
138
  return !this._loading && this._routes