diff --git a/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte b/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte
index 89b3ef61ff..8d66dc9579 100644
--- a/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte
+++ b/plugins/setting-resources/src/components/typeEditors/ArrayEditor.svelte
@@ -37,9 +37,10 @@
.map((p) => hierarchy.getClass(p))
.filter((p) => {
return (
- hierarchy.hasMixin(p, view.mixin.ArrayEditor) &&
- hierarchy.hasMixin(p, view.mixin.ObjectEditor) &&
- p.label !== undefined
+ (hierarchy.hasMixin(p, view.mixin.ArrayEditor) &&
+ hierarchy.hasMixin(p, view.mixin.ObjectEditor) &&
+ p.label !== undefined) ||
+ p._id === core.class.RefTo
)
})
diff --git a/plugins/view-resources/src/components/ArrayEditor.svelte b/plugins/view-resources/src/components/ArrayEditor.svelte
new file mode 100644
index 0000000000..2e35be804e
--- /dev/null
+++ b/plugins/view-resources/src/components/ArrayEditor.svelte
@@ -0,0 +1,52 @@
+
+
+
diff --git a/plugins/view-resources/src/components/ArrayEditorPopup.svelte b/plugins/view-resources/src/components/ArrayEditorPopup.svelte
new file mode 100644
index 0000000000..49126c7582
--- /dev/null
+++ b/plugins/view-resources/src/components/ArrayEditorPopup.svelte
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ {item.name ?? item.label}
+
+
+
+
diff --git a/plugins/view-resources/src/index.ts b/plugins/view-resources/src/index.ts
index 4543fd9df8..f766ae6240 100644
--- a/plugins/view-resources/src/index.ts
+++ b/plugins/view-resources/src/index.ts
@@ -18,6 +18,7 @@ import { type Resources } from '@hcengineering/platform'
import { getEventPopupPositionElement, type PopupAlignment } from '@hcengineering/ui'
import { actionImpl } from './actionImpl'
import ActionsPopup from './components/ActionsPopup.svelte'
+import ArrayEditor from './components/ArrayEditor.svelte'
import BooleanEditor from './components/BooleanEditor.svelte'
import BooleanPresenter from './components/BooleanPresenter.svelte'
import BooleanTruePresenter from './components/BooleanTruePresenter.svelte'
@@ -203,6 +204,7 @@ export default async (): Promise
=> ({
actionImpl,
component: {
ArrayFilter,
+ ArrayEditor,
ClassPresenter,
ClassRefPresenter,
ObjectFilter,
diff --git a/plugins/view-resources/src/plugin.ts b/plugins/view-resources/src/plugin.ts
index 54c6041a6d..1f2609316d 100644
--- a/plugins/view-resources/src/plugin.ts
+++ b/plugins/view-resources/src/plugin.ts
@@ -28,7 +28,8 @@ export default mergeIds(viewId, view, {
StringFilter: '' as AnyComponent,
TimestampFilter: '' as AnyComponent,
FilterTypePopup: '' as AnyComponent,
- ProxyPresenter: '' as AnyComponent
+ ProxyPresenter: '' as AnyComponent,
+ ArrayEditor: '' as AnyComponent
},
string: {
Contains: '' as IntlString,