@umbraco-cms/backoffice 16.3.3 → 16.4.0-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) 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/uui/package.json +2 -2
  25. package/dist-cms/libs/localization-api/localization.controller.d.ts +9 -0
  26. package/dist-cms/libs/localization-api/localization.controller.js +9 -0
  27. package/dist-cms/libs/observable-api/states/array-state.d.ts +20 -0
  28. package/dist-cms/libs/observable-api/states/array-state.js +33 -0
  29. package/dist-cms/libs/observable-api/utils/index.d.ts +1 -0
  30. package/dist-cms/libs/observable-api/utils/index.js +1 -0
  31. package/dist-cms/libs/observable-api/utils/replace-in-unique-array.function.d.ts +12 -0
  32. package/dist-cms/libs/observable-api/utils/replace-in-unique-array.function.js +19 -0
  33. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.js +1 -4
  34. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +37 -12
  35. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +16 -21
  36. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.js +7 -3
  37. package/dist-cms/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.js +2 -2
  38. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.d.ts +1 -0
  39. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +4 -1
  40. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.d.ts +1 -0
  41. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +4 -1
  42. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +3 -3
  43. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +3 -1
  44. package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +11 -2
  45. package/dist-cms/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.js +6 -0
  46. package/dist-cms/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.js +21 -13
  47. package/dist-cms/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.js +1 -1
  48. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.d.ts +2 -2
  49. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +8 -7
  50. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.d.ts +1 -0
  51. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.js +4 -5
  52. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.d.ts +1 -0
  53. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +4 -1
  54. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +5 -4
  55. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.d.ts +1 -1
  56. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +6 -5
  57. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.d.ts +1 -0
  58. package/dist-cms/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.js +4 -1
  59. package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +3 -4
  60. package/dist-cms/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.js +1 -1
  61. package/dist-cms/packages/content/content/manager/content-data-manager.js +1 -0
  62. package/dist-cms/packages/content/content/manager/element-data-manager.js +6 -5
  63. package/dist-cms/packages/content/content/types.d.ts +8 -2
  64. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +4 -0
  65. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +34 -10
  66. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.d.ts +2 -1
  67. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +10 -2
  68. package/dist-cms/packages/content/content-type/structure/content-type-container-structure-helper.class.js +1 -1
  69. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +9 -5
  70. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +25 -5
  71. package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js +1 -0
  72. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.js +3 -4
  73. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.js +17 -5
  74. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +39 -20
  75. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +1 -1
  76. package/dist-cms/packages/content/property-type/workspace/views/settings/property-workspace-view-settings.element.js +1 -1
  77. package/dist-cms/packages/core/auth/auth-flow.js +3 -0
  78. package/dist-cms/packages/core/backend-api/client/client.gen.js +39 -11
  79. package/dist-cms/packages/core/backend-api/client/index.d.ts +1 -0
  80. package/dist-cms/packages/core/backend-api/client/index.js +1 -0
  81. package/dist-cms/packages/core/backend-api/client/types.gen.d.ts +1 -1
  82. package/dist-cms/packages/core/backend-api/client/utils.gen.d.ts +6 -11
  83. package/dist-cms/packages/core/backend-api/client/utils.gen.js +27 -23
  84. package/dist-cms/packages/core/backend-api/client.gen.d.ts +3 -3
  85. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.d.ts +18 -0
  86. package/dist-cms/packages/core/backend-api/core/queryKeySerializer.gen.js +99 -0
  87. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.d.ts +13 -1
  88. package/dist-cms/packages/core/backend-api/core/serverSentEvents.gen.js +16 -2
  89. package/dist-cms/packages/core/backend-api/core/utils.gen.d.ts +6 -1
  90. package/dist-cms/packages/core/backend-api/core/utils.gen.js +18 -0
  91. package/dist-cms/packages/core/backend-api/sdk.gen.d.ts +12 -6
  92. package/dist-cms/packages/core/backend-api/sdk.gen.js +500 -416
  93. package/dist-cms/packages/core/backend-api/types.gen.d.ts +294 -6
  94. package/dist-cms/packages/core/backend-api/types.gen.js +1 -0
  95. package/dist-cms/packages/core/collection/action/create/manifests.js +1 -1
  96. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.d.ts +4 -0
  97. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +39 -2
  98. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +1 -1
  99. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.d.ts +1 -1
  100. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +18 -12
  101. package/dist-cms/packages/core/components/index.d.ts +1 -0
  102. package/dist-cms/packages/core/components/index.js +1 -0
  103. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +1 -1
  104. package/dist-cms/packages/core/components/input-slider/input-slider.element.d.ts +8 -3
  105. package/dist-cms/packages/core/components/input-slider/input-slider.element.js +95 -9
  106. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.js +28 -5
  107. package/dist-cms/packages/core/components/split-panel/split-panel.element.d.ts +3 -2
  108. package/dist-cms/packages/core/components/split-panel/split-panel.element.js +7 -2
  109. package/dist-cms/packages/core/components/view-loader/view-loader.element.d.ts +5 -0
  110. package/dist-cms/packages/core/components/view-loader/view-loader.element.js +36 -0
  111. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  112. package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -1
  113. package/dist-cms/packages/core/entity-action/common/create/create.action.kind.js +1 -1
  114. package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +1 -1
  115. package/dist-cms/packages/core/entity-flag/index.d.ts +1 -0
  116. package/dist-cms/packages/core/entity-flag/index.js +1 -0
  117. package/dist-cms/packages/core/entity-flag/types.d.ts +10 -0
  118. package/dist-cms/packages/core/entity-flag/types.js +1 -0
  119. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.d.ts +21 -0
  120. package/dist-cms/packages/core/entity-sign/components/entity-sign-bundle.element.js +257 -0
  121. package/dist-cms/packages/core/entity-sign/components/index.d.ts +1 -0
  122. package/dist-cms/packages/core/entity-sign/components/index.js +1 -0
  123. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.d.ts +18 -0
  124. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-api.interface.js +1 -0
  125. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.d.ts +5 -0
  126. package/dist-cms/packages/core/entity-sign/extensions/entity-sign-element.interface.js +1 -0
  127. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.d.ts +20 -0
  128. package/dist-cms/packages/core/entity-sign/extensions/entity-sign.extension.js +1 -0
  129. package/dist-cms/packages/core/entity-sign/extensions/types.d.ts +3 -0
  130. package/dist-cms/packages/core/entity-sign/extensions/types.js +1 -0
  131. package/dist-cms/packages/core/entity-sign/index.d.ts +2 -0
  132. package/dist-cms/packages/core/entity-sign/index.js +1 -0
  133. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.d.ts +10 -0
  134. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.api.js +11 -0
  135. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.d.ts +10 -0
  136. package/dist-cms/packages/core/entity-sign/kinds/icon/entity-sign-icon.element.js +41 -0
  137. package/dist-cms/packages/core/entity-sign/kinds/icon/index.d.ts +1 -0
  138. package/dist-cms/packages/core/entity-sign/kinds/icon/index.js +1 -0
  139. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.d.ts +2 -0
  140. package/dist-cms/packages/core/entity-sign/kinds/icon/manifests.js +14 -0
  141. package/dist-cms/packages/core/entity-sign/kinds/icon/types.d.ts +15 -0
  142. package/dist-cms/packages/core/entity-sign/kinds/icon/types.js +1 -0
  143. package/dist-cms/packages/core/entity-sign/kinds/manifests.d.ts +2 -0
  144. package/dist-cms/packages/core/entity-sign/kinds/manifests.js +2 -0
  145. package/dist-cms/packages/core/entity-sign/kinds/types.d.ts +1 -0
  146. package/dist-cms/packages/core/entity-sign/kinds/types.js +1 -0
  147. package/dist-cms/packages/core/entity-sign/manifests.d.ts +2 -0
  148. package/dist-cms/packages/core/entity-sign/manifests.js +2 -0
  149. package/dist-cms/packages/core/entity-sign/types.d.ts +1 -0
  150. package/dist-cms/packages/core/entity-sign/types.js +1 -0
  151. package/dist-cms/packages/core/entry-point.d.ts +1 -0
  152. package/dist-cms/packages/core/entry-point.js +1 -0
  153. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +8 -0
  154. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.d.ts +1 -3
  155. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.js +44 -26
  156. package/dist-cms/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.d.ts +5 -2
  157. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.d.ts +1 -1
  158. package/dist-cms/packages/core/icon-registry/icons/icon-bar-chart.js +1 -1
  159. package/dist-cms/packages/core/icon-registry/icons/icon-bars.d.ts +1 -1
  160. package/dist-cms/packages/core/icon-registry/icons/icon-bars.js +1 -1
  161. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.d.ts +1 -1
  162. package/dist-cms/packages/core/icon-registry/icons/icon-blockquote.js +1 -1
  163. package/dist-cms/packages/core/icon-registry/icons/icon-bug.d.ts +1 -1
  164. package/dist-cms/packages/core/icon-registry/icons/icon-bug.js +1 -1
  165. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.d.ts +1 -1
  166. package/dist-cms/packages/core/icon-registry/icons/icon-bulleted-list.js +1 -1
  167. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.d.ts +1 -1
  168. package/dist-cms/packages/core/icon-registry/icons/icon-equalizer.js +1 -1
  169. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.d.ts +1 -1
  170. package/dist-cms/packages/core/icon-registry/icons/icon-heading-5.js +1 -1
  171. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.d.ts +1 -1
  172. package/dist-cms/packages/core/icon-registry/icons/icon-heading-6.js +1 -1
  173. package/dist-cms/packages/core/icon-registry/icons/icon-heading.d.ts +1 -1
  174. package/dist-cms/packages/core/icon-registry/icons/icon-heading.js +1 -1
  175. package/dist-cms/packages/core/icon-registry/icons/icon-home.d.ts +1 -1
  176. package/dist-cms/packages/core/icon-registry/icons/icon-home.js +1 -1
  177. package/dist-cms/packages/core/icon-registry/icons/icon-indent.d.ts +1 -1
  178. package/dist-cms/packages/core/icon-registry/icons/icon-indent.js +1 -1
  179. package/dist-cms/packages/core/icon-registry/icons/icon-list.d.ts +1 -1
  180. package/dist-cms/packages/core/icon-registry/icons/icon-list.js +1 -1
  181. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.d.ts +1 -1
  182. package/dist-cms/packages/core/icon-registry/icons/icon-ordered-list.js +1 -1
  183. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.d.ts +1 -1
  184. package/dist-cms/packages/core/icon-registry/icons/icon-outdent.js +1 -1
  185. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.d.ts +1 -1
  186. package/dist-cms/packages/core/icon-registry/icons/icon-playlist.js +1 -1
  187. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.d.ts +2 -0
  188. package/dist-cms/packages/core/icon-registry/icons/icon-stretch-horizontal.js +1 -0
  189. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.d.ts +1 -1
  190. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-center.js +1 -1
  191. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.d.ts +1 -1
  192. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-justify.js +1 -1
  193. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.d.ts +1 -1
  194. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-left.js +1 -1
  195. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.d.ts +1 -1
  196. package/dist-cms/packages/core/icon-registry/icons/icon-text-align-right.js +1 -1
  197. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.d.ts +2 -0
  198. package/dist-cms/packages/core/icon-registry/icons/icon-trending-up-down.js +1 -0
  199. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.d.ts +1 -1
  200. package/dist-cms/packages/core/icon-registry/icons/icon-twitter-x.js +1 -1
  201. package/dist-cms/packages/core/icon-registry/icons.d.ts +10 -0
  202. package/dist-cms/packages/core/icon-registry/icons.js +6 -0
  203. package/dist-cms/packages/core/manifests.js +2 -0
  204. package/dist-cms/packages/core/menu/components/menu-item-layout/menu-item-layout.element.js +20 -19
  205. package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +3 -2
  206. package/dist-cms/packages/core/openapi-ts.config.d.ts +31 -1
  207. package/dist-cms/packages/core/package.json +4 -4
  208. package/dist-cms/packages/core/picker-input/picker-input.context.js +0 -1
  209. package/dist-cms/packages/core/property/components/property/property.element.d.ts +1 -1
  210. package/dist-cms/packages/core/property/components/property/property.element.js +6 -1
  211. package/dist-cms/packages/core/property/components/property-layout/property-layout.element.js +2 -1
  212. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  213. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.d.ts +3 -1
  214. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +25 -16
  215. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.js +12 -10
  216. package/dist-cms/packages/core/property/property-value-preset/types.d.ts +1 -0
  217. package/dist-cms/packages/core/property-editor/constants.d.ts +2 -0
  218. package/dist-cms/packages/core/property-editor/constants.js +2 -0
  219. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.js +1 -1
  220. package/dist-cms/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.js +8 -5
  221. package/dist-cms/packages/core/repository/repository-items.manager.d.ts +4 -0
  222. package/dist-cms/packages/core/repository/repository-items.manager.js +35 -11
  223. package/dist-cms/packages/core/resources/extractUmbColorVariable.function.js +1 -0
  224. package/dist-cms/packages/core/router/modal-registration/modal-route-registration.controller.js +8 -4
  225. package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -0
  226. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +0 -1
  227. package/dist-cms/packages/core/sorter/sorter.controller.js +0 -1
  228. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  229. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  230. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +10 -0
  231. package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +75 -15
  232. package/dist-cms/packages/core/tree/types.d.ts +2 -1
  233. package/dist-cms/packages/core/validation/controllers/validation.controller.js +4 -2
  234. package/dist-cms/packages/core/variant/types.d.ts +2 -0
  235. package/dist-cms/packages/core/vite.config.js +2 -0
  236. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +5 -1
  237. package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +5 -2
  238. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +22 -4
  239. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.d.ts +2 -1
  240. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.js +5 -0
  241. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +6 -0
  242. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +12 -2
  243. package/dist-cms/packages/core/workspace/kinds/default/default-workspace.context.d.ts +1 -1
  244. package/dist-cms/packages/core/workspace/workspace.element.d.ts +2 -2
  245. package/dist-cms/packages/core/workspace/workspace.element.js +2 -2
  246. package/dist-cms/packages/data-type/index.d.ts +1 -0
  247. package/dist-cms/packages/data-type/index.js +1 -0
  248. package/dist-cms/packages/data-type/workspace/data-type-workspace.context.js +4 -1
  249. package/dist-cms/packages/data-type/workspace/index.d.ts +1 -0
  250. package/dist-cms/packages/data-type/workspace/index.js +1 -0
  251. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.d.ts +22 -0
  252. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-property-editor-picker.element.js +128 -0
  253. package/dist-cms/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.js +23 -72
  254. package/dist-cms/packages/data-type/workspace/views/index.d.ts +1 -0
  255. package/dist-cms/packages/data-type/workspace/views/index.js +1 -0
  256. package/dist-cms/packages/dictionary/entity-action/manifests.js +1 -1
  257. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +5 -8
  258. package/dist-cms/packages/documents/document-blueprints/entity-actions/create/manifests.js +1 -1
  259. package/dist-cms/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.js +3 -0
  260. package/dist-cms/packages/documents/document-blueprints/types.d.ts +2 -2
  261. package/dist-cms/packages/documents/document-types/entity-actions/create/manifests.js +1 -1
  262. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.js +2 -0
  263. package/dist-cms/packages/documents/documents/collection/types.d.ts +3 -2
  264. package/dist-cms/packages/documents/documents/constants.d.ts +1 -0
  265. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -1
  266. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +1 -1
  267. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +1 -1
  268. package/dist-cms/packages/documents/documents/entity-sign/constants.d.ts +2 -0
  269. package/dist-cms/packages/documents/documents/entity-sign/constants.js +1 -0
  270. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.d.ts +1 -0
  271. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/constants.js +1 -0
  272. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.d.ts +1 -0
  273. package/dist-cms/packages/documents/documents/entity-sign/has-pending-changes/manifests.js +12 -0
  274. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.d.ts +1 -0
  275. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/constants.js +1 -0
  276. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.d.ts +1 -0
  277. package/dist-cms/packages/documents/documents/entity-sign/has-schedule/manifests.js +18 -0
  278. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.d.ts +1 -0
  279. package/dist-cms/packages/documents/documents/entity-sign/is-protected/constants.js +1 -0
  280. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.d.ts +1 -0
  281. package/dist-cms/packages/documents/documents/entity-sign/is-protected/manifest.js +15 -0
  282. package/dist-cms/packages/documents/documents/entity-sign/manifests.d.ts +1 -0
  283. package/dist-cms/packages/documents/documents/entity-sign/manifests.js +8 -0
  284. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +9 -6
  285. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +43 -21
  286. package/dist-cms/packages/documents/documents/item/repository/document-item.server.cache-invalidation.manager.js +1 -0
  287. package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.js +2 -0
  288. package/dist-cms/packages/documents/documents/item/repository/types.d.ts +3 -1
  289. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  290. package/dist-cms/packages/documents/documents/publishing/publish/entity-bulk-action/publish.bulk-action.js +1 -0
  291. package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.js +2 -0
  292. package/dist-cms/packages/documents/documents/publishing/unpublish/entity-bulk-action/unpublish.bulk-action.js +1 -0
  293. package/dist-cms/packages/documents/documents/recycle-bin/tree/data/document-recycle-bin-tree.server.data-source.js +3 -0
  294. package/dist-cms/packages/documents/documents/reference/repository/document-reference-response.management-api.mapping.js +1 -0
  295. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +3 -0
  296. package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +2 -0
  297. package/dist-cms/packages/documents/documents/tree/document-tree.server.data-source.js +2 -0
  298. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +1 -0
  299. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.js +1 -0
  300. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.d.ts +7 -3
  301. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +20 -90
  302. package/dist-cms/packages/documents/documents/tree/types.d.ts +3 -1
  303. package/dist-cms/packages/documents/documents/user-permissions/document/manifests.js +1 -1
  304. package/dist-cms/packages/documents/documents/utils.js +1 -0
  305. package/dist-cms/packages/documents/documents/workspace/constants.js +1 -0
  306. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.d.ts +2 -1
  307. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +10 -3
  308. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.d.ts +1 -3
  309. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.js +2 -2
  310. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.d.ts +1 -0
  311. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +13 -6
  312. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +9 -1
  313. package/dist-cms/packages/extension-types/index.d.ts +2 -0
  314. package/dist-cms/packages/language/entity-actions/manifests.js +1 -1
  315. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.d.ts +1 -0
  316. package/dist-cms/packages/log-viewer/workspace/logviewer-workspace.context.js +8 -1
  317. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.d.ts +1 -0
  318. package/dist-cms/packages/management-api/detail/cache-invalidation.manager.js +3 -1
  319. package/dist-cms/packages/management-api/detail/detail-data.request-manager.js +1 -1
  320. package/dist-cms/packages/management-api/item/cache-invalidation.manager.d.ts +1 -0
  321. package/dist-cms/packages/management-api/item/cache-invalidation.manager.js +3 -1
  322. package/dist-cms/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.js +1 -0
  323. package/dist-cms/packages/media/media/collection/media-collection.context.js +1 -0
  324. package/dist-cms/packages/media/media/collection/repository/media-collection.server.data-source.js +1 -0
  325. package/dist-cms/packages/media/media/collection/types.d.ts +2 -1
  326. package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.js +1 -0
  327. package/dist-cms/packages/media/media/dropzone/media-dropzone.manager.js +1 -1
  328. package/dist-cms/packages/media/media/entity-actions/create/create.action.d.ts +1 -1
  329. package/dist-cms/packages/media/media/entity-actions/create/create.action.js +1 -1
  330. package/dist-cms/packages/media/media/entity-actions/create/manifests.js +1 -1
  331. package/dist-cms/packages/media/media/modals/media-picker/components/media-picker-folder-path.element.js +1 -0
  332. package/dist-cms/packages/media/media/paths.js +1 -1
  333. package/dist-cms/packages/media/media/property-editors/upload-field/Umbraco.UploadField.js +1 -1
  334. package/dist-cms/packages/media/media/repository/detail/media-detail.server.data-source.js +5 -0
  335. package/dist-cms/packages/media/media/repository/item/media-item.server.cache-invalidation.manager.js +1 -0
  336. package/dist-cms/packages/media/media/tree/media-tree.server.data-source.js +3 -0
  337. package/dist-cms/packages/media/media/workspace/constants.js +1 -0
  338. package/dist-cms/packages/members/member/collection/repository/member-collection.server.data-source.js +1 -0
  339. package/dist-cms/packages/members/member/entity-actions/create/manifests.js +1 -1
  340. package/dist-cms/packages/members/member/repository/detail/member-detail.server.data-source.js +5 -0
  341. package/dist-cms/packages/members/member/workspace/member/constants.js +1 -0
  342. package/dist-cms/packages/members/member-group/entity-actions/manifests.js +1 -1
  343. package/dist-cms/packages/property-editors/collection/manifests.js +1 -0
  344. package/dist-cms/packages/property-editors/icon-picker/manifests.js +10 -0
  345. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.d.ts +7 -3
  346. package/dist-cms/packages/property-editors/icon-picker/property-editor-ui-icon-picker.element.js +45 -14
  347. package/dist-cms/packages/property-editors/missing/manifests.js +15 -2
  348. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.d.ts +18 -0
  349. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-base.element.js +130 -0
  350. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.d.ts +13 -0
  351. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing-ui.element.js +24 -0
  352. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.d.ts +2 -13
  353. package/dist-cms/packages/property-editors/missing/property-editor-ui-missing.element.js +6 -112
  354. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.d.ts +2 -2
  355. package/dist-cms/packages/property-editors/slider/property-editor-ui-slider.element.js +29 -11
  356. package/dist-cms/packages/property-editors/slider/slider-property-value-preset.d.ts +1 -4
  357. package/dist-cms/packages/property-editors/slider/types.d.ts +3 -2
  358. package/dist-cms/packages/templating/partial-views/entity-actions/create/manifests.js +1 -1
  359. package/dist-cms/packages/templating/scripts/entity-actions/create/manifests.js +1 -1
  360. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +1 -1
  361. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +2 -2
  362. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +1 -1
  363. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +14 -6
  364. package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar.element.js +3 -3
  365. package/dist-cms/packages/tiptap/extensions/horizontal-rule/manifests.js +1 -0
  366. package/dist-cms/packages/tiptap/extensions/style-select/manifests.js +1 -0
  367. package/dist-cms/packages/tiptap/property-editors/extensions-configuration/property-editor-ui-tiptap-extensions-configuration.element.js +2 -2
  368. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/property-editor-ui-tiptap-statusbar-configuration.element.js +37 -25
  369. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.d.ts +2 -2
  370. package/dist-cms/packages/tiptap/property-editors/statusbar-configuration/tiptap-statusbar-configuration.context.js +2 -1
  371. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/property-editor-ui-tiptap-toolbar-configuration.element.js +1 -3
  372. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.d.ts +2 -2
  373. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-configuration.context.js +1 -1
  374. package/dist-cms/packages/tiptap/property-editors/toolbar-configuration/tiptap-toolbar-group-configuration.element.js +22 -19
  375. package/dist-cms/packages/tiptap/property-editors/types.d.ts +4 -4
  376. package/dist-cms/packages/ufm/contexts/ufm.context.d.ts +1 -1
  377. package/dist-cms/packages/ufm/filters/manifests.js +24 -0
  378. package/dist-cms/packages/ufm/filters/strip-html.filter.d.ts +1 -0
  379. package/dist-cms/packages/ufm/filters/strip-html.filter.js +1 -0
  380. package/dist-cms/packages/ufm/filters/truncate.filter.d.ts +1 -0
  381. package/dist-cms/packages/ufm/filters/truncate.filter.js +8 -1
  382. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -2
  383. package/dist-cms/packages/user/user-permission/constants.d.ts +1 -0
  384. package/dist-cms/packages/user/user-permission/constants.js +1 -0
  385. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.d.ts +1 -0
  386. package/dist-cms/packages/user/user-permission/fallback-permission-condition/constants.js +1 -0
  387. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.d.ts +9 -0
  388. package/dist-cms/packages/user/user-permission/fallback-permission-condition/fallback-user-permission.condition.js +34 -0
  389. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.d.ts +1 -0
  390. package/dist-cms/packages/user/user-permission/fallback-permission-condition/manifests.js +9 -0
  391. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.d.ts +20 -0
  392. package/dist-cms/packages/user/user-permission/fallback-permission-condition/types.js +1 -0
  393. package/dist-cms/packages/user/user-permission/index.d.ts +1 -0
  394. package/dist-cms/packages/user/user-permission/index.js +1 -0
  395. package/dist-cms/packages/user/user-permission/manifests.js +2 -1
  396. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  397. package/dist-cms/umbraco-package-schema.json +3 -0
  398. package/dist-cms/umbraco-package.json +1 -1
  399. package/dist-cms/vscode-html-custom-data.json +133 -30
  400. package/examples/user-permission/constants.ts +4 -0
  401. package/examples/user-permission/entity-action/action-1.ts +9 -0
  402. package/examples/user-permission/entity-action/action-2.ts +9 -0
  403. package/examples/user-permission/entity-action/manifests.ts +47 -0
  404. package/examples/user-permission/entity-user-permission/manifests.ts +30 -0
  405. package/examples/user-permission/index.ts +9 -0
  406. package/examples/user-permission/localization/en.ts +6 -0
  407. package/examples/user-permission/localization/manifests.ts +12 -0
  408. package/examples/validation-context/validation-context-dashboard.ts +9 -8
  409. package/package.json +13 -11
