@umbraco-cms/backoffice 14.0.0-40e04294 → 14.0.0-43239cee

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 (270) 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 +288 -19
  7. package/dist-cms/external/tinymce/index.js +36 -36
  8. package/dist-cms/mocks/browser-handlers.js +1 -1
  9. package/dist-cms/mocks/data/entity.data.d.ts +1 -1
  10. package/dist-cms/mocks/data/entity.data.js +1 -9
  11. package/dist-cms/mocks/data/media.data.d.ts +2 -1
  12. package/dist-cms/mocks/data/media.data.js +11 -0
  13. package/dist-cms/mocks/data/user-group.data.d.ts +17 -0
  14. package/dist-cms/mocks/data/user-group.data.js +61 -0
  15. package/dist-cms/mocks/data/user.data.d.ts +15 -0
  16. package/dist-cms/mocks/data/{users.data.js → user.data.js} +27 -41
  17. package/dist-cms/mocks/handlers/dictionary.handlers.js +2 -2
  18. package/dist-cms/mocks/handlers/media.handlers.js +8 -0
  19. package/dist-cms/mocks/handlers/partial-views.handlers.js +3 -3
  20. package/dist-cms/mocks/handlers/user-group/collection.handlers.d.ts +1 -0
  21. package/dist-cms/mocks/handlers/user-group/collection.handlers.js +10 -0
  22. package/dist-cms/mocks/handlers/user-group/detail.handlers.d.ts +1 -0
  23. package/dist-cms/mocks/handlers/user-group/detail.handlers.js +37 -0
  24. package/dist-cms/mocks/handlers/user-group/index.js +4 -0
  25. package/dist-cms/mocks/handlers/user-group/item.handlers.d.ts +1 -0
  26. package/dist-cms/mocks/handlers/user-group/item.handlers.js +13 -0
  27. package/dist-cms/mocks/handlers/user-group/slug.d.ts +1 -0
  28. package/dist-cms/mocks/handlers/user-group/slug.js +1 -0
  29. package/dist-cms/mocks/handlers/user.handlers.js +15 -1
  30. package/dist-cms/packages/core/components/input-list-base/input-list-base.js +1 -1
  31. package/dist-cms/packages/core/components/input-section/input-section.element.d.ts +2 -2
  32. package/dist-cms/packages/core/components/input-section/input-section.element.js +5 -5
  33. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +3 -2
  34. package/dist-cms/packages/core/extension-registry/models/index.d.ts +5 -1
  35. package/dist-cms/packages/core/extension-registry/models/index.js +2 -0
  36. package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.d.ts +8 -0
  37. package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.js +1 -0
  38. package/dist-cms/packages/core/extension-registry/models/user-permission.model.d.ts +11 -0
  39. package/dist-cms/packages/core/extension-registry/models/user-permission.model.js +1 -0
  40. package/dist-cms/packages/core/localization/index.d.ts +3 -0
  41. package/dist-cms/packages/core/localization/index.js +3 -0
  42. package/dist-cms/packages/core/localization/localize-date.element.d.ts +28 -0
  43. package/dist-cms/packages/core/localization/localize-date.element.js +42 -0
  44. package/dist-cms/packages/core/localization/localize-number.element.d.ts +28 -0
  45. package/dist-cms/packages/core/localization/localize-number.element.js +42 -0
  46. package/dist-cms/packages/core/localization/localize-relative-time.element.d.ts +34 -0
  47. package/dist-cms/packages/core/localization/localize-relative-time.element.js +54 -0
  48. package/dist-cms/packages/core/localization/localize.element.js +1 -1
  49. package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.d.ts +19 -0
  50. package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.js +97 -0
  51. package/dist-cms/packages/core/modal/common/manifests.js +6 -0
  52. package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +5 -3
  53. package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.d.ts +7 -0
  54. package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.js +4 -0
  55. package/dist-cms/packages/core/modal/token/index.d.ts +1 -0
  56. package/dist-cms/packages/core/modal/token/index.js +1 -0
  57. package/dist-cms/packages/core/picker-input/picker-input.context.js +1 -3
  58. package/dist-cms/packages/core/tree/tree.context.js +3 -2
  59. package/dist-cms/packages/documents/documents/components/index.d.ts +1 -0
  60. package/dist-cms/packages/documents/documents/components/index.js +1 -0
  61. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.d.ts +6 -0
  62. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +7 -0
  63. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.d.ts +7 -12
  64. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +51 -64
  65. package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.d.ts +23 -0
  66. package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.js +102 -0
  67. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +9 -0
  68. package/dist-cms/packages/documents/documents/entity-actions/manifests.js +1 -1
  69. package/dist-cms/packages/documents/documents/entity-actions/permissions.action.d.ts +2 -1
  70. package/dist-cms/packages/documents/documents/entity-actions/permissions.action.js +22 -2
  71. package/dist-cms/packages/documents/documents/index.d.ts +2 -0
  72. package/dist-cms/packages/documents/documents/index.js +2 -0
  73. package/dist-cms/packages/documents/documents/manifests.d.ts +4 -0
  74. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  75. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.d.ts +4 -0
  76. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.js +6 -0
  77. package/dist-cms/packages/documents/documents/recycle-bin/manifests.d.ts +4 -0
  78. package/dist-cms/packages/documents/documents/repository/document.repository.js +4 -4
  79. package/dist-cms/packages/documents/documents/repository/manifests.d.ts +3 -2
  80. package/dist-cms/packages/documents/documents/repository/manifests.js +9 -1
  81. package/dist-cms/packages/documents/documents/user-permissions/index.d.ts +1 -0
  82. package/dist-cms/packages/documents/documents/user-permissions/index.js +1 -0
  83. package/dist-cms/packages/documents/documents/user-permissions/manifests.d.ts +19 -0
  84. package/dist-cms/packages/documents/documents/user-permissions/manifests.js +196 -0
  85. package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +29 -28
  86. package/dist-cms/packages/documents/manifests.d.ts +4 -0
  87. package/dist-cms/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.js +1 -1
  88. package/dist-cms/packages/media/manifests.d.ts +2 -1
  89. package/dist-cms/packages/media/manifests.js +1 -0
  90. package/dist-cms/packages/media/media/components/index.d.ts +1 -0
  91. package/dist-cms/packages/media/media/components/index.js +1 -0
  92. package/dist-cms/packages/media/media/components/input-media/input-media.context.d.ts +6 -0
  93. package/dist-cms/packages/media/media/components/input-media/input-media.context.js +7 -0
  94. package/dist-cms/packages/media/media/components/input-media/input-media.element.d.ts +7 -15
  95. package/dist-cms/packages/media/media/components/input-media/input-media.element.js +50 -72
  96. package/dist-cms/packages/media/media/index.d.ts +2 -0
  97. package/dist-cms/packages/media/media/index.js +1 -1
  98. package/dist-cms/packages/media/media/manifests.d.ts +1 -1
  99. package/dist-cms/packages/media/media/manifests.js +2 -0
  100. package/dist-cms/packages/media/media/repository/manifests.d.ts +3 -2
  101. package/dist-cms/packages/media/media/repository/manifests.js +9 -1
  102. package/dist-cms/packages/media/media/repository/media-item.store.d.ts +20 -0
  103. package/dist-cms/packages/media/media/repository/media-item.store.js +23 -0
  104. package/dist-cms/packages/media/media/repository/media.repository.d.ts +6 -0
  105. package/dist-cms/packages/media/media/repository/media.repository.js +22 -0
  106. package/dist-cms/packages/media/media/repository/sources/media-item.server.data.d.ts +24 -0
  107. package/dist-cms/packages/media/media/repository/sources/media-item.server.data.js +31 -0
  108. package/dist-cms/packages/media/media/user-permissions/index.d.ts +1 -0
  109. package/dist-cms/packages/media/media/user-permissions/index.js +1 -0
  110. package/dist-cms/packages/media/media/user-permissions/manifests.d.ts +4 -0
  111. package/dist-cms/packages/media/media/user-permissions/manifests.js +27 -0
  112. package/dist-cms/packages/users/current-user/conditions/index.d.ts +1 -0
  113. package/dist-cms/packages/users/current-user/conditions/index.js +1 -0
  114. package/dist-cms/packages/users/current-user/conditions/user-permission.condition.d.ts +18 -0
  115. package/dist-cms/packages/users/current-user/conditions/user-permission.condition.js +23 -0
  116. package/dist-cms/packages/users/current-user/index.d.ts +1 -0
  117. package/dist-cms/packages/users/current-user/index.js +1 -0
  118. package/dist-cms/packages/users/current-user/manifests.js +7 -1
  119. package/dist-cms/packages/users/current-user/modals/current-user/current-user-modal.element.js +7 -7
  120. package/dist-cms/packages/users/index.d.ts +4 -2
  121. package/dist-cms/packages/users/index.js +4 -2
  122. package/dist-cms/packages/users/manifests.d.ts +2 -0
  123. package/dist-cms/packages/users/manifests.js +3 -0
  124. package/dist-cms/packages/users/user-groups/collection/user-group-collection-header.element.js +2 -2
  125. package/dist-cms/packages/users/user-groups/collection/user-group-collection-view.element.js +6 -6
  126. package/dist-cms/packages/users/user-groups/components/index.d.ts +1 -0
  127. package/dist-cms/packages/users/user-groups/components/index.js +1 -0
  128. package/dist-cms/packages/users/user-groups/entity-actions/manifests.d.ts +2 -0
  129. package/dist-cms/packages/users/user-groups/entity-actions/manifests.js +19 -0
  130. package/dist-cms/packages/users/user-groups/index.d.ts +2 -0
  131. package/dist-cms/packages/users/user-groups/index.js +2 -0
  132. package/dist-cms/packages/users/user-groups/manifests.d.ts +1 -1
  133. package/dist-cms/packages/users/user-groups/manifests.js +2 -0
  134. package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.d.ts +16 -0
  135. package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.js +69 -0
  136. package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.d.ts +14 -0
  137. package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.js +31 -0
  138. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.d.ts +2 -0
  139. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.js +57 -56
  140. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.d.ts +12 -0
  141. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.js +20 -0
  142. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +1 -1
  143. package/dist-cms/packages/users/users/collection/user-collection-header.element.js +18 -11
  144. package/dist-cms/packages/users/users/collection/views/grid/user-collection-grid-view.element.js +6 -6
  145. package/dist-cms/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.js +3 -3
  146. package/dist-cms/packages/users/users/components/index.d.ts +3 -0
  147. package/dist-cms/packages/users/users/components/index.js +3 -0
  148. package/dist-cms/packages/users/users/components/user-input/user-input.element.js +2 -2
  149. package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.d.ts +15 -0
  150. package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.js +66 -0
  151. package/dist-cms/packages/users/users/index.d.ts +2 -0
  152. package/dist-cms/packages/users/users/index.js +2 -0
  153. package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.d.ts +3 -1
  154. package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.js +20 -25
  155. package/dist-cms/packages/users/users/repository/index.d.ts +1 -0
  156. package/dist-cms/packages/users/users/repository/index.js +1 -0
  157. package/dist-cms/packages/users/users/repository/user.repository.js +1 -1
  158. package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.js +73 -56
  159. package/dist-cms/packages/users/utils.d.ts +5 -2
  160. package/dist-cms/packages/users/utils.js +14 -14
  161. package/dist-cms/shared/auth/auth-flow.d.ts +0 -4
  162. package/dist-cms/shared/auth/auth-flow.js +6 -25
  163. package/dist-cms/shared/repository/repository-items.manager.js +5 -0
  164. package/dist-cms/shared/umb-events/index.d.ts +1 -0
  165. package/dist-cms/shared/umb-events/index.js +1 -0
  166. package/dist-cms/shared/umb-events/selected.event.d.ts +3 -0
  167. package/dist-cms/shared/umb-events/selected.event.js +6 -0
  168. package/dist-cms/tinymce/CHANGELOG.md +48 -0
  169. package/dist-cms/tinymce/composer.json +1 -1
  170. package/dist-cms/tinymce/models/dom/model.js +1 -1
  171. package/dist-cms/tinymce/models/dom/model.min.js +1 -1
  172. package/dist-cms/tinymce/package.json +1 -1
  173. package/dist-cms/tinymce/plugins/accordion/plugin.js +1 -1
  174. package/dist-cms/tinymce/plugins/accordion/plugin.min.js +1 -1
  175. package/dist-cms/tinymce/plugins/advlist/plugin.js +1 -1
  176. package/dist-cms/tinymce/plugins/advlist/plugin.min.js +1 -1
  177. package/dist-cms/tinymce/plugins/anchor/plugin.js +1 -1
  178. package/dist-cms/tinymce/plugins/anchor/plugin.min.js +1 -1
  179. package/dist-cms/tinymce/plugins/autolink/plugin.js +1 -1
  180. package/dist-cms/tinymce/plugins/autolink/plugin.min.js +1 -1
  181. package/dist-cms/tinymce/plugins/autoresize/plugin.js +1 -1
  182. package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +1 -1
  183. package/dist-cms/tinymce/plugins/autosave/plugin.js +1 -1
  184. package/dist-cms/tinymce/plugins/autosave/plugin.min.js +1 -1
  185. package/dist-cms/tinymce/plugins/charmap/plugin.js +1 -1
  186. package/dist-cms/tinymce/plugins/charmap/plugin.min.js +1 -1
  187. package/dist-cms/tinymce/plugins/code/plugin.js +1 -1
  188. package/dist-cms/tinymce/plugins/code/plugin.min.js +1 -1
  189. package/dist-cms/tinymce/plugins/codesample/plugin.js +1 -1
  190. package/dist-cms/tinymce/plugins/codesample/plugin.min.js +1 -1
  191. package/dist-cms/tinymce/plugins/directionality/plugin.js +1 -1
  192. package/dist-cms/tinymce/plugins/directionality/plugin.min.js +1 -1
  193. package/dist-cms/tinymce/plugins/emoticons/plugin.js +1 -1
  194. package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +1 -1
  195. package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1 -1
  196. package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  197. package/dist-cms/tinymce/plugins/help/plugin.js +5 -5
  198. package/dist-cms/tinymce/plugins/help/plugin.min.js +2 -2
  199. package/dist-cms/tinymce/plugins/image/plugin.js +1 -1
  200. package/dist-cms/tinymce/plugins/image/plugin.min.js +1 -1
  201. package/dist-cms/tinymce/plugins/importcss/plugin.js +1 -1
  202. package/dist-cms/tinymce/plugins/importcss/plugin.min.js +1 -1
  203. package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +1 -1
  204. package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  205. package/dist-cms/tinymce/plugins/link/plugin.js +1 -1
  206. package/dist-cms/tinymce/plugins/link/plugin.min.js +1 -1
  207. package/dist-cms/tinymce/plugins/lists/plugin.js +63 -8
  208. package/dist-cms/tinymce/plugins/lists/plugin.min.js +2 -2
  209. package/dist-cms/tinymce/plugins/media/plugin.js +3 -23
  210. package/dist-cms/tinymce/plugins/media/plugin.min.js +2 -2
  211. package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +1 -1
  212. package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  213. package/dist-cms/tinymce/plugins/pagebreak/plugin.js +1 -1
  214. package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +1 -1
  215. package/dist-cms/tinymce/plugins/preview/plugin.js +1 -1
  216. package/dist-cms/tinymce/plugins/preview/plugin.min.js +1 -1
  217. package/dist-cms/tinymce/plugins/quickbars/plugin.js +13 -4
  218. package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +2 -2
  219. package/dist-cms/tinymce/plugins/save/plugin.js +1 -1
  220. package/dist-cms/tinymce/plugins/save/plugin.min.js +1 -1
  221. package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1 -1
  222. package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  223. package/dist-cms/tinymce/plugins/table/plugin.js +2 -2
  224. package/dist-cms/tinymce/plugins/table/plugin.min.js +2 -2
  225. package/dist-cms/tinymce/plugins/template/plugin.js +1 -1
  226. package/dist-cms/tinymce/plugins/template/plugin.min.js +1 -1
  227. package/dist-cms/tinymce/plugins/visualblocks/plugin.js +1 -1
  228. package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  229. package/dist-cms/tinymce/plugins/visualchars/plugin.js +1 -1
  230. package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +1 -1
  231. package/dist-cms/tinymce/plugins/wordcount/plugin.js +1 -1
  232. package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +1 -1
  233. package/dist-cms/tinymce/skins/ui/oxide/content.css +1 -1
  234. package/dist-cms/tinymce/skins/ui/oxide/content.inline.css +1 -1
  235. package/dist-cms/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  236. package/dist-cms/tinymce/skins/ui/oxide/content.min.css +1 -1
  237. package/dist-cms/tinymce/skins/ui/oxide/skin.css +51 -11
  238. package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -1
  239. package/dist-cms/tinymce/skins/ui/oxide-dark/content.css +1 -1
  240. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
  241. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  242. package/dist-cms/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  243. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +54 -14
  244. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  245. package/dist-cms/tinymce/skins/ui/tinymce-5/content.css +1 -1
  246. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.css +1 -1
  247. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  248. package/dist-cms/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  249. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +51 -11
  250. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  251. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.css +1 -1
  252. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.css +1 -1
  253. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  254. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  255. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +51 -11
  256. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  257. package/dist-cms/tinymce/themes/silver/theme.js +158 -55
  258. package/dist-cms/tinymce/themes/silver/theme.min.js +2 -2
  259. package/dist-cms/tinymce/tinymce.d.ts +4 -6
  260. package/dist-cms/tinymce/tinymce.js +911 -691
  261. package/dist-cms/tinymce/tinymce.min.js +2 -2
  262. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  263. package/dist-cms/umbraco-package-schema.json +154 -0
  264. package/dist-cms/vscode-html-custom-data.json +167 -18
  265. package/package.json +2 -2
  266. package/dist-cms/mocks/data/user-groups.data.d.ts +0 -9
  267. package/dist-cms/mocks/data/user-groups.data.js +0 -21
  268. package/dist-cms/mocks/data/users.data.d.ts +0 -16
  269. package/dist-cms/mocks/handlers/user-group.handlers.js +0 -17
  270. /package/dist-cms/mocks/handlers/{user-group.handlers.d.ts → user-group/index.d.ts} +0 -0
