@umbraco-cms/backoffice 14.0.0--preview006-89e89a2e → 14.0.0--preview006-7bdcb4ac

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 (109) hide show
  1. package/dist-cms/css/umbraco-blockgridlayout.css +50 -0
  2. package/dist-cms/custom-elements.json +71 -40
  3. package/dist-cms/libs/observable-api/utils/append-to-frozen-array.function.d.ts +6 -5
  4. package/dist-cms/libs/observable-api/utils/append-to-frozen-array.function.js +6 -5
  5. package/dist-cms/mocks/data/data-type/data-type.data.js +1 -1
  6. package/dist-cms/mocks/data/document/document.data.js +91 -1
  7. package/dist-cms/packages/block/block/context/block-entries.context-token.d.ts +5 -0
  8. package/dist-cms/packages/block/block/context/block-entries.context-token.js +2 -0
  9. package/dist-cms/packages/block/block/context/block-entries.context.d.ts +29 -0
  10. package/dist-cms/packages/block/block/context/block-entries.context.js +69 -0
  11. package/dist-cms/packages/block/block/context/block-entry.context-token.d.ts +6 -0
  12. package/dist-cms/packages/block/block/context/block-entry.context-token.js +2 -0
  13. package/dist-cms/packages/block/block/context/{block-entity.context.d.ts → block-entry.context.d.ts} +25 -10
  14. package/dist-cms/packages/block/block/context/block-entry.context.js +208 -0
  15. package/dist-cms/packages/block/block/{manager → context}/block-manager.context.d.ts +21 -5
  16. package/dist-cms/packages/block/block/{manager → context}/block-manager.context.js +56 -53
  17. package/dist-cms/packages/block/block/context/index.d.ts +6 -1
  18. package/dist-cms/packages/block/block/context/index.js +5 -1
  19. package/dist-cms/packages/block/block/index.d.ts +0 -1
  20. package/dist-cms/packages/block/block/index.js +0 -1
  21. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.d.ts +0 -1
  22. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.js +1 -17
  23. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +78 -45
  24. package/dist-cms/packages/block/block/workspace/views/edit/{block-workspace-view-edit-no-router.element.d.ts → block-workspace-view-edit-content-no-router.element.d.ts} +8 -5
  25. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +148 -0
  26. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +4 -1
  27. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.d.ts +18 -0
  28. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.js +46 -0
  29. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/index.d.ts +1 -0
  30. package/dist-cms/packages/block/block-grid/components/block-grid-areas-container/index.js +1 -0
  31. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.d.ts +21 -0
  32. package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +118 -0
  33. package/dist-cms/packages/block/block-grid/components/block-grid-entries/index.d.ts +1 -0
  34. package/dist-cms/packages/block/block-grid/components/block-grid-entries/index.js +1 -0
  35. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.d.ts +28 -0
  36. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +124 -0
  37. package/dist-cms/packages/block/block-grid/components/block-grid-entry/index.d.ts +1 -0
  38. package/dist-cms/packages/block/block-grid/components/block-grid-entry/index.js +1 -0
  39. package/dist-cms/packages/block/block-grid/components/index.d.ts +0 -0
  40. package/dist-cms/packages/block/block-grid/components/index.js +1 -0
  41. package/dist-cms/packages/block/block-grid/components/ref-grid-block/index.d.ts +1 -0
  42. package/dist-cms/packages/block/block-grid/components/ref-grid-block/index.js +1 -0
  43. package/dist-cms/packages/block/block-grid/components/ref-grid-block/ref-grid-block.element.d.ts +18 -0
  44. package/dist-cms/packages/block/block-grid/components/ref-grid-block/ref-grid-block.element.js +47 -0
  45. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context-token.d.ts +3 -0
  46. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context-token.js +3 -0
  47. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.d.ts +25 -0
  48. package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.js +134 -0
  49. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context-token.d.ts +3 -0
  50. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context-token.js +3 -0
  51. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.d.ts +12 -0
  52. package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.js +38 -0
  53. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.d.ts +25 -0
  54. package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.js +38 -0
  55. package/dist-cms/packages/block/block-grid/context/index.d.ts +2 -0
  56. package/dist-cms/packages/block/block-grid/context/index.js +2 -0
  57. package/dist-cms/packages/block/block-grid/index.d.ts +2 -1
  58. package/dist-cms/packages/block/block-grid/index.js +2 -1
  59. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/manifests.d.ts +1 -0
  60. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/manifests.js +2 -1
  61. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.d.ts +7 -8
  62. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +59 -89
  63. package/dist-cms/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.d.ts +3 -3
  64. package/dist-cms/packages/block/block-grid/types.d.ts +15 -3
  65. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.d.ts +29 -0
  66. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +132 -0
  67. package/dist-cms/packages/block/block-list/components/block-list-entry/index.d.ts +1 -0
  68. package/dist-cms/packages/block/block-list/components/block-list-entry/index.js +1 -0
  69. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.d.ts +1 -1
  70. package/dist-cms/packages/block/block-list/components/inline-list-block/inline-list-block.element.js +5 -6
  71. package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +3 -2
  72. package/dist-cms/packages/block/block-list/context/block-list-entries.context-token.d.ts +3 -0
  73. package/dist-cms/packages/block/block-list/context/block-list-entries.context-token.js +3 -0
  74. package/dist-cms/packages/block/block-list/context/block-list-entries.context.d.ts +23 -0
  75. package/dist-cms/packages/block/block-list/context/block-list-entries.context.js +81 -0
  76. package/dist-cms/packages/block/block-list/context/block-list-entry.context-token.d.ts +3 -0
  77. package/dist-cms/packages/block/block-list/context/block-list-entry.context-token.js +3 -0
  78. package/dist-cms/packages/block/block-list/context/block-list-entry.context.d.ts +11 -0
  79. package/dist-cms/packages/block/block-list/context/{block-list.context.js → block-list-entry.context.js} +11 -10
  80. package/dist-cms/packages/block/block-list/{manager → context}/block-list-manager.context.d.ts +13 -4
  81. package/dist-cms/packages/block/block-list/{manager → context}/block-list-manager.context.js +8 -4
  82. package/dist-cms/packages/block/block-list/context/index.d.ts +1 -0
  83. package/dist-cms/packages/block/block-list/context/index.js +1 -0
  84. package/dist-cms/packages/block/block-list/index.d.ts +2 -1
  85. package/dist-cms/packages/block/block-list/index.js +2 -1
  86. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.d.ts +2 -7
  87. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +39 -30
  88. package/dist-cms/packages/block/block-list/types.d.ts +3 -1
  89. package/dist-cms/packages/block/block-type/components/block-type-card/block-type-card.element.js +1 -1
  90. package/dist-cms/packages/core/modal/modal-route-registration.controller.d.ts +1 -1
  91. package/dist-cms/packages/core/modal/modal-route-registration.controller.js +1 -1
  92. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  93. package/dist-cms/vscode-html-custom-data.json +36 -25
  94. package/package.json +13 -2
  95. package/dist-cms/packages/block/block/context/block-entity.context.js +0 -151
  96. package/dist-cms/packages/block/block/manager/index.d.ts +0 -2
  97. package/dist-cms/packages/block/block/manager/index.js +0 -1
  98. package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.js +0 -132
  99. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid-inner-test.element.d.ts +0 -18
  100. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid-inner-test.element.js +0 -87
  101. package/dist-cms/packages/block/block-list/components/block-list-block/block-list-block.element.d.ts +0 -31
  102. package/dist-cms/packages/block/block-list/components/block-list-block/block-list-block.element.js +0 -149
  103. package/dist-cms/packages/block/block-list/components/block-list-block/index.d.ts +0 -1
  104. package/dist-cms/packages/block/block-list/components/block-list-block/index.js +0 -1
  105. package/dist-cms/packages/block/block-list/context/block-list.context-token.d.ts +0 -3
  106. package/dist-cms/packages/block/block-list/context/block-list.context-token.js +0 -2
  107. package/dist-cms/packages/block/block-list/context/block-list.context.d.ts +0 -9
  108. /package/dist-cms/packages/block/block/{manager → context}/block-manager.context-token.d.ts +0 -0
  109. /package/dist-cms/packages/block/block/{manager → context}/block-manager.context-token.js +0 -0
