@umbraco-cms/backoffice 14.0.0--preview004-e91a3686 → 14.0.0--preview004-d4db8e54
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/assets/lang/da-dk.js +2 -0
- package/dist-cms/assets/lang/da-dk.ts +2 -0
- package/dist-cms/assets/lang/en-us.js +2 -0
- package/dist-cms/assets/lang/en-us.ts +2 -0
- package/dist-cms/custom-elements.json +25 -18
- package/dist-cms/packages/core/components/input-start-node/input-start-node.element.d.ts +11 -3
- package/dist-cms/packages/core/components/input-start-node/input-start-node.element.js +26 -16
- package/dist-cms/packages/core/property-editor/uis/tree-picker/config/start-node/property-editor-ui-tree-picker-start-node.element.js +5 -3
- package/dist-cms/packages/documents/documents/components/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/components/index.js +1 -0
- package/dist-cms/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.d.ts +19 -0
- package/dist-cms/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.js +93 -0
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/vscode-html-custom-data.json +13 -10
- package/package.json +1 -1
|
@@ -1064,6 +1064,8 @@ export default {
|
|
|
1064
1064
|
},
|
|
1065
1065
|
contentPicker: {
|
|
1066
1066
|
allowedItemTypes: 'Du kan kun vælge følgende type(r) dokumenter: %0%',
|
|
1067
|
+
defineDynamicRoot: 'Definer Dynamisk Udgangspunkt',
|
|
1068
|
+
defineRootNode: 'Vælg udgangspunkt',
|
|
1067
1069
|
pickedTrashedItem: 'Du har valgt et dokument som er slettet eller lagt i papirkurven',
|
|
1068
1070
|
pickedTrashedItems: 'Du har valgt dokumenter som er slettede eller lagt i papirkurven',
|
|
1069
1071
|
},
|
|
@@ -1151,6 +1151,8 @@ export default {
|
|
|
1151
1151
|
},
|
|
1152
1152
|
contentPicker: {
|
|
1153
1153
|
allowedItemTypes: 'Du kan kun vælge følgende type(r) dokumenter: %0%',
|
|
1154
|
+
defineDynamicRoot: 'Definer Dynamisk Udgangspunkt',
|
|
1155
|
+
defineRootNode: 'Vælg udgangspunkt',
|
|
1154
1156
|
pickedTrashedItem: 'Du har valgt et dokument som er slettet eller lagt i papirkurven',
|
|
1155
1157
|
pickedTrashedItems: 'Du har valgt dokumenter som er slettede eller lagt i papirkurven',
|
|
1156
1158
|
},
|
|
@@ -1059,6 +1059,8 @@ export default {
|
|
|
1059
1059
|
},
|
|
1060
1060
|
contentPicker: {
|
|
1061
1061
|
allowedItemTypes: 'You can only select items of type(s): %0%',
|
|
1062
|
+
defineDynamicRoot: 'Specify a Dynamic Root',
|
|
1063
|
+
defineRootNode: 'Pick root node',
|
|
1062
1064
|
pickedTrashedItem: 'You have picked a content item currently deleted or in the recycle bin',
|
|
1063
1065
|
pickedTrashedItems: 'You have picked content items currently deleted or in the recycle bin',
|
|
1064
1066
|
},
|
|
@@ -1148,6 +1148,8 @@ export default {
|
|
|
1148
1148
|
},
|
|
1149
1149
|
contentPicker: {
|
|
1150
1150
|
allowedItemTypes: 'You can only select items of type(s): %0%',
|
|
1151
|
+
defineDynamicRoot: 'Specify a Dynamic Root',
|
|
1152
|
+
defineRootNode: 'Pick root node',
|
|
1151
1153
|
pickedTrashedItem: 'You have picked a content item currently deleted or in the recycle bin',
|
|
1152
1154
|
pickedTrashedItems: 'You have picked content items currently deleted or in the recycle bin',
|
|
1153
1155
|
},
|
|
@@ -1808,13 +1808,7 @@
|
|
|
1808
1808
|
},
|
|
1809
1809
|
{
|
|
1810
1810
|
"name": "node-id",
|
|
1811
|
-
"type": "string"
|
|
1812
|
-
"default": "\"\""
|
|
1813
|
-
},
|
|
1814
|
-
{
|
|
1815
|
-
"name": "dynamic-path",
|
|
1816
|
-
"type": "string",
|
|
1817
|
-
"default": "\"\""
|
|
1811
|
+
"type": "string | null | undefined"
|
|
1818
1812
|
}
|
|
1819
1813
|
],
|
|
1820
1814
|
"properties": [
|
|
@@ -1826,25 +1820,17 @@
|
|
|
1826
1820
|
{
|
|
1827
1821
|
"name": "nodeId",
|
|
1828
1822
|
"attribute": "node-id",
|
|
1829
|
-
"type": "string"
|
|
1830
|
-
"default": "\"\""
|
|
1823
|
+
"type": "string | null | undefined"
|
|
1831
1824
|
},
|
|
1832
1825
|
{
|
|
1833
|
-
"name": "
|
|
1834
|
-
"
|
|
1835
|
-
"type": "string",
|
|
1836
|
-
"default": "\"\""
|
|
1826
|
+
"name": "dynamicRoot",
|
|
1827
|
+
"type": "DynamicRootType | null | undefined"
|
|
1837
1828
|
},
|
|
1838
1829
|
{
|
|
1839
1830
|
"name": "styles",
|
|
1840
1831
|
"type": "array",
|
|
1841
1832
|
"default": "[null]"
|
|
1842
1833
|
}
|
|
1843
|
-
],
|
|
1844
|
-
"events": [
|
|
1845
|
-
{
|
|
1846
|
-
"name": "change"
|
|
1847
|
-
}
|
|
1848
1834
|
]
|
|
1849
1835
|
},
|
|
1850
1836
|
{
|
|
@@ -6228,6 +6214,27 @@
|
|
|
6228
6214
|
}
|
|
6229
6215
|
]
|
|
6230
6216
|
},
|
|
6217
|
+
{
|
|
6218
|
+
"name": "umb-input-document-picker-root",
|
|
6219
|
+
"path": "./../src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts",
|
|
6220
|
+
"attributes": [
|
|
6221
|
+
{
|
|
6222
|
+
"name": "value",
|
|
6223
|
+
"type": "string"
|
|
6224
|
+
}
|
|
6225
|
+
],
|
|
6226
|
+
"properties": [
|
|
6227
|
+
{
|
|
6228
|
+
"name": "nodeId",
|
|
6229
|
+
"type": "string | null | undefined"
|
|
6230
|
+
},
|
|
6231
|
+
{
|
|
6232
|
+
"name": "value",
|
|
6233
|
+
"attribute": "value",
|
|
6234
|
+
"type": "string"
|
|
6235
|
+
}
|
|
6236
|
+
]
|
|
6237
|
+
},
|
|
6231
6238
|
{
|
|
6232
6239
|
"name": "umb-input-document",
|
|
6233
6240
|
"path": "./../src/packages/documents/documents/components/input-document/input-document.element.ts",
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { UmbLitElement } from '../../../../shared/lit-element/index.js';
|
|
2
2
|
export type ContentType = 'content' | 'member' | 'media';
|
|
3
|
+
export type DynamicRootQueryStepType = {
|
|
4
|
+
alias: string;
|
|
5
|
+
anyOfDocTypeKeys: Array<string>;
|
|
6
|
+
};
|
|
7
|
+
export type DynamicRootType = {
|
|
8
|
+
originAlias: string;
|
|
9
|
+
querySteps?: Array<DynamicRootQueryStepType> | null;
|
|
10
|
+
};
|
|
3
11
|
export type StartNode = {
|
|
4
12
|
type?: ContentType;
|
|
5
13
|
id?: string | null;
|
|
6
|
-
|
|
14
|
+
dynamicRoot?: DynamicRootType | null;
|
|
7
15
|
};
|
|
8
16
|
declare const UmbInputStartNodeElement_base: (new (...args: any[]) => import("../../../../external/uui/index.js").FormControlMixinInterface) & typeof UmbLitElement;
|
|
9
17
|
export declare class UmbInputStartNodeElement extends UmbInputStartNodeElement_base {
|
|
@@ -12,8 +20,8 @@ export declare class UmbInputStartNodeElement extends UmbInputStartNodeElement_b
|
|
|
12
20
|
private _type;
|
|
13
21
|
set type(value: StartNode['type']);
|
|
14
22
|
get type(): StartNode['type'];
|
|
15
|
-
nodeId
|
|
16
|
-
|
|
23
|
+
nodeId?: string | null;
|
|
24
|
+
dynamicRoot?: DynamicRootType | null;
|
|
17
25
|
_options: Array<Option>;
|
|
18
26
|
render(): import("lit-html").TemplateResult<1>;
|
|
19
27
|
static styles: import("@lit/reactive-element/css-tag").CSSResult[];
|
|
@@ -7,23 +7,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, customElement, property, css, state } from '../../../../external/lit/index.js';
|
|
8
8
|
import { FormControlMixin } from '../../../../external/uui/index.js';
|
|
9
9
|
import { UmbLitElement } from '../../../../shared/lit-element/index.js';
|
|
10
|
-
import { UmbChangeEvent } from '../../event/index.js';
|
|
11
10
|
let UmbInputStartNodeElement = class UmbInputStartNodeElement extends FormControlMixin(UmbLitElement) {
|
|
12
11
|
constructor() {
|
|
13
12
|
super(...arguments);
|
|
14
13
|
this._type = 'content';
|
|
15
|
-
this.nodeId = '';
|
|
16
|
-
this.dynamicPath = '';
|
|
17
14
|
this._options = [
|
|
18
15
|
{ value: 'content', name: 'Content' },
|
|
19
|
-
{ value: 'member', name: 'Members' },
|
|
20
16
|
{ value: 'media', name: 'Media' },
|
|
17
|
+
{ value: 'member', name: 'Members' },
|
|
21
18
|
];
|
|
22
19
|
}
|
|
23
20
|
getFormElement() {
|
|
24
21
|
return undefined;
|
|
25
22
|
}
|
|
26
23
|
set type(value) {
|
|
24
|
+
if (value === undefined) {
|
|
25
|
+
value = this._type;
|
|
26
|
+
}
|
|
27
27
|
const oldValue = this._type;
|
|
28
28
|
this._options = this._options.map((option) => option.value === value ? { ...option, selected: true } : { ...option, selected: false });
|
|
29
29
|
this._type = value;
|
|
@@ -33,15 +33,25 @@ let UmbInputStartNodeElement = class UmbInputStartNodeElement extends FormContro
|
|
|
33
33
|
return this._type;
|
|
34
34
|
}
|
|
35
35
|
#onTypeChange(event) {
|
|
36
|
+
//console.log('onTypeChange');
|
|
36
37
|
this.type = event.target.value;
|
|
37
|
-
// Clear others
|
|
38
38
|
this.nodeId = '';
|
|
39
|
-
|
|
40
|
-
this.dispatchEvent(new UmbChangeEvent());
|
|
39
|
+
// TODO: Appears that the event gets bubbled up. Will need to review. [LK]
|
|
40
|
+
//this.dispatchEvent(new UmbChangeEvent());
|
|
41
41
|
}
|
|
42
42
|
#onIdChange(event) {
|
|
43
|
-
|
|
44
|
-
this.
|
|
43
|
+
//console.log('onIdChange', event.target);
|
|
44
|
+
switch (this.type) {
|
|
45
|
+
case 'content':
|
|
46
|
+
this.nodeId = event.target.nodeId;
|
|
47
|
+
break;
|
|
48
|
+
case 'media':
|
|
49
|
+
this.nodeId = event.target.selectedIds.join('');
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
this.dispatchEvent(new CustomEvent(event.type));
|
|
45
55
|
}
|
|
46
56
|
render() {
|
|
47
57
|
return html `<umb-input-dropdown-list
|
|
@@ -62,19 +72,19 @@ let UmbInputStartNodeElement = class UmbInputStartNodeElement extends FormContro
|
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
#renderTypeContent() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
return html `<umb-input-document-picker-root
|
|
76
|
+
@change=${this.#onIdChange}
|
|
77
|
+
.nodeId=${this.nodeId}></umb-input-document-picker-root>`;
|
|
68
78
|
}
|
|
69
79
|
#renderTypeMedia() {
|
|
70
80
|
const nodeId = this.nodeId ? [this.nodeId] : [];
|
|
71
81
|
//TODO => MediaTypes
|
|
72
|
-
return html
|
|
82
|
+
return html `<umb-input-media @change=${this.#onIdChange} .selectedIds=${nodeId} max="1"></umb-input-media>`;
|
|
73
83
|
}
|
|
74
84
|
#renderTypeMember() {
|
|
75
85
|
const nodeId = this.nodeId ? [this.nodeId] : [];
|
|
76
86
|
//TODO => Members
|
|
77
|
-
return html
|
|
87
|
+
return html `<umb-input-member @change=${this.#onIdChange} .selectedIds=${nodeId} max="1"></umb-input-member>`;
|
|
78
88
|
}
|
|
79
89
|
static { this.styles = [
|
|
80
90
|
css `
|
|
@@ -93,8 +103,8 @@ __decorate([
|
|
|
93
103
|
property({ attribute: 'node-id' })
|
|
94
104
|
], UmbInputStartNodeElement.prototype, "nodeId", void 0);
|
|
95
105
|
__decorate([
|
|
96
|
-
property({ attribute:
|
|
97
|
-
], UmbInputStartNodeElement.prototype, "
|
|
106
|
+
property({ attribute: false })
|
|
107
|
+
], UmbInputStartNodeElement.prototype, "dynamicRoot", void 0);
|
|
98
108
|
__decorate([
|
|
99
109
|
state()
|
|
100
110
|
], UmbInputStartNodeElement.prototype, "_options", void 0);
|
|
@@ -16,13 +16,15 @@ let UmbPropertyEditorUITreePickerStartNodeElement = class UmbPropertyEditorUITre
|
|
|
16
16
|
this.value = {
|
|
17
17
|
type: target.type,
|
|
18
18
|
id: target.nodeId,
|
|
19
|
-
|
|
20
|
-
query: target.dynamicPath,
|
|
19
|
+
dynamicRoot: target.dynamicRoot,
|
|
21
20
|
};
|
|
22
21
|
this.dispatchEvent(new CustomEvent('property-value-change'));
|
|
23
22
|
}
|
|
24
23
|
render() {
|
|
25
|
-
return html `<umb-input-start-node
|
|
24
|
+
return html `<umb-input-start-node
|
|
25
|
+
@change=${this.#onChange}
|
|
26
|
+
.type=${this.value?.type}
|
|
27
|
+
.nodeId=${this.value?.id}></umb-input-start-node>`;
|
|
26
28
|
}
|
|
27
29
|
static { this.styles = [UmbTextStyles]; }
|
|
28
30
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
|
|
2
|
+
declare const UmbInputDocumentPickerRootElement_base: (new (...args: any[]) => import("../../../../../external/uui/index.js").FormControlMixinInterface) & typeof UmbLitElement;
|
|
3
|
+
export declare class UmbInputDocumentPickerRootElement extends UmbInputDocumentPickerRootElement_base {
|
|
4
|
+
#private;
|
|
5
|
+
get nodeId(): string | null | undefined;
|
|
6
|
+
set nodeId(id: string | null | undefined);
|
|
7
|
+
set value(id: string);
|
|
8
|
+
private _items?;
|
|
9
|
+
constructor();
|
|
10
|
+
protected getFormElement(): undefined;
|
|
11
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
12
|
+
private _renderItem;
|
|
13
|
+
}
|
|
14
|
+
export default UmbInputDocumentPickerRootElement;
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
'umb-input-document-picker-root': UmbInputDocumentPickerRootElement;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { UmbDocumentPickerContext } from '../input-document/input-document.context.js';
|
|
8
|
+
import { html, customElement, property, state, ifDefined, repeat } from '../../../../../external/lit/index.js';
|
|
9
|
+
import { FormControlMixin } from '../../../../../external/uui/index.js';
|
|
10
|
+
import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
|
|
11
|
+
let UmbInputDocumentPickerRootElement = class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) {
|
|
12
|
+
get nodeId() {
|
|
13
|
+
return this.#documentPickerContext.getSelection()[0];
|
|
14
|
+
}
|
|
15
|
+
set nodeId(id) {
|
|
16
|
+
const selection = id ? [id] : [];
|
|
17
|
+
this.#documentPickerContext.setSelection(selection);
|
|
18
|
+
}
|
|
19
|
+
set value(id) {
|
|
20
|
+
this.nodeId = id;
|
|
21
|
+
}
|
|
22
|
+
#documentPickerContext = new UmbDocumentPickerContext(this);
|
|
23
|
+
// TODO: DynamicRoot - once feature implemented, wire up context and picker UI. [LK]
|
|
24
|
+
#dynamicRootPickerContext = {
|
|
25
|
+
openPicker: () => {
|
|
26
|
+
throw new Error('DynamicRoot picker has not been implemented yet.');
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
this.#documentPickerContext.max = 1;
|
|
32
|
+
this.observe(this.#documentPickerContext.selection, (selection) => (super.value = selection.join(',')));
|
|
33
|
+
this.observe(this.#documentPickerContext.selectedItems, (selectedItems) => (this._items = selectedItems));
|
|
34
|
+
}
|
|
35
|
+
getFormElement() {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
return html `
|
|
40
|
+
${this._items
|
|
41
|
+
? html ` <uui-ref-list
|
|
42
|
+
>${repeat(this._items, (item) => item.id, (item) => this._renderItem(item))}
|
|
43
|
+
</uui-ref-list>`
|
|
44
|
+
: ''}
|
|
45
|
+
${this.#renderButtons()}
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
#renderButtons() {
|
|
49
|
+
if (this.nodeId)
|
|
50
|
+
return;
|
|
51
|
+
//TODO: Dynamic paths
|
|
52
|
+
return html ` <uui-button-group>
|
|
53
|
+
<uui-button
|
|
54
|
+
look="placeholder"
|
|
55
|
+
@click=${() => this.#documentPickerContext.openPicker()}
|
|
56
|
+
label=${this.localize.term('contentPicker_defineRootNode')}></uui-button>
|
|
57
|
+
<uui-button
|
|
58
|
+
look="placeholder"
|
|
59
|
+
@click=${() => this.#dynamicRootPickerContext.openPicker()}
|
|
60
|
+
label=${this.localize.term('contentPicker_defineDynamicRoot')}></uui-button>
|
|
61
|
+
</uui-button-group>`;
|
|
62
|
+
}
|
|
63
|
+
_renderItem(item) {
|
|
64
|
+
if (!item.id)
|
|
65
|
+
return;
|
|
66
|
+
return html `
|
|
67
|
+
<uui-ref-node name=${ifDefined(item.name)} detail=${ifDefined(item.id)}>
|
|
68
|
+
<!-- TODO: implement is trashed <uui-tag size="s" slot="tag" color="danger">Trashed</uui-tag> -->
|
|
69
|
+
<uui-action-bar slot="actions">
|
|
70
|
+
<uui-button @click=${() => this.#documentPickerContext.openPicker()} label="Edit document ${item.name}"
|
|
71
|
+
>Edit</uui-button
|
|
72
|
+
>
|
|
73
|
+
<uui-button
|
|
74
|
+
@click=${() => this.#documentPickerContext.requestRemoveItem(item.id)}
|
|
75
|
+
label="Remove document ${item.name}"
|
|
76
|
+
>Remove</uui-button
|
|
77
|
+
>
|
|
78
|
+
</uui-action-bar>
|
|
79
|
+
</uui-ref-node>
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
__decorate([
|
|
84
|
+
property()
|
|
85
|
+
], UmbInputDocumentPickerRootElement.prototype, "value", null);
|
|
86
|
+
__decorate([
|
|
87
|
+
state()
|
|
88
|
+
], UmbInputDocumentPickerRootElement.prototype, "_items", void 0);
|
|
89
|
+
UmbInputDocumentPickerRootElement = __decorate([
|
|
90
|
+
customElement('umb-input-document-picker-root')
|
|
91
|
+
], UmbInputDocumentPickerRootElement);
|
|
92
|
+
export { UmbInputDocumentPickerRootElement };
|
|
93
|
+
export default UmbInputDocumentPickerRootElement;
|