@umbraco-cms/backoffice 1.0.0-next.92acfa89 → 1.0.0-next.93ea2ba6

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 (304) hide show
  1. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +1 -1
  2. package/dist-cms/css/umb-css.css +1 -0
  3. package/dist-cms/custom-elements.json +49 -47
  4. package/dist-cms/mocks/data/data-type.data.js +36 -37
  5. package/dist-cms/mocks/data/document-type.data.js +19 -0
  6. package/dist-cms/mocks/data/template.data.d.ts +26 -2
  7. package/dist-cms/mocks/data/template.data.js +82 -5
  8. package/dist-cms/mocks/handlers/manifests.handlers.js +1 -1
  9. package/dist-cms/mocks/handlers/template.handlers.js +24 -4
  10. package/dist-cms/packages/core/collection/collection.element.js +1 -1
  11. package/dist-cms/packages/core/components/body-layout/body-layout.element.d.ts +3 -2
  12. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +26 -6
  13. package/dist-cms/packages/core/components/code-editor/code-editor.element.d.ts +2 -2
  14. package/dist-cms/packages/core/components/code-editor/code-editor.element.js +3 -3
  15. package/dist-cms/packages/core/components/code-editor/code-editor.model.d.ts +5 -5
  16. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.d.ts +1 -0
  17. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.js +3 -0
  18. package/dist-cms/packages/core/components/footer-layout/footer-layout.element.js +1 -1
  19. package/dist-cms/packages/core/components/index.js +1 -2
  20. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.d.ts +2 -2
  21. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js +16 -13
  22. package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +12 -1
  23. package/dist-cms/packages/core/components/table/table.element.js +1 -2
  24. package/dist-cms/packages/core/extension-registry/models/index.d.ts +2 -2
  25. package/dist-cms/packages/core/extension-registry/models/property-editor.model.d.ts +13 -10
  26. package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +0 -4
  27. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.d.ts +2 -1
  28. package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.d.ts +5 -9
  29. package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.js +3 -1
  30. package/dist-cms/packages/core/property-actions/manifests.js +2 -2
  31. package/dist-cms/packages/core/property-editors/manifests.d.ts +1 -1
  32. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.js +7 -6
  33. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.js +4 -3
  34. package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.js +3 -1
  35. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.js +3 -1
  36. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.js +4 -3
  37. package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.js +17 -2
  38. package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.js +5 -4
  39. package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.js +3 -1
  40. package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.js +3 -1
  41. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.d.ts +2 -0
  42. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.js +8 -0
  43. package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.js +3 -2
  44. package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.js +5 -4
  45. package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.js +3 -1
  46. package/dist-cms/packages/core/property-editors/models/Umbraco.Label.js +3 -2
  47. package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.js +7 -6
  48. package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.js +3 -1
  49. package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.js +9 -8
  50. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.js +3 -1
  51. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.js +3 -1
  52. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.js +5 -4
  53. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.js +5 -4
  54. package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.js +4 -3
  55. package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.js +3 -1
  56. package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.js +4 -3
  57. package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.js +4 -3
  58. package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.js +3 -2
  59. package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.js +3 -2
  60. package/dist-cms/packages/core/property-editors/models/Umbraco.TinyMCE.js +4 -3
  61. package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.js +3 -1
  62. package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.js +3 -2
  63. package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.js +3 -1
  64. package/dist-cms/packages/core/property-editors/models/manifests.js +43 -47
  65. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.d.ts +2 -2
  66. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.js +3 -3
  67. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.d.ts +2 -2
  68. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.js +3 -3
  69. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.d.ts +2 -2
  70. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.js +3 -3
  71. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.d.ts +2 -2
  72. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.js +7 -7
  73. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.d.ts +2 -2
  74. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.js +3 -3
  75. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.d.ts +2 -2
  76. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.js +8 -8
  77. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.d.ts +2 -2
  78. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.js +5 -5
  79. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.d.ts +2 -2
  80. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.js +3 -3
  81. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.d.ts +2 -2
  82. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.js +3 -3
  83. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.d.ts +2 -2
  84. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.js +3 -3
  85. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.d.ts +2 -2
  86. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.js +3 -3
  87. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.d.ts +2 -2
  88. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.js +9 -9
  89. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.d.ts +2 -2
  90. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.js +3 -3
  91. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.d.ts +2 -2
  92. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.js +5 -15
  93. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.d.ts +2 -2
  94. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.js +6 -6
  95. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.d.ts +2 -2
  96. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.js +6 -6
  97. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.d.ts +2 -2
  98. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.js +3 -3
  99. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.d.ts +2 -2
  100. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.js +3 -3
  101. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.d.ts +2 -2
  102. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.js +3 -3
  103. package/dist-cms/packages/core/property-editors/uis/label/manifests.d.ts +2 -2
  104. package/dist-cms/packages/core/property-editors/uis/label/manifests.js +3 -3
  105. package/dist-cms/packages/core/property-editors/uis/manifests.d.ts +2 -2
  106. package/dist-cms/packages/core/property-editors/uis/manifests.js +3 -3
  107. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.d.ts +2 -2
  108. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.js +7 -7
  109. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.d.ts +2 -2
  110. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.js +3 -3
  111. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.d.ts +2 -2
  112. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.js +3 -3
  113. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.d.ts +2 -2
  114. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.js +3 -3
  115. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.d.ts +2 -2
  116. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.js +6 -6
  117. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.d.ts +2 -2
  118. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.js +3 -3
  119. package/dist-cms/packages/core/property-editors/uis/number/manifests.d.ts +2 -2
  120. package/dist-cms/packages/core/property-editors/uis/number/manifests.js +9 -9
  121. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.d.ts +2 -2
  122. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.js +3 -3
  123. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.d.ts +2 -2
  124. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.js +3 -3
  125. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.d.ts +2 -2
  126. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.js +3 -3
  127. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.d.ts +2 -2
  128. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.js +5 -5
  129. package/dist-cms/packages/core/property-editors/uis/slider/manifests.d.ts +2 -2
  130. package/dist-cms/packages/core/property-editors/uis/slider/manifests.js +8 -8
  131. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.d.ts +2 -2
  132. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.js +9 -9
  133. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.d.ts +2 -2
  134. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.js +7 -7
  135. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.d.ts +2 -2
  136. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.js +3 -3
  137. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.d.ts +2 -2
  138. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.js +7 -7
  139. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.d.ts +2 -2
  140. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.js +8 -8
  141. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.d.ts +2 -2
  142. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.js +3 -3
  143. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.d.ts +2 -2
  144. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.js +7 -7
  145. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.d.ts +2 -2
  146. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.js +3 -3
  147. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.d.ts +2 -2
  148. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.js +3 -3
  149. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.d.ts +2 -2
  150. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.js +3 -3
  151. package/dist-cms/packages/core/section/section-main/section-main.element.js +2 -2
  152. package/dist-cms/packages/core/section/section-sidebar/section-sidebar.element.js +1 -1
  153. package/dist-cms/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.js +11 -2
  154. package/dist-cms/packages/core/section/section-views/section-views.element.js +15 -6
  155. package/dist-cms/packages/core/tree/index.d.ts +0 -1
  156. package/dist-cms/packages/core/tree/index.js +0 -1
  157. package/dist-cms/packages/core/tree/tree.element.d.ts +0 -2
  158. package/dist-cms/packages/core/tree/tree.element.js +0 -2
  159. package/dist-cms/packages/core/workspace/index.d.ts +1 -0
  160. package/dist-cms/packages/core/workspace/index.js +1 -0
  161. package/dist-cms/packages/core/workspace/workspace-editor/workspace-editor.element.js +2 -2
  162. package/dist-cms/packages/core/workspace/workspace-footer/index.d.ts +1 -0
  163. package/dist-cms/packages/core/workspace/workspace-footer/index.js +1 -0
  164. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.context.d.ts +1 -1
  165. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.d.ts +1 -1
  166. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.js +1 -1
  167. package/dist-cms/packages/core/workspace/workspace-variant/index.d.ts +1 -0
  168. package/dist-cms/packages/core/workspace/workspace-variant/index.js +1 -0
  169. package/dist-cms/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.js +2 -2
  170. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.d.ts +3 -1
  171. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.js +21 -7
  172. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace-editor.element.js +1 -1
  173. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +4 -2
  174. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +11 -7
  175. package/dist-cms/packages/documents/document-types/workspace/views/details/document-type-workspace-view-details.element.js +3 -2
  176. package/dist-cms/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.js +3 -3
  177. package/dist-cms/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.js +1 -1
  178. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -0
  179. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +14 -9
  180. package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.js +3 -2
  181. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.d.ts +2 -2
  182. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js +7 -7
  183. package/dist-cms/packages/documents/documents/workspace/manifests.js +4 -4
  184. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.js +3 -2
  185. package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +1 -1
  186. package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.d.ts → media-workspace-editor.element.d.ts} +3 -3
  187. package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.js → media-workspace-editor.element.js} +7 -7
  188. package/dist-cms/packages/media/media/workspace/media-workspace.element.js +2 -2
  189. package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.d.ts → media-type-workspace-editor.element.d.ts} +3 -3
  190. package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.js → media-type-workspace-editor.element.js} +7 -7
  191. package/dist-cms/packages/media/media-types/workspace/media-type-workspace.element.js +2 -2
  192. package/dist-cms/packages/members/dashboards/welcome/dashboard-members-welcome.element.js +1 -1
  193. package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.d.ts → member-group-workspace-editor.element.d.ts} +3 -3
  194. package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.js → member-group-workspace-editor.element.js} +7 -7
  195. package/dist-cms/packages/members/member-groups/workspace/member-group-workspace.element.js +2 -2
  196. package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.d.ts → member-type-workspace-editor.element.d.ts} +3 -3
  197. package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.js → member-type-workspace-editor.element.js} +6 -6
  198. package/dist-cms/packages/members/member-types/workspace/member-type-workspace.element.js +2 -2
  199. package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.d.ts → member-workspace-editor.element.d.ts} +3 -3
  200. package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.js → member-workspace-editor.element.js} +6 -6
  201. package/dist-cms/packages/members/members/workspace/member-workspace.element.js +2 -2
  202. package/dist-cms/packages/packages/package-section/views/created/packages-created-overview.element.js +1 -1
  203. package/dist-cms/packages/packages/package-section/views/installed/installed-packages-section-view.element.js +1 -1
  204. package/dist-cms/packages/search/examine-management-dashboard/views/section-view-examine-overview.js +1 -1
  205. package/dist-cms/packages/settings/dashboards/health-check/views/health-check-overview.element.js +1 -1
  206. package/dist-cms/packages/settings/dashboards/models-builder/dashboard-models-builder.element.js +1 -1
  207. package/dist-cms/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.js +1 -1
  208. package/dist-cms/packages/settings/dashboards/published-status/dashboard-published-status.element.js +1 -1
  209. package/dist-cms/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.js +1 -1
  210. package/dist-cms/packages/settings/dashboards/telemetry/dashboard-telemetry.element.js +1 -1
  211. package/dist-cms/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +2 -2
  212. package/dist-cms/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.js +3 -3
  213. package/dist-cms/packages/settings/data-types/repository/data-type.repository.d.ts +1 -1
  214. package/dist-cms/packages/settings/data-types/repository/data-type.store.d.ts +2 -2
  215. package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.d.ts → data-type-workspace-editor.element.d.ts} +4 -4
  216. package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.js → data-type-workspace-editor.element.js} +9 -9
  217. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.d.ts +1 -1
  218. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.js +2 -2
  219. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.d.ts +5 -4
  220. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js +41 -22
  221. package/dist-cms/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.js +1 -1
  222. package/dist-cms/packages/settings/languages/app-language-select/app-language-select.element.js +6 -3
  223. package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.d.ts → language-workspace-editor.element.d.ts} +3 -3
  224. package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.js → language-workspace-editor.element.js} +10 -10
  225. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.d.ts +1 -1
  226. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.js +2 -2
  227. package/dist-cms/packages/settings/logviewer/components/index.d.ts +1 -1
  228. package/dist-cms/packages/settings/logviewer/components/index.js +1 -1
  229. package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.d.ts +1 -0
  230. package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.js +1 -0
  231. package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.d.ts → relation-type-workspace-editor.element.d.ts} +4 -4
  232. package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.js → relation-type-workspace-editor.element.js} +8 -8
  233. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.d.ts +1 -1
  234. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.js +2 -2
  235. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.d.ts +2 -2
  236. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.js +3 -3
  237. package/dist-cms/packages/tags/property-editors/tags/manifests.d.ts +2 -2
  238. package/dist-cms/packages/tags/property-editors/tags/manifests.js +3 -3
  239. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +29 -17
  240. package/dist-cms/packages/templating/index.d.ts +1 -1
  241. package/dist-cms/packages/templating/index.js +1 -1
  242. package/dist-cms/packages/templating/modals/insert-choose-type-sidebar.element.js +26 -24
  243. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.d.ts +3 -1
  244. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.js +9 -0
  245. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.d.ts +4 -3
  246. package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.js +23 -8
  247. package/dist-cms/packages/templating/modals/insert-value-sidebar.element.js +1 -0
  248. package/dist-cms/packages/templating/modals/partial-view-picker-modal.element.js +1 -0
  249. package/dist-cms/packages/templating/stylesheets/menu-item/manifests.js +1 -1
  250. package/dist-cms/packages/templating/templates/components/alias-input/alias-input.d.ts +14 -0
  251. package/dist-cms/packages/templating/templates/components/alias-input/alias-input.js +82 -0
  252. package/dist-cms/packages/templating/templates/components/index.d.ts +1 -0
  253. package/dist-cms/packages/templating/templates/components/index.js +1 -0
  254. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +3 -2
  255. package/dist-cms/packages/templating/templates/index.d.ts +4 -0
  256. package/dist-cms/packages/templating/templates/index.js +4 -0
  257. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.d.ts +11 -7
  258. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js +19 -25
  259. package/dist-cms/packages/templating/templates/repository/template.repository.d.ts +18 -12
  260. package/dist-cms/packages/templating/templates/repository/template.repository.js +22 -14
  261. package/dist-cms/packages/templating/templates/repository/template.store.d.ts +1 -0
  262. package/dist-cms/packages/templating/templates/repository/template.store.js +3 -0
  263. package/dist-cms/packages/templating/templates/tree/manifests.js +2 -1
  264. package/dist-cms/packages/templating/templates/workspace/{template-workspace-edit.element.d.ts → template-workspace-editor.element.d.ts} +7 -3
  265. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +279 -0
  266. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +7 -1
  267. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +84 -5
  268. package/dist-cms/packages/templating/templates/workspace/template-workspace.element.d.ts +1 -4
  269. package/dist-cms/packages/templating/templates/workspace/template-workspace.element.js +3 -38
  270. package/dist-cms/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.js +2 -4
  271. package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.d.ts → dictionary-workspace-editor.element.d.ts} +3 -3
  272. package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.js → dictionary-workspace-editor.element.js} +7 -7
  273. package/dist-cms/packages/translation/dictionary/workspace/dictionary-workspace.element.js +2 -2
  274. package/dist-cms/packages/translation/dictionary/workspace/manifests.js +1 -1
  275. 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
  276. package/dist-cms/packages/translation/dictionary/workspace/views/{edit/workspace-view-dictionary-edit.element.js → editor/workspace-view-dictionary-editor.element.js} +8 -8
  277. package/dist-cms/packages/translation/index.js +1 -2
  278. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -1
  279. package/dist-cms/packages/users/user-groups/collection/user-group-collection.element.js +1 -10
  280. package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.d.ts → user-group-workspace-editor.element.d.ts} +3 -3
  281. package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.js → user-group-workspace-editor.element.js} +8 -8
  282. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +2 -2
  283. package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.d.ts → user-workspace-editor.element.d.ts} +3 -3
  284. package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.js → user-workspace-editor.element.js} +9 -9
  285. package/dist-cms/packages/users/users/workspace/user-workspace.element.js +2 -2
  286. package/dist-cms/shared/repository/detail-repository.interface.d.ts +2 -2
  287. package/dist-cms/shared/router/router-slot.element.js +1 -2
  288. package/dist-cms/tsconfig.tsbuildinfo +1 -1
  289. package/dist-cms/umbraco-package-schema.json +58 -40
  290. package/dist-cms/vscode-html-custom-data.json +23 -27
  291. package/package.json +5 -4
  292. package/dist-cms/packages/core/tree/context-menu/index.d.ts +0 -2
  293. package/dist-cms/packages/core/tree/context-menu/index.js +0 -2
  294. package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.d.ts +0 -23
  295. package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.js +0 -69
  296. package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.d.ts +0 -19
  297. package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.js +0 -100
  298. package/dist-cms/packages/tags/property-editors/Umbraco.Tags.d.ts +0 -2
  299. package/dist-cms/packages/tags/property-editors/Umbraco.Tags.js +0 -17
  300. package/dist-cms/packages/templating/templates/workspace/template-workspace-edit.element.js +0 -164
  301. package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.d.ts +0 -17
  302. package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.js +0 -85
  303. package/dist-cms/packages/translation/modals/manifests.d.ts +0 -2
  304. package/dist-cms/packages/translation/modals/manifests.js +0 -10
