@umbraco-cms/backoffice 16.0.0-rc3 → 16.0.0-rc5
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/apps/backoffice/backoffice.context.js +5 -1
- package/dist-cms/apps/backoffice/components/backoffice-main.element.js +3 -1
- package/dist-cms/assets/lang/en-us.js +1 -1
- package/dist-cms/assets/lang/en-us.ts +1 -1
- package/dist-cms/css/uui-css.css +481 -100
- package/dist-cms/custom-elements.json +33 -17
- package/dist-cms/external/rxjs/index.d.ts +1 -1
- package/dist-cms/external/rxjs/index.js +3 -3
- package/dist-cms/external/uui/index.js +663 -393
- package/dist-cms/libs/context-api/consume/context-consumer.js +1 -2
- package/dist-cms/libs/controller-api/controller-host.mixin.js +2 -2
- package/dist-cms/libs/extension-api/controller/server-extension-registrator.controller.js +6 -2
- package/dist-cms/packages/block/block/context/block-entry.context.js +10 -3
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +1 -0
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +2 -1
- package/dist-cms/packages/content/content/components/property-type-based-property/index.d.ts +2 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/index.js +2 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.d.ts +8 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.js +7 -0
- 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
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context.js +19 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.d.ts +1 -1
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.js +8 -7
- package/dist-cms/packages/content/content/global-components/content-workspace-property.element.d.ts +26 -0
- package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +104 -0
- package/dist-cms/packages/content/content/global-components/index.d.ts +1 -0
- package/dist-cms/packages/content/content/global-components/index.js +1 -0
- package/dist-cms/packages/content/content/index.d.ts +1 -2
- package/dist-cms/packages/content/content/index.js +1 -2
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +2 -1
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.d.ts +1 -3
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js +8 -48
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.js +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +3 -3
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +11 -7
- package/dist-cms/packages/content/property-type/workspace/property-type-workspace.context.js +5 -1
- package/dist-cms/packages/core/collection/collection-view.manager.js +4 -4
- package/dist-cms/packages/core/collection/components/collection-filter-field.element.js +1 -1
- package/dist-cms/packages/core/components/input-number-range/input-number-range.element.d.ts +4 -1
- package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +27 -3
- package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +0 -2
- package/dist-cms/packages/core/localization/manifests.js +27 -27
- package/dist-cms/packages/core/localization/registry/localization.registry.d.ts +2 -1
- package/dist-cms/packages/core/localization/registry/localization.registry.js +97 -37
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +2 -2
- package/dist-cms/packages/core/package.json +2 -2
- package/dist-cms/packages/core/property/components/property/property.element.js +1 -0
- package/dist-cms/packages/core/property-editor/extensions/property-editor-ui-element.interface.d.ts +2 -0
- package/dist-cms/packages/core/repository/detail/detail-repository-base.js +6 -7
- package/dist-cms/packages/core/repository/item/item-repository-base.d.ts +1 -1
- package/dist-cms/packages/core/repository/item/item-repository-base.js +25 -9
- package/dist-cms/packages/core/repository/item/item-repository.interface.d.ts +1 -1
- package/dist-cms/packages/core/router/route/router-slot.element.js +3 -1
- package/dist-cms/packages/core/router/router-slot/model.d.ts +1 -0
- package/dist-cms/packages/core/router/router-slot/router-slot.d.ts +1 -0
- package/dist-cms/packages/core/router/router-slot/router-slot.js +30 -0
- package/dist-cms/packages/core/tree/data/tree-repository-base.d.ts +5 -1
- package/dist-cms/packages/core/tree/data/tree-repository-base.js +27 -13
- package/dist-cms/packages/core/tree/tree-item/tree-item.element.js +1 -1
- package/dist-cms/packages/core/validation/controllers/validation.controller.js +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.js +3 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +5 -2
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +2 -2
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.js +1 -1
- package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.d.ts +7 -0
- package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.js +31 -10
- package/dist-cms/packages/core/workspace/controllers/workspace-route-manager.controller.js +5 -5
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +1 -1
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +1 -0
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +10 -0
- package/dist-cms/packages/data-type/collection/repository/data-type-collection.repository.js +6 -1
- package/dist-cms/packages/data-type/repository/detail/data-type-detail.repository.js +6 -1
- package/dist-cms/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.js +5 -4
- package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/modal/create-blueprint-modal.element.js +1 -1
- package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +12 -2
- package/dist-cms/packages/documents/documents/tree/document-tree.context.js +2 -2
- package/dist-cms/packages/documents/documents/types.d.ts +1 -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/types.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/types.js +1 -0
- package/dist-cms/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.js +3 -1
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +4 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +13 -7
- package/dist-cms/packages/log-viewer/components/log-viewer-date-range-selector.element.d.ts +0 -2
- package/dist-cms/packages/log-viewer/components/log-viewer-date-range-selector.element.js +12 -24
- package/dist-cms/packages/log-viewer/repository/sources/log-viewer.server.data.js +9 -1
- package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.js +1 -1
- package/dist-cms/packages/media/media/dashboard/media-dashboard.element.js +1 -0
- package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +2 -2
- package/dist-cms/packages/media/media/tree/media-tree.context.js +2 -2
- package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +1 -0
- package/dist-cms/packages/members/member/repository/member-repository-base.d.ts +8 -8
- package/dist-cms/packages/members/member/repository/member-repository-base.js +13 -12
- package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.js +1 -0
- package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.js +1 -0
- package/dist-cms/packages/property-editors/dimensions/property-editor-ui-dimensions.element.js +16 -3
- package/dist-cms/packages/segment/package.json +8 -0
- package/dist-cms/packages/settings/package.json +8 -0
- package/dist-cms/packages/settings/vite.config.d.ts +2 -0
- package/dist-cms/packages/settings/vite.config.js +11 -0
- package/dist-cms/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.js +1 -1
- package/dist-cms/packages/templating/partial-views/repository/partial-view-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/partial-views/tree/folder/repository/partial-view-folder.server.data-source.js +2 -2
- package/dist-cms/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.js +1 -1
- package/dist-cms/packages/templating/scripts/repository/script-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/scripts/tree/folder/repository/script-folder.server.data-source.js +2 -2
- package/dist-cms/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.js +1 -1
- package/dist-cms/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/stylesheets/tree/folder/repository/stylesheet-folder.server.data-source.js +2 -2
- package/dist-cms/packages/tiptap/components/character-map/character-map-modal.element.js +0 -4
- package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.js +1 -1
- package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +6 -0
- package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.js +7 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +1 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.js +0 -4
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +1 -4
- package/dist-cms/packages/translation/package.json +8 -0
- package/dist-cms/packages/user/current-user/current-user.context.js +4 -1
- package/dist-cms/packages/user/current-user/repository/current-user.repository.d.ts +2 -2
- package/dist-cms/packages/user/current-user/repository/current-user.repository.js +8 -5
- package/dist-cms/packages/user/user/repository/user-repository-base.d.ts +7 -7
- package/dist-cms/packages/user/user/repository/user-repository-base.js +13 -12
- package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.js +4 -1
- package/dist-cms/packages/user/user-group/collection/user-group-collection.element.js +1 -1
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.d.ts +4 -0
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.js +7 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +16 -10
- package/examples/modal-routed/dashboard.element.ts +1 -0
- package/examples/modal-routed/modal/example-modal.element.ts +1 -0
- package/examples/validation-context/validation-context-dashboard.ts +12 -12
- package/package.json +8 -7
- package/dist-cms/packages/content/content/content-property.context-token.d.ts +0 -3
- package/dist-cms/packages/content/content/content-property.context-token.js +0 -2
- package/dist-cms/packages/content/content/content-property.context.js +0 -14
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.d.ts +0 -21
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js +0 -63
package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js
CHANGED
|
@@ -48,8 +48,10 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
|
|
|
48
48
|
this.#workspaceContext?.splitView.setActiveVariant(index, culture, segment);
|
|
49
49
|
}
|
|
50
50
|
#generateRoutes() {
|
|
51
|
-
if (!this.#variants || !this.#appCulture)
|
|
51
|
+
if (!this.#variants || !this.#appCulture) {
|
|
52
|
+
this._routes = [];
|
|
52
53
|
return;
|
|
54
|
+
}
|
|
53
55
|
// Generate split view routes for all available routes
|
|
54
56
|
const routes = [];
|
|
55
57
|
// Split view routes:
|
|
@@ -86,10 +88,14 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
|
|
|
86
88
|
// Using first single view as the default route for now (hence the math below):
|
|
87
89
|
routes.push({
|
|
88
90
|
path: '',
|
|
89
|
-
|
|
91
|
+
pathMatch: 'full',
|
|
92
|
+
resolve: async () => {
|
|
93
|
+
if (!this.#workspaceContext) {
|
|
94
|
+
throw new Error('Workspace context is not available when resolving the default route.');
|
|
95
|
+
}
|
|
90
96
|
const route = routes.find((route) => route.path === this.#appCulture);
|
|
91
97
|
if (!route) {
|
|
92
|
-
const firstVariantPath = routes.find((route) => route.path === this.#variants?.[0]
|
|
98
|
+
const firstVariantPath = routes.find((route) => route.path === this.#variants?.[0]?.unique)?.path;
|
|
93
99
|
if (firstVariantPath) {
|
|
94
100
|
history.replaceState({}, '', `${this.#workspaceRoute}/${firstVariantPath}`);
|
|
95
101
|
return;
|
|
@@ -102,11 +108,11 @@ let UmbDocumentWorkspaceEditorElement = class UmbDocumentWorkspaceEditorElement
|
|
|
102
108
|
history.replaceState({}, '', `${this.#workspaceRoute}/${route?.path}`);
|
|
103
109
|
},
|
|
104
110
|
});
|
|
111
|
+
routes.push({
|
|
112
|
+
path: `**`,
|
|
113
|
+
component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement,
|
|
114
|
+
});
|
|
105
115
|
}
|
|
106
|
-
routes.push({
|
|
107
|
-
path: `**`,
|
|
108
|
-
component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement,
|
|
109
|
-
});
|
|
110
116
|
this._routes = routes;
|
|
111
117
|
}
|
|
112
118
|
render() {
|
|
@@ -3,10 +3,8 @@ export declare class UmbLogViewerDateRangeSelectorElement extends UmbLitElement
|
|
|
3
3
|
#private;
|
|
4
4
|
private _startDate;
|
|
5
5
|
private _endDate;
|
|
6
|
-
private _inputs;
|
|
7
6
|
horizontal: boolean;
|
|
8
7
|
constructor();
|
|
9
|
-
disconnectedCallback(): void;
|
|
10
8
|
render(): import("lit-html").TemplateResult<1>;
|
|
11
9
|
static styles: import("lit").CSSResult[];
|
|
12
10
|
}
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { UMB_APP_LOG_VIEWER_CONTEXT } from '../workspace/logviewer-workspace.context-token.js';
|
|
8
8
|
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
|
9
|
-
import { css, html, customElement, property,
|
|
9
|
+
import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
|
|
10
10
|
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
11
11
|
import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router';
|
|
12
12
|
let UmbLogViewerDateRangeSelectorElement = class UmbLogViewerDateRangeSelectorElement extends UmbLitElement {
|
|
@@ -16,16 +16,11 @@ let UmbLogViewerDateRangeSelectorElement = class UmbLogViewerDateRangeSelectorEl
|
|
|
16
16
|
this._startDate = '';
|
|
17
17
|
this._endDate = '';
|
|
18
18
|
this.horizontal = false;
|
|
19
|
-
this.addEventListener('input', this.#setDates);
|
|
20
19
|
this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => {
|
|
21
20
|
this.#logViewerContext = instance;
|
|
22
21
|
this.#observeStuff();
|
|
23
22
|
});
|
|
24
23
|
}
|
|
25
|
-
disconnectedCallback() {
|
|
26
|
-
super.disconnectedCallback();
|
|
27
|
-
this.removeEventListener('input', this.#setDates);
|
|
28
|
-
}
|
|
29
24
|
#observeStuff() {
|
|
30
25
|
if (!this.#logViewerContext)
|
|
31
26
|
return;
|
|
@@ -34,15 +29,15 @@ let UmbLogViewerDateRangeSelectorElement = class UmbLogViewerDateRangeSelectorEl
|
|
|
34
29
|
this._endDate = dateRange.endDate;
|
|
35
30
|
}, '_observeDateRange');
|
|
36
31
|
}
|
|
37
|
-
#
|
|
38
|
-
this.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
#setStartDate(e) {
|
|
33
|
+
this._startDate = e.target.value;
|
|
34
|
+
this.#updateFiltered();
|
|
35
|
+
}
|
|
36
|
+
#setEndDate(e) {
|
|
37
|
+
this._endDate = e.target.value;
|
|
38
|
+
this.#updateFiltered();
|
|
39
|
+
}
|
|
40
|
+
#updateFiltered() {
|
|
46
41
|
this.#logViewerContext?.setDateRange({ startDate: this._startDate, endDate: this._endDate });
|
|
47
42
|
const query = getQuery();
|
|
48
43
|
const qs = toQueryString({
|
|
@@ -57,9 +52,7 @@ let UmbLogViewerDateRangeSelectorElement = class UmbLogViewerDateRangeSelectorEl
|
|
|
57
52
|
<div class="input-container">
|
|
58
53
|
<uui-label for="start-date">From:</uui-label>
|
|
59
54
|
<umb-input-date
|
|
60
|
-
@
|
|
61
|
-
e.target.showPicker();
|
|
62
|
-
}}
|
|
55
|
+
@change=${this.#setStartDate}
|
|
63
56
|
id="start-date"
|
|
64
57
|
type="date"
|
|
65
58
|
label="From"
|
|
@@ -69,9 +62,7 @@ let UmbLogViewerDateRangeSelectorElement = class UmbLogViewerDateRangeSelectorEl
|
|
|
69
62
|
<div class="input-container">
|
|
70
63
|
<uui-label for="end-date">To: </uui-label>
|
|
71
64
|
<umb-input-date
|
|
72
|
-
@
|
|
73
|
-
e.target.showPicker();
|
|
74
|
-
}}
|
|
65
|
+
@change=${this.#setEndDate}
|
|
75
66
|
id="end-date"
|
|
76
67
|
type="date"
|
|
77
68
|
label="To"
|
|
@@ -107,9 +98,6 @@ __decorate([
|
|
|
107
98
|
__decorate([
|
|
108
99
|
state()
|
|
109
100
|
], UmbLogViewerDateRangeSelectorElement.prototype, "_endDate", void 0);
|
|
110
|
-
__decorate([
|
|
111
|
-
queryAll('input')
|
|
112
|
-
], UmbLogViewerDateRangeSelectorElement.prototype, "_inputs", void 0);
|
|
113
101
|
__decorate([
|
|
114
102
|
property({ type: Boolean, reflect: true })
|
|
115
103
|
], UmbLogViewerDateRangeSelectorElement.prototype, "horizontal", void 0);
|
|
@@ -111,7 +111,15 @@ export class UmbLogMessagesServerDataSource {
|
|
|
111
111
|
*/
|
|
112
112
|
async getLogViewerLogs({ skip = 0, take = 100, orderDirection, filterExpression, logLevel, startDate, endDate, }) {
|
|
113
113
|
return await tryExecute(this.#host, LogViewerService.getLogViewerLog({
|
|
114
|
-
query: {
|
|
114
|
+
query: {
|
|
115
|
+
skip,
|
|
116
|
+
take,
|
|
117
|
+
orderDirection,
|
|
118
|
+
filterExpression,
|
|
119
|
+
logLevel: logLevel?.length ? logLevel : undefined,
|
|
120
|
+
startDate,
|
|
121
|
+
endDate,
|
|
122
|
+
},
|
|
115
123
|
}));
|
|
116
124
|
}
|
|
117
125
|
/**
|
package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.js
CHANGED
|
@@ -84,7 +84,7 @@ let UmbLogViewerMessageElement = class UmbLogViewerMessageElement extends UmbLit
|
|
|
84
84
|
}
|
|
85
85
|
query = {
|
|
86
86
|
...query,
|
|
87
|
-
lq:
|
|
87
|
+
lq: `${name}=${sanitizedValue}`,
|
|
88
88
|
};
|
|
89
89
|
const queryString = toQueryString(query);
|
|
90
90
|
return queryString;
|
|
@@ -11,7 +11,7 @@ import { UmbMediaSearchProvider } from '../../search/index.js';
|
|
|
11
11
|
import { css, html, customElement, state, repeat, ifDefined, query, nothing, } from '@umbraco-cms/backoffice/external/lit';
|
|
12
12
|
import { debounce, UmbPaginationManager } from '@umbraco-cms/backoffice/utils';
|
|
13
13
|
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
|
|
14
|
-
import {
|
|
14
|
+
import { UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/content';
|
|
15
15
|
import { isUmbracoFolder } from '@umbraco-cms/backoffice/media-type';
|
|
16
16
|
import { UMB_VARIANT_CONTEXT } from '@umbraco-cms/backoffice/variant';
|
|
17
17
|
import '@umbraco-cms/backoffice/imaging';
|
|
@@ -42,7 +42,7 @@ let UmbMediaPickerModalElement = class UmbMediaPickerModalElement extends UmbMod
|
|
|
42
42
|
this.#debouncedSearch = debounce(() => {
|
|
43
43
|
this.#searchMedia();
|
|
44
44
|
}, 500);
|
|
45
|
-
this.consumeContext(
|
|
45
|
+
this.consumeContext(UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT, (context) => {
|
|
46
46
|
this.observe(context?.dataType, (dataType) => {
|
|
47
47
|
this.#dataType = dataType;
|
|
48
48
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/content';
|
|
2
2
|
import { UmbDefaultTreeContext } from '@umbraco-cms/backoffice/tree';
|
|
3
3
|
export class UmbMediaTreeContext extends UmbDefaultTreeContext {
|
|
4
4
|
constructor(host) {
|
|
5
5
|
super(host);
|
|
6
|
-
this.consumeContext(
|
|
6
|
+
this.consumeContext(UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT, (context) => {
|
|
7
7
|
this.observe(context?.dataType, (value) => {
|
|
8
8
|
this.updateAdditionalRequestArgs({ dataType: value });
|
|
9
9
|
});
|
|
@@ -74,6 +74,7 @@ let UmbMediaWorkspaceEditorElement = class UmbMediaWorkspaceEditorElement extend
|
|
|
74
74
|
// Using first single view as the default route for now (hence the math below):
|
|
75
75
|
routes.push({
|
|
76
76
|
path: '',
|
|
77
|
+
pathMatch: 'full',
|
|
77
78
|
redirectTo: routes[variants.length * variants.length]?.path,
|
|
78
79
|
});
|
|
79
80
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification';
|
|
1
|
+
import { UMB_MEMBER_ITEM_STORE_CONTEXT } from '../item/repository/member-item.store.context-token.js';
|
|
2
|
+
import { UMB_MEMBER_DETAIL_STORE_CONTEXT } from './detail/member-detail.store.context-token.js';
|
|
3
|
+
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
|
|
5
4
|
import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';
|
|
5
|
+
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
6
6
|
export declare abstract class UmbMemberRepositoryBase extends UmbRepositoryBase {
|
|
7
|
-
protected init: Promise<[UmbMemberDetailStore | undefined, UmbMemberItemStore | undefined, UmbNotificationContext | undefined]>;
|
|
8
|
-
protected detailStore?:
|
|
9
|
-
protected itemStore?:
|
|
10
|
-
protected notificationContext?:
|
|
7
|
+
protected init: Promise<[import("./detail/member-detail.store.js").UmbMemberDetailStore | undefined, import("../item/repository/member-item.store.js").UmbMemberItemStore | undefined, import("@umbraco-cms/backoffice/notification").UmbNotificationContext | undefined]>;
|
|
8
|
+
protected detailStore?: typeof UMB_MEMBER_DETAIL_STORE_CONTEXT.TYPE;
|
|
9
|
+
protected itemStore?: typeof UMB_MEMBER_ITEM_STORE_CONTEXT.TYPE;
|
|
10
|
+
protected notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;
|
|
11
11
|
constructor(host: UmbControllerHost);
|
|
12
12
|
}
|
|
@@ -7,20 +7,21 @@ export class UmbMemberRepositoryBase extends UmbRepositoryBase {
|
|
|
7
7
|
super(host);
|
|
8
8
|
this.init = Promise.all([
|
|
9
9
|
this.consumeContext(UMB_MEMBER_DETAIL_STORE_CONTEXT, (instance) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
10
|
+
this.detailStore = instance;
|
|
11
|
+
})
|
|
12
|
+
.asPromise({ preventTimeout: true })
|
|
13
|
+
// Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful.
|
|
14
|
+
.catch(() => undefined),
|
|
14
15
|
this.consumeContext(UMB_MEMBER_ITEM_STORE_CONTEXT, (instance) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
16
|
+
this.itemStore = instance;
|
|
17
|
+
})
|
|
18
|
+
.asPromise({ preventTimeout: true })
|
|
19
|
+
.catch(() => undefined),
|
|
19
20
|
this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
21
|
+
this.notificationContext = instance;
|
|
22
|
+
})
|
|
23
|
+
.asPromise({ preventTimeout: true })
|
|
24
|
+
.catch(() => undefined),
|
|
24
25
|
]);
|
|
25
26
|
}
|
|
26
27
|
}
|
package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.js
CHANGED
|
@@ -75,6 +75,7 @@ let UmbMemberWorkspaceEditorElement = class UmbMemberWorkspaceEditorElement exte
|
|
|
75
75
|
// Using first single view as the default route for now (hence the math below):
|
|
76
76
|
routes.push({
|
|
77
77
|
path: '',
|
|
78
|
+
pathMatch: 'full',
|
|
78
79
|
redirectTo: routes[options.length * options.length]?.path,
|
|
79
80
|
});
|
|
80
81
|
}
|
package/dist-cms/packages/property-editors/dimensions/property-editor-ui-dimensions.element.js
CHANGED
|
@@ -4,8 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
8
|
-
import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit';
|
|
7
|
+
import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit';
|
|
9
8
|
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
10
9
|
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
|
|
11
10
|
/**
|
|
@@ -28,6 +27,9 @@ let UmbPropertyEditorUIDimensionsElement = class UmbPropertyEditorUIDimensionsEl
|
|
|
28
27
|
return html `
|
|
29
28
|
<uui-input
|
|
30
29
|
type="number"
|
|
30
|
+
autocomplete="off"
|
|
31
|
+
min="0"
|
|
32
|
+
step="1"
|
|
31
33
|
label=${this.localize.term('general_width')}
|
|
32
34
|
placeholder=${this.localize.term('general_width')}
|
|
33
35
|
@change=${this.#onChangeWidth}
|
|
@@ -36,6 +38,9 @@ let UmbPropertyEditorUIDimensionsElement = class UmbPropertyEditorUIDimensionsEl
|
|
|
36
38
|
<span>×</span>
|
|
37
39
|
<uui-input
|
|
38
40
|
type="number"
|
|
41
|
+
autocomplete="off"
|
|
42
|
+
min="0"
|
|
43
|
+
step="1"
|
|
39
44
|
label=${this.localize.term('general_height')}
|
|
40
45
|
placeholder=${this.localize.term('general_height')}
|
|
41
46
|
@change=${this.#onChangeHeight}
|
|
@@ -44,7 +49,15 @@ let UmbPropertyEditorUIDimensionsElement = class UmbPropertyEditorUIDimensionsEl
|
|
|
44
49
|
<umb-localize key="general_pixels">pixels</umb-localize>
|
|
45
50
|
`;
|
|
46
51
|
}
|
|
47
|
-
static { this.styles = [
|
|
52
|
+
static { this.styles = [
|
|
53
|
+
css `
|
|
54
|
+
:host {
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: var(--uui-size-space-1);
|
|
58
|
+
}
|
|
59
|
+
`,
|
|
60
|
+
]; }
|
|
48
61
|
};
|
|
49
62
|
__decorate([
|
|
50
63
|
property({ type: Object })
|
|
@@ -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
|
+
});
|
|
@@ -29,7 +29,7 @@ export class UmbRenamePartialViewServerDataSource {
|
|
|
29
29
|
name: appendFileExtensionIfNeeded(name, '.cshtml'),
|
|
30
30
|
};
|
|
31
31
|
const { data, error } = await tryExecute(this.#host, PartialViewService.putPartialViewByPathRename({
|
|
32
|
-
path: { path
|
|
32
|
+
path: { path },
|
|
33
33
|
body,
|
|
34
34
|
}));
|
|
35
35
|
if (data && typeof data === 'string') {
|
|
@@ -46,7 +46,7 @@ export class UmbPartialViewDetailServerDataSource {
|
|
|
46
46
|
const path = this.#serverFilePathUniqueSerializer.toServerPath(unique);
|
|
47
47
|
if (!path)
|
|
48
48
|
throw new Error('Path is missing');
|
|
49
|
-
const { data, error } = await tryExecute(this.#host, PartialViewService.getPartialViewByPath({ path: { path
|
|
49
|
+
const { data, error } = await tryExecute(this.#host, PartialViewService.getPartialViewByPath({ path: { path } }));
|
|
50
50
|
if (error || !data) {
|
|
51
51
|
return { error };
|
|
52
52
|
}
|
|
@@ -68,7 +68,7 @@ export class UmbPartialViewDetailServerDataSource {
|
|
|
68
68
|
content: model.content,
|
|
69
69
|
};
|
|
70
70
|
const { error } = await tryExecute(this.#host, PartialViewService.putPartialViewByPath({
|
|
71
|
-
path: { path
|
|
71
|
+
path: { path },
|
|
72
72
|
body,
|
|
73
73
|
}));
|
|
74
74
|
if (!error) {
|
|
@@ -83,7 +83,7 @@ export class UmbPartialViewDetailServerDataSource {
|
|
|
83
83
|
if (!path)
|
|
84
84
|
throw new Error('Path is missing');
|
|
85
85
|
return tryExecute(this.#host, PartialViewService.deletePartialViewByPath({
|
|
86
|
-
path: { path
|
|
86
|
+
path: { path },
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -47,7 +47,7 @@ export class UmbPartialViewFolderServerDataSource {
|
|
|
47
47
|
if (!path)
|
|
48
48
|
throw new Error('Cannot read partial view folder without a path');
|
|
49
49
|
const { data, error } = await tryExecute(this.#host, PartialViewService.getPartialViewFolderByPath({
|
|
50
|
-
path: { path
|
|
50
|
+
path: { path },
|
|
51
51
|
}));
|
|
52
52
|
if (data) {
|
|
53
53
|
const mappedData = {
|
|
@@ -101,7 +101,7 @@ export class UmbPartialViewFolderServerDataSource {
|
|
|
101
101
|
if (!path)
|
|
102
102
|
throw new Error('Cannot delete partial view folder without a path');
|
|
103
103
|
return tryExecute(this.#host, PartialViewService.deletePartialViewFolderByPath({
|
|
104
|
-
path: { path
|
|
104
|
+
path: { path },
|
|
105
105
|
}));
|
|
106
106
|
}
|
|
107
107
|
async update() {
|
|
@@ -29,7 +29,7 @@ export class UmbRenameScriptServerDataSource {
|
|
|
29
29
|
name: appendFileExtensionIfNeeded(name, '.js'),
|
|
30
30
|
};
|
|
31
31
|
const { data, error } = await tryExecute(this.#host, ScriptService.putScriptByPathRename({
|
|
32
|
-
path: { path
|
|
32
|
+
path: { path },
|
|
33
33
|
body,
|
|
34
34
|
}));
|
|
35
35
|
if (data && typeof data === 'string') {
|
|
@@ -46,7 +46,7 @@ export class UmbScriptDetailServerDataSource {
|
|
|
46
46
|
const path = this.#serverFilePathUniqueSerializer.toServerPath(unique);
|
|
47
47
|
if (!path)
|
|
48
48
|
throw new Error('Path is missing');
|
|
49
|
-
const { data, error } = await tryExecute(this.#host, ScriptService.getScriptByPath({ path: { path
|
|
49
|
+
const { data, error } = await tryExecute(this.#host, ScriptService.getScriptByPath({ path: { path } }));
|
|
50
50
|
if (error || !data) {
|
|
51
51
|
return { error };
|
|
52
52
|
}
|
|
@@ -68,7 +68,7 @@ export class UmbScriptDetailServerDataSource {
|
|
|
68
68
|
content: model.content,
|
|
69
69
|
};
|
|
70
70
|
const { error } = await tryExecute(this.#host, ScriptService.putScriptByPath({
|
|
71
|
-
path: { path
|
|
71
|
+
path: { path },
|
|
72
72
|
body,
|
|
73
73
|
}));
|
|
74
74
|
if (!error) {
|
|
@@ -83,7 +83,7 @@ export class UmbScriptDetailServerDataSource {
|
|
|
83
83
|
if (!path)
|
|
84
84
|
throw new Error('Path is missing');
|
|
85
85
|
return tryExecute(this.#host, ScriptService.deleteScriptByPath({
|
|
86
|
-
path: { path
|
|
86
|
+
path: { path },
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -47,7 +47,7 @@ export class UmbScriptFolderServerDataSource {
|
|
|
47
47
|
if (!path)
|
|
48
48
|
throw new Error('Cannot read script folder without a path');
|
|
49
49
|
const { data, error } = await tryExecute(this.#host, ScriptService.getScriptFolderByPath({
|
|
50
|
-
path: { path
|
|
50
|
+
path: { path },
|
|
51
51
|
}));
|
|
52
52
|
if (data) {
|
|
53
53
|
const mappedData = {
|
|
@@ -99,7 +99,7 @@ export class UmbScriptFolderServerDataSource {
|
|
|
99
99
|
if (!path)
|
|
100
100
|
throw new Error('Cannot delete script folder without a path');
|
|
101
101
|
return tryExecute(this.#host, ScriptService.deleteScriptFolderByPath({
|
|
102
|
-
path: { path
|
|
102
|
+
path: { path },
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
105
105
|
async update() {
|
|
@@ -29,7 +29,7 @@ export class UmbRenameStylesheetServerDataSource {
|
|
|
29
29
|
name: appendFileExtensionIfNeeded(name, '.css'),
|
|
30
30
|
};
|
|
31
31
|
const { data, error } = await tryExecute(this.#host, StylesheetService.putStylesheetByPathRename({
|
|
32
|
-
path: { path
|
|
32
|
+
path: { path },
|
|
33
33
|
body,
|
|
34
34
|
}));
|
|
35
35
|
if (data && typeof data === 'string') {
|
package/dist-cms/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.js
CHANGED
|
@@ -46,7 +46,7 @@ export class UmbStylesheetDetailServerDataSource {
|
|
|
46
46
|
const path = this.#serverFilePathUniqueSerializer.toServerPath(unique);
|
|
47
47
|
if (!path)
|
|
48
48
|
throw new Error('Path is missing');
|
|
49
|
-
const { data, error } = await tryExecute(this.#host, StylesheetService.getStylesheetByPath({ path: { path
|
|
49
|
+
const { data, error } = await tryExecute(this.#host, StylesheetService.getStylesheetByPath({ path: { path } }));
|
|
50
50
|
if (error || !data) {
|
|
51
51
|
return { error };
|
|
52
52
|
}
|
|
@@ -68,7 +68,7 @@ export class UmbStylesheetDetailServerDataSource {
|
|
|
68
68
|
content: model.content,
|
|
69
69
|
};
|
|
70
70
|
const { error } = await tryExecute(this.#host, StylesheetService.putStylesheetByPath({
|
|
71
|
-
path: { path
|
|
71
|
+
path: { path },
|
|
72
72
|
body,
|
|
73
73
|
}));
|
|
74
74
|
if (!error) {
|
|
@@ -83,7 +83,7 @@ export class UmbStylesheetDetailServerDataSource {
|
|
|
83
83
|
if (!path)
|
|
84
84
|
throw new Error('Path is missing');
|
|
85
85
|
return tryExecute(this.#host, StylesheetService.deleteStylesheetByPath({
|
|
86
|
-
path: { path
|
|
86
|
+
path: { path },
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -41,7 +41,7 @@ export class UmbStylesheetFolderServerDataSource {
|
|
|
41
41
|
if (!path)
|
|
42
42
|
throw new Error('Cannot read stylesheet folder without a path');
|
|
43
43
|
const { data, error } = await tryExecute(this.#host, StylesheetService.getStylesheetFolderByPath({
|
|
44
|
-
path: { path
|
|
44
|
+
path: { path },
|
|
45
45
|
}));
|
|
46
46
|
if (data) {
|
|
47
47
|
const mappedData = {
|
|
@@ -95,7 +95,7 @@ export class UmbStylesheetFolderServerDataSource {
|
|
|
95
95
|
if (!path)
|
|
96
96
|
throw new Error('Cannot delete stylesheet folder without a path');
|
|
97
97
|
return tryExecute(this.#host, StylesheetService.deleteStylesheetFolderByPath({
|
|
98
|
-
path: { path
|
|
98
|
+
path: { path },
|
|
99
99
|
}));
|
|
100
100
|
}
|
|
101
101
|
async update() {
|
|
@@ -418,10 +418,6 @@ let UmbCharacterMapModalElement = class UmbCharacterMapModalElement extends UmbM
|
|
|
418
418
|
gap: var(--uui-size-space-4);
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
-
uui-input {
|
|
422
|
-
align-items: baseline;
|
|
423
|
-
}
|
|
424
|
-
|
|
425
421
|
uui-scroll-container {
|
|
426
422
|
height: 300px;
|
|
427
423
|
width: calc(450px + var(--uui-size-layout-1));
|
|
@@ -4,6 +4,12 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
|
4
4
|
import type { Editor } from '@umbraco-cms/backoffice/external/tiptap';
|
|
5
5
|
import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
|
|
6
6
|
import '../cascading-menu-popover/cascading-menu-popover.element.js';
|
|
7
|
+
/**
|
|
8
|
+
* Provides a sticky toolbar for the {@link UmbInputTiptapElement}
|
|
9
|
+
* @element umb-tiptap-toolbar
|
|
10
|
+
* @cssprop --umb-tiptap-edge-border-color - Defines the edge border color
|
|
11
|
+
* @cssprop --umb-tiptap-top - Defines the top value for the sticky toolbar
|
|
12
|
+
*/
|
|
7
13
|
export declare class UmbTiptapToolbarElement extends UmbLitElement {
|
|
8
14
|
#private;
|
|
9
15
|
private _lookup?;
|
|
@@ -9,6 +9,12 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr
|
|
|
9
9
|
import { UmbExtensionsElementAndApiInitializer } from '@umbraco-cms/backoffice/extension-api';
|
|
10
10
|
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
11
11
|
import '../cascading-menu-popover/cascading-menu-popover.element.js';
|
|
12
|
+
/**
|
|
13
|
+
* Provides a sticky toolbar for the {@link UmbInputTiptapElement}
|
|
14
|
+
* @element umb-tiptap-toolbar
|
|
15
|
+
* @cssprop --umb-tiptap-edge-border-color - Defines the edge border color
|
|
16
|
+
* @cssprop --umb-tiptap-top - Defines the top value for the sticky toolbar
|
|
17
|
+
*/
|
|
12
18
|
let UmbTiptapToolbarElement = class UmbTiptapToolbarElement extends UmbLitElement {
|
|
13
19
|
constructor() {
|
|
14
20
|
super(...arguments);
|
|
@@ -75,7 +81,7 @@ let UmbTiptapToolbarElement = class UmbTiptapToolbarElement extends UmbLitElemen
|
|
|
75
81
|
flex-direction: column;
|
|
76
82
|
|
|
77
83
|
position: sticky;
|
|
78
|
-
top: -25px;
|
|
84
|
+
top: var(--umb-tiptap-top,-25px);
|
|
79
85
|
left: 0;
|
|
80
86
|
right: 0;
|
|
81
87
|
padding: var(--uui-size-3);
|
|
@@ -227,10 +227,6 @@ let UmbPropertyEditorUiTiptapStatusbarConfigurationElement = class UmbPropertyEd
|
|
|
227
227
|
[slot='header-actions'] {
|
|
228
228
|
margin-bottom: var(--uui-size-2);
|
|
229
229
|
|
|
230
|
-
uui-input {
|
|
231
|
-
align-items: baseline;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
230
|
uui-icon {
|
|
235
231
|
color: var(--uui-color-border);
|
|
236
232
|
}
|