@umbraco-cms/backoffice 16.3.4 → 16.4.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 (406) hide show
  1. package/README.md +8 -0
  2. package/dist-cms/apps/backoffice/components/backoffice-header-sections.element.js +3 -2
  3. package/dist-cms/apps/preview/apps/preview-exit.element.js +1 -1
  4. package/dist-cms/apps/preview/apps/preview-open-website.element.js +1 -1
  5. package/dist-cms/apps/preview/preview.context.d.ts +1 -1
  6. package/dist-cms/apps/preview/preview.context.js +24 -4
  7. package/dist-cms/apps/preview/preview.element.js +1 -1
  8. package/dist-cms/assets/lang/da.js +17 -13
  9. package/dist-cms/assets/lang/de.js +3 -0
  10. package/dist-cms/assets/lang/en.js +17 -2
  11. package/dist-cms/assets/lang/es.js +3 -0
  12. package/dist-cms/assets/lang/fr.js +1 -0
  13. package/dist-cms/assets/lang/nb.js +1 -1
  14. package/dist-cms/assets/lang/nl.js +1 -0
  15. package/dist-cms/assets/lang/pt.js +7 -0
  16. package/dist-cms/custom-elements.json +250 -18
  17. package/dist-cms/external/dompurify/package.json +1 -1
  18. package/dist-cms/external/lit/package.json +1 -1
  19. package/dist-cms/external/marked/package.json +1 -1
  20. package/dist-cms/external/monaco-editor/package.json +1 -1
  21. package/dist-cms/external/monaco-editor/vite.config.js +1 -1
  22. package/dist-cms/external/openid/src/redirect_based_handler.d.ts +6 -0
  23. package/dist-cms/external/openid/src/redirect_based_handler.js +35 -7
  24. package/dist-cms/external/openid/src/xhr.js +1 -0
  25. package/dist-cms/external/uui/package.json +2 -2
  26. package/dist-cms/libs/localization-api/localization.controller.d.ts +9 -0
  27. package/dist-cms/libs/localization-api/localization.controller.js +9 -0
  28. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.js +1 -4
  29. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +37 -12
  30. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +16 -21
  31. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.js +7 -3
  32. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.js +2 -2
  33. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.d.ts +1 -0
  34. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +4 -1
  35. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.d.ts +1 -0
  36. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +4 -1
  37. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +3 -3
  38. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +3 -1
  39. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +11 -2
  40. package/dist-cms/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.js +6 -0
  41. package/dist-cms/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.js +21 -13
  42. package/dist-cms/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.js +1 -1
  43. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.d.ts +2 -2
  44. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +8 -7
  45. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.d.ts +1 -0
  46. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.js +4 -5
  47. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.d.ts +1 -0
  48. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +4 -1
  49. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +5 -4
  50. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.d.ts +1 -1
  51. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +6 -5
  52. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.d.ts +1 -0
  53. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.js +4 -1
  54. package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +3 -4
  55. package/dist-cms/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.js +1 -1
  56. package/dist-cms/packages/content/content/manager/content-data-manager.js +1 -0
  57. package/dist-cms/packages/content/content/manager/element-data-manager.js +6 -5
  58. package/dist-cms/packages/content/content/types.d.ts +8 -2
  59. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +4 -0
  60. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +34 -10
  61. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.d.ts +2 -1
  62. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +10 -2
  63. package/dist-cms/packages/content/content-type/structure/content-type-container-structure-helper.class.js +1 -1
  64. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +9 -5
  65. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +25 -5
  66. package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js +1 -0
  67. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.js +3 -4
  68. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.js +17 -5
  69. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +39 -20
  70. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +1 -1
  71. package/dist-cms/packages/content/property-type/workspace/views/settings/property-workspace-view-settings.element.js +1 -1
  72. package/dist-cms/packages/core/auth/auth-flow.js +5 -0
  73. package/dist-cms/packages/core/backend-api/client/client.gen.js +39 -11
  74. package/dist-cms/packages/core/backend-api/client/index.d.ts +1 -0
  75. package/dist-cms/packages/core/backend-api/client/index.js +1 -0
  76. package/dist-cms/packages/core/backend-api/client/types.gen.d.ts +1 -1
  77. package/dist-cms/packages/core/backend-api/client/utils.gen.d.ts +6 -11
  78. package/dist-cms/packages/core/backend-api/client/utils.gen.js +27 -23
  79. package/dist-cms/packages/core/backend-api/client.gen.d.ts +3 -3
  80. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.d.ts +18 -0
  81. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.js +99 -0
  82. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.d.ts +13 -1
  83. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.js +16 -2
  84. package/dist-cms/packages/core/backend-api/core/utils.gen.d.ts +6 -1
  85. package/dist-cms/packages/core/backend-api/core/utils.gen.js +18 -0
  86. package/dist-cms/packages/core/backend-api/sdk.gen.d.ts +12 -6
  87. package/dist-cms/packages/core/backend-api/sdk.gen.js +500 -416
  88. package/dist-cms/packages/core/backend-api/types.gen.d.ts +294 -6
  89. package/dist-cms/packages/core/backend-api/types.gen.js +1 -0
  90. package/dist-cms/packages/core/collection/action/create/manifests.js +1 -1
  91. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.d.ts +4 -0
  92. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +39 -2
  93. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +1 -1
  94. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.d.ts +1 -1
  95. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +18 -12
  96. package/dist-cms/packages/core/components/index.d.ts +1 -0
  97. package/dist-cms/packages/core/components/index.js +1 -0
  98. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +1 -1
  99. package/dist-cms/packages/core/components/input-slider/input-slider.element.d.ts +8 -3
  100. package/dist-cms/packages/core/components/input-slider/input-slider.element.js +95 -9
  101. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.js +28 -5
  102. package/dist-cms/packages/core/components/split-panel/split-panel.element.d.ts +3 -2
  103. package/dist-cms/packages/core/components/split-panel/split-panel.element.js +7 -2
  104. package/dist-cms/packages/core/components/view-loader/view-loader.element.d.ts +5 -0
  105. package/dist-cms/packages/core/components/view-loader/view-loader.element.js +36 -0
  106. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  107. package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -1
  108. package/dist-cms/packages/core/entity-action/common/create/create.action.kind.js +1 -1
  109. package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +1 -1
  110. package/dist-cms/packages/core/entity-flag/index.d.ts +1 -0
  111. package/dist-cms/packages/core/entity-flag/index.js +1 -0
  112. package/dist-cms/packages/core/entity-flag/types.d.ts +10 -0
  113. package/dist-cms/packages/core/entity-flag/types.js +1 -0
  114. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.d.ts +21 -0
  115. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.js +257 -0
  116. package/dist-cms/packages/core/entity-sign/components/index.d.ts +1 -0
  117. package/dist-cms/packages/core/entity-sign/components/index.js +1 -0
  118. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.d.ts +18 -0
  119. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.js +1 -0
  120. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.d.ts +5 -0
  121. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.js +1 -0
  122. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.d.ts +20 -0
  123. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.js +1 -0
  124. package/dist-cms/packages/core/entity-sign/extensions/types.d.ts +3 -0
  125. package/dist-cms/packages/core/entity-sign/extensions/types.js +1 -0
  126. package/dist-cms/packages/core/entity-sign/index.d.ts +2 -0
  127. package/dist-cms/packages/core/entity-sign/index.js +1 -0
  128. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.d.ts +10 -0
  129. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.js +11 -0
  130. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.d.ts +10 -0
  131. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.js +41 -0
  132. package/dist-cms/packages/core/entity-sign/kinds/icon/index.d.ts +1 -0
  133. package/dist-cms/packages/core/entity-sign/kinds/icon/index.js +1 -0
  134. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.d.ts +2 -0
  135. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.js +14 -0
  136. package/dist-cms/packages/core/entity-sign/kinds/icon/types.d.ts +15 -0
  137. package/dist-cms/packages/core/entity-sign/kinds/icon/types.js +1 -0
  138. package/dist-cms/packages/core/entity-sign/kinds/manifests.d.ts +2 -0
  139. package/dist-cms/packages/core/entity-sign/kinds/manifests.js +2 -0
  140. package/dist-cms/packages/core/entity-sign/kinds/types.d.ts +1 -0
  141. package/dist-cms/packages/core/entity-sign/kinds/types.js +1 -0
  142. package/dist-cms/packages/core/entity-sign/manifests.d.ts +2 -0
  143. package/dist-cms/packages/core/entity-sign/manifests.js +2 -0
  144. package/dist-cms/packages/core/entity-sign/types.d.ts +1 -0
  145. package/dist-cms/packages/core/entity-sign/types.js +1 -0
  146. package/dist-cms/packages/core/entry-point.d.ts +1 -0
  147. package/dist-cms/packages/core/entry-point.js +1 -0
  148. package/dist-cms/packages/core/http-client/index.d.ts +2 -1
  149. package/dist-cms/packages/core/http-client/index.js +12 -1
  150. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +8 -0
  151. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.d.ts +1 -3
  152. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +44 -26
  153. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.d.ts +5 -2
  154. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.d.ts +1 -1
  155. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.js +1 -1
  156. package/dist-cms/packages/core/icon-registry/icons/icon-bars.d.ts +1 -1
  157. package/dist-cms/packages/core/icon-registry/icons/icon-bars.js +1 -1
  158. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.d.ts +1 -1
  159. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.js +1 -1
  160. package/dist-cms/packages/core/icon-registry/icons/icon-bug.d.ts +1 -1
  161. package/dist-cms/packages/core/icon-registry/icons/icon-bug.js +1 -1
  162. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.d.ts +1 -1
  163. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.js +1 -1
  164. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.d.ts +1 -1
  165. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.js +1 -1
  166. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.d.ts +1 -1
  167. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.js +1 -1
  168. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.d.ts +1 -1
  169. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.js +1 -1
  170. package/dist-cms/packages/core/icon-registry/icons/icon-heading.d.ts +1 -1
  171. package/dist-cms/packages/core/icon-registry/icons/icon-heading.js +1 -1
  172. package/dist-cms/packages/core/icon-registry/icons/icon-home.d.ts +1 -1
  173. package/dist-cms/packages/core/icon-registry/icons/icon-home.js +1 -1
  174. package/dist-cms/packages/core/icon-registry/icons/icon-indent.d.ts +1 -1
  175. package/dist-cms/packages/core/icon-registry/icons/icon-indent.js +1 -1
  176. package/dist-cms/packages/core/icon-registry/icons/icon-list.d.ts +1 -1
  177. package/dist-cms/packages/core/icon-registry/icons/icon-list.js +1 -1
  178. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.d.ts +1 -1
  179. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.js +1 -1
  180. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.d.ts +1 -1
  181. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.js +1 -1
  182. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.d.ts +1 -1
  183. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.js +1 -1
  184. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.d.ts +2 -0
  185. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.js +1 -0
  186. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.d.ts +1 -1
  187. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.js +1 -1
  188. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.d.ts +1 -1
  189. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.js +1 -1
  190. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.d.ts +1 -1
  191. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.js +1 -1
  192. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.d.ts +1 -1
  193. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.js +1 -1
  194. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.d.ts +2 -0
  195. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.js +1 -0
  196. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.d.ts +1 -1
  197. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.js +1 -1
  198. package/dist-cms/packages/core/icon-registry/icons.d.ts +10 -0
  199. package/dist-cms/packages/core/icon-registry/icons.js +6 -0
  200. package/dist-cms/packages/core/manifests.js +2 -0
  201. package/dist-cms/packages/core/menu/components/menu-item-layout/menu-item-layout.element.js +20 -19
  202. package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +3 -2
  203. package/dist-cms/packages/core/openapi-ts.config.d.ts +31 -1
  204. package/dist-cms/packages/core/package.json +4 -4
  205. package/dist-cms/packages/core/property/components/property/property.element.d.ts +1 -1
  206. package/dist-cms/packages/core/property/components/property/property.element.js +6 -1
  207. package/dist-cms/packages/core/property/components/property-layout/property-layout.element.js +2 -1
  208. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  209. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.d.ts +3 -1
  210. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +25 -16
  211. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.js +12 -10
  212. package/dist-cms/packages/core/property/property-value-preset/types.d.ts +1 -0
  213. package/dist-cms/packages/core/property-editor/constants.d.ts +2 -0
  214. package/dist-cms/packages/core/property-editor/constants.js +2 -0
  215. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.js +1 -1
  216. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.js +8 -5
  217. package/dist-cms/packages/core/resources/extractUmbColorVariable.function.js +1 -0
  218. package/dist-cms/packages/core/resources/try-execute/tryXhrRequest.function.js +1 -0
  219. package/dist-cms/packages/core/resources/types.d.ts +1 -0
  220. package/dist-cms/packages/core/router/modal-registration/modal-route-registration.controller.js +8 -4
  221. package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -0
  222. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +0 -1
  223. package/dist-cms/packages/core/sorter/sorter.controller.js +0 -1
  224. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  225. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  226. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +10 -0
  227. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +75 -15
  228. package/dist-cms/packages/core/tree/types.d.ts +2 -1
  229. package/dist-cms/packages/core/validation/controllers/validation.controller.js +4 -2
  230. package/dist-cms/packages/core/variant/types.d.ts +2 -0
  231. package/dist-cms/packages/core/vite.config.js +2 -0
  232. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +5 -1
  233. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +5 -2
  234. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +22 -4
  235. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.d.ts +2 -1
  236. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.js +5 -0
  237. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +6 -0
  238. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +12 -2
  239. package/dist-cms/packages/core/workspace/kinds/default/default-workspace.context.d.ts +1 -1
  240. package/dist-cms/packages/core/workspace/workspace.element.d.ts +2 -2
  241. package/dist-cms/packages/core/workspace/workspace.element.js +2 -2
  242. package/dist-cms/packages/data-type/index.d.ts +1 -0
  243. package/dist-cms/packages/data-type/index.js +1 -0
  244. package/dist-cms/packages/data-type/workspace/data-type-workspace.context.js +4 -1
  245. package/dist-cms/packages/data-type/workspace/index.d.ts +1 -0
  246. package/dist-cms/packages/data-type/workspace/index.js +1 -0
  247. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.d.ts +22 -0
  248. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.js +128 -0
  249. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.js +23 -72
  250. package/dist-cms/packages/data-type/workspace/views/index.d.ts +1 -0
  251. package/dist-cms/packages/data-type/workspace/views/index.js +1 -0
  252. package/dist-cms/packages/dictionary/entity-action/manifests.js +1 -1
  253. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +5 -8
  254. package/dist-cms/packages/documents/document-blueprints/entity-actions/create/manifests.js +1 -1
  255. package/dist-cms/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.js +3 -0
  256. package/dist-cms/packages/documents/document-blueprints/types.d.ts +2 -2
  257. package/dist-cms/packages/documents/document-types/entity-actions/create/manifests.js +1 -1
  258. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.js +2 -0
  259. package/dist-cms/packages/documents/documents/collection/types.d.ts +3 -2
  260. package/dist-cms/packages/documents/documents/constants.d.ts +1 -0
  261. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -1
  262. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +1 -1
  263. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +1 -1
  264. package/dist-cms/packages/documents/documents/entity-sign/constants.d.ts +2 -0
  265. package/dist-cms/packages/documents/documents/entity-sign/constants.js +1 -0
  266. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.d.ts +1 -0
  267. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.js +1 -0
  268. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.d.ts +1 -0
  269. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.js +12 -0
  270. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.d.ts +1 -0
  271. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.js +1 -0
  272. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.d.ts +1 -0
  273. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.js +18 -0
  274. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.d.ts +1 -0
  275. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.js +1 -0
  276. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.d.ts +1 -0
  277. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.js +15 -0
  278. package/dist-cms/packages/documents/documents/entity-sign/manifests.d.ts +1 -0
  279. package/dist-cms/packages/documents/documents/entity-sign/manifests.js +8 -0
  280. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +9 -6
  281. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +43 -21
  282. package/dist-cms/packages/documents/documents/item/repository/document-item.server.cache-invalidation.manager.js +1 -0
  283. package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.js +2 -0
  284. package/dist-cms/packages/documents/documents/item/repository/types.d.ts +3 -1
  285. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  286. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.js +1 -0
  287. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +2 -0
  288. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.js +1 -0
  289. package/dist-cms/packages/documents/documents/recycle-bin/tree/data/document-recycle-bin-tree.server.data-source.js +3 -0
  290. package/dist-cms/packages/documents/documents/reference/repository/document-reference-response.management-api.mapping.js +1 -0
  291. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +3 -0
  292. package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +2 -0
  293. package/dist-cms/packages/documents/documents/tree/document-tree.server.data-source.js +2 -0
  294. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  295. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +1 -0
  296. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.d.ts +7 -3
  297. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +20 -90
  298. package/dist-cms/packages/documents/documents/tree/types.d.ts +3 -1
  299. package/dist-cms/packages/documents/documents/user-permissions/document/manifests.js +1 -1
  300. package/dist-cms/packages/documents/documents/user-permissions/document/repository/document-permission.server.data.js +1 -0
  301. package/dist-cms/packages/documents/documents/utils.js +1 -0
  302. package/dist-cms/packages/documents/documents/workspace/constants.js +1 -0
  303. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.d.ts +2 -1
  304. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +10 -3
  305. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.d.ts +1 -3
  306. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.js +2 -2
  307. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.d.ts +1 -0
  308. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +13 -6
  309. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +9 -1
  310. package/dist-cms/packages/extension-types/index.d.ts +2 -0
  311. package/dist-cms/packages/language/entity-actions/manifests.js +1 -1
  312. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.d.ts +1 -0
  313. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +8 -1
  314. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.d.ts +1 -0
  315. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.js +3 -1
  316. package/dist-cms/packages/management-api/detail/detail-data.request-manager.js +1 -1
  317. package/dist-cms/packages/management-api/item/cache-invalidation.manager.d.ts +1 -0
  318. package/dist-cms/packages/management-api/item/cache-invalidation.manager.js +3 -1
  319. package/dist-cms/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.js +1 -0
  320. package/dist-cms/packages/media/media/collection/media-collection.context.js +1 -0
  321. package/dist-cms/packages/media/media/collection/repository/media-collection.server.data-source.js +1 -0
  322. package/dist-cms/packages/media/media/collection/types.d.ts +2 -1
  323. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.js +1 -0
  324. package/dist-cms/packages/media/media/dropzone/media-dropzone.manager.js +1 -1
  325. package/dist-cms/packages/media/media/entity-actions/create/create.action.d.ts +1 -1
  326. package/dist-cms/packages/media/media/entity-actions/create/create.action.js +1 -1
  327. package/dist-cms/packages/media/media/entity-actions/create/manifests.js +1 -1
  328. package/dist-cms/packages/media/media/modals/media-picker/components/media-picker-folder-path.element.js +1 -0
  329. package/dist-cms/packages/media/media/paths.js +1 -1
  330. package/dist-cms/packages/media/media/property-editors/upload-field/Umbraco.UploadField.js +1 -1
  331. package/dist-cms/packages/media/media/repository/detail/media-detail.server.data-source.js +5 -0
  332. package/dist-cms/packages/media/media/repository/item/media-item.server.cache-invalidation.manager.js +1 -0
  333. package/dist-cms/packages/media/media/tree/media-tree.server.data-source.js +3 -0
  334. package/dist-cms/packages/media/media/workspace/constants.js +1 -0
  335. package/dist-cms/packages/members/member/collection/repository/member-collection.server.data-source.js +1 -0
  336. package/dist-cms/packages/members/member/entity-actions/create/manifests.js +1 -1
  337. package/dist-cms/packages/members/member/repository/detail/member-detail.server.data-source.js +5 -0
  338. package/dist-cms/packages/members/member/workspace/member/constants.js +1 -0
  339. package/dist-cms/packages/members/member-group/entity-actions/manifests.js +1 -1
  340. package/dist-cms/packages/property-editors/collection/manifests.js +1 -0
  341. package/dist-cms/packages/property-editors/icon-picker/manifests.js +10 -0
  342. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.d.ts +7 -3
  343. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.js +45 -14
  344. package/dist-cms/packages/property-editors/missing/manifests.js +15 -2
  345. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.d.ts +18 -0
  346. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.js +130 -0
  347. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.d.ts +13 -0
  348. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.js +24 -0
  349. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.d.ts +2 -13
  350. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.js +6 -112
  351. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.d.ts +2 -2
  352. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +29 -11
  353. package/dist-cms/packages/property-editors/slider/slider-property-value-preset.d.ts +1 -4
  354. package/dist-cms/packages/property-editors/slider/types.d.ts +3 -2
  355. package/dist-cms/packages/templating/partial-views/entity-actions/create/manifests.js +1 -1
  356. package/dist-cms/packages/templating/scripts/entity-actions/create/manifests.js +1 -1
  357. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +1 -1
  358. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +2 -2
  359. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +1 -1
  360. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +14 -6
  361. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar.element.js +3 -3
  362. package/dist-cms/packages/tiptap/extensions/horizontal-rule/manifests.js +1 -0
  363. package/dist-cms/packages/tiptap/extensions/style-select/manifests.js +1 -0
  364. package/dist-cms/packages/tiptap/property-editors/extensions-configuration/property-editor-ui-tiptap-extensions-configuration.element.js +2 -2
  365. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/property-editor-ui-tiptap-statusbar-configuration.element.js +37 -25
  366. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.d.ts +2 -2
  367. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.js +2 -1
  368. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/property-editor-ui-tiptap-toolbar-configuration.element.js +1 -3
  369. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.d.ts +2 -2
  370. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.js +1 -1
  371. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-group-configuration.element.js +22 -19
  372. package/dist-cms/packages/tiptap/property-editors/types.d.ts +4 -4
  373. package/dist-cms/packages/ufm/contexts/ufm.context.d.ts +1 -1
  374. package/dist-cms/packages/ufm/filters/manifests.js +24 -0
  375. package/dist-cms/packages/ufm/filters/strip-html.filter.d.ts +1 -0
  376. package/dist-cms/packages/ufm/filters/strip-html.filter.js +1 -0
  377. package/dist-cms/packages/ufm/filters/truncate.filter.d.ts +1 -0
  378. package/dist-cms/packages/ufm/filters/truncate.filter.js +8 -1
  379. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -2
  380. package/dist-cms/packages/user/user-permission/constants.d.ts +1 -0
  381. package/dist-cms/packages/user/user-permission/constants.js +1 -0
  382. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.d.ts +1 -0
  383. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.js +1 -0
  384. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.d.ts +9 -0
  385. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.js +34 -0
  386. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.d.ts +1 -0
  387. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.js +9 -0
  388. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.d.ts +20 -0
  389. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.js +1 -0
  390. package/dist-cms/packages/user/user-permission/index.d.ts +1 -0
  391. package/dist-cms/packages/user/user-permission/index.js +1 -0
  392. package/dist-cms/packages/user/user-permission/manifests.js +2 -1
  393. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  394. package/dist-cms/umbraco-package-schema.json +3 -0
  395. package/dist-cms/umbraco-package.json +1 -1
  396. package/dist-cms/vscode-html-custom-data.json +133 -30
  397. package/examples/user-permission/constants.ts +4 -0
  398. package/examples/user-permission/entity-action/action-1.ts +9 -0
  399. package/examples/user-permission/entity-action/action-2.ts +9 -0
  400. package/examples/user-permission/entity-action/manifests.ts +47 -0
  401. package/examples/user-permission/entity-user-permission/manifests.ts +30 -0
  402. package/examples/user-permission/index.ts +9 -0
  403. package/examples/user-permission/localization/en.ts +6 -0
  404. package/examples/user-permission/localization/manifests.ts +12 -0
  405. package/examples/validation-context/validation-context-dashboard.ts +9 -8
  406. package/package.json +13 -11
