import { Fun } from '@ephox/katamari'; import * as Behaviour from '../api/behaviour/Behaviour'; import { Positioning } from '../api/behaviour/Positioning'; import * as AlloyEvents from '../api/events/AlloyEvents'; import * as NativeEvents from '../api/events/NativeEvents'; import * as PartType from './PartType'; const suffix = Fun.constant('sink'); const partType = Fun.constant(PartType.optional({ name: suffix(), overrides: Fun.constant({ dom: { tag: 'div' }, behaviours: Behaviour.derive([ Positioning.config({ // TODO: Make an internal sink also be able to be used with relative layouts useFixed: Fun.always }) ]), events: AlloyEvents.derive([ // Sinks should not let keydown or click propagate AlloyEvents.cutter(NativeEvents.keydown()), AlloyEvents.cutter(NativeEvents.mousedown()), AlloyEvents.cutter(NativeEvents.click()) ]) }) })); export { partType, suffix };