@umbraco-cms/backoffice 16.0.0-rc2 → 16.0.0-rc3
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.
- package/dist-cms/custom-elements.json +80 -0
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.d.ts +1 -1
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.js +7 -7
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.js +1 -1
- package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +1 -2
- package/dist-cms/packages/clipboard/property/value-translator/copy/clipboard-copy-translator-value-resolver.js +6 -1
- package/dist-cms/packages/content/content/controller/merge-content-variant-data.controller.js +1 -0
- package/dist-cms/packages/content/content/property-dataset-context/element-property-dataset.context.js +4 -1
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +4 -0
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.d.ts +1 -1
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js +7 -7
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js +1 -1
- package/dist-cms/packages/core/backend-api/types.gen.d.ts +2 -0
- package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +1 -0
- package/dist-cms/packages/core/collection/default/collection-default.context.js +3 -0
- package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +4 -1
- package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
- package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -0
- package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.d.ts +9 -0
- package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.js +80 -2
- package/dist-cms/packages/core/picker/search/picker-search-result.element.js +1 -2
- package/dist-cms/packages/core/property/manifests.d.ts +1 -1
- package/dist-cms/packages/core/property/property-dataset/property-dataset-base-context.js +7 -2
- package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.d.ts +15 -2
- package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.js +22 -15
- package/dist-cms/packages/core/property/property-value-cloner/property-value-clone.controller.js +2 -0
- package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +6 -1
- package/dist-cms/packages/core/section/section-default.element.js +3 -0
- package/dist-cms/packages/core/temporary-file/config/config.repository.d.ts +1 -0
- package/dist-cms/packages/core/temporary-file/config/config.repository.js +7 -3
- package/dist-cms/packages/core/temporary-file/config/config.server.data-source.js +1 -1
- package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
- package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +15 -4
- package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
- package/dist-cms/packages/core/utils/media/image-size.function.d.ts +5 -3
- package/dist-cms/packages/core/utils/media/image-size.function.js +9 -11
- package/dist-cms/packages/core/validation/controllers/bind-server-validation-to-form-control.controller.js +1 -1
- package/dist-cms/packages/core/validation/controllers/form-control-validator.controller.js +4 -4
- package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-property-path-translation.controller.js +1 -0
- package/dist-cms/packages/core/validation/controllers/validation.controller.js +4 -4
- package/dist-cms/packages/core/variant/constants.d.ts +1 -0
- package/dist-cms/packages/core/variant/constants.js +1 -0
- package/dist-cms/packages/core/variant/context/constants.d.ts +1 -0
- package/dist-cms/packages/core/variant/context/constants.js +1 -0
- package/dist-cms/packages/core/variant/context/index.d.ts +1 -0
- package/dist-cms/packages/core/variant/context/index.js +1 -0
- package/dist-cms/packages/core/variant/context/variant.context.d.ts +91 -0
- package/dist-cms/packages/core/variant/context/variant.context.js +141 -0
- package/dist-cms/packages/core/variant/context/variant.context.token.d.ts +3 -0
- package/dist-cms/packages/core/variant/context/variant.context.token.js +2 -0
- package/dist-cms/packages/core/variant/index.d.ts +2 -0
- package/dist-cms/packages/core/variant/index.js +2 -0
- package/dist-cms/packages/core/workspace/info-app/global-components/workspace-info-app-layout.element.js +0 -4
- package/dist-cms/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.js +4 -1
- package/dist-cms/packages/data-type/constants.d.ts +1 -0
- package/dist-cms/packages/data-type/constants.js +1 -0
- package/dist-cms/packages/data-type/search/constants.d.ts +2 -0
- package/dist-cms/packages/data-type/search/constants.js +2 -0
- package/dist-cms/packages/data-type/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/data-type/search/global-search/constants.js +1 -0
- package/dist-cms/packages/data-type/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/data-type/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/data-type/search/manifests.js +2 -0
- package/dist-cms/packages/dictionary/search/constants.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/constants.js +1 -0
- package/dist-cms/packages/dictionary/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/global-search/constants.js +1 -0
- package/dist-cms/packages/dictionary/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/dictionary/search/manifests.js +2 -0
- package/dist-cms/packages/documents/document-types/search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/constants.js +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/constants.js +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/documents/document-types/search/manifests.js +2 -0
- package/dist-cms/packages/documents/documents/collection/document-collection.context.d.ts +2 -0
- package/dist-cms/packages/documents/documents/collection/document-collection.context.js +23 -0
- package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +4 -0
- package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +2 -2
- package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +55 -68
- package/dist-cms/packages/documents/documents/item/document-item-ref.element.d.ts +4 -0
- package/dist-cms/packages/documents/documents/item/document-item-ref.element.js +33 -2
- package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.d.ts +1 -0
- package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.js +14 -8
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.d.ts +0 -1
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.js +0 -42
- package/dist-cms/packages/documents/documents/search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/constants.js +1 -0
- package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +3 -2
- package/dist-cms/packages/documents/documents/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/constants.js +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/document-global-search.d.ts +6 -0
- package/dist-cms/packages/documents/documents/search/global-search/document-global-search.js +15 -0
- package/dist-cms/packages/documents/documents/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/manifests.js +23 -0
- package/dist-cms/packages/documents/documents/search/manifests.js +2 -0
- package/dist-cms/packages/documents/documents/search/types.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.d.ts +37 -0
- package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.js +78 -0
- package/dist-cms/packages/documents/documents/url/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/index.js +1 -0
- package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.d.ts +0 -1
- package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.js +29 -24
- package/dist-cms/packages/documents/documents/url/repository/types.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +29 -0
- package/dist-cms/packages/language/global-contexts/app-language.context.js +14 -12
- package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +3 -0
- package/dist-cms/packages/media/media/components/input-media/input-media.context.js +4 -0
- package/dist-cms/packages/media/media/constants.d.ts +1 -1
- package/dist-cms/packages/media/media/constants.js +1 -1
- package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +8 -0
- package/dist-cms/packages/media/media/search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media/search/constants.js +1 -0
- package/dist-cms/packages/media/media/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media/search/global-search/constants.js +1 -0
- package/dist-cms/packages/media/media/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/media/media/search/global-search/manifests.js +23 -0
- package/dist-cms/packages/media/media/search/global-search/media-global-search.d.ts +15 -0
- package/dist-cms/packages/media/media/search/global-search/media-global-search.js +15 -0
- package/dist-cms/packages/media/media/search/manifests.js +2 -0
- package/dist-cms/packages/media/media/search/media-search.server.data-source.js +3 -2
- package/dist-cms/packages/media/media/search/types.d.ts +1 -0
- package/dist-cms/packages/media/media-types/constants.d.ts +1 -0
- package/dist-cms/packages/media/media-types/constants.js +1 -0
- package/dist-cms/packages/media/media-types/search/constants.d.ts +2 -0
- package/dist-cms/packages/media/media-types/search/constants.js +2 -0
- package/dist-cms/packages/media/media-types/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/constants.js +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/media/media-types/search/manifests.js +4 -1
- package/dist-cms/packages/members/member/search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member/search/constants.js +1 -0
- package/dist-cms/packages/members/member/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member/search/global-search/constants.js +1 -0
- package/dist-cms/packages/members/member/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/members/member/search/manifests.js +2 -0
- package/dist-cms/packages/members/member-type/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/constants.js +1 -0
- package/dist-cms/packages/members/member-type/search/constants.d.ts +2 -0
- package/dist-cms/packages/members/member-type/search/constants.js +2 -0
- package/dist-cms/packages/members/member-type/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/constants.js +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/members/member-type/search/manifests.js +4 -1
- package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.d.ts +4 -0
- package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js +48 -1
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.d.ts +2 -2
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.js +95 -34
- package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.js +6 -1
- package/dist-cms/packages/search/global-search/global-search-base.d.ts +11 -0
- package/dist-cms/packages/search/global-search/global-search-base.js +49 -0
- package/dist-cms/packages/search/global-search/global-search.extension.d.ts +15 -0
- package/dist-cms/packages/search/global-search/global-search.extension.js +1 -0
- package/dist-cms/packages/search/global-search/index.d.ts +1 -0
- package/dist-cms/packages/search/global-search/index.js +1 -0
- package/dist-cms/packages/search/global-search/types.d.ts +4 -0
- package/dist-cms/packages/search/global-search/types.js +1 -0
- package/dist-cms/packages/search/index.d.ts +1 -0
- package/dist-cms/packages/search/index.js +1 -0
- package/dist-cms/packages/search/search-modal/search-modal.element.d.ts +4 -4
- package/dist-cms/packages/search/search-modal/search-modal.element.js +40 -29
- package/dist-cms/packages/search/types.d.ts +1 -0
- package/dist-cms/packages/sysinfo/components/sysinfo.element.js +49 -9
- package/dist-cms/packages/sysinfo/repository/sysinfo.repository.d.ts +3 -0
- package/dist-cms/packages/sysinfo/repository/sysinfo.repository.js +8 -0
- package/dist-cms/packages/templating/templates/constants.d.ts +1 -0
- package/dist-cms/packages/templating/templates/constants.js +1 -0
- package/dist-cms/packages/templating/templates/search/constants.d.ts +2 -0
- package/dist-cms/packages/templating/templates/search/constants.js +2 -0
- package/dist-cms/packages/templating/templates/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/constants.js +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/templating/templates/search/manifests.js +4 -1
- package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.d.ts +6 -1
- package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.js +16 -6
- package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.d.ts +6 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.js +27 -6
- package/dist-cms/packages/user/current-user/action/current-user-app-button.element.d.ts +1 -1
- package/dist-cms/packages/user/current-user/action/current-user-app-button.element.js +4 -8
- package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +0 -11
- package/dist-cms/packages/user/current-user/external-login/manifests.js +0 -1
- package/dist-cms/packages/user/current-user/mfa-login/manifests.js +0 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +147 -0
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +48 -8
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const UMB_MEMBER_TYPE_GLOBAL_SEARCH_ALIAS = 'Umb.GlobalSearch.MemberType';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const manifests: Array<UmbExtensionManifest>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UMB_MEMBER_TYPE_SEARCH_PROVIDER_ALIAS } from '../constants.js';
|
|
2
|
+
import { UMB_MEMBER_TYPE_GLOBAL_SEARCH_ALIAS } from './constants.js';
|
|
3
|
+
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
|
4
|
+
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
|
5
|
+
export const manifests = [
|
|
6
|
+
{
|
|
7
|
+
name: 'Member Type Global Search',
|
|
8
|
+
alias: UMB_MEMBER_TYPE_GLOBAL_SEARCH_ALIAS,
|
|
9
|
+
type: 'globalSearch',
|
|
10
|
+
weight: 200,
|
|
11
|
+
meta: {
|
|
12
|
+
label: 'Member Types',
|
|
13
|
+
searchProviderAlias: UMB_MEMBER_TYPE_SEARCH_PROVIDER_ALIAS,
|
|
14
|
+
},
|
|
15
|
+
conditions: [
|
|
16
|
+
{
|
|
17
|
+
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
|
18
|
+
match: UMB_SETTINGS_SECTION_ALIAS,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
];
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { UMB_MEMBER_TYPE_ENTITY_TYPE } from '../entity.js';
|
|
2
|
+
import { UMB_MEMBER_TYPE_SEARCH_PROVIDER_ALIAS } from './constants.js';
|
|
3
|
+
import { manifests as globalSearchManifests } from './global-search/manifests.js';
|
|
2
4
|
export const manifests = [
|
|
3
5
|
{
|
|
4
6
|
name: 'Member Type Search Provider',
|
|
5
|
-
alias:
|
|
7
|
+
alias: UMB_MEMBER_TYPE_SEARCH_PROVIDER_ALIAS,
|
|
6
8
|
type: 'searchProvider',
|
|
7
9
|
api: () => import('./member-type.search-provider.js'),
|
|
8
10
|
weight: 200,
|
|
@@ -16,4 +18,5 @@ export const manifests = [
|
|
|
16
18
|
type: 'searchResultItem',
|
|
17
19
|
forEntityTypes: [UMB_MEMBER_TYPE_ENTITY_TYPE],
|
|
18
20
|
},
|
|
21
|
+
...globalSearchManifests,
|
|
19
22
|
];
|
package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.d.ts
CHANGED
|
@@ -70,6 +70,10 @@ export declare class UmbInputMultiUrlElement extends UmbInputMultiUrlElement_bas
|
|
|
70
70
|
get readonly(): boolean;
|
|
71
71
|
set readonly(value: boolean);
|
|
72
72
|
private _modalRoute?;
|
|
73
|
+
_resolvedLinkUrls: Array<{
|
|
74
|
+
unique: string;
|
|
75
|
+
url: string;
|
|
76
|
+
}>;
|
|
73
77
|
constructor();
|
|
74
78
|
render(): import("lit-html").TemplateResult<1>;
|
|
75
79
|
static styles: import("lit").CSSResult[];
|
package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js
CHANGED
|
@@ -13,6 +13,8 @@ import { umbConfirmModal } from '@umbraco-cms/backoffice/modal';
|
|
|
13
13
|
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
|
|
14
14
|
import { UmbSorterController } from '@umbraco-cms/backoffice/sorter';
|
|
15
15
|
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
|
|
16
|
+
import { UmbDocumentUrlRepository, UmbDocumentUrlsDataResolver } from '@umbraco-cms/backoffice/document';
|
|
17
|
+
import { UmbMediaUrlRepository } from '@umbraco-cms/backoffice/media';
|
|
16
18
|
/**
|
|
17
19
|
* @element umb-input-multi-url
|
|
18
20
|
* @fires change - when the value of the input changes
|
|
@@ -46,6 +48,7 @@ let UmbInputMultiUrlElement = class UmbInputMultiUrlElement extends UUIFormContr
|
|
|
46
48
|
this.#urls = [...data]; // Unfreeze data coming from State, so we can manipulate it.
|
|
47
49
|
super.value = this.#urls.map((x) => x.url).join(',');
|
|
48
50
|
this.#sorter.setModel(this.#urls);
|
|
51
|
+
this.#populateLinksUrl();
|
|
49
52
|
}
|
|
50
53
|
get urls() {
|
|
51
54
|
return this.#urls;
|
|
@@ -104,6 +107,7 @@ let UmbInputMultiUrlElement = class UmbInputMultiUrlElement extends UUIFormContr
|
|
|
104
107
|
this.maxMessage = 'This field exceeds the allowed amount of items';
|
|
105
108
|
this.#urls = [];
|
|
106
109
|
this.#readonly = false;
|
|
110
|
+
this._resolvedLinkUrls = [];
|
|
107
111
|
this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && this.urls.length < this.min);
|
|
108
112
|
this.addValidator('rangeOverflow', () => this.maxMessage, () => !!this.max && this.urls.length > this.max);
|
|
109
113
|
this.#linkPickerModal = new UmbModalRouteRegistrationController(this, UMB_LINK_PICKER_MODAL)
|
|
@@ -160,6 +164,45 @@ let UmbInputMultiUrlElement = class UmbInputMultiUrlElement extends UUIFormContr
|
|
|
160
164
|
this._modalRoute = routeBuilder;
|
|
161
165
|
});
|
|
162
166
|
}
|
|
167
|
+
#populateLinksUrl() {
|
|
168
|
+
// Documents and media have URLs saved in the local link format. Display the actual URL to align with what
|
|
169
|
+
// the user sees when they selected it initially.
|
|
170
|
+
this.#urls.forEach(async (link) => {
|
|
171
|
+
if (!link.unique)
|
|
172
|
+
return;
|
|
173
|
+
let url = undefined;
|
|
174
|
+
switch (link.type) {
|
|
175
|
+
case 'document': {
|
|
176
|
+
url = await this.#getUrlForDocument(link.unique);
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case 'media': {
|
|
180
|
+
url = await this.#getUrlForMedia(link.unique);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
default:
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
if (url) {
|
|
187
|
+
const resolvedUrl = { unique: link.unique, url };
|
|
188
|
+
this._resolvedLinkUrls = [...this._resolvedLinkUrls, resolvedUrl];
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
async #getUrlForDocument(unique) {
|
|
193
|
+
const documentUrlRepository = new UmbDocumentUrlRepository(this);
|
|
194
|
+
const { data: documentUrlData } = await documentUrlRepository.requestItems([unique]);
|
|
195
|
+
const urlsItem = documentUrlData?.[0];
|
|
196
|
+
const dataResolver = new UmbDocumentUrlsDataResolver(this);
|
|
197
|
+
dataResolver.setData(urlsItem?.urls);
|
|
198
|
+
const resolvedUrls = await dataResolver.getUrls();
|
|
199
|
+
return resolvedUrls?.[0]?.url ?? '';
|
|
200
|
+
}
|
|
201
|
+
async #getUrlForMedia(unique) {
|
|
202
|
+
const mediaUrlRepository = new UmbMediaUrlRepository(this);
|
|
203
|
+
const { data: mediaUrlData } = await mediaUrlRepository.requestItems([unique]);
|
|
204
|
+
return mediaUrlData?.[0].url ?? '';
|
|
205
|
+
}
|
|
163
206
|
async #requestRemoveItem(index) {
|
|
164
207
|
const item = this.#urls[index];
|
|
165
208
|
if (!item)
|
|
@@ -227,12 +270,13 @@ let UmbInputMultiUrlElement = class UmbInputMultiUrlElement extends UUIFormContr
|
|
|
227
270
|
#renderItem(link, index) {
|
|
228
271
|
const unique = this.#getUnique(link);
|
|
229
272
|
const href = this.readonly ? undefined : (this._modalRoute?.({ index }) ?? undefined);
|
|
273
|
+
const resolvedUrl = this._resolvedLinkUrls.find((url) => url.unique === link.unique)?.url ?? '';
|
|
230
274
|
return html `
|
|
231
275
|
<uui-ref-node
|
|
232
276
|
id=${unique}
|
|
233
277
|
href=${ifDefined(href)}
|
|
234
278
|
name=${link.name || ''}
|
|
235
|
-
detail=${
|
|
279
|
+
detail=${resolvedUrl + (link.queryString || '')}
|
|
236
280
|
?readonly=${this.readonly}>
|
|
237
281
|
<umb-icon slot="icon" name=${link.icon || 'icon-link'}></umb-icon>
|
|
238
282
|
${when(!this.readonly, () => html `
|
|
@@ -288,6 +332,9 @@ __decorate([
|
|
|
288
332
|
__decorate([
|
|
289
333
|
state()
|
|
290
334
|
], UmbInputMultiUrlElement.prototype, "_modalRoute", void 0);
|
|
335
|
+
__decorate([
|
|
336
|
+
state()
|
|
337
|
+
], UmbInputMultiUrlElement.prototype, "_resolvedLinkUrls", void 0);
|
|
291
338
|
UmbInputMultiUrlElement = __decorate([
|
|
292
339
|
customElement(elementName)
|
|
293
340
|
], UmbInputMultiUrlElement);
|
|
@@ -4,11 +4,11 @@ export declare class UmbLinkPickerModalElement extends UmbModalBaseElement<UmbLi
|
|
|
4
4
|
#private;
|
|
5
5
|
private _allowedMediaTypeUniques?;
|
|
6
6
|
private _config;
|
|
7
|
+
private _missingLinkUrl;
|
|
7
8
|
private _documentPickerElement?;
|
|
8
9
|
private _mediaPickerElement?;
|
|
9
|
-
|
|
10
|
+
constructor();
|
|
10
11
|
connectedCallback(): void;
|
|
11
|
-
protected firstUpdated(): void;
|
|
12
12
|
populateLinkUrl(): Promise<void>;
|
|
13
13
|
render(): import("lit-html").TemplateResult<1>;
|
|
14
14
|
static styles: import("lit").CSSResult[];
|
|
@@ -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 {
|
|
12
|
-
import {
|
|
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(
|
|
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
|
-
|
|
41
|
-
|
|
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
|
|
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
|
|
124
|
-
const { data:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
|
134
|
-
const { data: mediaData } = await mediaRepository.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
277
|
-
@
|
|
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);
|
|
@@ -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
|
-
|
|
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 {};
|
|
@@ -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 {};
|
|
@@ -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
|
|
5
|
+
type GlobalSearchers = {
|
|
6
6
|
name: string;
|
|
7
|
-
api
|
|
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
|
|
18
|
-
|
|
17
|
+
private _globalSearchers;
|
|
18
|
+
_currentGlobalSearcher?: GlobalSearchers;
|
|
19
19
|
_loading: boolean;
|
|
20
20
|
constructor();
|
|
21
21
|
connectedCallback(): void;
|