import {
	type Metadata,
	type ModuleLibrary,
} from '@divi/types';
import React from 'react';
import { ListingCalendarEdit } from './edit';
import metadata from './module.json';
import { SettingsAdvanced } from './settings-advanced';
import { SettingsContent } from './settings-content';
import { SettingsDesign } from './settings-design';
import { ListingCalendarAttrs } from './types';
import { placeholderContent } from './placeholder-content';
import { generateModuleAttributes } from '../../utils';

import './module.scss';

metadata.attributes = { ...metadata.attributes, ...generateModuleAttributes( 'listingCalendar' ) }
console.log(metadata.attributes)

export const listingCalendar: ModuleLibrary.Module.RegisterDefinition<ListingCalendarAttrs> = {
	// Imported json has no inferred type hence type-cast is necessary.
	metadata: metadata as Metadata.Values<ListingCalendarAttrs>,
	placeholderContent,
	settings: {
		content:  SettingsContent,
		design:   SettingsDesign,
		advanced: SettingsAdvanced,
	},
	renderers: {
		edit: ListingCalendarEdit,
	},
};