@@ -242,11 +242,12 @@ let UmbPropertyEditorUIBlockListElement = class UmbPropertyEditorUIBlockListElem
242
242
  return nothing;
243
243
  }
244
244
  return html `
245
- ${repeat(this._layouts, (x) => x.contentKey, (layoutEntry, index) => html `
245
+ ${repeat(this._layouts, (layout, index) => `${index}_${layout.contentKey}`, (layout, index) => html `
246
246
  ${this.#renderInlineCreateButton(index)}
247
247
  <umb-block-list-entry
248
- .contentKey=${layoutEntry.contentKey}
249
- .layout=${layoutEntry}
248
+ index=${index}
249
+ .contentKey=${layout.contentKey}
250
+ .layout=${layout}
250
251
  ${umbDestroyOnDisconnect()}>
251
252
  </umb-block-list-entry>
252
253
  `)}
@@ -258,7 +259,7 @@ let UmbPropertyEditorUIBlockListElement = class UmbPropertyEditorUIBlockListElem
258
259
  return nothing;
259
260
  }
260
261
  else {
261
- return html ` <uui-button-group> ${this.#renderCreateButton()} ${this.#renderPasteButton()} </uui-button-group> `;
262
+ return html `<uui-button-group>${this.#renderCreateButton()}${this.#renderPasteButton()}</uui-button-group>`;
262
263
  }
