@umbraco-cms/backoffice 16.0.0-rc2 → 16.0.0-rc4

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 (281) hide show
  1. package/dist-cms/apps/backoffice/backoffice.context.js +5 -1
  2. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +3 -1
  3. package/dist-cms/css/uui-css.css +438 -108
  4. package/dist-cms/custom-elements.json +100 -15
  5. package/dist-cms/external/uui/index.js +370 -336
  6. package/dist-cms/libs/context-api/consume/context-consumer.js +1 -2
  7. package/dist-cms/libs/controller-api/controller-host.mixin.js +2 -2
  8. package/dist-cms/packages/block/block/context/block-entry.context.js +10 -3
  9. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.d.ts +1 -1
  10. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.js +7 -7
  11. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.js +1 -1
  12. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +1 -0
  13. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +2 -1
  14. package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +1 -2
  15. package/dist-cms/packages/clipboard/property/value-translator/copy/clipboard-copy-translator-value-resolver.js +6 -1
  16. package/dist-cms/packages/content/content/components/property-type-based-property/index.d.ts +2 -0
  17. package/dist-cms/packages/content/content/components/property-type-based-property/index.js +2 -0
  18. package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.d.ts +8 -0
  19. package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.js +7 -0
  20. package/dist-cms/packages/content/content/{content-property.context.d.ts → components/property-type-based-property/property-type-based-property.context.d.ts} +6 -1
  21. package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context.js +19 -0
  22. package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.d.ts +1 -1
  23. package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.js +8 -7
  24. package/dist-cms/packages/content/content/controller/merge-content-variant-data.controller.js +1 -0
  25. package/dist-cms/packages/content/content/global-components/content-workspace-property.element.d.ts +26 -0
  26. package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +104 -0
  27. package/dist-cms/packages/content/content/global-components/index.d.ts +1 -0
  28. package/dist-cms/packages/content/content/global-components/index.js +1 -0
  29. package/dist-cms/packages/content/content/index.d.ts +1 -2
  30. package/dist-cms/packages/content/content/index.js +1 -2
  31. package/dist-cms/packages/content/content/property-dataset-context/element-property-dataset.context.js +4 -1
  32. package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +6 -1
  33. package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.d.ts +1 -3
  34. package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js +8 -48
  35. package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +1 -0
  36. package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.d.ts +1 -0
  37. package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.js +1 -0
  38. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
  39. package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +3 -3
  40. package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +11 -7
  41. package/dist-cms/packages/content/property-type/workspace/property-type-workspace.context.js +5 -1
  42. package/dist-cms/packages/core/backend-api/types.gen.d.ts +2 -0
  43. package/dist-cms/packages/core/collection/collection-view.manager.js +4 -4
  44. package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +1 -0
  45. package/dist-cms/packages/core/collection/default/collection-default.context.js +3 -0
  46. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +4 -1
  47. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.d.ts +4 -1
  48. package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +27 -3
  49. package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +0 -2
  50. package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
  51. package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -0
  52. package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.d.ts +9 -0
  53. package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.js +80 -2
  54. package/dist-cms/packages/core/picker/search/picker-search-result.element.js +1 -2
  55. package/dist-cms/packages/core/property/manifests.d.ts +1 -1
  56. package/dist-cms/packages/core/property/property-dataset/property-dataset-base-context.js +7 -2
  57. package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.d.ts +15 -2
  58. package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.js +22 -15
  59. package/dist-cms/packages/core/property/property-value-cloner/property-value-clone.controller.js +2 -0
  60. package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +6 -1
  61. package/dist-cms/packages/core/repository/detail/detail-repository-base.js +6 -7
  62. package/dist-cms/packages/core/repository/item/item-repository-base.d.ts +1 -1
  63. package/dist-cms/packages/core/repository/item/item-repository-base.js +25 -9
  64. package/dist-cms/packages/core/repository/item/item-repository.interface.d.ts +1 -1
  65. package/dist-cms/packages/core/router/router-slot/model.d.ts +1 -0
  66. package/dist-cms/packages/core/router/router-slot/router-slot.d.ts +1 -0
  67. package/dist-cms/packages/core/router/router-slot/router-slot.js +30 -0
  68. package/dist-cms/packages/core/section/section-default.element.js +3 -0
  69. package/dist-cms/packages/core/temporary-file/config/config.repository.d.ts +1 -0
  70. package/dist-cms/packages/core/temporary-file/config/config.repository.js +7 -3
  71. package/dist-cms/packages/core/temporary-file/config/config.server.data-source.js +1 -1
  72. package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
  73. package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +15 -4
  74. package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
  75. package/dist-cms/packages/core/tree/data/tree-repository-base.d.ts +5 -1
  76. package/dist-cms/packages/core/tree/data/tree-repository-base.js +27 -13
  77. package/dist-cms/packages/core/tree/tree-item/tree-item.element.js +1 -1
  78. package/dist-cms/packages/core/utils/media/image-size.function.d.ts +5 -3
  79. package/dist-cms/packages/core/utils/media/image-size.function.js +9 -11
  80. package/dist-cms/packages/core/validation/controllers/bind-server-validation-to-form-control.controller.js +1 -1
  81. package/dist-cms/packages/core/validation/controllers/form-control-validator.controller.js +4 -4
  82. package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-property-path-translation.controller.js +1 -0
  83. package/dist-cms/packages/core/validation/controllers/validation.controller.js +5 -5
  84. package/dist-cms/packages/core/variant/constants.d.ts +1 -0
  85. package/dist-cms/packages/core/variant/constants.js +1 -0
  86. package/dist-cms/packages/core/variant/context/constants.d.ts +1 -0
  87. package/dist-cms/packages/core/variant/context/constants.js +1 -0
  88. package/dist-cms/packages/core/variant/context/index.d.ts +1 -0
  89. package/dist-cms/packages/core/variant/context/index.js +1 -0
  90. package/dist-cms/packages/core/variant/context/variant.context.d.ts +91 -0
  91. package/dist-cms/packages/core/variant/context/variant.context.js +141 -0
  92. package/dist-cms/packages/core/variant/context/variant.context.token.d.ts +3 -0
  93. package/dist-cms/packages/core/variant/context/variant.context.token.js +2 -0
  94. package/dist-cms/packages/core/variant/index.d.ts +2 -0
  95. package/dist-cms/packages/core/variant/index.js +2 -0
  96. package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.js +3 -1
  97. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +2 -2
  98. package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.d.ts +7 -0
  99. package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.js +31 -10
  100. package/dist-cms/packages/core/workspace/controllers/workspace-route-manager.controller.js +5 -5
  101. package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +1 -1
  102. package/dist-cms/packages/core/workspace/info-app/global-components/workspace-info-app-layout.element.js +0 -4
  103. package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +1 -0
  104. package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +10 -0
  105. package/dist-cms/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.js +4 -1
  106. package/dist-cms/packages/data-type/collection/repository/data-type-collection.repository.js +6 -1
  107. package/dist-cms/packages/data-type/constants.d.ts +1 -0
  108. package/dist-cms/packages/data-type/constants.js +1 -0
  109. package/dist-cms/packages/data-type/repository/detail/data-type-detail.repository.js +6 -1
  110. package/dist-cms/packages/data-type/search/constants.d.ts +2 -0
  111. package/dist-cms/packages/data-type/search/constants.js +2 -0
  112. package/dist-cms/packages/data-type/search/global-search/constants.d.ts +1 -0
  113. package/dist-cms/packages/data-type/search/global-search/constants.js +1 -0
  114. package/dist-cms/packages/data-type/search/global-search/manifests.d.ts +1 -0
  115. package/dist-cms/packages/data-type/search/global-search/manifests.js +22 -0
  116. package/dist-cms/packages/data-type/search/manifests.js +2 -0
  117. package/dist-cms/packages/dictionary/search/constants.d.ts +1 -0
  118. package/dist-cms/packages/dictionary/search/constants.js +1 -0
  119. package/dist-cms/packages/dictionary/search/global-search/constants.d.ts +1 -0
  120. package/dist-cms/packages/dictionary/search/global-search/constants.js +1 -0
  121. package/dist-cms/packages/dictionary/search/global-search/manifests.d.ts +1 -0
  122. package/dist-cms/packages/dictionary/search/global-search/manifests.js +22 -0
  123. package/dist-cms/packages/dictionary/search/manifests.js +2 -0
  124. package/dist-cms/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.js +5 -4
  125. package/dist-cms/packages/documents/document-types/search/constants.d.ts +1 -0
  126. package/dist-cms/packages/documents/document-types/search/constants.js +1 -0
  127. package/dist-cms/packages/documents/document-types/search/global-search/constants.d.ts +1 -0
  128. package/dist-cms/packages/documents/document-types/search/global-search/constants.js +1 -0
  129. package/dist-cms/packages/documents/document-types/search/global-search/manifests.d.ts +1 -0
  130. package/dist-cms/packages/documents/document-types/search/global-search/manifests.js +22 -0
  131. package/dist-cms/packages/documents/document-types/search/manifests.js +2 -0
  132. package/dist-cms/packages/documents/documents/collection/document-collection.context.d.ts +2 -0
  133. package/dist-cms/packages/documents/documents/collection/document-collection.context.js +23 -0
  134. package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +4 -0
  135. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +2 -2
  136. package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +55 -68
  137. package/dist-cms/packages/documents/documents/item/document-item-ref.element.d.ts +4 -0
  138. package/dist-cms/packages/documents/documents/item/document-item-ref.element.js +33 -2
  139. package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.d.ts +1 -0
  140. package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.js +14 -8
  141. package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.d.ts +0 -1
  142. package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.js +0 -42
  143. package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +12 -2
  144. package/dist-cms/packages/documents/documents/search/constants.d.ts +1 -0
  145. package/dist-cms/packages/documents/documents/search/constants.js +1 -0
  146. package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +3 -2
  147. package/dist-cms/packages/documents/documents/search/global-search/constants.d.ts +1 -0
  148. package/dist-cms/packages/documents/documents/search/global-search/constants.js +1 -0
  149. package/dist-cms/packages/documents/documents/search/global-search/document-global-search.d.ts +6 -0
  150. package/dist-cms/packages/documents/documents/search/global-search/document-global-search.js +15 -0
  151. package/dist-cms/packages/documents/documents/search/global-search/manifests.d.ts +1 -0
  152. package/dist-cms/packages/documents/documents/search/global-search/manifests.js +23 -0
  153. package/dist-cms/packages/documents/documents/search/manifests.js +2 -0
  154. package/dist-cms/packages/documents/documents/search/types.d.ts +1 -0
  155. package/dist-cms/packages/documents/documents/types.d.ts +1 -0
  156. package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.d.ts +37 -0
  157. package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.js +78 -0
  158. package/dist-cms/packages/documents/documents/url/index.d.ts +2 -0
  159. package/dist-cms/packages/documents/documents/url/index.js +2 -0
  160. package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.d.ts +0 -1
  161. package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.js +29 -24
  162. package/dist-cms/packages/documents/documents/url/repository/types.d.ts +1 -1
  163. package/dist-cms/packages/documents/documents/url/types.d.ts +1 -0
  164. package/dist-cms/packages/documents/documents/url/types.js +1 -0
  165. package/dist-cms/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.js +3 -1
  166. package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +4 -2
  167. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +13 -7
  168. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +29 -0
  169. package/dist-cms/packages/language/global-contexts/app-language.context.js +14 -12
  170. package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +3 -0
  171. package/dist-cms/packages/media/media/components/input-media/input-media.context.js +4 -0
  172. package/dist-cms/packages/media/media/constants.d.ts +1 -1
  173. package/dist-cms/packages/media/media/constants.js +1 -1
  174. package/dist-cms/packages/media/media/dashboard/media-dashboard.element.js +1 -0
  175. package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +8 -0
  176. package/dist-cms/packages/media/media/search/constants.d.ts +1 -0
  177. package/dist-cms/packages/media/media/search/constants.js +1 -0
  178. package/dist-cms/packages/media/media/search/global-search/constants.d.ts +1 -0
  179. package/dist-cms/packages/media/media/search/global-search/constants.js +1 -0
  180. package/dist-cms/packages/media/media/search/global-search/manifests.d.ts +1 -0
  181. package/dist-cms/packages/media/media/search/global-search/manifests.js +23 -0
  182. package/dist-cms/packages/media/media/search/global-search/media-global-search.d.ts +15 -0
  183. package/dist-cms/packages/media/media/search/global-search/media-global-search.js +15 -0
  184. package/dist-cms/packages/media/media/search/manifests.js +2 -0
  185. package/dist-cms/packages/media/media/search/media-search.server.data-source.js +3 -2
  186. package/dist-cms/packages/media/media/search/types.d.ts +1 -0
  187. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +1 -0
  188. package/dist-cms/packages/media/media-types/constants.d.ts +1 -0
  189. package/dist-cms/packages/media/media-types/constants.js +1 -0
  190. package/dist-cms/packages/media/media-types/search/constants.d.ts +2 -0
  191. package/dist-cms/packages/media/media-types/search/constants.js +2 -0
  192. package/dist-cms/packages/media/media-types/search/global-search/constants.d.ts +1 -0
  193. package/dist-cms/packages/media/media-types/search/global-search/constants.js +1 -0
  194. package/dist-cms/packages/media/media-types/search/global-search/manifests.d.ts +1 -0
  195. package/dist-cms/packages/media/media-types/search/global-search/manifests.js +22 -0
  196. package/dist-cms/packages/media/media-types/search/manifests.js +4 -1
  197. package/dist-cms/packages/members/member/repository/member-repository-base.d.ts +8 -8
  198. package/dist-cms/packages/members/member/repository/member-repository-base.js +13 -12
  199. package/dist-cms/packages/members/member/search/constants.d.ts +1 -0
  200. package/dist-cms/packages/members/member/search/constants.js +1 -0
  201. package/dist-cms/packages/members/member/search/global-search/constants.d.ts +1 -0
  202. package/dist-cms/packages/members/member/search/global-search/constants.js +1 -0
  203. package/dist-cms/packages/members/member/search/global-search/manifests.d.ts +1 -0
  204. package/dist-cms/packages/members/member/search/global-search/manifests.js +22 -0
  205. package/dist-cms/packages/members/member/search/manifests.js +2 -0
  206. package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.js +1 -0
  207. package/dist-cms/packages/members/member-type/constants.d.ts +1 -0
  208. package/dist-cms/packages/members/member-type/constants.js +1 -0
  209. package/dist-cms/packages/members/member-type/search/constants.d.ts +2 -0
  210. package/dist-cms/packages/members/member-type/search/constants.js +2 -0
  211. package/dist-cms/packages/members/member-type/search/global-search/constants.d.ts +1 -0
  212. package/dist-cms/packages/members/member-type/search/global-search/constants.js +1 -0
  213. package/dist-cms/packages/members/member-type/search/global-search/manifests.d.ts +1 -0
  214. package/dist-cms/packages/members/member-type/search/global-search/manifests.js +22 -0
  215. package/dist-cms/packages/members/member-type/search/manifests.js +4 -1
  216. package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.d.ts +4 -0
  217. package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js +48 -1
  218. package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.d.ts +2 -2
  219. package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.js +95 -34
  220. package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.js +1 -0
  221. package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.js +6 -1
  222. package/dist-cms/packages/search/global-search/global-search-base.d.ts +11 -0
  223. package/dist-cms/packages/search/global-search/global-search-base.js +49 -0
  224. package/dist-cms/packages/search/global-search/global-search.extension.d.ts +15 -0
  225. package/dist-cms/packages/search/global-search/global-search.extension.js +1 -0
  226. package/dist-cms/packages/search/global-search/index.d.ts +1 -0
  227. package/dist-cms/packages/search/global-search/index.js +1 -0
  228. package/dist-cms/packages/search/global-search/types.d.ts +4 -0
  229. package/dist-cms/packages/search/global-search/types.js +1 -0
  230. package/dist-cms/packages/search/index.d.ts +1 -0
  231. package/dist-cms/packages/search/index.js +1 -0
  232. package/dist-cms/packages/search/search-modal/search-modal.element.d.ts +4 -4
  233. package/dist-cms/packages/search/search-modal/search-modal.element.js +40 -29
  234. package/dist-cms/packages/search/types.d.ts +1 -0
  235. package/dist-cms/packages/segment/package.json +8 -0
  236. package/dist-cms/packages/settings/package.json +8 -0
  237. package/dist-cms/packages/settings/vite.config.d.ts +2 -0
  238. package/dist-cms/packages/settings/vite.config.js +11 -0
  239. package/dist-cms/packages/sysinfo/components/sysinfo.element.js +49 -9
  240. package/dist-cms/packages/sysinfo/repository/sysinfo.repository.d.ts +3 -0
  241. package/dist-cms/packages/sysinfo/repository/sysinfo.repository.js +8 -0
  242. package/dist-cms/packages/templating/templates/constants.d.ts +1 -0
  243. package/dist-cms/packages/templating/templates/constants.js +1 -0
  244. package/dist-cms/packages/templating/templates/search/constants.d.ts +2 -0
  245. package/dist-cms/packages/templating/templates/search/constants.js +2 -0
  246. package/dist-cms/packages/templating/templates/search/global-search/constants.d.ts +1 -0
  247. package/dist-cms/packages/templating/templates/search/global-search/constants.js +1 -0
  248. package/dist-cms/packages/templating/templates/search/global-search/manifests.d.ts +1 -0
  249. package/dist-cms/packages/templating/templates/search/global-search/manifests.js +22 -0
  250. package/dist-cms/packages/templating/templates/search/manifests.js +4 -1
  251. package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.d.ts +6 -1
  252. package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.js +16 -6
  253. package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.d.ts +6 -1
  254. package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.js +27 -6
  255. package/dist-cms/packages/translation/package.json +8 -0
  256. package/dist-cms/packages/user/current-user/action/current-user-app-button.element.d.ts +1 -1
  257. package/dist-cms/packages/user/current-user/action/current-user-app-button.element.js +4 -8
  258. package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +0 -11
  259. package/dist-cms/packages/user/current-user/current-user.context.js +4 -1
  260. package/dist-cms/packages/user/current-user/external-login/manifests.js +0 -1
  261. package/dist-cms/packages/user/current-user/mfa-login/manifests.js +0 -1
  262. package/dist-cms/packages/user/current-user/repository/current-user.repository.d.ts +2 -2
  263. package/dist-cms/packages/user/current-user/repository/current-user.repository.js +8 -5
  264. package/dist-cms/packages/user/user/repository/user-repository-base.d.ts +7 -7
  265. package/dist-cms/packages/user/user/repository/user-repository-base.js +13 -12
  266. package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.js +4 -1
  267. package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.d.ts +4 -0
  268. package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.js +7 -1
  269. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  270. package/dist-cms/umbraco-package-schema.json +147 -0
  271. package/dist-cms/umbraco-package.json +1 -1
  272. package/dist-cms/vscode-html-custom-data.json +61 -15
  273. package/examples/modal-routed/dashboard.element.ts +1 -0
  274. package/examples/modal-routed/modal/example-modal.element.ts +1 -0
  275. package/examples/validation-context/validation-context-dashboard.ts +12 -12
  276. package/package.json +7 -7
  277. package/dist-cms/packages/content/content/content-property.context-token.d.ts +0 -3
  278. package/dist-cms/packages/content/content/content-property.context-token.js +0 -2
  279. package/dist-cms/packages/content/content/content-property.context.js +0 -14
  280. package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.d.ts +0 -21
  281. package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js +0 -63
