diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index f2c8269143..0a5589daa2 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -120,7 +120,6 @@ "./external/marked": "./dist-cms/external/marked/index.js", "./external/monaco-editor": "./dist-cms/external/monaco-editor/index.js", "./external/openid": "./dist-cms/external/openid/index.js", - "./external/router-slot": "./dist-cms/external/router-slot/index.js", "./external/rxjs": "./dist-cms/external/rxjs/index.js", "./external/tiptap": "./dist-cms/external/tiptap/index.js", "./external/uui": "./dist-cms/external/uui/index.js" diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts index c8af3838db..7280645d0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts @@ -1,14 +1,13 @@ import { UmbModalToken } from '../token/modal-token.js'; import type { UmbModalConfig, UmbModalType } from '../types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import type { UUIModalElement, UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import { type UmbDeepPartialObject, umbDeepMerge } from '@umbraco-cms/backoffice/utils'; import type { ElementLoaderProperty } from '@umbraco-cms/backoffice/extension-api'; -import { UMB_ROUTE_CONTEXT } from '@umbraco-cms/backoffice/router'; +import { UMB_ROUTE_CONTEXT, type IRouterSlot } from '@umbraco-cms/backoffice/router'; export interface UmbModalRejectReason { type: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.context.ts index 2bd561dbfb..c98ed9a764 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.context.ts @@ -1,12 +1,12 @@ import { umbGenerateRoutePathBuilder } from '../../generate-route-path-builder.function.js'; import type { UmbModalRouteRegistration } from '../../modal-registration/modal-route-registration.interface.js'; import type { UmbRoute } from './route.interface.js'; -import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbStringState, mergeObservables } from '@umbraco-cms/backoffice/observable-api'; +import type { IRouterSlot } from '../../router-slot/index.js'; const EmptyDiv = document.createElement('div'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.interface.ts index 71ffa95728..235df6c9f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/route.interface.ts @@ -1 +1 @@ -export type { IRoute as UmbRoute } from '@umbraco-cms/backoffice/external/router-slot'; +export type { IRoute as UmbRoute } from '../../router-slot/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/router-slot.element.ts index 291e8cd119..77f9d94d84 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/router-slot/router-slot.element.ts @@ -1,4 +1,3 @@ -import '@umbraco-cms/backoffice/external/router-slot'; import { UmbRoutePathAddendumResetContext } from '../../contexts/route-path-addendum-reset.context.js'; import { UmbRouterSlotInitEvent } from './router-slot-init.event.js'; import { UmbRouterSlotChangeEvent } from './router-slot-change.event.js'; @@ -6,7 +5,7 @@ import type { UmbRoute } from './route.interface.js'; import { UmbRouteContext } from './route.context.js'; import { css, html, type PropertyValueMap, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; +import type { IRouterSlot } from '../../router-slot/index.js'; /** * @element umb-router-slot diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts index c7199cc42d..440b23e3e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts @@ -1,5 +1,5 @@ -import { type UrlParametersRecord, umbUrlPatternToString } from '../utils/path/url-pattern-to-string.function.js'; -import { stripSlash } from '@umbraco-cms/backoffice/external/router-slot'; // This must only include the util to avoid side effects of registering the route element. +import { umbUrlPatternToString, type UrlParametersRecord } from '@umbraco-cms/backoffice/utils'; +import { stripSlash } from './router-slot/util.js'; /** * diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts index 73587fb136..de29580c1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts @@ -4,6 +4,6 @@ export * from './contexts/index.js'; export * from './encode-folder-name.function.js'; export * from './modal-registration/modal-route-registration.controller.js'; export * from './path-pattern.class.js'; -export * from '@umbraco-cms/backoffice/external/router-slot'; +export * from './router-slot/index.js'; export type * from './modal-registration/modal-route-registration.interface.js'; export type * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts index 23a7100013..b5e66c4a27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts @@ -1,4 +1,5 @@ import { UMB_ROUTE_CONTEXT, UMB_ROUTE_PATH_ADDENDUM_CONTEXT } from '../index.js'; +import type { IRouterSlot, Params } from '../router-slot/index.js'; import { encodeFolderName } from '../encode-folder-name.function.js'; import type { UmbModalRouteRegistration } from './modal-route-registration.interface.js'; import type { @@ -12,7 +13,6 @@ import type { UmbControllerAlias, UmbControllerHost } from '@umbraco-cms/backoff import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils'; -import type { IRouterSlot, Params } from '@umbraco-cms/backoffice/external/router-slot'; export type UmbModalRouteBuilder = (params: { [key: string]: string | number } | null) => string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts index 1f9b84f02c..df8b77a555 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts @@ -1,5 +1,5 @@ +import type { IRouterSlot, Params } from '../router-slot/index.js'; import type { UmbModalRouteBuilder } from './modal-route-registration.controller.js'; -import type { IRouterSlot, Params } from '@umbraco-cms/backoffice/external/router-slot'; import type { UmbModalContext, UmbModalManagerContext, UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbModalRouteRegistration< diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/LICENSE.md b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/LICENSE.md similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/LICENSE.md rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/LICENSE.md diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/config.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts similarity index 86% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/config.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts index e587ba2c4b..9d1a16a76d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts @@ -1,5 +1,6 @@ import type { PathMatch } from './model.js'; +/* eslint-disable local-rules/exported-string-constant-naming */ export const CATCH_ALL_WILDCARD: string = '**'; export const TRAVERSE_FLAG: string = '\\.\\.\\/'; export const PARAM_IDENTIFIER: RegExp = /:([^\\/]+)/g; diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/model.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts index 6872b18149..45e942b52e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts @@ -18,6 +18,7 @@ export type IRoutingInfo = { match: IRouteMatch; }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars export type CustomResolver = ( info: IRoutingInfo, ) => boolean | void | Promise | Promise; diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts similarity index 99% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts index 007c8d6c32..571a63b15d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts @@ -44,6 +44,7 @@ ensureAnchorHistory(); * @slot - Default content. * @event changestate - Dispatched when the router slot state changes. */ +// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name, local-rules/umb-class-prefix export class RouterSlot extends HTMLElement implements IRouterSlot { /** * Method to cancel navigation if changed. diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/anchor.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/anchor.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/anchor.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/anchor.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/events.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/events.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/events.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/events.ts index 1a5d1816f6..905df0c8ac 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/events.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/events.ts @@ -1,5 +1,5 @@ import { GLOBAL_ROUTER_EVENTS_TARGET } from '../config.js'; -import type { EventListenerSubscription, GlobalRouterEvent, IRoute, IRoutingInfo } from '../model.js'; +import type { EventListenerSubscription, GlobalRouterEvent, IRoutingInfo } from '../model.js'; /** * Dispatches a did change route event. diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/history.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/history.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/history.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/history.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/router.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/router.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/router.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/router.ts index 7c731abe59..a29de89ed4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/router.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/router.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-useless-escape */ import { CATCH_ALL_WILDCARD, DEFAULT_PATH_MATCH, PARAM_IDENTIFIER, TRAVERSE_FLAG } from '../config.js'; import type { IComponentRoute, @@ -131,6 +132,7 @@ export async function resolvePageComponent(route: IComponentRoute, info: IRoutin let cmp = route.component; if (cmp instanceof Function) { try { + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type cmp = (cmp as Function)(); } catch (err) { // The invocation most likely failed because the function is a class. @@ -188,7 +190,7 @@ export function isResolverRoute(route: IRoute): route is IResolverRoute { */ export function traverseRouterTree(slot: IRouterSlot): { tree: RouterTree; depth: number } { // Find the nodes from the route up to the root route - let routes: IRouterSlot[] = [slot]; + const routes: IRouterSlot[] = [slot]; while (slot.parent != null) { slot = slot.parent; routes.push(slot); diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/shadow.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/shadow.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/shadow.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/shadow.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/util/url.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/url.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/external/router-slot/util/url.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/util/url.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/types.ts index 6fcea8d459..9a52bbf13b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/types.ts @@ -1,5 +1,5 @@ -import type { IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/external/router-slot'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { IRoutingInfo, PageComponent } from './router-slot/index.js'; export interface UmbRouteEntry extends UmbApi { getPath?(): string; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 870cc277c4..1cb4055f7c 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -149,7 +149,6 @@ DON'T EDIT THIS FILE DIRECTLY. It is generated by /devops/tsconfig/index.js "@umbraco-cms/backoffice/external/marked": ["./src/external/marked/index.ts"], "@umbraco-cms/backoffice/external/monaco-editor": ["./src/external/monaco-editor/index.ts"], "@umbraco-cms/backoffice/external/openid": ["./src/external/openid/index.ts"], - "@umbraco-cms/backoffice/external/router-slot": ["./src/external/router-slot/index.ts"], "@umbraco-cms/backoffice/external/rxjs": ["./src/external/rxjs/index.ts"], "@umbraco-cms/backoffice/external/tiptap": ["./src/external/tiptap/index.ts"], "@umbraco-cms/backoffice/external/uui": ["./src/external/uui/index.ts"]