@@ -1,4 +1,3 @@
1
- import { UmbId } from '../../../../core/id/index.js';
2
1
  import { TemplateResource, } from '../../../../../external/backend-api/index.js';
3
2
  import { tryExecuteAndNotify } from '../../../../../shared/resources/index.js';
4
3
  /**
@@ -24,8 +23,21 @@ export class UmbTemplateDetailServerDataSource {
24
23
  * @memberof UmbTemplateDetailServerDataSource
25
24
  */
26
25
  get(id) {
26
+ if (!id)
27
+ throw new Error('Id is missing');
27
28
  return tryExecuteAndNotify(this.#host, TemplateResource.getTemplateById({ id }));
28
29
  }
30
+ /**
31
+ * Gets template item - you can get name and id from that
32
+ * @param {string} id
33
+ * @return {*}
34
+ * @memberof UmbTemplateDetailServerDataSource
35
+ */
36
+ async getItem(id) {
37
+ if (!id)
38
+ throw new Error('Id is missing');
39
+ return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateItem({ id: id }));
40
+ }
29
41
  /**
30
42
  * Creates a new Template scaffold
31
43
  * @param {(string | null)} parentId
@@ -33,28 +45,10 @@ export class UmbTemplateDetailServerDataSource {
33
45
  * @memberof UmbTemplateDetailServerDataSource
34
46
  */