@@ -1,7 +1,13 @@
1
1
  import { UmbDocumentVariantState } from '../types.js';
2
2
  import { UmbControllerBase } from '../../../../libs/class-api/index.js';
3
- import { UmbBooleanState, UmbObjectState, UmbStringState } from '../../../../libs/observable-api/index.js';
3
+ import { UmbArrayState, UmbBooleanState, UmbObjectState, UmbStringState, } from '../../../../libs/observable-api/index.js';
4
4
  import { UMB_VARIANT_CONTEXT } from '../../../core/variant/index.js';
5
+ function isVariantsInvariant(variants) {
6
+ return variants?.[0]?.culture === null;
7
+ }
8
+ function findVariant(variants, culture) {
9
+ return variants.find((x) => x.culture === culture);
10
+ }
5
11
  /**
6
12
  * A controller for resolving data for a document item
7
13
  * @exports
@@ -13,6 +19,7 @@ export class UmbDocumentItemDataResolver extends UmbControllerBase {
13
19
  #name;
14
20
  #state;
15
21
  #isDraft;
22
+ #flags;
16
23
  #variantContext;
17
24
  #fallbackCulture;
18
25
  #displayCulture;
@@ -28,6 +35,8 @@ export class UmbDocumentItemDataResolver extends UmbControllerBase {
28
35
  this.state = this.#state.asObservable();
29
36
  this.#isDraft = new UmbBooleanState(undefined);
30
37
  this.isDraft = this.#isDraft.asObservable();
38
+ this.#flags = new UmbArrayState([], (data) => data.alias);
39
+ this.flags = this.#flags.asObservable();
31
40
  this.consumeContext(UMB_VARIANT_CONTEXT, (context) => {
32
41
  this.#variantContext = context;
33
42
  this.#observeVariantContext();
@@ -94,8 +103,7 @@ export class UmbDocumentItemDataResolver extends UmbControllerBase {
94
103
  * @memberof UmbDocumentItemDataResolver
95
104
  */