263
264
  }
264
265
  #renderInlineCreateButton(index) {
@@ -7,8 +7,8 @@ import '../ref-rte-block/index.js';
7
7
  */
8
8
  export declare class UmbBlockRteEntryElement extends UmbLitElement implements UmbPropertyEditorUiElement {
9
9
  #private;
10
- get contentKey(): string | undefined;
11
10
  set contentKey(value: string | undefined);
11
+ get contentKey(): string | undefined;
12
12
  private _contentKey?;
13
13
  private _showContentEdit;
14
14
  private _hasSettings;
@@ -17,9 +17,6 @@ import { UmbDataPathBlockElementDataQuery } from '../../../block/index.js';
17
17
  * @class UmbBlockRteEntryElement
18
18
  */
19
19
  let UmbBlockRteEntryElement = class UmbBlockRteEntryElement extends UmbLitElement {
20
- get contentKey() {
21
- return this._contentKey;
22
- }
23
20
  set contentKey(value) {
24
21
  if (!value)
25
22
  return;
@@ -30,6 +27,9 @@ let UmbBlockRteEntryElement = class UmbBlockRteEntryElement extends UmbLitElemen
30
27
  this._blockViewProps.contentInvalid = hasMessages;
31
28
  }, 'observeMessagesForContent');
32
29
  }