@@ -0,0 +1,208 @@
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 _UmbBlockEntryContext_instances, _UmbBlockEntryContext_contentUdi, _UmbBlockEntryContext_blockTypeName, _UmbBlockEntryContext_label, _UmbBlockEntryContext_workspacePath, _UmbBlockEntryContext_content, _UmbBlockEntryContext_settings, _UmbBlockEntryContext_observeLayout, _UmbBlockEntryContext_gotManager, _UmbBlockEntryContext_gotEntries, _UmbBlockEntryContext_observeData, _UmbBlockEntryContext_observeBlockType, _UmbBlockEntryContext_observeBlockTypeContentElementName, _UmbBlockEntryContext_observeBlockTypeLabel;
13
+ import { UmbContextBase } from '../../../../libs/class-api/index.js';
14
+ import { UmbObjectState, UmbStringState } from '../../../../libs/observable-api/index.js';
15
+ import { encodeFilePath } from '../../../../shared/utils/index.js';
16
+ import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
17
+ export class UmbBlockEntryContext extends UmbContextBase {
18
+ /**
19
+ * Set the contentUdi of this entry.
20
+ * @method setContentUdi
21
+ * @param {string} contentUdi the entry content UDI.
22
+ * @returns {void}
23
+ */
24
+ setContentUdi(contentUdi) {
25
+ __classPrivateFieldSet(this, _UmbBlockEntryContext_contentUdi, contentUdi, "f");
26
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeLayout).call(this);
27
+ }
28
+ /**
29
+ * Get the current value of this Blocks label.
30
+ * @method getLabel
31
+ * @returns {string}
32
+ */
33
+ getLabel() {
34
+ return __classPrivateFieldGet(this, _UmbBlockEntryContext_label, "f").value;
35
+ }
36
+ constructor(host, blockManagerContextToken, blockEntriesContextToken) {
37
+ super(host, 'UmbBlockEntryContext');
38
+ _UmbBlockEntryContext_instances.add(this);
39
+ _UmbBlockEntryContext_contentUdi.set(this, void 0);
40
+ _UmbBlockEntryContext_blockTypeName.set(this, new UmbStringState(undefined));
41
+ this.blockTypeName = __classPrivateFieldGet(this, _UmbBlockEntryContext_blockTypeName, "f").asObservable();
42
+ // TODO: index state + observable?
43
+ _UmbBlockEntryContext_label.set(this, new UmbStringState(''));
44
+ this.label = __classPrivateFieldGet(this, _UmbBlockEntryContext_label, "f").asObservable();
45
+ _UmbBlockEntryContext_workspacePath.set(this, new UmbStringState(undefined));
46
+ this.workspacePath = __classPrivateFieldGet(this, _UmbBlockEntryContext_workspacePath, "f").asObservable();
47
+ this.workspaceEditPath = __classPrivateFieldGet(this, _UmbBlockEntryContext_workspacePath, "f").asObservablePart((path) => path ? path + 'edit/' + encodeFilePath(this.getContentUdi() ?? '') : '');
48
+ this.workspaceEditSettingsPath = __classPrivateFieldGet(this, _UmbBlockEntryContext_workspacePath, "f").asObservablePart((path) => path ? path + 'edit/' + encodeFilePath(this.getContentUdi() ?? '') + '/view/settings' : '');
49
+ this._blockType = new UmbObjectState(undefined);
50
+ this.blockType = this._blockType.asObservable();
51
+ this.blockTypeContentElementTypeKey = this._blockType.asObservablePart((x) => x?.contentElementTypeKey);
52
+ this.blockTypeSettingsElementTypeKey = this._blockType.asObservablePart((x) => x?.settingsElementTypeKey);
53
+ this._layout = new UmbObjectState(undefined);
54
+ this.layout = this._layout.asObservable();
55
+ /**
56
+ * @obsolete Use `unique` instead. Cause we will most likely rename this in the future.
57
+ */
58
+ this.contentUdi = this._layout.asObservablePart((x) => x?.contentUdi);
59
+ this.unique = this._layout.asObservablePart((x) => x?.contentUdi);
60
+ _UmbBlockEntryContext_content.set(this, new UmbObjectState(undefined));
61
+ this.content = __classPrivateFieldGet(this, _UmbBlockEntryContext_content, "f").asObservable();
62
+ this.contentTypeKey = __classPrivateFieldGet(this, _UmbBlockEntryContext_content, "f").asObservablePart((x) => x?.contentTypeKey);
63
+ // TODO: Make sure changes to the Block Content / Settings are reflected back to Manager.
64
+ _UmbBlockEntryContext_settings.set(this, new UmbObjectState(undefined));
65
+ this.settings = __classPrivateFieldGet(this, _UmbBlockEntryContext_settings, "f").asObservable();
66
+ // Consume block manager:
67
+ this.consumeContext(blockManagerContextToken, (manager) => {
68
+ this._manager = manager;
69
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_gotManager).call(this);
70
+ this._gotManager();
71
+ });
72
+ // Consume block entries:
73
+ this.consumeContext(blockEntriesContextToken, (entries) => {
74
+ this._entries = entries;
75
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_gotEntries).call(this);
76
+ this._gotEntries();
77
+ });
78
+ // Observe UDI:
79
+ this.observe(this.unique, (contentUdi) => {
80
+ if (!contentUdi)
81
+ return;
82
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeData).call(this);
83
+ });
84
+ // Observe contentElementTypeKey:
85
+ this.observe(this.contentTypeKey, (contentElementTypeKey) => {
86
+ if (!contentElementTypeKey)
87
+ return;
88
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeBlockType).call(this);
89
+ });
90
+ // Observe blockType:
91
+ this.observe(this.blockType, (blockType) => {
92
+ if (!blockType)
93
+ return;
94
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeBlockTypeContentElementName).call(this);
95
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeBlockTypeLabel).call(this);
96
+ });
97
+ }
98
+ getContentUdi() {
99
+ return this._layout.value?.contentUdi;
100
+ }
101
+ // Public methods:
102
+ //activate
103
+ edit() { }
104
+ //editSettings
105
+ requestDelete() {
106
+ this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => {
107
+ const modalContext = modalManager.open(UMB_CONFIRM_MODAL, {
108
+ data: {
109
+ headline: `Delete ${this.getLabel()}`,
110
+ content: 'Are you sure you want to delete this [INSERT BLOCK TYPE NAME]?',
111
+ confirmLabel: 'Delete',
112
+ color: 'danger',
113
+ },
114
+ });
115
+ await modalContext.onSubmit();
116
+ this.delete();
117
+ });
118
+ }
119
+ delete() {
120
+ if (!this._entries)
121
+ return;
122
+ const contentUdi = this._layout.value?.contentUdi;
123
+ if (!contentUdi)
124
+ return;
125
+ this._entries.delete(contentUdi);
126
+ }
127
+ }
128
+ _UmbBlockEntryContext_contentUdi = new WeakMap(), _UmbBlockEntryContext_blockTypeName = new WeakMap(), _UmbBlockEntryContext_label = new WeakMap(), _UmbBlockEntryContext_workspacePath = new WeakMap(), _UmbBlockEntryContext_content = new WeakMap(), _UmbBlockEntryContext_settings = new WeakMap(), _UmbBlockEntryContext_instances = new WeakSet(), _UmbBlockEntryContext_observeLayout = function _UmbBlockEntryContext_observeLayout() {
129
+ if (!this._entries || !__classPrivateFieldGet(this, _UmbBlockEntryContext_contentUdi, "f"))
130
+ return;
131
+ this.observe(this._entries.layoutOf(__classPrivateFieldGet(this, _UmbBlockEntryContext_contentUdi, "f")), (layout) => {
132
+ this._layout.setValue(layout);
133
+ }, 'observeParentLayout');
134
+ this.observe(this.layout, (layout) => {
135
+ if (layout) {
136
+ this._entries?.setOneLayout(layout);
137
+ }
138
+ }, 'observeThisLayout');
139
+ }, _UmbBlockEntryContext_gotManager = function _UmbBlockEntryContext_gotManager() {
140
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeBlockType).call(this);
141
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeData).call(this);
142
+ }, _UmbBlockEntryContext_gotEntries = function _UmbBlockEntryContext_gotEntries() {
143
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_instances, "m", _UmbBlockEntryContext_observeLayout).call(this);
144
+ if (this._entries) {
145
+ this.observe(this._entries.workspacePath, (workspacePath) => {
146
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_workspacePath, "f").setValue(workspacePath);
147
+ }, 'observeWorkspacePath');
148
+ }
149
+ else {
150
+ this.removeControllerByAlias('observeWorkspacePath');
151
+ }
152
+ }, _UmbBlockEntryContext_observeData = function _UmbBlockEntryContext_observeData() {
153
+ if (!this._manager)
154
+ return;
155
+ const contentUdi = this._layout.value?.contentUdi;
156
+ if (!contentUdi)
157
+ return;
158
+ // observe content:
159
+ this.observe(this._manager.contentOf(contentUdi), (content) => {
160
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_content, "f").setValue(content);
161
+ }, 'observeContent');
162
+ // observe settings:
163
+ const settingsUdi = this._layout.value?.settingsUdi;
164
+ if (settingsUdi) {
165
+ this.observe(this._manager.contentOf(settingsUdi), (content) => {
166
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_settings, "f").setValue(content);
167
+ }, 'observeSettings');
168
+ }
169
+ }, _UmbBlockEntryContext_observeBlockType = function _UmbBlockEntryContext_observeBlockType() {
170
+ if (!this._manager)
171
+ return;
172
+ const contentTypeKey = __classPrivateFieldGet(this, _UmbBlockEntryContext_content, "f").value?.contentTypeKey;
173
+ if (!contentTypeKey)
174
+ return;
175
+ // observe blockType:
176
+ this.observe(this._manager.blockTypeOf(contentTypeKey), (blockType) => {
177
+ this._blockType.setValue(blockType);
178
+ }, 'observeBlockType');
179
+ }, _UmbBlockEntryContext_observeBlockTypeContentElementName = function _UmbBlockEntryContext_observeBlockTypeContentElementName() {
180
+ if (!this._manager)
181
+ return;
182
+ const contentElementTypeKey = this._blockType.value?.contentElementTypeKey;
183
+ if (!contentElementTypeKey)
184
+ return;
185
+ // observe blockType:
186
+ this.observe(this._manager.contentTypeNameOf(contentElementTypeKey), (contentTypeName) => {
187
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_blockTypeName, "f").setValue(contentTypeName);
188
+ }, 'observeBlockTypeContentElementTypeName');
189
+ }, _UmbBlockEntryContext_observeBlockTypeLabel = function _UmbBlockEntryContext_observeBlockTypeLabel() {
190
+ if (!this._manager)
191
+ return;
192
+ const blockType = this._blockType.value;
193
+ if (!blockType)
194
+ return;
195
+ if (blockType.label) {
196
+ this.removeControllerByAlias('observeContentTypeName');
197
+ // Missing part for label syntax, as we need to store the syntax, interpretive it and then set the label: (here we are just parsing the label syntax)
198
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_label, "f").setValue(blockType.label);
199
+ return;
200
+ }
201
+ else {
202
+ // TODO: Maybe this could be skipped if we had a fallback label which was set to get the content element type name?
203
+ // Get the name of the content element type for label:
204
+ this.observe(this.blockTypeName, (contentTypeName) => {
205
+ __classPrivateFieldGet(this, _UmbBlockEntryContext_label, "f").setValue(contentTypeName ?? 'no name');
206
+ }, 'observeBlockTypeName');
207
+ }
208
+ };
@@ -5,9 +5,16 @@ import { UmbArrayState } from '../../../../libs/observable-api/index.js';
5
5
  import type { UmbBlockTypeBaseModel, UmbBlockWorkspaceData } from '../../index.js';
