@umbraco-cms/backoffice 15.0.0-rc1 → 15.0.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 (228) hide show
  1. package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +1 -6
  2. package/dist-cms/assets/lang/ar.d.ts +3 -0
  3. package/dist-cms/assets/lang/ar.js +2342 -0
  4. package/dist-cms/assets/lang/ar.ts +2394 -0
  5. package/dist-cms/assets/lang/bs.js +2 -2
  6. package/dist-cms/assets/lang/bs.ts +2 -2
  7. package/dist-cms/assets/lang/cs-cz.js +2 -2
  8. package/dist-cms/assets/lang/cs-cz.ts +2 -2
  9. package/dist-cms/assets/lang/cy-gb.js +2 -2
  10. package/dist-cms/assets/lang/cy-gb.ts +2 -2
  11. package/dist-cms/assets/lang/da-dk.js +6 -3
  12. package/dist-cms/assets/lang/da-dk.ts +6 -3
  13. package/dist-cms/assets/lang/de-de.js +2 -2
  14. package/dist-cms/assets/lang/de-de.ts +2 -2
  15. package/dist-cms/assets/lang/en-us.js +20 -7
  16. package/dist-cms/assets/lang/en-us.ts +20 -7
  17. package/dist-cms/assets/lang/en.js +30 -5
  18. package/dist-cms/assets/lang/en.ts +30 -5
  19. package/dist-cms/assets/lang/es-es.js +3 -3
  20. package/dist-cms/assets/lang/es-es.ts +3 -3
  21. package/dist-cms/assets/lang/fr-fr.js +2 -2
  22. package/dist-cms/assets/lang/fr-fr.ts +2 -3
  23. package/dist-cms/assets/lang/he-il.js +1 -1
  24. package/dist-cms/assets/lang/he-il.ts +1 -1
  25. package/dist-cms/assets/lang/hr-hr.js +2 -2
  26. package/dist-cms/assets/lang/hr-hr.ts +2 -2
  27. package/dist-cms/assets/lang/it-it.js +1 -1
  28. package/dist-cms/assets/lang/it-it.ts +1 -1
  29. package/dist-cms/assets/lang/ja-jp.js +1 -1
  30. package/dist-cms/assets/lang/ja-jp.ts +1 -1
  31. package/dist-cms/assets/lang/ko-kr.js +1 -1
  32. package/dist-cms/assets/lang/ko-kr.ts +1 -1
  33. package/dist-cms/assets/lang/nb-no.js +3 -1
  34. package/dist-cms/assets/lang/nb-no.ts +3 -1
  35. package/dist-cms/assets/lang/nl-nl.js +2 -2
  36. package/dist-cms/assets/lang/nl-nl.ts +2 -2
  37. package/dist-cms/assets/lang/pl-pl.js +2 -2
  38. package/dist-cms/assets/lang/pl-pl.ts +2 -2
  39. package/dist-cms/assets/lang/pt-br.js +1 -1
  40. package/dist-cms/assets/lang/pt-br.ts +1 -1
  41. package/dist-cms/assets/lang/ru-ru.js +2 -2
  42. package/dist-cms/assets/lang/ru-ru.ts +2 -2
  43. package/dist-cms/assets/lang/tr-tr.js +2 -2
  44. package/dist-cms/assets/lang/tr-tr.ts +2 -2
  45. package/dist-cms/assets/lang/uk-ua.js +2 -2
  46. package/dist-cms/assets/lang/uk-ua.ts +2 -2
  47. package/dist-cms/assets/lang/zh-cn.js +2 -2
  48. package/dist-cms/assets/lang/zh-cn.ts +2 -2
  49. package/dist-cms/assets/lang/zh-tw.js +1 -1
  50. package/dist-cms/assets/lang/zh-tw.ts +1 -2
  51. package/dist-cms/assets/login.jpg +0 -0
  52. package/dist-cms/custom-elements.json +4 -4
  53. package/dist-cms/external/monaco-editor/{cssMode-CDJQLEXE.js → cssMode-DA72DEEy.js} +1 -1
  54. package/dist-cms/external/monaco-editor/{freemarker2-BtohW-RX.js → freemarker2-Cl3U_XXG.js} +1 -1
  55. package/dist-cms/external/monaco-editor/{handlebars-Wz3s8HqG.js → handlebars-DSroMiE1.js} +1 -1
  56. package/dist-cms/external/monaco-editor/{html-MlXP3Eno.js → html-CkfQ3Tez.js} +1 -1
  57. package/dist-cms/external/monaco-editor/{htmlMode-Ds-h6y_M.js → htmlMode-D-n07ZL6.js} +1 -1
  58. package/dist-cms/external/monaco-editor/{index-BsCYch8u.js → index-QOjL-QlL.js} +181 -182
  59. package/dist-cms/external/monaco-editor/index.js +1 -1
  60. package/dist-cms/external/monaco-editor/{javascript-Dejz0u77.js → javascript-CPYBePIj.js} +1 -1
  61. package/dist-cms/external/monaco-editor/{jsonMode-CQ2qSm4x.js → jsonMode-xglY6Smp.js} +1 -1
  62. package/dist-cms/external/monaco-editor/{liquid-BhEdJewW.js → liquid-BcU1huVG.js} +1 -1
  63. package/dist-cms/external/monaco-editor/{mdx-C292GrsL.js → mdx-BngkqVPl.js} +1 -1
  64. package/dist-cms/external/monaco-editor/{python-CTKihC4R.js → python-Da-YVbMh.js} +1 -1
  65. package/dist-cms/external/monaco-editor/{razor-aZ9MyDfI.js → razor-C_XA8ptN.js} +1 -1
  66. package/dist-cms/external/monaco-editor/{tsMode-D1lPHHTW.js → tsMode-CsqUs61y.js} +1 -1
  67. package/dist-cms/external/monaco-editor/{typescript-DodsUUWq.js → typescript-DmWQ3leM.js} +1 -1
  68. package/dist-cms/external/monaco-editor/{xml-CnOKc87p.js → xml-CmhlGeEt.js} +1 -1
  69. package/dist-cms/external/monaco-editor/{yaml-BGcRgHu1.js → yaml-DDN00dBJ.js} +1 -1
  70. package/dist-cms/external/tinymce/index.js +1 -1
  71. package/dist-cms/external/uui/index.js +302 -278
  72. package/dist-cms/libs/extension-api/types/condition.types.d.ts +5 -5
  73. package/dist-cms/packages/block/block/conditions/types.d.ts +1 -1
  74. package/dist-cms/packages/block/block/context/block-entry.context.d.ts +1 -0
  75. package/dist-cms/packages/block/block/context/block-entry.context.js +9 -4
  76. package/dist-cms/packages/block/block/context/block-manager.context.d.ts +8 -7
  77. package/dist-cms/packages/block/block/context/block-manager.context.js +28 -9
  78. package/dist-cms/packages/block/block/workspace/block-workspace.context.d.ts +1 -0
  79. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +14 -13
  80. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.d.ts +3 -1
  81. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +50 -12
  82. package/dist-cms/packages/block/block-custom-view/types.d.ts +1 -1
  83. package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +3 -1
  84. package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +3 -1
  85. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.d.ts +2 -1
  86. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +13 -5
  87. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +2 -0
  88. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.d.ts +4 -2
  89. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.js +26 -17
  90. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.d.ts +1 -0
  91. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.js +3 -2
  92. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.d.ts +3 -0
  93. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.js +12 -2
  94. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +2 -0
  95. package/dist-cms/packages/block/block-grid/types.d.ts +1 -0
  96. package/dist-cms/packages/block/block-list/context/block-list-entries.context.d.ts +1 -1
  97. package/dist-cms/packages/block/block-list/context/block-list-entries.context.js +8 -4
  98. package/dist-cms/packages/block/block-list/context/block-list-entry.context.d.ts +1 -1
  99. package/dist-cms/packages/block/block-list/context/block-list-entry.context.js +3 -3
  100. package/dist-cms/packages/block/block-list/context/block-list-manager.context.d.ts +1 -1
  101. package/dist-cms/packages/block/block-list/context/block-list-manager.context.js +5 -2
  102. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.d.ts +2 -2
  103. package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.js +5 -5
  104. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.d.ts +1 -1
  105. package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.js +5 -3
  106. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.d.ts +3 -2
  107. package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +6 -3
  108. package/dist-cms/packages/core/collection/extensions/collection-action.extension.d.ts +1 -1
  109. package/dist-cms/packages/core/collection/extensions/collection-view.extension.d.ts +1 -1
  110. package/dist-cms/packages/core/collection/extensions/collection.extension.d.ts +1 -1
  111. package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
  112. package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.js +3 -2
  113. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  114. package/dist-cms/packages/core/dashboard/dashboard.extension.d.ts +1 -1
  115. package/dist-cms/packages/core/entity-action/entity-action.extension.d.ts +1 -1
  116. package/dist-cms/packages/core/extension-registry/conditions/index.d.ts +1 -1
  117. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +10 -6
  118. package/dist-cms/packages/core/extension-registry/extensions/entity-bulk-action.extension.d.ts +1 -1
  119. package/dist-cms/packages/core/extension-registry/extensions/repository.extension.d.ts +1 -1
  120. package/dist-cms/packages/core/icon-registry/icon-dictionary.json +68 -0
  121. package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.d.ts +2 -0
  122. package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.js +17 -0
  123. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.d.ts +2 -0
  124. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.js +18 -0
  125. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.d.ts +2 -0
  126. package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.js +16 -0
  127. package/dist-cms/packages/core/icon-registry/icons/icon-document-command.d.ts +2 -0
  128. package/dist-cms/packages/core/icon-registry/icons/icon-document-command.js +17 -0
  129. package/dist-cms/packages/core/icon-registry/icons/icon-document-font.d.ts +2 -0
  130. package/dist-cms/packages/core/icon-registry/icons/icon-document-font.js +18 -0
  131. package/dist-cms/packages/core/icon-registry/icons/icon-document-html.d.ts +2 -0
  132. package/dist-cms/packages/core/icon-registry/icons/icon-document-html.js +17 -0
  133. package/dist-cms/packages/core/icon-registry/icons/icon-document-image.d.ts +2 -0
  134. package/dist-cms/packages/core/icon-registry/icons/icon-document-image.js +17 -0
  135. package/dist-cms/packages/core/icon-registry/icons/icon-document-js.d.ts +2 -0
  136. package/dist-cms/packages/core/icon-registry/icons/icon-document-js.js +17 -0
  137. package/dist-cms/packages/core/icon-registry/icons/icon-document-key.d.ts +2 -0
  138. package/dist-cms/packages/core/icon-registry/icons/icon-document-key.js +17 -0
  139. package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.d.ts +2 -0
  140. package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.js +17 -0
  141. package/dist-cms/packages/core/icon-registry/icons/icon-document-play.d.ts +2 -0
  142. package/dist-cms/packages/core/icon-registry/icons/icon-document-play.js +16 -0
  143. package/dist-cms/packages/core/icon-registry/icons/icon-document-search.d.ts +2 -0
  144. package/dist-cms/packages/core/icon-registry/icons/icon-document-search.js +17 -0
  145. package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.d.ts +2 -0
  146. package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.js +19 -0
  147. package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.d.ts +2 -0
  148. package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.js +19 -0
  149. package/dist-cms/packages/core/icon-registry/icons/icon-document-user.d.ts +2 -0
  150. package/dist-cms/packages/core/icon-registry/icons/icon-document-user.js +17 -0
  151. package/dist-cms/packages/core/icon-registry/icons.d.ts +56 -0
  152. package/dist-cms/packages/core/icon-registry/icons.js +51 -0
  153. package/dist-cms/packages/core/localization/manifests.js +11 -1
  154. package/dist-cms/packages/core/menu/menu-item.extension.d.ts +1 -1
  155. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  156. package/dist-cms/packages/core/property-action/extensions/property-action.extension.d.ts +1 -1
  157. package/dist-cms/packages/core/section/conditions/types.d.ts +1 -1
  158. package/dist-cms/packages/core/section/extensions/section-sidebar-app.extension.d.ts +1 -1
  159. package/dist-cms/packages/core/section/extensions/section-view.extension.d.ts +1 -1
  160. package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -1
  161. package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +3 -2
  162. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  163. package/dist-cms/packages/core/tree/extensions/tree.extension.d.ts +1 -1
  164. package/dist-cms/packages/core/utils/index.d.ts +1 -0
  165. package/dist-cms/packages/core/utils/index.js +1 -0
  166. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.d.ts +6 -0
  167. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.js +9 -0
  168. package/dist-cms/packages/core/workspace/conditions/types.d.ts +1 -1
  169. package/dist-cms/packages/core/workspace/conditions/workspace-alias.condition.d.ts +2 -2
  170. package/dist-cms/packages/core/workspace/conditions/workspace-content-type-alias.condition.d.ts +2 -2
  171. package/dist-cms/packages/core/workspace/conditions/workspace-entity-is-new.condition.d.ts +2 -2
  172. package/dist-cms/packages/core/workspace/conditions/workspace-entity-type.condition.d.ts +2 -2
  173. package/dist-cms/packages/core/workspace/conditions/workspace-has-collection.condition.d.ts +2 -2
  174. package/dist-cms/packages/core/workspace/extensions/workspace-action-menu-item.model.d.ts +1 -1
  175. package/dist-cms/packages/core/workspace/extensions/workspace-action.model.d.ts +1 -1
  176. package/dist-cms/packages/core/workspace/extensions/workspace-context.model.d.ts +1 -1
  177. package/dist-cms/packages/core/workspace/extensions/workspace-footer-app.model.d.ts +1 -1
  178. package/dist-cms/packages/core/workspace/extensions/workspace-view.model.d.ts +1 -1
  179. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +9 -5
  180. package/dist-cms/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.js +1 -1
  181. package/dist-cms/packages/documents/document-types/paths.js +1 -1
  182. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +1 -1
  183. package/dist-cms/packages/documents/documents/user-permissions/conditions/types.d.ts +1 -1
  184. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +4 -0
  185. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +13 -2
  186. package/dist-cms/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.js +1 -1
  187. package/dist-cms/packages/extension-types/index.d.ts +118 -0
  188. package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +2 -2
  189. package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.d.ts +2 -1
  190. package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.js +28 -48
  191. package/dist-cms/packages/packages/package-builder/workspace/workspace-package-builder.element.js +4 -4
  192. package/dist-cms/packages/sysinfo/components/sysinfo.element.d.ts +1 -1
  193. package/dist-cms/packages/sysinfo/components/sysinfo.element.js +29 -11
  194. package/dist-cms/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.js +2 -2
  195. package/dist-cms/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.js +1 -1
  196. package/dist-cms/packages/templating/partial-views/tree/partial-view-tree.server.data-source.js +1 -1
  197. package/dist-cms/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.js +1 -1
  198. package/dist-cms/packages/templating/scripts/tree/script-tree.server.data-source.js +1 -1
  199. package/dist-cms/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.js +2 -2
  200. package/dist-cms/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.js +1 -1
  201. package/dist-cms/packages/templating/templates/global-components/template-card/template-card.element.js +1 -1
  202. package/dist-cms/packages/templating/templates/tree/template-tree.server.data-source.js +1 -1
  203. package/dist-cms/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.defaults.js +1 -1
  204. package/dist-cms/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.js +5 -4
  205. package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +1 -1
  206. package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +1 -1
  207. package/dist-cms/packages/tiptap/components/types.d.ts +1 -0
  208. package/dist-cms/packages/tiptap/components/types.js +1 -0
  209. package/dist-cms/packages/tiptap/extensions/core/media-upload.extension.js +6 -0
  210. package/dist-cms/packages/tiptap/extensions/manifests.js +142 -154
  211. package/dist-cms/packages/tiptap/extensions/tiptap-toolbar-extension.d.ts +1 -0
  212. package/dist-cms/packages/tiptap/extensions/types.d.ts +0 -1
  213. package/dist-cms/packages/tiptap/plugins/manifests.js +1 -1
  214. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.d.ts +7 -5
  215. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +112 -109
  216. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.d.ts +6 -6
  217. package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +304 -198
  218. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.d.ts +27 -0
  219. package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.js +185 -0
  220. package/dist-cms/packages/tiptap/property-editors/tiptap/manifests.js +13 -9
  221. package/dist-cms/packages/tiptap/property-editors/tiptap/types.d.ts +12 -0
  222. package/dist-cms/packages/tiptap/property-editors/tiptap/types.js +1 -0
  223. package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +1 -1
  224. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  225. package/dist-cms/umbraco-package-schema.json +18 -6
  226. package/dist-cms/umbraco-package.json +1 -1
  227. package/dist-cms/vscode-html-custom-data.json +4 -4
  228. package/package.json +5 -4
