@umbraco-cms/backoffice 14.3.0-rc → 14.3.1

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 (98) hide show
  1. package/dist-cms/assets/lang/bs.js +2 -2
  2. package/dist-cms/assets/lang/bs.ts +2 -2
  3. package/dist-cms/assets/lang/cs-cz.js +2 -2
  4. package/dist-cms/assets/lang/cs-cz.ts +2 -2
  5. package/dist-cms/assets/lang/cy-gb.js +2 -2
  6. package/dist-cms/assets/lang/cy-gb.ts +2 -2
  7. package/dist-cms/assets/lang/da-dk.js +2 -2
  8. package/dist-cms/assets/lang/da-dk.ts +2 -2
  9. package/dist-cms/assets/lang/de-de.js +2 -2
  10. package/dist-cms/assets/lang/de-de.ts +2 -2
  11. package/dist-cms/assets/lang/en-us.js +2 -2
  12. package/dist-cms/assets/lang/en-us.ts +2 -2
  13. package/dist-cms/assets/lang/en.js +2 -2
  14. package/dist-cms/assets/lang/en.ts +2 -2
  15. package/dist-cms/assets/lang/es-es.js +3 -3
  16. package/dist-cms/assets/lang/es-es.ts +3 -3
  17. package/dist-cms/assets/lang/fr-fr.js +2 -2
  18. package/dist-cms/assets/lang/fr-fr.ts +2 -3
  19. package/dist-cms/assets/lang/he-il.js +1 -1
  20. package/dist-cms/assets/lang/he-il.ts +1 -1
  21. package/dist-cms/assets/lang/hr-hr.js +2 -2
  22. package/dist-cms/assets/lang/hr-hr.ts +2 -2
  23. package/dist-cms/assets/lang/it-it.js +1 -1
  24. package/dist-cms/assets/lang/it-it.ts +1 -1
  25. package/dist-cms/assets/lang/ja-jp.js +1 -1
  26. package/dist-cms/assets/lang/ja-jp.ts +1 -1
  27. package/dist-cms/assets/lang/ko-kr.js +1 -1
  28. package/dist-cms/assets/lang/ko-kr.ts +1 -1
  29. package/dist-cms/assets/lang/nb-no.js +3 -1
  30. package/dist-cms/assets/lang/nb-no.ts +3 -1
  31. package/dist-cms/assets/lang/nl-nl.js +2 -2
  32. package/dist-cms/assets/lang/nl-nl.ts +2 -2
  33. package/dist-cms/assets/lang/pl-pl.js +2 -2
  34. package/dist-cms/assets/lang/pl-pl.ts +2 -2
  35. package/dist-cms/assets/lang/pt-br.js +1 -1
  36. package/dist-cms/assets/lang/pt-br.ts +1 -1
  37. package/dist-cms/assets/lang/ru-ru.js +2 -2
  38. package/dist-cms/assets/lang/ru-ru.ts +2 -2
  39. package/dist-cms/assets/lang/tr-tr.js +2 -2
  40. package/dist-cms/assets/lang/tr-tr.ts +2 -2
  41. package/dist-cms/assets/lang/uk-ua.js +2 -2
  42. package/dist-cms/assets/lang/uk-ua.ts +2 -2
  43. package/dist-cms/assets/lang/zh-cn.js +2 -2
  44. package/dist-cms/assets/lang/zh-cn.ts +2 -2
  45. package/dist-cms/assets/lang/zh-tw.js +1 -1
  46. package/dist-cms/assets/lang/zh-tw.ts +1 -2
  47. package/dist-cms/custom-elements.json +44 -0
  48. package/dist-cms/packages/block/block/workspace/block-element-manager.d.ts +2 -2
  49. package/dist-cms/packages/block/block/workspace/block-element-manager.js +2 -2
  50. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.d.ts +1 -0
  51. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.js +5 -0
  52. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +1 -1
  53. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +1 -1
  54. package/dist-cms/packages/core/components/code-block/code-block.element.js +1 -1
  55. package/dist-cms/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.d.ts +6 -0
  56. package/dist-cms/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.js +32 -0
  57. package/dist-cms/packages/core/property/index.d.ts +1 -0
  58. package/dist-cms/packages/core/property/index.js +1 -0
  59. package/dist-cms/packages/core/property/types/index.d.ts +1 -0
  60. package/dist-cms/packages/core/property/types/index.js +1 -0
  61. package/dist-cms/packages/core/property/types/unsupported-properties.type.d.ts +1 -0
  62. package/dist-cms/packages/core/property/types/unsupported-properties.type.js +1 -0
  63. package/dist-cms/packages/core/property/unsupported-property/index.d.ts +2 -0
  64. package/dist-cms/packages/core/property/unsupported-property/index.js +2 -0
  65. package/dist-cms/packages/core/property/unsupported-property/unsupported-property.element.d.ts +15 -0
  66. package/dist-cms/packages/core/property/unsupported-property/unsupported-property.element.js +50 -0
  67. package/dist-cms/packages/core/property/unsupported-property/utils.d.ts +2 -0
  68. package/dist-cms/packages/core/property/unsupported-property/utils.js +3 -0
  69. package/dist-cms/packages/core/property-type/workspace/property-type-workspace.context.js +1 -1
  70. package/dist-cms/packages/core/utils/index.d.ts +1 -0
  71. package/dist-cms/packages/core/utils/index.js +1 -0
  72. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.d.ts +6 -0
  73. package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.js +9 -0
  74. package/dist-cms/packages/core/validation/context/index.d.ts +2 -0
  75. package/dist-cms/packages/core/validation/context/index.js +2 -0
  76. package/dist-cms/packages/core/validation/{controllers → context}/server-model-validator.context.js +1 -1
  77. package/dist-cms/packages/core/validation/context/validation.context-token.d.ts +2 -2
  78. package/dist-cms/packages/core/validation/context/validation.context.d.ts +6 -77
  79. package/dist-cms/packages/core/validation/context/validation.context.js +7 -243
  80. package/dist-cms/packages/core/validation/controllers/index.d.ts +1 -2
  81. package/dist-cms/packages/core/validation/controllers/index.js +1 -2
  82. package/dist-cms/packages/core/validation/controllers/validation.controller.d.ts +84 -0
  83. package/dist-cms/packages/core/validation/controllers/validation.controller.js +252 -0
  84. package/dist-cms/packages/core/workspace/contexts/submittable-workspace-context-base.d.ts +2 -2
  85. package/dist-cms/packages/data-type/workspace/data-type-workspace.context.js +1 -1
  86. package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +9 -5
  87. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +1 -1
  88. package/dist-cms/packages/documents/documents/entity-actions/create/document-create-options-modal.element.js +28 -13
  89. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +1 -1
  90. package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +2 -2
  91. package/dist-cms/packages/sysinfo/components/sysinfo.element.js +1 -1
  92. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  93. package/dist-cms/umbraco-package.json +1 -1
  94. package/dist-cms/vscode-html-custom-data.json +21 -2
  95. package/package.json +1 -1
  96. /package/dist-cms/packages/core/validation/{controllers → context}/server-model-validator.context-token.d.ts +0 -0
  97. /package/dist-cms/packages/core/validation/{controllers → context}/server-model-validator.context-token.js +0 -0
  98. /package/dist-cms/packages/core/validation/{controllers → context}/server-model-validator.context.d.ts +0 -0
