@umbraco-cms/backoffice 1.0.0-next.ea1e6e6f → 1.0.0-next.ed0b8881

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 (345) hide show
  1. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +3 -3
  2. package/dist-cms/apps/installer/database/installer-database.element.js +14 -0
  3. package/dist-cms/css/umb-css.css +1 -0
  4. package/dist-cms/custom-elements.json +75 -49
  5. package/dist-cms/external/backend-api/index.js +9 -1
  6. package/dist-cms/external/lit/index.js +3 -3
  7. package/dist-cms/external/router-slot/index.js +7 -1
  8. package/dist-cms/external/uui/index.js +3 -3
  9. package/dist-cms/libs/extension-api/registry/extension.registry.d.ts +1 -1
  10. package/dist-cms/libs/observable-api/create-observable-part.function.d.ts +1 -1
  11. package/dist-cms/libs/observable-api/create-observable-part.function.js +1 -1
  12. package/dist-cms/libs/observable-api/deep-state.d.ts +1 -1
  13. package/dist-cms/libs/observable-api/deep-state.js +1 -1
  14. package/dist-cms/libs/observable-api/observer.controller.d.ts +1 -1
  15. package/dist-cms/mocks/data/data-type.data.js +36 -37
  16. package/dist-cms/mocks/data/document-type.data.js +19 -0
  17. package/dist-cms/mocks/data/template.data.d.ts +26 -2
  18. package/dist-cms/mocks/data/template.data.js +82 -5
  19. package/dist-cms/mocks/data/utils.d.ts +2 -2
  20. package/dist-cms/mocks/handlers/manifests.handlers.js +1 -1
  21. package/dist-cms/mocks/handlers/template.handlers.js +24 -4
  22. package/dist-cms/packages/core/collection/collection.element.js +2 -2
  23. package/dist-cms/packages/core/components/body-layout/body-layout.element.d.ts +3 -2
  24. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +26 -6
  25. package/dist-cms/packages/core/components/code-editor/code-editor.element.d.ts +2 -2
  26. package/dist-cms/packages/core/components/code-editor/code-editor.element.js +3 -3
  27. package/dist-cms/packages/core/components/code-editor/code-editor.model.d.ts +5 -5
  28. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.d.ts +1 -0
  29. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.js +3 -0
  30. package/dist-cms/packages/core/components/footer-layout/footer-layout.element.js +1 -1
  31. package/dist-cms/packages/core/components/index.js +1 -2
  32. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.d.ts +2 -2
  33. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js +16 -13
  34. package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +12 -1
  35. package/dist-cms/packages/core/components/table/table.element.js +1 -2
  36. package/dist-cms/packages/core/extension-registry/models/index.d.ts +2 -2
  37. package/dist-cms/packages/core/extension-registry/models/property-editor.model.d.ts +13 -10
  38. package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +0 -4
  39. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.d.ts +2 -1
  40. package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.d.ts +5 -9
  41. package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.js +3 -1
  42. package/dist-cms/packages/core/property-actions/manifests.js +2 -2
  43. package/dist-cms/packages/core/property-editors/manifests.d.ts +1 -1
  44. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.js +7 -6
  45. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.js +4 -3
  46. package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.js +3 -1
  47. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.js +3 -1
  48. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.js +4 -3
  49. package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.js +17 -2
  50. package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.js +5 -4
  51. package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.js +3 -1
  52. package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.js +3 -1
  53. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.d.ts +2 -0
  54. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.js +8 -0
  55. package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.js +3 -2
  56. package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.js +5 -4
  57. package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.js +3 -1
  58. package/dist-cms/packages/core/property-editors/models/Umbraco.Label.js +3 -2
  59. package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.js +7 -6
  60. package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.js +3 -1
  61. package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.js +9 -8
  62. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.js +3 -1
  63. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.js +3 -1
  64. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.js +5 -4
  65. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.js +5 -4
  66. package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.js +4 -3
  67. package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.js +3 -1
  68. package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.js +4 -3
  69. package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.js +4 -3
  70. package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.js +3 -2
  71. package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.js +3 -2
  72. package/dist-cms/packages/core/property-editors/models/Umbraco.TinyMCE.js +4 -3
  73. package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.js +3 -1
  74. package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.js +3 -2
  75. package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.js +3 -1
  76. package/dist-cms/packages/core/property-editors/models/manifests.js +43 -47
  77. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.d.ts +2 -2
  78. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.js +3 -3
  79. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.d.ts +2 -2
  80. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.js +3 -3
  81. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.d.ts +2 -2
  82. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.js +3 -3
  83. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.d.ts +2 -2
  84. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.js +7 -7
  85. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.d.ts +2 -2
  86. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.js +3 -3
  87. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.d.ts +2 -2
  88. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.js +8 -8
  89. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.d.ts +2 -2
  90. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.js +5 -5
  91. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.d.ts +2 -2
  92. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.js +3 -3
  93. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.d.ts +2 -2
  94. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.js +3 -3
  95. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.d.ts +2 -2
  96. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.js +3 -3
  97. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.d.ts +2 -2
  98. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.js +3 -3
  99. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.d.ts +2 -2
  100. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.js +9 -9
  101. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.d.ts +2 -2
  102. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.js +3 -3
  103. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.d.ts +2 -2
  104. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.js +5 -15
  105. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.d.ts +2 -2
  106. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.js +6 -6
  107. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.d.ts +2 -2
  108. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.js +6 -6
  109. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.d.ts +2 -2
  110. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.js +3 -3
  111. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.d.ts +2 -2
  112. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.js +3 -3
  113. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.d.ts +2 -2
  114. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.js +3 -3
  115. package/dist-cms/packages/core/property-editors/uis/label/manifests.d.ts +2 -2
  116. package/dist-cms/packages/core/property-editors/uis/label/manifests.js +3 -3
  117. package/dist-cms/packages/core/property-editors/uis/manifests.d.ts +2 -2
  118. package/dist-cms/packages/core/property-editors/uis/manifests.js +3 -3
  119. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.d.ts +2 -2
  120. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.js +7 -7
  121. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.d.ts +2 -2
  122. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.js +3 -3
  123. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.d.ts +2 -2
  124. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.js +3 -3
  125. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.d.ts +2 -2
  126. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.js +3 -3
  127. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.d.ts +2 -2
  128. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.js +6 -6
  129. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.d.ts +2 -2
  130. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.js +3 -3
  131. package/dist-cms/packages/core/property-editors/uis/number/manifests.d.ts +2 -2
  132. package/dist-cms/packages/core/property-editors/uis/number/manifests.js +9 -9
  133. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.d.ts +2 -2
  134. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.js +3 -3
  135. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.d.ts +2 -2
  136. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.js +3 -3
  137. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.d.ts +2 -2
  138. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.js +3 -3
  139. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.d.ts +2 -2
  140. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.js +5 -5
  141. package/dist-cms/packages/core/property-editors/uis/slider/manifests.d.ts +2 -2
  142. package/dist-cms/packages/core/property-editors/uis/slider/manifests.js +8 -8
  143. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.d.ts +2 -2
  144. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.js +9 -9
  145. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.d.ts +2 -2
  146. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.js +7 -7
  147. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.d.ts +2 -2
  148. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.js +3 -3
  149. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.d.ts +2 -2
  150. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.js +7 -7
  151. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.d.ts +2 -2
  152. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.js +8 -8
  153. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.d.ts +2 -2
  154. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.js +3 -3
  155. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.d.ts +2 -2
  156. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.js +7 -7
  157. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.d.ts +2 -2
  158. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.js +3 -3
  159. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.d.ts +2 -2
  160. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.js +3 -3
  161. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.d.ts +2 -2
  162. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.js +3 -3
  163. package/dist-cms/packages/core/section/section-main/section-main.element.js +2 -2
  164. package/dist-cms/packages/core/section/section-sidebar/section-sidebar.element.js +1 -1
  165. package/dist-cms/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.js +11 -2
  166. package/dist-cms/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +1 -1
  167. package/dist-cms/packages/core/section/section-views/section-views.element.js +16 -7
  168. package/dist-cms/packages/core/tree/index.d.ts +0 -1
  169. package/dist-cms/packages/core/tree/index.js +0 -1
  170. package/dist-cms/packages/core/tree/tree-item/tree-item.context.interface.d.ts +1 -0
  171. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.context.d.ts +1 -0
  172. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.context.js +4 -0
  173. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.element.d.ts +1 -0
  174. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.element.js +9 -1
  175. package/dist-cms/packages/core/tree/tree.element.d.ts +0 -2
  176. package/dist-cms/packages/core/tree/tree.element.js +0 -2
  177. package/dist-cms/packages/core/workspace/index.d.ts +1 -0
  178. package/dist-cms/packages/core/workspace/index.js +1 -0
  179. package/dist-cms/packages/core/workspace/workspace-editor/workspace-editor.element.js +2 -2
  180. package/dist-cms/packages/core/workspace/workspace-footer/index.d.ts +1 -0
  181. package/dist-cms/packages/core/workspace/workspace-footer/index.js +1 -0
  182. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.context.d.ts +1 -1
  183. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.d.ts +1 -1
  184. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.js +1 -1
  185. package/dist-cms/packages/core/workspace/workspace-variant/index.d.ts +1 -0
  186. package/dist-cms/packages/core/workspace/workspace-variant/index.js +1 -0
  187. package/dist-cms/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.js +2 -2
  188. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.d.ts +3 -1
  189. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.js +21 -7
  190. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace-editor.element.js +1 -1
  191. package/dist-cms/packages/documents/document-types/workspace/manifests.js +8 -8
  192. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +8 -2
  193. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +12 -8
  194. package/dist-cms/packages/documents/document-types/workspace/views/{details/document-type-workspace-view-details.element.d.ts → settings/document-type-workspace-view-settings.element.d.ts} +3 -3
  195. package/dist-cms/packages/documents/document-types/workspace/views/{details/document-type-workspace-view-details.element.js → settings/document-type-workspace-view-settings.element.js} +16 -11
  196. package/dist-cms/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.js +9 -8
  197. package/dist-cms/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.js +1 -1
  198. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -0
  199. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +14 -9
  200. package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.js +3 -2
  201. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.d.ts +2 -2
  202. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js +7 -7
  203. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +1 -1
  204. package/dist-cms/packages/documents/documents/workspace/manifests.js +4 -4
  205. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.js +3 -2
  206. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.js +1 -1
  207. package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +1 -1
  208. package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.d.ts → media-workspace-editor.element.d.ts} +3 -3
  209. package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.js → media-workspace-editor.element.js} +7 -7
  210. package/dist-cms/packages/media/media/workspace/media-workspace.element.js +2 -2
  211. package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.d.ts → media-type-workspace-editor.element.d.ts} +3 -3
  212. package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.js → media-type-workspace-editor.element.js} +7 -7
  213. package/dist-cms/packages/media/media-types/workspace/media-type-workspace.element.js +2 -2
  214. package/dist-cms/packages/members/dashboards/welcome/dashboard-members-welcome.element.js +1 -1
  215. package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.d.ts → member-group-workspace-editor.element.d.ts} +3 -3
  216. package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.js → member-group-workspace-editor.element.js} +7 -7
  217. package/dist-cms/packages/members/member-groups/workspace/member-group-workspace.element.js +2 -2
  218. package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.d.ts → member-type-workspace-editor.element.d.ts} +3 -3
  219. package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.js → member-type-workspace-editor.element.js} +6 -6
  220. package/dist-cms/packages/members/member-types/workspace/member-type-workspace.element.js +2 -2
  221. package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.d.ts → member-workspace-editor.element.d.ts} +3 -3
  222. package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.js → member-workspace-editor.element.js} +6 -6
  223. package/dist-cms/packages/members/members/workspace/member-workspace.element.js +2 -2
  224. package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.js +1 -1
  225. package/dist-cms/packages/packages/package-section/views/created/packages-created-overview.element.js +1 -1
  226. package/dist-cms/packages/packages/package-section/views/installed/installed-packages-section-view.element.js +1 -1
  227. package/dist-cms/packages/search/examine-management-dashboard/views/section-view-examine-overview.js +1 -1
  228. package/dist-cms/packages/settings/dashboards/health-check/views/health-check-overview.element.js +1 -1
  229. package/dist-cms/packages/settings/dashboards/models-builder/dashboard-models-builder.element.js +1 -1
  230. package/dist-cms/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.js +1 -1
  231. package/dist-cms/packages/settings/dashboards/published-status/dashboard-published-status.element.js +1 -1
  232. package/dist-cms/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.js +1 -1
  233. package/dist-cms/packages/settings/dashboards/telemetry/dashboard-telemetry.element.js +1 -1
  234. package/dist-cms/packages/settings/data-types/entities.d.ts +3 -0
  235. package/dist-cms/packages/settings/data-types/entities.js +3 -0
  236. package/dist-cms/packages/settings/data-types/entity-actions/copy/manifests.js +1 -1
  237. package/dist-cms/packages/settings/data-types/entity-actions/create/manifests.js +1 -1
  238. package/dist-cms/packages/settings/data-types/entity-actions/manifests.js +1 -1
  239. package/dist-cms/packages/settings/data-types/entity-actions/move/manifests.js +1 -1
  240. package/dist-cms/packages/settings/data-types/index.d.ts +1 -3
  241. package/dist-cms/packages/settings/data-types/index.js +1 -3
  242. package/dist-cms/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +2 -2
  243. package/dist-cms/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.js +3 -3
  244. package/dist-cms/packages/settings/data-types/repository/data-type.repository.d.ts +1 -1
  245. package/dist-cms/packages/settings/data-types/repository/data-type.repository.js +1 -1
  246. package/dist-cms/packages/settings/data-types/repository/data-type.store.d.ts +2 -2
  247. package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.d.ts → data-type-workspace-editor.element.d.ts} +4 -4
  248. package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.js → data-type-workspace-editor.element.js} +9 -9
  249. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.d.ts +1 -1
  250. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.js +2 -2
  251. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.d.ts +5 -4
  252. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js +41 -22
  253. package/dist-cms/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.js +1 -1
  254. package/dist-cms/packages/settings/languages/app-language-select/app-language-select.element.js +6 -3
  255. package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.d.ts → language-workspace-editor.element.d.ts} +3 -3
  256. package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.js → language-workspace-editor.element.js} +10 -10
  257. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.d.ts +1 -1
  258. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.js +2 -2
  259. package/dist-cms/packages/settings/logviewer/components/index.d.ts +1 -1
  260. package/dist-cms/packages/settings/logviewer/components/index.js +1 -1
  261. package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.d.ts +1 -0
  262. package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.js +3 -2
  263. package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.d.ts → relation-type-workspace-editor.element.d.ts} +4 -4
  264. package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.js → relation-type-workspace-editor.element.js} +8 -8
  265. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.d.ts +1 -1
  266. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.js +2 -2
  267. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.d.ts +2 -2
  268. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.js +3 -3
  269. package/dist-cms/packages/tags/property-editors/tags/manifests.d.ts +2 -2
  270. package/dist-cms/packages/tags/property-editors/tags/manifests.js +3 -3
  271. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +29 -17
  272. package/dist-cms/packages/templating/index.d.ts +1 -1
  273. package/dist-cms/packages/templating/index.js +1 -1
  274. package/dist-cms/packages/templating/modals/insert-choose-type-sidebar.element.js +26 -24
  275. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.d.ts +3 -1
  276. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.js +9 -0
  277. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.d.ts +4 -3
  278. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.js +23 -8
  279. package/dist-cms/packages/templating/modals/insert-value-sidebar.element.js +1 -0
  280. package/dist-cms/packages/templating/modals/partial-view-picker-modal.element.js +1 -0
  281. package/dist-cms/packages/templating/stylesheets/menu-item/manifests.js +1 -1
  282. package/dist-cms/packages/templating/templates/components/alias-input/alias-input.d.ts +14 -0
  283. package/dist-cms/packages/templating/templates/components/alias-input/alias-input.js +82 -0
  284. package/dist-cms/packages/templating/templates/components/index.d.ts +1 -0
  285. package/dist-cms/packages/templating/templates/components/index.js +1 -0
  286. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +3 -2
  287. package/dist-cms/packages/templating/templates/index.d.ts +4 -0
  288. package/dist-cms/packages/templating/templates/index.js +4 -0
  289. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.d.ts +11 -7
  290. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js +19 -25
  291. package/dist-cms/packages/templating/templates/repository/template.repository.d.ts +18 -12
  292. package/dist-cms/packages/templating/templates/repository/template.repository.js +22 -14
  293. package/dist-cms/packages/templating/templates/repository/template.store.d.ts +1 -0
  294. package/dist-cms/packages/templating/templates/repository/template.store.js +3 -0
  295. package/dist-cms/packages/templating/templates/tree/manifests.js +2 -1
  296. package/dist-cms/packages/templating/templates/workspace/{template-workspace-edit.element.d.ts → template-workspace-editor.element.d.ts} +7 -3
  297. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +279 -0
  298. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +7 -1
  299. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +84 -5
  300. package/dist-cms/packages/templating/templates/workspace/template-workspace.element.d.ts +1 -4
  301. package/dist-cms/packages/templating/templates/workspace/template-workspace.element.js +3 -38
  302. package/dist-cms/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.js +6 -5
  303. package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.d.ts → dictionary-workspace-editor.element.d.ts} +3 -3
  304. package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.js → dictionary-workspace-editor.element.js} +7 -7
  305. package/dist-cms/packages/translation/dictionary/workspace/dictionary-workspace.element.js +2 -2
  306. package/dist-cms/packages/translation/dictionary/workspace/manifests.js +1 -1
  307. package/dist-cms/packages/translation/dictionary/workspace/views/{edit/workspace-view-dictionary-edit.element.d.ts → editor/workspace-view-dictionary-editor.element.d.ts} +3 -3
  308. package/dist-cms/packages/translation/dictionary/workspace/views/{edit/workspace-view-dictionary-edit.element.js → editor/workspace-view-dictionary-editor.element.js} +8 -8
  309. package/dist-cms/packages/translation/index.js +1 -2
  310. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -1
  311. package/dist-cms/packages/users/current-user/index.d.ts +3 -0
  312. package/dist-cms/packages/users/current-user/index.js +4 -0
  313. package/dist-cms/packages/users/user-groups/collection/user-group-collection.element.js +1 -10
  314. package/dist-cms/packages/users/user-groups/section-view/user-groups-section-view.element.js +1 -1
  315. package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.d.ts → user-group-workspace-editor.element.d.ts} +3 -3
  316. package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.js → user-group-workspace-editor.element.js} +8 -8
  317. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +2 -2
  318. package/dist-cms/packages/users/users/collection/user-collection.element.js +1 -1
  319. package/dist-cms/packages/users/users/index.d.ts +1 -0
  320. package/dist-cms/packages/users/users/index.js +1 -0
  321. package/dist-cms/packages/users/users/section-view/users-section-view.element.js +1 -1
  322. package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.d.ts → user-workspace-editor.element.d.ts} +3 -3
  323. package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.js → user-workspace-editor.element.js} +9 -9
  324. package/dist-cms/packages/users/users/workspace/user-workspace.element.js +2 -2
  325. package/dist-cms/shared/repository/detail-repository.interface.d.ts +2 -2
  326. package/dist-cms/shared/router/router-slot.element.js +1 -2
  327. package/dist-cms/tsconfig.tsbuildinfo +1 -1
  328. package/dist-cms/umbraco-package-schema.json +62 -40
  329. package/dist-cms/vscode-html-custom-data.json +39 -33
  330. package/package.json +10 -7
  331. package/router-slot-2.2.0.tgz +0 -0
  332. package/dist-cms/packages/core/tree/context-menu/index.d.ts +0 -2
  333. package/dist-cms/packages/core/tree/context-menu/index.js +0 -2
  334. package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.d.ts +0 -23
  335. package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.js +0 -69
  336. package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.d.ts +0 -19
  337. package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.js +0 -100
  338. package/dist-cms/packages/tags/property-editors/Umbraco.Tags.d.ts +0 -2
  339. package/dist-cms/packages/tags/property-editors/Umbraco.Tags.js +0 -17
  340. package/dist-cms/packages/templating/templates/workspace/template-workspace-edit.element.js +0 -164
  341. package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.d.ts +0 -17
  342. package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.js +0 -85
  343. package/dist-cms/packages/translation/modals/manifests.d.ts +0 -2
  344. package/dist-cms/packages/translation/modals/manifests.js +0 -10
  345. package/router-slot-2.1.0.tgz +0 -0
