import { FieldSchema } from '@ephox/boulder'; import { Fun } from '@ephox/katamari'; import * as Behaviour from '../../api/behaviour/Behaviour'; import { Replacing } from '../../api/behaviour/Replacing'; import { SketchBehaviours } from '../../api/component/SketchBehaviours'; import * as PartType from '../../parts/PartType'; import type { CustomListDetail } from '../types/CustomListTypes'; const schema = Fun.constant([ FieldSchema.defaulted('shell', false), FieldSchema.required('makeItem'), FieldSchema.defaulted('setupItem', Fun.noop), SketchBehaviours.field('listBehaviours', [ Replacing ]) ]); const customListDetail = () => ({ behaviours: Behaviour.derive([ Replacing.config({ }) ]) }); const itemsPart = PartType.optional({ name: 'items', overrides: customListDetail }); const parts: () => PartType.PartTypeAdt[] = Fun.constant([ itemsPart ]); const name = Fun.constant('CustomList'); export { name, schema, parts };