@@ -6,11 +6,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { UMB_DICTIONARY_WORKSPACE_CONTEXT } from '../dictionary-workspace.context-token.js';
8
8
  import { UUITextareaEvent } from '../../../../external/uui/index.js';
9
- import { css, html, customElement, state, repeat, ifDefined, unsafeHTML } from '../../../../external/lit/index.js';
9
+ import { css, html, customElement, state, repeat } from '../../../../external/lit/index.js';
10
10
  import { UmbLitElement } from '../../../core/lit-element/index.js';
11
11
  import { UmbLanguageCollectionRepository } from '../../../language/index.js';
12
12
  import { UMB_CURRENT_USER_CONTEXT } from '../../../user/current-user/index.js';
13
+ import { sanitizeHTML } from '../../../core/utils/index.js';
13
14
  let UmbWorkspaceViewDictionaryEditorElement = class UmbWorkspaceViewDictionaryEditorElement extends UmbLitElement {
15
+ get #dictionaryName() {
16
+ return typeof this._dictionary?.name !== 'undefined' ? sanitizeHTML(this._dictionary.name) : '...';
17
+ }
14
18
  #languageCollectionRepository;
15
19
  #workspaceContext;
16
20
  #currentUserContext;
@@ -46,7 +50,7 @@ let UmbWorkspaceViewDictionaryEditorElement = class UmbWorkspaceViewDictionaryEd
46
50
  }