@@ -8,7 +8,7 @@ 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';
@@ -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
  }
@@ -60,19 +60,11 @@ export class UmbEntityData extends UmbData {
60
60
  return trashedItems;
61
61
  }
62
62
  delete(ids) {
63
- const deletedKeys = this.data
64
- .filter((item) => {
65
- if (!item.id)
66
- throw new Error('Item has no id');
67
- ids.includes(item.id);
68
- })
69
- .map((item) => item.id);
70
63
  this.data = this.data.filter((item) => {
71
64
  if (!item.id)
72
65
  throw new Error('Item has no id');
73
- ids.indexOf(item.id) === -1;
66
+ return !ids.includes(item.id);
74
67
  });
75
- return deletedKeys;
76
68
  }
77
69
  updateData(updateItem) {
78
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,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>>[];
@@ -0,0 +1,10 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbUserGroupData } from '../../data/user-group.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const collectionHandlers = [
6
+ rest.get(umbracoPath(`${slug}`), (req, res, ctx) => {
7
+ const response = umbUserGroupData.getAll();
8
+ return res(ctx.status(200), ctx.json(response));
9
+ }),
10
+ ];
@@ -0,0 +1 @@
1
+ export declare const detailHandlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,37 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbUserGroupData } from '../../data/user-group.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const detailHandlers = [
6
+ rest.post(umbracoPath(`${slug}`), async (req, res, ctx) => {
7
+ const data = await req.json();
8
+ if (!data)
9
+ return;
10
+ umbUserGroupData.insert(data);
11
+ return res(ctx.status(200));
12
+ }),
13
+ rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => {
14
+ const id = req.params.id;
15
+ if (!id)
16
+ return;
17
+ const dataType = umbUserGroupData.getById(id);
18
+ return res(ctx.status(200), ctx.json(dataType));
19
+ }),
20
+ rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => {
21
+ const id = req.params.id;
22
+ if (!id)
23
+ return;
24
+ const data = await req.json();
25
+ if (!data)
26
+ return;
27
+ umbUserGroupData.save(id, data);
28
+ return res(ctx.status(200));
29
+ }),
30
+ rest.delete(umbracoPath(`${slug}/:id`), async (req, res, ctx) => {
31
+ const id = req.params.id;
32
+ if (!id)
33
+ return;
34
+ umbUserGroupData.delete([id]);
35
+ return res(ctx.status(200));
36
+ }),
37
+ ];
@@ -0,0 +1,4 @@
1
+ import { collectionHandlers } from './collection.handlers.js';
2
+ import { detailHandlers } from './detail.handlers.js';
3
+ import { itemHandlers } from './item.handlers.js';
4
+ export const handlers = [...itemHandlers, ...collectionHandlers, ...detailHandlers];
@@ -0,0 +1 @@
1
+ export declare const itemHandlers: 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 { umbUserGroupData } from '../../data/user-group.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const itemHandlers = [
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 = umbUserGroupData.getItems(ids);
11
+ return res(ctx.status(200), ctx.json(items));
12
+ }),
13
+ ];
@@ -0,0 +1 @@
1
+ export declare const slug = "/user-group";
@@ -0,0 +1 @@
1
+ export const slug = '/user-group';
@@ -1,8 +1,22 @@
1
1
  const { rest } = window.MockServiceWorker;
