Skip to content

Commit d8014c9

Browse files
liujupingJackLian
authored andcommitted
fix: fix some ts error
1 parent 65a0403 commit d8014c9

34 files changed

Lines changed: 455 additions & 303 deletions

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ module.exports = {
2020
'no-await-in-loop': 0,
2121
'no-plusplus': 0,
2222
'@typescript-eslint/no-parameter-properties': 0,
23-
'@typescript-eslint/no-unused-vars': 1,
23+
'no-restricted-exports': ['error'],
2424
'no-multi-assign': 1,
2525
'no-dupe-class-members': 1,
2626
'react/no-deprecated': 1,

packages/designer/src/component-meta.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ export function buildFilter(rule?: string | string[] | RegExp | IPublicTypeNesti
5656
return (testNode: Node | IPublicTypeNodeSchema) => list.includes(testNode.componentName);
5757
}
5858

59-
export interface IComponentMeta extends IPublicModelComponentMeta {
59+
export interface IComponentMeta extends IPublicModelComponentMeta<INode> {
60+
prototype?: any;
6061
}
6162

6263
export class ComponentMeta implements IComponentMeta {

packages/designer/src/designer/designer.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { ActiveTracker, IActiveTracker } from './active-tracker';
3030
import { Detecting } from './detecting';
3131
import { DropLocation } from './location';
3232
import { OffsetObserver, createOffsetObserver } from './offset-observer';
33-
import { SettingTopEntry } from './setting';
33+
import { ISettingTopEntry, SettingTopEntry } from './setting';
3434
import { BemToolsManager } from '../builtin-simulator/bem-tools/manager';
3535
import { ComponentActions } from '../component-actions';
3636

@@ -61,6 +61,7 @@ export interface DesignerProps {
6161
}
6262

6363
export interface IDesigner {
64+
readonly shellModelFactory: IShellModelFactory;
6465

6566
get dragon(): IPublicModelDragon;
6667

@@ -91,6 +92,12 @@ export interface IDesigner {
9192
getComponentMetasMap(): Map<string, IComponentMeta>;
9293

9394
addPropsReducer(reducer: IPublicTypePropsTransducer, stage: IPublicEnumTransformStage): void;
95+
96+
postEvent(event: string, ...args: any[]): void;
97+
98+
transformProps(props: IPublicTypeCompositeObject | IPublicTypePropsList, node: Node, stage: IPublicEnumTransformStage): IPublicTypeCompositeObject | IPublicTypePropsList;
99+
100+
createSettingEntry(nodes: INode[]): ISettingTopEntry;
94101
}
95102

96103
export class Designer implements IDesigner {
@@ -331,7 +338,7 @@ export class Designer implements IDesigner {
331338
this.oobxList.forEach((item) => item.compute());
332339
}
333340

334-
createSettingEntry(nodes: Node[]) {
341+
createSettingEntry(nodes: INode[]): ISettingTopEntry {
335342
return new SettingTopEntry(this.editor, nodes);
336343
}
337344

packages/designer/src/designer/detecting.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ import { IDocumentModel } from '../document/document-model';
44
import { INode } from '../document/node/node';
55

66
const DETECTING_CHANGE_EVENT = 'detectingChange';
7-
export interface IDetecting extends Omit< IPublicModelDetecting, 'capture' | 'release' | 'leave' > {
8-
7+
export interface IDetecting extends Omit< IPublicModelDetecting<INode>,
8+
'capture' |
9+
'release' |
10+
'leave'
11+
> {
912
capture(node: INode | null): void;
1013

1114
release(node: INode | null): void;

packages/designer/src/designer/location.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { INode } from '../document';
1+
import { IDocumentModel, INode } from '../document';
22
import { ILocateEvent } from './dragon';
33
import {
4-
IPublicModelDocumentModel,
54
IPublicModelDropLocation,
65
IPublicTypeLocationDetailType,
76
IPublicTypeRect,
@@ -105,7 +104,7 @@ export interface IDropLocation extends Omit< IPublicModelDropLocation, 'target'
105104

106105
get target(): INode;
107106

108-
get document(): IPublicModelDocumentModel;
107+
get document(): IDocumentModel | null;
109108

110109
clone(event: IPublicModelLocateEvent): IDropLocation;
111110
}
@@ -119,7 +118,7 @@ export class DropLocation implements IDropLocation {
119118

120119
readonly source: string;
121120

122-
get document(): IPublicModelDocumentModel {
121+
get document(): IDocumentModel | null {
123122
return this.target.document;
124123
}
125124

@@ -159,7 +158,7 @@ export class DropLocation implements IDropLocation {
159158
if (this.detail.index <= 0) {
160159
return null;
161160
}
162-
return this.target.children.get(this.detail.index - 1);
161+
return this.target.children?.get(this.detail.index - 1);
163162
}
164163
return (this.detail as any)?.near?.node;
165164
}

packages/designer/src/designer/setting/setting-top-entry.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@ import { computed, IEventBus, createModuleEventBus } from '@alilc/lowcode-editor
44
import { SettingEntry } from './setting-entry';
55
import { SettingField } from './setting-field';
66
import { SettingPropEntry } from './setting-prop-entry';
7-
import { Node } from '../../document';
7+
import { INode } from '../../document';
88
import { ComponentMeta } from '../../component-meta';
9-
import { Designer } from '../designer';
9+
import { IDesigner } from '../designer';
1010
import { Setters } from '@alilc/lowcode-shell';
1111

12-
function generateSessionId(nodes: Node[]) {
12+
function generateSessionId(nodes: INode[]) {
1313
return nodes
1414
.map((node) => node.id)
1515
.sort()
1616
.join(',');
1717
}
1818

19-
export class SettingTopEntry implements SettingEntry {
19+
export interface ISettingTopEntry extends SettingEntry {
20+
}
21+
22+
export class SettingTopEntry implements ISettingTopEntry {
2023
private emitter: IEventBus = createModuleEventBus('SettingTopEntry');
2124

2225
private _items: Array<SettingField | IPublicTypeCustomView> = [];
@@ -68,21 +71,21 @@ export class SettingTopEntry implements SettingEntry {
6871

6972
readonly id: string;
7073

71-
readonly first: Node;
74+
readonly first: INode;
7275

73-
readonly designer: Designer;
76+
readonly designer: IDesigner | undefined;
7477

7578
readonly setters: Setters;
7679

7780
disposeFunctions: any[] = [];
7881

79-
constructor(readonly editor: IPublicModelEditor, readonly nodes: Node[]) {
82+
constructor(readonly editor: IPublicModelEditor, readonly nodes: INode[]) {
8083
if (!Array.isArray(nodes) || nodes.length < 1) {
8184
throw new ReferenceError('nodes should not be empty');
8285
}
8386
this.id = generateSessionId(nodes);
8487
this.first = nodes[0];
85-
this.designer = this.first.document.designer;
88+
this.designer = this.first.document?.designer;
8689
this.setters = editor.get('setters') as Setters;
8790

8891
// setups
@@ -229,7 +232,6 @@ export class SettingTopEntry implements SettingEntry {
229232
this.disposeFunctions = [];
230233
}
231234

232-
233235
getProp(propName: string | number) {
234236
return this.get(propName);
235237
}

0 commit comments

Comments
 (0)