@umbraco-cms/backoffice 14.0.0--preview005-0faefb02 → 14.0.0--preview005-3e13e595

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.
@@ -8213,6 +8213,10 @@
8213
8213
  "type": "boolean",
8214
8214
  "default": "\"\""
8215
8215
  },
8216
+ {
8217
+ "name": "showOpenButton",
8218
+ "type": "boolean | undefined"
8219
+ },
8216
8220
  {
8217
8221
  "name": "allowedContentTypeIds",
8218
8222
  "type": "string[] | undefined"
@@ -8255,6 +8259,11 @@
8255
8259
  "name": "selectedIds",
8256
8260
  "type": "string[]"
8257
8261
  },
8262
+ {
8263
+ "name": "showOpenButton",
8264
+ "attribute": "showOpenButton",
8265
+ "type": "boolean | undefined"
8266
+ },
8258
8267
  {
8259
8268
  "name": "allowedContentTypeIds",
8260
8269
  "attribute": "allowedContentTypeIds",
@@ -39,7 +39,8 @@ export declare class UmbInputDocumentElement extends UmbInputDocumentElement_bas
39
39
  showOpenButton?: boolean;
40
40
  ignoreUserStartNodes?: boolean;
41
41
  set value(idsString: string);
42
- private _items;
42
+ private _editDocumentPath;
43
+ private _items?;
43
44
  constructor();
44
45
  protected getFormElement(): undefined;
45
46
  render(): import("lit-html").TemplateResult<1>;
@@ -9,12 +9,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
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
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _UmbInputDocumentElement_instances, _UmbInputDocumentElement_sorter, _UmbInputDocumentElement_pickerContext, _UmbInputDocumentElement_pickableFilter, _UmbInputDocumentElement_openPicker, _UmbInputDocumentElement_openItem, _UmbInputDocumentElement_renderItems, _UmbInputDocumentElement_renderAddButton, _UmbInputDocumentElement_renderItem, _UmbInputDocumentElement_renderIcon, _UmbInputDocumentElement_renderIsTrashed, _UmbInputDocumentElement_renderOpenButton;
12
+ var _UmbInputDocumentElement_instances, _UmbInputDocumentElement_sorter, _UmbInputDocumentElement_pickerContext, _UmbInputDocumentElement_pickableFilter, _UmbInputDocumentElement_openPicker, _UmbInputDocumentElement_renderItems, _UmbInputDocumentElement_renderAddButton, _UmbInputDocumentElement_renderItem, _UmbInputDocumentElement_renderIcon, _UmbInputDocumentElement_renderIsTrashed, _UmbInputDocumentElement_renderOpenButton;
13
13
  import { UmbDocumentPickerContext } from './input-document.context.js';
14
14
  import { css, html, customElement, property, state, ifDefined, repeat } from '../../../../../external/lit/index.js';
15
15
  import { FormControlMixin } from '../../../../../external/uui/index.js';
16
16
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
17
17
  import { splitStringToArray } from '../../../../../shared/utils/index.js';
18
+ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '../../../../core/modal/index.js';
18
19
  import { UmbSorterController } from '../../../../core/sorter/index.js';
19
20
  const SORTER_CONFIG = {
20
21
  compareElementToModel: (element, model) => {
@@ -84,7 +85,7 @@ let UmbInputDocumentElement = class UmbInputDocumentElement extends FormControlM
84
85
  * @default
85
86
  */
86
87
  this.maxMessage = 'This field exceeds the allowed amount of items';
87
- this._items = [];
88
+ this._editDocumentPath = '';
88
89
  _UmbInputDocumentElement_pickerContext.set(this, new UmbDocumentPickerContext(this));
89
90
  _UmbInputDocumentElement_pickableFilter.set(this, (item) => {
90
91
  if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) {
@@ -92,6 +93,14 @@ let UmbInputDocumentElement = class UmbInputDocumentElement extends FormControlM
92
93
  }
93
94
  return true;
94
95
  });
96
+ new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
97
+ .addAdditionalPath('document')
98
+ .onSetup(() => {
99
+ return { data: { entityType: 'document', preset: {} } };
100
+ })
101
+ .observeRouteBuilder((routeBuilder) => {
102
+ this._editDocumentPath = routeBuilder({});
103
+ });
95
104
  this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length < this.min);
96
105
  this.addValidator('rangeOverflow', () => this.maxMessage, () => !!this.max && __classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").getSelection().length > this.max);
97
106
  this.observe(__classPrivateFieldGet(this, _UmbInputDocumentElement_pickerContext, "f").selection, (selection) => (super.value = selection.join(',')));
@@ -116,10 +125,6 @@ _UmbInputDocumentElement_openPicker = function _UmbInputDocumentElement_openPick
116
125
  pickableFilter: __classPrivateFieldGet(this, _UmbInputDocumentElement_pickableFilter, "f"),
117
126
  });
