@umbraco-cms/backoffice 14.0.0--preview005-d06b80f2 → 14.0.0--preview005-a87dc391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist-cms/apps/backoffice/backoffice.element.js +1 -0
  2. package/dist-cms/assets/lang/da-dk.js +31 -0
  3. package/dist-cms/assets/lang/da-dk.ts +32 -0
  4. package/dist-cms/assets/lang/en-us.js +32 -1
  5. package/dist-cms/assets/lang/en-us.ts +36 -1
  6. package/dist-cms/custom-elements.json +34 -17
  7. package/dist-cms/mocks/browser-handlers.js +2 -0
  8. package/dist-cms/mocks/data/data-type/data-type.data.js +9 -0
  9. package/dist-cms/mocks/handlers/dynamic-root.handlers.d.ts +1 -0
  10. package/dist-cms/mocks/handlers/dynamic-root.handlers.js +12 -0
  11. package/dist-cms/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.d.ts +12 -10
  12. package/dist-cms/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.js +46 -19
  13. package/dist-cms/packages/core/extension-registry/models/dynamic-root.model.d.ts +21 -0
  14. package/dist-cms/packages/core/extension-registry/models/dynamic-root.model.js +1 -0
  15. package/dist-cms/packages/core/extension-registry/models/index.d.ts +3 -1
  16. package/dist-cms/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.js +3 -2
  17. package/dist-cms/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.js +3 -1
  18. package/dist-cms/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.d.ts +4 -2
  19. package/dist-cms/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.js +44 -8
  20. package/dist-cms/packages/core/tree/components/input-tree/input-tree.element.js +1 -1
  21. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.d.ts +1 -0
  22. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +6 -3
  23. package/dist-cms/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.d.ts +7 -6
  24. package/dist-cms/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.js +201 -63
  25. package/dist-cms/packages/dynamic-root/index.d.ts +2 -0
  26. package/dist-cms/packages/dynamic-root/index.js +2 -0
  27. package/dist-cms/packages/dynamic-root/manifests.d.ts +1 -0
  28. package/dist-cms/packages/dynamic-root/manifests.js +6 -0
  29. package/dist-cms/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.d.ts +14 -0
  30. package/dist-cms/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.js +105 -0
  31. package/dist-cms/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.d.ts +14 -0
  32. package/dist-cms/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.js +98 -0
  33. package/dist-cms/packages/dynamic-root/modals/index.d.ts +3 -0
  34. package/dist-cms/packages/dynamic-root/modals/index.js +14 -0
  35. package/dist-cms/packages/dynamic-root/modals/manifests.d.ts +4 -0
  36. package/dist-cms/packages/dynamic-root/modals/manifests.js +129 -0
  37. package/dist-cms/packages/dynamic-root/repository/dynamic-root.repository.d.ts +8 -0
  38. package/dist-cms/packages/dynamic-root/repository/dynamic-root.repository.js +45 -0
  39. package/dist-cms/packages/dynamic-root/repository/dynamic-root.server.data.d.ts +7 -0
  40. package/dist-cms/packages/dynamic-root/repository/dynamic-root.server.data.js +33 -0
  41. package/dist-cms/packages/dynamic-root/repository/index.d.ts +2 -0
  42. package/dist-cms/packages/dynamic-root/repository/index.js +2 -0
  43. package/dist-cms/packages/dynamic-root/repository/manifests.d.ts +2 -0
  44. package/dist-cms/packages/dynamic-root/repository/manifests.js +2 -0
  45. package/dist-cms/packages/dynamic-root/umbraco-package.d.ts +7 -0
  46. package/dist-cms/packages/dynamic-root/umbraco-package.js +9 -0
  47. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  48. package/dist-cms/umbraco-package-schema.json +120 -0
  49. package/dist-cms/vscode-html-custom-data.json +15 -10
  50. package/package.json +2 -1
@@ -4,32 +4,34 @@ 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
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
7
13
  var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
14
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
16
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
17
  };
12
- var _UmbPropertyEditorUITreePickerElement_instances, _UmbPropertyEditorUITreePickerElement_onChange;
18
+ var _UmbPropertyEditorUITreePickerElement_instances, _UmbPropertyEditorUITreePickerElement_dynamicRoot, _UmbPropertyEditorUITreePickerElement_dynamicRootRepository, _UmbPropertyEditorUITreePickerElement_workspaceContext, _UmbPropertyEditorUITreePickerElement_setStartNodeId, _UmbPropertyEditorUITreePickerElement_onChange;
13
19
  import { html, customElement, property, state } from '../../../../../external/lit/index.js';
