@gtkx/react 0.1.26 → 0.1.27
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/dist/codegen/jsx-generator.d.ts +2 -0
- package/dist/codegen/jsx-generator.js +49 -0
- package/dist/generated/jsx.d.ts +1 -0
- package/dist/generated/jsx.js +3844 -0
- package/dist/node.d.ts +4 -2
- package/dist/node.js +45 -16
- package/dist/nodes/dropdown.js +1 -1
- package/package.json +3 -3
- package/README.md +0 -208
|
@@ -25,6 +25,8 @@ export declare class JsxGenerator {
|
|
|
25
25
|
private getRequiredConstructorParams;
|
|
26
26
|
private getConstructorParams;
|
|
27
27
|
private generateConstructorArgsMetadata;
|
|
28
|
+
private generateSetterGetterMap;
|
|
29
|
+
private collectAllProperties;
|
|
28
30
|
private getAncestorInterfaces;
|
|
29
31
|
private findInheritedProperty;
|
|
30
32
|
private generateSignalHandler;
|
|
@@ -97,6 +97,7 @@ export class JsxGenerator {
|
|
|
97
97
|
this.generateCommonTypes(widgetClass),
|
|
98
98
|
widgetPropsInterfaces,
|
|
99
99
|
this.generateConstructorArgsMetadata(widgets),
|
|
100
|
+
this.generateSetterGetterMap(widgets),
|
|
100
101
|
this.generateExports(widgets, containerMetadata),
|
|
101
102
|
this.generateJsxNamespace(widgets, containerMetadata),
|
|
102
103
|
"export {};",
|
|
@@ -374,6 +375,54 @@ ${widgetPropsContent}
|
|
|
374
375
|
}
|
|
375
376
|
return `export const CONSTRUCTOR_PARAMS: Record<string, { name: string; hasDefault: boolean }[]> = {\n${entries.join(",\n")},\n};\n`;
|
|
376
377
|
}
|
|
378
|
+
generateSetterGetterMap(widgets) {
|
|
379
|
+
const widgetEntries = [];
|
|
380
|
+
for (const widget of widgets) {
|
|
381
|
+
const setterGetterPairs = [];
|
|
382
|
+
const allProps = this.collectAllProperties(widget);
|
|
383
|
+
for (const prop of allProps) {
|
|
384
|
+
if (prop.setter && prop.getter) {
|
|
385
|
+
const setterName = toCamelCase(prop.setter);
|
|
386
|
+
const getterName = toCamelCase(prop.getter);
|
|
387
|
+
setterGetterPairs.push(`"${setterName}": "${getterName}"`);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (setterGetterPairs.length > 0) {
|
|
391
|
+
const widgetName = toPascalCase(widget.name);
|
|
392
|
+
widgetEntries.push(`\t${widgetName}: { ${setterGetterPairs.join(", ")} }`);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
if (widgetEntries.length === 0) {
|
|
396
|
+
return `export const SETTER_GETTERS: Record<string, Record<string, string>> = {};\n`;
|
|
397
|
+
}
|
|
398
|
+
return `export const SETTER_GETTERS: Record<string, Record<string, string>> = {\n${widgetEntries.join(",\n")},\n};\n`;
|
|
399
|
+
}
|
|
400
|
+
collectAllProperties(widget) {
|
|
401
|
+
const props = [];
|
|
402
|
+
const seen = new Set();
|
|
403
|
+
let current = widget;
|
|
404
|
+
while (current) {
|
|
405
|
+
for (const prop of current.properties) {
|
|
406
|
+
if (!seen.has(prop.name)) {
|
|
407
|
+
seen.add(prop.name);
|
|
408
|
+
props.push({ setter: prop.setter, getter: prop.getter });
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
for (const ifaceName of current.implements) {
|
|
412
|
+
const iface = this.interfaceMap.get(ifaceName);
|
|
413
|
+
if (iface) {
|
|
414
|
+
for (const prop of iface.properties) {
|
|
415
|
+
if (!seen.has(prop.name)) {
|
|
416
|
+
seen.add(prop.name);
|
|
417
|
+
props.push({ setter: prop.setter, getter: prop.getter });
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
current = current.parent ? this.classMap.get(current.parent) : undefined;
|
|
423
|
+
}
|
|
424
|
+
return props;
|
|
425
|
+
}
|
|
377
426
|
getAncestorInterfaces(widget) {
|
|
378
427
|
const interfaces = new Set();
|
|
379
428
|
let current = widget.parent ? this.classMap.get(widget.parent) : undefined;
|
package/dist/generated/jsx.d.ts
CHANGED
|
@@ -1266,6 +1266,7 @@ export declare const CONSTRUCTOR_PARAMS: Record<string, {
|
|
|
1266
1266
|
name: string;
|
|
1267
1267
|
hasDefault: boolean;
|
|
1268
1268
|
}[]>;
|
|
1269
|
+
export declare const SETTER_GETTERS: Record<string, Record<string, string>>;
|
|
1269
1270
|
export declare const Widget: "Widget";
|
|
1270
1271
|
export declare const Window: {
|
|
1271
1272
|
Root: "Window.Root";
|