6
6
  import type { UmbContentTypeModel } from '../../../core/content-type/index.js';
7
7
  import type { UmbPropertyEditorConfigCollection } from '../../../core/property-editor/index.js';
8
+ import type { UmbVariantId } from '../../../core/variant/index.js';
9
+ export type UmbBlockDataObjectModel<LayoutEntryType extends UmbBlockLayoutBaseModel> = {
10
+ layout: LayoutEntryType;
11
+ content: UmbBlockDataType;
12
+ settings?: UmbBlockDataType;
13
+ };
8
14
  export declare abstract class UmbBlockManagerContext<BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel> extends UmbContextBase<UmbBlockManagerContext> {
9
15
  #private;
10
- workspacePath: import("rxjs").Observable<string | undefined>;
16
+ propertyAlias: import("rxjs").Observable<string | undefined>;
17
+ variantId: import("rxjs").Observable<UmbVariantId | undefined>;
11
18
  readonly contentTypes: import("rxjs").Observable<UmbContentTypeModel[]>;
12
19
  readonly blockTypes: import("rxjs").Observable<BlockType[]>;
13
20
  readonly editorConfiguration: import("rxjs").Observable<UmbPropertyEditorConfigCollection | undefined>;
@@ -29,10 +36,19 @@ export declare abstract class UmbBlockManagerContext<BlockType extends UmbBlockT
29
36
  layoutOf(contentUdi: string): import("rxjs").Observable<BlockLayoutType | undefined>;
30
37
  contentOf(udi: string): import("rxjs").Observable<UmbBlockDataType | undefined>;
31
38
  settingsOf(udi: string): import("rxjs").Observable<UmbBlockDataType | undefined>;
32
- setOneLayout(layoutData: BlockLayoutType): UmbArrayState<BlockLayoutType>;
33
39
  setOneContent(contentData: UmbBlockDataType): void;
34
40
  setOneSettings(settingsData: UmbBlockDataType): void;
35
- abstract _createBlock(modalData: UmbBlockWorkspaceData, layoutEntry: Omit<BlockLayoutType, 'contentUdi'>, contentElementTypeKey: string): boolean;
36
- createBlock(modalData: UmbBlockWorkspaceData, layoutEntry: Omit<BlockLayoutType, 'contentUdi'>, contentElementTypeKey: string): boolean;
37
- deleteBlock(contentUdi: string): void;
41
+ removeOneContent(contentUdi: string): void;
42
+ removeOneSettings(settingsUdi: string): void;
43
+ abstract create(contentElementTypeKey: string, partialLayoutEntry?: Omit<BlockLayoutType, 'contentUdi'>, modalData?: UmbBlockWorkspaceData): UmbBlockDataObjectModel<BlockLayoutType> | undefined;
44
+ protected createBlockData<ModalDataType extends UmbBlockWorkspaceData>(contentElementTypeKey: string, partialLayoutEntry?: Omit<BlockLayoutType, 'contentUdi'>): {
45
+ layout: BlockLayoutType;
46
+ content: {
47
+ udi: string;
48
+ contentTypeKey: string;
49
+ };
50
+ settings: UmbBlockDataType | undefined;
51
+ };
52
+ abstract insert(layoutEntry: BlockLayoutType, content: UmbBlockDataType, settings: UmbBlockDataType | undefined, modalData: UmbBlockWorkspaceData): boolean;
53
+ protected insertBlockData<ModalDataType extends UmbBlockWorkspaceData>(layoutEntry: BlockLayoutType, content: UmbBlockDataType, settings: UmbBlockDataType | undefined, modalData: ModalDataType): false | undefined;
38
54
  }
