2021-12-16 00:19:51 +01:00
|
|
|
import { ZeroPlugin, ZeroPluginOptions } from '../../core';
|
|
|
|
|
import { defineAsyncComponent } from 'vue';
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: "zero.countries",
|
|
|
|
|
|
|
|
|
|
install(app: ZeroPluginOptions)
|
|
|
|
|
{
|
2022-01-03 13:25:23 +01:00
|
|
|
app.vue.component('ui-mediapicker', defineAsyncComponent(() => import('./components/ui-mediapicker.vue')));
|
|
|
|
|
|
|
|
|
|
app.fieldType('media', defineAsyncComponent(() => import('./components/field-mediapicker.vue')));
|
|
|
|
|
app.fieldType('image', defineAsyncComponent(() => import('./components/field-imagepicker.vue')));
|
2021-12-16 00:19:51 +01:00
|
|
|
|
2021-12-16 13:55:09 +01:00
|
|
|
app.route({ name: 'media', path: '/media/:parentId?', component: () => import('./pages/overview/overview.vue'), props: true });
|
|
|
|
|
app.route({ name: 'media-edit', path: '/media/edit/:id?', component: () => import('./pages/detail/detail.vue'), props: true });
|
2021-12-16 00:19:51 +01:00
|
|
|
|
|
|
|
|
//app.schema('countries', () => import('./schemas/list'));
|
2021-12-19 01:16:02 +01:00
|
|
|
app.schema('media:edit', () => import('./schemas/editor'));
|
2021-12-16 00:19:51 +01:00
|
|
|
}
|
2022-01-03 13:25:23 +01:00
|
|
|
} as ZeroPlugin;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
declare module 'zero/schemas'
|
|
|
|
|
{
|
|
|
|
|
export interface ZeroEditorField
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Renders a media picker
|
|
|
|
|
* @param {MediaFieldOptions} [options] - Custom options
|
|
|
|
|
*/
|
|
|
|
|
media(options?: MediaFieldOptions): ZeroEditorField;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Renders an image picker
|
|
|
|
|
* @param {MediaBaseFieldOptions} [options] - Custom options
|
|
|
|
|
*/
|
|
|
|
|
image(options?: MediaBaseFieldOptions): ZeroEditorField;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type MediaTypeFor = 'all' | 'images' | 'videos' | 'documents';
|
|
|
|
|
|
|
|
|
|
export interface MediaBaseFieldOptions extends PickerFieldOptions
|
|
|
|
|
{
|
|
|
|
|
disableSelect?: boolean;
|
|
|
|
|
disableUpload?: boolean;
|
|
|
|
|
fileExtensions?: Array<string>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface MediaFieldOptions extends MediaBaseFieldOptions
|
|
|
|
|
{
|
|
|
|
|
for?: MediaTypeFor;
|
|
|
|
|
}
|
|
|
|
|
}
|