diff --git a/plugins/view-resources/src/components/list/List.svelte b/plugins/view-resources/src/components/list/List.svelte
index 2017ad15b9..09267efb2b 100644
--- a/plugins/view-resources/src/components/list/List.svelte
+++ b/plugins/view-resources/src/components/list/List.svelte
@@ -16,7 +16,7 @@
import { Class, Doc, DocumentQuery, FindOptions, Ref, Space } from '@hcengineering/core'
import { IntlString, getResource } from '@hcengineering/platform'
import { createQuery, getClient } from '@hcengineering/presentation'
- import { AnyComponent } from '@hcengineering/ui'
+ import { AnyComponent, AnySvelteComponent } from '@hcengineering/ui'
import { BuildModelKey, ViewOptionModel, ViewOptions, ViewQueryOption } from '@hcengineering/view'
import { createEventDispatcher } from 'svelte'
import { buildConfigLookup } from '../../utils'
@@ -29,7 +29,8 @@
export let baseMenuClass: Ref> | undefined = undefined
export let config: (string | BuildModelKey)[]
export let selectedObjectIds: Doc[] = []
- export let createItemDialog: AnyComponent | undefined = undefined
+ export let createItemDialog: AnyComponent | AnySvelteComponent | undefined = undefined
+ export let createItemDialogProps: Record | undefined = undefined
export let createItemLabel: IntlString | undefined = undefined
export let viewOptionsConfig: ViewOptionModel[] | undefined = undefined
export let viewOptions: ViewOptions
@@ -128,6 +129,7 @@
level={0}
groupPersistKey={''}
{createItemDialog}
+ {createItemDialogProps}
{createItemLabel}
on:check
on:uncheckAll={uncheckAll}
diff --git a/plugins/view-resources/src/components/list/ListCategories.svelte b/plugins/view-resources/src/components/list/ListCategories.svelte
index a20482177f..73c4e13694 100644
--- a/plugins/view-resources/src/components/list/ListCategories.svelte
+++ b/plugins/view-resources/src/components/list/ListCategories.svelte
@@ -16,18 +16,18 @@
import { CategoryType, Class, Doc, DocumentQuery, generateId, Lookup, Ref, Space } from '@hcengineering/core'
import { getResource, IntlString } from '@hcengineering/platform'
import { getClient, statusStore } from '@hcengineering/presentation'
- import { AnyComponent } from '@hcengineering/ui'
+ import { AnyComponent, AnySvelteComponent } from '@hcengineering/ui'
import { AttributeModel, BuildModelKey, CategoryOption, ViewOptionModel, ViewOptions } from '@hcengineering/view'
import { createEventDispatcher, onDestroy, SvelteComponentTyped } from 'svelte'
import {
buildModel,
concatCategories,
+ fixedWidthStore,
getAdditionalHeader,
getCategories,
getGroupByValues,
getPresenter,
- groupBy,
- fixedWidthStore
+ groupBy
} from '../../utils'
import { CategoryQuery, noCategory } from '../../viewOptions'
import ListCategory from './ListCategory.svelte'
@@ -40,7 +40,8 @@
export let baseMenuClass: Ref> | undefined
export let config: (string | BuildModelKey)[]
export let selectedObjectIds: Doc[] = []
- export let createItemDialog: AnyComponent | undefined
+ export let createItemDialog: AnyComponent | AnySvelteComponent | undefined
+ export let createItemDialogProps: Record | undefined
export let createItemLabel: IntlString | undefined
export let viewOptions: ViewOptions
export let flatHeaders = false
@@ -306,6 +307,7 @@
{items}
{newObjectProps}
{createItemDialog}
+ {createItemDialogProps}
{createItemLabel}
{viewOptionsConfig}
on:check
diff --git a/plugins/view-resources/src/components/list/ListCategory.svelte b/plugins/view-resources/src/components/list/ListCategory.svelte
index 6f402d0d1f..c12b09102d 100644
--- a/plugins/view-resources/src/components/list/ListCategory.svelte
+++ b/plugins/view-resources/src/components/list/ListCategory.svelte
@@ -19,6 +19,7 @@
import { DocWithRank, calcRank } from '@hcengineering/task'
import {
AnyComponent,
+ AnySvelteComponent,
ExpandCollapse,
Spinner,
getEventPositionElement,
@@ -42,7 +43,8 @@
export let space: Ref | undefined
export let baseMenuClass: Ref> | undefined
export let items: Doc[]
- export let createItemDialog: AnyComponent | undefined
+ export let createItemDialog: AnyComponent | AnySvelteComponent | undefined
+ export let createItemDialogProps: Record | undefined
export let createItemLabel: IntlString | undefined
export let selectedObjectIds: Doc[]
export let itemModels: AttributeModel[]
@@ -367,6 +369,7 @@
{items}
{headerComponent}
{createItemDialog}
+ {createItemDialogProps}
{createItemLabel}
{extraHeaders}
newObjectProps={_newObjectProps}
diff --git a/plugins/view-resources/src/components/list/ListHeader.svelte b/plugins/view-resources/src/components/list/ListHeader.svelte
index 81b31dc2da..955b8fd1d0 100644
--- a/plugins/view-resources/src/components/list/ListHeader.svelte
+++ b/plugins/view-resources/src/components/list/ListHeader.svelte
@@ -18,6 +18,7 @@
import ui, {
ActionIcon,
AnyComponent,
+ AnySvelteComponent,
Button,
ColorDefinition,
Component,
@@ -49,7 +50,8 @@
export let lastCat = false
export let level: number
- export let createItemDialog: AnyComponent | undefined
+ export let createItemDialog: AnyComponent | AnySvelteComponent | undefined
+ export let createItemDialogProps: Record | undefined
export let createItemLabel: IntlString | undefined
export let extraHeaders: AnyComponent[] | undefined
export let props: Record = {}
@@ -71,7 +73,11 @@
const handleCreateItem = (event: MouseEvent) => {
if (createItemDialog === undefined) return
- showPopup(createItemDialog, newObjectProps(items[0]), eventToHTMLElement(event))
+ showPopup(
+ createItemDialog,
+ { ...(createItemDialogProps ?? {}), ...newObjectProps(items[0]) },
+ eventToHTMLElement(event)
+ )
}
let mouseOver = false