@@ -3,15 +3,24 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
3
  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");
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _UmbBlockManagerContext_instances, _UmbBlockManagerContext_contentTypeRepository, _UmbBlockManagerContext_workspacePath, _UmbBlockManagerContext_contentTypes, _UmbBlockManagerContext_blockTypes, _UmbBlockManagerContext_editorConfiguration, _UmbBlockManagerContext_contents, _UmbBlockManagerContext_settings, _UmbBlockManagerContext_loadContentType;
6
+ var _UmbBlockManagerContext_instances, _UmbBlockManagerContext_contentTypeRepository, _UmbBlockManagerContext_propertyAlias, _UmbBlockManagerContext_variantId, _UmbBlockManagerContext_contentTypes, _UmbBlockManagerContext_blockTypes, _UmbBlockManagerContext_editorConfiguration, _UmbBlockManagerContext_contents, _UmbBlockManagerContext_settings, _UmbBlockManagerContext_loadContentType;
7
7
  import { UmbContextBase } from '../../../../libs/class-api/index.js';
8
8
  import { UmbArrayState, UmbClassState, UmbStringState } from '../../../../libs/observable-api/index.js';
9
9
  import { UmbDocumentTypeDetailRepository } from '../../../documents/document-types/index.js';
10
10
  import { buildUdi, getKeyFromUdi } from '../../../../shared/utils/index.js';
