Files
mixtape/zero.Backoffice.UI/app/editor/editor.ts
T

51 lines
1.1 KiB
TypeScript

import { Component } from "vue";
import { ZeroEditorField, ZeroSchema, ZeroEditorDisplay } from "zero/schemas";
import { ZeroEditorCanvas } from "./editor-canvas";
export class ZeroEditor extends ZeroEditorCanvas implements ZeroSchema
{
alias: string;
resourcePrefix?: string;
system: boolean = false;
display: ZeroEditorDisplay = 'tabs';
onLabelCreate = (field: ZeroEditorField): string =>
{
return field.configuration.label || (this.resourcePrefix ? this.resourcePrefix + field.path : '@nolabel[' + field.path + ']');
};
onDescriptionCreate = (field: ZeroEditorField): string | null =>
{
return field.configuration.description || (this.resourcePrefix ? this.resourcePrefix + field.path + '_text' : '@nodesc[' + field.path + ']');
};
constructor(alias: string)
{
super();
this.alias = alias;
}
}
export class ZeroModuleEditor extends ZeroEditor
{
preview: ZeroModuleEditorPreview;
constructor(alias: string)
{
super(alias);
this.preview = {
hideLabel: false
} as ZeroModuleEditorPreview;
}
}
export interface ZeroModuleEditorPreview
{
hideLabel?: boolean;
}