35
47
  async createScaffold() {
36
- const error = undefined;
37
- const data = {
38
- $type: '',
39
- id: UmbId.new(),
40
- name: '',
41
- alias: '',
42
- content: '',
43
- };
44
- // TODO: update when backend is updated so we don't have to do two calls
45
- /*
46
- // TODO: Revisit template models, masterTemplateAlias is not here anymore?
47
- const { data: scaffoldData, error: scaffoldError } = await tryExecuteAndNotify(
48
- this.#host,
49
- TemplateResource.getTemplateScaffold()
50
- );
51
- */
52
- //error = scaffoldError;
53
- //data.content = scaffoldData?.content || '';
54
- return { data, error };
48
+ return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateScaffold());
55
49
  }
56
50
  /**
57
- * Inserts a new Template on the server
51
+ * Creates a new Template on the server
58
52
  * @param {Template} template
59
53
  * @return {*}
60
54
  * @memberof UmbTemplateDetailServerDataSource
@@ -62,7 +56,7 @@ export class UmbTemplateDetailServerDataSource {
62
56
  async insert(template) {
63
57
  if (!template)
64
58
  throw new Error('Template is missing');
65
- return tryExecuteAndNotify(this.#host, tryExecuteAndNotify(this.#host, TemplateResource.postTemplate({ requestBody: template })));
59
+ return await tryExecuteAndNotify(this.#host, TemplateResource.postTemplate({ requestBody: template }));
66
60
  }
67
61
  /**
68
62
  * Updates a Template on the server
@@ -72,10 +66,10 @@ export class UmbTemplateDetailServerDataSource {
72
66
  */
