@umbraco-cms/backoffice 14.0.0--preview004-9ceaa576 → 14.0.0--preview004-52e41be8
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/apps/app/app.context.d.ts +5 -4
- package/dist-cms/apps/app/app.context.js +6 -3
- package/dist-cms/apps/app/app.element.js +32 -87
- package/dist-cms/apps/app/server-connection.d.ts +29 -0
- package/dist-cms/apps/app/server-connection.js +56 -0
- package/dist-cms/custom-elements.json +398 -403
- package/dist-cms/mocks/data/user.data.d.ts +2 -2
- package/dist-cms/mocks/data/user.data.js +3 -2
- package/dist-cms/packages/core/components/input-markdown-editor/input-markdown.element.js +2 -2
- package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.js +5 -5
- package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js +1 -1
- package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.d.ts +1 -1
- package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +5 -5
- package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-flow-input/data-type-flow-input.element.js +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-input/data-type-input.context.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-input/data-type-input.context.js +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/components/ref-data-type/ref-data-type.element.d.ts +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/components/ref-data-type/ref-data-type.element.js +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/copy/copy.action.d.ts +3 -3
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/copy/copy.action.js +2 -2
- package/dist-cms/packages/core/data-type/entity-actions/copy/manifests.d.ts +2 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/copy/manifests.js +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/create.action.d.ts +3 -3
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/create.action.js +2 -2
- package/dist-cms/packages/core/data-type/entity-actions/create/manifests.d.ts +2 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/manifests.js +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/modal/data-type-create-options-modal.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/modal/data-type-create-options-modal.element.js +4 -4
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/modal/index.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/create/modal/index.js +1 -1
- package/dist-cms/packages/core/data-type/entity-actions/manifests.d.ts +1 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/manifests.js +6 -5
- package/dist-cms/packages/core/data-type/entity-actions/move/manifests.d.ts +2 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/move/manifests.js +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/move/move.action.d.ts +3 -3
- package/dist-cms/packages/{settings/data-types → core/data-type}/entity-actions/move/move.action.js +2 -2
- package/dist-cms/packages/core/data-type/manifests.d.ts +1 -0
- package/dist-cms/packages/core/data-type/menu-item/manifests.d.ts +1 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.js +7 -5
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/data-type-picker-flow/data-type-picker-flow-modal.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +6 -6
- package/dist-cms/packages/core/data-type/modals/manifests.d.ts +2 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.js +1 -1
- package/dist-cms/packages/core/data-type/repository/copy/data-type-copy.repository.d.ts +14 -0
- package/dist-cms/packages/core/data-type/repository/copy/data-type-copy.repository.js +32 -0
- package/dist-cms/packages/{settings/data-types/repository/sources/data-type-copy.server.data.d.ts → core/data-type/repository/copy/data-type-copy.server.data-source.d.ts} +2 -2
- package/dist-cms/packages/core/data-type/repository/copy/index.d.ts +2 -0
- package/dist-cms/packages/core/data-type/repository/copy/index.js +2 -0
- package/dist-cms/packages/core/data-type/repository/copy/manifests.d.ts +3 -0
- package/dist-cms/packages/core/data-type/repository/copy/manifests.js +9 -0
- package/dist-cms/packages/core/data-type/repository/data-type-repository-base.d.ts +14 -0
- package/dist-cms/packages/core/data-type/repository/data-type-repository-base.js +24 -0
- package/dist-cms/packages/core/data-type/repository/detail/data-type-detail.repository.d.ts +25 -0
- package/dist-cms/packages/core/data-type/repository/detail/data-type-detail.repository.js +94 -0
- package/dist-cms/packages/{settings/data-types/repository/sources/data-type.server.data.d.ts → core/data-type/repository/detail/data-type-detail.server.data-source.d.ts} +5 -5
- package/dist-cms/packages/{settings/data-types/repository/sources/data-type.server.data.js → core/data-type/repository/detail/data-type-detail.server.data-source.js} +1 -1
- package/dist-cms/packages/core/data-type/repository/detail/data-type-detail.store.d.ts +26 -0
- package/dist-cms/packages/core/data-type/repository/detail/data-type-detail.store.js +32 -0
- package/dist-cms/packages/core/data-type/repository/detail/index.d.ts +2 -0
- package/dist-cms/packages/core/data-type/repository/detail/index.js +2 -0
- package/dist-cms/packages/core/data-type/repository/detail/manifests.d.ts +4 -0
- package/dist-cms/packages/core/data-type/repository/detail/manifests.js +17 -0
- package/dist-cms/packages/core/data-type/repository/folder/data-type-folder.repository.d.ts +21 -0
- package/dist-cms/packages/core/data-type/repository/folder/data-type-folder.repository.js +57 -0
- package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/repository/folder}/data-type-folder.server.data.d.ts +5 -5
- package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/repository/folder}/data-type-folder.server.data.js +1 -1
- package/dist-cms/packages/core/data-type/repository/folder/index.d.ts +2 -0
- package/dist-cms/packages/core/data-type/repository/folder/index.js +2 -0
- package/dist-cms/packages/core/data-type/repository/folder/manifests.d.ts +3 -0
- package/dist-cms/packages/core/data-type/repository/folder/manifests.js +9 -0
- package/dist-cms/packages/core/data-type/repository/index.d.ts +5 -0
- package/dist-cms/packages/core/data-type/repository/index.js +5 -0
- package/dist-cms/packages/core/data-type/repository/item/data-type-item.repository.d.ts +26 -0
- package/dist-cms/packages/core/data-type/repository/item/data-type-item.repository.js +35 -0
- package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/repository/item}/data-type-item.server.data.d.ts +2 -2
- package/dist-cms/packages/core/data-type/repository/item/data-type-item.store.d.ts +19 -0
- package/dist-cms/packages/core/data-type/repository/item/data-type-item.store.js +19 -0
- package/dist-cms/packages/core/data-type/repository/item/index.d.ts +2 -0
- package/dist-cms/packages/core/data-type/repository/item/index.js +2 -0
- package/dist-cms/packages/core/data-type/repository/item/manifests.d.ts +4 -0
- package/dist-cms/packages/core/data-type/repository/item/manifests.js +17 -0
- package/dist-cms/packages/core/data-type/repository/manifests.d.ts +1 -0
- package/dist-cms/packages/core/data-type/repository/manifests.js +6 -0
- package/dist-cms/packages/core/data-type/repository/move/data-type-move.repository.d.ts +10 -0
- package/dist-cms/packages/core/data-type/repository/move/data-type-move.repository.js +24 -0
- package/dist-cms/packages/{settings/data-types/repository/sources/data-type-move.server.data.d.ts → core/data-type/repository/move/data-type-move.server.data-source.d.ts} +2 -2
- package/dist-cms/packages/core/data-type/repository/move/index.d.ts +2 -0
- package/dist-cms/packages/core/data-type/repository/move/index.js +2 -0
- package/dist-cms/packages/core/data-type/repository/move/manifests.d.ts +3 -0
- package/dist-cms/packages/core/data-type/repository/move/manifests.js +9 -0
- package/dist-cms/packages/core/data-type/repository/utils.d.ts +3 -0
- package/dist-cms/packages/core/data-type/repository/utils.js +25 -0
- package/dist-cms/packages/core/data-type/tree/data-type-tree.repository.d.ts +30 -0
- package/dist-cms/packages/core/data-type/tree/data-type-tree.repository.js +49 -0
- package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/tree}/data-type.tree.server.data.d.ts +5 -5
- package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/tree}/data-type.tree.server.data.js +2 -2
- package/dist-cms/packages/{settings/data-types/repository → core/data-type/tree}/data-type.tree.store.d.ts +3 -3
- package/dist-cms/packages/{settings/data-types/repository → core/data-type/tree}/data-type.tree.store.js +4 -5
- package/dist-cms/packages/core/data-type/tree/manifests.d.ts +4 -0
- package/dist-cms/packages/core/data-type/tree/manifests.js +34 -0
- package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/data-type-variant-context.d.ts +2 -2
- package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/data-type-variant-context.js +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/data-type-variant-context.token.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace-editor.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace.context.d.ts +4 -4
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace.context.js +5 -5
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace.element.js +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/manifests.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/manifests.js +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/views/details/data-type-details-workspace-view.element.d.ts +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/views/details/data-type-details-workspace-view.element.js +1 -1
- package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/views/info/workspace-view-data-type-info.element.d.ts +1 -1
- package/dist-cms/packages/core/debug/context-debug.controller.d.ts +7 -0
- package/dist-cms/packages/core/debug/context-debug.controller.js +36 -0
- package/dist-cms/packages/core/debug/index.d.ts +1 -0
- package/dist-cms/packages/core/debug/index.js +1 -0
- package/dist-cms/packages/core/entity-action/common/delete/delete.action.js +10 -12
- package/dist-cms/packages/core/index.js +2 -0
- package/dist-cms/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.js +5 -5
- package/dist-cms/packages/core/store/entity-item.store.d.ts +18 -0
- package/dist-cms/packages/core/store/entity-item.store.js +21 -0
- package/dist-cms/packages/core/store/index.d.ts +1 -0
- package/dist-cms/packages/core/store/index.js +1 -0
- package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.js +4 -4
- package/dist-cms/packages/settings/manifests.js +0 -2
- package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +6 -6
- package/dist-cms/packages/user/current-user/current-user-header-app.element.d.ts +1 -2
- package/dist-cms/packages/user/current-user/current-user-header-app.element.js +9 -7
- package/dist-cms/packages/user/current-user/current-user.context.d.ts +21 -0
- package/dist-cms/packages/user/current-user/current-user.context.js +58 -0
- package/dist-cms/packages/user/current-user/index.d.ts +2 -0
- package/dist-cms/packages/user/current-user/index.js +2 -0
- package/dist-cms/packages/user/current-user/manifests.js +7 -0
- package/dist-cms/packages/user/current-user/modals/current-user/current-user-modal.element.js +11 -6
- package/dist-cms/packages/user/current-user/types.d.ts +1 -0
- package/dist-cms/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.d.ts +1 -2
- package/dist-cms/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.js +10 -8
- package/dist-cms/packages/user/current-user/utils/is-current-user.function.js +5 -5
- package/dist-cms/packages/user/modals/change-password/change-password-modal.element.js +7 -7
- package/dist-cms/packages/user/user/workspace/components/user-workspace-profile-settings/user-workspace-profile-settings.element.js +6 -6
- package/dist-cms/packages/user/user/workspace/user-workspace.context.js +7 -7
- package/dist-cms/packages/user/user-permission/conditions/user-permission.condition.js +2 -2
- package/dist-cms/shared/auth/auth.context.d.ts +15 -17
- package/dist-cms/shared/auth/{auth.interface.d.ts → auth.context.interface.d.ts} +4 -20
- package/dist-cms/shared/auth/auth.context.js +35 -38
- package/dist-cms/shared/auth/auth.context.token.d.ts +3 -0
- package/dist-cms/shared/auth/index.d.ts +2 -3
- package/dist-cms/shared/auth/index.js +2 -3
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/vscode-html-custom-data.json +124 -128
- package/package.json +2 -2
- package/dist-cms/packages/settings/data-types/entity-actions/copy/manifests.d.ts +0 -2
- package/dist-cms/packages/settings/data-types/entity-actions/create/manifests.d.ts +0 -2
- package/dist-cms/packages/settings/data-types/entity-actions/manifests.d.ts +0 -1
- package/dist-cms/packages/settings/data-types/entity-actions/move/manifests.d.ts +0 -2
- package/dist-cms/packages/settings/data-types/manifests.d.ts +0 -1
- package/dist-cms/packages/settings/data-types/menu-item/manifests.d.ts +0 -1
- package/dist-cms/packages/settings/data-types/modals/manifests.d.ts +0 -2
- package/dist-cms/packages/settings/data-types/repository/data-type-item.store.d.ts +0 -20
- package/dist-cms/packages/settings/data-types/repository/data-type-item.store.js +0 -23
- package/dist-cms/packages/settings/data-types/repository/data-type.repository.d.ts +0 -77
- package/dist-cms/packages/settings/data-types/repository/data-type.repository.js +0 -299
- package/dist-cms/packages/settings/data-types/repository/data-type.store.d.ts +0 -38
- package/dist-cms/packages/settings/data-types/repository/data-type.store.js +0 -48
- package/dist-cms/packages/settings/data-types/repository/index.d.ts +0 -1
- package/dist-cms/packages/settings/data-types/repository/index.js +0 -1
- package/dist-cms/packages/settings/data-types/repository/manifests.d.ts +0 -6
- package/dist-cms/packages/settings/data-types/repository/manifests.js +0 -33
- package/dist-cms/packages/settings/data-types/tree/manifests.d.ts +0 -2
- package/dist-cms/packages/settings/data-types/tree/manifests.js +0 -19
- package/dist-cms/shared/auth/auth.token.d.ts +0 -3
- package/dist-cms/shared/auth/types.d.ts +0 -1
- /package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-flow-input/data-type-flow-input.element.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-input/data-type-input.element.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/components/data-type-input/data-type-input.element.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/components/index.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/components/index.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/entities.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/entities.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/index.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/index.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/manifests.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/menu-item/manifests.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/modals/manifests.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/models.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/models.js +0 -0
- /package/dist-cms/packages/{settings/data-types/repository/sources/data-type-copy.server.data.js → core/data-type/repository/copy/data-type-copy.server.data-source.js} +0 -0
- /package/dist-cms/packages/{settings/data-types/repository/sources → core/data-type/repository/item}/data-type-item.server.data.js +0 -0
- /package/dist-cms/packages/{settings/data-types/repository/sources/data-type-move.server.data.js → core/data-type/repository/move/data-type-move.server.data-source.js} +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/data-type-variant-context.token.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/index.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/variant-context/index.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace-editor.element.js +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/data-type-workspace.element.d.ts +0 -0
- /package/dist-cms/packages/{settings/data-types → core/data-type}/workspace/views/info/workspace-view-data-type-info.element.js +0 -0
- /package/dist-cms/{shared/auth → packages/user/current-user}/types.js +0 -0
- /package/dist-cms/shared/auth/{auth.interface.js → auth.context.interface.js} +0 -0
- /package/dist-cms/shared/auth/{auth.token.js → auth.context.token.js} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { UmbAppContextConfig } from '
|
|
1
|
+
import { UmbAppContextConfig } from './app-context-config.interface.js';
|
|
2
|
+
import { UmbBaseController, UmbControllerHost } from '../../libs/controller-api/index.js';
|
|
2
3
|
import { UmbContextToken } from '../../libs/context-api/index.js';
|
|
3
|
-
export declare class UmbAppContext {
|
|
4
|
+
export declare class UmbAppContext extends UmbBaseController {
|
|
4
5
|
#private;
|
|
5
|
-
constructor(config: UmbAppContextConfig);
|
|
6
|
+
constructor(host: UmbControllerHost, config: UmbAppContextConfig);
|
|
6
7
|
getBackofficePath(): string;
|
|
7
8
|
getServerUrl(): string;
|
|
8
9
|
}
|
|
9
|
-
export declare const
|
|
10
|
+
export declare const UMB_APP_CONTEXT: UmbContextToken<UmbAppContext, UmbAppContext>;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { UmbBaseController } from '../../libs/controller-api/index.js';
|
|
1
2
|
import { UmbContextToken } from '../../libs/context-api/index.js';
|
|
2
|
-
export class UmbAppContext {
|
|
3
|
+
export class UmbAppContext extends UmbBaseController {
|
|
3
4
|
#serverUrl;
|
|
4
5
|
#backofficePath;
|
|
5
|
-
constructor(config) {
|
|
6
|
+
constructor(host, config) {
|
|
7
|
+
super(host);
|
|
6
8
|
this.#serverUrl = config.serverUrl;
|
|
7
9
|
this.#backofficePath = config.backofficePath;
|
|
10
|
+
this.provideContext(UMB_APP_CONTEXT, this);
|
|
8
11
|
}
|
|
9
12
|
getBackofficePath() {
|
|
10
13
|
return this.#backofficePath;
|
|
@@ -13,4 +16,4 @@ export class UmbAppContext {
|
|
|
13
16
|
return this.#serverUrl;
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
|
-
export const
|
|
19
|
+
export const UMB_APP_CONTEXT = new UmbContextToken('UMB_APP');
|
|
@@ -4,22 +4,21 @@ 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
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { UmbAppContext } from './app.context.js';
|
|
8
|
+
import { UmbServerConnection } from './server-connection.js';
|
|
9
|
+
import { UmbAuthContext } from '../../shared/auth/index.js';
|
|
10
10
|
import { css, html, customElement, property } from '../../external/lit/index.js';
|
|
11
11
|
import { UUIIconRegistryEssential } from '../../external/uui/index.js';
|
|
12
12
|
import { UmbIconRegistry } from '../../shared/icon-registry/index.js';
|
|
13
13
|
import { UmbLitElement } from '../../shared/lit-element/index.js';
|
|
14
14
|
import { pathWithoutBasePath } from '../../shared/router/index.js';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { contextData, umbDebugContextEventType } from '../../libs/context-api/index.js';
|
|
15
|
+
import { OpenAPI, RuntimeLevelModel } from '../../external/backend-api/index.js';
|
|
16
|
+
import { UmbContextDebugController } from '../../packages/core/debug/index.js';
|
|
18
17
|
export let UmbAppElement = class UmbAppElement extends UmbLitElement {
|
|
19
18
|
#authContext;
|
|
20
19
|
#umbIconRegistry;
|
|
21
20
|
#uuiIconRegistry;
|
|
22
|
-
#
|
|
21
|
+
#serverConnection;
|
|
23
22
|
constructor() {
|
|
24
23
|
super();
|
|
25
24
|
/**
|
|
@@ -58,51 +57,30 @@ export let UmbAppElement = class UmbAppElement extends UmbLitElement {
|
|
|
58
57
|
];
|
|
59
58
|
this.#umbIconRegistry = new UmbIconRegistry();
|
|
60
59
|
this.#uuiIconRegistry = new UUIIconRegistryEssential();
|
|
61
|
-
this
|
|
60
|
+
new UmbContextDebugController(this);
|
|
62
61
|
this.#umbIconRegistry.attach(this);
|
|
63
62
|
this.#uuiIconRegistry.attach(this);
|
|
64
63
|
}
|
|
65
64
|
connectedCallback() {
|
|
66
65
|
super.connectedCallback();
|
|
67
|
-
this.#setLanguage();
|
|
68
66
|
this.#setup();
|
|
69
67
|
}
|
|
70
|
-
#setLanguage() {
|
|
71
|
-
if (this.lang) {
|
|
72
|
-
umbLocalizationRegistry.loadLanguage(this.lang);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
#listenForLanguageChange() {
|
|
76
|
-
// This will wait for the default language to be loaded before attempting to load the current user language
|
|
77
|
-
// just in case the user language is not the default language.
|
|
78
|
-
// We **need** to do this because the default language (typically en-us) holds all the fallback keys for all the other languages.
|
|
79
|
-
// This way we can ensure that the document language is always loaded first and subsequently registered as the fallback language.
|
|
80
|
-
this.observe(umbLocalizationRegistry.isDefaultLoaded, (isDefaultLoaded) => {
|
|
81
|
-
if (!this.#authContext) {
|
|
82
|
-
throw new Error('[Fatal] AuthContext requested before it was initialized');
|
|
83
|
-
}
|
|
84
|
-
if (!isDefaultLoaded)
|
|
85
|
-
return;
|
|
86
|
-
this.observe(this.#authContext.languageIsoCode, (currentLanguageIsoCode) => {
|
|
87
|
-
umbLocalizationRegistry.loadLanguage(currentLanguageIsoCode);
|
|
88
|
-
}, 'languageIsoCode');
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
68
|
async #setup() {
|
|
92
69
|
if (this.serverUrl === undefined)
|
|
93
70
|
throw new Error('No serverUrl provided');
|
|
71
|
+
/* All requests to the server requires the base URL to be set.
|
|
72
|
+
We make sure it happens before we get the server status.
|
|
73
|
+
TODO: find the right place to set this
|
|
74
|
+
*/
|
|
94
75
|
OpenAPI.BASE = this.serverUrl;
|
|
95
|
-
|
|
96
|
-
this.#authContext = new UmbAuthContext(this, this.serverUrl,
|
|
97
|
-
this.
|
|
98
|
-
this.provideContext(UMB_APP, new UmbAppContext({ backofficePath: this.backofficePath, serverUrl: this.serverUrl }));
|
|
76
|
+
this.#serverConnection = await new UmbServerConnection(this.serverUrl).connect();
|
|
77
|
+
this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth);
|
|
78
|
+
new UmbAppContext(this, { backofficePath: this.backofficePath, serverUrl: this.serverUrl });
|
|
99
79
|
// Try to initialise the auth flow and get the runtime status
|
|
100
80
|
try {
|
|
101
|
-
// Get the current runtime level
|
|
102
|
-
await this.#setInitStatus();
|
|
103
81
|
// If the runtime level is "install" we should clear any cached tokens
|
|
104
82
|
// else we should try and set the auth status
|
|
105
|
-
if (this.#
|
|
83
|
+
if (this.#serverConnection.getStatus() === RuntimeLevelModel.INSTALL) {
|
|
106
84
|
await this.#authContext.signOut();
|
|
107
85
|
}
|
|
108
86
|
else {
|
|
@@ -127,54 +105,22 @@ export let UmbAppElement = class UmbAppElement extends UmbLitElement {
|
|
|
127
105
|
// Redirect to the error page
|
|
128
106
|
this.#errorPage(errorMsg, error);
|
|
129
107
|
}
|
|
130
|
-
// TODO: wrap all debugging logic in a separate class. Maybe this could be part of the context-api? When we create a new root, we could attach the debugger to it?
|
|
131
|
-
// Listen for the debug event from the <umb-debug> component
|
|
132
|
-
this.addEventListener(umbDebugContextEventType, (event) => {
|
|
133
|
-
// Once we got to the outter most component <umb-app>
|
|
134
|
-
// we can send the event containing all the contexts
|
|
135
|
-
// we have collected whilst coming up through the DOM
|
|
136
|
-
// and pass it back down to the callback in
|
|
137
|
-
// the <umb-debug> component that originally fired the event
|
|
138
|
-
if (event.callback) {
|
|
139
|
-
event.callback(event.instances);
|
|
140
|
-
}
|
|
141
|
-
// Massage the data into a simplier format
|
|
142
|
-
// Why? Can't send contexts data directly - browser seems to not serialize it and says its null
|
|
143
|
-
// But a simple object works fine for browser extension to consume
|
|
144
|
-
const data = {
|
|
145
|
-
contexts: contextData(event.instances),
|
|
146
|
-
};
|
|
147
|
-
// Emit this new event for the browser extension to listen for
|
|
148
|
-
this.dispatchEvent(new CustomEvent('umb:debug-contexts:data', { detail: data, bubbles: true }));
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
async #setInitStatus() {
|
|
152
|
-
const { data, error } = await tryExecute(ServerResource.getServerStatus());
|
|
153
|
-
if (error) {
|
|
154
|
-
throw error;
|
|
155
|
-
}
|
|
156
|
-
this.#runtimeLevel = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN;
|
|
157
108
|
}
|
|
109
|
+
// TODO: move set initial auth state into auth context
|
|
158
110
|
async #setAuthStatus() {
|
|
159
|
-
if (this.bypassAuth
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
// Get service configuration from authentication server
|
|
164
|
-
await this.#authContext.setInitialState();
|
|
165
|
-
// Instruct all requests to use the auth flow to get and use the access_token for all subsequent requests
|
|
166
|
-
OpenAPI.TOKEN = () => this.#authContext.getLatestToken();
|
|
167
|
-
}
|
|
168
|
-
this.#listenForLanguageChange();
|
|
169
|
-
if (this.#authContext?.isAuthorized()) {
|
|
170
|
-
this.#authContext?.setLoggedIn(true);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
this.#authContext?.setLoggedIn(false);
|
|
111
|
+
if (this.bypassAuth)
|
|
112
|
+
return;
|
|
113
|
+
if (!this.#authContext) {
|
|
114
|
+
throw new Error('[Fatal] AuthContext requested before it was initialized');
|
|
174
115
|
}
|
|
116
|
+
// Get service configuration from authentication server
|
|
117
|
+
await this.#authContext?.setInitialState();
|
|
118
|
+
// Instruct all requests to use the auth flow to get and use the access_token for all subsequent requests
|
|
119
|
+
OpenAPI.TOKEN = () => this.#authContext.getLatestToken();
|
|
120
|
+
OpenAPI.WITH_CREDENTIALS = true;
|
|
175
121
|
}
|
|
176
122
|
#redirect() {
|
|
177
|
-
switch (this.#
|
|
123
|
+
switch (this.#serverConnection?.getStatus()) {
|
|
178
124
|
case RuntimeLevelModel.INSTALL:
|
|
179
125
|
history.replaceState(null, '', 'install');
|
|
180
126
|
break;
|
|
@@ -200,22 +146,21 @@ export let UmbAppElement = class UmbAppElement extends UmbLitElement {
|
|
|
200
146
|
}
|
|
201
147
|
default:
|
|
202
148
|
// Redirect to the error page
|
|
203
|
-
this.#errorPage(`Unsupported runtime level: ${this.#
|
|
149
|
+
this.#errorPage(`Unsupported runtime level: ${this.#serverConnection?.getStatus()}`);
|
|
204
150
|
}
|
|
205
151
|
}
|
|
206
|
-
#isAuthorized() {
|
|
207
|
-
if (!this.#authContext)
|
|
208
|
-
return false;
|
|
209
|
-
return this.bypassAuth ? true : this.#authContext.isAuthorized();
|
|
210
|
-
}
|
|
211
152
|
#isAuthorizedGuard() {
|
|
212
153
|
return () => {
|
|
213
|
-
if (this.#
|
|
154
|
+
if (!this.#authContext) {
|
|
155
|
+
throw new Error('[Fatal] AuthContext requested before it was initialized');
|
|
156
|
+
}
|
|
157
|
+
if (this.#authContext.getIsAuthorized()) {
|
|
214
158
|
return true;
|
|
215
159
|
}
|
|
216
160
|
// Save location.href so we can redirect to it after login
|
|
217
161
|
window.sessionStorage.setItem('umb:auth:redirect', location.href);
|
|
218
162
|
// Make a request to the auth server to start the auth flow
|
|
163
|
+
// TODO: find better name for this method
|
|
219
164
|
this.#authContext.login();
|
|
220
165
|
// Return false to prevent the route from being rendered
|
|
221
166
|
return false;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RuntimeLevelModel } from '../../external/backend-api/index.js';
|
|
2
|
+
export declare class UmbServerConnection {
|
|
3
|
+
#private;
|
|
4
|
+
isConnected: import("rxjs").Observable<boolean>;
|
|
5
|
+
constructor(serverUrl: string);
|
|
6
|
+
/**
|
|
7
|
+
* Connects to the server.
|
|
8
|
+
* @memberof UmbServerConnection
|
|
9
|
+
*/
|
|
10
|
+
connect(): Promise<this>;
|
|
11
|
+
/**
|
|
12
|
+
* Gets the URL of the server.
|
|
13
|
+
* @return {*}
|
|
14
|
+
* @memberof UmbServerConnection
|
|
15
|
+
*/
|
|
16
|
+
getUrl(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Gets the status of the server.
|
|
19
|
+
* @return {string}
|
|
20
|
+
* @memberof UmbServerConnection
|
|
21
|
+
*/
|
|
22
|
+
getStatus(): RuntimeLevelModel;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if the server is connected.
|
|
25
|
+
* @return {boolean}
|
|
26
|
+
* @memberof UmbServerConnection
|
|
27
|
+
*/
|
|
28
|
+
getIsConnected(): boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { RuntimeLevelModel, ServerResource } from '../../external/backend-api/index.js';
|
|
2
|
+
import { UmbBooleanState } from '../../libs/observable-api/index.js';
|
|
3
|
+
import { tryExecute } from '../../shared/resources/index.js';
|
|
4
|
+
export class UmbServerConnection {
|
|
5
|
+
#url;
|
|
6
|
+
#status;
|
|
7
|
+
#isConnected;
|
|
8
|
+
constructor(serverUrl) {
|
|
9
|
+
this.#status = RuntimeLevelModel.UNKNOWN;
|
|
10
|
+
this.#isConnected = new UmbBooleanState(false);
|
|
11
|
+
this.isConnected = this.#isConnected.asObservable();
|
|
12
|
+
this.#url = serverUrl;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Connects to the server.
|
|
16
|
+
* @memberof UmbServerConnection
|
|
17
|
+
*/
|
|
18
|
+
async connect() {
|
|
19
|
+
await this.#setStatus();
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Gets the URL of the server.
|
|
24
|
+
* @return {*}
|
|
25
|
+
* @memberof UmbServerConnection
|
|
26
|
+
*/
|
|
27
|
+
getUrl() {
|
|
28
|
+
return this.#url;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets the status of the server.
|
|
32
|
+
* @return {string}
|
|
33
|
+
* @memberof UmbServerConnection
|
|
34
|
+
*/
|
|
35
|
+
getStatus() {
|
|
36
|
+
if (!this.getIsConnected())
|
|
37
|
+
throw new Error('Server is not connected. Remember to await connect()');
|
|
38
|
+
return this.#status;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Checks if the server is connected.
|
|
42
|
+
* @return {boolean}
|
|
43
|
+
* @memberof UmbServerConnection
|
|
44
|
+
*/
|
|
45
|
+
getIsConnected() {
|
|
46
|
+
return this.#isConnected.getValue();
|
|
47
|
+
}
|
|
48
|
+
async #setStatus() {
|
|
49
|
+
const { data, error } = await tryExecute(ServerResource.getServerStatus());
|
|
50
|
+
if (error) {
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
this.#isConnected.next(true);
|
|
54
|
+
this.#status = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN;
|
|
55
|
+
}
|
|
56
|
+
}
|