@genesislcap/foundation-react-utils 14.446.1-FUI-2541.1 → 14.446.1-FUI-2541.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-react-renderer.d.ts","sourceRoot":"","sources":["../../src/create-react-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC9C,OAAO,EAAE;IACP;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,KAAK,mBAAmB,CAAC;IACrF;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GACA,aAAa,
|
|
1
|
+
{"version":3,"file":"create-react-renderer.d.ts","sourceRoot":"","sources":["../../src/create-react-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC9C,OAAO,EAAE;IACP;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,KAAK,mBAAmB,CAAC;IACrF;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GACA,aAAa,CAsEf"}
|
|
@@ -60,10 +60,27 @@ export function createReactRenderer(Component, options) {
|
|
|
60
60
|
errors: 'string',
|
|
61
61
|
enabled: 'boolean',
|
|
62
62
|
required: 'boolean',
|
|
63
|
-
handleChange: 'method',
|
|
64
63
|
uischema: 'json',
|
|
65
64
|
},
|
|
66
65
|
});
|
|
66
|
+
// r2wc's 'function' type serialises the function to its .name string via
|
|
67
|
+
// setAttribute and then resolves it back via window[name] — which always
|
|
68
|
+
// fails for locally-scoped functions, leaving handleChange as undefined in
|
|
69
|
+
// React. Instead we bypass attribute round-tripping by writing directly into
|
|
70
|
+
// r2wc's internal props bag and triggering a re-render manually.
|
|
71
|
+
const r2wcPropsSym = Symbol.for('r2wc.props');
|
|
72
|
+
const r2wcRenderSym = Symbol.for('r2wc.render');
|
|
73
|
+
Object.defineProperty(WebComponent.prototype, 'handleChange', {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
configurable: true,
|
|
76
|
+
get() {
|
|
77
|
+
return this[r2wcPropsSym].handleChange;
|
|
78
|
+
},
|
|
79
|
+
set(value) {
|
|
80
|
+
this[r2wcPropsSym].handleChange = value;
|
|
81
|
+
this[r2wcRenderSym]();
|
|
82
|
+
},
|
|
83
|
+
});
|
|
67
84
|
if (!customElements.get(options.name)) {
|
|
68
85
|
customElements.define(options.name, WebComponent);
|
|
69
86
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/foundation-react-utils",
|
|
3
3
|
"description": "Genesis Foundation React Utils",
|
|
4
|
-
"version": "14.446.1-FUI-2541.
|
|
4
|
+
"version": "14.446.1-FUI-2541.2",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "SEE LICENSE IN license.txt",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -29,23 +29,23 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@genesislcap/foundation-testing": "14.446.1-FUI-2541.
|
|
33
|
-
"@genesislcap/genx": "14.446.1-FUI-2541.
|
|
34
|
-
"@genesislcap/rollup-builder": "14.446.1-FUI-2541.
|
|
35
|
-
"@genesislcap/ts-builder": "14.446.1-FUI-2541.
|
|
36
|
-
"@genesislcap/uvu-playwright-builder": "14.446.1-FUI-2541.
|
|
37
|
-
"@genesislcap/vite-builder": "14.446.1-FUI-2541.
|
|
38
|
-
"@genesislcap/webpack-builder": "14.446.1-FUI-2541.
|
|
32
|
+
"@genesislcap/foundation-testing": "14.446.1-FUI-2541.2",
|
|
33
|
+
"@genesislcap/genx": "14.446.1-FUI-2541.2",
|
|
34
|
+
"@genesislcap/rollup-builder": "14.446.1-FUI-2541.2",
|
|
35
|
+
"@genesislcap/ts-builder": "14.446.1-FUI-2541.2",
|
|
36
|
+
"@genesislcap/uvu-playwright-builder": "14.446.1-FUI-2541.2",
|
|
37
|
+
"@genesislcap/vite-builder": "14.446.1-FUI-2541.2",
|
|
38
|
+
"@genesislcap/webpack-builder": "14.446.1-FUI-2541.2"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"react": "^19.0.0",
|
|
42
42
|
"react-dom": "^19.0.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@genesislcap/foundation-forms": "14.446.1-FUI-2541.
|
|
46
|
-
"@genesislcap/foundation-layout": "14.446.1-FUI-2541.
|
|
47
|
-
"@genesislcap/foundation-logger": "14.446.1-FUI-2541.
|
|
48
|
-
"@genesislcap/web-core": "14.446.1-FUI-2541.
|
|
45
|
+
"@genesislcap/foundation-forms": "14.446.1-FUI-2541.2",
|
|
46
|
+
"@genesislcap/foundation-layout": "14.446.1-FUI-2541.2",
|
|
47
|
+
"@genesislcap/foundation-logger": "14.446.1-FUI-2541.2",
|
|
48
|
+
"@genesislcap/web-core": "14.446.1-FUI-2541.2",
|
|
49
49
|
"@jsonforms/core": "^3.2.1",
|
|
50
50
|
"@r2wc/react-to-web-component": "^2.0.2"
|
|
51
51
|
},
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
60
|
"customElements": "dist/custom-elements.json",
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "e29fdf28775074bde37c45c152bada6b3b446386"
|
|
62
62
|
}
|
|
@@ -102,11 +102,29 @@ export function createReactRenderer(
|
|
|
102
102
|
errors: 'string',
|
|
103
103
|
enabled: 'boolean',
|
|
104
104
|
required: 'boolean',
|
|
105
|
-
handleChange: 'method',
|
|
106
105
|
uischema: 'json',
|
|
107
106
|
},
|
|
108
107
|
});
|
|
109
108
|
|
|
109
|
+
// r2wc's 'function' type serialises the function to its .name string via
|
|
110
|
+
// setAttribute and then resolves it back via window[name] — which always
|
|
111
|
+
// fails for locally-scoped functions, leaving handleChange as undefined in
|
|
112
|
+
// React. Instead we bypass attribute round-tripping by writing directly into
|
|
113
|
+
// r2wc's internal props bag and triggering a re-render manually.
|
|
114
|
+
const r2wcPropsSym = Symbol.for('r2wc.props');
|
|
115
|
+
const r2wcRenderSym = Symbol.for('r2wc.render');
|
|
116
|
+
Object.defineProperty(WebComponent.prototype, 'handleChange', {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
configurable: true,
|
|
119
|
+
get() {
|
|
120
|
+
return (this as any)[r2wcPropsSym].handleChange;
|
|
121
|
+
},
|
|
122
|
+
set(value) {
|
|
123
|
+
(this as any)[r2wcPropsSym].handleChange = value;
|
|
124
|
+
(this as any)[r2wcRenderSym]();
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
|
|
110
128
|
if (!customElements.get(options.name)) {
|
|
111
129
|
customElements.define(options.name, WebComponent);
|
|
112
130
|
}
|