diff --git a/models/board/src/index.ts b/models/board/src/index.ts index ddac78affb..5174279256 100644 --- a/models/board/src/index.ts +++ b/models/board/src/index.ts @@ -223,7 +223,7 @@ export function createModel (builder: Builder): void { }) builder.mixin(board.class.CardCover, core.class.Class, view.mixin.AttributeEditor, { - editor: board.component.CardCoverEditor + inlineEditor: board.component.CardCoverEditor }) builder.createDoc( diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts index 8750aa1b08..5705b8b917 100644 --- a/models/contact/src/index.ts +++ b/models/contact/src/index.ts @@ -223,7 +223,7 @@ export function createModel (builder: Builder): void { }) builder.mixin(contact.class.Organization, core.class.Class, view.mixin.AttributeEditor, { - editor: contact.component.OrganizationEditor + inlineEditor: contact.component.OrganizationEditor }) builder.mixin(contact.class.Member, core.class.Class, view.mixin.CollectionEditor, { @@ -231,7 +231,7 @@ export function createModel (builder: Builder): void { }) builder.mixin(contact.class.Employee, core.class.Class, view.mixin.ArrayEditor, { - editor: contact.component.EmployeeArrayEditor + inlineEditor: contact.component.EmployeeArrayEditor }) builder.mixin(contact.class.Member, core.class.Class, view.mixin.AttributePresenter, { @@ -239,11 +239,11 @@ export function createModel (builder: Builder): void { }) builder.mixin(contact.class.Person, core.class.Class, view.mixin.AttributeEditor, { - editor: contact.component.PersonEditor + inlineEditor: contact.component.PersonEditor }) builder.mixin(contact.class.Employee, core.class.Class, view.mixin.AttributeEditor, { - editor: contact.component.PersonEditor + inlineEditor: contact.component.PersonEditor }) builder.mixin(contact.class.Channel, core.class.Class, view.mixin.AttributePresenter, { diff --git a/models/tags/src/index.ts b/models/tags/src/index.ts index 1bef22ad8a..0e8c0a7d35 100644 --- a/models/tags/src/index.ts +++ b/models/tags/src/index.ts @@ -88,11 +88,8 @@ export function createModel (builder: Builder): void { builder.createModel(TTagElement, TTagReference, TTagCategory) builder.mixin(tags.class.TagReference, core.class.Class, view.mixin.CollectionEditor, { - editor: tags.component.Tags - }) - - builder.mixin(tags.class.TagReference, core.class.Class, view.mixin.AttributeEditor, { - editor: tags.component.TagsAttributeEditor + editor: tags.component.Tags, + inlineEditor: tags.component.TagsAttributeEditor }) builder.mixin(tags.class.TagReference, core.class.Class, view.mixin.AttributePresenter, { diff --git a/models/task/src/index.ts b/models/task/src/index.ts index 7ce5697e11..495a950a3e 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -434,7 +434,7 @@ export function createModel (builder: Builder): void { ) builder.mixin(task.class.State, core.class.Class, view.mixin.AttributeEditor, { - editor: task.component.StateEditor + inlineEditor: task.component.StateEditor }) builder.mixin(task.class.State, core.class.Class, view.mixin.AttributePresenter, { @@ -446,7 +446,7 @@ export function createModel (builder: Builder): void { }) builder.mixin(task.class.DoneState, core.class.Class, view.mixin.AttributeEditor, { - editor: task.component.DoneStateEditor + inlineEditor: task.component.DoneStateEditor }) builder.mixin(task.class.DoneState, core.class.Class, view.mixin.AttributePresenter, { diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index 2af3329244..3f03258de5 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -419,7 +419,7 @@ export function createModel (builder: Builder): void { builder.mixin(tracker.class.Issue, core.class.Class, setting.mixin.Editable, {}) builder.mixin(tracker.class.TypeProjectStatus, core.class.Class, view.mixin.AttributeEditor, { - editor: tracker.component.ProjectStatusEditor + inlineEditor: tracker.component.ProjectStatusEditor }) builder.mixin(tracker.class.Issue, core.class.Class, notification.mixin.LastViewAttached, {}) diff --git a/models/view/src/index.ts b/models/view/src/index.ts index a6a7d805ac..61f1660210 100644 --- a/models/view/src/index.ts +++ b/models/view/src/index.ts @@ -78,7 +78,7 @@ export function classPresenter ( }) if (editor !== undefined) { builder.mixin(_class, core.class.Class, view.mixin.AttributeEditor, { - editor, + inlineEditor: editor, popup }) } @@ -102,7 +102,7 @@ export class TAttributeFilter extends TClass implements AttributeFilter { @Mixin(view.mixin.AttributeEditor, core.class.Class) export class TAttributeEditor extends TClass implements AttributeEditor { - editor!: AnyComponent + inlineEditor!: AnyComponent } @Mixin(view.mixin.CollectionPresenter, core.class.Class) @@ -113,11 +113,12 @@ export class TCollectionPresenter extends TClass implements CollectionPresenter @Mixin(view.mixin.CollectionEditor, core.class.Class) export class TCollectionEditor extends TClass implements CollectionEditor { editor!: AnyComponent + inlineEditor?: AnyComponent } @Mixin(view.mixin.ArrayEditor, core.class.Class) export class TArrayEditor extends TClass implements ArrayEditor { - editor!: AnyComponent + inlineEditor!: AnyComponent } @Mixin(view.mixin.AttributePresenter, core.class.Class) diff --git a/packages/presentation/src/components/AttributeBarEditor.svelte b/packages/presentation/src/components/AttributeBarEditor.svelte index a9dd3664eb..d6d13f300a 100644 --- a/packages/presentation/src/components/AttributeBarEditor.svelte +++ b/packages/presentation/src/components/AttributeBarEditor.svelte @@ -46,17 +46,18 @@ } const category = presenterClass.category let mixinRef = view.mixin.AttributeEditor + if (category === 'collection') { + mixinRef = view.mixin.CollectionEditor + } if (category === 'array') { mixinRef = view.mixin.ArrayEditor } - if (mixinRef !== undefined) { - const typeClass = hierarchy.getClass(presenterClass.attrClass) - const editorMixin = hierarchy.as(typeClass, mixinRef) - editor = getResource(editorMixin.editor).catch((cause) => { - console.error(`failed to find editor for ${_class} ${attribute} ${presenterClass.attrClass} cause: ${cause}`) - }) - } + const typeClass = hierarchy.getClass(presenterClass.attrClass) + const editorMixin = hierarchy.as(typeClass, mixinRef) + editor = getResource(editorMixin.inlineEditor).catch((cause) => { + console.error(`failed to find editor for ${_class} ${attribute} ${presenterClass.attrClass} cause: ${cause}`) + }) } $: update(attribute, presenterClass) diff --git a/packages/presentation/src/components/AttributeEditor.svelte b/packages/presentation/src/components/AttributeEditor.svelte index 41a3b23615..d7d77b1192 100644 --- a/packages/presentation/src/components/AttributeEditor.svelte +++ b/packages/presentation/src/components/AttributeEditor.svelte @@ -42,7 +42,7 @@ $: if (presenterClass !== undefined) { const typeClass = hierarchy.getClass(presenterClass.attrClass) const editorMixin = hierarchy.as(typeClass, view.mixin.AttributeEditor) - editor = getResource(editorMixin.editor) + editor = getResource(editorMixin.inlineEditor) } function onChange (value: any) { diff --git a/plugins/view/src/index.ts b/plugins/view/src/index.ts index 4c03d914f5..95a619d432 100644 --- a/plugins/view/src/index.ts +++ b/plugins/view/src/index.ts @@ -82,7 +82,7 @@ export interface AttributeFilter extends Class> { * @public */ export interface AttributeEditor extends Class { - editor: AnyComponent + inlineEditor: AnyComponent // If defined could be used for ShowEditor declarative actions. popup?: AnyComponent } @@ -92,13 +92,14 @@ export interface AttributeEditor extends Class { */ export interface CollectionEditor extends Class { editor: AnyComponent + inlineEditor?: AnyComponent } /** * @public */ export interface ArrayEditor extends Class { - editor: AnyComponent + inlineEditor: AnyComponent } /**