-
Notifications
You must be signed in to change notification settings - Fork 1.1k
How to create a Viewlet
Andrey Platov edited this page Sep 6, 2021
·
3 revisions
Для создание Viewlet нужно создать его дескриптор в модели, который предоставляет название Viewlet, иконку, и компонент его реализующий, например:
builder.createDoc(view.class.ViewletDescriptor, core.space.Model, {
label: 'Table' as IntlString,
icon: view.icon.Table,
component: view.component.TableView
}, view.viewlet.Table)
Компонент, реализующий Viewlet должен иметь следующие свойства:
export let _class: Ref<Class<Doc>>
export let space: Ref<Space>
export let open: AnyComponent
export let options: FindOptions<Doc> | undefined
export let config: string[]
Для использования существующего Viewlet в приложении, надо создать объект класса view.class.Viewlet
. Например, чтобы объекты recruit.class.Candidate
показывались в таблице, нужно добавить соответствующее описание в модель:
builder.createDoc(view.class.Viewlet, core.space.Model, {
attachTo: recruit.class.Candidate,
descriptor: view.viewlet.Table,
open: recruit.component.EditCandidate,
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
options: {
lookup: {
resume: chunter.class.Attachment
}
} as FindOptions<Doc>, // TODO: fix
config: ['', 'city', '$lookup.resume', 'channels']
})