47
51
  }
48
52
  #observeDictionary() {
49
- this.observe(this.#workspaceContext.dictionary, (dictionary) => {
53
+ this.observe(this.#workspaceContext?.dictionary, (dictionary) => {
50
54
  this._dictionary = dictionary;
51
55
  });
52
56
  }
@@ -64,13 +68,13 @@ let UmbWorkspaceViewDictionaryEditorElement = class UmbWorkspaceViewDictionaryEd
64
68
  const target = e.composedPath()[0];
65
69
  const translation = target.value.toString();
66
70
  const isoCode = target.getAttribute('name');
67
- this.#workspaceContext.setPropertyValue(isoCode, translation);
71
+ this.#workspaceContext?.setPropertyValue(isoCode, translation);
68
72
  }
69
73
  }
70
74
  render() {
71
75
  return html `
72
76
  <uui-box>
73
- ${unsafeHTML(this.localize.term('dictionaryItem_description', this._dictionary?.name || '&#8203;'))}
77
+ ${this.localize.term('dictionaryItem_description', this.#dictionaryName)}
74
78
  ${repeat(this._languages, (item) => item.unique, (item) => this.#renderTranslation(item))}
75
79
  </uui-box>
76
80
  `;
@@ -85,7 +89,7 @@ let UmbWorkspaceViewDictionaryEditorElement = class UmbWorkspaceViewDictionaryEd
85
89
  name=${language.unique}
86
90
  label="translation"
87
91
  @change=${this.#onTextareaChange}
88
- value=${ifDefined(translation?.translation)}
92
+ .value=${translation?.translation ?? ''}
89
93
  ?readonly=${this.#isReadOnly(language.unique)}></uui-textarea>
90
94
  </umb-property-layout>`;
91
95
  }
@@ -28,7 +28,7 @@ export class UmbDocumentTypeWorkspaceContext extends UmbSubmittableWorkspaceCont
28
28
  this.#persistedData = new UmbObjectState(undefined);
29
29
  this.structure = new UmbContentTypeStructureManager(this, this.repository);
30
30
  this.createTemplateMode = false;
31
- this.addValidationContext(new UmbValidationContext(this).provide());
31
+ this.addValidationContext(new UmbValidationContext(this));
32
32
  // General for content types:
33
33
  //this.data = this.structure.ownerContentType;
34
34
  this.unique = this.structure.ownerContentTypeObservablePart((data) => data?.unique);
@@ -96,22 +96,37 @@ let UmbDocumentCreateOptionsModalElement = class UmbDocumentCreateOptionsModalEl
96
96
  </umb-body-layout>
97
97
  `;
98
98
  }
99
+ #renderNoDocumentTypes() {
100
+ if (this.data?.documentType?.unique) {
101
+ return html `
102
+ <umb-localize key="create_noDocumentTypes">
103
+ There are no allowed Document Types available for creating content here. You must enable these in
104
+ <strong>Document Types</strong> within the <strong>Settings</strong> section, by editing the
105
+ <strong>Allowed child node types</strong> under <strong>Structure</strong>.
106
+ </umb-localize>
107
+ <br />
108
+ <uui-button
109
+ id="edit-permissions"
110
+ look="secondary"
111
+ href=${`/section/settings/workspace/document-type/edit/${this.data?.documentType?.unique}/view/structure`}
112
+ label=${this.localize.term('create_noDocumentTypesEditPermissions')}
113
+ @click=${() => this._rejectModal()}></uui-button>
114
+ `;
115
+ }
116
+ else {
117
+ return html `
118
+ <umb-localize key="create_noDocumentTypesAllowedAtRoot">
119
+ There are no allowed Document Types available for creating content here. You must enable these in
120
+ <strong>Document Types</strong> within the <strong>Settings</strong> section, by changing the
121
+ <strong>Allow as root</strong> option under <strong>Structure</strong>.
122
+ </umb-localize>
123
+ `;
124
+ }
125
+ }
99
126
  #renderDocumentTypes() {
100
127
  return html `
101
128
  <uui-box .headline=${this._headline}>
102
- ${when(this._allowedDocumentTypes.length === 0, () => html `
103
- <umb-localize key="create_noDocumentTypes">
104
- There are no allowed Document Types available for creating content here. You must enable these in
105
- <strong>Document Types</strong> within the <strong>Settings</strong> section, by editing the
106
- <strong>Allowed child node types</strong> under <strong>Permissions</strong>.<br />
107
- </umb-localize>
108
- <uui-button
109
- id="edit-permissions"
110
- look="secondary"
111
- href=${`/section/settings/workspace/document-type/edit/${this.data?.documentType?.unique}/view/structure`}
112
- label=${this.localize.term('create_noDocumentTypesEditPermissions')}
113
- @click=${() => this._rejectModal()}></uui-button>
114
- `, () => repeat(this._allowedDocumentTypes, (documentType) => documentType.unique, (documentType) => html `
129
+ ${when(this._allowedDocumentTypes.length === 0, () => this.#renderNoDocumentTypes(), () => repeat(this._allowedDocumentTypes, (documentType) => documentType.unique, (documentType) => html `
115
130
  <uui-ref-node-document-type
116
131
  data-id=${ifDefined(documentType.unique)}
117
132
  .name=${this.localize.string(documentType.name)}
@@ -124,7 +124,7 @@ export class UmbDocumentWorkspaceContext extends UmbSubmittableWorkspaceContextB
124
124
  const readOnlyCultures = this.readOnlyState.getStates().map((s) => s.variantId.culture);
125
125
  return readOnlyCultures.includes(option.culture) === false;
126
126
  };
127
- this.addValidationContext(new UmbValidationContext(this).provide());
127
+ this.addValidationContext(new UmbValidationContext(this));
128
128
  new UmbVariantValuesValidationPathTranslator(this);
129
129
  new UmbVariantsValidationPathTranslator(this);
130
130
  this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique));