30
+ get contentKey() {
31
+ return this._contentKey;
32
+ }
33
33
  #context;
34
34
  #updateBlockViewProps(incoming) {
35
35
  this._blockViewProps = { ...this._blockViewProps, ...incoming };
@@ -94,7 +94,7 @@ let UmbBlockRteEntryElement = class UmbBlockRteEntryElement extends UmbLitElemen
94
94
  this.observe(this.#context.blockType, (blockType) => {
95
95
  this.#updateBlockViewProps({ blockType });
96
96
  }, null);
97
- // TODO: Implement index.
97
+ this.observe(this.#context.index, (index) => this.#updateBlockViewProps({ index }), null);
98
98
  this.observe(this.#context.label, (label) => {
99
99
  this.#updateBlockViewProps({ label });
100
100
  this._label = label;
@@ -171,7 +171,7 @@ let UmbBlockRteEntryElement = class UmbBlockRteEntryElement extends UmbLitElemen
171
171
  }
172
172
  #renderActionBar() {
173
173
  return this._showActions
174
- ? html ` <uui-action-bar> ${this.#renderEditAction()} ${this.#renderEditSettingsAction()}</uui-action-bar> `
174
+ ? html `<uui-action-bar>${this.#renderEditAction()}${this.#renderEditSettingsAction()}</uui-action-bar>`
175
175
  : nothing;
176
176
  }