14
20
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
15
21
  import { UmbTextStyles } from '../../../../../shared/style/index.js';
16
22
  import { UmbPropertyValueChangeEvent } from '../../index.js';
23
+ import { UmbDynamicRootRepository } from '../../../../dynamic-root/index.js';
24
+ import { UMB_WORKSPACE_CONTEXT } from '../../../workspace/index.js';
17
25
  /**
18
26
  * @element umb-property-editor-ui-tree-picker
19
27
  */
20
28
  let UmbPropertyEditorUITreePickerElement = class UmbPropertyEditorUITreePickerElement extends UmbLitElement {
21
- constructor() {
22
- super(...arguments);
23
- _UmbPropertyEditorUITreePickerElement_instances.add(this);
24
- this.value = '';
25
- this.min = 0;
26
- this.max = 0;
27
- }
28
29
  set config(config) {
29
30
  const startNode = config?.getValueByAlias('startNode');
30
31
  if (startNode) {
31
32
  this.type = startNode.type;
32
33
  this.startNodeId = startNode.id;
34
+ __classPrivateFieldSet(this, _UmbPropertyEditorUITreePickerElement_dynamicRoot, startNode.dynamicRoot, "f");
33
35
  }
34
36
  this.min = Number(config?.getValueByAlias('minNumber')) || 0;
35
37
  this.max = Number(config?.getValueByAlias('maxNumber')) || 0;
@@ -37,6 +39,24 @@ let UmbPropertyEditorUITreePickerElement = class UmbPropertyEditorUITreePickerEl
37
39
  this.showOpenButton = config?.getValueByAlias('showOpenButton');
38
40
  this.ignoreUserStartNodes = config?.getValueByAlias('ignoreUserStartNodes');
39
41
  }
42
+ constructor() {
43
+ super();
44
+ _UmbPropertyEditorUITreePickerElement_instances.add(this);
45
+ this.value = '';
46
+ this.type = 'content';
47
+ this.min = 0;
48
+ this.max = 0;
49
+ _UmbPropertyEditorUITreePickerElement_dynamicRoot.set(this, void 0);
50
+ _UmbPropertyEditorUITreePickerElement_dynamicRootRepository.set(this, new UmbDynamicRootRepository(this));
51
+ _UmbPropertyEditorUITreePickerElement_workspaceContext.set(this, void 0);
52
+ this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => {
53
+ __classPrivateFieldSet(this, _UmbPropertyEditorUITreePickerElement_workspaceContext, workspaceContext, "f");
54
+ });
55
+ }
56
+ connectedCallback() {
57
+ super.connectedCallback();
58
+ __classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_instances, "m", _UmbPropertyEditorUITreePickerElement_setStartNodeId).call(this);
59
+ }
40
60
  render() {
41
61
  return html `<umb-input-tree
42
62
  .value=${this.value}
@@ -50,7 +70,23 @@ let UmbPropertyEditorUITreePickerElement = class UmbPropertyEditorUITreePickerEl
50
70
  @change=${__classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_instances, "m", _UmbPropertyEditorUITreePickerElement_onChange)}></umb-input-tree>`;
51
71
  }
52
72
  };
73
+ _UmbPropertyEditorUITreePickerElement_dynamicRoot = new WeakMap();
74
+ _UmbPropertyEditorUITreePickerElement_dynamicRootRepository = new WeakMap();
75
+ _UmbPropertyEditorUITreePickerElement_workspaceContext = new WeakMap();
53
76
  _UmbPropertyEditorUITreePickerElement_instances = new WeakSet();