@@ -2,17 +2,17 @@ import type { ManifestBase } from './manifest-base.interface.js';
2
2
  export interface UmbConditionConfigBase<AliasType extends string = string> {
3
3
  alias: AliasType;
4
4
  }
5
- export type ConditionTypeMap<ConditionTypes extends UmbConditionConfigBase> = {
6
- [Condition in ConditionTypes as Condition['alias']]: Condition;
5
+ export type ConditionTypeMap<ConditionConfigs extends UmbConditionConfigBase> = {
6
+ [Condition in ConditionConfigs as Condition['alias']]: Condition;
7
7
  } & {
8
8
  [key: string]: UmbConditionConfigBase;
9
9
  };
10
- export type SpecificConditionTypeOrUmbConditionConfigBase<ConditionTypes extends UmbConditionConfigBase, T extends keyof ConditionTypeMap<ConditionTypes> | string> = T extends keyof ConditionTypeMap<ConditionTypes> ? ConditionTypeMap<ConditionTypes>[T] : UmbConditionConfigBase;
11
- export interface ManifestWithDynamicConditions<ConditionTypes extends UmbConditionConfigBase = UmbConditionConfigBase> extends ManifestBase {
10
+ export type SpecificConditionTypeOrUmbConditionConfigBase<ConditionConfigs extends UmbConditionConfigBase, T extends keyof ConditionTypeMap<ConditionConfigs> | string> = T extends keyof ConditionTypeMap<ConditionConfigs> ? ConditionTypeMap<ConditionConfigs>[T] : UmbConditionConfigBase;
11
+ export interface ManifestWithDynamicConditions<ConditionConfigs extends UmbConditionConfigBase = UmbConditionConfigBase> extends ManifestBase {
12
12
  /**
13
13
  * Set the conditions for when the extension should be loaded
14
14
  */
15
- conditions?: Array<ConditionTypes>;
15
+ conditions?: Array<ConditionConfigs>;
16
16
  /**
17
17
  * Define one or more extension aliases that this extension should overwrite.
18
18
  */
@@ -5,7 +5,7 @@ export interface BlockEntryIsExposedConditionConfig extends UmbConditionConfigBa
5
5
  match?: boolean;
6
6
  }
7
7
  declare global {
8
- interface UmbExtensionConditionMap {
8
+ interface UmbExtensionConditionConfigMap {
9
9
  umbBlock: BlockEntryShowContentEditConditionConfig | BlockWorkspaceHasSettingsConditionConfig | BlockEntryIsExposedConditionConfig;
10
10
  }
11
11
  }
@@ -38,6 +38,7 @@ export declare abstract class UmbBlockEntryContext<BlockManagerContextTokenType
38
38
  readonly workspacePath: Observable<string | undefined>;
39
39
  readonly workspaceEditContentPath: Observable<string>;
40
40
  readonly workspaceEditSettingsPath: Observable<string>;
41
+ _contentStructureHasProperties: Observable<boolean | undefined>;
41
42
  propertyVariantId(structure: UmbContentTypeStructureManager, propertyAlias: string): Promise<Observable<UmbVariantId | undefined>>;
42
43
  setContentPropertyValue(propertyAlias: string, value: unknown): void;
43
44
  setSettingsPropertyValue(propertyAlias: string, value: unknown): void;
@@ -31,6 +31,7 @@ export class UmbBlockEntryContext extends UmbContextBase {
31
31
  #contentStructure;
32
32
  #contentStructurePromiseResolve;
33
33
  #contentStructurePromise;
34
+ #contentStructureHasProperties;
34
35
  #settingsStructure;
35
36
  #settingsStructurePromiseResolve;
36
37
  #settingsStructurePromise;
@@ -149,6 +150,8 @@ export class UmbBlockEntryContext extends UmbContextBase {
149
150
  this.#contentStructurePromiseResolve = undefined;
150
151
  };
151
152
  });
153
+ this.#contentStructureHasProperties = new UmbBooleanState(undefined);
154
+ this._contentStructureHasProperties = this.#contentStructureHasProperties.asObservable();
152
155
  this.#settingsStructurePromise = new Promise((resolve) => {
153
156
  this.#settingsStructurePromiseResolve = () => {
154
157
  resolve(undefined);
@@ -363,6 +366,9 @@ export class UmbBlockEntryContext extends UmbContextBase {
363
366
  this.#contentElementType.setValue(contentType);
364
367
  this._gotContentType(contentType);
365
368
  }, 'observeContentElementType');
369
+ this.observe(this.#contentStructure?.contentTypeHasProperties, (has) => {
370
+ this.#contentStructureHasProperties.setValue(has);
371
+ }, 'observeContentTypeHasProperties');
366
372
  }
