@leafer-in/interface 1.0.0-rc.3 → 1.0.0-rc.30

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.3",
3
+ "version": "1.0.0-rc.30",
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.3",
29
- "@leafer/interface": "1.0.0-rc.3"
28
+ "@leafer-ui/interface": "1.0.0-rc.30",
29
+ "@leafer/interface": "1.0.0-rc.30"
30
30
  }
31
31
  }
@@ -0,0 +1,7 @@
1
+ import { IEditBoxBase } from '@leafer-ui/interface'
2
+ import { IEditor } from './IEditor'
3
+ export interface IEditBox extends IEditBoxBase {
4
+
5
+ editor: IEditor
6
+
7
+ }
@@ -0,0 +1,22 @@
1
+ import { IGroup, IUI, IBounds, IPointerEvent } from '@leafer-ui/interface'
2
+
3
+ import { IStroker } from './IStroker'
4
+ import { ISelectArea } from './ISelectArea'
5
+ import { IEditor } from './IEditor'
6
+
7
+ export interface IEditSelect extends IGroup {
8
+ editor: IEditor
9
+
10
+ dragging: boolean
11
+ running: boolean
12
+
13
+ hoverStroker: IStroker
14
+ targetStroker: IStroker
15
+
16
+ selectArea: ISelectArea
17
+ bounds: IBounds
18
+
19
+ findUI(e: IPointerEvent): IUI
20
+ findDeepOne(e: IPointerEvent): IUI
21
+ update(): void
22
+ }
@@ -0,0 +1,114 @@
1
+ import { IUI, IPointData, IAround, IDragEvent, IEvent, IEventListenerId, IMatrixData, IEditorBase, IGroup, IObject } from '@leafer-ui/interface'
2
+
3
+ import { IEditBox } from './IEditBox'
4
+ import { IEditSelect } from './IEditSelect'
5
+
6
+
7
+ export interface IEditor extends IEditorBase {
8
+ simulateTarget: IUI
9
+
10
+ selector: IEditSelect
11
+ editBox: IEditBox
12
+ editTool?: IEditTool
13
+ innerEditor?: IInnerEditor
14
+
15
+ dragStartPoint: IPointData
16
+ targetEventIds: IEventListenerId[]
17
+
18
+ checkOpenedGroups(): void
19
+
20
+ listenTargetEvents(): void
21
+ removeTargetEvents(): void
22
+ }
23
+
24
+ export interface IEditTool extends IInnerEditor {
25
+ // 操作
26
+ onMove(e: IEditorMoveEvent): void
27
+ onScale(e: IEditorScaleEvent): void
28
+ onScaleWithDrag?(e: IEditorScaleEvent): void
29
+ onRotate(e: IEditorRotateEvent): void
30
+ onSkew(e: IEditorSkewEvent): void
31
+ }
32
+
33
+ export interface IInnerEditor {
34
+ tag: string
35
+ editTarget: IUI
36
+ config: IObject
37
+
38
+ editor: IEditor
39
+ editBox: IEditBox
40
+ view: IGroup
41
+
42
+ eventIds: IEventListenerId[]
43
+
44
+ onCreate(): void
45
+ create(): void
46
+
47
+ // 状态
48
+ onLoad(): void
49
+ load(): void
50
+
51
+ onLoad(): void
52
+ unload(): void
53
+
54
+ onUpdate(): void
55
+ update(): void
56
+
57
+ onDestroy(): void
58
+ destroy(): void
59
+ }
60
+
61
+ export interface IEditorEvent extends IEvent {
62
+ readonly target?: IUI
63
+ readonly editor?: IEditor
64
+
65
+ readonly value?: IUI | IUI[]
66
+ readonly oldValue?: IUI | IUI[]
67
+ readonly list?: IUI[]
68
+ readonly oldList?: IUI[]
69
+
70
+ readonly worldOrigin?: IPointData
71
+ readonly origin?: IPointData
72
+ }
73
+
74
+ export interface IInnerEditorEvent extends IEditorEvent {
75
+ editTarget: IUI
76
+ innerEditor: IInnerEditor
77
+ }
78
+
79
+ export interface IEditorGroupEvent extends IEditorEvent {
80
+ editTarget: IGroup
81
+ }
82
+
83
+
84
+ export interface IEditorMoveEvent extends IEditorEvent {
85
+ readonly moveX: number
86
+ readonly moveY: number
87
+ }
88
+
89
+ export interface IEditorScaleEvent extends IEditorEvent {
90
+ // scaleOf(origin, scaleX, scaleY, resize) / transform(transform, resize)
91
+ readonly scaleX?: number
92
+ readonly scaleY?: number
93
+ transform?: IMatrixData
94
+
95
+ readonly direction?: number
96
+ readonly lockRatio?: boolean | 'corner'
97
+ readonly around?: IAround
98
+
99
+ drag?: IDragEvent
100
+ }
101
+
102
+ export interface IEditorRotateEvent extends IEditorEvent {
103
+ // rotateOf(origin, rotation)
104
+ transform?: IMatrixData
105
+ readonly rotation?: number
106
+ }
107
+
108
+ export interface IEditorSkewEvent extends IEditorEvent {
109
+ // skewOf(origin, skewX, skewY)
110
+ transform?: IMatrixData
111
+ readonly skewX?: number
112
+ readonly skewY?: number
113
+ }
114
+
@@ -0,0 +1,6 @@
1
+ import { IGroup, IRectInputData, IBoundsData } from '@leafer-ui/interface'
2
+
3
+ export interface ISelectArea extends IGroup {
4
+ setStyle(style: IRectInputData, userStyle?: IRectInputData): void
5
+ setBounds(bounds: IBoundsData): void
6
+ }
@@ -0,0 +1,6 @@
1
+ import { IUI, IRectInputData } from '@leafer-ui/interface'
2
+
3
+ export interface IStroker extends IUI {
4
+ target: IUI | IUI[]
5
+ setTarget(target: IUI | IUI[], style: IRectInputData): void
6
+ }
@@ -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
+ }
@@ -0,0 +1,9 @@
1
+ import { IImageInputData, IImageData } from '@leafer-ui/interface'
2
+
3
+ interface IHTMLTextAttrData {
4
+ text?: string
5
+ __htmlChanged?: boolean
6
+ }
7
+
8
+ export interface IHTMLTextData extends IHTMLTextAttrData, IImageData { }
9
+ export interface IHTMLTextInputData extends IHTMLTextAttrData, IImageInputData { }
package/src/index.ts CHANGED
@@ -1,3 +1,20 @@
1
1
  export * from '@leafer-ui/interface'