2
- import { umbUsersData } from '../data/users.data.js';
2
+ import { umbUsersData } from '../data/user.data.js';
3
3
  import { umbracoPath } from '../../shared/utils/index.js';
4
4
  const slug = '/user';
5
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 = umbUsersData.getItems(ids);
11
+ return res(ctx.status(200), ctx.json(items));
12
+ }),
13
+ rest.post(umbracoPath(`${slug}/set-user-groups`), async (req, res, ctx) => {
14
+ const data = await req.json();
15
+ if (!data)
16
+ return;
17
+ umbUsersData.setUserGroups(data);
18
+ return res(ctx.status(200));
19
+ }),
6
20
  rest.get(umbracoPath(`${slug}/filter`), (req, res, ctx) => {
7
21
  //TODO: Implementer filter
8
22
  const response = umbUsersData.getAll();
@@ -42,7 +42,7 @@ export class UmbInputListBaseElement extends UmbLitElement {
42
42
  }
43
43
  renderButton() {
44
44
  return html `<uui-button id="add-button" look="placeholder" @click=${this._openPicker} label="open">
45
- Add
45
+ ${this.localize.term('general_add')}
46
46
  </uui-button>`;
47
47
  }
48
48
  renderContent() {
@@ -1,5 +1,5 @@
1
1
  import { UmbInputListBaseElement } from '../input-list-base/input-list-base.js';
2
- export declare class UmbInputPickerSectionElement extends UmbInputListBaseElement {
2
+ export declare class UmbInputSectionElement extends UmbInputListBaseElement {
3
3
  private _sections;
4
4
  connectedCallback(): void;
5
5
  private _observeSections;
@@ -9,6 +9,6 @@ export declare class UmbInputPickerSectionElement extends UmbInputListBaseElemen
9
9
  }
10
10
  declare global {
11
11
  interface HTMLElementTagNameMap {
12
- 'umb-input-section': UmbInputPickerSectionElement;
12
+ 'umb-input-section': UmbInputSectionElement;
13
13
  }
14
14
  }
@@ -5,11 +5,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { UmbInputListBaseElement } from '../input-list-base/input-list-base.js';
8
- import { UmbTextStyles } from "../../../../shared/style/index.js";
8
+ import { UmbTextStyles } from '../../../../shared/style/index.js';
9
9
  import { css, html, nothing, customElement, state } from '../../../../external/lit/index.js';
10
10
  import { UMB_SECTION_PICKER_MODAL } from '../../modal/index.js';
11
11
  import { umbExtensionsRegistry } from '../../extension-registry/index.js';
12
- export let UmbInputPickerSectionElement = class UmbInputPickerSectionElement extends UmbInputListBaseElement {
12
+ export let UmbInputSectionElement = class UmbInputSectionElement extends UmbInputListBaseElement {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this._sections = [];
@@ -84,7 +84,7 @@ export let UmbInputPickerSectionElement = class UmbInputPickerSectionElement ext
84
84
  };
85
85
  __decorate([
86
86
  state()
87
- ], UmbInputPickerSectionElement.prototype, "_sections", void 0);
88
- UmbInputPickerSectionElement = __decorate([
87
+ ], UmbInputSectionElement.prototype, "_sections", void 0);
88
+ UmbInputSectionElement = __decorate([
89
89
  customElement('umb-input-section')
90
- ], UmbInputPickerSectionElement);
90
+ ], UmbInputSectionElement);
@@ -1,5 +1,6 @@
1
1
  import type { SectionAliasConditionConfig } from './section-alias.condition.js';
2
2
  import type { SwitchConditionConfig } from './switch.condition.js';
3
3
  import type { WorkspaceAliasConditionConfig } from '../../workspace/index.js';
4
- import { UmbConditionConfigBase } from '../../../../libs/extension-api/index.js';
5
- export type ConditionTypes = SectionAliasConditionConfig | WorkspaceAliasConditionConfig | SwitchConditionConfig | UmbConditionConfigBase;
4
+ import type { UmbConditionConfigBase } from '../../../../libs/extension-api/index.js';
5
+ import type { UserPermissionConditionConfig } from '../../../users/current-user/index.js';
6
+ export type ConditionTypes = SectionAliasConditionConfig | WorkspaceAliasConditionConfig | SwitchConditionConfig | UserPermissionConditionConfig | UmbConditionConfigBase;
@@ -28,6 +28,8 @@ import type { ManifestWorkspace } from './workspace.model.js';
28
28
  import type { ManifestWorkspaceAction } from './workspace-action.model.js';
29
29
  import type { ManifestWorkspaceEditorView } from './workspace-editor-view.model.js';
30
30
  import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model.js';
31
+ import type { ManifestUserPermission } from './user-permission.model.js';
32
+ import type { ManifestUserGranularPermission } from './user-granular-permission.model.js';
31
33
  import type { ManifestBase, ManifestBundle, ManifestCondition, ManifestEntryPoint } from '../../../../libs/extension-api/index.js';
32
34
  export * from './collection-view.model.js';
33
35
  export * from './dashboard-collection.model.js';
@@ -59,4 +61,6 @@ export * from './workspace-action.model.js';
59
61
  export * from './workspace-view-collection.model.js';
60
62
  export * from './workspace-editor-view.model.js';
61
63
  export * from './workspace.model.js';
62
- export type ManifestTypes = ManifestBundle<ManifestTypes> | ManifestCondition | ManifestCollectionView | ManifestDashboard | ManifestDashboardCollection | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntryPoint | ManifestExternalLoginProvider | ManifestGlobalContext | ManifestHeaderApp | ManifestHeaderAppButtonKind | ManifestHealthCheck | ManifestItemStore | ManifestMenu | ManifestMenuItem | ManifestMenuItemTreeKind | ManifestModal | ManifestPackageView | ManifestPropertyAction | ManifestPropertyEditorSchema | ManifestPropertyEditorUi | ManifestRepository | ManifestSection | ManifestSectionSidebarApp | ManifestSectionSidebarAppMenuKind | ManifestSectionView | ManifestStore | ManifestTheme | ManifestTinyMcePlugin | ManifestLocalization | ManifestTree | ManifestTreeItem | ManifestTreeStore | ManifestUserProfileApp | ManifestWorkspace | ManifestWorkspaceAction | ManifestWorkspaceEditorView | ManifestWorkspaceViewCollection | ManifestBase;
64
+ export * from './user-permission.model.js';
65
+ export * from './user-granular-permission.model.js';
66
+ export type ManifestTypes = ManifestBundle<ManifestTypes> | ManifestCondition | ManifestCollectionView | ManifestDashboard | ManifestDashboardCollection | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntryPoint | ManifestExternalLoginProvider | ManifestGlobalContext | ManifestHeaderApp | ManifestHeaderAppButtonKind | ManifestHealthCheck | ManifestItemStore | ManifestMenu | ManifestMenuItem | ManifestMenuItemTreeKind | ManifestModal | ManifestPackageView | ManifestPropertyAction | ManifestPropertyEditorSchema | ManifestPropertyEditorUi | ManifestRepository | ManifestSection | ManifestSectionSidebarApp | ManifestSectionSidebarAppMenuKind | ManifestSectionView | ManifestStore | ManifestTheme | ManifestTinyMcePlugin | ManifestLocalization | ManifestTree | ManifestTreeItem | ManifestTreeStore | ManifestUserProfileApp | ManifestWorkspace | ManifestWorkspaceAction | ManifestWorkspaceEditorView | ManifestWorkspaceViewCollection | ManifestUserPermission | ManifestUserGranularPermission | ManifestBase;
@@ -28,3 +28,5 @@ export * from './workspace-action.model.js';
28
28
  export * from './workspace-view-collection.model.js';
29
29
  export * from './workspace-editor-view.model.js';
30
30
  export * from './workspace.model.js';
31
+ export * from './user-permission.model.js';
32
+ export * from './user-granular-permission.model.js';
@@ -0,0 +1,8 @@
1
+ import type { ManifestElement } from '../../../../libs/extension-api/index.js';
2
+ export interface ManifestUserGranularPermission extends ManifestElement {
3
+ type: 'userGranularPermission';
4
+ meta: MetaUserGranularPermission;
5
+ }
6
+ export interface MetaUserGranularPermission {
7
+ entityType: string;
8
+ }
@@ -0,0 +1,11 @@
1
+ import type { ManifestBase } from '../../../../libs/extension-api/index.js';
2
+ export interface ManifestUserPermission extends ManifestBase {
3
+ type: 'userPermission';
4
+ meta: MetaUserPermission;
5
+ }
6
+ export interface MetaUserPermission {
7
+ label: string;
8
+ entityType: string;
9
+ description?: string;
10
+ group?: string;
11
+ }
@@ -1,2 +1,5 @@
1
1
  import './localize.element.js';
2
+ import './localize-date.element.js';
3
+ import './localize-number.element.js';
4
+ import './localize-relative-time.element.js';
2
5
  export * from './registry/localization.registry.js';
@@ -1,2 +1,5 @@
1
1
  import './localize.element.js';
2
+ import './localize-date.element.js';
3
+ import './localize-number.element.js';
4
+ import './localize-relative-time.element.js';
2
5
  export * from './registry/localization.registry.js';
@@ -0,0 +1,28 @@
1
+ import { UmbLitElement } from '../../../shared/lit-element/index.js';
2
+ /**
3
+ * This element allows you to localize a date
4
+ * @element umb-localize-date
5
+ * @slot - The fallback value if the key is not found.
6
+ */
7
+ export declare class UmbLocalizeDateElement extends UmbLitElement {
8
+ /**
9
+ * The date to localize.
10
+ * @attr
11
+ * @example date="Sep 22 2023"
12
+ */
13
+ date: string | Date;
14
+ /**
15
+ * Formatting options
16
+ * @attr
17
+ * @example options={ dateStyle: 'full', timeStyle: 'long', timeZone: 'Australia/Sydney' }
18
+ */
19
+ options?: Intl.DateTimeFormatOptions;
20
+ protected get text(): string;
21
+ protected render(): import("lit-html").TemplateResult<1>;
22
+ static styles: import("@lit/reactive-element/css-tag").CSSResult[];
23
+ }
24
+ declare global {
25
+ interface HTMLElementTagNameMap {
26
+ 'umb-localize-date': UmbLocalizeDateElement;
27
+ }
28
+ }
@@ -0,0 +1,42 @@
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 { css, customElement, html, property, state, unsafeHTML } from '../../../external/lit/index.js';
8
+ import { UmbLitElement } from '../../../shared/lit-element/index.js';
9
+ /**
10
+ * This element allows you to localize a date
11
+ * @element umb-localize-date
12
+ * @slot - The fallback value if the key is not found.
13
+ */
14
+ export let UmbLocalizeDateElement = class UmbLocalizeDateElement extends UmbLitElement {
15
+ get text() {
16
+ return this.localize.date(this.date, this.options);
17
+ }
18
+ render() {
19
+ return this.date
20
+ ? html `${unsafeHTML(this.text)}`
21
+ : html `<slot></slot>`;
22
+ }
23
+ static { this.styles = [
24
+ css `
25
+ :host {
26
+ display: contents;
27
+ }
28
+ `,
29
+ ]; }
30
+ };
31
+ __decorate([
32
+ property()
33
+ ], UmbLocalizeDateElement.prototype, "date", void 0);
34
+ __decorate([
35
+ property()
36
+ ], UmbLocalizeDateElement.prototype, "options", void 0);
37
+ __decorate([
38
+ state()
39
+ ], UmbLocalizeDateElement.prototype, "text", null);
40
+ UmbLocalizeDateElement = __decorate([
41
+ customElement('umb-localize-date')
42
+ ], UmbLocalizeDateElement);