367
373
  #getSettingsStructure(contentTypeKey) {
368
374
  if (!this._manager || !contentTypeKey)
@@ -407,7 +413,7 @@ export class UmbBlockEntryContext extends UmbContextBase {
407
413
  if (!variantId || !this.#contentKey)
408
414
  return;
409
415
  // TODO: Handle variantId changes
410
- this.observe(this._manager?.hasExposeOf(this.#contentKey, variantId), (hasExpose) => {
416
+ this.observe(this._manager?.hasExposeOf(this.#contentKey), (hasExpose) => {
411
417
  this.#hasExpose.setValue(hasExpose);
412
418
  }, 'observeExpose');
413
419
  }
@@ -439,9 +445,8 @@ export class UmbBlockEntryContext extends UmbContextBase {
439
445
  this._entries.delete(contentKey);
440
446
  }
441
447
  expose() {
442
- const variantId = this.#variantId.getValue();
443
- if (!this.#contentKey || !variantId)
448
+ if (!this.#contentKey)
444
449
  return;
445
- this._manager?.setOneExpose(this.#contentKey, variantId);
450
+ this._manager?.setOneExpose(this.#contentKey);
446
451
  }
447
452
  }
@@ -2,7 +2,7 @@ import type { UmbBlockWorkspaceOriginData } from '../workspace/index.js';
2
2
  import type { UmbBlockLayoutBaseModel, UmbBlockDataModel, UmbBlockExposeModel } from '../types.js';
3
3
  import { UmbContextBase } from '../../../../libs/class-api/index.js';
4
4
  import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
5
- import { UmbArrayState, UmbBooleanState, UmbClassState } from '../../../../libs/observable-api/index.js';
5
+ import { UmbArrayState, UmbBooleanState, UmbClassState, type MappingFunction } from '../../../../libs/observable-api/index.js';
6
6
  import { UmbContentTypeStructureManager, type UmbContentTypeModel } from '../../../core/content-type/index.js';
7
7
  import type { UmbPropertyEditorConfigCollection } from '../../../core/property-editor/index.js';
8
8
  import type { UmbVariantId } from '../../../core/variant/index.js';
@@ -31,6 +31,7 @@ export declare abstract class UmbBlockManagerContext<BlockType extends UmbBlockT
31
31
  readonly exposes: import("rxjs/internal/Observable").Observable<UmbBlockExposeModel[]>;
32
32
  setEditorConfiguration(configs: UmbPropertyEditorConfigCollection): void;
33
33
  getEditorConfiguration(): UmbPropertyEditorConfigCollection | undefined;
34
+ editorConfigurationPart(method: MappingFunction<UmbPropertyEditorConfigCollection | undefined, unknown>): import("rxjs/internal/Observable").Observable<unknown>;
34
35
  setBlockTypes(blockTypes: Array<BlockType>): void;
35
36
  getBlockTypes(): BlockType[];
36
37
  setLayouts(layouts: Array<BlockLayoutType>): void;
@@ -50,18 +51,18 @@ export declare abstract class UmbBlockManagerContext<BlockType extends UmbBlockT
50
51
  layoutOf(contentKey: string): import("rxjs/internal/Observable").Observable<BlockLayoutType | undefined>;
51
52
  contentOf(key: string): import("rxjs/internal/Observable").Observable<UmbBlockDataModel | undefined>;
52
53
  settingsOf(key: string): import("rxjs/internal/Observable").Observable<UmbBlockDataModel | undefined>;
53
- exposeOf(contentKey: string, variantId: UmbVariantId): import("rxjs/internal/Observable").Observable<UmbBlockExposeModel[]>;
54
- hasExposeOf(contentKey: string, variantId: UmbVariantId): import("rxjs/internal/Observable").Observable<boolean>;
54
+ currentExposeOf(contentKey: string): import("rxjs/internal/Observable").Observable<UmbBlockExposeModel | undefined> | undefined;
55
+ hasExposeOf(contentKey: string): import("rxjs/internal/Observable").Observable<boolean> | undefined;
55
56
  getBlockTypeOf(contentTypeKey: string): BlockType | undefined;
56
57
  getContentOf(contentKey: string): UmbBlockDataModel | undefined;
57
- setOneLayout(layoutData: BlockLayoutType): void;
58
+ setOneLayout(layoutData: BlockLayoutType, _originData?: BlockOriginDataType): void;
58
59
  setOneContent(contentData: UmbBlockDataModel): void;
59
60
  setOneSettings(settingsData: UmbBlockDataModel): void;
60
- setOneExpose(contentKey: string, variantId: UmbVariantId): void;
61
+ setOneExpose(contentKey: string): void;
61
62
  removeOneContent(contentKey: string): void;
62
63
  removeOneSettings(settingsKey: string): void;
63
64
  removeExposesOf(contentKey: string): void;
64
- removeOneExpose(contentKey: string, variantId: UmbVariantId): void;
65
+ removeCurrentExpose(contentKey: string): void;
65
66
  setOneContentProperty(key: string, propertyAlias: string, value: unknown): void;
66
67
  setOneSettingsProperty(key: string, propertyAlias: string, value: unknown): void;
67
68
  contentProperty(key: string, propertyAlias: string): void;
@@ -87,6 +88,6 @@ export declare abstract class UmbBlockManagerContext<BlockType extends UmbBlockT
87
88
  settings: UmbBlockDataModel | undefined;
88
89
  };
89
90
  abstract insert(layoutEntry: BlockLayoutType, content: UmbBlockDataModel, settings: UmbBlockDataModel | undefined, originData: BlockOriginDataType): boolean;
90
- protected insertBlockData(layoutEntry: BlockLayoutType, content: UmbBlockDataModel, settings?: UmbBlockDataModel): void;
91
+ protected insertBlockData(layoutEntry: BlockLayoutType, content: UmbBlockDataModel, settings: UmbBlockDataModel | undefined, _originData: BlockOriginDataType): void;
91
92
  protected removeBlockKey(contentKey: string): void;
92
93
  }
@@ -1,6 +1,6 @@
1
1
  import { UMB_BLOCK_MANAGER_CONTEXT } from './block-manager.context-token.js';
2
2
  import { UmbContextBase } from '../../../../libs/class-api/index.js';
3
- import { UmbArrayState, UmbBooleanState, UmbClassState, UmbStringState } from '../../../../libs/observable-api/index.js';
3
+ import { UmbArrayState, UmbBooleanState, UmbClassState, UmbStringState, mergeObservables, } from '../../../../libs/observable-api/index.js';
4
4
  import { UmbDocumentTypeDetailRepository } from '../../../documents/document-types/index.js';
5
5
  import { UmbContentTypeStructureManager } from '../../../core/content-type/index.js';
6
6
  import { UmbId } from '../../../core/id/index.js';
@@ -26,12 +26,15 @@ export class UmbBlockManagerContext extends UmbContextBase {
26
26
  setEditorConfiguration(configs) {
27
27
  this._editorConfiguration.setValue(configs);
28
28
  if (this._liveEditingMode.getValue() === undefined) {
29
- this._liveEditingMode.setValue(configs.getValueByAlias('liveEditingMode'));
29
+ this._liveEditingMode.setValue(configs.getValueByAlias('useLiveEditing'));
30
30
  }
31
31
  }
32
32
  getEditorConfiguration() {
33
33
  return this._editorConfiguration.getValue();
34
34
  }
35
+ editorConfigurationPart(method) {
36
+ return this._editorConfiguration.asObservablePart(method);
37
+ }
35
38
  setBlockTypes(blockTypes) {
36
39
  this.#blockTypes.setValue(blockTypes);
37
40
  }
@@ -139,10 +142,16 @@ export class UmbBlockManagerContext extends UmbContextBase {
139
142
  settingsOf(key) {
140
143
  return this.#settings.asObservablePart((source) => source.find((x) => x.key === key));
141
144
  }
142
- exposeOf(contentKey, variantId) {
143
- return this.#exposes.asObservablePart((source) => source.filter((x) => x.contentKey === contentKey && variantId.compare(x)));
145
+ currentExposeOf(contentKey) {
146
+ const variantId = this.#variantId.getValue();
147
+ if (!variantId)
148
+ return;
149
+ return mergeObservables([this.#exposes.asObservablePart((source) => source.filter((x) => x.contentKey === contentKey)), this.variantId], ([exposes, variantId]) => (variantId ? exposes.find((x) => variantId.compare(x)) : undefined));
144
150
  }
145
- hasExposeOf(contentKey, variantId) {
151
+ hasExposeOf(contentKey) {
152
+ const variantId = this.#variantId.getValue();
153
+ if (!variantId)
154
+ return;
146
155
  return this.#exposes.asObservablePart((source) => source.some((x) => x.contentKey === contentKey && variantId.compare(x)));
147
156
  }
148
157
  getBlockTypeOf(contentTypeKey) {
@@ -151,7 +160,9 @@ export class UmbBlockManagerContext extends UmbContextBase {
151
160
  getContentOf(contentKey) {
152
161
  return this.#contents.value.find((x) => x.key === contentKey);
153
162
  }
154
- setOneLayout(layoutData) {
163
+ // originData param is used by some implementations. [NL] should be here, do not remove it.
164
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
165
+ setOneLayout(layoutData, _originData) {
155
166
  this._layouts.appendOne(layoutData);
156
167
  }
157
168
  setOneContent(contentData) {
@@ -160,7 +171,10 @@ export class UmbBlockManagerContext extends UmbContextBase {
160
171
  setOneSettings(settingsData) {
161
172
  this.#settings.appendOne(settingsData);
162
173
  }
163
- setOneExpose(contentKey, variantId) {
174
+ setOneExpose(contentKey) {
175
+ const variantId = this.#variantId.getValue();
176
+ if (!variantId)
177
+ return;
164
178
  this.#exposes.appendOne({ contentKey, ...variantId.toObject() });
165
179
  }
166
180
  removeOneContent(contentKey) {
@@ -172,7 +186,10 @@ export class UmbBlockManagerContext extends UmbContextBase {
172
186
  removeExposesOf(contentKey) {
173
187
  this.#exposes.filter((x) => x.contentKey !== contentKey);
174
188
  }
175
- removeOneExpose(contentKey, variantId) {
189
+ removeCurrentExpose(contentKey) {
190
+ const variantId = this.#variantId.getValue();
191
+ if (!variantId)
192
+ return;
176
193
  this.#exposes.filter((x) => !(x.contentKey === contentKey && variantId.compare(x)));
177
194
  }
178
195
  setOneContentProperty(key, propertyAlias, value) {
@@ -231,7 +248,9 @@ export class UmbBlockManagerContext extends UmbContextBase {
231
248
  settings,
232
249
  };
233
250
  }
234
- insertBlockData(layoutEntry, content, settings) {
251
+ insertBlockData(layoutEntry, content, settings,
252
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
253
+ _originData) {
235
254
  // Create content entry:
236
255
  if (layoutEntry.contentKey) {
237
256
  this.#contents.appendOne(content);
@@ -51,6 +51,7 @@ export declare class UmbBlockWorkspaceContext<LayoutDataType extends UmbBlockLay
51
51
  */
52
52
  setPropertyValue(alias: string, value: unknown): Promise<void>;
53
53
  submit(): Promise<void>;
54
+ expose(): void;
54
55
  destroy(): void;
55
56
  }
56
57
  export { UmbBlockWorkspaceContext as api };
@@ -57,7 +57,7 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
57
57
  else {
58
58
  // Revert the layout, content & settings data to the original state: [NL]
59
59
  if (this.#initialLayout) {
60
- this.#blockManager?.setOneLayout(this.#initialLayout);
60
+ this.#blockManager?.setOneLayout(this.#initialLayout, this.#modalContext?.data.originData);
61
61
  }
62
62
  if (this.#initialContent) {
63
63
  this.#blockManager?.setOneContent(this.#initialContent);
@@ -99,13 +99,13 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
99
99
  }
100
100
  this.#variantId.setValue(variantId);
101
101
  }, 'observeBlockType');
102
- this.observe(observeMultiple([this.variantId, this.contentKey]), ([variantId, contentKey]) => {
103
- if (!variantId || !contentKey)
102
+ this.observe(this.contentKey, (contentKey) => {
103
+ if (!contentKey)
104
104
  return;
105
- this.observe(manager.hasExposeOf(contentKey, variantId), (exposed) => {
105
+ this.observe(manager.hasExposeOf(contentKey), (exposed) => {
106
106
  this.#exposed.setValue(exposed);
107
107
  }, 'observeHasExpose');
108
- }, 'observeVariantIdContentKey');
108
+ }, 'observeContentKey');
109
109
  }).asPromise();
110
110
  this.#retrieveBlockEntries = this.consumeContext(UMB_BLOCK_ENTRIES_CONTEXT, (context) => {
111
111
  this.#blockEntries = context;
@@ -260,7 +260,7 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
260
260
  establishLiveSync() {
261
261
  this.observe(this.layout, (layoutData) => {
262
262
  if (layoutData) {
263
- this.#blockManager?.setOneLayout(layoutData);
263
+ this.#blockManager?.setOneLayout(layoutData, this.#modalContext?.data.originData);
264
264
  }
265
265
  }, 'observeThisLayout');
266
266
  this.observe(this.content.data, (contentData) => {
@@ -329,7 +329,7 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
329
329
  }
330
330
  else {
331
331
  // Update data:
332
- this.#blockManager.setOneLayout(layoutData);
332
+ this.#blockManager.setOneLayout(layoutData, this.#modalContext.data.originData);
333
333
  if (contentData) {
334
334
  this.#blockManager.setOneContent(contentData);
335
335
  }
@@ -341,13 +341,14 @@ export class UmbBlockWorkspaceContext extends UmbSubmittableWorkspaceContextBase
341
341
  this.#expose(layoutData.contentKey);
342
342
  this.setIsNew(false);
343
343
  }
344
+ expose() {
345
+ const contentKey = this.#layout.value?.contentKey;
346
+ if (!contentKey)
347
+ throw new Error('Cannot expose block that does not exist.');
348
+ this.#expose(contentKey);
349
+ }
344
350
  #expose(unique) {
345
- const variantId = this.#variantId.getValue();
346
- if (!variantId) {
347
- throw new Error('Block could not bre exposed cause we where missing a variant ID.');
348
- }
349
- // expose
350
- this.#blockManager?.setOneExpose(unique, variantId);
351
+ this.#blockManager?.setOneExpose(unique);
351
352
  }
352
353
  #modalRejected;
353
354
  destroy() {
@@ -12,7 +12,9 @@ export declare class UmbBlockWorkspaceViewEditContentNoRouterElement extends Umb
12
12
  private _hasRootGroups;
13
13
  _tabs?: Array<UmbPropertyTypeContainerModel>;
14
14
  private _activeTabId?;
15
- private _activeTabName?;
15
+ private _ownerContentTypeName?;
16
+ private _variantName?;
17
+ private _exposed?;
16
18
  constructor();
17
19
  render(): import("lit-html").TemplateResult<1> | undefined;
18
20
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
@@ -6,10 +6,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js';
8
8
  import './block-workspace-view-edit-tab.element.js';
9
- import { css, html, customElement, state, repeat } from '../../../../../../external/lit/index.js';
9
+ import { css, html, customElement, state, repeat, nothing } from '../../../../../../external/lit/index.js';
10
10
  import { UmbTextStyles } from '../../../../../core/style/index.js';
11
11
  import { UmbContentTypeContainerStructureHelper } from '../../../../../core/content-type/index.js';
12
12
  import { UmbLitElement } from '../../../../../core/lit-element/index.js';
13
+ import { UmbLanguageItemRepository } from '../../../../../language/index.js';
13
14
  /**
14
15
  * @element umb-block-workspace-view-edit-content-no-router
15
16
  * @description
@@ -23,6 +24,9 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
23
24
  //private _hasRootProperties = false;
24
25
  this._hasRootGroups = false;
25
26
  this.#tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this);
27
+ this.#expose = () => {
28
+ this.#blockWorkspace?.expose();
29
+ };
26
30
  this.#tabsStructureHelper.setIsRoot(true);
27
31
  this.#tabsStructureHelper.setContainerChildType('Tab');
28
32
  this.observe(this.#tabsStructureHelper.mergedContainers, (tabs) => {
@@ -30,11 +34,29 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
30
34
  this.#checkDefaultTabName();
31
35
  });
32
36
  // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently.
33
- this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => {
34
- this.#blockWorkspace = workspaceContext;
35
- this.#tabsStructureHelper.setStructureManager(workspaceContext.content.structure);
36
- workspaceContext.content.setup(this);
37
+ this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => {
38
+ this.#blockWorkspace = context;
39
+ this.#tabsStructureHelper.setStructureManager(context.content.structure);
40
+ context.content.setup(this);
37
41
  this.#observeRootGroups();
42
+ this.observe(context.content.structure.ownerContentTypeName, (name) => {
43
+ this._ownerContentTypeName = name;
44
+ }, 'observeContentTypeName');
45
+ this.observe(context.variantId, async (variantId) => {
46
+ if (variantId) {
47
+ // TODO: Support segment name?
48
+ const culture = variantId.culture;
49
+ if (culture) {
50
+ const languageRepository = new UmbLanguageItemRepository(this);
51
+ const { data } = await languageRepository.requestItems([culture]);
52
+ const name = data?.[0].name;
53
+ this._variantName = name ? this.localize.string(name) : undefined;
54
+ }
55
+ }
56
+ }, 'observeVariant');
57
+ this.observe(context.exposed, (exposed) => {
58
+ this._exposed = exposed;
59
+ }, 'observeExposed');
38
60
  });
39
61
  }
40
62
  async #observeRootGroups() {
@@ -51,20 +73,29 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
51
73
  // Find the default tab to grab:
52
74
  if (this._activeTabId === undefined) {
53
75
  if (this._hasRootGroups) {
54
- this._activeTabName = null;
76
+ //this._activeTabName = null;
55
77
  this._activeTabId = null;
56
78
  }
57
79
  else if (this._tabs.length > 0) {
58
- this._activeTabName = this._tabs[0].name;
80
+ //this._activeTabName = this._tabs[0].name;
59
81
  this._activeTabId = this._tabs[0].id;
60
82
  }
61
83
  }
62
84
  }
63
85
  #setTabName(tabName, tabId) {
64
- this._activeTabName = tabName;
86
+ //this._activeTabName = tabName;
65
87
  this._activeTabId = tabId;
66
88
  }
89
+ #expose;
67
90
  render() {
91
+ if (this._exposed === false) {
92
+ return html `<uui-button style="position:absolute; inset:0;" @click=${this.#expose}
93
+ ><uui-icon name="icon-add"></uui-icon>
94
+ <umb-localize
95
+ key="blockEditor_createThisFor"
96
+ .args=${[this._ownerContentTypeName, this._variantName]}></umb-localize
97
+ ></uui-button>`;
98
+ }
68
99
  if (!this._tabs)
69
100
  return;
70
101
  return html `
@@ -79,7 +110,7 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
79
110
  >Content</uui-tab
80
111
  >
81
112
  `
82
- : ''}
113
+ : nothing}
83
114
  ${repeat(this._tabs, (tab) => tab.name, (tab) => {
84
115
  return html `<uui-tab
85
116
  label=${tab.name ?? 'Unnamed'}
@@ -89,20 +120,21 @@ let UmbBlockWorkspaceViewEditContentNoRouterElement = class UmbBlockWorkspaceVie
89
120
  >`;
90
121
  })}
91
122
  </uui-tab-group>`
92
- : ''}
123
+ : nothing}
93
124
  ${this._activeTabId !== undefined
94
125
  ? html `<umb-block-workspace-view-edit-tab
95
126
  .managerName=${'content'}
96
127
  .hideSingleGroup=${true}
97
128
  .containerId=${this._activeTabId}>
98
129
  </umb-block-workspace-view-edit-tab>`
99
- : ''}
130
+ : nothing}
100
131
  `;
101
132
  }
102
133
  static { this.styles = [
103
134
  UmbTextStyles,
104
135
  css `
105
136
  :host {
137
+ position: relative;
106
138
  display: block;
107
139
  height: 100%;
108
140
  --uui-tab-background: var(--uui-color-surface);
@@ -123,7 +155,13 @@ __decorate([
123
155
  ], UmbBlockWorkspaceViewEditContentNoRouterElement.prototype, "_activeTabId", void 0);
124
156
  __decorate([
125
157
  state()
126
- ], UmbBlockWorkspaceViewEditContentNoRouterElement.prototype, "_activeTabName", void 0);
158
+ ], UmbBlockWorkspaceViewEditContentNoRouterElement.prototype, "_ownerContentTypeName", void 0);
159
+ __decorate([
160
+ state()
161
+ ], UmbBlockWorkspaceViewEditContentNoRouterElement.prototype, "_variantName", void 0);
162
+ __decorate([
163
+ state()
164
+ ], UmbBlockWorkspaceViewEditContentNoRouterElement.prototype, "_exposed", void 0);
127
165
  UmbBlockWorkspaceViewEditContentNoRouterElement = __decorate([
128
166
  customElement('umb-block-workspace-view-edit-content-no-router')
129
167
  ], UmbBlockWorkspaceViewEditContentNoRouterElement);
@@ -10,7 +10,7 @@ export interface UmbBlockEditorCustomViewConfiguration {
10
10
  }
11
11
  export interface UmbBlockEditorCustomViewProperties<LayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel> {
12
12
  manifest?: ManifestBlockEditorCustomView;
13
- config?: Partial<UmbBlockEditorCustomViewConfiguration>;
13
+ config?: UmbBlockEditorCustomViewConfiguration;
14
14
  blockType?: BlockType;
15
15
  contentKey?: string;
16
16
  label?: string;
@@ -14,7 +14,9 @@ import '../ref-grid-block/index.js';
14
14
  */
15
15
  let UmbBlockGridBlockElement = class UmbBlockGridBlockElement extends UmbLitElement {
16
16
  render() {
17
- return html `<umb-ref-grid-block standalone href=${this.config?.editContentPath ?? ''}>
17
+ return html `<umb-ref-grid-block
18
+ standalone
19
+ href=${(this.config?.showContentEdit ? this.config?.editContentPath : undefined) ?? ''}>
18
20
  <umb-icon slot="icon" .name=${this.icon}></umb-icon>
19
21
  <umb-ufm-render slot="name" inline .markdown=${this.label} .value=${this.content}></umb-ufm-render>
20
22
  <umb-block-grid-areas-container slot="areas"></umb-block-grid-areas-container>
@@ -24,7 +24,9 @@ let UmbBlockGridBlockInlineElement = class UmbBlockGridBlockInlineElement extend
24
24
  });
25
25
  }
26
26
  render() {
27
- return html `<umb-ref-grid-block standalone href=${this.config?.editContentPath ?? ''}>
27
+ return html `<umb-ref-grid-block
28
+ standalone
29
+ href=${(this.config?.showContentEdit ? this.config?.editContentPath : undefined) ?? ''}>
28
30
  <umb-icon slot="icon" .name=${this.icon}></umb-icon>
29
31
  <umb-ufm-render slot="name" inline .markdown=${this.label} .value=${this.content}></umb-ufm-render>
30
32
  <umb-property-type-based-property
@@ -12,7 +12,8 @@ export declare class UmbBlockGridEntriesElement extends UmbBlockGridEntriesEleme
12
12
  get layoutColumns(): number | undefined;
13
13
  private _areaKey?;
14
14
  private _canCreate?;
15
- private _singleBlockTypeName?;
15
+ private _createLabel?;
16
+ private _configCreateLabel?;
16
17
  private _styleElement?;
17
18
  private _layoutEntries;
18
19
  constructor();
@@ -151,11 +151,12 @@ let UmbBlockGridEntriesElement = class UmbBlockGridEntriesElement extends UmbFor
151
151
  this._canCreate = length > 0;
152
152
  if (length === 1) {
153
153
  this.observe(this.#context.firstAllowedBlockTypeName(), (firstAllowedName) => {
154
- this._singleBlockTypeName = firstAllowedName;
154
+ this._createLabel = this.localize.term('blockEditor_addThis', [firstAllowedName]);
155
155
  }, 'observeSingleBlockTypeName');
156
156
  }
157
157
  else {
158
158
  this.removeUmbControllerByAlias('observeSingleBlockTypeName');
159
+ this._createLabel = this.localize.term('blockEditor_addBlock');
159
160
  }
160
161
  }, null);
161
162
  this.observe(this.#context.rangeLimits, (rangeLimits) => {
@@ -172,6 +173,12 @@ let UmbBlockGridEntriesElement = class UmbBlockGridEntriesElement extends UmbFor
172
173
  this._styleElement.rel = 'stylesheet';
173
174
  this._styleElement.href = stylesheet;
174
175
  }, 'observeStylesheet');
176
+ if (this.areaKey) {
177
+ this.observe(this.#context.areaTypeCreateLabel, (label) => (this._configCreateLabel = label), 'observeConfigCreateLabel');
178
+ }
179
+ else {
180
+ this.observe(manager.editorConfigurationPart((x) => x?.find((y) => y.alias === 'createLabel')?.value), (label) => (this._configCreateLabel = label), 'observeConfigCreateLabel');
181
+ }
175
182
  });
176
183
  new UmbFormControlValidator(this, this /*, this.#dataPath*/);
177
184
  }
@@ -234,9 +241,7 @@ let UmbBlockGridEntriesElement = class UmbBlockGridEntriesElement extends UmbFor
234
241
  return html `<uui-button-group id="createButton">
235
242
  <uui-button
236
243
  look="placeholder"
237
- label=${this._singleBlockTypeName
238
- ? this.localize.term('blockEditor_addThis', [this._singleBlockTypeName])
239
- : this.localize.term('blockEditor_addBlock')}
244
+ label=${this._configCreateLabel ?? this._createLabel ?? ''}
240
245
  href=${this.#context.getPathForCreateBlock(-1) ?? ''}></uui-button>
241
246
  ${this._areaKey === null
242
247
  ? html ` <uui-button
@@ -332,7 +337,10 @@ __decorate([
332
337
  ], UmbBlockGridEntriesElement.prototype, "_canCreate", void 0);
333
338
  __decorate([
334
339
  state()
335
- ], UmbBlockGridEntriesElement.prototype, "_singleBlockTypeName", void 0);
340
+ ], UmbBlockGridEntriesElement.prototype, "_createLabel", void 0);
341
+ __decorate([
342
+ state()
343
+ ], UmbBlockGridEntriesElement.prototype, "_configCreateLabel", void 0);
336
344
  __decorate([
337
345
  state()
338
346
  ], UmbBlockGridEntriesElement.prototype, "_styleElement", void 0);
@@ -223,6 +223,7 @@ let UmbBlockGridEntryElement = class UmbBlockGridEntryElement extends UmbLitElem
223
223
  .label=${this._label}
224
224
  .icon=${this._icon}
225
225
  .unpublished=${!this._exposed}
226
+ .config=${this._blockViewProps.config}
226
227
  .content=${this._blockViewProps.content}
227
228
  .settings=${this._blockViewProps.settings}></umb-block-grid-block-inline>`;
228
229
  }
@@ -232,6 +233,7 @@ let UmbBlockGridEntryElement = class UmbBlockGridEntryElement extends UmbLitElem
232
233
  .label=${this._label}
233
234
  .icon=${this._icon}
234
235
  .unpublished=${!this._exposed}
236
+ .config=${this._blockViewProps.config}
235
237
  .content=${this._blockViewProps.content}
236
238
  .settings=${this._blockViewProps.settings}></umb-block-grid-block>`;
237
239
  }
@@ -1,7 +1,7 @@
1
1
  import type { UmbBlockDataModel } from '../../block/index.js';
2
2
  import { UmbBlockEntriesContext } from '../../block/index.js';
3
3
  import { type UmbBlockGridWorkspaceOriginData } from '../index.js';
4
- import type { UmbBlockGridLayoutModel, UmbBlockGridTypeModel } from '../types.js';
4
+ import type { UmbBlockGridLayoutModel, UmbBlockGridTypeAreaType, UmbBlockGridTypeModel } from '../types.js';
5
5
  import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context-token.js';
6
6
  import type { UmbBlockGridScalableContainerContext } from './block-grid-scale-manager/block-grid-scale-manager.controller.js';
7
7
  import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
@@ -17,6 +17,8 @@ interface UmbBlockGridAreaTypeInvalidRuleType {
17
17
  export declare class UmbBlockGridEntriesContext extends UmbBlockEntriesContext<typeof UMB_BLOCK_GRID_MANAGER_CONTEXT, typeof UMB_BLOCK_GRID_MANAGER_CONTEXT.TYPE, UmbBlockGridTypeModel, UmbBlockGridLayoutModel, UmbBlockGridWorkspaceOriginData> implements UmbBlockGridScalableContainerContext {
18
18
  #private;
19
19
  readonly layoutColumns: import("rxjs/internal/Observable").Observable<number | undefined>;
20
+ areaType: import("rxjs/internal/Observable").Observable<UmbBlockGridTypeAreaType | undefined>;
21
+ areaTypeCreateLabel: import("rxjs/internal/Observable").Observable<string | undefined>;
20
22
  readonly rangeLimits: import("rxjs/internal/Observable").Observable<UmbNumberRangeValueType | undefined>;
21
23
  readonly allowedBlockTypes: import("rxjs/internal/Observable").Observable<UmbBlockGridTypeModel[]>;
22
24
  readonly amountOfAllowedBlockTypes: import("rxjs/internal/Observable").Observable<number>;
@@ -53,7 +55,7 @@ export declare class UmbBlockGridEntriesContext extends UmbBlockEntriesContext<t
53
55
  checkBlockTypeLimitsValidity(): boolean;
54
56
  /**
55
57
  * Check if given contentKey is allowed in the current area.
56
- * @param contentKey {string} - The contentKey of the content to check.
58
+ * @param {string} contentKey - The contentKey of the content to check.
57
59
  * @returns {boolean} - True if the content is allowed in the current area, otherwise false.
58
60
  */
59
61
  allowDrop(contentKey: string): boolean;