77
+ _UmbPropertyEditorUITreePickerElement_setStartNodeId = async function _UmbPropertyEditorUITreePickerElement_setStartNodeId() {
78
+ if (this.startNodeId)
79
+ return;
80
+ const entityId = __classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_workspaceContext, "f")?.getEntityId();
81
+ // TODO: Awaiting the workspace context to have a parent entity ID value. [LK]
82
+ // e.g. const parentEntityId = this.#workspaceContext?.getParentEntityId();
83
+ if (entityId && __classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_dynamicRoot, "f")) {
84
+ const result = await __classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_dynamicRootRepository, "f").postDynamicRootQuery(__classPrivateFieldGet(this, _UmbPropertyEditorUITreePickerElement_dynamicRoot, "f"), entityId);
85
+ if (result && result.length > 0) {
86
+ this.startNodeId = result[0];
87
+ }
88
+ }
89
+ };
54
90
  _UmbPropertyEditorUITreePickerElement_onChange = function _UmbPropertyEditorUITreePickerElement_onChange(e) {
55
91
  this.value = e.target.value;
56
92
  this.dispatchEvent(new UmbPropertyValueChangeEvent());
@@ -49,7 +49,7 @@ let UmbInputTreeElement = class UmbInputTreeElement extends FormControlMixin(Umb
49
49
  constructor() {
50
50
  super();
51
51
  _UmbInputTreeElement_instances.add(this);
52
- this._type = undefined;
52
+ this._type = 'content';
53
53
  this.min = 0;
54
54
  this.max = 0;
55
55
  this._allowedContentTypeIds = [];
@@ -42,6 +42,7 @@ export declare class UmbInputDocumentElement extends UmbInputDocumentElement_bas
42
42
  private _editDocumentPath;
43
43
  private _items?;
44
44
  constructor();
45
+ connectedCallback(): void;
45
46
  protected getFormElement(): undefined;
46
47
  render(): import("lit-html").TemplateResult<1>;
47
48
  static styles: import("../../../../../external/lit/index.js").CSSResult[];
@@ -103,11 +103,14 @@ let UmbInputDocumentElement = class UmbInputDocumentElement extends FormControlM
103
103
  .observeRouteBuilder((routeBuilder) => {
104
104
  this._editDocumentPath = routeBuilder({});
105
105
  });
106
- this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length < this.min);
107
- this.addValidator('rangeOverflow', () => this.maxMessage, () => !!this.max && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length > this.max);
108
106
  this.observe(__classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").selection, (selection) => (super.value = selection.join(',')));
109
107
  this.observe(__classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").selectedItems, (selectedItems) => (this._items = selectedItems));
110
108
  }
109
+ connectedCallback() {
110
+ super.connectedCallback();
111
+ this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length < this.min);
112
+ this.addValidator('rangeOverflow', () => this.maxMessage, () => !!this.max && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length > this.max);
113
+ }
111
114
  getFormElement() {
112
115
  return undefined;
113
116
  }
@@ -121,7 +124,7 @@ _UmbInputDocumentElement_pickableFilter = new WeakMap();
121
124
  _UmbInputDocumentElement_instances = new WeakSet();
122
125
  _UmbInputDocumentElement_openPicker = function _UmbInputDocumentElement_openPicker() {
123
126
  // TODO: Configure the content picker, with `startNodeId` and `ignoreUserStartNodes` [LK]
124
- console.log('_openPicker', [this.startNodeId, this.ignoreUserStartNodes]);
127
+ console.log('#openPicker', [this.startNodeId, this.ignoreUserStartNodes]);
125
128
  __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").openPicker({
126
129
  hideTreeRoot: true,
127
130
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -1,15 +1,16 @@
1
1
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
2
+ import type { UmbTreePickerDynamicRoot } from '../../../../core/components/index.js';
2
3
  declare const UmbInputDocumentPickerRootElement_base: (new (...args: any[]) => import("../../../../../external/uui/index.js").FormControlMixinInterface) & typeof UmbLitElement;
3
4
  export declare class UmbInputDocumentPickerRootElement extends UmbInputDocumentPickerRootElement_base {
4
5
  #private;
5
- get unique(): string | null | undefined;
6
- set unique(unique: string | null | undefined);
7
- set value(unique: string);
8
- private _items?;
9
- constructor();
10
6
  protected getFormElement(): undefined;
7
+ private _originManifests;
8
+ private _queryStepManifests;
9
+ data?: UmbTreePickerDynamicRoot | undefined;
10
+ constructor();
11
+ connectedCallback(): void;
11
12
  render(): import("lit-html").TemplateResult<1>;
12
- private _renderItem;
13
+ static styles: import("../../../../../external/lit/index.js").CSSResult[];
13
14
  }
14
15
  export default UmbInputDocumentPickerRootElement;
15
16
  declare global {
@@ -4,100 +4,238 @@ 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
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
7
13
  var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
14
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
16
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
17
  };
12
- var _UmbInputDocumentPickerRootElement_instances, _UmbInputDocumentPickerRootElement_documentPickerContext, _UmbInputDocumentPickerRootElement_dynamicRootPickerContext, _UmbInputDocumentPickerRootElement_renderButtons;
13
- import { UmbDocumentPickerContext } from '../input-document/input-document.context.js';
14
- import { html, customElement, property, state, ifDefined, repeat } from '../../../../../external/lit/index.js';
18
+ var _UmbInputDocumentPickerRootElement_instances, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, _UmbInputDocumentPickerRootElement_modalContext, _UmbInputDocumentPickerRootElement_openModal, _UmbInputDocumentPickerRootElement_sorter, _UmbInputDocumentPickerRootElement_openDynamicRootOriginPicker, _UmbInputDocumentPickerRootElement_openDynamicRootQueryStepPicker, _UmbInputDocumentPickerRootElement_updateDynamicRootOrigin, _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps, _UmbInputDocumentPickerRootElement_getQueryStepMeta, _UmbInputDocumentPickerRootElement_removeDynamicRootQueryStep, _UmbInputDocumentPickerRootElement_clearDynamicRootQuery, _UmbInputDocumentPickerRootElement_renderAddOriginButton, _UmbInputDocumentPickerRootElement_renderOrigin, _UmbInputDocumentPickerRootElement_renderClearButton, _UmbInputDocumentPickerRootElement_renderQuerySteps, _UmbInputDocumentPickerRootElement_renderQueryStep, _UmbInputDocumentPickerRootElement_renderAddQueryStepButton;
19
+ import { html, css, customElement, property, ifDefined, state, repeat } from '../../../../../external/lit/index.js';
15
20
  import { FormControlMixin } from '../../../../../external/uui/index.js';
21
+ import { UmbChangeEvent } from '../../../../core/event/index.js';
22
+ import { UmbId } from '../../../../core/id/index.js';
16
23
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
24
+ import { UmbSorterController } from '../../../../core/sorter/index.js';
25
+ import { umbExtensionsRegistry } from '../../../../core/extension-registry/index.js';
26
+ import { UMB_MODAL_MANAGER_CONTEXT } from '../../../../core/modal/index.js';
27
+ import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, } from '../../../../dynamic-root/index.js';
17
28
  let UmbInputDocumentPickerRootElement = class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) {
18
- get unique() {
19
- return __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").getSelection()[0];
20
- }
21
- set unique(unique) {
22
- const selection = unique ? [unique] : [];
23
- __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").setSelection(selection);
24
- }
25
- set value(unique) {
26
- this.unique = unique;
29
+ getFormElement() {
30
+ return undefined;
27
31
  }
28
32
  constructor() {
29
33
  super();
30
34
  _UmbInputDocumentPickerRootElement_instances.add(this);
31
- _UmbInputDocumentPickerRootElement_documentPickerContext.set(this, new UmbDocumentPickerContext(this));
32
- // TODO: DynamicRoot - once feature implemented, wire up context and picker UI. [LK]
33
- _UmbInputDocumentPickerRootElement_dynamicRootPickerContext.set(this, {
34
- openPicker: () => {
35
- throw new Error('DynamicRoot picker has not been implemented yet.');
35
+ this._originManifests = [];
36
+ this._queryStepManifests = [];
37
+ _UmbInputDocumentPickerRootElement_dynamicRootOrigin.set(this, void 0);
38
+ _UmbInputDocumentPickerRootElement_modalContext.set(this, void 0);
39
+ _UmbInputDocumentPickerRootElement_openModal.set(this, void 0);
40
+ _UmbInputDocumentPickerRootElement_sorter.set(this, new UmbSorterController(this, {
41
+ getUniqueOfElement: (element) => {
42
+ return element.id;
43
+ },
44
+ getUniqueOfModel: (modelEntry) => {
45
+ return modelEntry.unique;
36
46
  },
47
+ identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot',
48
+ itemSelector: 'uui-ref-node',
49
+ containerSelector: '#query-steps',
50
+ onChange: ({ model }) => {
51
+ if (this.data && this.data.querySteps) {
52
+ const querySteps = model;
53
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps).call(this, querySteps);
54
+ this.dispatchEvent(new UmbChangeEvent());
55
+ }
56
+ },
57
+ }));
58
+ this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => {
59
+ __classPrivateFieldSet(this, _UmbInputDocumentPickerRootElement_modalContext, instance, "f");
60
+ });
61
+ this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (originManifests) => {
62
+ this._originManifests = originManifests;
63
+ });
64
+ this.observe(umbExtensionsRegistry.byType('dynamicRootQueryStep'), (queryStepManifests) => {
65
+ this._queryStepManifests = queryStepManifests;
37
66
  });
38
- __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").max = 1;
39
- this.observe(__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").selection, (selection) => (super.value = selection.join(',')));
40
- this.observe(__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").selectedItems, (selectedItems) => (this._items = selectedItems));
41
67
  }
42
- getFormElement() {
43
- return undefined;
68
+ connectedCallback() {
69
+ super.connectedCallback();
70
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootOrigin).call(this, this.data);
71
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps).call(this, this.data?.querySteps);
44
72
  }
45
73
  render() {
46
74
  return html `
47
- ${this._items
48
- ? html ` <uui-ref-list
49
- >${repeat(this._items, (item) => item.unique, (item) => this._renderItem(item))}
50
- </uui-ref-list>`
51
- : ''}
52
- ${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderButtons).call(this)}
75
+ ${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderAddOriginButton).call(this)}
76
+ <uui-ref-list>${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderOrigin).call(this)}</uui-ref-list>
77
+ <uui-ref-list id="query-steps">${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderQuerySteps).call(this)}</uui-ref-list>
78
+ ${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderAddQueryStepButton).call(this)} ${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderClearButton).call(this)}
53
79
  `;
54
80
  }
55
- _renderItem(item) {
56
- if (!item.unique)
57
- return;
58
- // TODO: get correct variant name
59
- const name = item.variants[0]?.name;
60
- return html `
61
- <uui-ref-node name=${name} detail=${ifDefined(item.unique)}>
62
- <!-- TODO: implement is trashed <uui-tag size="s" slot="tag" color="danger">Trashed</uui-tag> -->
81
+ };
82
+ _UmbInputDocumentPickerRootElement_dynamicRootOrigin = new WeakMap();
83
+ _UmbInputDocumentPickerRootElement_modalContext = new WeakMap();
84
+ _UmbInputDocumentPickerRootElement_openModal = new WeakMap();
85
+ _UmbInputDocumentPickerRootElement_sorter = new WeakMap();
86
+ _UmbInputDocumentPickerRootElement_instances = new WeakSet();
87
+ _UmbInputDocumentPickerRootElement_openDynamicRootOriginPicker = function _UmbInputDocumentPickerRootElement_openDynamicRootOriginPicker() {
88
+ __classPrivateFieldSet(this, _UmbInputDocumentPickerRootElement_openModal, __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_modalContext, "f")?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}), "f");
89
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_openModal, "f")?.onSubmit().then((data) => {
90
+ const existingData = { ...this.data };
91
+ existingData.originKey = undefined;
92
+ this.data = { ...existingData, ...data };
93
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootOrigin).call(this, this.data);
94
+ this.dispatchEvent(new UmbChangeEvent());
95
+ });
96
+ };
97
+ _UmbInputDocumentPickerRootElement_openDynamicRootQueryStepPicker = function _UmbInputDocumentPickerRootElement_openDynamicRootQueryStepPicker() {
98
+ __classPrivateFieldSet(this, _UmbInputDocumentPickerRootElement_openModal, __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_modalContext, "f")?.open(UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}), "f");
99
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_openModal, "f")?.onSubmit().then((step) => {
100
+ if (this.data) {
101
+ const querySteps = [...(this.data.querySteps ?? []), step];
102
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps).call(this, querySteps);
103
+ this.dispatchEvent(new UmbChangeEvent());
104
+ }
105
+ });
106
+ };
107
+ _UmbInputDocumentPickerRootElement_updateDynamicRootOrigin = function _UmbInputDocumentPickerRootElement_updateDynamicRootOrigin(data) {
108
+ if (!data)
109
+ return;
110
+ const origin = this._originManifests.find((item) => item.meta.originAlias === data.originAlias)?.meta;
111
+ __classPrivateFieldSet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, {
112
+ label: origin?.label ?? data.originAlias,
113
+ icon: origin?.icon ?? 'icon-wand',
114
+ description: data.originKey,
115
+ }, "f");
116
+ };
117
+ _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps = function _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps(querySteps) {
118
+ if (!this.data)
119
+ return;
120
+ if (querySteps) {
121
+ // NOTE: Ensure that the `unique` ID is populated for each query step. [LK]
122
+ querySteps = querySteps.map((item) => (item.unique ? item : { ...item, unique: UmbId.new() }));
123
+ }
124
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_sorter, "f")?.setModel(querySteps ?? []);
125
+ this.data = { ...this.data, ...{ querySteps } };
126
+ };
127
+ _UmbInputDocumentPickerRootElement_getQueryStepMeta = function _UmbInputDocumentPickerRootElement_getQueryStepMeta(item) {
128
+ const step = this._queryStepManifests.find((step) => step.meta.queryStepAlias === item.alias)?.meta;
129
+ const docTypes = item.anyOfDocTypeKeys?.join(', ');
130
+ const description = docTypes ? this.localize.term('dynamicRoot_queryStepTypes') + docTypes : undefined;
131
+ return {
132
+ unique: item.unique,
133
+ label: step?.label ?? item.alias,
134
+ icon: step?.icon ?? 'icon-lab',
135
+ description,
136
+ };
137
+ };
138
+ _UmbInputDocumentPickerRootElement_removeDynamicRootQueryStep = function _UmbInputDocumentPickerRootElement_removeDynamicRootQueryStep(item) {
139
+ if (this.data?.querySteps) {
140
+ const index = this.data.querySteps.indexOf(item);
141
+ if (index !== -1) {
142
+ const querySteps = [...this.data.querySteps];
143
+ querySteps.splice(index, 1);
144
+ __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_updateDynamicRootQuerySteps).call(this, querySteps);
145
+ this.dispatchEvent(new UmbChangeEvent());
146
+ }
147
+ }
148
+ };
149
+ _UmbInputDocumentPickerRootElement_clearDynamicRootQuery = function _UmbInputDocumentPickerRootElement_clearDynamicRootQuery() {
150
+ this.data = undefined;
151
+ __classPrivateFieldSet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, undefined, "f");
152
+ this.dispatchEvent(new UmbChangeEvent());
153
+ };
154
+ _UmbInputDocumentPickerRootElement_renderAddOriginButton = function _UmbInputDocumentPickerRootElement_renderAddOriginButton() {
155
+ if (this.data?.originAlias)
156
+ return;
157
+ return html `
158
+ <uui-button
159
+ class="add-button"
160
+ @click=${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_openDynamicRootOriginPicker)}
161
+ label=${this.localize.term('contentPicker_defineDynamicRoot')}
162
+ look="placeholder"></uui-button>
163
+ `;
164
+ };
165
+ _UmbInputDocumentPickerRootElement_renderOrigin = function _UmbInputDocumentPickerRootElement_renderOrigin() {
166
+ if (!__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f"))
167
+ return;
168
+ return html `
169
+ <uui-ref-node
170
+ border
171
+ standalone
172
+ name=${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f").label}
173
+ detail=${ifDefined(__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f").description)}>
174
+ <uui-icon slot="icon" name=${ifDefined(__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f").icon)}></uui-icon>
63
175
  <uui-action-bar slot="actions">
64
- <uui-button @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").openPicker()} label="Edit document ${name}"
65
- >Edit</uui-button
66
- >
67
176
  <uui-button
68
- @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").requestRemoveItem(item.unique)}
69
- label="Remove document ${name}"
70
- >Remove</uui-button
71
- >
177
+ @click=${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_openDynamicRootOriginPicker)}
178
+ label="${this.localize.term('general_edit')}"></uui-button>
72
179
  </uui-action-bar>
73
180
  </uui-ref-node>
74
181
  `;
75
- }
76
182
  };
77
- _UmbInputDocumentPickerRootElement_documentPickerContext = new WeakMap();
78
- _UmbInputDocumentPickerRootElement_dynamicRootPickerContext = new WeakMap();
79
- _UmbInputDocumentPickerRootElement_instances = new WeakSet();
80
- _UmbInputDocumentPickerRootElement_renderButtons = function _UmbInputDocumentPickerRootElement_renderButtons() {
81
- if (this.unique)
183
+ _UmbInputDocumentPickerRootElement_renderClearButton = function _UmbInputDocumentPickerRootElement_renderClearButton() {
184
+ if (!__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f"))
82
185
  return;
83
- //TODO: Dynamic paths
84
- return html ` <uui-button-group>
85
- <uui-button
86
- look="placeholder"
87
- @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_documentPickerContext, "f").openPicker()}
88
- label=${this.localize.term('contentPicker_defineRootNode')}></uui-button>
89
- <uui-button
90
- look="placeholder"
91
- @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootPickerContext, "f").openPicker()}
92
- label=${this.localize.term('contentPicker_defineDynamicRoot')}></uui-button>
93
- </uui-button-group>`;
186
+ return html `
187
+ <uui-button @click=${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_clearDynamicRootQuery)}>${this.localize.term('buttons_clearSelection')}</uui-button>
188
+ `;
189
+ };
190
+ _UmbInputDocumentPickerRootElement_renderQuerySteps = function _UmbInputDocumentPickerRootElement_renderQuerySteps() {
191
+ if (!this.data?.querySteps)
192
+ return;
193
+ return repeat(this.data.querySteps, (item) => item.unique, (item) => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_renderQueryStep).call(this, item));
194
+ };
195
+ _UmbInputDocumentPickerRootElement_renderQueryStep = function _UmbInputDocumentPickerRootElement_renderQueryStep(item) {
196
+ if (!item.alias)
197
+ return;
198
+ const step = __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_getQueryStepMeta).call(this, item);
199
+ return html `
200
+ <uui-ref-node border standalone id=${step.unique} name=${step.label} detail="${ifDefined(step.description)}">
201
+ <uui-icon slot="icon" name=${step.icon}></uui-icon>
202
+ <uui-action-bar slot="actions">
203
+ <uui-button
204
+ @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_removeDynamicRootQueryStep).call(this, item)}
205
+ label=${this.localize.term('general_remove')}></uui-button>
206
+ </uui-action-bar>
207
+ </uui-ref-node>
208
+ `;
209
+ };
210
+ _UmbInputDocumentPickerRootElement_renderAddQueryStepButton = function _UmbInputDocumentPickerRootElement_renderAddQueryStepButton() {
211
+ if (!__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_dynamicRootOrigin, "f"))
212
+ return;
213
+ return html ` <uui-button
214
+ class="add-button"
215
+ @click=${__classPrivateFieldGet(this, _UmbInputDocumentPickerRootElement_instances, "m", _UmbInputDocumentPickerRootElement_openDynamicRootQueryStepPicker)}
216
+ label=${this.localize.term('dynamicRoot_addQueryStep')}
217
+ look="placeholder"></uui-button>`;
94
218
  };
219
+ UmbInputDocumentPickerRootElement.styles = [
220
+ css `
221
+ .add-button {
222
+ width: 100%;
223
+ }
224
+
225
+ uui-ref-node[drag-placeholder] {
226
+ opacity: 0.2;
227
+ }
228
+ `,
229
+ ];
95
230
  __decorate([
96
- property()
97
- ], UmbInputDocumentPickerRootElement.prototype, "value", null);
231
+ state()
232
+ ], UmbInputDocumentPickerRootElement.prototype, "_originManifests", void 0);
98
233
  __decorate([
99
234
  state()
100
- ], UmbInputDocumentPickerRootElement.prototype, "_items", void 0);
235
+ ], UmbInputDocumentPickerRootElement.prototype, "_queryStepManifests", void 0);
236
+ __decorate([
237
+ property({ attribute: false })
238
+ ], UmbInputDocumentPickerRootElement.prototype, "data", void 0);
101
239
  UmbInputDocumentPickerRootElement = __decorate([
102
240
  customElement('umb-input-document-picker-root')
103
241
  ], UmbInputDocumentPickerRootElement);
@@ -0,0 +1,2 @@
1
+ export * from './modals/index.js';
2
+ export * from './repository/index.js';
@@ -0,0 +1,2 @@
1
+ export * from './modals/index.js';
2
+ export * from './repository/index.js';
@@ -0,0 +1 @@
1
+ export declare const manifests: (import("../core/index.js").ManifestModal | import("../core/index.js").ManifestDynamicRootOrigin | import("../core/index.js").ManifestDynamicRootQueryStep)[];
@@ -0,0 +1,6 @@
1
+ import { manifests as modalManifests } from './modals/manifests.js';
2
+ import { manifests as repositoryManifests } from './repository/manifests.js';
3
+ export const manifests = [
4
+ ...modalManifests,
5
+ ...repositoryManifests,
6
+ ];
@@ -0,0 +1,14 @@
1
+ import { UmbModalBaseElement } from '../../core/modal/index.js';
2
+ export declare class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement {
3
+ #private;
4
+ private _origins;
5
+ constructor();
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ static styles: import("../../../external/lit/index.js").CSSResult[];
8
+ }
9
+ export default UmbDynamicRootOriginPickerModalModalElement;
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'umb-dynamic-root-origin-picker-modal': UmbDynamicRootOriginPickerModalModalElement;
13
+ }
14
+ }
@@ -0,0 +1,105 @@
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
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _UmbDynamicRootOriginPickerModalModalElement_instances, _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext, _UmbDynamicRootOriginPickerModalModalElement_choose, _UmbDynamicRootOriginPickerModalModalElement_close, _UmbDynamicRootOriginPickerModalModalElement_openDocumentPicker, _UmbDynamicRootOriginPickerModalModalElement_submit;
13
+ import { UmbDocumentPickerContext } from '../../documents/documents/components/input-document/input-document.context.js';
14
+ import { UmbModalBaseElement } from '../../core/modal/index.js';
15
+ import { css, html, customElement, map, state, ifDefined } from '../../../external/lit/index.js';
16
+ import { umbExtensionsRegistry } from '../../core/extension-registry/index.js';
17
+ let UmbDynamicRootOriginPickerModalModalElement = class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement {
18
+ constructor() {
19
+ super();
20
+ _UmbDynamicRootOriginPickerModalModalElement_instances.add(this);
21
+ this._origins = [];
22
+ _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext.set(this, new UmbDocumentPickerContext(this));
23
+ __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext, "f").max = 1;
24
+ this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins) => {
25
+ this._origins = origins;
26
+ });
27
+ }
28
+ render() {
29
+ return html `
30
+ <umb-body-layout headline="${this.localize.term('dynamicRoot_pickDynamicRootOriginTitle')}">
31
+ <div id="main">
32
+ <uui-box>
33
+ ${map(this._origins, (item) => html `
34
+ <uui-button @click=${() => __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_instances, "m", _UmbDynamicRootOriginPickerModalModalElement_choose).call(this, item)} look="placeholder" label="${ifDefined(item.meta.label)}">
35
+ <h3>${item.meta.label}</h3>
36
+ <p>${item.meta.description}</p>
37
+ </uui-button>
38
+ `)}
39
+ </uui-box>
40
+ </div>
41
+ <div slot="actions">
42
+ <uui-button @click=${__classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_instances, "m", _UmbDynamicRootOriginPickerModalModalElement_close)} look="default" label="${this.localize.term('general_close')}"></uui-button>
43
+ </div>
44
+ </umb-body-layout>
45
+ `;
46
+ }
47
+ };
48
+ _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext = new WeakMap();
49
+ _UmbDynamicRootOriginPickerModalModalElement_instances = new WeakSet();
50
+ _UmbDynamicRootOriginPickerModalModalElement_choose = function _UmbDynamicRootOriginPickerModalModalElement_choose(item) {
51
+ switch (item.meta.originAlias) {
52
+ // NOTE: Edge-case. Currently this is the only one that uses a document picker,
53
+ // but other custom origins may want other configuration options. [LK:2024-01-25]
54
+ case 'ByKey':
55
+ __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_instances, "m", _UmbDynamicRootOriginPickerModalModalElement_openDocumentPicker).call(this, item.meta.originAlias);
56
+ break;
57
+ default:
58
+ __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_instances, "m", _UmbDynamicRootOriginPickerModalModalElement_submit).call(this, { originAlias: item.meta.originAlias });
59
+ break;
60
+ }
61
+ };
62
+ _UmbDynamicRootOriginPickerModalModalElement_close = function _UmbDynamicRootOriginPickerModalModalElement_close() {
63
+ this.modalContext?.reject();
64
+ };
65
+ _UmbDynamicRootOriginPickerModalModalElement_openDocumentPicker = async function _UmbDynamicRootOriginPickerModalModalElement_openDocumentPicker(originAlias) {
66
+ await __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext, "f").openPicker({
67
+ hideTreeRoot: true,
68
+ });
69
+ const selectedItems = __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_documentPickerContext, "f").getSelection();
70
+ if (selectedItems.length !== 1)
71
+ return;
72
+ __classPrivateFieldGet(this, _UmbDynamicRootOriginPickerModalModalElement_instances, "m", _UmbDynamicRootOriginPickerModalModalElement_submit).call(this, {
73
+ originAlias,
74
+ originKey: selectedItems[0],
75
+ });
76
+ };
77
+ _UmbDynamicRootOriginPickerModalModalElement_submit = function _UmbDynamicRootOriginPickerModalModalElement_submit(value) {
78
+ this.modalContext?.setValue(value);
79
+ this.modalContext?.submit();
80
+ };
81
+ UmbDynamicRootOriginPickerModalModalElement.styles = [
82
+ css `
83
+ uui-box > uui-button {
84
+ display: block;
85
+ --uui-button-content-align: flex-start;
86
+ }
87
+
88
+ uui-box > uui-button:not(:last-of-type) {
89
+ margin-bottom: var(--uui-size-space-5);
90
+ }
91
+
92
+ h3,
93
+ p {
94
+ text-align: left;
95
+ }
96
+ `,
97
+ ];
98
+ __decorate([
99
+ state()
100
+ ], UmbDynamicRootOriginPickerModalModalElement.prototype, "_origins", void 0);
101
+ UmbDynamicRootOriginPickerModalModalElement = __decorate([
102
+ customElement('umb-dynamic-root-origin-picker-modal')
103
+ ], UmbDynamicRootOriginPickerModalModalElement);
104
+ export { UmbDynamicRootOriginPickerModalModalElement };
105
+ export default UmbDynamicRootOriginPickerModalModalElement;
@@ -0,0 +1,14 @@
1
+ import { UmbModalBaseElement } from '../../core/modal/index.js';
2
+ export declare class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement {
3
+ #private;
4
+ private _querySteps;
5
+ constructor();
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ static styles: import("../../../external/lit/index.js").CSSResult[];
8
+ }
9
+ export default UmbDynamicRootQueryStepPickerModalModalElement;
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'umb-dynamic-root-query-step-picker-modal': UmbDynamicRootQueryStepPickerModalModalElement;
13
+ }
14
+ }