@umbraco-cms/backoffice 14.0.0-abd22b1c → 14.0.0-ad074301

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 (384) hide show
  1. package/dist-cms/apps/app/app.element.js +0 -3
  2. package/dist-cms/assets/lang/da-dk.js +3 -0
  3. package/dist-cms/assets/lang/da-dk.ts +3 -0
  4. package/dist-cms/assets/lang/en-us.js +21 -18
  5. package/dist-cms/assets/lang/en-us.ts +21 -18
  6. package/dist-cms/custom-elements.json +297 -28
  7. package/dist-cms/external/backend-api/index.js +1 -1
  8. package/dist-cms/external/backend-api/src/index.d.ts +17 -1
  9. package/dist-cms/external/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.d.ts +1 -0
  10. package/dist-cms/external/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.d.ts +1 -0
  11. package/dist-cms/external/backend-api/src/models/CreateContentTypeRequestModelBaseCreateDocumentTypePropertyTypeRequestModelCreateDocumentTypePropertyTypeContainerRequestModel.d.ts +2 -0
  12. package/dist-cms/external/backend-api/src/models/CreateContentTypeRequestModelBaseCreateMediaTypePropertyTypeRequestModelCreateMediaTypePropertyTypeContainerRequestModel.d.ts +20 -0
  13. package/dist-cms/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.d.ts +2 -0
  14. package/dist-cms/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.d.ts +2 -0
  15. package/dist-cms/external/backend-api/src/models/CreateMediaTypeRequestModel.d.ts +2 -0
  16. package/dist-cms/external/backend-api/src/models/DeleteUserGroupsRequestModel.d.ts +3 -0
  17. package/dist-cms/external/backend-api/src/models/DeleteUsersRequestModel.d.ts +3 -0
  18. package/dist-cms/external/backend-api/src/models/ItemSortingRequestModel.d.ts +4 -0
  19. package/dist-cms/external/backend-api/src/models/ProblemDetailsBuilderModel.d.ts +1 -0
  20. package/dist-cms/external/backend-api/src/models/RelationResponseModel.d.ts +2 -2
  21. package/dist-cms/external/backend-api/src/models/ResetPasswordRequestModel.d.ts +3 -0
  22. package/dist-cms/external/backend-api/src/models/ResetPasswordTokenRequestModel.d.ts +4 -0
  23. package/dist-cms/external/backend-api/src/models/SortingRequestModel.d.ts +5 -0
  24. package/dist-cms/external/backend-api/src/models/UpdateContentTypeRequestModelBaseUpdateMediaTypePropertyTypeRequestModelUpdateMediaTypePropertyTypeContainerRequestModel.d.ts +18 -0
  25. package/dist-cms/external/backend-api/src/models/{UpdateFolderReponseModel.d.ts → UpdateFolderResponseModel.d.ts} +1 -1
  26. package/dist-cms/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.d.ts +2 -0
  27. package/dist-cms/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.d.ts +2 -0
  28. package/dist-cms/external/backend-api/src/models/UpdateMediaTypeRequestModel.d.ts +2 -0
  29. package/dist-cms/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.d.ts +4 -0
  30. package/dist-cms/external/backend-api/src/services/DataTypeResource.d.ts +2 -2
  31. package/dist-cms/external/backend-api/src/services/DocumentResource.d.ts +21 -21
  32. package/dist-cms/external/backend-api/src/services/DocumentTypeResource.d.ts +35 -3
  33. package/dist-cms/external/backend-api/src/services/MediaResource.d.ts +13 -5
  34. package/dist-cms/external/backend-api/src/services/MediaTypeResource.d.ts +56 -0
  35. package/dist-cms/external/backend-api/src/services/RelationResource.d.ts +1 -9
  36. package/dist-cms/external/backend-api/src/services/SecurityResource.d.ts +24 -0
  37. package/dist-cms/external/backend-api/src/services/UserGroupResource.d.ts +8 -0
  38. package/dist-cms/external/backend-api/src/services/UserResource.d.ts +8 -0
  39. package/dist-cms/external/router-slot/config.d.ts +8 -0
  40. package/dist-cms/external/router-slot/index.d.ts +4 -3
  41. package/dist-cms/external/router-slot/index.js +1 -1
  42. package/dist-cms/external/router-slot/model.d.ts +123 -0
  43. package/dist-cms/external/router-slot/router-slot.d.ts +111 -0
  44. package/dist-cms/external/router-slot/util/anchor.d.ts +5 -0
  45. package/dist-cms/external/router-slot/util/events.d.ts +26 -0
  46. package/dist-cms/external/router-slot/util/history.d.ts +32 -0
  47. package/dist-cms/external/router-slot/util/index.d.ts +6 -0
  48. package/dist-cms/external/router-slot/util/router.d.ts +72 -0
  49. package/dist-cms/external/router-slot/util/shadow.d.ts +15 -0
  50. package/dist-cms/external/router-slot/util/url.d.ts +78 -0
  51. package/dist-cms/external/router-slot/util.d.ts +1 -0
  52. package/dist-cms/external/tinymce/index.js +36 -36
  53. package/dist-cms/libs/observable-api/observer.js +2 -1
  54. package/dist-cms/mocks/browser-handlers.js +2 -2
  55. package/dist-cms/mocks/data/document.data.d.ts +6 -2
  56. package/dist-cms/mocks/data/document.data.js +54 -4
  57. package/dist-cms/mocks/data/entity.data.d.ts +1 -1
  58. package/dist-cms/mocks/data/entity.data.js +1 -11
  59. package/dist-cms/mocks/data/media.data.d.ts +2 -1
  60. package/dist-cms/mocks/data/media.data.js +11 -0
  61. package/dist-cms/mocks/data/user-group.data.d.ts +17 -0
  62. package/dist-cms/mocks/data/user-group.data.js +61 -0
  63. package/dist-cms/mocks/data/user.data.d.ts +15 -0
  64. package/dist-cms/mocks/data/{users.data.js → user.data.js} +27 -41
  65. package/dist-cms/mocks/handlers/dictionary.handlers.js +2 -2
  66. package/dist-cms/mocks/handlers/{document.handlers.js → document/document.handlers.js} +28 -40
  67. package/dist-cms/mocks/handlers/document/index.js +5 -0
  68. package/dist-cms/mocks/handlers/document/item.handlers.d.ts +1 -0
  69. package/dist-cms/mocks/handlers/document/item.handlers.js +13 -0
  70. package/dist-cms/mocks/handlers/document/recycle-bin.handlers.d.ts +1 -0
  71. package/dist-cms/mocks/handlers/document/recycle-bin.handlers.js +16 -0
  72. package/dist-cms/mocks/handlers/document/slug.d.ts +1 -0
  73. package/dist-cms/mocks/handlers/document/slug.js +1 -0
  74. package/dist-cms/mocks/handlers/document/tree.handlers.d.ts +1 -0
  75. package/dist-cms/mocks/handlers/document/tree.handlers.js +16 -0
  76. package/dist-cms/mocks/handlers/media.handlers.js +8 -0
  77. package/dist-cms/mocks/handlers/partial-views.handlers.js +3 -3
  78. package/dist-cms/mocks/handlers/user-group/collection.handlers.d.ts +1 -0
  79. package/dist-cms/mocks/handlers/user-group/collection.handlers.js +10 -0
  80. package/dist-cms/mocks/handlers/user-group/detail.handlers.d.ts +1 -0
  81. package/dist-cms/mocks/handlers/user-group/detail.handlers.js +37 -0
  82. package/dist-cms/mocks/handlers/user-group/index.d.ts +1 -0
  83. package/dist-cms/mocks/handlers/user-group/index.js +4 -0
  84. package/dist-cms/mocks/handlers/user-group/item.handlers.d.ts +1 -0
  85. package/dist-cms/mocks/handlers/user-group/item.handlers.js +13 -0
  86. package/dist-cms/mocks/handlers/user-group/slug.d.ts +1 -0
  87. package/dist-cms/mocks/handlers/user-group/slug.js +1 -0
  88. package/dist-cms/mocks/handlers/user.handlers.js +15 -1
  89. package/dist-cms/packages/core/components/input-list-base/input-list-base.js +1 -1
  90. package/dist-cms/packages/core/components/input-section/input-section.element.d.ts +2 -2
  91. package/dist-cms/packages/core/components/input-section/input-section.element.js +5 -5
  92. package/dist-cms/packages/core/entity-action/common/trash/trash.action.d.ts +1 -1
  93. package/dist-cms/packages/core/entity-action/common/trash/trash.action.js +1 -1
  94. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +3 -2
  95. package/dist-cms/packages/core/extension-registry/models/index.d.ts +5 -1
  96. package/dist-cms/packages/core/extension-registry/models/index.js +2 -0
  97. package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.d.ts +8 -0
  98. package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.js +1 -0
  99. package/dist-cms/packages/core/extension-registry/models/user-permission.model.d.ts +11 -0
  100. package/dist-cms/packages/core/extension-registry/models/user-permission.model.js +1 -0
  101. package/dist-cms/packages/core/localization/index.d.ts +3 -0
  102. package/dist-cms/packages/core/localization/index.js +3 -0
  103. package/dist-cms/packages/core/localization/localize-date.element.d.ts +28 -0
  104. package/dist-cms/packages/core/localization/localize-date.element.js +42 -0
  105. package/dist-cms/packages/core/localization/localize-number.element.d.ts +28 -0
  106. package/dist-cms/packages/core/localization/localize-number.element.js +42 -0
  107. package/dist-cms/packages/core/localization/localize-relative-time.element.d.ts +34 -0
  108. package/dist-cms/packages/core/localization/localize-relative-time.element.js +54 -0
  109. package/dist-cms/packages/core/localization/localize.element.js +1 -1
  110. package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.d.ts +19 -0
  111. package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.js +97 -0
  112. package/dist-cms/packages/core/modal/common/manifests.js +6 -0
  113. package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +5 -3
  114. package/dist-cms/packages/core/modal/token/create-document-modal.token.d.ts +8 -0
  115. package/dist-cms/packages/core/modal/token/create-document-modal.token.js +5 -0
  116. package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.d.ts +7 -0
  117. package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.js +4 -0
  118. package/dist-cms/packages/core/modal/token/index.d.ts +2 -1
  119. package/dist-cms/packages/core/modal/token/index.js +2 -1
  120. package/dist-cms/packages/core/picker-input/picker-input.context.js +1 -3
  121. package/dist-cms/packages/core/store/store-base.d.ts +18 -6
  122. package/dist-cms/packages/core/store/store-base.js +22 -6
  123. package/dist-cms/packages/core/tree/tree.context.js +3 -2
  124. package/dist-cms/packages/documents/document-types/manifests.js +0 -2
  125. package/dist-cms/packages/documents/document-types/repository/sources/document-type.server.data.d.ts +1 -1
  126. package/dist-cms/packages/documents/documents/components/index.d.ts +1 -0
  127. package/dist-cms/packages/documents/documents/components/index.js +1 -0
  128. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.d.ts +6 -0
  129. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +7 -0
  130. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.d.ts +7 -12
  131. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +51 -64
  132. package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.d.ts +23 -0
  133. package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.js +102 -0
  134. package/dist-cms/packages/documents/documents/entity-actions/create/create-document-modal.element.d.ts +17 -0
  135. package/dist-cms/packages/documents/{document-types/modals/allowed-document-types/allowed-document-types-modal.element.js → documents/entity-actions/create/create-document-modal.element.js} +29 -38
  136. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +0 -2
  137. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +7 -23
  138. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.d.ts +2 -0
  139. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +36 -0
  140. package/dist-cms/packages/documents/documents/entity-actions/manifests.d.ts +2 -2
  141. package/dist-cms/packages/documents/documents/entity-actions/manifests.js +15 -48
  142. package/dist-cms/packages/documents/documents/entity-actions/permissions.action.d.ts +2 -1
  143. package/dist-cms/packages/documents/documents/entity-actions/permissions.action.js +22 -2
  144. package/dist-cms/packages/documents/documents/index.d.ts +3 -0
  145. package/dist-cms/packages/documents/documents/index.js +3 -0
  146. package/dist-cms/packages/documents/documents/manifests.d.ts +17 -1
  147. package/dist-cms/packages/documents/documents/manifests.js +4 -0
  148. package/dist-cms/packages/documents/documents/menu-item/manifests.js +1 -1
  149. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.d.ts +18 -0
  150. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.js +24 -0
  151. package/dist-cms/packages/documents/documents/recycle-bin/index.d.ts +1 -0
  152. package/dist-cms/packages/documents/documents/recycle-bin/index.js +1 -0
  153. package/dist-cms/packages/documents/documents/recycle-bin/manifests.d.ts +17 -0
  154. package/dist-cms/packages/documents/documents/recycle-bin/manifests.js +5 -0
  155. package/dist-cms/packages/documents/documents/recycle-bin/menu-item/manifests.d.ts +1 -0
  156. package/dist-cms/packages/documents/documents/recycle-bin/menu-item/manifests.js +14 -0
  157. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.d.ts +28 -0
  158. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.js +56 -0
  159. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.d.ts +18 -0
  160. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.js +19 -0
  161. package/dist-cms/packages/documents/documents/recycle-bin/repository/index.d.ts +1 -0
  162. package/dist-cms/packages/documents/documents/recycle-bin/repository/index.js +1 -0
  163. package/dist-cms/packages/documents/documents/recycle-bin/repository/manifests.d.ts +4 -0
  164. package/dist-cms/packages/documents/documents/recycle-bin/repository/manifests.js +17 -0
  165. package/dist-cms/packages/documents/documents/recycle-bin/repository/sources/document-recycle-bin.tree.server.data.d.ts +29 -0
  166. package/dist-cms/packages/documents/documents/recycle-bin/repository/sources/document-recycle-bin.tree.server.data.js +49 -0
  167. package/dist-cms/packages/documents/documents/recycle-bin/tree/manifests.d.ts +2 -0
  168. package/dist-cms/packages/documents/documents/recycle-bin/tree/manifests.js +19 -0
  169. package/dist-cms/packages/documents/documents/repository/document-item.store.d.ts +20 -0
  170. package/dist-cms/packages/documents/documents/repository/document-item.store.js +23 -0
  171. package/dist-cms/packages/documents/documents/repository/document.repository.d.ts +10 -9
  172. package/dist-cms/packages/documents/documents/repository/document.repository.js +50 -28
  173. package/dist-cms/packages/documents/documents/repository/document.store.d.ts +0 -12
  174. package/dist-cms/packages/documents/documents/repository/document.store.js +0 -16
  175. package/dist-cms/packages/documents/documents/repository/manifests.d.ts +3 -2
  176. package/dist-cms/packages/documents/documents/repository/manifests.js +9 -1
  177. package/dist-cms/packages/documents/documents/repository/sources/document-item.server.data.d.ts +24 -0
  178. package/dist-cms/packages/documents/documents/repository/sources/document-item.server.data.js +31 -0
  179. package/dist-cms/packages/documents/documents/repository/sources/document.server.data.d.ts +9 -21
  180. package/dist-cms/packages/documents/documents/repository/sources/document.server.data.js +33 -62
  181. package/dist-cms/packages/documents/documents/user-permissions/index.d.ts +1 -0
  182. package/dist-cms/packages/documents/documents/user-permissions/index.js +1 -0
  183. package/dist-cms/packages/documents/documents/user-permissions/manifests.d.ts +19 -0
  184. package/dist-cms/packages/documents/documents/user-permissions/manifests.js +196 -0
  185. package/dist-cms/packages/documents/documents/workspace/manifests.js +6 -4
  186. package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +29 -28
  187. package/dist-cms/packages/documents/manifests.d.ts +17 -1
  188. package/dist-cms/packages/media/manifests.d.ts +2 -1
  189. package/dist-cms/packages/media/manifests.js +1 -0
  190. package/dist-cms/packages/media/media/components/index.d.ts +1 -0
  191. package/dist-cms/packages/media/media/components/index.js +1 -0
  192. package/dist-cms/packages/media/media/components/input-media/input-media.context.d.ts +6 -0
  193. package/dist-cms/packages/media/media/components/input-media/input-media.context.js +7 -0
  194. package/dist-cms/packages/media/media/components/input-media/input-media.element.d.ts +7 -15
  195. package/dist-cms/packages/media/media/components/input-media/input-media.element.js +50 -72
  196. package/dist-cms/packages/media/media/index.d.ts +2 -0
  197. package/dist-cms/packages/media/media/index.js +1 -1
  198. package/dist-cms/packages/media/media/manifests.d.ts +1 -1
  199. package/dist-cms/packages/media/media/manifests.js +2 -0
  200. package/dist-cms/packages/media/media/repository/manifests.d.ts +3 -2
  201. package/dist-cms/packages/media/media/repository/manifests.js +9 -1
  202. package/dist-cms/packages/media/media/repository/media-item.store.d.ts +20 -0
  203. package/dist-cms/packages/media/media/repository/media-item.store.js +23 -0
  204. package/dist-cms/packages/media/media/repository/media.repository.d.ts +6 -0
  205. package/dist-cms/packages/media/media/repository/media.repository.js +22 -0
  206. package/dist-cms/packages/media/media/repository/sources/media-item.server.data.d.ts +24 -0
  207. package/dist-cms/packages/media/media/repository/sources/media-item.server.data.js +31 -0
  208. package/dist-cms/packages/media/media/user-permissions/index.d.ts +1 -0
  209. package/dist-cms/packages/media/media/user-permissions/index.js +1 -0
  210. package/dist-cms/packages/media/media/user-permissions/manifests.d.ts +4 -0
  211. package/dist-cms/packages/media/media/user-permissions/manifests.js +27 -0
  212. package/dist-cms/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.js +17 -17
  213. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.d.ts +1 -1
  214. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.js +1 -1
  215. package/dist-cms/packages/users/current-user/conditions/index.d.ts +1 -0
  216. package/dist-cms/packages/users/current-user/conditions/index.js +1 -0
  217. package/dist-cms/packages/users/current-user/conditions/user-permission.condition.d.ts +18 -0
  218. package/dist-cms/packages/users/current-user/conditions/user-permission.condition.js +23 -0
  219. package/dist-cms/packages/users/current-user/index.d.ts +1 -0
  220. package/dist-cms/packages/users/current-user/index.js +1 -0
  221. package/dist-cms/packages/users/current-user/manifests.js +7 -1
  222. package/dist-cms/packages/users/current-user/modals/current-user/current-user-modal.element.js +7 -7
  223. package/dist-cms/packages/users/index.d.ts +4 -2
  224. package/dist-cms/packages/users/index.js +4 -2
  225. package/dist-cms/packages/users/manifests.d.ts +2 -0
  226. package/dist-cms/packages/users/manifests.js +3 -0
  227. package/dist-cms/packages/users/user-groups/collection/user-group-collection-header.element.js +2 -2
  228. package/dist-cms/packages/users/user-groups/collection/user-group-collection-view.element.js +6 -6
  229. package/dist-cms/packages/users/user-groups/components/index.d.ts +1 -0
  230. package/dist-cms/packages/users/user-groups/components/index.js +1 -0
  231. package/dist-cms/packages/users/user-groups/entity-actions/manifests.d.ts +2 -0
  232. package/dist-cms/packages/users/user-groups/entity-actions/manifests.js +19 -0
  233. package/dist-cms/packages/users/user-groups/index.d.ts +2 -0
  234. package/dist-cms/packages/users/user-groups/index.js +2 -0
  235. package/dist-cms/packages/users/user-groups/manifests.d.ts +1 -1
  236. package/dist-cms/packages/users/user-groups/manifests.js +2 -0
  237. package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.d.ts +16 -0
  238. package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.js +69 -0
  239. package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.d.ts +14 -0
  240. package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.js +31 -0
  241. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.d.ts +2 -0
  242. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.js +57 -56
  243. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.d.ts +12 -0
  244. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.js +20 -0
  245. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +1 -1
  246. package/dist-cms/packages/users/users/collection/user-collection-header.element.js +18 -11
  247. package/dist-cms/packages/users/users/collection/views/grid/user-collection-grid-view.element.js +6 -6
  248. package/dist-cms/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.js +3 -3
  249. package/dist-cms/packages/users/users/components/index.d.ts +3 -0
  250. package/dist-cms/packages/users/users/components/index.js +3 -0
  251. package/dist-cms/packages/users/users/components/user-input/user-input.element.js +2 -2
  252. package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.d.ts +15 -0
  253. package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.js +66 -0
  254. package/dist-cms/packages/users/users/index.d.ts +2 -0
  255. package/dist-cms/packages/users/users/index.js +2 -0
  256. package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.d.ts +3 -1
  257. package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.js +20 -25
  258. package/dist-cms/packages/users/users/repository/index.d.ts +1 -0
  259. package/dist-cms/packages/users/users/repository/index.js +1 -0
  260. package/dist-cms/packages/users/users/repository/user.repository.js +1 -1
  261. package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.js +73 -56
  262. package/dist-cms/packages/users/utils.d.ts +5 -2
  263. package/dist-cms/packages/users/utils.js +14 -14
  264. package/dist-cms/shared/auth/auth-flow.d.ts +0 -4
  265. package/dist-cms/shared/auth/auth-flow.js +6 -25
  266. package/dist-cms/shared/repository/data-source/folder-data-source.interface.d.ts +2 -2
  267. package/dist-cms/shared/repository/folder-repository.interface.d.ts +2 -2
  268. package/dist-cms/shared/repository/repository-items.manager.js +5 -0
  269. package/dist-cms/shared/router/index.d.ts +1 -1
  270. package/dist-cms/shared/router/index.js +1 -1
  271. package/dist-cms/shared/umb-events/index.d.ts +1 -0
  272. package/dist-cms/shared/umb-events/index.js +1 -0
  273. package/dist-cms/shared/umb-events/selected.event.d.ts +3 -0
  274. package/dist-cms/shared/umb-events/selected.event.js +6 -0
  275. package/dist-cms/tinymce/CHANGELOG.md +48 -0
  276. package/dist-cms/tinymce/composer.json +1 -1
  277. package/dist-cms/tinymce/models/dom/model.js +1 -1
  278. package/dist-cms/tinymce/models/dom/model.min.js +1 -1
  279. package/dist-cms/tinymce/package.json +1 -1
  280. package/dist-cms/tinymce/plugins/accordion/plugin.js +1 -1
  281. package/dist-cms/tinymce/plugins/accordion/plugin.min.js +1 -1
  282. package/dist-cms/tinymce/plugins/advlist/plugin.js +1 -1
  283. package/dist-cms/tinymce/plugins/advlist/plugin.min.js +1 -1
  284. package/dist-cms/tinymce/plugins/anchor/plugin.js +1 -1
  285. package/dist-cms/tinymce/plugins/anchor/plugin.min.js +1 -1
  286. package/dist-cms/tinymce/plugins/autolink/plugin.js +1 -1
  287. package/dist-cms/tinymce/plugins/autolink/plugin.min.js +1 -1
  288. package/dist-cms/tinymce/plugins/autoresize/plugin.js +1 -1
  289. package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +1 -1
  290. package/dist-cms/tinymce/plugins/autosave/plugin.js +1 -1
  291. package/dist-cms/tinymce/plugins/autosave/plugin.min.js +1 -1
  292. package/dist-cms/tinymce/plugins/charmap/plugin.js +1 -1
  293. package/dist-cms/tinymce/plugins/charmap/plugin.min.js +1 -1
  294. package/dist-cms/tinymce/plugins/code/plugin.js +1 -1
  295. package/dist-cms/tinymce/plugins/code/plugin.min.js +1 -1
  296. package/dist-cms/tinymce/plugins/codesample/plugin.js +1 -1
  297. package/dist-cms/tinymce/plugins/codesample/plugin.min.js +1 -1
  298. package/dist-cms/tinymce/plugins/directionality/plugin.js +1 -1
  299. package/dist-cms/tinymce/plugins/directionality/plugin.min.js +1 -1
  300. package/dist-cms/tinymce/plugins/emoticons/plugin.js +1 -1
  301. package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +1 -1
  302. package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1 -1
  303. package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  304. package/dist-cms/tinymce/plugins/help/plugin.js +5 -5
  305. package/dist-cms/tinymce/plugins/help/plugin.min.js +2 -2
  306. package/dist-cms/tinymce/plugins/image/plugin.js +1 -1
  307. package/dist-cms/tinymce/plugins/image/plugin.min.js +1 -1
  308. package/dist-cms/tinymce/plugins/importcss/plugin.js +1 -1
  309. package/dist-cms/tinymce/plugins/importcss/plugin.min.js +1 -1
  310. package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +1 -1
  311. package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  312. package/dist-cms/tinymce/plugins/link/plugin.js +1 -1
  313. package/dist-cms/tinymce/plugins/link/plugin.min.js +1 -1
  314. package/dist-cms/tinymce/plugins/lists/plugin.js +63 -8
  315. package/dist-cms/tinymce/plugins/lists/plugin.min.js +2 -2
  316. package/dist-cms/tinymce/plugins/media/plugin.js +3 -23
  317. package/dist-cms/tinymce/plugins/media/plugin.min.js +2 -2
  318. package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +1 -1
  319. package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  320. package/dist-cms/tinymce/plugins/pagebreak/plugin.js +1 -1
  321. package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +1 -1
  322. package/dist-cms/tinymce/plugins/preview/plugin.js +1 -1
  323. package/dist-cms/tinymce/plugins/preview/plugin.min.js +1 -1
  324. package/dist-cms/tinymce/plugins/quickbars/plugin.js +13 -4
  325. package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +2 -2
  326. package/dist-cms/tinymce/plugins/save/plugin.js +1 -1
  327. package/dist-cms/tinymce/plugins/save/plugin.min.js +1 -1
  328. package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1 -1
  329. package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  330. package/dist-cms/tinymce/plugins/table/plugin.js +2 -2
  331. package/dist-cms/tinymce/plugins/table/plugin.min.js +2 -2
  332. package/dist-cms/tinymce/plugins/template/plugin.js +1 -1
  333. package/dist-cms/tinymce/plugins/template/plugin.min.js +1 -1
  334. package/dist-cms/tinymce/plugins/visualblocks/plugin.js +1 -1
  335. package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  336. package/dist-cms/tinymce/plugins/visualchars/plugin.js +1 -1
  337. package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +1 -1
  338. package/dist-cms/tinymce/plugins/wordcount/plugin.js +1 -1
  339. package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +1 -1
  340. package/dist-cms/tinymce/skins/ui/oxide/content.css +1 -1
  341. package/dist-cms/tinymce/skins/ui/oxide/content.inline.css +1 -1
  342. package/dist-cms/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  343. package/dist-cms/tinymce/skins/ui/oxide/content.min.css +1 -1
  344. package/dist-cms/tinymce/skins/ui/oxide/skin.css +51 -11
  345. package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -1
  346. package/dist-cms/tinymce/skins/ui/oxide-dark/content.css +1 -1
  347. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
  348. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  349. package/dist-cms/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  350. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +54 -14
  351. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  352. package/dist-cms/tinymce/skins/ui/tinymce-5/content.css +1 -1
  353. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.css +1 -1
  354. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  355. package/dist-cms/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  356. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +51 -11
  357. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  358. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.css +1 -1
  359. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.css +1 -1
  360. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  361. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  362. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +51 -11
  363. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  364. package/dist-cms/tinymce/themes/silver/theme.js +158 -55
  365. package/dist-cms/tinymce/themes/silver/theme.min.js +2 -2
  366. package/dist-cms/tinymce/tinymce.d.ts +4 -6
  367. package/dist-cms/tinymce/tinymce.js +911 -691
  368. package/dist-cms/tinymce/tinymce.min.js +2 -2
  369. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  370. package/dist-cms/umbraco-package-schema.json +154 -0
  371. package/dist-cms/vscode-html-custom-data.json +173 -24
  372. package/package.json +3 -4
  373. package/dist-cms/mocks/data/user-groups.data.d.ts +0 -9
  374. package/dist-cms/mocks/data/user-groups.data.js +0 -21
  375. package/dist-cms/mocks/data/users.data.d.ts +0 -16
  376. package/dist-cms/mocks/handlers/user-group.handlers.js +0 -17
  377. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.d.ts +0 -9
  378. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.js +0 -5
  379. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.d.ts +0 -19
  380. package/dist-cms/packages/documents/document-types/modals/manifests.d.ts +0 -2
  381. package/dist-cms/packages/documents/document-types/modals/manifests.js +0 -9
  382. package/router-slot-2.3.0.tgz +0 -0
  383. /package/dist-cms/mocks/handlers/{document.handlers.d.ts → document/document.handlers.d.ts} +0 -0
  384. /package/dist-cms/mocks/handlers/{user-group.handlers.d.ts → document/index.d.ts} +0 -0
