@umbraco-cms/backoffice 14.0.0--preview005-f1b84a48 → 14.0.0--preview005-ca61ea2b

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 (66) hide show
  1. package/dist-cms/assets/lang/da-dk.js +1 -1
  2. package/dist-cms/assets/lang/da-dk.ts +1 -1
  3. package/dist-cms/assets/lang/en-us.js +1 -1
  4. package/dist-cms/assets/lang/en-us.ts +2 -2
  5. package/dist-cms/css/rte-content.css +49 -0
  6. package/dist-cms/custom-elements.json +27 -5
  7. package/dist-cms/libs/extension-api/controller/extensions-element-initializer.controller.d.ts +0 -1
  8. package/dist-cms/libs/extension-api/controller/extensions-element-initializer.controller.js +5 -4
  9. package/dist-cms/mocks/data/data-type/data-type.data.js +3 -3
  10. package/dist-cms/mocks/data/document/document.data.js +20 -2
  11. package/dist-cms/mocks/data/health-check.data.js +0 -25
  12. package/dist-cms/mocks/handlers/install.handlers.js +1 -1
  13. package/dist-cms/packages/block/block/conditions/block-workspace-has-settings.condition.d.ts +10 -0
  14. package/dist-cms/packages/block/block/conditions/block-workspace-has-settings.condition.js +37 -0
  15. package/dist-cms/packages/block/block/conditions/index.d.ts +1 -0
  16. package/dist-cms/packages/block/block/conditions/index.js +1 -0
  17. package/dist-cms/packages/block/block/context/{block.context.d.ts → block-entity.context.d.ts} +1 -1
  18. package/dist-cms/packages/block/block/context/{block.context.js → block-entity.context.js} +2 -2
  19. package/dist-cms/packages/block/block/context/index.d.ts +1 -1
  20. package/dist-cms/packages/block/block/context/index.js +1 -1
  21. package/dist-cms/packages/block/block/index.d.ts +2 -1
  22. package/dist-cms/packages/block/block/index.js +2 -1
  23. package/dist-cms/packages/block/block/manager/block-manager.context.js +1 -0
  24. package/dist-cms/packages/block/block/manifests.js +2 -1
  25. package/dist-cms/packages/block/block/workspace/block-workspace.context.d.ts +1 -0
  26. package/dist-cms/packages/block/block/workspace/block-workspace.element.js +1 -1
  27. package/dist-cms/packages/block/block/workspace/manifests.js +23 -0
  28. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.js +0 -1
  29. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.d.ts +5 -3
  30. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.js +44 -9
  31. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.d.ts +4 -4
  32. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.js +43 -14
  33. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.d.ts +4 -4
  34. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +56 -21
  35. package/dist-cms/packages/block/block-list/components/block-list-block/block-list-block.element.d.ts +4 -0
  36. package/dist-cms/packages/block/block-list/components/block-list-block/block-list-block.element.js +26 -3
  37. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.d.ts +1 -1
  38. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.js +6 -8
  39. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.d.ts +1 -1
  40. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +3 -5
  41. package/dist-cms/packages/core/components/extension-slot/extension-slot.element.js +4 -2
  42. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.js +0 -2
  43. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.js +1 -0
  44. package/dist-cms/packages/core/extension-registry/conditions/manifests.js +3 -2
  45. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +2 -1
  46. package/dist-cms/packages/core/extension-registry/models/block-editor-custom-view.model.d.ts +5 -0
  47. package/dist-cms/packages/core/extension-registry/models/block-editor-custom-view.model.js +1 -0
  48. package/dist-cms/packages/core/extension-registry/models/index.d.ts +3 -1
  49. package/dist-cms/packages/core/index.d.ts +0 -1
  50. package/dist-cms/packages/core/index.js +0 -1
  51. package/dist-cms/packages/core/property-editor/uis/tiny-mce/plugins/manifests.js +0 -15
  52. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.d.ts +1 -2
  53. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.js +4 -0
  54. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +1 -8
  55. package/dist-cms/packages/templating/modals/insert-choose-type-sidebar.element.d.ts +1 -2
  56. package/dist-cms/packages/templating/modals/insert-choose-type-sidebar.element.js +0 -1
  57. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  58. package/dist-cms/umbraco-package-schema.json +74 -8
  59. package/dist-cms/vscode-html-custom-data.json +15 -9
  60. package/package.json +1 -2
  61. package/dist-cms/packages/core/macro/index.d.ts +0 -1
  62. package/dist-cms/packages/core/macro/index.js +0 -1
  63. package/dist-cms/packages/core/macro/macro.service.d.ts +0 -26
  64. package/dist-cms/packages/core/macro/macro.service.js +0 -116
  65. package/dist-cms/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.d.ts +0 -6
  66. package/dist-cms/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.js +0 -173
