@idraw/types
Advanced tools
Comparing version 0.4.0-beta.12 to 0.4.0-beta.13
{ | ||
"name": "@idraw/types", | ||
"version": "0.4.0-beta.12", | ||
"version": "0.4.0-beta.13", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "src/index.ts", |
@@ -19,1 +19,2 @@ export * from './lib/util'; | ||
export * from './lib/config'; | ||
export * from './lib/modify'; |
import type { Element, ElementPosition } from './element'; | ||
import type { RecursivePartial } from './util'; | ||
export type ModifyType = 'update-element' | 'add-element' | 'delete-element' | 'move-element'; | ||
export type ModifyType = 'updateElement' | 'addElement' | 'deleteElement' | 'moveElement'; | ||
export type ModifyElement = Omit<RecursivePartial<Element>, 'uuid'> & { uuid: string }; | ||
export type ModifiedElement = Omit<RecursivePartial<Element>, 'uuid'>; | ||
export interface ModifyDataMap { | ||
'update-element': { position: ElementPosition; modifyElement: ModifyElement }; | ||
'add-element': { position: ElementPosition; element: Element }; | ||
'delete-element': { position: ElementPosition; element: Element }; | ||
'move-element': { from: ElementPosition; to: ElementPosition }; | ||
export type ModifiedTargetElement = ModifiedElement & { uuid: string }; | ||
export interface ModifyContentMap { | ||
updateElement: { position: ElementPosition; beforeModifiedElement: ModifiedElement; afterModifiedElement: ModifiedElement }; | ||
addElement: { position: ElementPosition; element: Element }; | ||
deleteElement: { position: ElementPosition; element: Element }; | ||
moveElement: { from: ElementPosition; to: ElementPosition }; | ||
} | ||
export interface ModifyItem<T extends ModifyType> { | ||
export interface ModifyOptions<T extends ModifyType> { | ||
type: T; | ||
data: ModifyDataMap[T]; | ||
time: number; | ||
content: ModifyContentMap[T]; | ||
} | ||
export interface ModifyRecordMap { | ||
updateElement: { | ||
type: 'updateElement'; | ||
time: number; | ||
} & Required<ModifyContentMap['updateElement']>; | ||
addElement: { | ||
type: 'addElement'; | ||
time: number; | ||
} & Required<ModifyContentMap['addElement']>; | ||
deleteElement: { | ||
type: 'deleteElement'; | ||
time: number; | ||
} & Required<ModifyContentMap['deleteElement']>; | ||
moveElement: { | ||
type: 'moveElement'; | ||
time: number; | ||
afterModifiedFrom: ElementPosition; | ||
afterModifiedTo: ElementPosition; | ||
} & Required<ModifyContentMap['moveElement']>; | ||
} | ||
export type ModifyRecord<T extends ModifyType = ModifyType> = ModifyRecordMap[T]; |
25533
700