Files
mixtape/zero.Backoffice.UI/app/modules/pages/plugin.ts
T

55 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-12-20 00:39:39 +01:00
import { ZeroPlugin, ZeroPluginOptions } from '../../core';
import { defineAsyncComponent } from 'vue';
export default {
name: "zero.spaces",
install(app: ZeroPluginOptions)
{
2022-01-12 17:15:05 +01:00
app.schema('pages:zero.folder', () => import('./schemas/folder-editor'));
app.linkArea('zero.pages', '@zero.config.linkareas.pages', () => import('./partials/linkpicker.vue'));
2021-12-20 00:39:39 +01:00
2022-01-12 14:11:41 +01:00
app.route({
name: 'pages',
path: '/pages',
component: () => import('./pages.vue'),
children: [
{
name: 'pages-edit',
path: 'edit/:id?',
props: true,
component: () => import('./page.vue')
},
{
name: 'pages-create',
path: 'create/:flavor/:parent?',
props: true,
component: () => import('./page.vue')
},
]
});
2022-01-12 17:15:05 +01:00
2022-01-12 23:52:37 +01:00
app.vue.component('ui-pagepicker', defineAsyncComponent(() => import('./picker/ui-pagepicker.vue')));
app.fieldType('pagePicker', defineAsyncComponent(() => import('./picker/field-pagepicker.vue')));
2021-12-20 00:39:39 +01:00
}
2022-01-12 23:52:37 +01:00
} as ZeroPlugin;
declare module 'zero/schemas'
{
export interface ZeroEditorField
{
/**
* Renders a page picker
* @param {PagePickerFieldOptions} [options] - Custom options
*/
pagePicker(options?: PagePickerFieldOptions): ZeroEditorField;
}
export interface PagePickerFieldOptions extends PickerFieldOptions
{
rootId?: string | ((model: any) => string);
disabledIds?: string[] | ((model: any) => string[]);
}
}