@@ -0,0 +1,279 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import camelCase from 'lodash-es/camelCase.js';
8
+ import { UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL } from '../../modals/insert-section-modal/insert-section-modal.element.js';
9
+ import { UUITextStyles } from '../../../../external/uui/index.js';
10
+ import { css, html, customElement, query, state, nothing } from '../../../../external/lit/index.js';
11
+ import { UMB_MODAL_CONTEXT_TOKEN, UMB_TEMPLATE_PICKER_MODAL } from '../../../core/modal/index.js';
12
+ import { UmbLitElement } from '../../../../shared/lit-element/index.js';
13
+ import { Subject, debounceTime } from '../../../../external/rxjs/index.js';
14
+ let UmbTemplateWorkspaceEditorElement = class UmbTemplateWorkspaceEditorElement extends UmbLitElement {
15
+ #templateWorkspaceContext;
16
+ #isNew;
17
+ #masterTemplateId;
18
+ constructor() {
19
+ super();
20
+ this._name = '';
21
+ this._content = '';
22
+ this._alias = '';
23
+ this._ready = false;
24
+ this._masterTemplateName = null;
25
+ this.#isNew = false;
26
+ this.#masterTemplateId = null;
27
+ this.inputQuery$ = new Subject();
28
+ this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => {
29
+ this._modalContext = instance;
30
+ });
31
+ this.consumeContext('UmbEntityWorkspaceContext', (workspaceContext) => {
32
+ this.#templateWorkspaceContext = workspaceContext;
33
+ this.observe(this.#templateWorkspaceContext.name, (name) => {
34
+ this._name = name;
35
+ });
36
+ this.observe(this.#templateWorkspaceContext.alias, (alias) => {
37
+ this._alias = alias;
38
+ });
39
+ this.observe(this.#templateWorkspaceContext.content, (content) => {
40
+ this._content = content;
41
+ });
42
+ this.observe(this.#templateWorkspaceContext.masterTemplate, (masterTemplate) => {
43
+ this.#masterTemplateId = masterTemplate?.id ?? null;
44
+ this._masterTemplateName = masterTemplate?.name ?? null;
45
+ });
46
+ this.observe(this.#templateWorkspaceContext.isNew, (isNew) => {
47
+ this.#isNew = !!isNew;
48
+ });
49
+ this.observe(this.#templateWorkspaceContext.isCodeEditorReady, (isReady) => {
50
+ this._ready = isReady;
51
+ });
52
+ this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue) => {
53
+ this.#templateWorkspaceContext?.setName(nameInputValue);
54
+ if (this.#isNew && !this._alias)
55
+ this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue));
56
+ });
57
+ });
58
+ }
59
+ #onNameInput(event) {
60
+ const target = event.target;
61
+ const value = target.value;
62
+ this.inputQuery$.next(value);
63
+ }
64
+ #onAliasInput(event) {
65
+ const target = event.target;
66
+ const value = target.value;
67
+ this.#templateWorkspaceContext?.setAlias(value);
68
+ }
69
+ #onCodeEditorInput(event) {
70
+ const target = event.target;
71
+ const value = target.code;
72
+ this.#templateWorkspaceContext?.setContent(value);
73
+ }
74
+ #insertSnippet(event) {
75
+ const target = event.target;
76
+ const value = target.value;
77
+ this._codeEditor?.insert(value);
78
+ }
79
+ #openInsertSectionModal() {
80
+ const sectionModal = this._modalContext?.open(UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL);
81
+ sectionModal?.onSubmit().then((insertSectionModalResult) => {
82
+ if (insertSectionModalResult.value)
83
+ this._codeEditor?.insert(insertSectionModalResult.value);
84
+ });
85
+ }
86
+ #resetMasterTemplate() {
87
+ this.#setMasterTemplateId(null);
88
+ }
89
+ async #setMasterTemplateId(id) {
90
+ //root item selected
91
+ if (id === '')
92
+ return;
93
+ if (this._content === null || this._content === undefined)
94
+ return;
95
+ const layoutBlockRegex = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi;
96
+ const masterTemplate = await this.#templateWorkspaceContext?.setMasterTemplate(id);
97
+ //Reset master template or is did not exist and the declaration exists
98
+ if (masterTemplate === null && layoutBlockRegex.test(this._content)) {
99
+ const string = this._content?.replace(layoutBlockRegex, `$1null$3`);
100
+ this.#templateWorkspaceContext?.setContent(string);
101
+ return;
102
+ }
103
+ //No declaration and no valid id - do nothing
104
+ if (masterTemplate === null)
105
+ return;
106
+ //if has master template in the content
107
+ if (layoutBlockRegex.test(this._content)) {
108
+ const string = this._content?.replace(layoutBlockRegex, `$1"${masterTemplate?.name}.cshtml"$3`);
109
+ this.#templateWorkspaceContext?.setContent(string);
110
+ return;
111
+ }
112
+ //if no master template in the content insert it at the beginning
113
+ const string = `@{
114
+ Layout = "${masterTemplate?.name}.cshtml";
115
+ }
116
+ ${this._content}`;
117
+ this.#templateWorkspaceContext?.setContent(string);
118
+ }
119
+ #openMasterTemplatePicker() {
120
+ const modalHandler = this._modalContext?.open(UMB_TEMPLATE_PICKER_MODAL, {
121
+ selection: [this.#masterTemplateId],
122
+ pickableFilter: (item) => {
123
+ return item.id !== null && item.id !== this.#templateWorkspaceContext?.getEntityId();
124
+ },
125
+ });
126
+ modalHandler?.onSubmit().then((data) => {
127
+ if (!data.selection)
128
+ return;
129
+ this.#setMasterTemplateId(data.selection[0] ?? '');
130
+ });
131
+ }
132
+ #renderMasterTemplatePicker() {
133
+ return html `
134
+ <uui-button-group>
135
+ <uui-button
136
+ @click=${this.#openMasterTemplatePicker}
137
+ look="secondary"
138
+ id="master-template-button"
139
+ label="Change Master template"
140
+ >${this._masterTemplateName
141
+ ? `Master template: ${this._masterTemplateName}`
142
+ : 'Set master template'}</uui-button
143
+ >
144
+ ${this._masterTemplateName
145
+ ? html ` <uui-button look="secondary" id="save-button" label="Remove master template" compact
146
+ ><uui-icon name="umb:delete" @click=${this.#resetMasterTemplate}></uui-icon
147
+ ></uui-button>`
148
+ : nothing}
149
+ </uui-button-group>
150
+ `;
151
+ }
152
+ #renderCodeEditor() {
153
+ return html `<umb-code-editor
154
+ language="razor"
155
+ id="content"
156
+ .code=${this._content ?? ''}
157
+ @input=${this.#onCodeEditorInput}></umb-code-editor>`;
158
+ }
159
+ render() {
160
+ // TODO: add correct UI elements
161
+ return html `<umb-workspace-editor alias="Umb.Workspace.Template">
162
+ <uui-input placeholder="Enter name..." slot="header" .value=${this._name} @input=${this.#onNameInput}
163
+ ><umb-template-alias-input
164
+ slot="append"
165
+ .value=${this._alias}
166
+ @change=${this.#onAliasInput}></umb-template-alias-input
167
+ ></uui-input>
168
+ <uui-box>
169
+ <div slot="header" id="code-editor-menu-container">
170
+ ${this.#renderMasterTemplatePicker()}
171
+ <div>
172
+ <umb-templating-insert-menu @insert=${this.#insertSnippet}></umb-templating-insert-menu>
173
+ <!-- <uui-button look="secondary" id="query-builder-button" label="Query builder">
174
+ <uui-icon name="umb:wand"></uui-icon>Query builder
175
+ </uui-button> -->
176
+ <uui-button
177
+ look="secondary"
178
+ id="sections-button"
179
+ label="Query builder"
180
+ @click=${this.#openInsertSectionModal}>
181
+ <uui-icon name="umb:indent"></uui-icon>Sections
182
+ </uui-button>
183
+ </div>
184
+ </div>
185
+ ${this._ready
186
+ ? this.#renderCodeEditor()
187
+ : html `<div id="loader-container">
188
+ <uui-loader></uui-loader>
189
+ </div>`}
190
+ </uui-box>
191
+ </umb-workspace-editor>`;
192
+ }
193
+ static { this.styles = [
194
+ UUITextStyles,
195
+ css `
196
+ :host {
197
+ display: block;
198
+ width: 100%;
199
+ height: 100%;
200
+ }
201
+
202
+ #loader-container {
203
+ display: grid;
204
+ place-items: center;
205
+ min-height: calc(100dvh - 360px);
206
+ }
207
+
208
+ umb-code-editor {
209
+ --editor-height: calc(100dvh - 300px);
210
+ }
211
+
212
+ uui-box {
213
+ min-height: calc(100dvh - 300px);
214
+ margin: var(--uui-size-layout-1);
215
+ --uui-box-default-padding: 0;
216
+ /* remove header border bottom as code editor looks better in this box */
217
+ --uui-color-divider-standalone: transparent;
218
+ }
219
+
220
+ uui-input {
221
+ width: 100%;
222
+ margin: 1em;
223
+ }
224
+
225
+ #code-editor-menu-container uui-icon:not([name='umb:delete']) {
226
+ margin-right: var(--uui-size-space-3);
227
+ }
228
+
229
+ #insert-menu {
230
+ margin: 0;
231
+ padding: 0;
232
+ margin-top: var(--uui-size-space-3);
233
+ background-color: var(--uui-color-surface);
234
+ box-shadow: var(--uui-shadow-depth-3);
235
+ min-width: calc(100% + var(--uui-size-8, 24px));
236
+ }
237
+
238
+ #insert-menu > li,
239
+ ul {
240
+ padding: 0;
241
+ width: 100%;
242
+ list-style: none;
243
+ }
244
+
245
+ .insert-menu-item {
246
+ width: 100%;
247
+ }
248
+
249
+ #code-editor-menu-container {
250
+ display: flex;
251
+ justify-content: space-between;
252
+ gap: var(--uui-size-space-3);
253
+ }
254
+ `,
255
+ ]; }
256
+ };
257
+ __decorate([
258
+ state()
259
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_name", void 0);
260
+ __decorate([
261
+ state()
262
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_content", void 0);
263
+ __decorate([
264
+ state()
265
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_alias", void 0);
266
+ __decorate([
267
+ state()
268
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_ready", void 0);
269
+ __decorate([
270
+ state()
271
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_masterTemplateName", void 0);
272
+ __decorate([
273
+ query('umb-code-editor')
274
+ ], UmbTemplateWorkspaceEditorElement.prototype, "_codeEditor", void 0);
275
+ UmbTemplateWorkspaceEditorElement = __decorate([
276
+ customElement('umb-template-workspace-editor')
277
+ ], UmbTemplateWorkspaceEditorElement);
278
+ export { UmbTemplateWorkspaceEditorElement };
279
+ export default UmbTemplateWorkspaceEditorElement;
@@ -5,16 +5,22 @@ import { UmbControllerHostElement } from '../../../../libs/controller-api/index.
5
5
  export declare class UmbTemplateWorkspaceContext extends UmbWorkspaceContext<UmbTemplateRepository, TemplateResponseModel> {
6
6
  #private;
7
7
  data: import("rxjs").Observable<TemplateResponseModel | undefined>;
8
+ masterTemplate: import("rxjs").Observable<import("../../../../external/backend-api/index.js").ItemResponseModelBaseModel | null>;
8
9
  name: import("rxjs").Observable<string | undefined>;
10
+ alias: import("rxjs").Observable<string | undefined>;
9
11
  content: import("rxjs").Observable<string | null | undefined>;
12
+ id: import("rxjs").Observable<string | undefined>;
13
+ isCodeEditorReady: import("rxjs").Observable<boolean>;
10
14
  constructor(host: UmbControllerHostElement);
11
15
  getEntityType(): string;
12
16
  getEntityId(): string;
13
17
  getData(): TemplateResponseModel | undefined;
14
18
  setName(value: string): void;
19
+ setAlias(value: string): void;
15
20
  setContent(value: string): void;
16
21
  load(entityId: string): Promise<void>;
22
+ setMasterTemplate(id: string | null): Promise<import("../../../../external/backend-api/index.js").ItemResponseModelBaseModel | null>;
17
23
  save(): Promise<void>;
18
- createScaffold(parentId: string | null): Promise<void>;
24
+ createScaffold(parentId?: string | null): Promise<void>;
19
25
  destroy(): void;
20
26
  }
@@ -1,14 +1,32 @@
1
1
  import { UmbTemplateRepository } from '../repository/template.repository.js';
2
2
  import { UmbWorkspaceContext } from '../../../core/workspace/index.js';
3
- import { createObservablePart, UmbDeepState } from '../../../../libs/observable-api/index.js';
3
+ import { createObservablePart, UmbBooleanState, UmbDeepState, UmbObjectState, } from '../../../../libs/observable-api/index.js';
4
4
  export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext {
5
5
  #data;
6
+ #masterTemplate;
7
+ #isCodeEditorReady;
6
8
  constructor(host) {
7
9
  super(host, new UmbTemplateRepository(host));
8
10
  this.#data = new UmbDeepState(undefined);
9
11
  this.data = this.#data.asObservable();
12
+ this.#masterTemplate = new UmbObjectState(null);
13
+ this.masterTemplate = this.#masterTemplate.asObservable();
10
14
  this.name = createObservablePart(this.#data, (data) => data?.name);
15
+ this.alias = createObservablePart(this.#data, (data) => data?.alias);
11
16
  this.content = createObservablePart(this.#data, (data) => data?.content);
17
+ this.id = createObservablePart(this.#data, (data) => data?.id);
18
+ this.#isCodeEditorReady = new UmbBooleanState(false);
19
+ this.isCodeEditorReady = this.#isCodeEditorReady.asObservable();
20
+ this.#loadCodeEditor();
21
+ }
22
+ async #loadCodeEditor() {
23
+ try {
24
+ await import('../../../core/components/code-editor/index.js');
25
+ this.#isCodeEditorReady.next(true);
26
+ }
27
+ catch (error) {
28
+ console.error(error);
29
+ }
12
30
  }
13
31
  getEntityType() {
14
32
  return 'template';
@@ -22,6 +40,9 @@ export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext {
22
40
  setName(value) {
23
41
  this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', name: value });
24
42
  }
43
+ setAlias(value) {
44
+ this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', alias: value });
45
+ }
25
46
  setContent(value) {
26
47
  this.#data.next({ ...this.#data.value, $type: this.#data.value?.$type || '', content: value });
27
48
  }
@@ -30,17 +51,75 @@ export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext {
30
51
  if (data) {
31
52
  this.setIsNew(false);
32
53
  this.#data.next(data);
54
+ this.#getMasterTemplateFromContent(data.content ?? '');
33
55
  }
34
56
  }
57
+ #getMasterTemplateFromContent(content) {
58
+ if (!content)
59
+ this.#masterTemplate.next(null);
60
+ const RegexString = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi;
61
+ const match = RegexString.exec(content ?? '');
62
+ if (match) {
63
+ if (match[2] === 'null') {
64
+ this.#masterTemplate.next(null);
65
+ return null;
66
+ }
67
+ this.#masterTemplate.next({ name: match[2].replace(/"/g, '').replace('.cshtml', '') });
68
+ return match[2].replace(/"/g, '');
69
+ }
70
+ this.#masterTemplate.next(null);
71
+ return null;
72
+ }
73
+ async setMasterTemplate(id) {
74
+ if (id === null) {
75
+ this.#masterTemplate.next(null);
76
+ return null;
77
+ }
78
+ const { data } = await this.repository.requestItems([id]);
79
+ if (data) {
80
+ this.#masterTemplate.next(data[0]);
81
+ return data[0];
82
+ }
83
+ return null;
84
+ }
35
85
  async save() {
36
- throw new Error('Save method not implemented.');
86
+ const template = this.#data.getValue();
87
+ const isNew = this.getIsNew();
88
+ if (isNew && template) {
89
+ await this.repository.create({
90
+ name: template.name,
91
+ content: template.content,
92
+ alias: template.alias,
93
+ });
94
+ if (this.#masterTemplate.value?.id) {
95
+ this.repository.requestTreeItemsOf(this.#masterTemplate.value?.id ?? '');
96
+ }
97
+ else {
98
+ this.repository.requestRootTreeItems();
99
+ }
100
+ }
101
+ if (template?.id) {
102
+ await this.repository.save(template.id, {
103
+ name: template.name,
104
+ content: template.content,
105
+ alias: template.alias,
106
+ });
107
+ }
37
108
  }
38
- async createScaffold(parentId) {
39
- const { data } = await this.repository.createScaffold(parentId);
109
+ async createScaffold(parentId = null) {
110
+ const { data } = await this.repository.createScaffold();
40
111
  if (!data)
41
112
  return;
42
113
  this.setIsNew(true);
43
- this.#data.next(data);
114
+ this.#data.next({ ...data, id: '', name: '', alias: '', $type: 'TemplateResponseModel' });
115
+ if (!parentId || parentId === 'root')
116
+ return;
117
+ await this.setMasterTemplate(parentId);
118
+ const RegexString = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi;
119
+ const content = this.#data.value?.content ?? '';
120
+ const masterTemplateName = this.#masterTemplate.value?.name ?? '';
121
+ const string = content.replace(RegexString, `$1"${masterTemplateName}.cshtml"$3`) ?? '';
122
+ this.setContent(string);
44
123
  }
45
124
  destroy() {
46
125
  this.#data.complete();
@@ -1,14 +1,11 @@
1
1
  import type { UmbRoute } from '../../../../shared/router/index.js';
2
2
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
3
- import './template-workspace-edit.element.js';
3
+ import './template-workspace-editor.element.js';
4
4
  export declare class UmbTemplateWorkspaceElement extends UmbLitElement {
5
5
  #private;
6
6
  load(entityId: string): void;
7
- private _name?;
8
- private _content?;
9
7
  _routes: UmbRoute[];
10
8
  render(): import("lit-html").TemplateResult<1>;
11
- static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
12
9
  }
13
10
  export default UmbTemplateWorkspaceElement;
14
11
  declare global {
@@ -5,19 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { UmbTemplateWorkspaceContext } from './template-workspace.context.js';
8
- import { UUITextStyles } from '../../../../external/uui/index.js';
9
- import { css, html, customElement, state } from '../../../../external/lit/index.js';
8
+ import { html, customElement, state } from '../../../../external/lit/index.js';
10
9
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
11
- import './template-workspace-edit.element.js';
10
+ import './template-workspace-editor.element.js';
12
11
  let UmbTemplateWorkspaceElement = class UmbTemplateWorkspaceElement extends UmbLitElement {
13
12
  constructor() {
14
13
  super(...arguments);
15
- this._name = '';
16
- this._content = '';
17
14
  this.#templateWorkspaceContext = new UmbTemplateWorkspaceContext(this);
18
15
  this.#routerPath = '';
19
- this.#element = document.createElement('umb-template-workspace-edit');
20
- this.#key = '';
16
+ this.#element = document.createElement('umb-template-workspace-editor');
21
17
  this._routes = [
22
18
  {
23
19
  path: 'create/:parentKey',
@@ -43,7 +39,6 @@ let UmbTemplateWorkspaceElement = class UmbTemplateWorkspaceElement extends UmbL
43
39
  #templateWorkspaceContext;
44
40
  #routerPath;
45
41
  #element;
46
- #key;
47
42
  render() {
48
43
  return html `<umb-router-slot
49
44
  .routes=${this._routes}
@@ -51,37 +46,7 @@ let UmbTemplateWorkspaceElement = class UmbTemplateWorkspaceElement extends UmbL
51
46
  this.#routerPath = event.target.absoluteRouterPath;
52
47
  }}></umb-router-slot>`;
53
48
  }
54
- static { this.styles = [
55
- UUITextStyles,
56
- css `
57
- :host {
58
- display: block;
59
- width: 100%;
60
- height: 100%;
61
- }
62
-
63
- umb-code-editor {
64
- --editor-height: calc(100vh - 300px);
65
- }
66
-
67
- uui-box {
68
- margin: 1em;
69
- --uui-box-default-padding: 0;
70
- }
71
-
72
- uui-input {
73
- width: 100%;
74
- margin: 1em;
75
- }
76
- `,
77
- ]; }
78
49
  };
79
- __decorate([
80
- state()
81
- ], UmbTemplateWorkspaceElement.prototype, "_name", void 0);
82
- __decorate([
83
- state()
84
- ], UmbTemplateWorkspaceElement.prototype, "_content", void 0);
85
50
  __decorate([
86
51
  state()
87
52
  ], UmbTemplateWorkspaceElement.prototype, "_routes", void 0);
@@ -69,13 +69,16 @@ let UmbDashboardTranslationDictionaryElement = class UmbDashboardTranslationDict
69
69
  #setTableItems() {
70
70
  this.#tableItems = this.#dictionaryItems.map((dictionary) => {
71
71
  // id is set to name to allow filtering on the displayed value
72
+ // TODO: Generate URL for editing the dictionary item
72
73
  const tableItem = {
73
74
  id: dictionary.name ?? '',
74
75
  icon: 'umb:book-alt',
75
76
  data: [
76
77
  {
77
78
  columnAlias: 'name',
78
- value: html `<a style="font-weight:bold" href="/section/translation/dictionary-item/edit/${dictionary.id}">
79
+ value: html `<a
80
+ style="font-weight:bold"
81
+ href="/section/translation/workspace/dictionary-item/edit/${dictionary.id}">
79
82
  ${dictionary.name}</a
80
83
  > `,
81
84
  },
@@ -145,10 +148,8 @@ let UmbDashboardTranslationDictionaryElement = class UmbDashboardTranslationDict
145
148
  UUITextStyles,
146
149
  css `
147
150
  :host {
148
- display: flex;
149
- flex-direction: column;
150
- height: 100%;
151
- margin: var(--uui-size-layout-1);
151
+ display: block;
152
+ padding: var(--uui-size-layout-1);
152
153
  }
153
154
 
154
155
  #dictionary-top-bar {
@@ -1,14 +1,14 @@
1
1
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
2
- export declare class UmbDictionaryWorkspaceEditElement extends UmbLitElement {
2
+ export declare class UmbDictionaryWorkspaceEditorElement extends UmbLitElement {
3
3
  #private;
4
4
  private _name?;
5
5
  constructor();
6
6
  render(): import("lit-html").TemplateResult<1>;
7
7
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
8
8
  }
9
- export default UmbDictionaryWorkspaceEditElement;
9
+ export default UmbDictionaryWorkspaceEditorElement;
10
10
  declare global {
11
11
  interface HTMLElementTagNameMap {
12
- 'umb-dictionary-workspace-edit': UmbDictionaryWorkspaceEditElement;
12
+ 'umb-dictionary-workspace-editor': UmbDictionaryWorkspaceEditorElement;
13
13
  }
14
14
  }
@@ -8,7 +8,7 @@ import { UUIInputEvent, UUITextStyles } from '../../../../external/uui/index.js'
8
8
  import { css, html, customElement, state } from '../../../../external/lit/index.js';
9
9
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
10
10
  import { UMB_ENTITY_WORKSPACE_CONTEXT } from '../../../core/workspace/index.js';
11
- let UmbDictionaryWorkspaceEditElement = class UmbDictionaryWorkspaceEditElement extends UmbLitElement {
11
+ let UmbDictionaryWorkspaceEditorElement = class UmbDictionaryWorkspaceEditorElement extends UmbLitElement {
12
12
  #workspaceContext;
13
13
  constructor() {
14
14
  super();
@@ -61,9 +61,9 @@ let UmbDictionaryWorkspaceEditElement = class UmbDictionaryWorkspaceEditElement
61
61
  };
62
62
  __decorate([
63
63
  state()
64
- ], UmbDictionaryWorkspaceEditElement.prototype, "_name", void 0);
65
- UmbDictionaryWorkspaceEditElement = __decorate([
66
- customElement('umb-dictionary-workspace-edit')
67
- ], UmbDictionaryWorkspaceEditElement);
68
- export { UmbDictionaryWorkspaceEditElement };
69
- export default UmbDictionaryWorkspaceEditElement;
64
+ ], UmbDictionaryWorkspaceEditorElement.prototype, "_name", void 0);
65
+ UmbDictionaryWorkspaceEditorElement = __decorate([
66
+ customElement('umb-dictionary-workspace-editor')
67
+ ], UmbDictionaryWorkspaceEditorElement);
68
+ export { UmbDictionaryWorkspaceEditorElement };
69
+ export default UmbDictionaryWorkspaceEditorElement;
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { UmbDictionaryWorkspaceContext } from './dictionary-workspace.context.js';
8
- import { UmbDictionaryWorkspaceEditElement } from './dictionary-workspace-edit.element.js';
8
+ import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js';
9
9
  import { UUITextStyles } from '../../../../external/uui/index.js';
10
10
  import { html, customElement, state } from '../../../../external/lit/index.js';
11
11
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
@@ -13,7 +13,7 @@ let UmbWorkspaceDictionaryElement = class UmbWorkspaceDictionaryElement extends
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.#workspaceContext = new UmbDictionaryWorkspaceContext(this);
16
- this.#element = new UmbDictionaryWorkspaceEditElement();
16
+ this.#element = new UmbDictionaryWorkspaceEditorElement();
17
17
  this._routes = [
18
18
  {
19
19
  path: 'edit/:id',
@@ -14,7 +14,7 @@ const workspaceViews = [
14
14
  type: 'workspaceEditorView',
15
15
  alias: 'Umb.WorkspaceView.Dictionary.Edit',
16
16
  name: 'Dictionary Workspace Edit View',
17
- loader: () => import('./views/edit/workspace-view-dictionary-edit.element.js'),
17
+ loader: () => import('./views/editor/workspace-view-dictionary-editor.element.js'),
18
18
  weight: 100,
19
19
  meta: {
20
20
  label: 'Edit',
@@ -1,5 +1,5 @@
1
1
  import { UmbLitElement } from '../../../../../../shared/lit-element/index.js';
2
- export declare class UmbWorkspaceViewDictionaryEditElement extends UmbLitElement {
2
+ export declare class UmbWorkspaceViewDictionaryEditorElement extends UmbLitElement {
3
3
  #private;
4
4
  private _dictionary?;
5
5
  private _languages;
@@ -7,9 +7,9 @@ export declare class UmbWorkspaceViewDictionaryEditElement extends UmbLitElement
7
7
  render(): import("lit-html").TemplateResult<1>;
8
8
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
9
9
  }
10
- export default UmbWorkspaceViewDictionaryEditElement;
10
+ export default UmbWorkspaceViewDictionaryEditorElement;
11
11
  declare global {
12
12
  interface HTMLElementTagNameMap {
13
- 'umb-workspace-view-dictionary-edit': UmbWorkspaceViewDictionaryEditElement;
13
+ 'umb-workspace-view-dictionary-editor': UmbWorkspaceViewDictionaryEditorElement;
14
14
  }
15
15
  }
@@ -9,7 +9,7 @@ import { UUITextStyles, UUITextareaEvent } from '../../../../../../external/uui/
9
9
  import { css, html, customElement, state, repeat, ifDefined } from '../../../../../../external/lit/index.js';
10
10
  import { UmbLitElement } from '../../../../../../shared/lit-element/index.js';
11
11
  import { UMB_ENTITY_WORKSPACE_CONTEXT } from '../../../../../core/workspace/index.js';
12
- let UmbWorkspaceViewDictionaryEditElement = class UmbWorkspaceViewDictionaryEditElement extends UmbLitElement {
12
+ let UmbWorkspaceViewDictionaryEditorElement = class UmbWorkspaceViewDictionaryEditorElement extends UmbLitElement {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this._languages = [];
@@ -72,12 +72,12 @@ let UmbWorkspaceViewDictionaryEditElement = class UmbWorkspaceViewDictionaryEdit
72
72
  };
73
73
  __decorate([
74
74
  state()
75
- ], UmbWorkspaceViewDictionaryEditElement.prototype, "_dictionary", void 0);
75
+ ], UmbWorkspaceViewDictionaryEditorElement.prototype, "_dictionary", void 0);
76
76
  __decorate([
77
77
  state()
78
- ], UmbWorkspaceViewDictionaryEditElement.prototype, "_languages", void 0);
79
- UmbWorkspaceViewDictionaryEditElement = __decorate([
80
- customElement('umb-workspace-view-dictionary-edit')
81
- ], UmbWorkspaceViewDictionaryEditElement);
82
- export { UmbWorkspaceViewDictionaryEditElement };
83
- export default UmbWorkspaceViewDictionaryEditElement;
78
+ ], UmbWorkspaceViewDictionaryEditorElement.prototype, "_languages", void 0);
79
+ UmbWorkspaceViewDictionaryEditorElement = __decorate([
80
+ customElement('umb-workspace-view-dictionary-editor')
81
+ ], UmbWorkspaceViewDictionaryEditorElement);
82
+ export { UmbWorkspaceViewDictionaryEditorElement };
83
+ export default UmbWorkspaceViewDictionaryEditorElement;