96
105
  async getState() {
97
- const variant = await this.#getCurrentVariant();
98
- return variant?.state;
106
+ return await this.observe(this.state).asPromise();
99
107
  }
100
108
  /**
101
109
  * Get the isDraft of the item
@@ -125,36 +133,50 @@ export class UmbDocumentItemDataResolver extends UmbControllerBase {
125
133
  this.#setName();
126
134
  this.#setIsDraft();
127
135
  this.#setState();
136
+ this.#setFlags();
128
137
  }
129
- async #setName() {
130
- const variant = await this.#getCurrentVariant();
138
+ #setName() {
139
+ const variant = this.#getCurrentVariant();
131
140
  if (variant) {
132
141
  this.#name.setValue(variant.name);
133
142
  return;
134
143
  }
135
- const fallbackName = this.#findVariant(this.#fallbackCulture)?.name;
136
- this.#name.setValue(`(${fallbackName})`);
144
+ const variants = this.getData()?.variants;
145
+ if (variants) {
146
+ const fallbackName = findVariant(variants, this.#fallbackCulture)?.name;
147
+ this.#name.setValue(`(${fallbackName})`);
148
+ }
149
+ else {
150
+ this.#name.setValue(undefined);
151
+ }
137
152
  }
138
- async #setIsDraft() {
139
- const variant = await this.#getCurrentVariant();
153
+ #setIsDraft() {
154
+ const variant = this.#getCurrentVariant();
140
155
  const isDraft = variant?.state === UmbDocumentVariantState.DRAFT || false;
141
156
  this.#isDraft.setValue(isDraft);
142
157
  }
143
- async #setState() {
144
- const variant = await this.#getCurrentVariant();
158
+ #setState() {
159
+ const variant = this.#getCurrentVariant();
145
160
  const state = variant?.state || UmbDocumentVariantState.NOT_CREATED;
146
161
  this.#state.setValue(state);
147
162
  }
148
- #findVariant(culture) {
149
- return this.getData()?.variants.find((x) => x.culture === culture);
150
- }
151
- async #getCurrentVariant() {
152
- if (this.#isInvariant()) {
153
- return this.getData()?.variants?.[0];
163
+ #setFlags() {
164
+ const data = this.getData();
165
+ if (!data) {
166
+ this.#flags.setValue([]);
167
+ return;
154
168
  }
155
- return this.#findVariant(this.#displayCulture);
156
- }
157
- #isInvariant() {
158
- return this.getData()?.variants?.[0]?.culture === null;
169
+ const flags = data.flags ?? [];
170
+ const variantFlags = this.#getCurrentVariant()?.flags ?? [];
171
+ this.#flags.setValue([...flags, ...variantFlags]);
172
+ }
173
+ #getCurrentVariant() {
174
+ const variants = this.getData()?.variants;
175
+ if (!variants)
176
+ return undefined;
177
+ if (isVariantsInvariant(variants)) {
178
+ return variants[0];
179
+ }
180
+ return findVariant(variants, this.#displayCulture);
159
181
  }
160
182
  }
@@ -7,6 +7,7 @@ export class UmbManagementApiDocumentItemDataCacheInvalidationManager extends Um
7
7
  /* The Document item model includes info about the Document Type.
8
8
  We need to invalidate the cache for both Document and DocumentType events. */