177
177
  #renderBuiltinBlockView;
@@ -179,6 +179,7 @@ let UmbBlockRteEntryElement = class UmbBlockRteEntryElement extends UmbLitElemen
179
179
  return html `<umb-ref-rte-block
180
180
  .label=${this._label}
181
181
  .icon=${this._icon}
182
+ .index=${this._blockViewProps.index}
182
183
  .unpublished=${!this._exposed}
183
184
  .content=${this._blockViewProps.content}
184
185
  .settings=${this._blockViewProps.settings}
@@ -7,6 +7,7 @@ import type { UmbBlockEditorCustomViewConfiguration } from '../../../block-custo
7
7
  export declare class UmbRefRteBlockElement extends UmbLitElement {
8
8
  label?: string;
9
9
  icon?: string;
10
+ index?: number;
10
11
  unpublished?: boolean;
11
12
  content?: UmbBlockDataType;
12
13
  settings?: UmbBlockDataType;
@@ -20,7 +20,7 @@ let UmbRefRteBlockElement = class UmbRefRteBlockElement extends UmbLitElement {
20
20
  });
21
21
  }
22
22
  render() {
23
- const blockValue = { ...this.content, $settings: this.settings };
23
+ const blockValue = { ...this.content, $settings: this.settings, $index: this.index };
24
24
  return html `
25
25
  <uui-ref-node standalone href=${(this.config?.showContentEdit ? this._workspaceEditPath : undefined) ?? ''}>
26
26
  <div class="selection-background" aria-hidden="true">&emsp;</div>