@@ -9,7 +9,6 @@ import { createExtensionApi } from '../../../../libs/extension-api/index.js';
9
9
  import { marked } from '../../../../external/marked/index.js';
10
10
  import { monaco } from '../../../../external/monaco-editor/index.js';
11
11
  import { umbExtensionsRegistry } from '../../../core/extension-registry/index.js';
12
- import { DOMPurify } from '../../../../external/dompurify/index.js';
13
12
  import { UmbChangeEvent } from '../../../core/event/index.js';
14
13
  import { UmbLitElement } from '../../../core/lit-element/index.js';
15
14
  import { UmbTextStyles } from '../../../core/style/index.js';
@@ -17,6 +16,7 @@ import { UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
17
16
  import { UMB_MEDIA_PICKER_MODAL, UmbMediaUrlRepository } from '../../../media/media/index.js';
18
17
  import { UmbCodeEditorLoadedEvent } from '../../../code-editor/index.js';
19
18
  import { UmbFormControlMixin } from '../../../core/validation/index.js';
19
+ import { sanitizeHTML } from '../../../core/utils/index.js';
20
20
  const elementName = 'umb-input-markdown';
21
21
  /**
22
22
  * @element umb-input-markdown
@@ -519,7 +519,7 @@ let UmbInputMarkdownElement = class UmbInputMarkdownElement extends UmbFormContr
519
519
  if (!this.preview || !this.value)
520
520
  return;
521
521
  const markdownAsHtml = marked.parse(this.value);
522
- const sanitizedHtml = markdownAsHtml ? DOMPurify.sanitize(markdownAsHtml) : '';
522
+ const sanitizedHtml = markdownAsHtml ? sanitizeHTML(markdownAsHtml) : '';
523
523
  return html `<uui-scroll-container id="preview">${unsafeHTML(sanitizedHtml)}</uui-scroll-container>`;
524
524
  }
525
525
  static { this.styles = [
@@ -57,7 +57,7 @@ let UmbSysinfoElement = class UmbSysinfoElement extends UmbModalBaseElement {
57
57
  return html `
58
58
  <uui-dialog>
59
59
  <uui-dialog-layout headline="System information">
60
- ${when(this._loading, () => html `<uui-loader-bar></uui-loader-bar>`, () => html ` <umb-code-block id="codeblock"> ${this._systemInformation} </umb-code-block> `)}
60
+ ${when(this._loading, () => html `<uui-loader-bar></uui-loader-bar>`, () => html ` <umb-code-block id="codeblock">${this._systemInformation}</umb-code-block> `)}
61
61
 
62
62
  <uui-button
63
63
  @click=${this._submitModal}