9
9
  eventSources: ['Umbraco:CMS:Document', 'Umbraco:CMS:DocumentType'],
10
+ eventTypes: ['Updated', 'Deleted', 'Trashed'],
10
11
  });
11
12
  }
12
13
  _onServerEvent(event) {
@@ -44,7 +44,9 @@ const mapper = (item) => {
44
44
  culture: variant.culture || null,
45
45
  name: variant.name,
46
46
  state: variant.state,
47
+ flags: variant.flags,
47
48
  };
48
49
  }),
50
+ flags: item.flags,
49
51
  };
50
52
  };
@@ -1,8 +1,9 @@
1
1
  import type { UmbDocumentEntityType } from '../../entity.js';
2
2
  import type { UmbEntityUnique } from '../../../../core/entity/index.js';
3
+ import type { UmbEntityFlag, UmbEntityWithFlags } from '../../../../core/entity-flag/index.js';
3
4
  import type { DocumentVariantStateModel } from '../../../../core/backend-api/index.js';
4
5
  import type { UmbReferenceByUnique } from '../../../../core/models/index.js';
5
- export interface UmbDocumentItemModel {
6
+ export interface UmbDocumentItemModel extends UmbEntityWithFlags {
6
7
  documentType: {
7
8
  unique: string;
8
9
  icon: string;
@@ -23,4 +24,5 @@ export interface UmbDocumentItemVariantModel {
23
24
  name: string;
24
25
  culture: string | null;
25
26
  state: DocumentVariantStateModel | null;
27
+ flags: Array<UmbEntityFlag>;
26
28
  }
@@ -2,6 +2,7 @@ import { manifests as auditLogManifests } from './audit-log/manifests.js';
2
2
  import { manifests as collectionManifests } from './collection/manifests.js';
3
3
  import { manifests as entityActionManifests } from './entity-actions/manifests.js';
4
4
  import { manifests as entityBulkActionManifests } from './entity-bulk-actions/manifests.js';
5
+ import { manifests as entitySignManifests } from './entity-sign/manifests.js';
5
6
  import { manifests as globalContextManifests } from './global-contexts/manifests.js';
6
7
  import { manifests as itemManifests } from './item/manifests.js';
7
8
  import { manifests as menuManifests } from './menu/manifests.js';
@@ -23,6 +24,7 @@ export const manifests = [
23
24
  ...collectionManifests,
24
25
  ...entityActionManifests,
25
26
  ...entityBulkActionManifests,
27
+ ...entitySignManifests,
26
28
  ...globalContextManifests,
27
29
  ...itemManifests,
28
30
  ...menuManifests,
@@ -49,6 +49,7 @@ export class UmbDocumentPublishEntityBulkAction extends UmbEntityBulkActionBase
49
49
  segment: null,
50
50
  scheduledPublishDate: null,
51
51
  scheduledUnpublishDate: null,
52
+ flags: [],
52
53
  },
53
54
  unique: new UmbVariantId(language.unique, null).toString(),
54
55
  culture: language.unique,
@@ -135,6 +135,7 @@ export class UmbDocumentPublishingServerDataSource {
135
135
  updateDate: variant.updateDate,
136
136
  scheduledPublishDate: variant.scheduledPublishDate || null,
137
137
  scheduledUnpublishDate: variant.scheduledUnpublishDate || null,
138
+ flags: variant.flags,
138
139
  };
139
140
  }),
140
141
  template: data.template ? { unique: data.template.id } : null,
@@ -144,6 +145,7 @@ export class UmbDocumentPublishingServerDataSource {
144
145
  icon: data.documentType.icon,
145
146
  },
146
147
  isTrashed: data.isTrashed,
148
+ flags: data.flags,
147
149
  };