73
67
  async update(id, template) {
74
68
  if (!id)
75
- throw new Error('Id is missing');
69
+ throw new Error('You need to pass template id to update it');
76
70
  if (!template)
77
71
  throw new Error('Template is missing');
78
- return tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template }));
72
+ return await tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template }));
79
73
  }
80
74
  /**
81
75
  * Deletes a Template on the server
@@ -85,7 +79,7 @@ export class UmbTemplateDetailServerDataSource {
85
79
  */
86
80
  async delete(id) {
87
81
  if (!id)
88
- throw new Error('Id is missing');
82
+ throw new Error('You need to pass template id to delete it');
89
83
  return await tryExecuteAndNotify(this.#host, TemplateResource.deleteTemplateById({ id }));
90
84
  }
91
85
  }
@@ -1,7 +1,8 @@
1
- import type { UmbDetailRepository, UmbTreeRepository } from '../../../../shared/repository/index.js';
1
+ import type { UmbDetailRepository, UmbItemRepository, UmbTreeRepository } from '../../../../shared/repository/index.js';
2
2
  import type { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
3
- import { CreateTemplateRequestModel, EntityTreeItemResponseModel, TemplateResponseModel, UpdateTemplateRequestModel } from '../../../../external/backend-api/index.js';
4
- export declare class UmbTemplateRepository implements UmbTreeRepository<EntityTreeItemResponseModel>, UmbDetailRepository<CreateTemplateRequestModel, any, UpdateTemplateRequestModel, TemplateResponseModel> {
3
+ import { CreateTemplateRequestModel, EntityTreeItemResponseModel, ItemResponseModelBaseModel, TemplateItemResponseModel, TemplateResponseModel, UpdateTemplateRequestModel } from '../../../../external/backend-api/index.js';
4
+ import { Observable } from 'rxjs';
5
+ export declare class UmbTemplateRepository implements UmbTreeRepository<EntityTreeItemResponseModel>, UmbDetailRepository<CreateTemplateRequestModel, string, UpdateTemplateRequestModel, TemplateResponseModel>, UmbItemRepository<TemplateItemResponseModel> {
5
6
  #private;
6
7
  constructor(host: UmbControllerHostElement);
7
8
  requestTreeRoot(): Promise<{
@@ -16,28 +17,33 @@ export declare class UmbTemplateRepository implements UmbTreeRepository<EntityTr
16
17
  requestRootTreeItems(): Promise<{
17
18
  data: import("../../../../shared/repository/index.js").UmbPagedData<EntityTreeItemResponseModel> | undefined;
18
19
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
19
- asObservable: () => import("rxjs").Observable<EntityTreeItemResponseModel[]>;
20
+ asObservable: () => Observable<EntityTreeItemResponseModel[]>;
20
21
  }>;
21
22
  requestTreeItemsOf(parentId: string | null): Promise<{
22
23
  data: import("../../../../shared/repository/index.js").UmbPagedData<EntityTreeItemResponseModel> | undefined;
23
24
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
24
- asObservable: () => import("rxjs").Observable<EntityTreeItemResponseModel[]>;
25
+ asObservable: () => Observable<EntityTreeItemResponseModel[]>;
25
26
  }>;
26
27
  requestItemsLegacy(ids: Array<string>): Promise<{
27
28
  data: any[] | undefined;
28
29
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
29
- asObservable: () => import("rxjs").Observable<EntityTreeItemResponseModel[]>;
30
+ asObservable: () => Observable<EntityTreeItemResponseModel[]>;
30
31
  }>;
31
- rootTreeItems(): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
32
- treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
33
- itemsLegacy(ids: Array<string | null>): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
34
- createScaffold(parentId: string | null): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").TemplateModelBaseModel>>;
32
+ rootTreeItems(): Promise<Observable<EntityTreeItemResponseModel[]>>;
33
+ treeItemsOf(parentId: string | null): Promise<Observable<EntityTreeItemResponseModel[]>>;
34
+ itemsLegacy(ids: Array<string | null>): Promise<Observable<EntityTreeItemResponseModel[]>>;
35
+ createScaffold(): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").TemplateScaffoldResponseModel>>;
35
36
  requestById(id: string): Promise<{
36
37
  data: TemplateResponseModel | undefined;
37
38
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
38
39
  }>;
39
- byId(id: string): Promise<import("rxjs").Observable<any>>;
40
- create(template: TemplateResponseModel): Promise<{
40
+ requestItems(id: string[]): Promise<{
41
+ data: ItemResponseModelBaseModel[] | undefined;
42
+ error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
43
+ }>;
44
+ items(uniques: string[]): Promise<Observable<ItemResponseModelBaseModel[]>>;
45
+ byId(id: string): Promise<Observable<any>>;
46
+ create(template: CreateTemplateRequestModel): Promise<{
41
47
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
42
48
  }>;
43
49
  save(id: string, template: UpdateTemplateRequestModel): Promise<{
@@ -1,9 +1,9 @@
1
- import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js';
2
- import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data.js';
3
- import { UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store.js';
4
- import { UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store.js';
5
1
  import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '../../../core/notification/index.js';
6
2
  import { UmbContextConsumerController } from '../../../../libs/context-api/index.js';
3
+ import { UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store.js';
4
+ import { UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store.js';
5
+ import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data.js';
6
+ import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js';
7
7
  export class UmbTemplateRepository {
8
8
  #init;
9
9
  #host;
@@ -14,7 +14,6 @@ export class UmbTemplateRepository {
14
14
  #notificationContext;
15
15
  constructor(host) {
16
16
  this.#host = host;
17
- // TODO: figure out how spin up get the correct data source
18
17
  this.#treeDataSource = new UmbTemplateTreeServerDataSource(this.#host);
19
18
  this.#detailDataSource = new UmbTemplateDetailServerDataSource(this.#host);
20
19
  this.#init = Promise.all([
@@ -29,7 +28,7 @@ export class UmbTemplateRepository {
29
28
  }),
30
29
  ]);
31
30
  }
32
- // TREE:
31
+ //#region TREE:
33
32
  async requestTreeRoot() {
34
33
  await this.#init;
35
34
  const data = {
@@ -79,12 +78,11 @@ export class UmbTemplateRepository {
79
78
  await this.#init;
80
79
  return this.#treeStore.items(ids);
81
80
  }
82
- // DETAILS:
83
- async createScaffold(parentId) {
84
- if (parentId === undefined)
85
- throw new Error('Parent id is missing');
81
+ //#endregion
82
+ //#region DETAILS:
83
+ async createScaffold() {
86
84
  await this.#init;
87
- return this.#detailDataSource.createScaffold(parentId);
85
+ return this.#detailDataSource.createScaffold();
88
86
  }
89
87
  async requestById(id) {
90
88
  await this.#init;
@@ -99,6 +97,17 @@ export class UmbTemplateRepository {
99
97
  }
100
98
  return { data, error };
101
99
  }
100
+ async requestItems(id) {
101
+ await this.#init;
102
+ if (!id) {
103
+ throw new Error('Id is missing');
104
+ }
105
+ const { data, error } = await this.#detailDataSource.getItem(id);
106
+ return { data, error };
107
+ }
108
+ async items(uniques) {
109
+ throw new Error('items method is not implemented in UmbTemplateRepository');
110
+ }
102
111
  async byId(id) {
103
112
  if (!id)
104
113
  throw new Error('Key is missing');
@@ -108,7 +117,7 @@ export class UmbTemplateRepository {
108
117
  // Could potentially be general methods:
109
118
  async create(template) {
110
119
  await this.#init;
111
- if (!template || !template.id) {
120
+ if (!template) {
112
121
  throw new Error('Template is missing');
113
122
  }
114
123
  const { error } = await this.#detailDataSource.insert(template);
@@ -118,7 +127,7 @@ export class UmbTemplateRepository {
118
127
  }
119
128
  // TODO: we currently don't use the detail store for anything.
120
129
  // Consider to look up the data before fetching from the server
121
- this.#store?.append(template);
130
+ //this.#store?.append({ ...template, $type: 'EntityTreeItemResponseModel' });
122
131
  // TODO: Update tree store with the new item? or ask tree to request the new item?
123
132
  return { error };
124
133
  }
@@ -157,7 +166,6 @@ export class UmbTemplateRepository {
157
166
  // Consider notify a workspace if a template is deleted from the store while someone is editing it.
158
167
  this.#store?.remove([id]);
159
168
  this.#treeStore?.removeItem(id);
160
- // TODO: would be nice to align the stores on methods/methodNames.
161
169
  return { error };
162
170
  }
163
171
  }
@@ -27,6 +27,7 @@ export declare class UmbTemplateStore extends UmbStoreBase {
27
27
  * @memberof UmbTemplateStore
28
28
  */
29
29
  byId(id: TemplateResponseModel['id']): import("rxjs").Observable<any>;
30
+ items(uniques: string[]): import("rxjs").Observable<any[]>;
30
31
  /**
31
32
  * Removes templates in the store with the given uniques
32
33
  * @param {string[]} uniques
@@ -32,6 +32,9 @@ export class UmbTemplateStore extends UmbStoreBase {
32
32
  byId(id) {
33
33
  return this._data.getObservablePart((x) => x.find((y) => y.id === id));
34
34
  }
35
+ items(uniques) {
36
+ return this._data.getObservablePart((x) => x.filter((y) => uniques.includes(y.id)));
37
+ }
35
38
  /**
36
39
  * Removes templates in the store with the given uniques
37
40
  * @param {string[]} uniques
@@ -1,3 +1,4 @@
1
+ import { TEMPLATE_ENTITY_TYPE, TEMPLATE_ROOT_ENTITY_TYPE } from '../index.js';
1
2
  import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests.js';
2
3
  const tree = {
3
4
  type: 'tree',
@@ -13,7 +14,7 @@ const treeItem = {
13
14
  alias: 'Umb.TreeItem.Template',
14
15
  name: 'Template Tree Item',
15
16
  conditions: {
16
- entityTypes: ['template-root', 'template'],
17
+ entityTypes: [TEMPLATE_ROOT_ENTITY_TYPE, TEMPLATE_ENTITY_TYPE],
17
18
  },
18
19
  };
19
20
  export const manifests = [tree, treeItem];
@@ -1,17 +1,21 @@
1
1
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
2
- export declare class UmbTemplateWorkspaceEditElement extends UmbLitElement {
2
+ export declare class UmbTemplateWorkspaceEditorElement extends UmbLitElement {
3
3
  #private;
4
4
  private _name?;
5
5
  private _content?;
6
+ private _alias?;
7
+ private _ready?;
8
+ private _masterTemplateName?;
6
9
  private _codeEditor?;
10
+ private inputQuery$;
7
11
  constructor();
8
12
  private _modalContext?;
9
13
  render(): import("lit-html").TemplateResult<1>;
10
14
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
11
15
  }
12
- export default UmbTemplateWorkspaceEditElement;
16
+ export default UmbTemplateWorkspaceEditorElement;
13
17
  declare global {
14
18
  interface HTMLElementTagNameMap {
15
- 'umb-template-workspace-edit': UmbTemplateWorkspaceEditElement;
19
+ 'umb-template-workspace-editor': UmbTemplateWorkspaceEditorElement;
16
20
  }
17
21
  }
@@ -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
  }