license type Writeable < T > = { - readonly [ P in keyof T ] - ? : T [ P ] ; } ; /**
 * Extended CSSStyleDeclaration that includes a couple of drag-related
 * properties that aren't in the built-in TS typings.
 */ interface DragCSSStyleDeclaration extends CSSStyleDeclaration { webkitUserDrag : string ; MozUserSelect : string ; } docs-private export function extendStyles ( dest , source ) { for ( let key in source ) { if ( source . hasOwnProperty ( key ) ) { dest [ key as keyof CSSStyleDeclaration ] = source [ key as keyof CSSStyleDeclaration ] ; } } return dest ; } param element param enable docs-private export function toggleNativeDragInteractions ( element , enable ) { const userSelect = enable ? '' : 'none' ; extendStyles ( element . style , { touchAction : enable ? '' : 'none' , webkitUserDrag : enable ? '' : 'none' , webkitTapHighlightColor : enable ? '' : 'transparent' , userSelect : userSelect , msUserSelect : userSelect , webkitUserSelect : userSelect , MozUserSelect : userSelect } ) ; }