11
- import { UMB_BLOCK_MANAGER_CONTEXT, UMB_BLOCK_WORKSPACE_MODAL } from '../../index.js';
12
- import { UmbModalRouteRegistrationController } from '../../../core/modal/index.js';
11
+ import { UMB_BLOCK_MANAGER_CONTEXT } from '../../index.js';
13
12
  import { UmbId } from '../../../core/id/index.js';
13
+ import { UMB_PROPERTY_CONTEXT } from '../../../core/property/index.js';
14
14
  export class UmbBlockManagerContext extends UmbContextBase {
15
+ // TODO: maybe its bad to consume Property Context, and instead wire this up manually in the property editor? With these: (and one for variant-id..)
16
+ /*setPropertyAlias(alias: string) {
17
+ this.#propertyAlias.setValue(alias);
18
+ console.log('!!!!!manager got alias: ', alias);
19
+ this.#workspaceModal.setUniquePathValue('propertyAlias', alias);
20
+ }
21
+ getPropertyAlias() {
22
+ this.#propertyAlias.value;
23
+ }*/
15
24
  setEditorConfiguration(configs) {
16
25
  __classPrivateFieldGet(this, _UmbBlockManagerContext_editorConfiguration, "f").setValue(configs);
17
26
  }
@@ -35,8 +44,10 @@ export class UmbBlockManagerContext extends UmbContextBase {
35
44
  _UmbBlockManagerContext_instances.add(this);
36
45
  //
37
46
  _UmbBlockManagerContext_contentTypeRepository.set(this, new UmbDocumentTypeDetailRepository(this));
38
- _UmbBlockManagerContext_workspacePath.set(this, new UmbStringState(undefined));
39
- this.workspacePath = __classPrivateFieldGet(this, _UmbBlockManagerContext_workspacePath, "f").asObservable();
47
+ _UmbBlockManagerContext_propertyAlias.set(this, new UmbStringState(undefined));
48
+ this.propertyAlias = __classPrivateFieldGet(this, _UmbBlockManagerContext_propertyAlias, "f").asObservable();
49
+ _UmbBlockManagerContext_variantId.set(this, new UmbClassState(undefined));
50
+ this.variantId = __classPrivateFieldGet(this, _UmbBlockManagerContext_variantId, "f").asObservable();
40
51
  _UmbBlockManagerContext_contentTypes.set(this, new UmbArrayState([], (x) => x.unique));
41
52
  this.contentTypes = __classPrivateFieldGet(this, _UmbBlockManagerContext_contentTypes, "f").asObservable();
42
53
  _UmbBlockManagerContext_blockTypes.set(this, new UmbArrayState([], (x) => x.contentElementTypeKey));
@@ -49,16 +60,13 @@ export class UmbBlockManagerContext extends UmbContextBase {
49
60
  this.contents = __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").asObservable();
50
61
  _UmbBlockManagerContext_settings.set(this, new UmbArrayState([], (x) => x.udi));
51
62
  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.
53
- // IDEA: Make a Workspace registration controller that can be used to register a workspace, which does both edit and create?.
54
- new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL)
55
- .addAdditionalPath('block')
56
- .onSetup(() => {
57
- return { data: { entityType: 'block', preset: {} }, modal: { size: 'medium' } };
58
- })
59
- .observeRouteBuilder((routeBuilder) => {
60
- const newPath = routeBuilder({});
61
- __classPrivateFieldGet(this, _UmbBlockManagerContext_workspacePath, "f").setValue(newPath);
63
+ this.consumeContext(UMB_PROPERTY_CONTEXT, (propertyContext) => {
64
+ this.observe(propertyContext?.alias, (alias) => {
65
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_propertyAlias, "f").setValue(alias);
66
+ }, 'observePropertyAlias');
67
+ this.observe(propertyContext?.variantId, (variantId) => {
68
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_variantId, "f").setValue(variantId);
69
+ }, 'observePropertyVariantId');
62
70
  });
63
71
  }
64
72
  async ensureContentType(unique) {
@@ -88,71 +96,66 @@ export class UmbBlockManagerContext extends UmbContextBase {
88
96
  settingsOf(udi) {
89
97
  return __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").asObservablePart((source) => source.find((x) => x.udi === udi));
90
98
  }
91
- setOneLayout(layoutData) {
99
+ /*setOneLayout(layoutData: BlockLayoutType) {
92
100
  return this._layouts.appendOne(layoutData);
93
- }
101
+ }*/
94
102
  setOneContent(contentData) {
95
103
  __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").appendOne(contentData);
96
104
  }
97
105
  setOneSettings(settingsData) {
98
106
  __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").appendOne(settingsData);
99
107
  }
100
- createBlock(modalData, layoutEntry, contentElementTypeKey) {
108
+ removeOneContent(contentUdi) {
109
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").removeOne(contentUdi);
110
+ }
111
+ removeOneSettings(settingsUdi) {
112
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").removeOne(settingsUdi);
113
+ }
114
+ createBlockData(contentElementTypeKey, partialLayoutEntry) {
101
115
  // Find block type.
102
116
  const blockType = __classPrivateFieldGet(this, _UmbBlockManagerContext_blockTypes, "f").value.find((x) => x.contentElementTypeKey === contentElementTypeKey);
103
117
  if (!blockType) {
104
118
  throw new Error(`Cannot create block, missing block type for ${contentElementTypeKey}`);
105
- return false;
106
119
  }
107
120
  // Create layout entry:
108
- const fullLayoutEntry = {
121
+ const layout = {
109
122
  contentUdi: buildUdi('element', UmbId.new()),
110
- ...layoutEntry,
123
+ ...partialLayoutEntry,
124
+ };
125
+ const content = {
126
+ udi: layout.contentUdi,
127
+ contentTypeKey: contentElementTypeKey,
111
128
  };
129
+ let settings = undefined;
112
130
  if (blockType.settingsElementTypeKey) {
113
- fullLayoutEntry.settingsUdi = buildUdi('element', UmbId.new());
114
- }
115
- if (this._createBlock(modalData, fullLayoutEntry, contentElementTypeKey) === false) {
116
- return false;
131
+ layout.settingsUdi = buildUdi('element', UmbId.new());
132
+ settings = {
133
+ udi: layout.settingsUdi,
134
+ contentTypeKey: blockType.settingsElementTypeKey,
135
+ };
117
136
  }
137
+ return {
138
+ layout,
139
+ content,
140
+ settings,
141
+ };
142
+ }
143
+ insertBlockData(layoutEntry, content, settings, modalData) {
118
144
  // Create content entry:
119
- if (fullLayoutEntry.contentUdi) {
120
- __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").appendOne({
121
- contentTypeKey: contentElementTypeKey,
122
- udi: fullLayoutEntry.contentUdi,
123
- });
145
+ if (layoutEntry.contentUdi) {
146
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").appendOne(content);
124
147
  }
125
148
  else {
126
149
  throw new Error('Cannot create block, missing contentUdi');
127
150
  return false;
128
151
  }
129
152
  //Create settings entry:
130
- if (blockType.settingsElementTypeKey) {
131
- if (fullLayoutEntry.settingsUdi) {
132
- __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").appendOne({
133
- contentTypeKey: blockType.settingsElementTypeKey,
134
- udi: fullLayoutEntry.settingsUdi,
135
- });
136
- }
137
- else {
138
- throw new Error('Cannot create block, missing settingsUdi');
139
- return false;
140
- }
153
+ if (settings && layoutEntry.settingsUdi) {
154
+ __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").appendOne(settings);
141
155
  }
142
- return true;
143
- }
144
- deleteBlock(contentUdi) {
145
- const layout = this._layouts.value.find((x) => x.contentUdi === contentUdi);
146
- if (!layout)
147
- return;
148
- if (layout.settingsUdi) {
149
- __classPrivateFieldGet(this, _UmbBlockManagerContext_settings, "f").removeOne(layout.settingsUdi);
150
- }
151
- this._layouts.removeOne(contentUdi);
152
- __classPrivateFieldGet(this, _UmbBlockManagerContext_contents, "f").removeOne(contentUdi);
153
156
  }
154
157
  }
155
- _UmbBlockManagerContext_contentTypeRepository = new WeakMap(), _UmbBlockManagerContext_workspacePath = new WeakMap(), _UmbBlockManagerContext_contentTypes = new WeakMap(), _UmbBlockManagerContext_blockTypes = new WeakMap(), _UmbBlockManagerContext_editorConfiguration = new WeakMap(), _UmbBlockManagerContext_contents = new WeakMap(), _UmbBlockManagerContext_settings = new WeakMap(), _UmbBlockManagerContext_instances = new WeakSet(), _UmbBlockManagerContext_loadContentType = async function _UmbBlockManagerContext_loadContentType(unique) {
158
+ _UmbBlockManagerContext_contentTypeRepository = new WeakMap(), _UmbBlockManagerContext_propertyAlias = new WeakMap(), _UmbBlockManagerContext_variantId = new WeakMap(), _UmbBlockManagerContext_contentTypes = new WeakMap(), _UmbBlockManagerContext_blockTypes = new WeakMap(), _UmbBlockManagerContext_editorConfiguration = new WeakMap(), _UmbBlockManagerContext_contents = new WeakMap(), _UmbBlockManagerContext_settings = new WeakMap(), _UmbBlockManagerContext_instances = new WeakSet(), _UmbBlockManagerContext_loadContentType = async function _UmbBlockManagerContext_loadContentType(unique) {
156
159
  if (!unique)
157
160
  return {};
158
161
  const { data } = await __classPrivateFieldGet(this, _UmbBlockManagerContext_contentTypeRepository, "f").requestByUnique(unique);
@@ -1 +1,6 @@
1
- export * from './block-entity.context.js';
1
+ export * from './block-entry.context-token.js';
2
+ export * from './block-entry.context.js';
3
+ export * from './block-entries.context-token.js';
4
+ export * from './block-entries.context.js';
5
+ export * from './block-manager.context-token.js';
6
+ export type * from './block-manager.context.js';
@@ -1 +1,5 @@
1
- export * from './block-entity.context.js';
1
+ export * from './block-entry.context-token.js';
2
+ export * from './block-entry.context.js';
3
+ export * from './block-entries.context-token.js';
4
+ export * from './block-entries.context.js';
5
+ export * from './block-manager.context-token.js';
@@ -1,6 +1,5 @@
1
1
  export * from './conditions/index.js';
2
2
  export * from './context/index.js';
3
- export * from './manager/index.js';
4
3
  export * from './modals/index.js';
5
4
  export * from './types.js';
6
5
  export * from './workspace/index.js';
@@ -1,6 +1,5 @@
1
1
  export * from './conditions/index.js';
2
2
  export * from './context/index.js';
3
- export * from './manager/index.js';
4
3
  export * from './modals/index.js';
5
4
  export * from './types.js';
6
5
  export * from './workspace/index.js';
@@ -2,7 +2,6 @@ import { UmbLitElement } from '../../../core/lit-element/index.js';
2
2
  export declare class UmbBlockWorkspaceEditorElement extends UmbLitElement {
3
3
  #private;
4
4
  workspaceAlias?: string;
5
- constructor();
6
5
  render(): "" | import("lit-html").TemplateResult<1>;
7
6
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
8
7
  }
@@ -4,31 +4,15 @@ 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
- };
13
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
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");
16
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
- };
18
7
  var _UmbBlockWorkspaceEditorElement_workspaceContext;
19
- import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context-token.js';
20
8
  import { UmbTextStyles } from '../../../../shared/style/index.js';
21
9
  import { customElement, css, html, property } from '../../../../external/lit/index.js';
22
10
  import { UmbLitElement } from '../../../core/lit-element/index.js';
23
11
  let UmbBlockWorkspaceEditorElement = class UmbBlockWorkspaceEditorElement extends UmbLitElement {
24
12
  constructor() {
25
- super();
13
+ super(...arguments);
26
14
  //
27
15
  _UmbBlockWorkspaceEditorElement_workspaceContext.set(this, void 0);
28
- this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (instance) => {
29
- __classPrivateFieldSet(this, _UmbBlockWorkspaceEditorElement_workspaceContext, instance, "f");
30
- __classPrivateFieldGet(this, _UmbBlockWorkspaceEditorElement_workspaceContext, "f")?.content.createPropertyDatasetContext(this);
31
- });
32
16
  }
33
17
  render() {
34
18
  return this.workspaceAlias