148
150
  return { data: document };
149
151
  }
@@ -48,6 +48,7 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas
48
48
  segment: null,
49
49
  scheduledPublishDate: null,
50
50
  scheduledUnpublishDate: null,
51
+ flags: [],
51
52
  },
52
53
  unique: new UmbVariantId(language.unique, null).toString(),
53
54
  culture: language.unique,
@@ -64,10 +64,13 @@ const mapper = (item) => {
64
64
  culture: variant.culture || null,
65
65
  segment: null, // TODO: add segment to the backend API?
66
66
  state: variant.state,
67
+ flags: variant.flags ?? [],
67
68
  };
68
69
  }),
69
70
  name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution.
70
71
  isFolder: false,
71
72
  createDate: item.createDate,
73
+ // TODO: Recycle bin items should have flags, but the API does not return any at the moment. [NL]
74
+ flags: item.flags ?? [],
72
75
  };
73
76
  };
@@ -20,6 +20,7 @@ export class UmbDocumentReferenceResponseManagementApiDataMapping extends UmbCon
20
20
  culture: null,
21
21
  name: data.name ?? '',
22
22
  state: data.published ? DocumentVariantStateModel.PUBLISHED : null,
23
+ flags: [],
23
24
  },
24
25
  ],
25
26
  unique: data.id,