2
2
 
3
- export { IEditor, IEditorTool, IEditorConfig, IDirection8, IEditorResizeEvent, IEditorRotateEvent } from './IEditor'
3
+ // editor
4
+ export { IEditor, IEditTool, IInnerEditor, IEditorEvent, IInnerEditorEvent, IEditorGroupEvent, IEditorMoveEvent, IEditorScaleEvent, IEditorRotateEvent, IEditorSkewEvent } from './editor/IEditor'
5
+ export { IStroker } from './editor/IStroker'
6
+ export { IEditBox } from './editor/IEditBox'
7
+ export { ISelectArea } from './editor/ISelectArea'
8
+ export { IEditSelect } from './editor/IEditSelect'
9
+
10
+ // html
11
+
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,76 +1,159 @@
1
- import { IGroup, IUI, IPolygon, IPointData, IResizeType, IAround, IRectInputData, ICursorType, IEvent, IDragEvent, IBoundsData } from '@leafer-ui/interface';
1
+ import { IEditBoxBase, IUI, IRectInputData, IGroup, IBoundsData, IBounds, IPointerEvent, IEditorBase, IPointData, 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
3
 
4
- interface IEditor extends IGroup {
5
- config: IEditorConfig;
6
- resizePoints: IUI[];
7
- rotatePoints: IUI[];
8
- resizeLines: IUI[];
9
- circle: IUI;
10
- targetRect: IUI;
11
- rect: IPolygon;
12
- target: IUI;
13
- tool: IEditorTool;
14
- enterPoint: IUI;
15
- getTool(value: IUI): IEditorTool;
4
+ interface IEditBox extends IEditBoxBase {
5
+ editor: IEditor;
6
+ }
7
+
8
+ interface IStroker extends IUI {
9
+ target: IUI | IUI[];
10
+ setTarget(target: IUI | IUI[], style: IRectInputData): void;
11
+ }
12
+
13
+ interface ISelectArea extends IGroup {
14
+ setStyle(style: IRectInputData, userStyle?: IRectInputData): void;
15
+ setBounds(bounds: IBoundsData): void;
16
+ }
17
+
18
+ interface IEditSelect extends IGroup {
19
+ editor: IEditor;
20
+ dragging: boolean;
21
+ running: boolean;
22
+ hoverStroker: IStroker;
23
+ targetStroker: IStroker;
24
+ selectArea: ISelectArea;
25
+ bounds: IBounds;
26
+ findUI(e: IPointerEvent): IUI;
27
+ findDeepOne(e: IPointerEvent): IUI;
16
28
  update(): void;
17
29
  }
18
- interface IEditorTool {
19
- name: string;
20
- getMirrorData(editor: IEditor): IPointData;
21
- resize(e: IEditorResizeEvent): void;
22
- rotate(e: IEditorRotateEvent): void;
23
- update(editor: IEditor): void;
24
- }
25
- interface IEditorConfig {
26
- type?: 'pc' | 'mobile';
27
- resizeType?: 'auto' | IResizeType;
28
- around?: IAround;
29
- lockRatio?: boolean;
30
- rotateGap?: number;
31
- stroke?: string;
32
- pointFill?: string;
33
- pointSize?: number;
34
- pointRadius?: number;
35
- point?: IRectInputData | IRectInputData[];
36
- rotatePoint?: IRectInputData;
37
- rect?: IRectInputData;
38
- hideOnMove?: boolean;
39
- moveCursor?: ICursorType;
40
- resizeCursor?: ICursorType[];
41
- rotateCursor?: ICursorType[];
42
- rotateable?: boolean;
43
- resizeable?: boolean;
44
- }
45
- declare enum IDirection8 {
46
- topLeft = 0,
47
- top = 1,
48
- topRight = 2,
49
- right = 3,
50
- bottomRight = 4,
51
- bottom = 5,
52
- bottomLeft = 6,
53
- left = 7
54
- }
55
- interface IEditorResizeEvent extends IEvent {
30
+
31
+ interface IEditor extends IEditorBase {
32
+ simulateTarget: IUI;
33
+ selector: IEditSelect;
34
+ editBox: IEditBox;
35
+ editTool?: IEditTool;
36
+ innerEditor?: IInnerEditor;
37
+ dragStartPoint: IPointData;
38
+ targetEventIds: IEventListenerId[];
39
+ checkOpenedGroups(): void;
40
+ listenTargetEvents(): void;
41
+ removeTargetEvents(): void;
42
+ }
43
+ interface IEditTool extends IInnerEditor {
44
+ onMove(e: IEditorMoveEvent): void;
45
+ onScale(e: IEditorScaleEvent): void;
46
+ onScaleWithDrag?(e: IEditorScaleEvent): void;
47
+ onRotate(e: IEditorRotateEvent): void;
48
+ onSkew(e: IEditorSkewEvent): void;
49
+ }
50
+ interface IInnerEditor {
51
+ tag: string;
52
+ editTarget: IUI;
53
+ config: IObject;
54
+ editor: IEditor;
55
+ editBox: IEditBox;
56
+ view: IGroup;
57
+ eventIds: IEventListenerId[];
58
+ onCreate(): void;
59
+ create(): void;
60
+ onLoad(): void;
61
+ load(): void;
62
+ onLoad(): void;
63
+ unload(): void;
64
+ onUpdate(): void;
65
+ update(): void;
66
+ onDestroy(): void;
67
+ destroy(): void;
68
+ }
69
+ interface IEditorEvent extends IEvent {
56
70
  readonly target?: IUI;
57
71
  readonly editor?: IEditor;
58
- readonly resizeType?: IResizeType;
59
- readonly lockRatio?: boolean;
60
- readonly around?: IAround;
61
- readonly dragEvent?: IDragEvent;
62
- readonly direction?: IDirection8;
63
- readonly bounds?: IBoundsData;
64
- readonly old?: IBoundsData;
72
+ readonly value?: IUI | IUI[];
73
+ readonly oldValue?: IUI | IUI[];
74
+ readonly list?: IUI[];
75
+ readonly oldList?: IUI[];
76
+ readonly worldOrigin?: IPointData;
65
77
  readonly origin?: IPointData;
78
+ }
79
+ interface IInnerEditorEvent extends IEditorEvent {
80
+ editTarget: IUI;
81
+ innerEditor: IInnerEditor;
82
+ }
83
+ interface IEditorGroupEvent extends IEditorEvent {
84
+ editTarget: IGroup;
85
+ }
86
+ interface IEditorMoveEvent extends IEditorEvent {
87
+ readonly moveX: number;
88
+ readonly moveY: number;
89
+ }
90
+ interface IEditorScaleEvent extends IEditorEvent {
66
91
  readonly scaleX?: number;
67
92
  readonly scaleY?: number;
93
+ transform?: IMatrixData;
94
+ readonly direction?: number;
95
+ readonly lockRatio?: boolean | 'corner';
96
+ readonly around?: IAround;
97
+ drag?: IDragEvent;
68
98
  }
69
- interface IEditorRotateEvent extends IEvent {
70
- readonly target?: IUI;
71
- readonly editor?: IEditor;
72
- readonly origin?: IPointData;
99
+ interface IEditorRotateEvent extends IEditorEvent {
100
+ transform?: IMatrixData;
73
101
  readonly rotation?: number;
74
102
  }
103
+ interface IEditorSkewEvent extends IEditorEvent {
104
+ transform?: IMatrixData;
105
+ readonly skewX?: number;
106
+ readonly skewY?: number;
107
+ }
108
+
109
+ interface IHTMLTextAttrData {
110
+ text?: string;
111
+ __htmlChanged?: boolean;
112
+ }
113
+ interface IHTMLTextData extends IHTMLTextAttrData, IImageData {
114
+ }
115
+ interface IHTMLTextInputData extends IHTMLTextAttrData, IImageInputData {
116
+ }
117
+
118
+ interface IScrollBarConfig {
119
+ theme?: IScrollBarTheme;
120
+ padding?: IFourNumber;
121
+ minSize?: number;
122
+ }
123
+ type IScrollBarTheme = 'light' | 'dark' | IBoxInputData;
124
+ interface IScrollBar extends IGroup {
125
+ config: IScrollBarConfig;
126
+ changeTheme(theme: IScrollBarTheme): void;
127
+ update(check: boolean): void;
128
+ }
129
+
130
+ interface IFlowWrapDrawData extends IGapBoundsData {
131
+ list: IFlowDrawData[];
132
+ }
133
+ interface IFlowDrawData extends IGapBoundsData {
134
+ start: number;
135
+ grow: number;
136
+ hasRangeSize?: boolean;
137
+ }
138
+ interface IGapBoundsData extends IBoundsData {
139
+ count: number;
140
+ gap: number;
141
+ }
142
+ interface IFlowAlignToAxisAlignMap {
143
+ [name: string]: IAxisAlign;
144
+ }
145
+ interface IFlowParseData {
146
+ complex: boolean;
147
+ wrap: IFlowWrap;
148
+ xGap: IGap;
149
+ yGap: IGap;
150
+ isAutoXGap: boolean;
151
+ isAutoYGap: boolean;
152
+ isFitXGap: boolean;
153
+ isFitYGap: boolean;
154
+ contentAlign: IFlowAlign;
155
+ rowXAlign: IAxisAlign;
156
+ rowYAlign: IAxisAlign;
157
+ }
75
158
 
76
- export { IDirection8, type IEditor, type IEditorConfig, type IEditorResizeEvent, type IEditorRotateEvent, type IEditorTool };
159
+ 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 };
package/src/IEditor.ts DELETED
@@ -1,98 +0,0 @@
1
- import { IGroup, IUI, IRectInputData, IResizeType, IPolygon, ICursorType, IBoundsData, IPointData, IAround, IDragEvent, IEvent } from '@leafer-ui/interface'
2
-
3
- export interface IEditor extends IGroup {
4
- config: IEditorConfig
5
-
6
- resizePoints: IUI[]
7
- rotatePoints: IUI[]
8
- resizeLines: IUI[]
9
-
10
- circle: IUI
11
- targetRect: IUI
12
- rect: IPolygon
13
-
14
- target: IUI
15
-
16
- tool: IEditorTool
17
-
18
- enterPoint: IUI
19
-
20
- getTool(value: IUI): IEditorTool
21
- update(): void
22
- }
23
-
24
- export interface IEditorTool {
25
- name: string
26
- getMirrorData(editor: IEditor): IPointData
27
- resize(e: IEditorResizeEvent): void
28
- rotate(e: IEditorRotateEvent): void
29
- update(editor: IEditor): void
30
- }
31
-
32
- export interface IEditorConfig {
33
- type?: 'pc' | 'mobile'
34
- resizeType?: 'auto' | IResizeType
35
-
36
- around?: IAround
37
- lockRatio?: boolean
38
- rotateGap?: number
39
-
40
- stroke?: string
41
- pointFill?: string
42
- pointSize?: number
43
- pointRadius?: number
44
-
45
- point?: IRectInputData | IRectInputData[]
46
- rotatePoint?: IRectInputData
47
- rect?: IRectInputData
48
-
49
- hideOnMove?: boolean
50
-
51
- moveCursor?: ICursorType
52
- resizeCursor?: ICursorType[]
53
- rotateCursor?: ICursorType[]
54
-
55
- rotateable?: boolean
56
- resizeable?: boolean
57
- }
58
-
59
- export enum IDirection8 {
60
- topLeft,
61
- top,
62
- topRight,
63
- right,
64
- bottomRight,
65
- bottom,
66
- bottomLeft,
67
- left
68
- }
69
-
70
- export interface IEditorResizeEvent extends IEvent {
71
- readonly target?: IUI
72
- readonly editor?: IEditor
73
-
74
- readonly resizeType?: IResizeType
75
- readonly lockRatio?: boolean
76
- readonly around?: IAround
77
-
78
- readonly dragEvent?: IDragEvent
79
- readonly direction?: IDirection8
80
-
81
- // from old to bounds
82
- readonly bounds?: IBoundsData
83
- readonly old?: IBoundsData
84
-
85
- // scaleOf(origin, scaleX, scaleY)
86
- readonly origin?: IPointData
87
- readonly scaleX?: number
88
- readonly scaleY?: number
89
- }
90
-
91
- export interface IEditorRotateEvent extends IEvent {
92
- readonly target?: IUI
93
- readonly editor?: IEditor
94
-
95
- // rotateOf(origin, rotation)
96
- readonly origin?: IPointData
97
- readonly rotation?: number
98
- }