@leafer-in/interface 1.0.0-rc.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-in/interface",
3
- "version": "1.0.0-rc.9",
3
+ "version": "1.0.1",
4
4
  "description": "@leafer-in/interface",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "leaferjs"
26
26
  ],
27
27
  "dependencies": {
28
- "@leafer-ui/interface": "1.0.0-rc.9",
29
- "@leafer/interface": "1.0.0-rc.9"
28
+ "@leafer-ui/interface": "1.0.1",
29
+ "@leafer/interface": "1.0.1"
30
30
  }
31
31
  }
@@ -1,29 +1,7 @@
1
- import { IGroup, IRect, IBoundsData, IKeyEvent } from '@leafer-ui/interface'
2
- import { IEditor } from '@leafer-in/interface'
3
- import { IEditPoint } from './IEditPoint'
4
-
5
- export interface IEditBox extends IGroup {
1
+ import { IEditBoxBase } from '@leafer-ui/interface'
2
+ import { IEditor } from './IEditor'
3
+ export interface IEditBox extends IEditBoxBase {
6
4
 
7
5
  editor: IEditor
8
- dragging?: boolean
9
-
10
- circle: IEditPoint
11
- rect: IRect
12
-
13
- buttons: IGroup
14
-
15
- resizePoints: IEditPoint[]
16
- rotatePoints: IEditPoint[]
17
- resizeLines: IEditPoint[]
18
-
19
- readonly flipped: boolean
20
- readonly flippedX: boolean
21
- readonly flippedY: boolean
22
- readonly flippedOne: boolean
23
-
24
- enterPoint: IEditPoint
25
-
26
- update(bounds: IBoundsData): void
27
- onArrow(e: IKeyEvent): void
28
6
 
29
7
  }
@@ -1,4 +1,4 @@
1
- import { IGroup, IBounds } from '@leafer-ui/interface'
1
+ import { IGroup, IUI, IBounds, IPointerEvent } from '@leafer-ui/interface'
2
2
 
3
3
  import { IStroker } from './IStroker'
4
4
  import { ISelectArea } from './ISelectArea'
@@ -16,5 +16,7 @@ export interface IEditSelect extends IGroup {
16
16
  selectArea: ISelectArea
17
17
  bounds: IBounds
18
18
 
19
+ findUI(e: IPointerEvent): IUI
20
+ findDeepOne(e: IPointerEvent): IUI
19
21
  update(): void
20
22
  }
@@ -1,42 +1,62 @@
1
- import { IUI, IPointData, IAround, IDragEvent, IEvent, IEventListenerId, ILeafList, IMatrixData, IEditorBase } from '@leafer-ui/interface'
1
+ import { IUI, IPointData, IAround, IDragEvent, IEvent, IEventListenerId, IMatrixData, IEditorBase, IGroup, IObject, ILayoutBoundsData } from '@leafer-ui/interface'
2
+
2
3
  import { IEditBox } from './IEditBox'
3
4
  import { IEditSelect } from './IEditSelect'
4
5
 
5
6
 
6
7
  export interface IEditor extends IEditorBase {
7
- leafList: ILeafList
8
-
9
8
  simulateTarget: IUI
10
9
 
11
10
  selector: IEditSelect
12
11
  editBox: IEditBox
13
- editTool: IEditTool
12
+ editTool?: IEditTool
13
+ innerEditor?: IInnerEditor
14
14
 
15
+ dragStartPoint: IPointData
16
+ dragStartBounds: ILayoutBoundsData
15
17
  targetEventIds: IEventListenerId[]
16
18
 
19
+ checkOpenedGroups(): void
20
+
17
21
  listenTargetEvents(): void
18
22
  removeTargetEvents(): void
19
23
  }
20
24
 
21
- export interface IEditTool {
22
- tag: string
25
+ export interface IEditTool extends IInnerEditor {
26
+ // 操作
23
27
  onMove(e: IEditorMoveEvent): void
24
28
  onScale(e: IEditorScaleEvent): void
25
29
  onScaleWithDrag?(e: IEditorScaleEvent): void
26
30
  onRotate(e: IEditorRotateEvent): void
27
31
  onSkew(e: IEditorSkewEvent): void
28
- update(editor: IEditor): void
29
32
  }
30
33
 
31
- export enum IDirection8 {
32
- topLeft,
33
- top,
34
- topRight,
35
- right,
36
- bottomRight,
37
- bottom,
38
- bottomLeft,
39
- left
34
+ export interface IInnerEditor {
35
+ tag: string
36
+ editTarget: IUI
37
+ config: IObject
38
+
39
+ editor: IEditor
40
+ editBox: IEditBox
41
+ view: IGroup
42
+
43
+ eventIds: IEventListenerId[]
44
+
45
+ onCreate(): void
46
+ create(): void
47
+
48
+ // 状态
49
+ onLoad(): void
50
+ load(): void
51
+
52
+ onLoad(): void
53
+ unload(): void
54
+
55
+ onUpdate(): void
56
+ update(): void
57
+
58
+ onDestroy(): void
59
+ destroy(): void
40
60
  }
41
61
 
42
62
  export interface IEditorEvent extends IEvent {
@@ -45,10 +65,23 @@ export interface IEditorEvent extends IEvent {
45
65
 
46
66
  readonly value?: IUI | IUI[]
47
67
  readonly oldValue?: IUI | IUI[]
68
+ readonly list?: IUI[]
69
+ readonly oldList?: IUI[]
48
70
 
49
71
  readonly worldOrigin?: IPointData
50
72
  readonly origin?: IPointData
51
73
  }
74
+
75
+ export interface IInnerEditorEvent extends IEditorEvent {
76
+ editTarget: IUI
77
+ innerEditor: IInnerEditor
78
+ }
79
+
80
+ export interface IEditorGroupEvent extends IEditorEvent {
81
+ editTarget: IGroup
82
+ }
83
+
84
+
52
85
  export interface IEditorMoveEvent extends IEditorEvent {
53
86
  readonly moveX: number
54
87
  readonly moveY: number
@@ -60,8 +93,8 @@ export interface IEditorScaleEvent extends IEditorEvent {
60
93
  readonly scaleY?: number
61
94
  transform?: IMatrixData
62
95
 
63
- readonly direction?: IDirection8
64
- readonly lockRatio?: boolean
96
+ readonly direction?: number
97
+ readonly lockRatio?: boolean | 'corner'
65
98
  readonly around?: IAround
66
99
 
67
100
  drag?: IDragEvent
@@ -69,6 +102,7 @@ export interface IEditorScaleEvent extends IEditorEvent {
69
102
 
70
103
  export interface IEditorRotateEvent extends IEditorEvent {
71
104
  // rotateOf(origin, rotation)
105
+ transform?: IMatrixData
72
106
  readonly rotation?: number
73
107
  }
74
108
 
@@ -0,0 +1,36 @@
1
+ import { IBoundsData, IGap, IFlowAlign, IAxisAlign, IFlowWrap } from '@leafer-ui/interface'
2
+
3
+ export interface IFlowWrapDrawData extends IGapBoundsData {
4
+ list: IFlowDrawData[]
5
+ }
6
+
7
+ export interface IFlowDrawData extends IGapBoundsData {
8
+ start: number
9
+ grow: number
10
+ hasRangeSize?: boolean
11
+ }
12
+
13
+ export interface IGapBoundsData extends IBoundsData {
14
+ count: number
15
+ gap: number
16
+ }
17
+
18
+ export interface IFlowAlignToAxisAlignMap {
19
+ [name: string]: IAxisAlign
20
+ }
21
+
22
+ export interface IFlowParseData {
23
+ complex: boolean
24
+ wrap: IFlowWrap
25
+
26
+ xGap: IGap
27
+ yGap: IGap
28
+ isAutoXGap: boolean
29
+ isAutoYGap: boolean
30
+ isFitXGap: boolean
31
+ isFitYGap: boolean
32
+
33
+ contentAlign: IFlowAlign
34
+ rowXAlign: IAxisAlign
35
+ rowYAlign: IAxisAlign
36
+ }
package/src/index.ts CHANGED
@@ -1,13 +1,20 @@
1
1
  export * from '@leafer-ui/interface'
2
2
 
3
3
  // editor
4
- export { IEditor, IEditTool, IDirection8, IEditorScaleEvent, IEditorRotateEvent, IEditorSkewEvent, IEditorEvent, IEditorMoveEvent } from './editor/IEditor'
4
+ export { IEditor, IEditTool, IInnerEditor, IEditorEvent, IInnerEditorEvent, IEditorGroupEvent, IEditorMoveEvent, IEditorScaleEvent, IEditorRotateEvent, IEditorSkewEvent } from './editor/IEditor'
5
5
  export { IStroker } from './editor/IStroker'
6
6
  export { IEditBox } from './editor/IEditBox'
7
7
  export { ISelectArea } from './editor/ISelectArea'
8
8
  export { IEditSelect } from './editor/IEditSelect'
9
- export { IEditPoint, IEditPointType } from './editor/IEditPoint'
10
9
 
11
10
  // html
12
11
 
13
- export { IHTMLTextData, IHTMLTextInputData } from './html/IHTMLTextData'
12
+ export { IHTMLTextData, IHTMLTextInputData } from './html/IHTMLTextData'
13
+
14
+ // scroll
15
+
16
+ export { IScrollBar, IScrollBarConfig, IScrollBarTheme } from './scroll/IScrollBar'
17
+
18
+ // flow
19
+
20
+ export { IFlowWrapDrawData, IFlowDrawData, IGapBoundsData, IFlowAlignToAxisAlignMap, IFlowParseData } from './flow'
@@ -0,0 +1,15 @@
1
+ import { IBoxInputData, IFourNumber, IGroup } from '@leafer-ui/interface'
2
+
3
+ export interface IScrollBarConfig {
4
+ theme?: IScrollBarTheme
5
+ padding?: IFourNumber
6
+ minSize?: number
7
+ }
8
+
9
+ export type IScrollBarTheme = 'light' | 'dark' | IBoxInputData
10
+
11
+ export interface IScrollBar extends IGroup {
12
+ config: IScrollBarConfig
13
+ changeTheme(theme: IScrollBarTheme): void
14
+ update(check: boolean): void
15
+ }
package/types/index.d.ts CHANGED
@@ -1,29 +1,8 @@
1
- import { IBox, IGroup, IRect, IBoundsData, IKeyEvent, IUI, IRectInputData, IBounds, IEditorBase, ILeafList, IEventListenerId, IEvent, IPointData, IMatrixData, IAround, IDragEvent, IImageData, IImageInputData } from '@leafer-ui/interface';
1
+ import { IEditBoxBase, IUI, IRectInputData, IGroup, IBoundsData, IBounds, IPointerEvent, IEditorBase, IPointData, ILayoutBoundsData, IEventListenerId, IObject, IEvent, IMatrixData, IAround, IDragEvent, IImageData, IImageInputData, IFourNumber, IBoxInputData, IAxisAlign, IFlowWrap, IGap, IFlowAlign } from '@leafer-ui/interface';
2
2
  export * from '@leafer-ui/interface';
3
- import { IEditor as IEditor$1 } from '@leafer-in/interface';
4
3
 
5
- interface IEditPoint extends IBox {
6
- direction: IDirection8;
7
- pointType: IEditPointType;
8
- }
9
- type IEditPointType = 'rotate' | 'resize';
10
-
11
- interface IEditBox extends IGroup {
12
- editor: IEditor$1;
13
- dragging?: boolean;
14
- circle: IEditPoint;
15
- rect: IRect;
16
- buttons: IGroup;
17
- resizePoints: IEditPoint[];
18
- rotatePoints: IEditPoint[];
19
- resizeLines: IEditPoint[];
20
- readonly flipped: boolean;
21
- readonly flippedX: boolean;
22
- readonly flippedY: boolean;
23
- readonly flippedOne: boolean;
24
- enterPoint: IEditPoint;
25
- update(bounds: IBoundsData): void;
26
- onArrow(e: IKeyEvent): void;
4
+ interface IEditBox extends IEditBoxBase {
5
+ editor: IEditor;
27
6
  }
28
7
 
29
8
  interface IStroker extends IUI {
@@ -44,46 +23,67 @@ interface IEditSelect extends IGroup {
44
23
  targetStroker: IStroker;
45
24
  selectArea: ISelectArea;
46
25
  bounds: IBounds;
26
+ findUI(e: IPointerEvent): IUI;
27
+ findDeepOne(e: IPointerEvent): IUI;
47
28
  update(): void;
48
29
  }
49
30
 
50
31
  interface IEditor extends IEditorBase {
51
- leafList: ILeafList;
52
32
  simulateTarget: IUI;
53
33
  selector: IEditSelect;
54
34
  editBox: IEditBox;
55
- editTool: IEditTool;
35
+ editTool?: IEditTool;
36
+ innerEditor?: IInnerEditor;
37
+ dragStartPoint: IPointData;
38
+ dragStartBounds: ILayoutBoundsData;
56
39
  targetEventIds: IEventListenerId[];
40
+ checkOpenedGroups(): void;
57
41
  listenTargetEvents(): void;
58
42
  removeTargetEvents(): void;
59
43
  }
60
- interface IEditTool {
61
- tag: string;
44
+ interface IEditTool extends IInnerEditor {
62
45
  onMove(e: IEditorMoveEvent): void;
63
46
  onScale(e: IEditorScaleEvent): void;
64
47
  onScaleWithDrag?(e: IEditorScaleEvent): void;
65
48
  onRotate(e: IEditorRotateEvent): void;
66
49
  onSkew(e: IEditorSkewEvent): void;
67
- update(editor: IEditor): void;
68
- }
69
- declare enum IDirection8 {
70
- topLeft = 0,
71
- top = 1,
72
- topRight = 2,
73
- right = 3,
74
- bottomRight = 4,
75
- bottom = 5,
76
- bottomLeft = 6,
77
- left = 7
50
+ }
51
+ interface IInnerEditor {
52
+ tag: string;
53
+ editTarget: IUI;
54
+ config: IObject;
55
+ editor: IEditor;
56
+ editBox: IEditBox;
57
+ view: IGroup;
58
+ eventIds: IEventListenerId[];
59
+ onCreate(): void;
60
+ create(): void;
61
+ onLoad(): void;
62
+ load(): void;
63
+ onLoad(): void;
64
+ unload(): void;
65
+ onUpdate(): void;
66
+ update(): void;
67
+ onDestroy(): void;
68
+ destroy(): void;
78
69
  }
79
70
  interface IEditorEvent extends IEvent {
80
71
  readonly target?: IUI;
81
72
  readonly editor?: IEditor;
82
73
  readonly value?: IUI | IUI[];
83
74
  readonly oldValue?: IUI | IUI[];
75
+ readonly list?: IUI[];
76
+ readonly oldList?: IUI[];
84
77
  readonly worldOrigin?: IPointData;
85
78
  readonly origin?: IPointData;
86
79
  }
80
+ interface IInnerEditorEvent extends IEditorEvent {
81
+ editTarget: IUI;
82
+ innerEditor: IInnerEditor;
83
+ }
84
+ interface IEditorGroupEvent extends IEditorEvent {
85
+ editTarget: IGroup;
86
+ }
87
87
  interface IEditorMoveEvent extends IEditorEvent {
88
88
  readonly moveX: number;
89
89
  readonly moveY: number;
@@ -92,12 +92,13 @@ interface IEditorScaleEvent extends IEditorEvent {
92
92
  readonly scaleX?: number;
93
93
  readonly scaleY?: number;
94
94
  transform?: IMatrixData;
95
- readonly direction?: IDirection8;
96
- readonly lockRatio?: boolean;
95
+ readonly direction?: number;
96
+ readonly lockRatio?: boolean | 'corner';
97
97
  readonly around?: IAround;
98
98
  drag?: IDragEvent;
99
99
  }
100
100
  interface IEditorRotateEvent extends IEditorEvent {
101
+ transform?: IMatrixData;
101
102
  readonly rotation?: number;
102
103
  }
103
104
  interface IEditorSkewEvent extends IEditorEvent {
@@ -115,4 +116,45 @@ interface IHTMLTextData extends IHTMLTextAttrData, IImageData {
115
116
  interface IHTMLTextInputData extends IHTMLTextAttrData, IImageInputData {
116
117
  }
117
118
 
118
- export { IDirection8, type IEditBox, type IEditPoint, type IEditPointType, type IEditSelect, type IEditTool, type IEditor, type IEditorEvent, type IEditorMoveEvent, type IEditorRotateEvent, type IEditorScaleEvent, type IEditorSkewEvent, type IHTMLTextData, type IHTMLTextInputData, type ISelectArea, type IStroker };
119
+ interface IScrollBarConfig {
120
+ theme?: IScrollBarTheme;
121
+ padding?: IFourNumber;
122
+ minSize?: number;
123
+ }
124
+ type IScrollBarTheme = 'light' | 'dark' | IBoxInputData;
125
+ interface IScrollBar extends IGroup {
126
+ config: IScrollBarConfig;
127
+ changeTheme(theme: IScrollBarTheme): void;
128
+ update(check: boolean): void;
129
+ }
130
+
131
+ interface IFlowWrapDrawData extends IGapBoundsData {
132
+ list: IFlowDrawData[];
133
+ }
134
+ interface IFlowDrawData extends IGapBoundsData {
135
+ start: number;
136
+ grow: number;
137
+ hasRangeSize?: boolean;
138
+ }
139
+ interface IGapBoundsData extends IBoundsData {
140
+ count: number;
141
+ gap: number;
142
+ }
143
+ interface IFlowAlignToAxisAlignMap {
144
+ [name: string]: IAxisAlign;
145
+ }
146
+ interface IFlowParseData {
147
+ complex: boolean;
148
+ wrap: IFlowWrap;
149
+ xGap: IGap;
150
+ yGap: IGap;
151
+ isAutoXGap: boolean;
152
+ isAutoYGap: boolean;
153
+ isFitXGap: boolean;
154
+ isFitYGap: boolean;
155
+ contentAlign: IFlowAlign;
156
+ rowXAlign: IAxisAlign;
157
+ rowYAlign: IAxisAlign;
158
+ }
159
+
160
+ export type { IEditBox, IEditSelect, IEditTool, IEditor, IEditorEvent, IEditorGroupEvent, IEditorMoveEvent, IEditorRotateEvent, IEditorScaleEvent, IEditorSkewEvent, IFlowAlignToAxisAlignMap, IFlowDrawData, IFlowParseData, IFlowWrapDrawData, IGapBoundsData, IHTMLTextData, IHTMLTextInputData, IInnerEditor, IInnerEditorEvent, IScrollBar, IScrollBarConfig, IScrollBarTheme, ISelectArea, IStroker };
@@ -1,9 +0,0 @@
1
- import { IBox } from '@leafer-ui/interface'
2
- import { IDirection8 } from './IEditor'
3
-
4
- export interface IEditPoint extends IBox {
5
- direction: IDirection8
6
- pointType: IEditPointType
7
- }
8
-
9
- export type IEditPointType = 'rotate' | 'resize'