118
127
  };
119
- _UmbInputDocumentElement_openItem = function _UmbInputDocumentElement_openItem(item) {
120
- // TODO: Implement the Content editing infinity editor. [LK]
121
- console.log('TODO: _openItem', item);
122
- };
123
128
  _UmbInputDocumentElement_renderItems = function _UmbInputDocumentElement_renderItems() {
124
129
  if (!this._items)
125
130
  return;
@@ -166,9 +171,13 @@ _UmbInputDocumentElement_renderIsTrashed = function _UmbInputDocumentElement_ren
166
171
  _UmbInputDocumentElement_renderOpenButton = function _UmbInputDocumentElement_renderOpenButton(item) {
167
172
  if (!this.showOpenButton)
168
173
  return;
169
- return html `<uui-button @click=${() => __classPrivateFieldGet(this, _UmbInputDocumentElement_instances, "m", _UmbInputDocumentElement_openItem).call(this, item)} label="Open document ${item.name}"
170
- >${this.localize.term('general_open')}</uui-button
171
- >`;
174
+ return html `
175
+ <uui-button
176
+ href="${this._editDocumentPath}edit/${item.id}"
177
+ label="${this.localize.term('general_open')} ${item.name}">
178
+ ${this.localize.term('general_open')}
179
+ </uui-button>
180
+ `;
172
181
  };
173
182
  UmbInputDocumentElement.styles = [
174
183
  css `
@@ -208,6 +217,9 @@ __decorate([
208
217
  __decorate([
209
218
  property()
210
219
  ], UmbInputDocumentElement.prototype, "value", null);
220
+ __decorate([
221
+ state()
222
+ ], UmbInputDocumentElement.prototype, "_editDocumentPath", void 0);
211
223
  __decorate([
212
224
  state()
213
225
  ], UmbInputDocumentElement.prototype, "_items", void 0);
@@ -38,6 +38,7 @@ export declare class UmbInputMediaElement extends UmbInputMediaElement_base {
38
38
  showOpenButton?: boolean;
39
39
  ignoreUserStartNodes?: boolean;
40
40
  set value(idsString: string);
41
+ private _editMediaPath;
41
42
  private _items?;
42
43
  constructor();
43
44
  protected getFormElement(): undefined;
@@ -9,12 +9,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
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
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _UmbInputMediaElement_instances, _UmbInputMediaElement_sorter, _UmbInputMediaElement_pickerContext, _UmbInputMediaElement_pickableFilter, _UmbInputMediaElement_openPicker, _UmbInputMediaElement_openItem, _UmbInputMediaElement_renderItems, _UmbInputMediaElement_renderAddButton, _UmbInputMediaElement_renderItem, _UmbInputMediaElement_renderIsTrashed;
12
+ var _UmbInputMediaElement_instances, _UmbInputMediaElement_sorter, _UmbInputMediaElement_pickerContext, _UmbInputMediaElement_pickableFilter, _UmbInputMediaElement_openPicker, _UmbInputMediaElement_openItem, _UmbInputMediaElement_renderItems, _UmbInputMediaElement_renderAddButton, _UmbInputMediaElement_renderItem, _UmbInputMediaElement_renderIsTrashed, _UmbInputMediaElement_renderOpenButton;
13
13
  import { UmbMediaPickerContext } from './input-media.context.js';
14
14
  import { css, html, customElement, property, state, ifDefined, repeat } from '../../../../../external/lit/index.js';
15
15
  import { FormControlMixin } from '../../../../../external/uui/index.js';
16
16
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
17
17
  import { splitStringToArray } from '../../../../../shared/utils/index.js';
18
+ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '../../../../core/modal/index.js';
18
19
  import { UmbSorterController } from '../../../../core/sorter/index.js';
19
20
  const SORTER_CONFIG = {
20
21
  compareElementToModel: (element, model) => {
@@ -84,6 +85,7 @@ let UmbInputMediaElement = class UmbInputMediaElement extends FormControlMixin(U
84
85
  * @default
85
86
  */
86
87
  this.maxMessage = 'This field exceeds the allowed amount of items';
88
+ this._editMediaPath = '';
87
89
  _UmbInputMediaElement_pickerContext.set(this, new UmbMediaPickerContext(this));
88
90
  _UmbInputMediaElement_pickableFilter.set(this, (item) => {
89
91
  /* TODO: Media item doesn't have the content/media-type ID available to query.
@@ -94,6 +96,14 @@ let UmbInputMediaElement = class UmbInputMediaElement extends FormControlMixin(U
94
96
  // }
95
97
  return true;
96
98
  });
99
+ new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
100
+ .addAdditionalPath('media')
101
+ .onSetup(() => {
102
+ return { data: { entityType: 'media', preset: {} } };
103
+ })
104
+ .observeRouteBuilder((routeBuilder) => {
105
+ this._editMediaPath = routeBuilder({});
106
+ });
97
107
  this.observe(__classPrivateFieldGet(this, _UmbInputMediaElement_pickerContext, "f").selection, (selection) => (super.value = selection.join(',')));
98
108
  this.observe(__classPrivateFieldGet(this, _UmbInputMediaElement_pickerContext, "f").selectedItems, (selectedItems) => (this._items = selectedItems));
99
109
  this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && __classPrivateFieldGet(this, _UmbInputMediaElement_pickerContext, "f").getSelection().length < this.min);
@@ -143,7 +153,6 @@ _UmbInputMediaElement_renderAddButton = function _UmbInputMediaElement_renderAdd
143
153
  };
144
154
  _UmbInputMediaElement_renderItem = function _UmbInputMediaElement_renderItem(item) {
145
155
  // TODO: `file-ext` value has been hardcoded here. Find out if API model has value for it. [LK]
146
- // TODO: How to handle the `showOpenButton` option? [LK]
147
156
  return html `
148
157
  <uui-card-media
149
158
  name=${ifDefined(item.name === null ? undefined : item.name)}
@@ -151,6 +160,7 @@ _UmbInputMediaElement_renderItem = function _UmbInputMediaElement_renderItem(ite
151
160
  file-ext="jpg">
152
161
  ${__classPrivateFieldGet(this, _UmbInputMediaElement_instances, "m", _UmbInputMediaElement_renderIsTrashed).call(this, item)}
153
162
  <uui-action-bar slot="actions">
163
+ ${__classPrivateFieldGet(this, _UmbInputMediaElement_instances, "m", _UmbInputMediaElement_renderOpenButton).call(this, item)}
154
164
  <uui-button label="Copy media">
155
165
  <uui-icon name="icon-documents"></uui-icon>
156
166
  </uui-button>
@@ -166,6 +176,18 @@ _UmbInputMediaElement_renderIsTrashed = function _UmbInputMediaElement_renderIsT
166
176
  return;
167
177
  return html `<uui-tag size="s" slot="tag" color="danger">Trashed</uui-tag>`;
168
178
  };
179
+ _UmbInputMediaElement_renderOpenButton = function _UmbInputMediaElement_renderOpenButton(item) {
180
+ if (!this.showOpenButton)
181
+ return;
182
+ return html `
183
+ <uui-button
184
+ compact
185
+ href="${this._editMediaPath}edit/${item.id}"
186
+ label=${this.localize.term('general_edit') + ` ${item.name}`}>
187
+ <uui-icon name="icon-edit"></uui-icon>
188
+ </uui-button>
189
+ `;
190
+ };
169
191
  UmbInputMediaElement.styles = [
170
192
  css `
171
193
  .container {
@@ -214,6 +236,9 @@ __decorate([
214
236
  __decorate([
215
237
  property()
216
238
  ], UmbInputMediaElement.prototype, "value", null);
239
+ __decorate([
240
+ state()
241
+ ], UmbInputMediaElement.prototype, "_editMediaPath", void 0);
217
242
  __decorate([
218
243
  state()
219
244
  ], UmbInputMediaElement.prototype, "_items", void 0);
@@ -35,9 +35,11 @@ export declare class UmbInputMemberElement extends UmbInputMemberElement_base {
35
35
  maxMessage: string;
36
36
  get selectedIds(): Array<string>;
37
37
  set selectedIds(ids: Array<string>);
38
+ showOpenButton?: boolean;
38
39
  allowedContentTypeIds?: string[] | undefined;
39
40
  set value(idsString: string);
40
- private _items;
41
+ private _editMemberPath;
42
+ private _items?;
41
43
  constructor();
42
44
  protected _openPicker(): void;
43
45
  protected _requestRemoveItem(item: MemberItemResponseModel): void;
@@ -9,11 +9,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
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
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _UmbInputMemberElement_instances, _UmbInputMemberElement_sorter, _UmbInputMemberElement_pickableFilter, _UmbInputMemberElement_openPicker, _UmbInputMemberElement_requestRemoveItem, _UmbInputMemberElement_renderItems, _UmbInputMemberElement_renderAddButton, _UmbInputMemberElement_renderItem, _UmbInputMemberElement_renderIsTrashed;
12
+ var _UmbInputMemberElement_instances, _UmbInputMemberElement_sorter, _UmbInputMemberElement_pickableFilter, _UmbInputMemberElement_openPicker, _UmbInputMemberElement_requestRemoveItem, _UmbInputMemberElement_renderItems, _UmbInputMemberElement_renderAddButton, _UmbInputMemberElement_renderItem, _UmbInputMemberElement_renderOpenButton, _UmbInputMemberElement_renderIsTrashed;
13
13
  import { css, html, customElement, property, state, ifDefined, repeat } from '../../../../../external/lit/index.js';
14
14
  import { FormControlMixin } from '../../../../../external/uui/index.js';
15
15
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
16
16
  import { splitStringToArray } from '../../../../../shared/utils/index.js';
17
+ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '../../../../core/modal/index.js';
17
18
  import { UmbSorterController } from '../../../../core/sorter/index.js';
18
19
  const SORTER_CONFIG = {
19
20
  compareElementToModel: (element, model) => {
@@ -94,7 +95,7 @@ let UmbInputMemberElement = class UmbInputMemberElement extends FormControlMixin
94
95
  * @default
95
96
  */
96
97
  this.maxMessage = 'This field exceeds the allowed amount of items';
97
- this._items = [];
98
+ this._editMemberPath = '';
98
99
  _UmbInputMemberElement_pickableFilter.set(this, (item) => {
99
100
  // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK]
100
101
  console.log('member.pickableFilter', item);
@@ -103,6 +104,14 @@ let UmbInputMemberElement = class UmbInputMemberElement extends FormControlMixin
103
104
  // }
104
105
  return true;
105
106
  });
107
+ new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
108
+ .addAdditionalPath('member')
109
+ .onSetup(() => {
110
+ return { data: { entityType: 'member', preset: {} } };
111
+ })
112
+ .observeRouteBuilder((routeBuilder) => {
113
+ this._editMemberPath = routeBuilder({});
114
+ });
106
115
  // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK]
107
116
  // this.addValidator(
108
117
  // 'rangeUnderflow',
@@ -173,13 +182,28 @@ _UmbInputMemberElement_renderItem = function _UmbInputMemberElement_renderItem(i
173
182
  <uui-ref-node name=${ifDefined(item.name)} detail=${ifDefined(item.id)}>
174
183
  ${__classPrivateFieldGet(this, _UmbInputMemberElement_instances, "m", _UmbInputMemberElement_renderIsTrashed).call(this, item)}
175
184
  <uui-action-bar slot="actions">
176
- <uui-button @click=${() => __classPrivateFieldGet(this, _UmbInputMemberElement_instances, "m", _UmbInputMemberElement_requestRemoveItem).call(this, item)} label="Remove member ${item.name}"
177
- >Remove</uui-button
178
- >
185
+ ${__classPrivateFieldGet(this, _UmbInputMemberElement_instances, "m", _UmbInputMemberElement_renderOpenButton).call(this, item)}
186
+ <uui-button
187
+ @click=${() => this._requestRemoveItem(item)}
188
+ label="${this.localize.term('general_remove')} ${item.name}">
189
+ ${this.localize.term('general_remove')}
190
+ </uui-button>
179
191
  </uui-action-bar>
180
192
  </uui-ref-node>
181
193
  `;
182
194
  };
195
+ _UmbInputMemberElement_renderOpenButton = function _UmbInputMemberElement_renderOpenButton(item) {
196
+ if (!this.showOpenButton)
197
+ return;
198
+ return html `
199
+ <uui-button
200
+ compact
201
+ href="${this._editMemberPath}edit/${item.id}"
202
+ label=${this.localize.term('general_edit') + ` ${item.name}`}>
203
+ <uui-icon name="icon-edit"></uui-icon>
204
+ </uui-button>
205
+ `;
206
+ };
183
207
  _UmbInputMemberElement_renderIsTrashed = function _UmbInputMemberElement_renderIsTrashed(item) {
184
208
  // TODO: Uncomment, once the Management API model support deleted members. [LK]
185
209
  //if (!item.isTrashed) return;
@@ -208,12 +232,18 @@ __decorate([
208
232
  __decorate([
209
233
  property({ type: String, attribute: 'min-message' })
210
234
  ], UmbInputMemberElement.prototype, "maxMessage", void 0);
235
+ __decorate([
236
+ property({ type: Boolean })
237
+ ], UmbInputMemberElement.prototype, "showOpenButton", void 0);
211
238
  __decorate([
212
239
  property({ type: Array })
213
240
  ], UmbInputMemberElement.prototype, "allowedContentTypeIds", void 0);
214
241
  __decorate([
215
242
  property()
216
243
  ], UmbInputMemberElement.prototype, "value", null);
244
+ __decorate([
245
+ state()
246
+ ], UmbInputMemberElement.prototype, "_editMemberPath", void 0);
217
247
  __decorate([
218
248
  state()
219
249
  ], UmbInputMemberElement.prototype, "_items", void 0);