@@ -6,22 +6,68 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { css, customElement, html, nothing, query, state, when } from '@umbraco-cms/backoffice/external/lit';
8
8
  import { isUmbracoFolder, UmbMediaTypeStructureRepository } from '@umbraco-cms/backoffice/media-type';
9
- import { umbBindToValidation, UmbValidationContext } from '@umbraco-cms/backoffice/validation';
9
+ import { UMB_VALIDATION_CONTEXT, umbBindToValidation, UmbObserveValidationStateController, UmbValidationContext, } from '@umbraco-cms/backoffice/validation';
10
10
  import { umbConfirmModal, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
11
- import { UmbDocumentDetailRepository, UmbDocumentUrlRepository } from '@umbraco-cms/backoffice/document';
12
- import { UmbMediaDetailRepository, UmbMediaUrlRepository } from '@umbraco-cms/backoffice/media';
11
+ import { UmbDocumentItemDataResolver, UmbDocumentItemRepository, UmbDocumentUrlRepository, UmbDocumentUrlsDataResolver, } from '@umbraco-cms/backoffice/document';
12
+ import { UmbMediaItemRepository, UmbMediaUrlRepository } from '@umbraco-cms/backoffice/media';
13
+ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
14
+ import { umbFocus } from '@umbraco-cms/backoffice/lit-element';
15
+ class UmbLinkPickerValueValidator extends UmbControllerBase {
16
+ #context;
17
+ #isValid = true;
18
+ get isValid() {
19
+ return this.#isValid;
20
+ }
21
+ #value;
22
+ #unique = 'UmbLinkPickerValueValidator';
23
+ setValue(value) {
24
+ this.#value = value;
25
+ this.validate();
26
+ }
27
+ getValue() {
28
+ return this.#value;
29
+ }
30
+ // The path to the data that this validator is validating.
31
+ #dataPath;
32
+ constructor(host, dataPath) {
33
+ super(host);
34
+ this.#dataPath = dataPath;
35
+ this.consumeContext(UMB_VALIDATION_CONTEXT, (context) => {
36
+ if (this.#context) {
37
+ this.#context.removeValidator(this);
38
+ }
39
+ this.#context = context;
40
+ context?.addValidator(this);
41
+ });
42
+ }
43
+ async validate() {
44
+ this.#isValid = !!this.getValue();
45
+ if (this.#isValid) {
46
+ this.#context?.messages.removeMessageByKey(this.#unique);
47
+ }
48
+ else {
49
+ this.#context?.messages.addMessage('client', this.#dataPath, '#linkPicker_modalAnchorValidationMessage', this.#unique);
50
+ }
51
+ }
52
+ reset() { }
53
+ focusFirstInvalidElement() { }
54
+ }
13
55
  let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModalBaseElement {
56
+ #propertyLayoutOrientation;
57
+ #validationContext;
14
58
  constructor() {
15
- super(...arguments);
59
+ super();
16
60
  this.#propertyLayoutOrientation = 'vertical';
17
61
  this.#validationContext = new UmbValidationContext(this);
18
62
  this._config = {
19
63
  hideAnchor: false,
20
64
  hideTarget: false,
21
65
  };
66
+ this._missingLinkUrl = false;
67
+ new UmbObserveValidationStateController(this, '$.type', (invalid) => {
68
+ this._missingLinkUrl = invalid;
69
+ });
22
70
  }
23
- #propertyLayoutOrientation;
24
- #validationContext;
25
71
  connectedCallback() {
26
72
  super.connectedCallback();
27
73
  if (this.data?.config) {
@@ -36,9 +82,10 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
36
82
  }
37
83
  this.#getMediaTypes();
38
84
  this.populateLinkUrl();
39
- }
40
- firstUpdated() {
41
- this._linkAnchorInput?.addValidator('valueMissing', () => this.localize.term('linkPicker_modalAnchorValidationMessage'), () => !this.value.link.name && !this.value.link.queryString);
85
+ const validator = new UmbLinkPickerValueValidator(this, '$.type');
86
+ this.observe(this.modalContext?.value, (value) => {
87
+ validator.setValue(value?.link.type);
88
+ });
42
89
  }
43
90
  async #getMediaTypes() {
44
91
  // Get all the media types, excluding the folders, so that files are selectable media items.
@@ -50,7 +97,7 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
50
97
  async populateLinkUrl() {
51
98
  // Documents and media have URLs saved in the local link format. Display the actual URL to align with what
52
99
  // the user sees when they selected it initially.
53
- if (!this.value.link?.unique || this.value.link?.url?.indexOf('localLink') === -1)
100
+ if (!this.value.link?.unique)
54
101
  return;
55
102
  let url = undefined;
56
103
  switch (this.value.link.type) {
@@ -120,21 +167,25 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
120
167
  if (unique) {
121
168
  switch (type) {
122
169
  case 'document': {
123
- const documentRepository = new UmbDocumentDetailRepository(this);
124
- const { data: documentData } = await documentRepository.requestByUnique(unique);
125
- if (documentData) {
126
- icon = documentData.documentType.icon;
127
- name = documentData.variants[0].name;
170
+ const documentRepository = new UmbDocumentItemRepository(this);
171
+ const { data: documentItems } = await documentRepository.requestItems([unique]);
172
+ const documentItem = documentItems?.[0];
173
+ if (documentItem) {
174
+ const itemDataResolver = new UmbDocumentItemDataResolver(this);
175
+ itemDataResolver.setData(documentItem);
176
+ icon = await itemDataResolver.getIcon();
177
+ name = await itemDataResolver.getName();
128
178
  url = await this.#getUrlForDocument(unique);
129
179
  }
130
180
  break;
131
181
  }
132
182
  case 'media': {
133
- const mediaRepository = new UmbMediaDetailRepository(this);
134
- const { data: mediaData } = await mediaRepository.requestByUnique(unique);
135
- if (mediaData) {
136
- icon = mediaData.mediaType.icon;
137
- name = mediaData.variants[0].name;
183
+ const mediaRepository = new UmbMediaItemRepository(this);
184
+ const { data: mediaData } = await mediaRepository.requestItems([unique]);
185
+ const mediaItem = mediaData?.[0];
186
+ if (mediaItem) {
187
+ icon = mediaItem.mediaType.icon;
188
+ name = mediaItem.variants[0].name;
138
189
  url = await this.#getUrlForMedia(unique);
139
190
  }
140
191
  break;
@@ -142,6 +193,10 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
142
193
  default:
143
194
  break;
144
195
  }
196
+ // The selection was removed
197
+ }
198
+ else {
199
+ this.#resetUrl();
145
200
  }
146
201
  const link = {
147
202
  icon,
@@ -156,7 +211,11 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
156
211
  async #getUrlForDocument(unique) {
157
212
  const documentUrlRepository = new UmbDocumentUrlRepository(this);
158
213
  const { data: documentUrlData } = await documentUrlRepository.requestItems([unique]);
159
- return documentUrlData && documentUrlData[0].urls.length > 0 ? (documentUrlData?.[0].urls[0].url ?? '') : '';
214
+ const urlsItem = documentUrlData?.[0];
215
+ const dataResolver = new UmbDocumentUrlsDataResolver(this);
216
+ dataResolver.setData(urlsItem?.urls);
217
+ const resolvedUrls = await dataResolver.getUrls();
218
+ return resolvedUrls?.[0]?.url ?? '';
160
219
  }
161
220
  async #getUrlForMedia(unique) {
162
221
  const mediaUrlRepository = new UmbMediaUrlRepository(this);
@@ -172,6 +231,9 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
172
231
  confirmLabel: this.localize.term('linkPicker_resetUrlLabel'),
173
232
  });
174
233
  }
234
+ this.#resetUrl();
235
+ }
236
+ #resetUrl() {
175
237
  this.#partialUpdateLink({ type: null, url: null });
176
238
  }
177
239
  async #onSubmit() {
@@ -190,7 +252,7 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
190
252
  render() {
191
253
  return html `
192
254
  <umb-body-layout
193
- headline=${this.localize.term(this.modalContext?.data.isNew ? 'defaultdialogs_addLink' : 'defaultdialogs_updateLink')}>
255
+ headline=${this.localize.term(this.modalContext?.data?.isNew ? 'defaultdialogs_addLink' : 'defaultdialogs_updateLink')}>
194
256
  <uui-box>
195
257
  ${this.#renderLinkType()} ${this.#renderLinkAnchorInput()} ${this.#renderLinkTitleInput()}
196
258
  ${this.#renderLinkTargetInput()}
@@ -200,8 +262,7 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
200
262
  <uui-button
201
263
  color="positive"
202
264
  look="primary"
203
- label=${this.localize.term(this.modalContext?.data.isNew ? 'general_add' : 'general_update')}
204
- ?disabled=${!this.value.link.type}
265
+ label=${this.localize.term(this.modalContext?.data?.isNew ? 'general_add' : 'general_update')}
205
266
  @click=${this.#onSubmit}></uui-button>
206
267
  </div>
207
268
  </umb-body-layout>
@@ -212,7 +273,8 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
212
273
  <umb-property-layout
213
274
  orientation=${this.#propertyLayoutOrientation}
214
275
  label=${this.localize.term('linkPicker_modalSource')}
215
- mandatory>
276
+ mandatory
277
+ ?invalid=${this._missingLinkUrl}>
216
278
  <div slot="editor">
217
279
  ${this.#renderLinkTypeSelection()} ${this.#renderDocumentPicker()} ${this.#renderMediaPicker()}
218
280
  ${this.#renderLinkUrlInput()} ${this.#renderLinkUrlInputReadOnly()}
@@ -273,9 +335,10 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
273
335
  placeholder=${this.localize.term('placeholders_enterUrl')}
274
336
  .value=${this.value.link.url ?? ''}
275
337
  ?disabled=${!!this.value.link.unique}
276
- ?required=${this._config.hideAnchor}
277
- @change=${this.#onLinkUrlInput}
278
- ${umbBindToValidation(this)}>
338
+ required
339
+ @input=${this.#onLinkUrlInput}
340
+ ${umbBindToValidation(this)}
341
+ ${umbFocus()}>
279
342
  ${when(!this.value.link.unique, () => html `
280
343
  <div slot="append">
281
344
  <uui-button
@@ -305,12 +368,10 @@ let UmbLinkPickerModalElement = class UmbLinkPickerModalElement extends UmbModal
305
368
  <uui-input
306
369
  data-mark="input:anchor"
307
370
  slot="editor"
308
- id="link-anchor"
309
371
  label=${this.localize.term('placeholders_anchor')}
310
372
  placeholder=${this.localize.term('placeholders_anchor')}
311
373
  .value=${this.value.link.queryString ?? ''}
312
- @change=${this.#onLinkAnchorInput}
313
- ${umbBindToValidation(this)}></uui-input>
374
+ @change=${this.#onLinkAnchorInput}></uui-input>
314
375
  </umb-property-layout>
315
376
  `;
316
377
  }
@@ -371,15 +432,15 @@ __decorate([
371
432
  __decorate([
372
433
  state()
373
434
  ], UmbLinkPickerModalElement.prototype, "_config", void 0);
435
+ __decorate([
436
+ state()
437
+ ], UmbLinkPickerModalElement.prototype, "_missingLinkUrl", void 0);
374
438
  __decorate([
375
439
  query('umb-input-document')
376
440
  ], UmbLinkPickerModalElement.prototype, "_documentPickerElement", void 0);
377
441
  __decorate([
378
442
  query('umb-input-media')
379
443
  ], UmbLinkPickerModalElement.prototype, "_mediaPickerElement", void 0);
380
- __decorate([
381
- query('#link-anchor', true)
382
- ], UmbLinkPickerModalElement.prototype, "_linkAnchorInput", void 0);
383
444
  UmbLinkPickerModalElement = __decorate([
384
445
  customElement('umb-link-picker-modal')
385
446
  ], UmbLinkPickerModalElement);
@@ -44,6 +44,7 @@ let UmbCreatedPackagesSectionViewElement = class UmbCreatedPackagesSectionViewEl
44
44
  });
45
45
  routes.push({
46
46
  path: '',
47
+ pathMatch: 'full',
47
48
  redirectTo: 'overview',
48
49
  });
49
50
  routes.push({
@@ -78,7 +78,7 @@ let UmbEntityReferencesWorkspaceInfoAppElement = class UmbEntityReferencesWorksp
78
78
  return nothing;
79
79
  return html `
80
80
  <umb-workspace-info-app-layout headline="#references_labelUsedByItems">
81
- ${this.#renderItems()} ${this.#renderReferencePagination()}
81
+ <div id="content">${this.#renderItems()} ${this.#renderReferencePagination()}</div>
82
82
  </umb-workspace-info-app-layout>
83
83
  `;
84
84
  }
@@ -110,6 +110,11 @@ let UmbEntityReferencesWorkspaceInfoAppElement = class UmbEntityReferencesWorksp
110
110
  display: contents;
111
111
  }
112
112
 
113
+ #content {
114
+ display: block;
115
+ padding: var(--uui-size-space-3) var(--uui-size-space-4);
116
+ }
117
+
113
118
  .pagination-container {
114
119
  display: flex;
115
120
  justify-content: center;
@@ -0,0 +1,11 @@
1
+ import type { ManifestGlobalSearch, UmbGlobalSearchApi, UmbSearchProvider, UmbSearchRequestArgs } from '../types.js';
2
+ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
3
+ export declare abstract class UmbGlobalSearchBase<SearchProviderType extends UmbSearchProvider = UmbSearchProvider> extends UmbControllerBase implements UmbGlobalSearchApi {
4
+ #private;
5
+ protected _manifest?: ManifestGlobalSearch;
6
+ protected _searchProvider?: SearchProviderType;
7
+ protected _init: Promise<void>;
8
+ set manifest(manifest: ManifestGlobalSearch | undefined);
9
+ get manifest(): ManifestGlobalSearch | undefined;
10
+ search(args: UmbSearchRequestArgs): Promise<import("@umbraco-cms/backoffice/repository").UmbRepositoryResponse<import("@umbraco-cms/backoffice/repository").UmbPagedModel<import("../types.js").UmbSearchResultItemModel>>>;
11
+ }
@@ -0,0 +1,49 @@
1
+ import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api';
2
+ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
3
+ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
4
+ export class UmbGlobalSearchBase extends UmbControllerBase {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.#initialized = false;
8
+ this._init = new Promise((resolve) => {
9
+ if (this.#initialized) {
10
+ resolve();
11
+ }
12
+ else {
13
+ this.#initResolver = resolve;
14
+ }
15
+ });
16
+ }
17
+ #initResolver;
18
+ #initialized;
19
+ #checkIfInitialized() {
20
+ if (this._searchProvider) {
21
+ this.#initialized = true;
22
+ this.#initResolver?.();
23
+ }
24
+ }
25
+ set manifest(manifest) {
26
+ if (this._manifest === manifest)
27
+ return;
28
+ this._manifest = manifest;
29
+ this.#observeSearchProvider(this._manifest?.meta.searchProviderAlias);
30
+ }
31
+ get manifest() {
32
+ return this._manifest;
33
+ }
34
+ #observeSearchProvider(alias) {
35
+ if (!alias)
36
+ throw new Error('Search provider alias is required');
37
+ new UmbExtensionApiInitializer(this, umbExtensionsRegistry, alias, [this], (permitted, ctrl) => {
38
+ this._searchProvider = permitted ? ctrl.api : undefined;
39
+ this.#checkIfInitialized();
40
+ });
41
+ }
42
+ async search(args) {
43
+ await this._init;
44
+ if (!this._searchProvider) {
45
+ throw new Error('Search provider is not available');
46
+ }
47
+ return await this._searchProvider.search({ query: args.query });
48
+ }
49
+ }
@@ -0,0 +1,15 @@
1
+ import type { UmbGlobalSearchApi } from './types.js';
2
+ import type { ManifestWithDynamicConditions, ManifestApi } from '@umbraco-cms/backoffice/extension-api';
3
+ export interface ManifestGlobalSearch extends ManifestApi<UmbGlobalSearchApi>, ManifestWithDynamicConditions<UmbExtensionConditionConfig> {
4
+ type: 'globalSearch';
5
+ meta: MetaGlobalSearch;
6
+ }
7
+ export interface MetaGlobalSearch {
8
+ label: string;
9
+ searchProviderAlias: string;
10
+ }
11
+ declare global {
12
+ interface UmbExtensionManifestMap {
13
+ umbGlobalSearch: ManifestGlobalSearch;
14
+ }
15
+ }
@@ -0,0 +1 @@
1
+ export * from './global-search-base.js';
@@ -0,0 +1 @@
1
+ export * from './global-search-base.js';
@@ -0,0 +1,4 @@
1
+ import type { UmbSearchProvider, UmbSearchRequestArgs, UmbSearchResultItemModel } from '../types.js';
2
+ export interface UmbGlobalSearchApi<SearchResultItemType extends UmbSearchResultItemModel = UmbSearchResultItemModel, SearchRequestArgsType extends UmbSearchRequestArgs = UmbSearchRequestArgs> extends UmbSearchProvider<SearchResultItemType, SearchRequestArgsType> {
3
+ }
4
+ export type * from './global-search.extension.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * from './constants.js';
2
+ export * from './global-search/index.js';
2
3
  export type * from './types.js';
@@ -1 +1,2 @@
1
1
  export * from './constants.js';
2
+ export * from './global-search/index.js';
@@ -2,9 +2,9 @@ import type { UmbSearchProvider, UmbSearchResultItemModel } from '../types.js';
2
2
  import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
3
3
  import type { UmbModalContext } from '@umbraco-cms/backoffice/modal';
4
4
  import '../search-result/search-result-item.element.js';
5
- type SearchProvider = {
5
+ type GlobalSearchers = {
6
6
  name: string;
7
- api: UmbSearchProvider<UmbSearchResultItemModel>;
7
+ api?: UmbSearchProvider<UmbSearchResultItemModel>;
8
8
  alias: string;
9
9
  };
10
10
  export declare class UmbSearchModalElement extends UmbLitElement {
@@ -14,8 +14,8 @@ export declare class UmbSearchModalElement extends UmbLitElement {
14
14
  modalContext?: UmbModalContext;
15
15
  private _search;
16
16
  private _searchResults;
17
- private _searchProviders;
18
- _currentProvider?: SearchProvider;
17
+ private _globalSearchers;
18
+ _currentGlobalSearcher?: GlobalSearchers;
19
19
  _loading: boolean;
20
20
  constructor();
21
21
  connectedCallback(): void;
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { css, html, nothing, repeat, customElement, query, state, property, when, } from '@umbraco-cms/backoffice/external/lit';
8
8
  import { UmbExtensionsManifestInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api';
9
- import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
9
+ import { createExtensionApiByAlias, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
10
10
  import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
11
11
  import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
12
12
  import '../search-result/search-result-item.element.js';
@@ -18,7 +18,7 @@ let UmbSearchModalElement = class UmbSearchModalElement extends UmbLitElement {
18
18
  super();
19
19
  this._search = '';
20
20
  this._searchResults = [];
21
- this._searchProviders = [];
21
+ this._globalSearchers = [];
22
22
  this._loading = false;
23
23
  this.#searchItemNavIndex = 0;
24
24
  this.#inputTimerAmount = 300;
@@ -28,7 +28,7 @@ let UmbSearchModalElement = class UmbSearchModalElement extends UmbLitElement {
28
28
  return;
29
29
  this.modalContext?.reject();
30
30
  };
31
- this.#observeProviders();
31
+ this.#observeGlobalSearchers();
32
32
  }
33
33
  connectedCallback() {
34
34
  super.connectedCallback();
@@ -44,22 +44,33 @@ let UmbSearchModalElement = class UmbSearchModalElement extends UmbLitElement {
44
44
  document.removeEventListener('click', this.#onDocumentClick);
45
45
  }
46
46
  #onDocumentClick;
47
- #observeProviders() {
48
- new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'searchProvider', null, async (providers) => {
49
- const searchProviders = [];
50
- for (const provider of providers) {
51
- const api = await createExtensionApi(this, provider.manifest);
52
- if (api) {
53
- searchProviders.push({
54
- name: provider.manifest.meta?.label || provider.manifest.name,
55
- api,
56
- alias: provider.alias,
57
- });
47
+ #observeGlobalSearchers() {
48
+ new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'globalSearch', null, async (controllers) => {
49
+ const globalSearch = [];
50
+ for (const controller of controllers) {
51
+ let searchApi = undefined;
52
+ if (controller.manifest.api) {
53
+ searchApi = await createExtensionApi(this, controller.manifest);
54
+ if (searchApi) {
55
+ // TODO: we need to investigate if it makes sense to have a function that does this when creating a new extension api? [MR]
56
+ searchApi.manifest = controller.manifest;
57
+ }
58
+ }
59
+ else {
60
+ searchApi = await createExtensionApiByAlias(this, controller.manifest.meta?.searchProviderAlias);
61
+ }
62
+ if (searchApi) {
63
+ const searcher = {
64
+ name: controller.manifest.meta?.label || controller.manifest.name,
65
+ api: searchApi,
66
+ alias: controller.alias,
67
+ };
68
+ globalSearch.push(searcher);
58
69
  }
59
70
  }
60
- this._searchProviders = searchProviders;
61
- if (this._searchProviders.length > 0) {
62
- this._currentProvider = this._searchProviders[0];
71
+ this._globalSearchers = globalSearch;
72
+ if (this._globalSearchers.length > 0) {
73
+ this._currentGlobalSearcher = this._globalSearchers[0];
63
74
  }
64
75
  });
65
76
  }
@@ -89,18 +100,18 @@ let UmbSearchModalElement = class UmbSearchModalElement extends UmbLitElement {
89
100
  this._inputFakeCursor.style.display = 'none';
90
101
  }
91
102
  }
92
- #setCurrentProvider(searchProvider) {
93
- if (this._currentProvider === searchProvider)
103
+ #setCurrentSearcher(searcher) {
104
+ if (this._currentGlobalSearcher === searcher)
94
105
  return;
95
- this._currentProvider = searchProvider;
106
+ this._currentGlobalSearcher = searcher;
96
107
  this.#focusInput();
97
108
  this._loading = true;
98
109
  this._searchResults = [];
99
110
  this.#updateSearchResults();
100
111
  }
101
112
  async #updateSearchResults() {
102
- if (this._search && this._currentProvider?.api) {
103
- const { data } = await this._currentProvider.api.search({ query: this._search });
113
+ if (this._search && this._currentGlobalSearcher?.api) {
114
+ const { data } = await this._currentGlobalSearcher.api.search({ query: this._search });
104
115
  if (!data)
105
116
  return;
106
117
  this._searchResults = data.items;
@@ -246,13 +257,13 @@ let UmbSearchModalElement = class UmbSearchModalElement extends UmbLitElement {
246
257
  #renderSearchTags() {
247
258
  return html `
248
259
  <div id="search-providers">
249
- ${repeat(this._searchProviders, (searchProvider) => searchProvider.alias, (searchProvider) => html `
260
+ ${repeat(this._globalSearchers, (searcher) => searcher.alias, (searcher) => html `
250
261
  <button
251
- class="search-provider ${this._currentProvider?.alias === searchProvider.alias ? 'active' : ''}"
252
- data-provider-alias=${searchProvider.alias}
253
- @click=${() => this.#setCurrentProvider(searchProvider)}
262
+ class="search-provider ${this._currentGlobalSearcher?.alias === searcher.alias ? 'active' : ''}"
263
+ data-provider-alias=${searcher.alias}
264
+ @click=${() => this.#setCurrentSearcher(searcher)}
254
265
  @keydown=${() => ''}>
255
- ${searchProvider.name}
266
+ ${searcher.name}
256
267
  </button>
257
268
  `)}
258
269
  </div>
@@ -487,10 +498,10 @@ __decorate([
487
498
  ], UmbSearchModalElement.prototype, "_searchResults", void 0);
488
499
  __decorate([
489
500
  state()
490
- ], UmbSearchModalElement.prototype, "_searchProviders", void 0);
501
+ ], UmbSearchModalElement.prototype, "_globalSearchers", void 0);
491
502
  __decorate([
492
503
  state()
493
- ], UmbSearchModalElement.prototype, "_currentProvider", void 0);
504
+ ], UmbSearchModalElement.prototype, "_currentGlobalSearcher", void 0);
494
505
  __decorate([
495
506
  state()
496
507
  ], UmbSearchModalElement.prototype, "_loading", void 0);
@@ -5,6 +5,7 @@ import type { UmbPagedModel, UmbRepositoryResponse } from '@umbraco-cms/backoffi
5
5
  export type { UmbSearchDataSource } from './search-data-source.interface.js';
6
6
  export type { UmbSearchRepository } from './search-repository.interface.js';
7
7
  export type * from './extensions/types.js';
8
+ export type * from './global-search/types.js';
8
9
  export type UmbSearchResultModel = SearchResultResponseModelReadable;
9
10
  export type UmbSearchResultItemModel = {
10
11
  entityType: string;
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@umbraco-backoffice/segment",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "vite build"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@umbraco-backoffice/settings",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "vite build"
7
+ }
8
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { defineConfig } from 'vite';
2
+ import { rmSync } from 'fs';
3
+ import { getDefaultConfig } from '../../vite-config-base';
4
+ const dist = '../../../dist-cms/packages/settings';
5
+ // delete the unbundled dist folder
6
+ rmSync(dist, { recursive: true, force: true });
7
+ export default defineConfig({
8
+ ...getDefaultConfig({
9
+ dist,
10
+ }),
11
+ });