MCPcopy Create free account
hub / github.com/alibaba/lowcode-engine / Setters

Class Setters

packages/editor-core/src/di/setter.ts:50–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50export class Setters implements ISetters {
51 settersMap = new Map<string, IPublicTypeRegisteredSetter & {
52 type: string;
53 }>();
54
55 constructor(readonly viewName: string = 'global') {}
56
57 getSetter = (type: string): IPublicTypeRegisteredSetter | null => {
58 return this.settersMap.get(type) || null;
59 };
60
61 registerSetter = (
62 typeOrMaps: string | { [key: string]: IPublicTypeCustomView | IPublicTypeRegisteredSetter },
63 setter?: IPublicTypeCustomView | IPublicTypeRegisteredSetter,
64 ) => {
65 if (typeof typeOrMaps === 'object') {
66 Object.keys(typeOrMaps).forEach(type => {
67 this.registerSetter(type, typeOrMaps[type]);
68 });
69 return;
70 }
71 if (!setter) {
72 return;
73 }
74 if (isCustomView(setter)) {
75 setter = {
76 component: setter,
77 // todo: intl
78 title: (setter as any).displayName || (setter as any).name || 'CustomSetter',
79 };
80 }
81 if (!setter.initialValue) {
82 const initial = getInitialFromSetter(setter.component);
83 if (initial) {
84 setter.initialValue = (field: IPublicModelSettingField) => {
85 return initial.call(field, field.getValue());
86 };
87 }
88 }
89 this.settersMap.set(typeOrMaps, { type: typeOrMaps, ...setter });
90 };
91
92 getSettersMap = () => {
93 return this.settersMap;
94 };
95
96 createSetterContent = (setter: any, props: Record<string, any>): ReactNode => {
97 if (typeof setter === 'string') {
98 setter = this.getSetter(setter);
99 if (!setter) {
100 return null;
101 }
102 if (setter.defaultProps) {
103 props = {
104 ...setter.defaultProps,
105 ...props,
106 };
107 }

Callers

nothing calls this directly

Calls 9

getInitialFromSetterFunction · 0.85
createContentFunction · 0.85
registerSetterMethod · 0.80
getSetterMethod · 0.80
getMethod · 0.65
forEachMethod · 0.65
getValueMethod · 0.65
setMethod · 0.65
isCustomViewFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…