@@ -67,6 +67,9 @@ __decorate([
67
67
  __decorate([
68
68
  property({ type: String })
69
69
  ], UmbRefRteBlockElement.prototype, "icon", void 0);
70
+ __decorate([
71
+ property({ type: Number, attribute: false })
72
+ ], UmbRefRteBlockElement.prototype, "index", void 0);
70
73
  __decorate([
71
74
  property({ type: Boolean, reflect: true })
72
75
  ], UmbRefRteBlockElement.prototype, "unpublished", void 0);
@@ -134,10 +134,9 @@ let UmbInputBlockTypeElement = class UmbInputBlockTypeElement extends UmbLitElem
134
134
  const contentType = store.getItems([item.contentElementTypeKey]);
135
135
  await umbConfirmModal(this, {
136
136
  color: 'danger',
137
- headline: `Remove ${contentType[0]?.name}?`,
138
- // TODO: Translations: [NL]
139
- content: 'Are you sure you want to remove this Block Type Configuration?',
140
- confirmLabel: 'Remove',
137
+ headline: '#blockEditor_confirmDeleteBlockTypeTitle',
138
+ content: this.localize.term('blockEditor_confirmDeleteBlockTypeMessage', [contentType[0]?.name]),
139
+ confirmLabel: '#general_remove',
141
140
  });
142
141
  this.deleteItem(item.contentElementTypeKey);
143
142
  }
@@ -110,7 +110,7 @@ let UmbClipboardEntryPickerElement = class UmbClipboardEntryPickerElement extend
110
110
  slot="actions"
111
111
  .entityType=${item.entityType}
112
112
  .unique=${item.unique}
113
- .label=${this.localize.term('actions_viewActionsFor', [item.name])}>
113
+ .label=${this.localize.string(item.name)}>
114
114
  </umb-entity-actions-bundle>
115
115
  `;
116
116
  }
@@ -67,6 +67,7 @@ export class UmbContentWorkspaceDataManager extends UmbElementWorkspaceDataManag
67
67
  const currentData = this.getCurrent();
68
68
  if (!currentData)
69
69
  throw new Error('Data is missing');
70
+ // If varies by segment:
70
71
  if (!variantId.isSegmentInvariant()) {
71
72
  // The server requires a segment name. It doesn't matter what it is as long as it is not empty. The server will overwrite it with the name of the default.
72
73
  update = { ...update, name: 'Segment' };
@@ -68,9 +68,14 @@ export class UmbElementWorkspaceDataManager extends UmbEntityWorkspaceDataManage
68
68
  else {
69
69
  variantsToStore = [...selectedVariants, invariantVariantId];
70
70
  }
71
+ const data = this.getCurrent();
72
+ if (!data)
73
+ throw new Error('Current data is missing');
74
+ //if (!data.unique) throw new Error('Unique of current data is missing');
71
75
  // If we vary by segment we need to save all segments for a selected culture.
76
+ // And all segments for the invariant culture.
72
77
  if (this._variesBySegment === true) {
73
- const dataSegments = this.getCurrent().values.map((x) => x.segment);
78
+ const dataSegments = data.values.map((x) => x.segment).filter((x) => x);
74
79
  variantsToStore = [
75
80
  ...variantsToStore,
76
81
  ...dataSegments.flatMap((segment) => variantsToStore.map((variant) => variant.toSegment(segment))),
@@ -80,10 +85,6 @@ export class UmbElementWorkspaceDataManager extends UmbEntityWorkspaceDataManage
80
85
  ...dataSegments.flatMap((segment) => selectedVariants.map((variant) => variant.toSegment(segment))),
81
86
  ];
82
87
  }
83
- const data = this.getCurrent();
84
- if (!data)
85
- throw new Error('Current data is missing');
86
- //if (!data.unique) throw new Error('Unique of current data is missing');
87
88
  const persistedData = this.getPersisted();
88
89
  return await new UmbMergeContentVariantDataController(this).process(persistedData, data, selectedVariants, variantsToStore);
89
90
  }
@@ -1,3 +1,4 @@
1
+ import type { UmbEntityFlag } from '../../core/entity-flag/index.js';
1
2
  import type { UmbPropertyValueData } from '../../core/property/index.js';
2
3
  import type { UmbEntityVariantModel } from '../../core/variant/index.js';
3
4
  export type * from './collection/types.js';
@@ -8,7 +9,11 @@ export interface UmbElementDetailModel {
8
9
  export interface UmbElementValueModel<ValueType = unknown> extends UmbPropertyValueData<ValueType> {
9
10
  culture: string | null;
10
11
  editorAlias: string;
11
- entityType: string;
12
+ /**
13
+ * @deprecated, we do not use entityType on values anymore. To be removed in Umbraco v.18.
14
+ * Just remove the property.
15
+ */
16
+ entityType?: string;
12
17
  segment: string | null;
13
18
  }
14
19
  export interface UmbContentValueModel<ValueType = unknown> extends UmbElementValueModel<ValueType> {
@@ -22,6 +27,7 @@ export interface UmbContentDetailModel<VariantModelType extends UmbEntityVariant
22
27
  unique: string;
23
28
  entityType: string;
24
29
  variants: Array<VariantModelType>;
30
+ flags: Array<UmbEntityFlag>;
25
31
  }
26
- export interface UmbContentLikeDetailModel extends UmbElementDetailModel, Partial<Pick<UmbContentDetailModel, 'variants'>> {
32
+ export interface UmbContentLikeDetailModel extends UmbElementDetailModel, Partial<Pick<UmbContentDetailModel, 'variants' | 'flags'>> {
27
33
  }
@@ -80,7 +80,11 @@ export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelTy
80
80
  getVariantValidationContext(variantId: UmbVariantId): UmbValidationController | undefined;
81
81
  constructor(host: UmbControllerHost, args: UmbContentDetailWorkspaceContextArgs<DetailModelType, ContentTypeDetailModelType, VariantModelType, VariantOptionModelType>);
82
82
  loadLanguages(): Promise<void>;
83
+ /**
84
+ * @deprecated Call `_processIncomingData` instead. `_scaffoldProcessData` will be removed in v.18.
85
+ */
83
86
  protected _scaffoldProcessData(data: DetailModelType): Promise<DetailModelType>;
87
+ protected _processIncomingData(data: DetailModelType): Promise<DetailModelType>;
84
88
  /**
85
89
  * Get the name of a variant
86
90
  * @param {UmbVariantId } [variantId] - The variant id
@@ -238,16 +238,19 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
238
238
  const { data } = await this.#segmentRepository.requestCollection({});
239
239
  this.#segments.setValue(data?.items ?? []);
240
240
  }
241
- async _scaffoldProcessData(data) {
241
+ /**
242
+ * @deprecated Call `_processIncomingData` instead. `_scaffoldProcessData` will be removed in v.18.
243
+ */
244
+ _scaffoldProcessData(data) {
245
+ return this._processIncomingData(data);
246
+ }
247
+ async _processIncomingData(data) {
242
248
  const contentTypeUnique = data[this.#contentTypePropertyName].unique;
243
249
  if (!contentTypeUnique) {
244
250
  throw new Error(`Could not find content type unique on property '${this.#contentTypePropertyName}'`);
245
251
  }
246
252
  // Load the content type structure, usually this comes from the data, but in this case we are making the data, and we need this to be able to complete the data. [NL]
247
253
  await this.structure.loadType(contentTypeUnique);
248
- /**
249
- * TODO: Should we also set Preset Values when loading Content, because maybe content contains uncreated Cultures or Segments.
250
- */
251
254
  // Set culture and segment for all values:
252
255
  const cultures = this.#languages.getValue().map((x) => x.unique);
253
256
  if (this.structure.variesBySegment) {
@@ -284,11 +287,15 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
284
287
  if (segments) {
285
288
  controller.setSegments(segments);
286
289
  }
287
- const presetValues = await controller.create(valueDefinitions, {
290
+ controller.setValues(data.values);
291
+ const processedValues = await controller.create(valueDefinitions, {
288
292
  entityType: this.getEntityType(),
289
293
  entityUnique: data.unique,
290
294
  entityTypeUnique: contentTypeUnique,
291
295
  });
296
+ /*
297
+ const presetValues = ...
298
+
292
299
  // Don't just set the values, as we could have some already populated from a blueprint.
293
300
  // If we have a value from both a blueprint and a preset, use the latter as priority.
294
301
  const dataValues = [...data.values];
@@ -298,13 +305,14 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
298
305
  const matchingDataValueIndex = dataValues.findIndex((v) => v.alias === presetValue.alias && variantId.compare(v));
299
306
  if (matchingDataValueIndex > -1) {
300
307
  dataValues[matchingDataValueIndex] = presetValue;
301
- }
302
- else {
308
+ } else {
303
309
  dataValues.push(presetValue);
304
310
  }
305
311
  }
312
+
306
313
  data.values = dataValues;
307
- return data;
314
+ */
315
+ return { ...data, values: processedValues };
308
316
  }
309
317
  /**
310
318
  * Get the name of a variant
@@ -472,8 +480,24 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
472
480
  // @ts-ignore
473
481
  // TODO: fix type error
474
482
  this._data.updateCurrent({ values });
475
- // TODO: Ideally we should move this type of logic to the act of saving [NL]
476
- this._data.ensureVariantData(variantId);
483
+ /**
484
+ * Handling of Not-Culture but Segment variant properties: [NL]
485
+ * We need to ensure variant-entries across all culture variants for the given segment variant, when er property is configured to vary by segment but not culture.
486
+ * This is the only different case, in all other cases its fine to just target the given variant.
487
+ */
488
+ if (this.getVariesByCulture() && property.variesByCulture === false && property.variesBySegment === true) {
489
+ // get all culture options:
490
+ const cultureOptions = await firstValueFrom(this.variantOptions);
491
+ for (const cultureOption of cultureOptions) {
492
+ if (cultureOption.segment === variantId.segment) {
493
+ this._data.ensureVariantData(UmbVariantId.Create(cultureOption));
494
+ }
495
+ }
496
+ }
497
+ else {
498
+ // otherwise we know the property variant-id will be matching with a variant:
499
+ this._data.ensureVariantData(variantId);
500
+ }
477
501
  }
478
502
  this.finishPropertyValueChange();
479
503
  }
@@ -3,6 +3,7 @@ import type { UmbWorkspaceViewElement } from '../../../../../core/workspace/inde
3
3
  import './content-editor-tab.element.js';
4
4
  export declare class UmbContentWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement {
5
5
  #private;
6
+ private _loaded;
6
7
  private _hasRootGroups;
7
8
  private _routes;
8
9
  private _tabs?;
@@ -11,7 +12,7 @@ export declare class UmbContentWorkspaceViewEditElement extends UmbLitElement im
11
12
  private _hintMap;
12
13
  private _tabsStructureHelper;
13
14
  constructor();
14
- render(): import("lit-html").TemplateResult<1> | undefined;
15
+ render(): import("lit-html").TemplateResult<1>;
15
16
  static styles: import("lit").CSSResult[];
16
17
  }
17
18
  export default UmbContentWorkspaceViewEditElement;
@@ -22,6 +22,7 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
22
22
  #structureManager;
23
23
  constructor() {
24
24
  super();
25
+ this._loaded = false;
25
26
  this._hasRootGroups = false;
26
27
  this._routes = [];
27
28
  this._activePath = '';
@@ -45,6 +46,9 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
45
46
  this.#structureManager = workspaceContext?.structure;
46
47
  this._tabsStructureHelper.setStructureManager(workspaceContext?.structure);
47
48
  this.#observeRootGroups();
49
+ this.observe(this.#structureManager?.contentTypeLoaded, (loaded) => {
50
+ this._loaded = loaded ?? false;
51
+ }, 'observeContentTypeLoaded');
48
52
  });
49
53
  }
50
54
  async #observeRootGroups() {
@@ -138,8 +142,9 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
138
142
  view.provideAt(component);
139
143
  }
140
144
  render() {
141
- if (!this._routes || !this._tabs)
142
- return;
145
+ if (!this._loaded || !this._routes || this._routes.length === 0 || !this._tabs) {
146
+ return html `<umb-view-loader></umb-view-loader>`;
147
+ }
143
148
  return html `
144
149
  <umb-body-layout header-fit-height>
145
150
  ${this._routerPath && (this._tabs.length > 1 || (this._tabs.length === 1 && this._hasRootGroups))
@@ -194,6 +199,9 @@ let UmbContentWorkspaceViewEditElement = class UmbContentWorkspaceViewEditElemen
194
199
  `,
195
200
  ]; }
196
201
  };
202
+ __decorate([
203
+ state()
204
+ ], UmbContentWorkspaceViewEditElement.prototype, "_loaded", void 0);
197
205
  __decorate([
198
206
  state()
199
207
  ], UmbContentWorkspaceViewEditElement.prototype, "_hasRootGroups", void 0);
@@ -36,7 +36,7 @@ export class UmbContentTypeContainerStructureHelper extends UmbControllerBase {
36
36
  this.#childContainers = new UmbArrayState([], (x) => x.id);
37
37
  // State containing the merged containers (only one pr. name):
38
38
  this.#legacyMergedChildContainers = new UmbArrayState([], (x) => x.id);
39
- this.#childContainersMerged = new UmbArrayState([], (x) => x.path);
39
+ this.#childContainersMerged = new UmbArrayState([], (x) => x.key);
40
40
  this.childContainers = this.#childContainersMerged.asObservable();
41
41
  // Owner containers are containers owned by the owner Content Type (The specific one up for editing)
42
42
  this.#ownerChildContainers = [];
@@ -56,6 +56,7 @@ export declare class UmbContentTypeStructureManager<T extends UmbContentTypeMode
56
56
  /** Public methods for consuming structure: */
57
57
  ownerContentTypeObservablePart<R>(mappingFunction: MappingFunction<T | undefined, R>): Observable<R>;
58
58
  getOwnerContentType(): T | undefined;
59
+ getOwnerContentTypeName(): string | undefined;
59
60
  getOwnerContentTypeUnique(): string | undefined;
60
61
  getVariesByCulture(): boolean | undefined;
61
62
  getVariesBySegment(): boolean | undefined;
@@ -150,14 +151,17 @@ export declare class UmbContentTypeStructureManager<T extends UmbContentTypeMode
150
151
  * @returns {Observable} - An observable that emits the merged containers that match the provided container ids.
151
152
  */
152
153
  /**
153
- *
154
- * Find merged containers that match the provided container ids.
155
- * Notice if you can provide one or more ids matching the same container and it will still only return return the matching container once.
156
- * @param containerIds - An array of container ids to find merged containers for.
157
- * @param id
154
+ * Find a merged container that match the provided container id.
155
+ * @param {string} id - The id to find the merged container of.
158
156
  * @returns {UmbPropertyTypeContainerMergedModel | undefined} - The merged containers that match the provided container ids.
159
157
  */
160
158
  getMergedContainerById(id: string): UmbPropertyTypeContainerMergedModel | undefined;
159
+ /**
160
+ * Find a merged container that match the provided merged-container key.
161
+ * @param {string} key - The key to find the merged container of.
162
+ * @returns {UmbPropertyTypeContainerMergedModel | undefined} - The merged containers that match the provided merged-container key.
163
+ */
164
+ getMergedContainerByKey(key: string): UmbPropertyTypeContainerMergedModel | undefined;
161
165
  /**
162
166
  *
163
167
  * Find merged child containers that are children of the provided parent container ids.
@@ -182,6 +182,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
182
182
  this.#ownerContentTypeUnique = unique;
183
183
  if (!unique) {
184
184
  this.#initRejection?.(`Content Type structure manager could not load: ${unique}`);
185
+ this.#initResolver = undefined;
186
+ this.#initRejection = undefined;
185
187
  return Promise.reject(new Error('The unique identifier is missing. A valid unique identifier is required to load the content type.'));
186
188
  }
187
189
  this.#repoManager.setUniques([unique]);
@@ -189,6 +191,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
189
191
  const result = await this.observe(observable).asPromise();
190
192
  if (!result) {
191
193
  this.#initRejection?.(`Content Type structure manager could not load: ${unique}`);
194
+ this.#initResolver = undefined;
195
+ this.#initRejection = undefined;
192
196
  return {
193
197
  error: new UmbError(`Content Type structure manager could not load: ${unique}`),
194
198
  asObservable: () => observable,
@@ -200,9 +204,13 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
200
204
  }).catch(() => {
201
205
  const msg = `Content Type structure manager could not load: ${unique}. Not all Content Types loaded successfully.`;
202
206
  this.#initRejection?.(msg);
207
+ this.#initResolver = undefined;
208
+ this.#initRejection = undefined;
203
209
  return Promise.reject(new UmbError(msg));
204
210
  });
205
211
  this.#initResolver?.(result);
212
+ this.#initResolver = undefined;
213
+ this.#initRejection = undefined;
206
214
  return { data: result, asObservable: () => this.ownerContentType };
207
215
  }
208
216
  async createScaffold(preset) {
@@ -212,6 +220,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
212
220
  const { data } = repsonse;
213
221
  if (!data) {
214
222
  this.#initRejection?.(`Content Type structure manager could not create scaffold`);
223
+ this.#initResolver = undefined;
224
+ this.#initRejection = undefined;
215
225
  return { error: repsonse.error };
216
226
  }
217
227
  this.#ownerContentTypeUnique = data.unique;
@@ -220,6 +230,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
220
230
  // Make a entry in the repo manager:
221
231
  this.#repoManager.addEntry(data);
222
232
  this.#initResolver?.(data);
233
+ this.#initResolver = undefined;
234
+ this.#initRejection = undefined;
223
235
  return repsonse;
224
236
  }
225
237
  /**
@@ -280,6 +292,9 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
280
292
  getOwnerContentType() {
281
293
  return this.#contentTypes.getValue().find((y) => y.unique === this.#ownerContentTypeUnique);
282
294
  }
295
+ getOwnerContentTypeName() {
296
+ return this.getOwnerContentType()?.name;
297
+ }
283
298
  getOwnerContentTypeUnique() {
284
299
  return this.#ownerContentTypeUnique;
285
300
  }
@@ -752,16 +767,21 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
752
767
  }
753
768
  */
754
769
  /**
755
- *
756
- * Find merged containers that match the provided container ids.
757
- * Notice if you can provide one or more ids matching the same container and it will still only return return the matching container once.
758
- * @param containerIds - An array of container ids to find merged containers for.
759
- * @param id
770
+ * Find a merged container that match the provided container id.
771
+ * @param {string} id - The id to find the merged container of.
760
772
  * @returns {UmbPropertyTypeContainerMergedModel | undefined} - The merged containers that match the provided container ids.
761
773
  */
762
774
  getMergedContainerById(id) {
763
775
  return this.#mergedContainers.find((x) => x.ids.includes(id));
764
776
  }
777
+ /**
778
+ * Find a merged container that match the provided merged-container key.
779
+ * @param {string} key - The key to find the merged container of.
780
+ * @returns {UmbPropertyTypeContainerMergedModel | undefined} - The merged containers that match the provided merged-container key.
781
+ */
782
+ getMergedContainerByKey(key) {
783
+ return this.#mergedContainers.find((x) => x.key === key);
784
+ }
765
785
  /**
766
786
  *
767
787
  * Find merged child containers that are children of the provided parent container ids.
@@ -37,6 +37,7 @@ export class UmbContentTypeWorkspaceContextBase extends UmbEntityDetailWorkspace
37
37
  this._getDataPromise = request;
38
38
  let { data } = await request;
39
39
  if (data) {
40
+ data = await this._processIncomingData(data);
40
41
  data = await this._scaffoldProcessData(data);
41
42
  if (this.modalContext) {
42
43
  // Notice if the preset comes with values, they will overwrite the scaffolded values... [NL]
@@ -237,12 +237,11 @@ let UmbContentTypeWorkspaceViewEditGroupElement = class UmbContentTypeWorkspaceV
237
237
  display: flex;
238
238
  align-items: center;
239
239
  justify-content: space-between;
240
- cursor: grab;
241
240
  padding: var(--uui-size-space-4) var(--uui-size-space-5);
242
241
  }
243
242
 
244
- :host([inherited]) div[slot='header'] {
245
- cursor: default;
243
+ :host([has-owner-container]) div[slot='header'] {
244
+ cursor: grab;
246
245
  }
247
246
 
248
247
  div[slot='header'] > div {
@@ -287,7 +286,7 @@ __decorate([
287
286
  state()
288
287
  ], UmbContentTypeWorkspaceViewEditGroupElement.prototype, "_groupId", void 0);
289
288
  __decorate([
290
- state()
289
+ property({ type: Boolean, reflect: true, attribute: 'has-owner-container' })
291
290
  ], UmbContentTypeWorkspaceViewEditGroupElement.prototype, "_hasOwnerContainer", void 0);
292
291
  __decorate([
293
292
  property({ type: Boolean, reflect: true, attribute: 'inherited' })
@@ -154,8 +154,8 @@ let UmbContentTypeDesignEditorPropertyElement = class UmbContentTypeDesignEditor
154
154
  else {
155
155
  return html `
156
156
  <div id="header">
157
- <b>${this.property.name}</b>
158
- <i>${this.property.alias}</i>
157
+ <p><b>${this.property.name}</b></p>
158
+ <p><i>${this.property.alias}</i></p>
159
159
  <p>${this.property.description}</p>
160
160
  </div>
161
161
  <div id="editor">
@@ -264,6 +264,7 @@ let UmbContentTypeDesignEditorPropertyElement = class UmbContentTypeDesignEditor
264
264
  ${this.#renderVariantTags()}
265
265
  ${this.property.appearance?.labelOnTop == true
266
266
  ? html `<uui-tag look="default">
267
+ <uui-icon name="icon-stretch-horizontal"></uui-icon>
267
268
  <span>${this.localize.term('contentTypeEditor_displaySettingsLabelOnTop')}</span>
268
269
  </uui-tag>`
269
270
  : nothing}
@@ -299,18 +300,18 @@ let UmbContentTypeDesignEditorPropertyElement = class UmbContentTypeDesignEditor
299
300
  !this.property.variesBySegment) {
300
301
  return html `
301
302
  <uui-tag look="default">
302
- <uui-icon name="icon-shared-value"></uui-icon> ${this.localize.term('contentTypeEditor_cultureAndVariantInvariantLabel')}
303
+ <uui-icon name="icon-trending-up-down"></uui-icon> ${this.localize.term('contentTypeEditor_cultureAndVariantInvariantLabel')}
303
304
  </uui-tag>
304
305
  `;
305
306
  }
306
307
  if (this.ownerVariesByCulture && !this.property.variesByCulture) {
307
308
  return html `<uui-tag look="default">
308
- <uui-icon name="icon-shuffle"></uui-icon> ${this.localize.term('contentTypeEditor_cultureInvariantLabel')}
309
+ <uui-icon name="icon-trending-up-down"></uui-icon> ${this.localize.term('contentTypeEditor_cultureInvariantLabel')}
309
310
  </uui-tag>`;
310
311
  }
311
312
  if (this.ownerVariesBySegment && !this.property.variesBySegment) {
312
313
  return html `<uui-tag look="default">
313
- <uui-icon name="icon-shuffle"></uui-icon> ${this.localize.term('contentTypeEditor_segmentInvariantLabel')}
314
+ <uui-icon name="icon-trending-up-down"></uui-icon> ${this.localize.term('contentTypeEditor_segmentInvariantLabel')}
314
315
  </uui-tag>`;
315
316
  }
316
317
  // Not shared:
@@ -391,6 +392,12 @@ let UmbContentTypeDesignEditorPropertyElement = class UmbContentTypeDesignEditor
391
392
  border-radius: var(--uui-border-radius);
392
393
  }
393
394
 
395
+ :host([_inherited]) {
396
+ #header {
397
+ padding: 0 var(--uui-size-3, 9px);
398
+ }
399
+ }
400
+
394
401
  p {
395
402
  margin-bottom: 0;
396
403
  }
@@ -410,6 +417,11 @@ let UmbContentTypeDesignEditorPropertyElement = class UmbContentTypeDesignEditor
410
417
  --uui-button-background-color: var(--uui-color-background);
411
418
  --uui-button-background-color-hover: var(--uui-color-background);
412
419
  }
420
+ #editor:not(uui-button) {
421
+ background-color: var(--uui-color-background);
422
+ border-radius: var(--uui-button-border-radius, var(--uui-border-radius, 3px));
423
+ min-height: 143px;
424
+ }
413
425
  #editor uui-action-bar {
414
426
  --uui-button-background-color: var(--uui-color-surface);
415
427
  --uui-button-background-color-hover: var(--uui-color-surface);