linting correction

This commit is contained in:
Niels Lyngsø
2024-08-19 15:55:07 +02:00
parent 54c11e1845
commit 75f5eeddea
4 changed files with 60 additions and 56 deletions

View File

@@ -1,24 +1,22 @@
import { ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry';
import type { ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry';
const workspace: ManifestWorkspaceView = {
type: 'workspaceView',
alias: 'Example.WorkspaceView.EntityContentTypeCondition',
name: "Example Workspace View With Entity Content Type Condition",
element : () => import('./workspace-view.element.js'),
meta: {
icon : 'icon-bus',
label : 'Conditional',
pathname : 'conditional'
},
conditions : [
{
alias : 'Umb.Condition.WorkspaceContentTypeAlias',
type: 'workspaceView',
alias: 'Example.WorkspaceView.EntityContentTypeCondition',
name: 'Example Workspace View With Entity Content Type Condition',
element: () => import('./workspace-view.element.js'),
meta: {
icon: 'icon-bus',
label: 'Conditional',
pathname: 'conditional',
},
conditions: [
{
alias: 'Umb.Condition.WorkspaceContentTypeAlias',
//match : 'blogPost'
oneOf : ['blogPost','mediaType1']
}
]
oneOf: ['blogPost', 'mediaType1'],
},
],
};
export const manifests = [
workspace
]
export const manifests = [workspace];

View File

@@ -1,20 +1,19 @@
import { css, html } from 'lit';
import { customElement } from 'lit/decorators.js';
import { html, customElement } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-example-entity-content-type-condition')
export class UmbWorkspaceViewElement extends UmbLitElement {
render() {
return html`<p>This is a conditional element that is only shown in workspaces based on it's entities content type.</p>`;
}
static styles = [css``];
override render() {
return html`<p>
This is a conditional element that is only shown in workspaces based on it's entities content type.
</p>`;
}
}
export default UmbWorkspaceViewElement
export default UmbWorkspaceViewElement;
declare global {
interface HTMLElementTagNameMap {
'umb-example-entity-content-type-condition': UmbWorkspaceViewElement;
}
}
interface HTMLElementTagNameMap {
'umb-example-entity-content-type-condition': UmbWorkspaceViewElement;
}
}

View File

@@ -11,23 +11,33 @@ import type {
/**
* Condition to apply workspace extension based on a content type alias
*/
export class UmbWorkspaceContentTypeAliasCondition extends UmbConditionBase<WorkspaceContentTypeAliasConditionConfig> implements UmbExtensionCondition {
constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<WorkspaceContentTypeAliasConditionConfig>) {
export class UmbWorkspaceContentTypeAliasCondition
extends UmbConditionBase<WorkspaceContentTypeAliasConditionConfig>
implements UmbExtensionCondition
{
constructor(
host: UmbControllerHost,
args: UmbConditionControllerArguments<WorkspaceContentTypeAliasConditionConfig>,
) {
super(host, args);
let permissionCheck: ((contentTypeAliases: string[]) => boolean) | undefined = undefined;
if (this.config.match) {
permissionCheck = (contentTypeAliases: string[]) => contentTypeAliases.includes(this.config.match!);
} else if (this.config.oneOf) {
permissionCheck = (contentTypeAliases: string[]) => contentTypeAliases.some(item => this.config.oneOf!.includes(item));
permissionCheck = (contentTypeAliases: string[]) =>
contentTypeAliases.some((item) => this.config.oneOf!.includes(item));
}
if (permissionCheck !== undefined) {
this.consumeContext(UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT, (context) => {
this.observe(context.structure.contentTypeAliases,(contentTypeAliases) => {
this.permitted = contentTypeAliases ? permissionCheck(contentTypeAliases) : false;
},
'workspaceContentTypeAliasConditionObserver');
this.observe(
context.structure.contentTypeAliases,
(contentTypeAliases) => {
this.permitted = contentTypeAliases ? permissionCheck(contentTypeAliases) : false;
},
'workspaceContentTypeAliasConditionObserver',
);
});
} else {
throw new Error(
@@ -37,22 +47,21 @@ export class UmbWorkspaceContentTypeAliasCondition extends UmbConditionBase<Work
}
}
export type WorkspaceContentTypeAliasConditionConfig = UmbConditionConfigBase<'Umb.Condition.WorkspaceContentTypeAlias'> & {
/**
* Define a content type alias in which workspace this extension should be available
*
* @example
* Depends on implementation, but i.e. "article", "image", "blockPage"
*/
match?: string;
/**
* Define one or more content type aliases in which workspace this extension should be available
*
* @example
* ["article", "image", "blockPage"]
*/
oneOf?: Array<string>;
};
export type WorkspaceContentTypeAliasConditionConfig =
UmbConditionConfigBase<'Umb.Condition.WorkspaceContentTypeAlias'> & {
/**
* Define a content type alias in which workspace this extension should be available
* @example
* Depends on implementation, but i.e. "article", "image", "blockPage"
*/
match?: string;
/**
* Define one or more content type aliases in which workspace this extension should be available
* @example
* ["article", "image", "blockPage"]
*/
oneOf?: Array<string>;
};
export const manifest: ManifestCondition = {
type: 'condition',

View File

@@ -6,7 +6,6 @@ export * from './routable-workspace.context-token.js';
export * from './submittable-workspace.context-token.js';
export * from './variant-workspace.context-token.js';
export * from './workspace.context-token.js';
export * from './entity-with-content-type-workspace-context-token.js';
export type * from './collection-workspace-context.interface.js';
export type * from './entity-workspace-context.interface.js';
export type * from './invariant-dataset-workspace-context.interface.js';
@@ -16,4 +15,3 @@ export type * from './routable-workspace-context.interface.js';
export type * from './submittable-workspace-context.interface.js';
export type * from './variant-dataset-workspace-context.interface.js';
export type * from './workspace-context.interface.js';
export type * from './entity-with-content-type-workspace-context.interface.js';