@@ -34,7 +34,8 @@ export class UmbObserver {
34
34
  });
35
35
  }
36
36
  hostConnected() {
37
- if (this.#subscription.closed) {
37
+ // Notice: This will not re-subscribe if this controller was destroyed. Only if the subscription was closed.
38
+ if (this.#subscription?.closed) {
38
39
  this.#subscription = this.#source.subscribe(this.#callback);
39
40
  }
40
41
  }
@@ -8,12 +8,12 @@ import * as serverHandlers from './handlers/server.handlers.js';
8
8
  import { handlers as upgradeHandlers } from './handlers/upgrade.handlers.js';
9
9
  import { handlers as userHandlers } from './handlers/user.handlers.js';
10
10
  import { handlers as telemetryHandlers } from './handlers/telemetry.handlers.js';
11
- import { handlers as userGroupsHandlers } from './handlers/user-group.handlers.js';
11
+ import { handlers as userGroupsHandlers } from './handlers/user-group/index.js';
12
12
  import { handlers as examineManagementHandlers } from './handlers/examine-management.handlers.js';
13
13
  import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers.js';
14
14
  import { handlers as healthCheckHandlers } from './handlers/health-check.handlers.js';
15
15
  import { handlers as profilingHandlers } from './handlers/performance-profiling.handlers.js';
16
- import { handlers as documentHandlers } from './handlers/document.handlers.js';
16
+ import { handlers as documentHandlers } from './handlers/document/index.js';
17
17
  import { handlers as mediaHandlers } from './handlers/media.handlers.js';
18
18
  import { handlers as dictionaryHandlers } from './handlers/dictionary.handlers.js';
19
19
  import { handlers as mediaTypeHandlers } from './handlers/media-type.handlers.js';
@@ -1,5 +1,5 @@
1
1
  import { UmbEntityData } from './entity.data.js';
2
- import { DocumentResponseModel, DocumentTreeItemResponseModel, PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel } from '../../external/backend-api/index.js';
2
+ import { DocumentItemResponseModel, DocumentResponseModel, DocumentTreeItemResponseModel, PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel, PagedRecycleBinItemResponseModel } from '../../external/backend-api/index.js';
3
3
  export declare const data: Array<DocumentResponseModel>;
4
4
  export declare const treeData: Array<DocumentTreeItemResponseModel>;
5
5
  declare class UmbDocumentData extends UmbEntityData<DocumentResponseModel> {
@@ -7,11 +7,15 @@ declare class UmbDocumentData extends UmbEntityData<DocumentResponseModel> {
7
7
  constructor();
8
8
  insert(item: DocumentResponseModel): DocumentResponseModel;
9
9
  update(id: string, item: DocumentResponseModel): DocumentResponseModel;
10
+ trash(ids: string[]): DocumentResponseModel[];
10
11
  getTreeRoot(): PagedDocumentTreeItemResponseModel;
11
- getTreeItemChildren(id: string): PagedDocumentTreeItemResponseModel;
12
+ getTreeItemChildrenOf(id: string): PagedDocumentTreeItemResponseModel;
12
13
  getTreeItem(ids: Array<string>): Array<DocumentTreeItemResponseModel>;
14
+ getItems(ids: Array<string>): Array<DocumentItemResponseModel>;
13
15
  getDocumentByIdAllowedDocumentTypes(id: string): PagedDocumentTypeResponseModel;
14
16
  getAllowedDocumentTypesAtRoot(): PagedDocumentTypeResponseModel;
17
+ getRecycleBinRoot(): PagedRecycleBinItemResponseModel;
18
+ getRecycleBinChildrenOf(parentId: string): PagedRecycleBinItemResponseModel;
15
19
  }
16
20
  export declare const umbDocumentData: UmbDocumentData;
17
21
  export {};
@@ -460,7 +460,7 @@ export const data = [
460
460
  publishDate: '2023-02-06T15:32:24.957009',
461
461
  culture: 'en-us',
462
462
  segment: null,
463
- name: 'Blog post B',
463
+ name: 'Simple Document',
464
464
  createDate: '2023-02-06T15:32:05.350038',
465
465
  updateDate: '2023-02-06T15:32:24.957009',
466
466
  },
@@ -538,7 +538,29 @@ export const treeData = [
538
538
  isEdited: false,
539
539
  isTrashed: false,
540
540
  },
541
+ {
542
+ name: 'Trashed',
543
+ type: 'document',
544
+ icon: 'document',
545
+ hasChildren: false,
546
+ id: 'trashed-document-id',
547
+ isContainer: false,
548
+ parentId: null,
549
+ noAccess: false,
550
+ isProtected: false,
551
+ isPublished: false,
552
+ isEdited: false,
553
+ isTrashed: true,
554
+ },
541
555
  ];
556
+ const createDocumentItem = (item) => {
557
+ return {
558
+ id: item.id,
559
+ name: item.variants?.[0].name,
560
+ contentTypeId: item.contentTypeId,
561
+ };
562
+ };
563
+ // TODO: look into making a combined document model so we don't need to maintain two+ data sets.
542
564
  // Temp mocked database
543
565
  // TODO: all properties are optional in the server schema. I don't think this is correct.
544
566
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -566,14 +588,26 @@ class UmbDocumentData extends UmbEntityData {
566
588
  });