@@ -2968,7 +2968,7 @@ export default {
2968
2968
  analyticsDescription: '\n In order to improve Umbraco and add new functionality based on as relevant information as possible,\n <br>we would like to collect system- and usage information from your installation.\n <br>Aggregate data will be shared on a regular basis as well as learnings from these metrics.\n <br>Hopefully, you will help us collect some valuable data.\n <br>\n <br>We <strong>WILL NOT</strong> collect any personal data such as content, code, user information, and all data will be fully anonymized.\n ',
2969
2969
  minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.',
2970
2970
  basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed',
2971
- detailedLevelDescription: '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2971
+ detailedLevelDescription: '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2972
2972
  },
2973
2973
  umbId: {
2974
2974
  editProfile: 'Edit your Umbraco ID profile',
@@ -3217,7 +3217,7 @@ export default {
3217
3217
  minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.',
3218
3218
  basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed',
3219
3219
  detailedLevelDescription:
3220
- '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
3220
+ '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
3221
3221
  },
3222
3222
  umbId: {
3223
3223
  editProfile: 'Edit your Umbraco ID profile',
@@ -2266,7 +2266,7 @@ export default {
2266
2266
  analyticsDescription: '\n In order to improve Umbraco and add new functionality based on as relevant information as possible,\n <br>we would like to collect system- and usage information from your installation.\n <br>Aggregate data will be shared on a regular basis as well as learnings from these metrics.\n <br>Hopefully, you will help us collect some valuable data.\n <br>\n <br>We <strong>WILL NOT</strong> collect any personal data such as content, code, user information, and all data will be fully anonymized.\n ',
2267
2267
  minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.',
2268
2268
  basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed',
2269
- detailedLevelDescription: '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2269
+ detailedLevelDescription: '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2270
2270
  },
2271
2271
  umbId: {
2272
2272
  editProfile: 'Edit your Umbraco ID profile',
@@ -1522,7 +1522,7 @@ export default {
1522
1522
  addGroup: 'Add group',
1523
1523
  inheritedFrom: 'Inherited from',
1524
1524
  addProperty: 'Add property',
1525
- editProperty : 'Edit property',
1525
+ editProperty: 'Edit property',
1526
1526
  requiredLabel: 'Required label',
1527
1527
  enableListViewHeading: 'Enable list view',
1528
1528
  enableListViewDescription:
@@ -2470,7 +2470,7 @@ export default {
2470
2470
  minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.',
2471
2471
  basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed',
2472
2472
  detailedLevelDescription:
2473
- '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2473
+ '\n We will send:\n <ul>\n <li>Anonymized site ID, Umbraco version, and packages installed.</li>\n <li>Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.</li>\n <li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>\n <li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.</li>\n </ul>\n <em>We might change what we send on the Detailed level in the future. If so, it will be listed above.\n <br>By choosing "Detailed" you agree to current and future anonymized information being collected.</em>\n ',
2474
2474
  },
2475
2475
  umbId: {
2476
2476
  editProfile: 'Edit your Umbraco ID profile',
@@ -0,0 +1,49 @@
1
+ .umb-macro-holder {
2
+ border: 3px dotted red;
3
+ padding: 7px;
4
+ margin: 3px;
5
+ display: block;
6
+ position: relative;
7
+ }
8
+
9
+ .umb-macro-holder::after {
10
+ content: 'Macros are no longer supported. Please use the block picker instead.';
11
+ position: absolute;
12
+ top: 50%;
13
+ left: 50%;
14
+ transform: translate(-50%, -50%);
15
+ color: white;
16
+ background-color: rgba(0, 0, 0, 0.7);
17
+ padding: 10px;
18
+ border-radius: 5px;
19
+ }
20
+
21
+ .umb-embed-holder {
22
+ position: relative;
23
+ }
24
+
25
+ .umb-embed-holder > * {
26
+ user-select: none;
27
+ pointer-events: none;
28
+ }
29
+
30
+ .umb-embed-holder[data-mce-selected] {
31
+ outline: 2px solid var(--uui-palette-spanish-pink-light);
32
+ }
33
+
34
+ .umb-embed-holder::before {
35
+ z-index: 1000;
36
+ width: 100%;
37
+ height: 100%;
38
+ position: absolute;
39
+ content: ' ';
40
+ }
41
+
42
+ .umb-embed-holder[data-mce-selected]::before {
43
+ background: rgba(0, 0, 0, 0.025);
44
+ }
45
+
46
+ *[data-mce-selected='inline-boundary'] {
47
+ background: rgba(0, 0, 0, 0.025);
48
+ outline: 2px solid var(--uui-palette-spanish-pink-light);
49
+ }
@@ -643,11 +643,22 @@
643
643
  {
644
644
  "name": "umb-inline-list-block",
645
645
  "path": "./../src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts",
646
+ "attributes": [
647
+ {
648
+ "name": "label",
649
+ "type": "string | undefined"
650
+ }
651
+ ],
646
652
  "properties": [
653
+ {
654
+ "name": "label",
655
+ "attribute": "label",
656
+ "type": "string | undefined"
657
+ },
647
658
  {
648
659
  "name": "styles",
649
660
  "type": "array",
650
- "default": "[null]"
661
+ "default": "[\"UmbTextStyles\",null]"
651
662
  }
652
663
  ]
653
664
  },
@@ -656,20 +667,20 @@
656
667
  "path": "./../src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts",
657
668
  "attributes": [
658
669
  {
659
- "name": "name",
670
+ "name": "label",
660
671
  "type": "string | undefined"
661
672
  }
662
673
  ],
663
674
  "properties": [
664
675
  {
665
- "name": "name",
666
- "attribute": "name",
676
+ "name": "label",
677
+ "attribute": "label",
667
678
  "type": "string | undefined"
668
679
  },
669
680
  {
670
681
  "name": "styles",
671
682
  "type": "array",
672
- "default": "[null,null]"
683
+ "default": "[null]"
673
684
  }
674
685
  ]
675
686
  },
@@ -899,6 +910,10 @@
899
910
  }
900
911
  ],
901
912
  "properties": [
913
+ {
914
+ "name": "managerName",
915
+ "type": "UmbBlockWorkspaceElementManagerNames | undefined"
916
+ },
902
917
  {
903
918
  "name": "containerName",
904
919
  "attribute": "container-name",
@@ -939,6 +954,10 @@
939
954
  }
940
955
  ],
941
956
  "properties": [
957
+ {
958
+ "name": "managerName",
959
+ "type": "UmbBlockWorkspaceElementManagerNames | undefined"
960
+ },
942
961
  {
943
962
  "name": "tabName",
944
963
  "attribute": "tabName",
@@ -972,6 +991,9 @@
972
991
  "name": "umb-block-workspace-view-edit",
973
992
  "path": "./../src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts",
974
993
  "properties": [
994
+ {
995
+ "name": "manifest"
996
+ },
975
997
  {
976
998
  "name": "styles",
977
999
  "type": "array",
@@ -6,7 +6,6 @@ import type { UmbControllerHost } from '../../controller-api/index.js';
6
6
  */
7
7
  export declare class UmbExtensionsElementInitializer<ManifestTypes extends ManifestBase, ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string = ManifestTypes['type'], ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>, ControllerType extends UmbExtensionElementInitializer<ManifestType> = UmbExtensionElementInitializer<ManifestType>, MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>> extends UmbBaseExtensionsInitializer<ManifestTypes, ManifestTypeName, ManifestType, ControllerType, MyPermittedControllerType> {
8
8
  #private;
9
- private _defaultElement?;
10
9
  get properties(): Record<string, unknown> | undefined;
11
10
  set properties(props: Record<string, unknown> | undefined);
12
11
  constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>) => void, defaultElement?: string);
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  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");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- var _UmbExtensionsElementInitializer_extensionRegistry, _UmbExtensionsElementInitializer_props;
12
+ var _UmbExtensionsElementInitializer_extensionRegistry, _UmbExtensionsElementInitializer_defaultElement, _UmbExtensionsElementInitializer_props;
13
13
  import { UmbBaseExtensionsInitializer, } from './base-extensions-initializer.controller.js';
14
14
  import { UmbExtensionElementInitializer, } from '../index.js';
15
15
  /**
@@ -28,15 +28,16 @@ export class UmbExtensionsElementInitializer extends UmbBaseExtensionsInitialize
28
28
  super(host, extensionRegistry, type, filter, onChange);
29
29
  //
30
30
  _UmbExtensionsElementInitializer_extensionRegistry.set(this, void 0);
31
+ _UmbExtensionsElementInitializer_defaultElement.set(this, void 0);
31
32
  _UmbExtensionsElementInitializer_props.set(this, void 0);
32
33
  __classPrivateFieldSet(this, _UmbExtensionsElementInitializer_extensionRegistry, extensionRegistry, "f");
33
- this._defaultElement = defaultElement;
34
+ __classPrivateFieldSet(this, _UmbExtensionsElementInitializer_defaultElement, defaultElement, "f");
34
35
  this._init();
35
36
  }
36
37
  _createController(manifest) {
37
- const extController = new UmbExtensionElementInitializer(this, __classPrivateFieldGet(this, _UmbExtensionsElementInitializer_extensionRegistry, "f"), manifest.alias, this._extensionChanged, this._defaultElement);
38
+ const extController = new UmbExtensionElementInitializer(this, __classPrivateFieldGet(this, _UmbExtensionsElementInitializer_extensionRegistry, "f"), manifest.alias, this._extensionChanged, __classPrivateFieldGet(this, _UmbExtensionsElementInitializer_defaultElement, "f"));
38
39
  extController.properties = __classPrivateFieldGet(this, _UmbExtensionsElementInitializer_props, "f");
39
40
  return extController;
40
41
  }
41
42
  }
42
- _UmbExtensionsElementInitializer_extensionRegistry = new WeakMap(), _UmbExtensionsElementInitializer_props = new WeakMap();
43
+ _UmbExtensionsElementInitializer_extensionRegistry = new WeakMap(), _UmbExtensionsElementInitializer_defaultElement = new WeakMap(), _UmbExtensionsElementInitializer_props = new WeakMap();
@@ -500,6 +500,7 @@ export const data = [
500
500
  {
501
501
  label: 'Mocked Block Type for Block List',
502
502
  contentElementTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c',
503
+ settingsElementTypeKey: 'all-property-editors-document-type-id',
503
504
  icon: 'icon-server-alt',
504
505
  },
505
506
  {
@@ -539,7 +540,7 @@ export const data = [
539
540
  },
540
541
  {
541
542
  alias: 'useInlineEditingAsDefault',
542
- value: true,
543
+ value: false,
543
544
  },
544
545
  {
545
546
  alias: 'useLiveEditing',
@@ -716,7 +717,7 @@ export const data = [
716
717
  value: '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,video[*],audio[*],picture[*],source[*],canvas[*]',
717
718
  },
718
719
  { alias: 'invalidElements', value: 'font' },
719
- // { alias: 'stylesheets', value: ['/css/rte-content.css'] },
720
+ { alias: 'stylesheets', value: [] },
720
721
  {
721
722
  alias: 'toolbar',
722
723
  value: [
@@ -738,7 +739,6 @@ export const data = [
738
739
  'anchor',
739
740
  'table',
740
741
  'umbmediapicker',
741
- 'umbmacro',
742
742
  'umbembeddialog',
743
743
  ],
744
744
  },
@@ -24,7 +24,18 @@ export const data = [
24
24
  alias: 'richTextEditor',
25
25
  culture: null,
26
26
  segment: null,
27
- value: 'Some value for the RTE with an <a href="http://foo.com">external link</a> and an <a href="/{localLink:umb://document/c05da24d7740447b9cdcbd8ce2172e38}">internal link</a> foo foo <div class="umb-macro-holder TestMacro umb-macro-mce_1 mceNonEditable"><!-- <?UMBRACO_MACRO macroAlias="TestMacro" /> --><ins>Macro alias: <strong>TestMacro</strong></ins></div>',
27
+ value: {
28
+ blocks: {},
29
+ markup: `
30
+ <p>
31
+ Some value for the RTE with an <a href="https://google.com">external link</a> and an <a href="/{localLink:umb://document/c05da24d7740447b9cdcbd8ce2172e38}">internal link</a> foo foo
32
+ </p>
33
+ <div class="umb-macro-holder TestMacro umb-macro-mce_1 mceNonEditable"><!-- <?UMBRACO_MACRO macroAlias="TestMacro" /> --><ins>Macro alias: <strong>TestMacro</strong></ins></div>
34
+ <p>The following tests the embed plugin:</p>
35
+ <div class="mceNonEditable umb-embed-holder" data-embed-height="240" data-embed-width="360" data-embed-constrain="false"><iframe width="360" height="240" src="https://www.youtube.com/embed/QRIWz9SotY4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" title="Sleep Token - The Summoning"></iframe></div>
36
+ <p>End of test content</p>
37
+ `,
38
+ },
28
39
  },
29
40
  {
30
41
  alias: 'email',
@@ -165,6 +176,7 @@ export const data = [
165
176
  'Umbraco.BlockList': [
166
177
  {
167
178
  contentUdi: '1234',
179
+ settingsUdi: '5678',
168
180
  },
169
181
  ],
170
182
  },
@@ -175,7 +187,13 @@ export const data = [
175
187
  elementProperty: 'Hello world',
176
188
  },
177
189
  ],
178
- settingsData: [],
190
+ settingsData: [
191
+ {
192
+ udi: '5678',
193
+ contentTypeKey: 'all-property-editors-document-type-id',
194
+ elementProperty: 'Hello world',
195
+ },
196
+ ],
179
197
  },
180
198
  },
181
199
  {
@@ -9,26 +9,6 @@ export const healthGroups = [
9
9
  {
10
10
  name: 'Configuration',
11
11
  checks: [
12
- {
13
- id: '1c6c0a39-d673-4794-b734-1bec45d6a363',
14
- results: [
15
- {
16
- message: `MacroErrors are set to 'Throw' which will prevent some or all pages in your site from loading
17
- completely if there are any errors in macros. Rectifying this will set the value to 'Inline'. `,
18
- resultType: StatusResultTypeModel.ERROR,
19
- readMoreLink: 'https://umbra.co/healthchecks-macro-errors',
20
- actions: [
21
- {
22
- healthCheckId: 'id123',
23
- name: 'Action name',
24
- alias: 'Action alias',
25
- description: 'Action description',
26
- valueRequired: true,
27
- },
28
- ],
29
- },
30
- ],
31
- },
32
12
  {
33
13
  id: '3e2f7b14-4b41-452b-9a30-e67fbc8e1206',
34
14
  results: [
@@ -209,11 +189,6 @@ export const healthGroupsWithoutResult = [
209
189
  {
210
190
  name: 'Configuration',
211
191
  checks: [
212
- {
213
- id: 'd0f7599e-9b2a-4d9e-9883-81c7edc5616f',
214
- name: 'Macro errors',
215
- description: 'Checks to make sure macro errors are not set to throw a YSOD (yellow screen of death), which would prevent certain or all pages from loading completely.',
216
- },
217
192
  {
218
193
  id: '3e2f7b14-4b41-452b-9a30-e67fbc8e1206',
219
194
  name: 'Notification Email Settings',
@@ -20,7 +20,7 @@ export const handlers = [
20
20
  },
21
21
  {
22
22
  level: TelemetryLevelModel.DETAILED,
23
- description: 'We will send:<ul><li>Anonymized site ID, umbraco version, and packages installed.</li><li>Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use.</li><li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li><li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.</li></ul><i>We might change what we send on the Detailed level in the future. If so, it will be listed above.<br>By choosing "Detailed" you agree to current and future anonymized information being collected.</i>',
23
+ description: 'We will send:<ul><li>Anonymized site ID, umbraco version, and packages installed.</li><li>Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use.</li><li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li><li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.</li></ul><i>We might change what we send on the Detailed level in the future. If so, it will be listed above.<br>By choosing "Detailed" you agree to current and future anonymized information being collected.</i>',
24
24
  },
25
25
  ],
26
26
  },
@@ -0,0 +1,10 @@
1
+ import { UmbBaseController } from '../../../../libs/class-api/index.js';
2
+ import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, UmbExtensionCondition } from '../../../../libs/extension-api/index.js';
3
+ export declare class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController implements UmbExtensionCondition {
4
+ #private;
5
+ config: BlockWorkspaceHasSettingsConditionConfig;
6
+ permitted: boolean;
7
+ constructor(args: UmbConditionControllerArguments<BlockWorkspaceHasSettingsConditionConfig>);
8
+ }
9
+ export type BlockWorkspaceHasSettingsConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockWorkspaceHasSettings'>;
10
+ export declare const manifest: ManifestCondition;
@@ -0,0 +1,37 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ 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");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
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 _UmbBlockWorkspaceHasSettingsCondition_onChange;
13
+ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../index.js';
14
+ import { UmbBaseController } from '../../../../libs/class-api/index.js';
15
+ export class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController {
16
+ constructor(args) {
17
+ super(args.host);
18
+ this.permitted = false;
19
+ _UmbBlockWorkspaceHasSettingsCondition_onChange.set(this, void 0);
20
+ this.config = args.config;
21
+ __classPrivateFieldSet(this, _UmbBlockWorkspaceHasSettingsCondition_onChange, args.onChange, "f");
22
+ // TODO: Rename the Block Context, so it gets a name.. like Block Entry Context or something.
23
+ this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => {
24
+ this.observe(context.settings.contentTypeId, (settingsContentTypeId) => {
25
+ this.permitted = !!settingsContentTypeId;
26
+ __classPrivateFieldGet(this, _UmbBlockWorkspaceHasSettingsCondition_onChange, "f").call(this);
27
+ }, 'observeSettingsElementTypeId');
28
+ });
29
+ }
30
+ }
31
+ _UmbBlockWorkspaceHasSettingsCondition_onChange = new WeakMap();
32
+ export const manifest = {
33
+ type: 'condition',
34
+ name: 'Block Has Settings Condition',
35
+ alias: 'Umb.Condition.BlockWorkspaceHasSettings',
36
+ api: UmbBlockWorkspaceHasSettingsCondition,
37
+ };
@@ -0,0 +1 @@
1
+ export * from './block-workspace-has-settings.condition.js';
@@ -0,0 +1 @@
1
+ export * from './block-workspace-has-settings.condition.js';
@@ -34,4 +34,4 @@ export declare abstract class UmbBlockContext<BlockManagerContextTokenType exten
34
34
  _gotManager(): void;
35
35
  delete(): void;
36
36
  }
37
- export declare const UMB_BLOCK_CONTEXT: UmbContextToken<UmbBlockContext<UmbContextToken<UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockContext<UmbContextToken<UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>;
37
+ export declare const UMB_BLOCK_ENTITY_CONTEXT: UmbContextToken<UmbBlockContext<UmbContextToken<UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockContext<UmbContextToken<UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>, UmbBlockManagerContext<UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>, UmbBlockTypeBaseModel, UmbBlockLayoutBaseModel>>;
@@ -19,7 +19,7 @@ export class UmbBlockContext extends UmbContextBase {
19
19
  __classPrivateFieldGet(this, _UmbBlockContext_layout, "f").setValue(layout);
20
20
  }
21
21
  constructor(host, blockManagerContextToken) {
22
- super(host, UMB_BLOCK_CONTEXT.toString());
22
+ super(host, UMB_BLOCK_ENTITY_CONTEXT.toString());
23
23
  _UmbBlockContext_instances.add(this);
24
24
  _UmbBlockContext_blockTypeName.set(this, new UmbStringState(undefined));
25
25
  this.blockTypeName = __classPrivateFieldGet(this, _UmbBlockContext_blockTypeName, "f").asObservable();
@@ -148,4 +148,4 @@ _UmbBlockContext_blockTypeName = new WeakMap(), _UmbBlockContext_label = new Wea
148
148
  }, 'observeBlockTypeName');
149
149
  }
150
150
  };
151
- export const UMB_BLOCK_CONTEXT = new UmbContextToken('UmbBlockContext');
151
+ export const UMB_BLOCK_ENTITY_CONTEXT = new UmbContextToken('UmbBlockContext');
@@ -1 +1 @@
1
- export * from './block.context.js';
1
+ export * from './block-entity.context.js';
@@ -1 +1 @@
1
- export * from './block.context.js';
1
+ export * from './block-entity.context.js';
@@ -1,5 +1,6 @@
1
+ export * from './conditions/index.js';
1
2
  export * from './context/index.js';
2
3
  export * from './manager/index.js';
3
4
  export * from './modals/index.js';
4
- export * from './workspace/index.js';
5
5
  export * from './types.js';
6
+ export * from './workspace/index.js';
@@ -1,5 +1,6 @@
1
+ export * from './conditions/index.js';
1
2
  export * from './context/index.js';
2
3
  export * from './manager/index.js';
3
4
  export * from './modals/index.js';
4
- export * from './workspace/index.js';
5
5
  export * from './types.js';
6
+ export * from './workspace/index.js';
@@ -49,6 +49,7 @@ export class UmbBlockManagerContext extends UmbContextBase {
49
49
  this.contents = __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").asObservable();
50
50
  _UmbBlockManagerContext_settings.set(this, new UmbArrayState([], (x) => x.udi));
51
51
  this.settings = __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").asObservable();
52
+ // TODO: This might will need the property alias as part of the URL, to avoid collision if multiple of these Editor on same Node.
52
53
  // IDEA: Make a Workspace registration controller that can be used to register a workspace, which does both edit and create?.
53
54
  new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL)
54
55
  .addAdditionalPath('block')
@@ -1,3 +1,4 @@
1
+ import { manifest as blockWorkspaceHasSettingsConditionManifest } from './conditions/block-workspace-has-settings.condition.js';
1
2
  import { manifests as modalManifests } from './modals/manifests.js';
2
3
  import { manifests as workspaceManifests } from './workspace/manifests.js';
3
- export const manifests = [...modalManifests, ...workspaceManifests];
4
+ export const manifests = [...modalManifests, ...workspaceManifests, blockWorkspaceHasSettingsConditionManifest];
@@ -3,6 +3,7 @@ import { UmbBlockElementManager } from './block-element-manager.js';
3
3
  import { UmbEditableWorkspaceContextBase } from '../../../core/workspace/index.js';
4
4
  import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
5
5
  import type { ManifestWorkspace } from '../../../core/extension-registry/index.js';
6
+ export type UmbBlockWorkspaceElementManagerNames = 'content' | 'settings';
6
7
  export declare class UmbBlockWorkspaceContext<LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel> extends UmbEditableWorkspaceContextBase<LayoutDataType> {
7
8
  #private;
8
9
  readonly IS_BLOCK_WORKSPACE_CONTEXT = true;
@@ -43,7 +43,7 @@ let UmbBlockWorkspaceElement = class UmbBlockWorkspaceElement extends UmbLitElem
43
43
  createExtensionApi(manifest, [this, { manifest: manifest }]).then((context) => {
44
44
  if (context) {
45
45
  __classPrivateFieldGet(this, _UmbBlockWorkspaceElement_instances, "m", _UmbBlockWorkspaceElement_gotWorkspaceContext).call(this, context);
46
- // TODO: We need to recreate when ID changed?
46
+ // TODO: Do we need to recreate when ID changed? Or is that a responsibility of the context it self?
47
47
  new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [
48
48
  this,
49
49
  __classPrivateFieldGet(this, _UmbBlockWorkspaceElement_workspaceContext, "f"),
@@ -39,6 +39,7 @@ export const manifests = [
39
39
  label: 'Content',
40
40
  pathname: 'content',
41
41
  icon: 'icon-document',
42
+ blockElementManagerName: 'content',
42
43
  },
43
44
  conditions: [
44
45
  {
@@ -47,4 +48,26 @@ export const manifests = [
47
48
  },
48
49
  ],
49
50
  },
51
+ {
52
+ type: 'workspaceView',
53
+ alias: 'Umb.WorkspaceView.Block.Settings',
54
+ name: 'Block Workspace Settings View',
55
+ js: () => import('./views/edit/block-workspace-view-edit.element.js'),
56
+ weight: 1000,
57
+ meta: {
58
+ label: 'Settings',
59
+ pathname: 'settings',
60
+ icon: 'icon-settings',
61
+ blockElementManagerName: 'settings',
62
+ },
63
+ conditions: [
64
+ {
65
+ alias: 'Umb.Condition.WorkspaceAlias',
66
+ match: UMB_BLOCK_WORKSPACE_ALIAS,
67
+ },
68
+ {
69
+ alias: 'Umb.Condition.BlockWorkspaceHasSettings',
70
+ },
71
+ ],
72
+ },
50
73
  ];
@@ -32,7 +32,6 @@ let UmbBlockWorkspaceViewEditNoRouterElement = class UmbBlockWorkspaceViewEditNo
32
32
  // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently.
33
33
  this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => {
34
34
  this._workspaceContext = workspaceContext;
35
- console.log('workspaceContext.content.structure', workspaceContext.content.structure);
36
35
  this._tabsStructureHelper.setStructureManager(workspaceContext.content.structure);
37
36
  this._observeRootGroups();
38
37
  });
@@ -1,12 +1,14 @@
1
- import type { PropertyContainerTypes, UmbContentTypeModel, UmbPropertyTypeModel } from '../../../../../core/content-type/index.js';
2
- import { UmbContentTypePropertyStructureHelper } from '../../../../../core/content-type/index.js';
1
+ import type { UmbBlockWorkspaceElementManagerNames } from '../../block-workspace.context.js';
2
+ import type { PropertyContainerTypes, UmbPropertyTypeModel } from '../../../../../core/content-type/index.js';
3
3
  import { UmbLitElement } from '../../../../../../shared/lit-element/index.js';
4
4
  export declare class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement {
5
+ #private;
6
+ get managerName(): UmbBlockWorkspaceElementManagerNames | undefined;
7
+ set managerName(value: UmbBlockWorkspaceElementManagerNames | undefined);
5
8
  get containerName(): string | undefined;
6
9
  set containerName(value: string | undefined);
7
10
  get containerType(): PropertyContainerTypes | undefined;
8
11
  set containerType(value: PropertyContainerTypes | undefined);
9
- _propertyStructureHelper: UmbContentTypePropertyStructureHelper<UmbContentTypeModel>;
10
12
  _propertyStructure: Array<UmbPropertyTypeModel>;
11
13
  constructor();
12
14
  render(): unknown;