@@ -40,6 +40,7 @@ export class UmbDocumentServerDataSource extends UmbControllerBase {
40
40
  isTrashed: false,
41
41
  values: [],
42
42
  variants: [],
43
+ flags: [],
43
44
  };
44
45
  const scaffold = umbDeepMerge(preset, defaultData);
45
46
  return { data: scaffold };
@@ -82,6 +83,7 @@ export class UmbDocumentServerDataSource extends UmbControllerBase {
82
83
  updateDate: variant.updateDate,
83
84
  scheduledPublishDate: variant.scheduledPublishDate || null,
84
85
  scheduledUnpublishDate: variant.scheduledUnpublishDate || null,
86
+ flags: variant.flags,
85
87
  };
86
88
  }),
87
89
  template: data.template ? { unique: data.template.id } : null,
@@ -91,6 +93,7 @@ export class UmbDocumentServerDataSource extends UmbControllerBase {
91
93
  icon: data.documentType.icon,
92
94
  },
93
95
  isTrashed: data.isTrashed,
96
+ flags: data.flags,
94
97
  };
95
98
  return { data: document };
96
99
  }
@@ -54,8 +54,10 @@ export class UmbDocumentSearchServerDataSource {
54
54
  culture: variant.culture || null,
55
55
  name: variant.name,
56
56
  state: variant.state,
57
+ flags: variant.flags,
57
58
  };
58
59
  }),
60
+ flags: item.flags,
59
61
  };
60
62
  });
61
63
  return { data: { items: mappedItems, total: data.total } };
@@ -71,10 +71,12 @@ const mapper = (item) => {
71
71
  culture: variant.culture || null,
72
72
  segment: null, // TODO: add segment to the backend API?
73
73
  state: variant.state,
74
+ flags: variant.flags,
74
75
  };
75
76
  }),
76
77
  name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution.
77
78
  isFolder: false,
78
79
  createDate: item.createDate,
80
+ flags: item.flags,
79
81
  };
80
82
  };
@@ -6,6 +6,7 @@ export declare class UmbDocumentTreeItemContext extends UmbDefaultTreeItemContex
6
6
  readonly name: import("rxjs").Observable<string | undefined>;
7
7
  readonly icon: import("rxjs").Observable<string | undefined>;
8
8
  readonly isDraft: import("rxjs").Observable<boolean | undefined>;
9
+ readonly flags: import("rxjs").Observable<import("../../../../core/entity-flag/index.js").UmbEntityFlag[]>;
9
10
  readonly ancestors: import("rxjs").Observable<import("../../../../core/entity/index.js").UmbEntityModel[]>;
10
11
  readonly isTrashed: import("rxjs").Observable<boolean>;
11
12
  constructor(host: UmbControllerHost);
