V14: generate dynamic importmap (#15710)
* register a new IPackageManifestReader to allow to scan the /umbraco/backoffice path for umbraco packages * add constant * add logic to extract the importmap from umbraco package manifests * add html helper to render an importmap * replace static importmap with new dynamic importmap * update tests and be more specific about scopes * remove recursion from PackageManifestReader.cs * add extra test to validate the importmap * combine all string manipulation to produce an importmap into HtmlHelperBackOfficeExtensions.cs * rename IStaticFileHostGenerator to something reflecting its actual usage, and also fix the file names * use auto properties where applicable * add getter for BackOfficeHash and use to simplify BackofficeAssetsPath * ensure BackOffice is always spelled with capital O * add a way to replace the cachebuster for assets imported through an importmap and ensure magic strings are encapsulated into business logic or constants * Review changes * convert primary constructors to explicit and add comments * convert primary constructor to explicit --------- Co-authored-by: kjac <kja@umbraco.dk>
This commit is contained in:
@@ -1,20 +1,15 @@
|
||||
@using System.Globalization
|
||||
@using Microsoft.Extensions.Options
|
||||
@using Umbraco.Cms.Core.Configuration.Models
|
||||
@using Umbraco.Cms.Core.Hosting
|
||||
@using Umbraco.Cms.Core.Manifest
|
||||
@using Umbraco.Cms.Core.Serialization
|
||||
@using Umbraco.Cms.Web.Common.Hosting
|
||||
@using Umbraco.Extensions
|
||||
@inject IHostingEnvironment HostingEnvironment
|
||||
@inject IOptions<GlobalSettings> GlobalSettings
|
||||
@inject IStaticFilePathGenerator StaticFilePathGenerator
|
||||
@inject IBackOfficePathGenerator BackOfficePathGenerator
|
||||
@inject IPackageManifestService PackageManifestService
|
||||
@inject IJsonSerializer JsonSerializer
|
||||
|
||||
@{
|
||||
var backOfficePath = GlobalSettings.Value.GetBackOfficePath(HostingEnvironment);
|
||||
var backofficeAssetsPath = StaticFilePathGenerator.BackofficeAssetsPath;
|
||||
}
|
||||
|
||||
@functions {
|
||||
private static string ImportMapValue(string alias, string path) => $"\"{alias}\": \"{path}\"";
|
||||
var backOfficePath = BackOfficePathGenerator.BackOfficePath;
|
||||
var backOfficeAssetsPath = BackOfficePathGenerator.BackOfficeAssetsPath;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -23,126 +18,13 @@
|
||||
<head>
|
||||
<base href="@backOfficePath.EnsureEndsWith('/')" />
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="@backofficeAssetsPath/assets/favicon.svg" />
|
||||
<link rel="icon" type="image/svg+xml" href="@backOfficeAssetsPath/assets/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Umbraco</title>
|
||||
<link rel="stylesheet" href="@backofficeAssetsPath/css/umb-css.css" />
|
||||
<link rel="stylesheet" href="@backofficeAssetsPath/css/uui-css.css" />
|
||||
<script type="importmap">
|
||||
{
|
||||
"imports": {
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/app", backofficeAssetsPath + "/apps/app/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/backend-api", backofficeAssetsPath + "/external/backend-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/lit", backofficeAssetsPath + "/external/lit/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/lodash", backofficeAssetsPath + "/external/lodash/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/monaco-editor", backofficeAssetsPath + "/external/monaco-editor/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/openid", backofficeAssetsPath + "/external/openid/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/router-slot", backofficeAssetsPath + "/external/router-slot/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/rxjs", backofficeAssetsPath + "/external/rxjs/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/tinymce", backofficeAssetsPath + "/external/tinymce/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/uui", backofficeAssetsPath + "/external/uui/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/uuid", backofficeAssetsPath + "/external/uuid/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/dompurify", backofficeAssetsPath + "/external/dompurify/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/marked", backofficeAssetsPath + "/external/marked/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/class-api", backofficeAssetsPath + "/libs/class-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/context-api", backofficeAssetsPath + "/libs/context-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/controller-api", backofficeAssetsPath + "/libs/controller-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/element-api", backofficeAssetsPath + "/libs/element-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/extension-api", backofficeAssetsPath + "/libs/extension-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/localization-api", backofficeAssetsPath + "/libs/localization-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/observable-api", backofficeAssetsPath + "/libs/observable-api/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/auth", backofficeAssetsPath + "/shared/auth/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/event", backofficeAssetsPath + "/packages/core/event/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/lit-element", backofficeAssetsPath + "/packages/core/lit-element/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/icon", backofficeAssetsPath + "/shared/icon-registry/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/models", backofficeAssetsPath + "/shared/models/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/resources", backofficeAssetsPath + "/shared/resources/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/router", backofficeAssetsPath + "/shared/router/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/style", backofficeAssetsPath + "/shared/style/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/utils", backofficeAssetsPath + "/shared/utils/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/action", backofficeAssetsPath + "/packages/core/action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/collection", backofficeAssetsPath + "/packages/core/collection/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/components", backofficeAssetsPath + "/packages/core/components/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/content-type", backofficeAssetsPath + "/packages/core/content-type/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/culture", backofficeAssetsPath + "/packages/core/culture/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/data-type", backofficeAssetsPath + "/packages/core/data-type/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/debug", backofficeAssetsPath + "/packages/core/debug/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/entity-action", backofficeAssetsPath + "/packages/core/entity-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/entity-bulk-action", backofficeAssetsPath + "/packages/core/entity-bulk-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/extension-registry", backofficeAssetsPath + "/packages/core/extension-registry/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/server-file-system", backofficeAssetsPath + "/packages/core/server-file-system/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/id", backofficeAssetsPath + "/packages/core/id/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/localization", backofficeAssetsPath + "/packages/core/localization/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/menu", backofficeAssetsPath + "/packages/core/menu/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/modal", backofficeAssetsPath + "/packages/core/modal/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/notification", backofficeAssetsPath + "/packages/core/notification/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/picker-input", backofficeAssetsPath + "/packages/core/picker-input/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property", backofficeAssetsPath + "/packages/core/property/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property-action", backofficeAssetsPath + "/packages/core/property-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property-editor", backofficeAssetsPath + "/packages/core/property-editor/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/section", backofficeAssetsPath + "/packages/core/section/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/sorter", backofficeAssetsPath + "/packages/core/sorter/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/store", backofficeAssetsPath + "/packages/core/store/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/themes", backofficeAssetsPath + "/packages/core/themes/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/tree", backofficeAssetsPath + "/packages/core/tree/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/variant", backofficeAssetsPath + "/packages/core/variant/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/workspace", backofficeAssetsPath + "/packages/core/workspace/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/repository", backofficeAssetsPath + "/packages/core/repository/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/temporary-file", backofficeAssetsPath + "/packages/core/temporary-file/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/block", backofficeAssetsPath + "/packages/block/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/audit-log", backofficeAssetsPath + "/packages/audit-log/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/dictionary", backofficeAssetsPath + "/packages/dictionary/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document", backofficeAssetsPath + "/packages/documents/documents/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document-blueprint", backofficeAssetsPath + "/packages/documents/document-blueprints/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document-type", backofficeAssetsPath + "/packages/documents/document-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/media", backofficeAssetsPath + "/packages/media/media/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/media-type", backofficeAssetsPath + "/packages/media/media-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member", backofficeAssetsPath + "/packages/members/members/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member-group", backofficeAssetsPath + "/packages/members/member-groups/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member-type", backofficeAssetsPath + "/packages/members/member-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/package", backofficeAssetsPath + "/packages/packages/package/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/language", backofficeAssetsPath + "/packages/language/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/dynamic-root", backofficeAssetsPath + "/packages/dynamic-root/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/log-viewer", backofficeAssetsPath + "/packages/packages/log-viewer/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/relation-types", backofficeAssetsPath + "/packages/settings/relation-types/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/relations", backofficeAssetsPath + "/packages/settings/relations/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/tags", backofficeAssetsPath + "/packages/tags/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/static-file", backofficeAssetsPath + "/packages/static-file/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/partial-view", backofficeAssetsPath + "/packages/templating/partial-views/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/stylesheet", backofficeAssetsPath + "/packages/templating/stylesheets/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/template", backofficeAssetsPath + "/packages/templating/templates/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user-group", backofficeAssetsPath + "/packages/user/user-group/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/current-user", backofficeAssetsPath + "/packages/user/current-user/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user", backofficeAssetsPath + "/packages/user/user/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user-permission", backofficeAssetsPath + "/packages/user/user-permission/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/code-editor", backofficeAssetsPath + "/packages/templating/code-editor/index.js"))
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module" src="@backofficeAssetsPath/apps/app/app.element.js"></script>
|
||||
<link rel="stylesheet" href="@backOfficeAssetsPath/css/umb-css.css" />
|
||||
<link rel="stylesheet" href="@backOfficeAssetsPath/css/uui-css.css" />
|
||||
@await Html.BackOfficeImportMapScriptAsync(JsonSerializer, BackOfficePathGenerator, PackageManifestService)
|
||||
<script type="module" src="@backOfficeAssetsPath/apps/app/app.element.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="uui-font uui-text" style="margin: 0; padding: 0; overflow: hidden">
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
@using System.Globalization
|
||||
@using Microsoft.Extensions.Options
|
||||
@using Umbraco.Cms.Core.Configuration.Models
|
||||
@using Umbraco.Cms.Core.Hosting
|
||||
@using Umbraco.Cms.Core.Manifest
|
||||
@using Umbraco.Cms.Core.Serialization
|
||||
@using Umbraco.Cms.Web.Common.Hosting
|
||||
@using Umbraco.Extensions
|
||||
@inject IHostingEnvironment HostingEnvironment
|
||||
@inject IOptions<GlobalSettings> GlobalSettings
|
||||
@inject IStaticFilePathGenerator StaticFilePathGenerator
|
||||
@inject IBackOfficePathGenerator BackOfficePathGenerator
|
||||
@inject IPackageManifestService PackageManifestService
|
||||
@inject IJsonSerializer JsonSerializer
|
||||
|
||||
@{
|
||||
var backOfficePath = GlobalSettings.Value.GetBackOfficePath(HostingEnvironment);
|
||||
var backofficeAssetsPath = StaticFilePathGenerator.BackofficeAssetsPath;
|
||||
}
|
||||
|
||||
@functions {
|
||||
private static string ImportMapValue(string alias, string path) => $"\"{alias}\": \"{path}\"";
|
||||
var backOfficePath = BackOfficePathGenerator.BackOfficePath;
|
||||
var backOfficeAssetsPath = BackOfficePathGenerator.BackOfficeAssetsPath;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -23,126 +18,13 @@
|
||||
<head>
|
||||
<base href="@backOfficePath.EnsureEndsWith('/')" />
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="@backofficeAssetsPath/assets/favicon.svg" />
|
||||
<link rel="icon" type="image/svg+xml" href="@backOfficeAssetsPath/assets/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Umbraco</title>
|
||||
<link rel="stylesheet" href="@backofficeAssetsPath/css/umb-css.css" />
|
||||
<link rel="stylesheet" href="@backofficeAssetsPath/css/uui-css.css" />
|
||||
<script type="importmap">
|
||||
{
|
||||
"imports": {
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/app", backofficeAssetsPath + "/apps/app/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/backend-api", backofficeAssetsPath + "/external/backend-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/lit", backofficeAssetsPath + "/external/lit/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/lodash", backofficeAssetsPath + "/external/lodash/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/monaco-editor", backofficeAssetsPath + "/external/monaco-editor/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/openid", backofficeAssetsPath + "/external/openid/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/router-slot", backofficeAssetsPath + "/external/router-slot/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/rxjs", backofficeAssetsPath + "/external/rxjs/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/tinymce", backofficeAssetsPath + "/external/tinymce/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/uui", backofficeAssetsPath + "/external/uui/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/uuid", backofficeAssetsPath + "/external/uuid/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/dompurify", backofficeAssetsPath + "/external/dompurify/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/external/marked", backofficeAssetsPath + "/external/marked/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/class-api", backofficeAssetsPath + "/libs/class-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/context-api", backofficeAssetsPath + "/libs/context-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/controller-api", backofficeAssetsPath + "/libs/controller-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/element-api", backofficeAssetsPath + "/libs/element-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/extension-api", backofficeAssetsPath + "/libs/extension-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/localization-api", backofficeAssetsPath + "/libs/localization-api/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/observable-api", backofficeAssetsPath + "/libs/observable-api/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/auth", backofficeAssetsPath + "/shared/auth/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/event", backofficeAssetsPath + "/packages/core/event/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/lit-element", backofficeAssetsPath + "/packages/core/lit-element/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/icon", backofficeAssetsPath + "/shared/icon-registry/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/models", backofficeAssetsPath + "/shared/models/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/resources", backofficeAssetsPath + "/shared/resources/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/router", backofficeAssetsPath + "/shared/router/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/style", backofficeAssetsPath + "/shared/style/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/utils", backofficeAssetsPath + "/shared/utils/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/action", backofficeAssetsPath + "/packages/core/action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/collection", backofficeAssetsPath + "/packages/core/collection/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/components", backofficeAssetsPath + "/packages/core/components/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/content-type", backofficeAssetsPath + "/packages/core/content-type/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/culture", backofficeAssetsPath + "/packages/core/culture/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/data-type", backofficeAssetsPath + "/packages/core/data-type/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/debug", backofficeAssetsPath + "/packages/core/debug/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/entity-action", backofficeAssetsPath + "/packages/core/entity-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/entity-bulk-action", backofficeAssetsPath + "/packages/core/entity-bulk-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/extension-registry", backofficeAssetsPath + "/packages/core/extension-registry/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/server-file-system", backofficeAssetsPath + "/packages/core/server-file-system/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/id", backofficeAssetsPath + "/packages/core/id/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/localization", backofficeAssetsPath + "/packages/core/localization/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/menu", backofficeAssetsPath + "/packages/core/menu/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/modal", backofficeAssetsPath + "/packages/core/modal/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/notification", backofficeAssetsPath + "/packages/core/notification/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/picker-input", backofficeAssetsPath + "/packages/core/picker-input/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property", backofficeAssetsPath + "/packages/core/property/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property-action", backofficeAssetsPath + "/packages/core/property-action/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/property-editor", backofficeAssetsPath + "/packages/core/property-editor/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/section", backofficeAssetsPath + "/packages/core/section/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/sorter", backofficeAssetsPath + "/packages/core/sorter/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/store", backofficeAssetsPath + "/packages/core/store/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/themes", backofficeAssetsPath + "/packages/core/themes/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/tree", backofficeAssetsPath + "/packages/core/tree/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/variant", backofficeAssetsPath + "/packages/core/variant/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/workspace", backofficeAssetsPath + "/packages/core/workspace/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/repository", backofficeAssetsPath + "/packages/core/repository/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/temporary-file", backofficeAssetsPath + "/packages/core/temporary-file/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/block", backofficeAssetsPath + "/packages/block/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/audit-log", backofficeAssetsPath + "/packages/audit-log/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/dictionary", backofficeAssetsPath + "/packages/dictionary/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document", backofficeAssetsPath + "/packages/documents/documents/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document-blueprint", backofficeAssetsPath + "/packages/documents/document-blueprints/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/document-type", backofficeAssetsPath + "/packages/documents/document-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/media", backofficeAssetsPath + "/packages/media/media/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/media-type", backofficeAssetsPath + "/packages/media/media-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member", backofficeAssetsPath + "/packages/members/members/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member-group", backofficeAssetsPath + "/packages/members/member-groups/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/member-type", backofficeAssetsPath + "/packages/members/member-types/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/package", backofficeAssetsPath + "/packages/packages/package/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/language", backofficeAssetsPath + "/packages/language/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/dynamic-root", backofficeAssetsPath + "/packages/dynamic-root/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/log-viewer", backofficeAssetsPath + "/packages/packages/log-viewer/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/relation-types", backofficeAssetsPath + "/packages/settings/relation-types/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/relations", backofficeAssetsPath + "/packages/settings/relations/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/tags", backofficeAssetsPath + "/packages/tags/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/static-file", backofficeAssetsPath + "/packages/static-file/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/partial-view", backofficeAssetsPath + "/packages/templating/partial-views/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/stylesheet", backofficeAssetsPath + "/packages/templating/stylesheets/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/template", backofficeAssetsPath + "/packages/templating/templates/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user-group", backofficeAssetsPath + "/packages/user/user-group/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/current-user", backofficeAssetsPath + "/packages/user/current-user/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user", backofficeAssetsPath + "/packages/user/user/index.js")),
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/user-permission", backofficeAssetsPath + "/packages/user/user-permission/index.js")),
|
||||
|
||||
@Html.Raw(ImportMapValue("@umbraco-cms/backoffice/code-editor", backofficeAssetsPath + "/packages/templating/code-editor/index.js"))
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module" src="@backofficeAssetsPath/apps/app/app.element.js"></script>
|
||||
<link rel="stylesheet" href="@backOfficeAssetsPath/css/umb-css.css" />
|
||||
<link rel="stylesheet" href="@backOfficeAssetsPath/css/uui-css.css" />
|
||||
@await Html.BackOfficeImportMapScriptAsync(JsonSerializer, BackOfficePathGenerator, PackageManifestService)
|
||||
<script type="module" src="@backOfficeAssetsPath/apps/app/app.element.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="uui-font uui-text" style="margin: 0; padding: 0; overflow: hidden">
|
||||
|
||||
Reference in New Issue
Block a user