567
589
  return result;
568
590
  }
591
+ trash(ids) {
592
+ const result = super.trash(ids);
593
+ this.treeData = this.treeData.map((x) => {
594
+ if (x.id && ids.includes(x.id)) {
595
+ return { ...x, isTrashed: true };
596
+ }
597
+ else {
598
+ return x;
599
+ }
600
+ });
601
+ return result;
602
+ }
569
603
  getTreeRoot() {
570
- const items = this.treeData.filter((item) => item.parentId === null);
604
+ const items = this.treeData.filter((item) => item.parentId === null && item.isTrashed === false);
571
605
  const treeItems = items.map((item) => item);
572
606
  const total = items.length;
573
607
  return { items: treeItems, total };
574
608
  }
575
- getTreeItemChildren(id) {
576
- const items = this.treeData.filter((item) => item.parentId === id);
609
+ getTreeItemChildrenOf(id) {
610
+ const items = this.treeData.filter((item) => item.parentId === id && item.isTrashed === false);
577
611
  const treeItems = items.map((item) => item);
578
612
  const total = items.length;
579
613
  return { items: treeItems, total };
@@ -582,6 +616,10 @@ class UmbDocumentData extends UmbEntityData {
582
616
  const items = this.treeData.filter((item) => ids.includes(item.id ?? ''));
583
617
  return items.map((item) => item);
584
618
  }
619
+ getItems(ids) {
620
+ const items = this.data.filter((item) => ids.includes(item.id ?? ''));
621
+ return items.map((item) => createDocumentItem(item));
622
+ }
585
623
  getDocumentByIdAllowedDocumentTypes(id) {
586
624
  const item = this.getById(id);
587
625
  if (item?.contentTypeId) {
@@ -599,5 +637,17 @@ class UmbDocumentData extends UmbEntityData {
599
637
  const total = items?.length;
600
638
  return { items, total };
601
639
  }
640
+ getRecycleBinRoot() {
641
+ const items = this.treeData.filter((item) => item.parentId === null && item.isTrashed === true);
642
+ const treeItems = items.map((item) => item);
643
+ const total = items.length;
644
+ return { items: treeItems, total };
645
+ }
646
+ getRecycleBinChildrenOf(parentId) {
647
+ const items = this.treeData.filter((item) => item.parentId === parentId && item.isTrashed === true);
648
+ const treeItems = items.map((item) => item);
649
+ const total = items.length;
650
+ return { items: treeItems, total };
651
+ }
602
652
  }
603
653
  export const umbDocumentData = new UmbDocumentData();
@@ -8,6 +8,6 @@ export declare class UmbEntityData<T extends UmbEntityBase> extends UmbData<T> {
8
8
  insert(item: T): T;
9
9
  save(id: string, saveItem: T): T;
10
10
  trash(ids: Array<string>): T[];
11
- delete(ids: Array<string>): (string | undefined)[];
11
+ delete(ids: Array<string>): void;
12
12
  updateData(updateItem: T): void;
13
13
  }
@@ -51,8 +51,6 @@ export class UmbEntityData extends UmbData {
51
51
  const item = this.getById(id);
52
52
  if (!item)
53
53
  return;
54
- // TODO: how do we handle trashed items?
55
- // TODO: remove ignore when we know how to handle trashed items.
56
54
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
57
55
  // @ts-ignore
58
56
  item.isTrashed = true;
@@ -62,19 +60,11 @@ export class UmbEntityData extends UmbData {
62
60
  return trashedItems;
63
61
  }
64
62
  delete(ids) {
65
- const deletedKeys = this.data
66
- .filter((item) => {
67
- if (!item.id)
68
- throw new Error('Item has no id');
69
- ids.includes(item.id);
70
- })
71
- .map((item) => item.id);
72
63
  this.data = this.data.filter((item) => {
73
64
  if (!item.id)
74
65
  throw new Error('Item has no id');
75
- ids.indexOf(item.id) === -1;
66
+ return !ids.includes(item.id);
76
67
  });
77
- return deletedKeys;
78
68
  }
79
69
  updateData(updateItem) {
80
70
  const itemIndex = this.data.findIndex((item) => item.id === updateItem.id);
@@ -1,10 +1,11 @@
1
1
  import type { MediaDetails } from '../../packages/media/media/index.js';
2
2
  import { UmbEntityData } from './entity.data.js';
3
- import { ContentTreeItemResponseModel, PagedMediaTreeItemResponseModel } from '../../external/backend-api/index.js';
3
+ import { ContentTreeItemResponseModel, MediaItemResponseModel, PagedMediaTreeItemResponseModel } from '../../external/backend-api/index.js';
4
4
  export declare const data: Array<MediaDetails>;
5
5
  declare class UmbMediaData extends UmbEntityData<MediaDetails> {
6
6
  #private;
7
7
  constructor();
8
+ getItems(ids: Array<string>): Array<MediaItemResponseModel>;
8
9
  getTreeRoot(): PagedMediaTreeItemResponseModel;
9
10
  getTreeItemChildren(id: string): PagedMediaTreeItemResponseModel;
10
11
  getTreeItem(ids: Array<string>): Array<ContentTreeItemResponseModel>;
@@ -179,6 +179,13 @@ export const data = [
179
179
  variants: [],
180
180
  },
181
181
  ];
182
+ const createMediaItem = (item) => {
183
+ return {
184
+ id: item.id,
185
+ name: item.name,
186
+ icon: item.icon,
187
+ };
188
+ };
182
189
  // Temp mocked database
183
190
  // TODO: all properties are optional in the server schema. I don't think this is correct.
184
191
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -188,6 +195,10 @@ class UmbMediaData extends UmbEntityData {
188
195
  constructor() {
189
196
  super(data);
190
197
  }
198
+ getItems(ids) {
199
+ const items = this.data.filter((item) => ids.includes(item.id ?? ''));
200
+ return items.map((item) => createMediaItem(item));
201
+ }
191
202
  getTreeRoot() {
192
203
  const items = this.data.filter((item) => item.parentId === null);
193
204
  const treeItems = items.map((item) => createContentTreeItem(item));
@@ -0,0 +1,17 @@
1
+ import { UmbEntityData } from './entity.data.js';
2
+ import { PagedUserGroupResponseModel, UserGroupItemResponseModel, UserGroupResponseModel } from '../../external/backend-api/index.js';
3
+ declare class UmbUserGroupData extends UmbEntityData<UserGroupResponseModel> {
4
+ constructor(data: Array<UserGroupResponseModel>);
5
+ getAll(): PagedUserGroupResponseModel;
6
+ getItems(ids: Array<string>): Array<UserGroupItemResponseModel>;
7
+ /**
8
+ * Returns a list of permissions for the given user group ids
9
+ * @param {string[]} userGroupIds
10
+ * @return {*} {string[]}
11
+ * @memberof UmbUserGroupData
12
+ */
13
+ getPermissions(userGroupIds: string[]): string[];
14
+ }
15
+ export declare const data: Array<UserGroupResponseModel>;
16
+ export declare const umbUserGroupData: UmbUserGroupData;
17
+ export {};
@@ -0,0 +1,61 @@
1
+ import { UmbEntityData } from './entity.data.js';
2
+ import { UMB_USER_PERMISSION_DOCUMENT_CREATE, UMB_USER_PERMISSION_DOCUMENT_DELETE, UMB_USER_PERMISSION_DOCUMENT_READ, } from '../../packages/documents/documents/index.js';
3
+ const createUserGroupItem = (item) => {
4
+ return {
5
+ name: item.name,
6
+ id: item.id,
7
+ icon: item.icon,
8
+ };
9
+ };
10
+ // Temp mocked database
11
+ class UmbUserGroupData extends UmbEntityData {
12
+ constructor(data) {
13
+ super(data);
14
+ }
15
+ getAll() {
16
+ return {
17
+ total: this.data.length,
18
+ items: this.data,
19
+ };
20
+ }
21
+ getItems(ids) {
22
+ const items = this.data.filter((item) => ids.includes(item.id ?? ''));
23
+ return items.map((item) => createUserGroupItem(item));
24
+ }
25
+ /**
26
+ * Returns a list of permissions for the given user group ids
27
+ * @param {string[]} userGroupIds
28
+ * @return {*} {string[]}
29
+ * @memberof UmbUserGroupData
30
+ */
31
+ getPermissions(userGroupIds) {
32
+ const permissions = this.data
33
+ .filter((userGroup) => userGroupIds.includes(userGroup.id || ''))
34
+ .map((userGroup) => (userGroup.permissions?.length ? userGroup.permissions : []))
35
+ .flat();
36
+ // Remove duplicates
37
+ return [...new Set(permissions)];
38
+ }
39
+ }
40
+ export const data = [
41
+ {
42
+ id: 'c630d49e-4e7b-42ea-b2bc-edc0edacb6b1',
43
+ name: 'Administrators',
44
+ icon: 'umb:medal',
45
+ documentStartNodeId: 'all-property-editors-document-id',
46
+ permissions: [UMB_USER_PERMISSION_DOCUMENT_CREATE, UMB_USER_PERMISSION_DOCUMENT_DELETE],
47
+ },
48
+ {
49
+ id: '9d24dc47-a4bf-427f-8a4a-b900f03b8a12',
50
+ name: 'User Group 1',
51
+ icon: 'umb:bell',
52
+ permissions: [UMB_USER_PERMISSION_DOCUMENT_DELETE],
53
+ },
54
+ {
55
+ id: 'f4626511-b0d7-4ab1-aebc-a87871a5dcfa',
56
+ name: 'User Group 2',
57
+ icon: 'umb:ball',
58
+ permissions: [UMB_USER_PERMISSION_DOCUMENT_READ],
59
+ },
60
+ ];
61
+ export const umbUserGroupData = new UmbUserGroupData(data);
@@ -0,0 +1,15 @@
1
+ import { UmbEntityData } from './entity.data.js';
2
+ import { UmbLoggedInUser } from '../../shared/auth/index.js';
3
+ import { PagedUserResponseModel, UpdateUserGroupsOnUserRequestModel, UserItemResponseModel, UserResponseModel } from '../../external/backend-api/index.js';
4
+ declare class UmbUserData extends UmbEntityData<UserResponseModel> {
5
+ constructor(data: UserResponseModel[]);
6
+ getAll(): PagedUserResponseModel;
7
+ getItems(ids: Array<string>): Array<UserItemResponseModel>;
8
+ setUserGroups(data: UpdateUserGroupsOnUserRequestModel): void;
9
+ getCurrentUser(): UmbLoggedInUser;
10
+ }
11
+ export declare const data: Array<UserResponseModel & {
12
+ type: string;
13
+ }>;
14
+ export declare const umbUsersData: UmbUserData;
15
+ export {};
@@ -1,7 +1,14 @@
1
- import { UmbData } from './data.js';
2
- import { UserStateModel } from '../../external/backend-api/index.js';
1
+ import { UmbEntityData } from './entity.data.js';
2
+ import { umbUserGroupData } from './user-group.data.js';
3
+ import { UserStateModel, } from '../../external/backend-api/index.js';
4
+ const createUserItem = (item) => {
5
+ return {
6
+ name: item.name,
7
+ id: item.id,
8
+ };
9
+ };
3
10
  // Temp mocked database
4
- class UmbUsersData extends UmbData {
11
+ class UmbUserData extends UmbEntityData {
5
12
  constructor(data) {
6
13
  super(data);
7
14
  }
@@ -11,11 +18,19 @@ class UmbUsersData extends UmbData {
11
18
  items: this.data,
12
19
  };
13
20
  }
14
- getById(id) {
15
- return this.data.find((user) => user.id === id);
21
+ getItems(ids) {
22
+ const items = this.data.filter((item) => ids.includes(item.id ?? ''));
23
+ return items.map((item) => createUserItem(item));
24
+ }
25
+ setUserGroups(data) {
26
+ const users = this.data.filter((user) => data.userIds?.includes(user.id ?? ''));
27
+ users.forEach((user) => {
28
+ user.userGroupIds = data.userGroupIds;
29
+ });
16
30
  }
17
31
  getCurrentUser() {
18
32
  const firstUser = this.data[0];
33
+ const permissions = firstUser.userGroupIds?.length ? umbUserGroupData.getPermissions(firstUser.userGroupIds) : [];
19
34
  return {
20
35
  id: firstUser.id,
21
36
  name: firstUser.name,
@@ -27,42 +42,9 @@ class UmbUsersData extends UmbData {
27
42
  languages: [],
28
43
  contentStartNodeIds: firstUser.contentStartNodeIds,
29
44
  mediaStartNodeIds: firstUser.mediaStartNodeIds,
30
- permissions: [],
45
+ permissions,
31
46
  };
32
47
  }
33
- save(id, saveItem) {
34
- const foundIndex = this.data.findIndex((item) => item.id === id);
35
- if (foundIndex !== -1) {
36
- // update
37
- this.data[foundIndex] = saveItem;
38
- this.updateData(saveItem);
39
- }
40
- else {
41
- // new
42
- this.data.push(saveItem);
43
- }
44
- return saveItem;
45
- }
46
- updateData(updateItem) {
47
- const itemIndex = this.data.findIndex((item) => item.id === updateItem.id);
48
- const item = this.data[itemIndex];
49
- console.log('updateData', updateItem, itemIndex, item);
50
- if (!item)
51
- return;
52
- const itemKeys = Object.keys(item);
53
- const newItem = {};
54
- for (const [key] of Object.entries(updateItem)) {
55
- if (itemKeys.indexOf(key) !== -1) {
56
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
57
- // @ts-ignore
58
- newItem[key] = updateItem[key];
59
- }
60
- }
61
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
62
- // @ts-ignore
63
- this.data[itemIndex] = newItem;
64
- console.log('updateData', this.data[itemIndex]);
65
- }
66
48
  }
67
49
  export const data = [
68
50
  {
@@ -80,7 +62,11 @@ export const data = [
80
62
  updateDate: '2/10/2022',
81
63
  createDate: '3/13/2022',
82
64
  failedLoginAttempts: 946,
83
- userGroupIds: ['c630d49e-4e7b-42ea-b2bc-edc0edacb6b1'],
65
+ userGroupIds: [
66
+ 'c630d49e-4e7b-42ea-b2bc-edc0edacb6b1',
67
+ '9d24dc47-a4bf-427f-8a4a-b900f03b8a12',
68
+ 'f4626511-b0d7-4ab1-aebc-a87871a5dcfa',
69
+ ],
84
70
  },
85
71
  {
86
72
  id: '82e11d3d-b91d-43c9-9071-34d28e62e81d',
@@ -151,4 +137,4 @@ export const data = [
151
137
  userGroupIds: ['c630d49e-4e7b-42ea-b2bc-edc0edacb6b1'],
152
138
  },
153
139
  ];
154
- export const umbUsersData = new UmbUsersData(data);
140
+ export const umbUsersData = new UmbUserData(data);
@@ -125,8 +125,8 @@ export const handlers = [
125
125
  const id = req.params.id;
126
126
  if (!id)
127
127
  return;
128
- const deletedKeys = umbDictionaryData.delete([id]);
129
- return res(ctx.status(200), ctx.json(deletedKeys));
128
+ umbDictionaryData.delete([id]);
129
+ return res(ctx.status(200));
130
130
  }),
131
131
  // TODO => handle properly, querystring breaks handler
132
132
  rest.get('/umbraco/management/api/v1/dictionary/:id/export', (req, res, ctx) => {
@@ -1,38 +1,37 @@
1
1
  const { rest } = window.MockServiceWorker;
2
- import { umbDocumentData } from '../data/document.data.js';
3
- import { umbracoPath } from '../../shared/utils/index.js';
2
+ import { umbDocumentData } from '../../data/document.data.js';
3
+ import { umbracoPath } from '../../../shared/utils/index.js';
4
4
  // TODO: add schema
5
5
  export const handlers = [
6
- rest.post(umbracoPath('/document/trash'), async (req, res, ctx) => {
7
- console.warn('Please move to schema');
8
- const ids = await req.json();
9
- const trashed = umbDocumentData.trash(ids);
10
- return res(ctx.status(200), ctx.json(trashed));
11
- }),
12
- rest.get(umbracoPath('/tree/document/root'), (req, res, ctx) => {
13
- const response = umbDocumentData.getTreeRoot();
6
+ rest.get(umbracoPath('/document/root/allowed-document-types'), (req, res, ctx) => {
7
+ const response = umbDocumentData.getAllowedDocumentTypesAtRoot();
14
8
  return res(ctx.status(200), ctx.json(response));
15
9
  }),
16
- rest.get(umbracoPath('/tree/document/children'), (req, res, ctx) => {
17
- const parentId = req.url.searchParams.get('parentId');
18
- if (!parentId)
10
+ rest.put(umbracoPath('/document/:id/move-to-recycle-bin'), async (req, res, ctx) => {
11
+ const id = req.params.id;
12
+ umbDocumentData.trash([id]);
13
+ return res(ctx.status(200));
14
+ }),
15
+ rest.get(umbracoPath('/document/:id/allowed-document-types'), (req, res, ctx) => {
16
+ const id = req.params.id;
17
+ if (!id)
19
18
  return;
20
- const response = umbDocumentData.getTreeItemChildren(parentId);
19
+ const response = umbDocumentData.getDocumentByIdAllowedDocumentTypes(id);
21
20
  return res(ctx.status(200), ctx.json(response));
22
21
  }),
23
- rest.get(umbracoPath('/tree/document/item'), (req, res, ctx) => {
24
- const ids = req.url.searchParams.getAll('id');
25
- if (!ids)
22
+ rest.get(umbracoPath('/document/:id'), (req, res, ctx) => {
23
+ const id = req.params.id;
24
+ if (!id)
26
25
  return;
27
- const items = umbDocumentData.getTreeItem(ids);
28
- return res(ctx.status(200), ctx.json(items));
26
+ const document = umbDocumentData.getById(id);
27
+ return res(ctx.status(200), ctx.json(document));
29
28
  }),
30
- rest.post(umbracoPath(`/document`), async (req, res, ctx) => {
31
- const data = await req.json();
32
- if (!data)
29
+ rest.delete(umbracoPath('/document/:id'), (req, res, ctx) => {
30
+ const id = req.params.id;
31
+ if (!id)
33
32
  return;
34
- umbDocumentData.insert(data);
35
- return res(ctx.status(200));
33
+ const document = umbDocumentData.getById(id);
34
+ return res(ctx.status(200), ctx.json(document));
36
35
  }),
37
36
  rest.put(umbracoPath(`/document/:id`), async (req, res, ctx) => {
38
37
  const id = req.params.id;
@@ -44,22 +43,11 @@ export const handlers = [
44
43
  const saved = umbDocumentData.save(id, data);
45
44
  return res(ctx.status(200), ctx.json(saved));
46
45
  }),
47
- rest.get(umbracoPath('/document/root/allowed-document-types'), (req, res, ctx) => {
48
- const response = umbDocumentData.getAllowedDocumentTypesAtRoot();
49
- return res(ctx.status(200), ctx.json(response));
50
- }),
51
- rest.get(umbracoPath('/document/:id/allowed-document-types'), (req, res, ctx) => {
52
- const id = req.params.id;
53
- if (!id)
54
- return;
55
- const response = umbDocumentData.getDocumentByIdAllowedDocumentTypes(id);
56
- return res(ctx.status(200), ctx.json(response));
57
- }),
58
- rest.get(umbracoPath('/document/:id'), (req, res, ctx) => {
59
- const id = req.params.id;
60
- if (!id)
46
+ rest.post(umbracoPath(`/document`), async (req, res, ctx) => {
47
+ const data = await req.json();
48
+ if (!data)
61
49
  return;
62
- const document = umbDocumentData.getById(id);
63
- return res(ctx.status(200), ctx.json(document));
50
+ umbDocumentData.insert(data);
51
+ return res(ctx.status(200));
64
52
  }),
65
53
  ];
@@ -0,0 +1,5 @@
1
+ import { handlers as recycleBinHandlers } from './recycle-bin.handlers.js';
2
+ import { handlers as treeHandlers } from './tree.handlers.js';
3
+ import { handlers as documentHandlers } from './document.handlers.js';
4
+ import { handlers as itemHandlers } from './item.handlers.js';
5
+ export const handlers = [...recycleBinHandlers, ...treeHandlers, ...itemHandlers, ...documentHandlers];
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,13 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentData } from '../../data/document.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const handlers = [
6
+ rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => {
7
+ const ids = req.url.searchParams.getAll('id');
8
+ if (!ids)
9
+ return;
10
+ const items = umbDocumentData.getItems(ids);
11
+ return res(ctx.status(200), ctx.json(items));
12
+ }),
13
+ ];
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,16 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentData } from '../../data/document.data.js';
3
+ import { umbracoPath } from '../../../shared/utils/index.js';
4
+ export const handlers = [
5
+ rest.get(umbracoPath(`/recycle-bin/document/root`), (req, res, ctx) => {
6
+ const response = umbDocumentData.getRecycleBinRoot();
7
+ return res(ctx.status(200), ctx.json(response));
8
+ }),
9
+ rest.get(umbracoPath(`/recycle-bin/document/children`), (req, res, ctx) => {
10
+ const parentId = req.url.searchParams.get('parentId');
11
+ if (!parentId)
12
+ return;
13
+ const response = umbDocumentData.getRecycleBinChildrenOf(parentId);
14
+ return res(ctx.status(200), ctx.json(response));
15
+ }),
16
+ ];
@@ -0,0 +1 @@
1
+ export declare const slug = "/document";
@@ -0,0 +1 @@
1
+ export const slug = '/document';
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,16 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentData } from '../../data/document.data.js';
3
+ import { umbracoPath } from '../../../shared/utils/index.js';
4
+ export const handlers = [
5
+ rest.get(umbracoPath('/tree/document/root'), (req, res, ctx) => {
6
+ const response = umbDocumentData.getTreeRoot();
7
+ return res(ctx.status(200), ctx.json(response));
8
+ }),
9
+ rest.get(umbracoPath('/tree/document/children'), (req, res, ctx) => {
10
+ const parentId = req.url.searchParams.get('parentId');
11
+ if (!parentId)
12
+ return;
13
+ const response = umbDocumentData.getTreeItemChildrenOf(parentId);
14
+ return res(ctx.status(200), ctx.json(response));
15
+ }),
16
+ ];
@@ -1,7 +1,15 @@
1
1
  const { rest } = window.MockServiceWorker;
2
2
  import { umbMediaData } from '../data/media.data.js';
3
+ import { umbracoPath } from '../../shared/utils/index.js';
3
4
  // TODO: add schema
4
5
  export const handlers = [
6
+ rest.get(umbracoPath('/media/item'), (req, res, ctx) => {
7
+ const ids = req.url.searchParams.getAll('id');
8
+ if (!ids)
9
+ return;
10
+ const items = umbMediaData.getItems(ids);
11
+ return res(ctx.status(200), ctx.json(items));
12
+ }),
5
13
  rest.get('/umbraco/management/api/v1/media/details/:id', (req, res, ctx) => {
6
14
  console.warn('Please move to schema');
7
15
  const id = req.params.id;
@@ -40,14 +40,14 @@ const detailHandlers = [
40
40
  const path = req.url.searchParams.get('path');
41
41
  if (!path)
42
42
  return res(ctx.status(400));
43
- const response = umbPartialViewsData.delete([path]);
44
- return res(ctx.status(200), ctx.json(response));
43
+ umbPartialViewsData.delete([path]);
44
+ return res(ctx.status(200));
45
45
  }),
46
46
  rest.put(umbracoPath('/partial-view'), (req, res, ctx) => {
47
47
  const requestBody = req.json();
48
48
  if (!requestBody)
49
49
  return res(ctx.status(400, 'no body found'));
50
- const response = umbPartialViewsData.updateData(requestBody);
50
+ umbPartialViewsData.updateData(requestBody);
51
51
  return res(ctx.status(200));
52
52
  }),
53
53
  ];
@@ -0,0 +1 @@
1
+ export declare const collectionHandlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];