@umbraco-cms/backoffice 14.0.0--preview006-3b155c84 → 14.0.0--preview007-5b109fa3
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.
- package/dist-cms/libs/context-api/consume/context-consumer.controller.js +2 -1
- package/dist-cms/libs/context-api/consume/context-consumer.js +1 -0
- package/dist-cms/libs/context-api/provide/context-provider.controller.js +1 -0
- package/dist-cms/libs/context-api/provide/context-provider.js +4 -2
- package/dist-cms/libs/controller-api/controller-host-element.mixin.d.ts +1 -0
- package/dist-cms/libs/controller-api/controller-host.mixin.js +9 -0
- package/dist-cms/libs/element-api/element.mixin.js +4 -0
- package/dist-cms/libs/extension-api/controller/base-extension-initializer.controller.d.ts +1 -0
- package/dist-cms/libs/extension-api/controller/base-extension-initializer.controller.js +37 -9
- package/dist-cms/libs/extension-api/controller/base-extensions-initializer.controller.d.ts +2 -2
- package/dist-cms/libs/extension-api/controller/base-extensions-initializer.controller.js +56 -32
- package/dist-cms/libs/extension-api/controller/extension-api-initializer.controller.d.ts +1 -0
- package/dist-cms/libs/extension-api/controller/extension-api-initializer.controller.js +4 -0
- package/dist-cms/libs/extension-api/controller/extension-element-initializer.controller.d.ts +1 -0
- package/dist-cms/libs/extension-api/controller/extension-element-initializer.controller.js +4 -0
- package/dist-cms/libs/extension-api/controller/extensions-api-initializer.controller.d.ts +2 -1
- package/dist-cms/libs/extension-api/controller/extensions-api-initializer.controller.js +7 -2
- package/dist-cms/libs/extension-api/controller/extensions-element-initializer.controller.d.ts +2 -1
- package/dist-cms/libs/extension-api/controller/extensions-element-initializer.controller.js +7 -2
- package/dist-cms/libs/extension-api/controller/extensions-manifest-initializer.controller.d.ts +2 -1
- package/dist-cms/libs/extension-api/controller/extensions-manifest-initializer.controller.js +6 -2
- package/dist-cms/libs/localization-api/localization.controller.js +1 -1
- package/dist-cms/libs/observable-api/observer.controller.js +2 -1
- package/dist-cms/libs/observable-api/observer.js +3 -2
- package/dist-cms/libs/observable-api/states/array-state.d.ts +1 -0
- package/dist-cms/libs/observable-api/states/array-state.js +5 -0
- package/dist-cms/libs/observable-api/states/basic-state.js +3 -2
- package/dist-cms/libs/observable-api/states/class-state.js +2 -0
- package/dist-cms/libs/observable-api/states/deep-state.js +2 -0
- package/dist-cms/packages/block/block-type/workspace/block-type-workspace.context.js +1 -0
- package/dist-cms/packages/core/components/extension-slot/extension-slot.element.js +1 -1
- package/dist-cms/packages/core/content-type/content-type-structure-manager.class.js +1 -0
- package/dist-cms/packages/core/data-type/workspace/data-type-workspace.context.js +1 -0
- package/dist-cms/packages/core/modal/modal.element.d.ts +2 -1
- package/dist-cms/packages/core/modal/modal.element.js +10 -9
- package/dist-cms/packages/core/property-action/shared/property-action-menu/property-action-menu.element.js +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-editor/workspace-editor.element.js +1 -1
- package/dist-cms/packages/dictionary/workspace/dictionary-workspace.context.js +1 -0
- package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.element.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.element.js +1 -1
- package/dist-cms/packages/language/workspace/language/language-workspace.context.js +1 -0
- package/dist-cms/packages/media/media/workspace/media-workspace.context.js +1 -0
- package/dist-cms/packages/members/member-types/workspace/member-type-workspace.context.js +1 -0
- package/dist-cms/packages/relations/relation-types/workspace/relation-type-workspace.context.js +1 -0
- package/dist-cms/packages/templating/partial-views/workspace/partial-view-workspace.context.js +1 -0
- package/dist-cms/packages/templating/stylesheets/workspace/stylesheet-workspace.context.js +1 -0
- package/dist-cms/packages/user/user/workspace/user-workspace.context.js +1 -0
- package/dist-cms/packages/user/user-group/workspace/user-group-workspace.context.js +1 -0
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -23,7 +23,8 @@ export class UmbContextConsumerController extends UmbContextConsumer {
|
|
|
23
23
|
host.addController(this);
|
|
24
24
|
}
|
|
25
25
|
destroy() {
|
|
26
|
-
__classPrivateFieldGet(this, _UmbContextConsumerController_host, "f")
|
|
26
|
+
__classPrivateFieldGet(this, _UmbContextConsumerController_host, "f")?.removeController(this);
|
|
27
|
+
__classPrivateFieldSet(this, _UmbContextConsumerController_host, undefined, "f");
|
|
27
28
|
super.destroy();
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -153,6 +153,7 @@ export class UmbContextConsumer {
|
|
|
153
153
|
__classPrivateFieldSet(this, _UmbContextConsumer_promise, undefined, "f");
|
|
154
154
|
__classPrivateFieldSet(this, _UmbContextConsumer_promiseResolver, undefined, "f");
|
|
155
155
|
__classPrivateFieldSet(this, _UmbContextConsumer_instance, undefined, "f");
|
|
156
|
+
__classPrivateFieldSet(this, _UmbContextConsumer_discriminator, undefined, "f");
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
_UmbContextConsumer_skipOrigin = new WeakMap(), _UmbContextConsumer_stopAtContextMatch = new WeakMap(), _UmbContextConsumer_callback = new WeakMap(), _UmbContextConsumer_promise = new WeakMap(), _UmbContextConsumer_promiseResolver = new WeakMap(), _UmbContextConsumer_instance = new WeakMap(), _UmbContextConsumer_contextAlias = new WeakMap(), _UmbContextConsumer_apiAlias = new WeakMap(), _UmbContextConsumer_discriminator = new WeakMap(), _UmbContextConsumer_handleNewProvider = new WeakMap();
|
|
@@ -38,6 +38,7 @@ export class UmbContextProviderController extends UmbContextProvider {
|
|
|
38
38
|
destroy() {
|
|
39
39
|
if (__classPrivateFieldGet(this, _UmbContextProviderController_host, "f")) {
|
|
40
40
|
__classPrivateFieldGet(this, _UmbContextProviderController_host, "f").removeController(this);
|
|
41
|
+
__classPrivateFieldSet(this, _UmbContextProviderController_host, undefined, "f");
|
|
41
42
|
}
|
|
42
43
|
super.destroy();
|
|
43
44
|
}
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
12
|
var _UmbContextProvider_eventTarget, _UmbContextProvider_contextAlias, _UmbContextProvider_apiAlias, _UmbContextProvider_instance, _UmbContextProvider_handleContextRequest;
|
|
13
|
-
import { UMB_CONTENT_REQUEST_EVENT_TYPE, UMB_DEBUG_CONTEXT_EVENT_TYPE
|
|
13
|
+
import { UMB_CONTENT_REQUEST_EVENT_TYPE, UMB_DEBUG_CONTEXT_EVENT_TYPE } from '../consume/context-request.event.js';
|
|
14
14
|
import { UmbContextProvideEventImplementation,
|
|
15
15
|
//UmbContextUnprovidedEventImplementation,
|
|
16
16
|
} from './context-provide.event.js';
|
|
@@ -93,12 +93,14 @@ export class UmbContextProvider {
|
|
|
93
93
|
// Out-commented for now, but kept if we like to reintroduce this:
|
|
94
94
|
//window.dispatchEvent(new UmbContextUnprovidedEventImplementation(this._contextAlias, this.#instance));
|
|
95
95
|
// Stop listen to our debug event 'umb:debug-contexts'
|
|
96
|
-
__classPrivateFieldGet(this, _UmbContextProvider_eventTarget, "f")
|
|
96
|
+
__classPrivateFieldGet(this, _UmbContextProvider_eventTarget, "f")?.removeEventListener(UMB_DEBUG_CONTEXT_EVENT_TYPE, this._handleDebugContextRequest);
|
|
97
97
|
}
|
|
98
98
|
destroy() {
|
|
99
|
+
this.hostDisconnected();
|
|
99
100
|
// We want to call a destroy method on the instance, if it has one.
|
|
100
101
|
__classPrivateFieldGet(this, _UmbContextProvider_instance, "f")?.destroy?.();
|
|
101
102
|
__classPrivateFieldSet(this, _UmbContextProvider_instance, undefined, "f");
|
|
103
|
+
__classPrivateFieldSet(this, _UmbContextProvider_eventTarget, undefined, "f");
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
_UmbContextProvider_eventTarget = new WeakMap(), _UmbContextProvider_contextAlias = new WeakMap(), _UmbContextProvider_apiAlias = new WeakMap(), _UmbContextProvider_instance = new WeakMap(), _UmbContextProvider_handleContextRequest = new WeakMap();
|
|
@@ -9,6 +9,7 @@ export declare class UmbControllerHostElement extends HTMLElement implements Umb
|
|
|
9
9
|
removeControllerByAlias(alias: UmbControllerAlias): void;
|
|
10
10
|
removeController(controller: UmbController): void;
|
|
11
11
|
getHostElement(): Element;
|
|
12
|
+
destroy(): void;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* This mixin enables a web-component to host controllers.
|
|
@@ -101,9 +101,18 @@ export const UmbControllerHostMixin = (superClass) => {
|
|
|
101
101
|
}
|
|
102
102
|
destroy() {
|
|
103
103
|
let ctrl;
|
|
104
|
+
//let prev = null;
|
|
104
105
|
// Note: A very important way of doing this loop, as foreach will skip over the next item if the current item is removed.
|
|
105
106
|
while ((ctrl = __classPrivateFieldGet(this, _UmbControllerHostBaseClass_controllers, "f")[0])) {
|
|
106
107
|
ctrl.destroy();
|
|
108
|
+
/*
|
|
109
|
+
//This code can help debug if there is some controller that does not destroy properly: (When a controller is destroyed it should remove it self)
|
|
110
|
+
if (ctrl === prev) {
|
|
111
|
+
console.log('WUPS, we have a controller that does not destroy it self');
|
|
112
|
+
debugger;
|
|
113
|
+
}
|
|
114
|
+
prev = ctrl;
|
|
115
|
+
*/
|
|
107
116
|
}
|
|
108
117
|
__classPrivateFieldGet(this, _UmbControllerHostBaseClass_controllers, "f").length = 0;
|
|
109
118
|
}
|
|
@@ -38,6 +38,10 @@ export const UmbElementMixin = (superClass) => {
|
|
|
38
38
|
consumeContext(alias, callback) {
|
|
39
39
|
return new UmbContextConsumerController(this, alias, callback);
|
|
40
40
|
}
|
|
41
|
+
destroy() {
|
|
42
|
+
super.destroy();
|
|
43
|
+
this.localize = undefined;
|
|
44
|
+
}
|
|
41
45
|
}
|
|
42
46
|
return UmbElementMixinClass;
|
|
43
47
|
};
|
|
@@ -24,5 +24,6 @@ export declare abstract class UmbBaseExtensionInitializer<ManifestType extends M
|
|
|
24
24
|
protected abstract _conditionsAreGood(): Promise<boolean>;
|
|
25
25
|
protected abstract _conditionsAreBad(): Promise<void>;
|
|
26
26
|
equal(otherClass: UmbBaseExtensionInitializer | undefined): boolean;
|
|
27
|
+
hostDisconnected(): void;
|
|
27
28
|
destroy(): void;
|
|
28
29
|
}
|
|
@@ -57,7 +57,9 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
57
57
|
manifests.forEach(__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_gotCondition, "f"));
|
|
58
58
|
});
|
|
59
59
|
_UmbBaseExtensionInitializer_gotCondition.set(this, async (conditionManifest) => {
|
|
60
|
-
|
|
60
|
+
if (!__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_manifest, "f"))
|
|
61
|
+
return;
|
|
62
|
+
const conditionConfigs = __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_manifest, "f").conditions ?? [];
|
|
61
63
|
//
|
|
62
64
|
// Get just the conditions that uses this condition alias:
|
|
63
65
|
const configsOfThisType = conditionConfigs.filter((conditionConfig) => conditionConfig.alias === conditionManifest.alias);
|
|
@@ -90,11 +92,12 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
90
92
|
const isPositive = __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_instances, "m", _UmbBaseExtensionInitializer_conditionsAreInitialized).call(this) &&
|
|
91
93
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_conditionControllers, "f").find((condition) => condition.permitted === false) === undefined;
|
|
92
94
|
this._isConditionsPositive = isPositive;
|
|
93
|
-
if (isPositive) {
|
|
95
|
+
if (isPositive === true) {
|
|
94
96
|
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") !== true) {
|
|
95
97
|
const newPermission = await this._conditionsAreGood();
|
|
96
98
|
// Only set new permission if we are still positive, otherwise it means that we have been destroyed in the mean time.
|
|
97
|
-
if (newPermission === false) {
|
|
99
|
+
if (newPermission === false || this._isConditionsPositive === false) {
|
|
100
|
+
console.warn('If this happens then please inform Niels Lyngsø on CMS Team. We are still investigating wether this is a situation we should handle. Ref. No.: 1.');
|
|
98
101
|
return;
|
|
99
102
|
}
|
|
100
103
|
// We update the oldValue as this point, cause in this way we are sure its the value at this point, when doing async code someone else might have changed the state in the mean time.
|
|
@@ -104,11 +107,18 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
104
107
|
}
|
|
105
108
|
else if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") !== false) {
|
|
106
109
|
// Clean up:
|
|
107
|
-
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_isPermitted, false, "f");
|
|
108
110
|
await this._conditionsAreBad();
|
|
111
|
+
// Only continue if we are still negative, otherwise it means that something changed in the mean time.
|
|
112
|
+
if (this._isConditionsPositive === true) {
|
|
113
|
+
console.warn('If this happens then please inform Niels Lyngsø on CMS Team. We are still investigating wether this is a situation we should handle. Ref. No.: 2.');
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// We update the oldValue as this point, cause in this way we are sure its the value at this point, when doing async code someone else might have changed the state in the mean time.
|
|
117
|
+
oldValue = __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") ?? false;
|
|
118
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_isPermitted, false, "f");
|
|
109
119
|
}
|
|
110
120
|
if (oldValue !== __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") && __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") !== undefined) {
|
|
111
|
-
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f")) {
|
|
121
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") === true) {
|
|
112
122
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_promiseResolvers, "f").forEach((x) => x());
|
|
113
123
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_promiseResolvers, [], "f");
|
|
114
124
|
}
|
|
@@ -120,7 +130,7 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
120
130
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_onPermissionChanged, onPermissionChanged, "f");
|
|
121
131
|
}
|
|
122
132
|
_init() {
|
|
123
|
-
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_manifestObserver, this.observe(__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_extensionRegistry, "f").byAlias(__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_alias, "f")),
|
|
133
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_manifestObserver, this.observe(__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_extensionRegistry, "f").byAlias(__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_alias, "f")), (extensionManifest) => {
|
|
124
134
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_instances, "m", _UmbBaseExtensionInitializer_clearPermittedState).call(this);
|
|
125
135
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_manifest, extensionManifest, "f");
|
|
126
136
|
if (extensionManifest) {
|
|
@@ -148,9 +158,25 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
148
158
|
equal(otherClass) {
|
|
149
159
|
return otherClass?.manifest === this.manifest;
|
|
150
160
|
}
|
|
161
|
+
/*
|
|
162
|
+
public hostConnected(): void {
|
|
163
|
+
super.hostConnected();
|
|
164
|
+
//this.#onConditionsChangedCallback();
|
|
165
|
+
}
|
|
166
|
+
*/
|
|
167
|
+
hostDisconnected() {
|
|
168
|
+
super.hostDisconnected();
|
|
169
|
+
this._isConditionsPositive = false;
|
|
170
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_isPermitted, "f") === true) {
|
|
171
|
+
this._conditionsAreBad();
|
|
172
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_isPermitted, false, "f");
|
|
173
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_onPermissionChanged, "f")?.call(this, false, this);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
151
176
|
destroy() {
|
|
152
177
|
if (!__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_extensionRegistry, "f"))
|
|
153
178
|
return;
|
|
179
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_manifest, undefined, "f");
|
|
154
180
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_promiseResolvers, [], "f");
|
|
155
181
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_instances, "m", _UmbBaseExtensionInitializer_clearPermittedState).call(this); // This fires the callback as not permitted, if it was permitted before.
|
|
156
182
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_isPermitted, undefined, "f");
|
|
@@ -160,17 +186,19 @@ export class UmbBaseExtensionInitializer extends UmbBaseController {
|
|
|
160
186
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_onPermissionChanged, undefined, "f");
|
|
161
187
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_extensionRegistry, undefined, "f");
|
|
162
188
|
super.destroy();
|
|
163
|
-
// Destroy the conditions controllers, are begin destroyed cause they are controllers
|
|
189
|
+
// Destroy the conditions controllers, they are begin destroyed cause they are controllers...
|
|
164
190
|
}
|
|
165
191
|
}
|
|
166
192
|
_UmbBaseExtensionInitializer_promiseResolvers = new WeakMap(), _UmbBaseExtensionInitializer_manifestObserver = new WeakMap(), _UmbBaseExtensionInitializer_extensionRegistry = new WeakMap(), _UmbBaseExtensionInitializer_alias = new WeakMap(), _UmbBaseExtensionInitializer_overwrites = new WeakMap(), _UmbBaseExtensionInitializer_manifest = new WeakMap(), _UmbBaseExtensionInitializer_conditionControllers = new WeakMap(), _UmbBaseExtensionInitializer_onPermissionChanged = new WeakMap(), _UmbBaseExtensionInitializer_isPermitted = new WeakMap(), _UmbBaseExtensionInitializer_gotConditions = new WeakMap(), _UmbBaseExtensionInitializer_gotCondition = new WeakMap(), _UmbBaseExtensionInitializer_onConditionsChangedCallback = new WeakMap(), _UmbBaseExtensionInitializer_instances = new WeakSet(), _UmbBaseExtensionInitializer_cleanConditions = function _UmbBaseExtensionInitializer_cleanConditions() {
|
|
167
|
-
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_conditionControllers, "f").length === 0)
|
|
193
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_conditionControllers, "f") === undefined || __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_conditionControllers, "f").length === 0)
|
|
168
194
|
return;
|
|
169
195
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_conditionControllers, "f").forEach((controller) => controller.destroy());
|
|
170
196
|
__classPrivateFieldSet(this, _UmbBaseExtensionInitializer_conditionControllers, [], "f");
|
|
171
197
|
this.removeControllerByAlias('_observeConditions');
|
|
172
198
|
}, _UmbBaseExtensionInitializer_gotManifest = function _UmbBaseExtensionInitializer_gotManifest() {
|
|
173
|
-
|
|
199
|
+
if (!__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_manifest, "f"))
|
|
200
|
+
return;
|
|
201
|
+
const conditionConfigs = __classPrivateFieldGet(this, _UmbBaseExtensionInitializer_manifest, "f").conditions ?? [];
|
|
174
202
|
// As conditionConfigs might have been configured as something else than an array, then we ignorer them.
|
|
175
203
|
if (conditionConfigs.length === 0) {
|
|
176
204
|
__classPrivateFieldGet(this, _UmbBaseExtensionInitializer_instances, "m", _UmbBaseExtensionInitializer_cleanConditions).call(this);
|
|
@@ -18,11 +18,11 @@ export type PermittedControllerType<ControllerType extends {
|
|
|
18
18
|
export declare abstract class UmbBaseExtensionsInitializer<ManifestTypes extends ManifestBase, ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>, ControllerType extends UmbBaseExtensionInitializer<ManifestType> = UmbBaseExtensionInitializer<ManifestType>, MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>> extends UmbBaseController {
|
|
19
19
|
#private;
|
|
20
20
|
protected _extensions: Array<ControllerType>;
|
|
21
|
-
private _permittedExts;
|
|
22
21
|
asPromise(): Promise<void>;
|
|
23
|
-
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestType>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange?: (permittedManifests: Array<MyPermittedControllerType>) => void);
|
|
22
|
+
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestType>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange?: (permittedManifests: Array<MyPermittedControllerType>) => void, controllerAlias?: string);
|
|
24
23
|
protected _init(): void;
|
|
25
24
|
protected abstract _createController(manifest: ManifestType): ControllerType;
|
|
26
25
|
protected _extensionChanged: (isPermitted: boolean, controller: ControllerType) => void;
|
|
26
|
+
hostDisconnected(): void;
|
|
27
27
|
destroy(): void;
|
|
28
28
|
}
|
|
@@ -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 _UmbBaseExtensionsInitializer_instances, _UmbBaseExtensionsInitializer_promiseResolvers, _UmbBaseExtensionsInitializer_extensionRegistry, _UmbBaseExtensionsInitializer_type, _UmbBaseExtensionsInitializer_filter, _UmbBaseExtensionsInitializer_onChange, _UmbBaseExtensionsInitializer_gotManifests, _UmbBaseExtensionsInitializer_removeOverwrittenExtensions;
|
|
12
|
+
var _UmbBaseExtensionsInitializer_instances, _UmbBaseExtensionsInitializer_promiseResolvers, _UmbBaseExtensionsInitializer_extensionRegistry, _UmbBaseExtensionsInitializer_type, _UmbBaseExtensionsInitializer_filter, _UmbBaseExtensionsInitializer_onChange, _UmbBaseExtensionsInitializer_permittedExts, _UmbBaseExtensionsInitializer_exposedPermittedExts, _UmbBaseExtensionsInitializer_changeDebounce, _UmbBaseExtensionsInitializer_gotManifests, _UmbBaseExtensionsInitializer_notifyChange, _UmbBaseExtensionsInitializer_removeOverwrittenExtensions;
|
|
13
13
|
import { map } from '../../../external/rxjs/index.js';
|
|
14
14
|
import { UmbBaseController } from '../../class-api/index.js';
|
|
15
15
|
/**
|
|
@@ -23,11 +23,11 @@ import { UmbBaseController } from '../../class-api/index.js';
|
|
|
23
23
|
export class UmbBaseExtensionsInitializer extends UmbBaseController {
|
|
24
24
|
asPromise() {
|
|
25
25
|
return new Promise((resolve) => {
|
|
26
|
-
this.
|
|
26
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f").length > 0 ? resolve() : __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_promiseResolvers, "f").push(resolve);
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
constructor(host, extensionRegistry, type, filter, onChange) {
|
|
30
|
-
super(host, 'extensionsInitializer_' + (Array.isArray(type) ? type.join('_') : type));
|
|
29
|
+
constructor(host, extensionRegistry, type, filter, onChange, controllerAlias) {
|
|
30
|
+
super(host, controllerAlias ?? 'extensionsInitializer_' + (Array.isArray(type) ? type.join('_') : type));
|
|
31
31
|
_UmbBaseExtensionsInitializer_instances.add(this);
|
|
32
32
|
_UmbBaseExtensionsInitializer_promiseResolvers.set(this, []);
|
|
33
33
|
_UmbBaseExtensionsInitializer_extensionRegistry.set(this, void 0);
|
|
@@ -35,7 +35,9 @@ export class UmbBaseExtensionsInitializer extends UmbBaseController {
|
|
|
35
35
|
_UmbBaseExtensionsInitializer_filter.set(this, void 0);
|
|
36
36
|
_UmbBaseExtensionsInitializer_onChange.set(this, void 0);
|
|
37
37
|
this._extensions = [];
|
|
38
|
-
this
|
|
38
|
+
_UmbBaseExtensionsInitializer_permittedExts.set(this, []);
|
|
39
|
+
_UmbBaseExtensionsInitializer_exposedPermittedExts.set(this, []);
|
|
40
|
+
_UmbBaseExtensionsInitializer_changeDebounce.set(this, void 0);
|
|
39
41
|
_UmbBaseExtensionsInitializer_gotManifests.set(this, (manifests) => {
|
|
40
42
|
if (!manifests) {
|
|
41
43
|
// Clean up:
|
|
@@ -44,6 +46,7 @@ export class UmbBaseExtensionsInitializer extends UmbBaseController {
|
|
|
44
46
|
});
|
|
45
47
|
this._extensions.length = 0;
|
|
46
48
|
// _permittedExts should have been cleared via the destroy callbacks.
|
|
49
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f").length = 0;
|
|
47
50
|
return;
|
|
48
51
|
}
|
|
49
52
|
// Clean up extensions that are no longer.
|
|
@@ -69,41 +72,49 @@ export class UmbBaseExtensionsInitializer extends UmbBaseController {
|
|
|
69
72
|
});
|
|
70
73
|
this._extensionChanged = (isPermitted, controller) => {
|
|
71
74
|
let hasChanged = false;
|
|
72
|
-
|
|
75
|
+
// This might be called after this is destroyed, so we need to check if the _permittedExts is still available:
|
|
76
|
+
const existingIndex = __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f")?.indexOf(controller);
|
|
73
77
|
if (isPermitted) {
|
|
74
78
|
if (existingIndex === -1) {
|
|
75
|
-
this.
|
|
79
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f").push(controller);
|
|
76
80
|
hasChanged = true;
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
else {
|
|
80
|
-
if (existingIndex
|
|
81
|
-
this.
|
|
84
|
+
if (existingIndex >= 0) {
|
|
85
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f").splice(existingIndex, 1);
|
|
82
86
|
hasChanged = true;
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
if (hasChanged) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
// Removal of overwritten extensions:
|
|
89
|
-
this._permittedExts.forEach((extCtrl) => {
|
|
90
|
-
// Check if it overwrites another extension:
|
|
91
|
-
// if so, look up the extension it overwrites, and remove it from the list. and check that for if it overwrites another extension and so on.
|
|
92
|
-
if (extCtrl.overwrites.length > 0) {
|
|
93
|
-
extCtrl.overwrites.forEach((overwrite) => {
|
|
94
|
-
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_instances, "m", _UmbBaseExtensionsInitializer_removeOverwrittenExtensions).call(this, exposedPermittedExts, overwrite);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
// Sorting:
|
|
99
|
-
exposedPermittedExts.sort((a, b) => b.weight - a.weight);
|
|
100
|
-
if (exposedPermittedExts.length > 0) {
|
|
101
|
-
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_promiseResolvers, "f").forEach((x) => x());
|
|
102
|
-
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_promiseResolvers, [], "f");
|
|
90
|
+
if (!__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_changeDebounce, "f")) {
|
|
91
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_changeDebounce, requestAnimationFrame(__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_notifyChange, "f")), "f");
|
|
103
92
|
}
|
|
104
|
-
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_onChange, "f")?.call(this, exposedPermittedExts);
|
|
105
93
|
}
|
|
106
94
|
};
|
|
95
|
+
_UmbBaseExtensionsInitializer_notifyChange.set(this, () => {
|
|
96
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_changeDebounce, undefined, "f");
|
|
97
|
+
// The final list of permitted extensions to be displayed, this will be stripped from extensions that are overwritten by another extension and sorted accordingly.
|
|
98
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, [...__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f")], "f");
|
|
99
|
+
// Removal of overwritten extensions:
|
|
100
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_permittedExts, "f").forEach((extCtrl) => {
|
|
101
|
+
// Check if it overwrites another extension:
|
|
102
|
+
// if so, look up the extension it overwrites, and remove it from the list. and check that for if it overwrites another extension and so on.
|
|
103
|
+
if (extCtrl.overwrites.length > 0) {
|
|
104
|
+
extCtrl.overwrites.forEach((overwrite) => {
|
|
105
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_instances, "m", _UmbBaseExtensionsInitializer_removeOverwrittenExtensions).call(this, __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f"), overwrite);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// Sorting:
|
|
110
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f").sort((a, b) => b.weight - a.weight);
|
|
111
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f").length > 0) {
|
|
112
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_promiseResolvers, "f").forEach((x) => x());
|
|
113
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_promiseResolvers, [], "f");
|
|
114
|
+
}
|
|
115
|
+
// Collect change calls.
|
|
116
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_onChange, "f")?.call(this, __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f"));
|
|
117
|
+
});
|
|
107
118
|
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_extensionRegistry, extensionRegistry, "f");
|
|
108
119
|
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_type, type, "f");
|
|
109
120
|
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_filter, filter, "f");
|
|
@@ -118,22 +129,35 @@ export class UmbBaseExtensionsInitializer extends UmbBaseController {
|
|
|
118
129
|
}
|
|
119
130
|
this.observe(source, __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_gotManifests, "f"), '_observeManifests');
|
|
120
131
|
}
|
|
132
|
+
hostDisconnected() {
|
|
133
|
+
super.hostDisconnected();
|
|
134
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_changeDebounce, "f")) {
|
|
135
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_notifyChange, "f").call(this);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
121
138
|
destroy() {
|
|
122
139
|
// The this.#extensionRegistry is an indication of wether this is already destroyed.
|
|
123
140
|
if (!__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_extensionRegistry, "f"))
|
|
124
141
|
return;
|
|
125
|
-
const oldPermittedExtsLength = this.
|
|
126
|
-
this._extensions
|
|
127
|
-
this
|
|
142
|
+
const oldPermittedExtsLength = __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f").length;
|
|
143
|
+
this._extensions = undefined;
|
|
144
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_permittedExts, undefined, "f");
|
|
145
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f").length = 0;
|
|
146
|
+
if (__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_changeDebounce, "f")) {
|
|
147
|
+
cancelAnimationFrame(__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_changeDebounce, "f"));
|
|
148
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_changeDebounce, undefined, "f");
|
|
149
|
+
}
|
|
128
150
|
if (oldPermittedExtsLength > 0) {
|
|
129
|
-
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_onChange, "f")?.call(this, this
|
|
151
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_onChange, "f")?.call(this, __classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_exposedPermittedExts, "f"));
|
|
130
152
|
}
|
|
153
|
+
__classPrivateFieldGet(this, _UmbBaseExtensionsInitializer_promiseResolvers, "f").length = 0;
|
|
154
|
+
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_filter, undefined, "f");
|
|
131
155
|
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_onChange, undefined, "f");
|
|
132
156
|
__classPrivateFieldSet(this, _UmbBaseExtensionsInitializer_extensionRegistry, undefined, "f");
|
|
133
157
|
super.destroy();
|
|
134
158
|
}
|
|
135
159
|
}
|
|
136
|
-
_UmbBaseExtensionsInitializer_promiseResolvers = new WeakMap(), _UmbBaseExtensionsInitializer_extensionRegistry = new WeakMap(), _UmbBaseExtensionsInitializer_type = new WeakMap(), _UmbBaseExtensionsInitializer_filter = new WeakMap(), _UmbBaseExtensionsInitializer_onChange = new WeakMap(), _UmbBaseExtensionsInitializer_gotManifests = new WeakMap(), _UmbBaseExtensionsInitializer_instances = new WeakSet(), _UmbBaseExtensionsInitializer_removeOverwrittenExtensions = function _UmbBaseExtensionsInitializer_removeOverwrittenExtensions(list, alias) {
|
|
160
|
+
_UmbBaseExtensionsInitializer_promiseResolvers = new WeakMap(), _UmbBaseExtensionsInitializer_extensionRegistry = new WeakMap(), _UmbBaseExtensionsInitializer_type = new WeakMap(), _UmbBaseExtensionsInitializer_filter = new WeakMap(), _UmbBaseExtensionsInitializer_onChange = new WeakMap(), _UmbBaseExtensionsInitializer_permittedExts = new WeakMap(), _UmbBaseExtensionsInitializer_exposedPermittedExts = new WeakMap(), _UmbBaseExtensionsInitializer_changeDebounce = new WeakMap(), _UmbBaseExtensionsInitializer_gotManifests = new WeakMap(), _UmbBaseExtensionsInitializer_notifyChange = new WeakMap(), _UmbBaseExtensionsInitializer_instances = new WeakSet(), _UmbBaseExtensionsInitializer_removeOverwrittenExtensions = function _UmbBaseExtensionsInitializer_removeOverwrittenExtensions(list, alias) {
|
|
137
161
|
const index = list.findIndex((a) => a.alias === alias);
|
|
138
162
|
if (index !== -1) {
|
|
139
163
|
const entry = list[index];
|
|
@@ -39,4 +39,5 @@ export declare class UmbExtensionApiInitializer<ManifestType extends ManifestApi
|
|
|
39
39
|
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestCondition>, alias: string, constructorArguments: Array<unknown> | undefined, onPermissionChanged?: (isPermitted: boolean, controller: ControllerType) => void);
|
|
40
40
|
protected _conditionsAreGood(): Promise<boolean>;
|
|
41
41
|
protected _conditionsAreBad(): Promise<void>;
|
|
42
|
+
destroy(): void;
|
|
42
43
|
}
|
|
@@ -98,5 +98,9 @@ export class UmbExtensionApiInitializer extends UmbBaseExtensionInitializer {
|
|
|
98
98
|
__classPrivateFieldSet(this, _UmbExtensionApiInitializer_api, undefined, "f");
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
destroy() {
|
|
102
|
+
super.destroy();
|
|
103
|
+
__classPrivateFieldSet(this, _UmbExtensionApiInitializer_constructorArguments, undefined, "f");
|
|
104
|
+
}
|
|
101
105
|
}
|
|
102
106
|
_UmbExtensionApiInitializer_api = new WeakMap(), _UmbExtensionApiInitializer_constructorArguments = new WeakMap();
|
package/dist-cms/libs/extension-api/controller/extension-element-initializer.controller.d.ts
CHANGED
|
@@ -26,4 +26,5 @@ export declare class UmbExtensionElementInitializer<ManifestType extends Manifes
|
|
|
26
26
|
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestCondition>, alias: string, onPermissionChanged: (isPermitted: boolean, controller: ControllerType) => void, defaultElement?: string);
|
|
27
27
|
protected _conditionsAreGood(): Promise<boolean>;
|
|
28
28
|
protected _conditionsAreBad(): Promise<void>;
|
|
29
|
+
destroy(): void;
|
|
29
30
|
}
|
|
@@ -97,5 +97,9 @@ export class UmbExtensionElementInitializer extends UmbBaseExtensionInitializer
|
|
|
97
97
|
__classPrivateFieldSet(this, _UmbExtensionElementInitializer_component, undefined, "f");
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
destroy() {
|
|
101
|
+
super.destroy();
|
|
102
|
+
__classPrivateFieldSet(this, _UmbExtensionElementInitializer_properties, undefined, "f");
|
|
103
|
+
}
|
|
100
104
|
}
|
|
101
105
|
_UmbExtensionElementInitializer_defaultElement = new WeakMap(), _UmbExtensionElementInitializer_component = new WeakMap(), _UmbExtensionElementInitializer_properties = new WeakMap(), _UmbExtensionElementInitializer_assignProperties = new WeakMap();
|
|
@@ -17,6 +17,7 @@ TODO: Correct this, start using builder pattern:
|
|
|
17
17
|
*/
|
|
18
18
|
export declare class UmbExtensionsApiInitializer<ManifestTypes extends ManifestApi, ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string = string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>, ManifestTypeAsApi extends ManifestApi = ManifestType extends ManifestApi ? ManifestType : never, ControllerType extends UmbExtensionApiInitializer<ManifestTypeAsApi> = UmbExtensionApiInitializer<ManifestTypeAsApi>, MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>> extends UmbBaseExtensionsInitializer<ManifestTypes, ManifestTypeName, ManifestTypeAsApi, ControllerType, MyPermittedControllerType> {
|
|
19
19
|
#private;
|
|
20
|
-
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, constructorArguments: Array<unknown> | undefined, filter?: undefined | null | ((manifest: ManifestTypeAsApi) => boolean), onChange?: (permittedManifests: Array<MyPermittedControllerType>) => void);
|
|
20
|
+
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, constructorArguments: Array<unknown> | undefined, filter?: undefined | null | ((manifest: ManifestTypeAsApi) => boolean), onChange?: (permittedManifests: Array<MyPermittedControllerType>) => void, controllerAlias?: string);
|
|
21
21
|
protected _createController(manifest: ManifestTypeAsApi): ControllerType;
|
|
22
|
+
destroy(): void;
|
|
22
23
|
}
|
|
@@ -25,8 +25,8 @@ TODO: Correct this, start using builder pattern:
|
|
|
25
25
|
* @class UmbExtensionsApiInitializer
|
|
26
26
|
*/
|
|
27
27
|
export class UmbExtensionsApiInitializer extends UmbBaseExtensionsInitializer {
|
|
28
|
-
constructor(host, extensionRegistry, type, constructorArguments, filter, onChange) {
|
|
29
|
-
super(host, extensionRegistry, type, filter, onChange);
|
|
28
|
+
constructor(host, extensionRegistry, type, constructorArguments, filter, onChange, controllerAlias) {
|
|
29
|
+
super(host, extensionRegistry, type, filter, onChange, controllerAlias);
|
|
30
30
|
//
|
|
31
31
|
_UmbExtensionsApiInitializer_extensionRegistry.set(this, void 0);
|
|
32
32
|
/*
|
|
@@ -51,5 +51,10 @@ export class UmbExtensionsApiInitializer extends UmbBaseExtensionsInitializer {
|
|
|
51
51
|
const extController = new UmbExtensionApiInitializer(this, __classPrivateFieldGet(this, _UmbExtensionsApiInitializer_extensionRegistry, "f"), manifest.alias, __classPrivateFieldGet(this, _UmbExtensionsApiInitializer_constructorArgs, "f"), this._extensionChanged);
|
|
52
52
|
return extController;
|
|
53
53
|
}
|
|
54
|
+
destroy() {
|
|
55
|
+
super.destroy();
|
|
56
|
+
__classPrivateFieldSet(this, _UmbExtensionsApiInitializer_constructorArgs, undefined, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _UmbExtensionsApiInitializer_extensionRegistry, undefined, "f");
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
_UmbExtensionsApiInitializer_extensionRegistry = new WeakMap(), _UmbExtensionsApiInitializer_constructorArgs = new WeakMap();
|
package/dist-cms/libs/extension-api/controller/extensions-element-initializer.controller.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare class UmbExtensionsElementInitializer<ManifestTypes extends Manif
|
|
|
10
10
|
#private;
|
|
11
11
|
get properties(): Record<string, unknown> | undefined;
|
|
12
12
|
set properties(props: Record<string, unknown> | undefined);
|
|
13
|
-
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>) => void, defaultElement?: string);
|
|
13
|
+
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>) => void, controllerAlias?: string, defaultElement?: string);
|
|
14
14
|
protected _createController(manifest: ManifestType): ControllerType;
|
|
15
|
+
destroy(): void;
|
|
15
16
|
}
|
|
@@ -24,8 +24,8 @@ export class UmbExtensionsElementInitializer extends UmbBaseExtensionsInitialize
|
|
|
24
24
|
controller.properties = props;
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
constructor(host, extensionRegistry, type, filter, onChange, defaultElement) {
|
|
28
|
-
super(host, extensionRegistry, type, filter, onChange);
|
|
27
|
+
constructor(host, extensionRegistry, type, filter, onChange, controllerAlias, defaultElement) {
|
|
28
|
+
super(host, extensionRegistry, type, filter, onChange, controllerAlias);
|
|
29
29
|
//
|
|
30
30
|
_UmbExtensionsElementInitializer_extensionRegistry.set(this, void 0);
|
|
31
31
|
_UmbExtensionsElementInitializer_defaultElement.set(this, void 0);
|
|
@@ -39,5 +39,10 @@ export class UmbExtensionsElementInitializer extends UmbBaseExtensionsInitialize
|
|
|
39
39
|
extController.properties = __classPrivateFieldGet(this, _UmbExtensionsElementInitializer_props, "f");
|
|
40
40
|
return extController;
|
|
41
41
|
}
|
|
42
|
+
destroy() {
|
|
43
|
+
super.destroy();
|
|
44
|
+
__classPrivateFieldSet(this, _UmbExtensionsElementInitializer_props, undefined, "f");
|
|
45
|
+
__classPrivateFieldSet(this, _UmbExtensionsElementInitializer_extensionRegistry, undefined, "f");
|
|
46
|
+
}
|
|
42
47
|
}
|
|
43
48
|
_UmbExtensionsElementInitializer_extensionRegistry = new WeakMap(), _UmbExtensionsElementInitializer_defaultElement = new WeakMap(), _UmbExtensionsElementInitializer_props = new WeakMap();
|
package/dist-cms/libs/extension-api/controller/extensions-manifest-initializer.controller.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { UmbControllerHost } from '../../controller-api/index.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class UmbExtensionsManifestInitializer<ManifestTypes extends ManifestBase, ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>, ControllerType extends UmbExtensionManifestInitializer<ManifestType> = UmbExtensionManifestInitializer<ManifestType>, MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>> extends UmbBaseExtensionsInitializer<ManifestTypes, ManifestTypeName, ManifestType, ControllerType, MyPermittedControllerType> {
|
|
9
9
|
#private;
|
|
10
|
-
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, filter: null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>) => void);
|
|
10
|
+
constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestTypes>, type: ManifestTypeName | Array<ManifestTypeName>, filter: null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>) => void, controllerAlias?: string);
|
|
11
11
|
protected _createController(manifest: ManifestType): ControllerType;
|
|
12
|
+
destroy(): void;
|
|
12
13
|
}
|
package/dist-cms/libs/extension-api/controller/extensions-manifest-initializer.controller.js
CHANGED
|
@@ -15,8 +15,8 @@ import { UmbBaseExtensionsInitializer, } from './base-extensions-initializer.con
|
|
|
15
15
|
/**
|
|
16
16
|
*/
|
|
17
17
|
export class UmbExtensionsManifestInitializer extends UmbBaseExtensionsInitializer {
|
|
18
|
-
constructor(host, extensionRegistry, type, filter, onChange) {
|
|
19
|
-
super(host, extensionRegistry, type, filter, onChange);
|
|
18
|
+
constructor(host, extensionRegistry, type, filter, onChange, controllerAlias) {
|
|
19
|
+
super(host, extensionRegistry, type, filter, onChange, controllerAlias);
|
|
20
20
|
//
|
|
21
21
|
_UmbExtensionsManifestInitializer_extensionRegistry.set(this, void 0);
|
|
22
22
|
__classPrivateFieldSet(this, _UmbExtensionsManifestInitializer_extensionRegistry, extensionRegistry, "f");
|
|
@@ -25,5 +25,9 @@ export class UmbExtensionsManifestInitializer extends UmbBaseExtensionsInitializ
|
|
|
25
25
|
_createController(manifest) {
|
|
26
26
|
return new UmbExtensionManifestInitializer(this, __classPrivateFieldGet(this, _UmbExtensionsManifestInitializer_extensionRegistry, "f"), manifest.alias, this._extensionChanged);
|
|
27
27
|
}
|
|
28
|
+
destroy() {
|
|
29
|
+
super.destroy();
|
|
30
|
+
__classPrivateFieldSet(this, _UmbExtensionsManifestInitializer_extensionRegistry, undefined, "f");
|
|
31
|
+
}
|
|
28
32
|
}
|
|
29
33
|
_UmbExtensionsManifestInitializer_extensionRegistry = new WeakMap();
|
|
@@ -47,7 +47,7 @@ export class UmbLocalizationController {
|
|
|
47
47
|
umbLocalizationManager.removeConsumer(this);
|
|
48
48
|
}
|
|
49
49
|
destroy() {
|
|
50
|
-
__classPrivateFieldGet(this, _UmbLocalizationController_host, "f")
|
|
50
|
+
__classPrivateFieldGet(this, _UmbLocalizationController_host, "f")?.removeController(this);
|
|
51
51
|
__classPrivateFieldSet(this, _UmbLocalizationController_hostEl, undefined, "f");
|
|
52
52
|
}
|
|
53
53
|
documentUpdate() {
|
|
@@ -32,8 +32,9 @@ export class UmbObserverController extends UmbObserver {
|
|
|
32
32
|
host.addController(this);
|
|
33
33
|
}
|
|
34
34
|
destroy() {
|
|
35
|
+
__classPrivateFieldGet(this, _UmbObserverController_host, "f")?.removeController(this);
|
|
36
|
+
__classPrivateFieldSet(this, _UmbObserverController_host, undefined, "f");
|
|
35
37
|
super.destroy();
|
|
36
|
-
__classPrivateFieldGet(this, _UmbObserverController_host, "f").removeController(this);
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
_UmbObserverController_host = new WeakMap(), _UmbObserverController_alias = new WeakMap();
|
|
@@ -52,8 +52,9 @@ export class UmbObserver {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
hostDisconnected() {
|
|
55
|
-
// No cause then it cant re-connect, if the same element just was moved in DOM.
|
|
56
|
-
//
|
|
55
|
+
// No cause then it cant re-connect, if the same element just was moved in DOM. [NL]
|
|
56
|
+
// I do not agree with my self anymore ^^. I think we should unsubscribe here, to help garbage collector and prevent unforeseen side effects of observations continuing while element are out of the DOM. [NL]
|
|
57
|
+
__classPrivateFieldGet(this, _UmbObserver_subscription, "f")?.unsubscribe();
|
|
57
58
|
}
|
|
58
59
|
destroy() {
|
|
59
60
|
if (__classPrivateFieldGet(this, _UmbObserver_subscription, "f")) {
|
|
@@ -246,5 +246,10 @@ export class UmbArrayState extends UmbDeepState {
|
|
|
246
246
|
this.setValue(partialUpdateFrozenArray(this.getValue(), entry, (x) => unique === this.getUniqueMethod(x)));
|
|
247
247
|
return this;
|
|
248
248
|
}
|
|
249
|
+
destroy() {
|
|
250
|
+
super.destroy();
|
|
251
|
+
__classPrivateFieldSet(this, _UmbArrayState_sortMethod, undefined, "f");
|
|
252
|
+
this.getUniqueMethod = undefined;
|
|
253
|
+
}
|
|
249
254
|
}
|
|
250
255
|
_UmbArrayState_sortMethod = new WeakMap();
|
|
@@ -50,7 +50,8 @@ export class UmbBasicState {
|
|
|
50
50
|
* @description - Destroys this state and completes all observations made to it.
|
|
51
51
|
*/
|
|
52
52
|
destroy() {
|
|
53
|
-
this._subject
|
|
53
|
+
this._subject?.complete();
|
|
54
|
+
this._subject = undefined;
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
56
57
|
* @method setValue
|
|
@@ -63,7 +64,7 @@ export class UmbBasicState {
|
|
|
63
64
|
* // myState.value is equal 'Goodnight'.
|
|
64
65
|
*/
|
|
65
66
|
setValue(data) {
|
|
66
|
-
if (data !== this._subject.getValue()) {
|
|
67
|
+
if (this._subject && data !== this._subject.getValue()) {
|
|
67
68
|
this._subject.next(data);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -15,6 +15,8 @@ export class UmbClassState extends UmbBasicState {
|
|
|
15
15
|
* @description - Set the data of this state, if data is different than current this will trigger observations to update.
|
|
16
16
|
*/
|
|
17
17
|
setValue(data) {
|
|
18
|
+
if (!this._subject)
|
|
19
|
+
return;
|
|
18
20
|
const oldValue = this._subject.getValue();
|
|
19
21
|
if (data && oldValue?.equal(data))
|
|
20
22
|
return;
|