@@ -16,6 +16,7 @@ export class UmbDocumentTreeItemContext extends UmbDefaultTreeItemContext {
16
16
  this.name = this.#item.name;
17
17
  this.icon = this.#item.icon;
18
18
  this.isDraft = this.#item.isDraft;
19
+ this.flags = this.#item.flags;
19
20
  this.ancestors = this._treeItem.asObservablePart((item) => item?.ancestors ?? []);
20
21
  this.isTrashed = this._treeItem.asObservablePart((item) => item?.isTrashed ?? false);
21
22
  this.observe(this.isTrashed, (isTrashed) => {
@@ -6,9 +6,13 @@ export declare class UmbDocumentTreeItemElement extends UmbTreeItemElementBase<U
6
6
  get api(): UmbDocumentTreeItemContext | undefined;
7
7
  set api(value: UmbDocumentTreeItemContext | undefined);
8
8
  private _name;
9
- private _isDraft;
10
- private _icon;
11
- renderIconContainer(): import("lit-html").TemplateResult<1>;
9
+ /**
10
+ * @internal
11
+ * Indicates whether the document is a draft, this is controlled internally but present as an attribute as it affects styling.
12
+ */
13
+ protected _isDraft: boolean;
14
+ protected _extractFlags(item: UmbDocumentTreeItemModel | undefined): void;
15
+ protected _getIconName(): string | null | undefined;
12
16
  renderLabel(): import("lit-html").TemplateResult<1>;
13
17
  static styles: import("lit").CSSResult[];
14
18
  }
@@ -4,15 +4,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { css, html, nothing, customElement, classMap, state, property } from '../../../../../external/lit/index.js';
8
- import { UmbTextStyles } from '../../../../core/style/index.js';
7
+ import { css, html, customElement, state, property } from '../../../../../external/lit/index.js';
9
8
  import { UmbTreeItemElementBase } from '../../../../core/tree/index.js';
10
9
  let UmbDocumentTreeItemElement = class UmbDocumentTreeItemElement extends UmbTreeItemElementBase {
11
10
  constructor() {
12
11
  super(...arguments);
13
12
  this._name = '';
13
+ /**
14
+ * @internal
15
+ * Indicates whether the document is a draft, this is controlled internally but present as an attribute as it affects styling.
16
+ */
14
17
  this._isDraft = false;
15
- this._icon = '';
16
18
  }
17
19
  #api;
18
20
  get api() {
@@ -23,98 +25,29 @@ let UmbDocumentTreeItemElement = class UmbDocumentTreeItemElement extends UmbTre
23
25
  if (this.#api) {
24
26
  this.observe(this.#api.name, (name) => (this._name = name || ''));
25
27
  this.observe(this.#api.isDraft, (isDraft) => (this._isDraft = isDraft || false));
26
- this.observe(this.#api.icon, (icon) => (this._icon = icon || ''));
28
+ this.observe(this.#api.icon, (icon) => (this.#icon = icon || ''));
29
+ this.observe(this.#api.flags, (flags) => (this._flags = flags || ''));
27
30
  }
28
31
  super.api = value;
29
32
  }
30
- renderIconContainer() {
31
- const icon = this._icon;
32
- return html `
33
- <span id="icon-container" slot="icon" class=${classMap({ draft: this._isDraft })}>
34
- ${icon
35
- ? html `
36
- <umb-icon id="icon" slot="icon" name="${this._getIconToRender(icon)}"></umb-icon>
37
- ${this.#renderStateIcon()}
38
- `
39
- : nothing}
40
- </span>
41
- `;
33
+ #icon;
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
+ _extractFlags(item) {
36
+ // Empty on purpose and NOT calling super to prevent doing what the base does. [NL]
42
37
  }
43
- renderLabel() {
44
- return html `<span id="label" slot="label" class=${classMap({ draft: this._isDraft })}>${this._name}</span> `;
45
- }
46
- #renderStateIcon() {
47
- if (this.item?.isProtected) {
48
- return this.#renderIsProtectedIcon();
49
- }
50
- if (this.item?.documentType.collection) {
51
- return this.#renderIsCollectionIcon();
52
- }
53
- return nothing;
54
- }
55
- #renderIsCollectionIcon() {
56
- return html `<umb-icon id="state-icon" slot="icon" name="icon-grid" title="Collection"></umb-icon>`;
38
+ _getIconName() {
39
+ return this.#icon;
57
40
  }
58
- #renderIsProtectedIcon() {
59
- return html `<umb-icon id="state-icon" slot="icon" name="icon-lock" title="Protected"></umb-icon>`;
41
+ renderLabel() {
42
+ return html `<span id="label" slot="label">${this._name}</span> `;
60
43
  }
61
44
  static { this.styles = [
62
- UmbTextStyles,
45
+ ...UmbTreeItemElementBase.styles,
63
46
  css `
64
- #icon-container {
65
- position: relative;
66
- }
67
-
68
- #icon {
69
- vertical-align: middle;
70
- }
71
-
72
- #label {
73
- white-space: nowrap;
74
- overflow: hidden;
75
- text-overflow: ellipsis;
76
- }
77
-
78
- #state-icon {
79
- position: absolute;
80
- bottom: -5px;
81
- right: -5px;
82
- font-size: 10px;
83
- background: var(--uui-color-surface);
84
- width: 14px;
85
- height: 14px;
86
- border-radius: 100%;
87
- line-height: 14px;
88
- }
89
-
90
- :hover #state-icon {
91
- background: var(--uui-color-surface-emphasis);
92
- }
93
-
94
- /** Active */
95
- [active] #state-icon {
96
- background: var(--uui-color-current);
97
- }
98
-
99
- [active]:hover #state-icon {
100
- background: var(--uui-color-current-emphasis);
101
- }
102
-
103
- /** Selected */
104
- [selected] #state-icon {
105
- background-color: var(--uui-color-selected);
106
- }
107
-
108
- [selected]:hover #state-icon {
109
- background-color: var(--uui-color-selected-emphasis);
110
- }
111
-
112
- /** Disabled */
113
- [disabled] #state-icon {
114
- background-color: var(--uui-color-disabled);
47
+ :host([draft]) #label {
48
+ opacity: 0.6;
115
49
  }
116
-
117
- .draft {
50
+ :host([draft]) umb-icon {
118
51
  opacity: 0.6;
119
52
  }
120
53
  `,
@@ -127,11 +60,8 @@ __decorate([
127
60
  state()
128
61
  ], UmbDocumentTreeItemElement.prototype, "_name", void 0);
129
62
  __decorate([
130
- state()
63
+ property({ type: Boolean, reflect: true, attribute: 'draft' })
131
64
  ], UmbDocumentTreeItemElement.prototype, "_isDraft", void 0);
132
- __decorate([
133
- state()
134
- ], UmbDocumentTreeItemElement.prototype, "_icon", void 0);
135
65
  UmbDocumentTreeItemElement = __decorate([
136
66
  customElement('umb-document-tree-item')
137
67
  ], UmbDocumentTreeItemElement);
@@ -3,7 +3,8 @@ import type { UmbTreeChildrenOfRequestArgs, UmbTreeItemModel, UmbTreeRootItemsRe
3
3
  import type { DocumentVariantStateModel } from '../../../core/backend-api/index.js';
4
4
  import type { UmbReferenceByUnique } from '../../../core/models/index.js';
5
5
  import type { UmbEntityModel } from '../../../core/entity/index.js';
6
- export interface UmbDocumentTreeItemModel extends UmbTreeItemModel {
6
+ import type { UmbEntityFlag, UmbEntityWithFlags } from '../../../core/entity-flag/index.js';
7
+ export interface UmbDocumentTreeItemModel extends Omit<UmbTreeItemModel, 'flags'>, UmbEntityWithFlags {
7
8
  ancestors: Array<UmbEntityModel>;
8
9
  entityType: UmbDocumentEntityType;
9
10
  noAccess: boolean;
@@ -25,6 +26,7 @@ export interface UmbDocumentTreeItemVariantModel {
25
26
  culture: string | null;
26
27
  segment: string | null;
27
28
  state: DocumentVariantStateModel | null;
29
+ flags: Array<UmbEntityFlag>;
28
30
  }
29
31
  export interface UmbDocumentTreeRootItemsRequestArgs extends UmbTreeRootItemsRequestArgs {
30
32
  dataType?: {
@@ -43,7 +43,7 @@ const permissions = [
43
43
  forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
44
44
  meta: {
45
45
  verbs: ['Umb.Document.Create'],
46
- label: '#actions_create',
46
+ label: '#actions_createFor',
47
47
  description: '#actionDescriptions_create',
48
48
  },
49
49
  },
@@ -16,6 +16,7 @@ export class UmbDocumentPermissionServerDataSource {
16
16
  requestPermissions(id) {
17
17
  return tryExecute(this.#host, fetch(`/umbraco/management/api/v1/document/${id}/permissions`, {
18
18
  method: 'GET',
19
+ credentials: 'include',
19
20
  headers: {
20
21
  'Content-Type': 'application/json',
21
22
  },
@@ -4,6 +4,7 @@ const variantStatesOrder = {
4
4
  [DocumentVariantStateModel.PUBLISHED]: 1,
5
5
  [DocumentVariantStateModel.DRAFT]: 2,
6
6
  [DocumentVariantStateModel.NOT_CREATED]: 3,
7
+ [DocumentVariantStateModel.TRASHED]: 4,
7
8
  };
8
9
  const getVariantStateOrderValue = (variant) => {
9
10
  const fallbackOrder = 99;
@@ -11,4 +11,5 @@ export const UMB_DOCUMENT_DETAIL_MODEL_VARIANT_SCAFFOLD = {
11
11
  updateDate: null,
12
12
  scheduledPublishDate: null,
13
13
  scheduledUnpublishDate: null,
14
+ flags: [],
14
15
  };
@@ -3,9 +3,10 @@ export declare class UmbDocumentWorkspaceEditorElement extends UmbLitElement {
3
3
  #private;
4
4
  private _splitViewElement;
5
5
  private _routes?;
6
+ private _loading?;
6
7
  constructor();
7
8
  private _gotWorkspaceRoute;
8
- render(): "" | import("lit-html").TemplateResult<1>;
9
+ render(): import("lit-html").TemplateResult<1>;
9
10
  static styles: import("lit").CSSResult[];
10
11
  }
11
12
  export default UmbDocumentWorkspaceEditorElement;
@@ -24,6 +24,7 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
24
24
  // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL]
25
25
  this._splitViewElement = new UmbDocumentWorkspaceSplitViewElement();
26
26
  this.#isForbidden = false;
27
+ this._loading = true;
27
28
  this._gotWorkspaceRoute = (e) => {
28
29
  this.#workspaceRoute = e.target.absoluteRouterPath;
29
30
  this.#workspaceContext?.splitView.setWorkspaceRoute(this.#workspaceRoute);
@@ -45,10 +46,13 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
45
46
  this.#isForbidden = isForbidden ?? false;
46
47
  this.#generateRoutes();
47
48
  }, '_observeForbidden');
49
+ this.observe(this.#workspaceContext?.loading.isOn, (loading) => {
50
+ this._loading = loading ?? false;
51
+ }, '_observeLoading');
48
52
  });
49
53
  }
50
54
  #generateRoutes() {
51
- if (!this.#variants || !this.#appCulture) {
55
+ if (!this.#variants || this.#variants.length === 0 || !this.#appCulture) {
52
56
  this._routes = [];
53
57
  return;
54
58
  }
@@ -116,9 +120,9 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
116
120
  this._routes = routes;
117
121
  }
118
122
  render() {
119
- return this._routes
123
+ return !this._loading && this._routes
120
124
  ? html `<umb-router-slot .routes=${this._routes} @init=${this._gotWorkspaceRoute}></umb-router-slot>`
121
- : '';
125
+ : html `<umb-view-loader></umb-view-loader>`;
122
126
  }
123
127
  static { this.styles = [
124
128
  UmbTextStyles,
@@ -134,6 +138,9 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
134
138
  __decorate([
135
139
  state()
136
140
  ], UmbDocumentWorkspaceEditorElement.prototype, "_routes", void 0);
141
+ __decorate([
142
+ state()
143
+ ], UmbDocumentWorkspaceEditorElement.prototype, "_loading", void 0);
137
144
  UmbDocumentWorkspaceEditorElement = __decorate([
138
145
  customElement('umb-document-workspace-editor')
139
146
  ], UmbDocumentWorkspaceEditorElement);
@@ -1,6 +1,5 @@
1
1
  import type { UmbDocumentVariantOptionModel } from '../types.js';
2
2
  import { UmbWorkspaceSplitViewVariantSelectorElement } from '../../../core/workspace/index.js';
3
- declare const elementName = "umb-document-workspace-split-view-variant-selector";
4
3
  export declare class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends UmbWorkspaceSplitViewVariantSelectorElement<UmbDocumentVariantOptionModel> {
5
4
  #private;
6
5
  protected _variantSorter: (a: UmbDocumentVariantOptionModel, b: UmbDocumentVariantOptionModel) => number;
@@ -10,7 +9,6 @@ export declare class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends
10
9
  }
11
10
  declare global {
12
11
  interface HTMLElementTagNameMap {
13
- [elementName]: UmbDocumentWorkspaceSplitViewVariantSelectorElement;
12
+ 'umb-document-workspace-split-view-variant-selector': UmbDocumentWorkspaceSplitViewVariantSelectorElement;
14
13
  }
15
14
  }
16
- export {};
@@ -9,7 +9,6 @@ import { UMB_DOCUMENT_PUBLISHING_WORKSPACE_CONTEXT } from '../publishing/index.j
9
9
  import { customElement, html, state } from '../../../../external/lit/index.js';
10
10
  import { DocumentVariantStateModel } from '../../../core/backend-api/index.js';
11
11
  import { UmbWorkspaceSplitViewVariantSelectorElement } from '../../../core/workspace/index.js';
12
- const elementName = 'umb-document-workspace-split-view-variant-selector';
13
12
  let UmbDocumentWorkspaceSplitViewVariantSelectorElement = class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends UmbWorkspaceSplitViewVariantSelectorElement {
14
13
  #documentPublishingWorkspaceContext;
15
14
  #publishStateLocalizationMap;
@@ -25,6 +24,7 @@ let UmbDocumentWorkspaceSplitViewVariantSelectorElement = class UmbDocumentWorks
25
24
  // We should also make our own state model for this
26
25
  [DocumentVariantStateModel.PUBLISHED_PENDING_CHANGES]: 'content_published',
27
26
  [DocumentVariantStateModel.NOT_CREATED]: 'content_notCreated',
27
+ [DocumentVariantStateModel.TRASHED]: 'mediaPicker_trashed',
28
28
  };
29
29
  this.consumeContext(UMB_DOCUMENT_PUBLISHING_WORKSPACE_CONTEXT, (instance) => {
30
30
  this.#documentPublishingWorkspaceContext = instance;
@@ -56,6 +56,6 @@ __decorate([
56
56
  state()
57
57
  ], UmbDocumentWorkspaceSplitViewVariantSelectorElement.prototype, "_variantsWithPendingChanges", void 0);
58
58
  UmbDocumentWorkspaceSplitViewVariantSelectorElement = __decorate([
59
- customElement(elementName)
59
+ customElement('umb-document-workspace-split-view-variant-selector')
60
60
  ], UmbDocumentWorkspaceSplitViewVariantSelectorElement);
61
61
  export { UmbDocumentWorkspaceSplitViewVariantSelectorElement };
@@ -7,6 +7,7 @@ export declare class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement
7
7
  private _variants?;
8
8
  private _icon?;
9
9
  private _overrides?;
10
+ private _loading;
10
11
  constructor();
11
12
  render(): typeof nothing | import("lit-html").TemplateResult<1>;
12
13
  static styles: import("lit").CSSResult[];