quickwin 2.3.1 → 3.0.1
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/README.en.md +1 -2
- package/README.md +1 -2
- package/constants.ts +15 -0
- package/enum_map.d.ts +3 -0
- package/examples/PdfCanvas.js +1 -1
- package/examples/PdfCanvas.tsx +2 -2
- package/examples/execd/main.js +334 -188
- package/examples/pdf_preview2.js +76 -67
- package/examples/pdf_preview2.ts +84 -64
- package/examples/pdf_viewer.js +4932 -1029
- package/examples/pdf_viewer.tsx +11 -22
- package/examples/test_gallery.js +308 -143
- package/examples/test_gallery.tsx +12 -7
- package/examples/test_react_lazy.js +295 -133
- package/examples/test_react_lazy.tsx +4 -3
- package/examples/test_react_listbox.js +293 -132
- package/examples/test_react_listbox.tsx +3 -2
- package/examples/test_root_window.js +283 -126
- package/examples/test_tab.js +295 -133
- package/examples/test_tab.tsx +4 -3
- package/examples/tray_demo.js +37 -30
- package/examples/tray_demo.tsx +39 -32
- package/lib/abort.d.ts +21 -0
- package/lib/assert.d.ts +2 -0
- package/lib/bitmap.d.ts +7 -0
- package/lib/bitmap.js +40 -0
- package/lib/cache-utils.d.ts +6 -0
- package/lib/certs.d.ts +1 -0
- package/lib/certs.js +31 -3
- package/lib/dpi.d.ts +9 -0
- package/lib/dpi.js +30 -0
- package/lib/dumpRects.d.ts +2 -0
- package/lib/dumpRects.js +14 -7
- package/lib/exec-log.d.ts +23 -0
- package/lib/fetch.d.ts +4 -0
- package/lib/ffi/bind.d.ts +70 -0
- package/lib/ffi/bind.js +5 -4
- package/lib/ffi/ctype.d.ts +117 -0
- package/lib/ffi/index.d.ts +2 -0
- package/lib/ffi/struct.d.ts +174 -0
- package/lib/http-common.d.ts +143 -0
- package/lib/http-server.d.ts +59 -0
- package/lib/polyfill.d.ts +22 -0
- package/lib/react-qw/components/Button.d.ts +9 -0
- package/lib/react-qw/components/CheckBox.d.ts +11 -0
- package/lib/react-qw/components/ComboBox.d.ts +11 -0
- package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
- package/lib/react-qw/components/DateTimePicker.js +6 -7
- package/lib/react-qw/components/Input.d.ts +15 -0
- package/lib/react-qw/components/Input.js +5 -1
- package/lib/react-qw/components/Link.d.ts +12 -0
- package/lib/react-qw/components/ListBox.d.ts +13 -0
- package/lib/react-qw/components/ListView.d.ts +37 -0
- package/lib/react-qw/components/ListView.js +8 -6
- package/lib/react-qw/components/PathPicker.d.ts +23 -0
- package/lib/react-qw/components/ProgressBar.d.ts +9 -0
- package/lib/react-qw/components/RadioButton.d.ts +11 -0
- package/lib/react-qw/components/ScrollView.d.ts +9 -0
- package/lib/react-qw/components/ScrollView.js +28 -22
- package/lib/react-qw/components/Slider.d.ts +12 -0
- package/lib/react-qw/components/Tab.d.ts +14 -0
- package/lib/react-qw/components/Tooltip.d.ts +7 -0
- package/lib/react-qw/components/TreeView.d.ts +18 -0
- package/lib/react-qw/components/index.d.ts +16 -0
- package/lib/react-qw/index.d.ts +24 -0
- package/lib/react-qw/index.js +7 -5
- package/lib/react-qw/layout.d.ts +29 -0
- package/lib/react-qw/nmhdr.d.ts +1 -0
- package/lib/react-qw/props.d.ts +2 -0
- package/lib/react-qw/props.js +3 -3
- package/lib/react-qw/reconciler.d.ts +21 -0
- package/lib/react-qw/reconciler.js +12 -17
- package/lib/stream.d.ts +20 -0
- package/lib/text-codec.d.ts +39 -0
- package/lib/text-measure.d.ts +14 -0
- package/lib/text-measure.js +9 -6
- package/lib/url.d.ts +54 -0
- package/lib/websocket.d.ts +73 -0
- package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
- package/lib/windows/comctl32.d.ts +14 -0
- package/lib/windows/comctl32.js +3 -2
- package/lib/windows/comdlg32.d.ts +4 -0
- package/lib/windows/{gdi32.ts → gdi32.d.ts} +184 -97
- package/lib/windows/gdi32.js +28 -6
- package/lib/windows/{kernel32.ts → kernel32.d.ts} +145 -113
- package/lib/windows/kernel32.js +9 -0
- package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
- package/lib/windows/ntdll.d.ts +5 -0
- package/lib/windows/ole32.d.ts +3 -0
- package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
- package/lib/windows/shell32.d.ts +51 -0
- package/lib/windows/shell32.js +11 -2
- package/lib/windows/structs.d.ts +3141 -0
- package/lib/windows/structs.js +51 -0
- package/lib/windows/user32.d.ts +623 -0
- package/lib/windows/user32.js +6 -5
- package/lib/windows/version.d.ts +27 -0
- package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
- package/main.js +13 -5
- package/package.json +16 -7
- package/quickwin.d.ts +13 -115
- package/qwin-nowasm-x86.exe +0 -0
- package/qwin-nowasm.exe +0 -0
- package/qwin-x86.exe +0 -0
- package/qwin.exe +0 -0
- package/test/bench_ffi_callraw.js +3 -4
- package/test/bench_ffi_callraw.ts +3 -4
- package/test/debug/mupdf_debug.js +4 -22
- package/test/debug/wasm_export_debug.js +2 -12
- package/test/debug/wasm_names.js +3 -13
- package/test/example.pdf +0 -0
- package/test/mupdf-cdn.js +40 -0
- package/test/mupdf-cdn.ts +43 -0
- package/test/test_ffi.js +8 -9
- package/test/test_ffi.ts +8 -9
- package/test/test_ffi_abi.js +6 -6
- package/test/test_ffi_abi.ts +8 -8
- package/test/test_ffi_windows.js +82 -11
- package/test/test_ffi_windows.ts +85 -11
- package/test/test_gdi_draw.js +3 -3
- package/test/test_gdi_draw.ts +4 -4
- package/test/test_mupdf_render.js +4 -22
- package/test/test_mupdf_render.ts +4 -23
- package/test/test_mupdf_twice.js +4 -19
- package/test/test_mupdf_twice.ts +4 -20
- package/test/test_mupdf_wasm.js +10 -4
- package/test/test_mupdf_wasm.ts +6 -4
- package/test/test_react_complex.js +316 -140
- package/test/test_react_counter.js +295 -133
- package/test/test_react_flex.js +297 -138
- package/test/test_react_hidden.js +296 -134
- package/test/test_react_listview_link.js +288 -131
- package/test/test_react_notify.js +290 -133
- package/test/test_react_render.js +295 -133
- package/lib/abort.ts +0 -69
- package/lib/assert.ts +0 -7
- package/lib/cache-utils.ts +0 -40
- package/lib/certs.ts +0 -229
- package/lib/dumpRects.ts +0 -26
- package/lib/exec-log.ts +0 -30
- package/lib/fetch.ts +0 -589
- package/lib/ffi/bind.ts +0 -539
- package/lib/ffi/ctype.ts +0 -371
- package/lib/ffi/index.ts +0 -6
- package/lib/ffi/struct.ts +0 -780
- package/lib/http-common.ts +0 -441
- package/lib/http-server.ts +0 -604
- package/lib/polyfill.ts +0 -171
- package/lib/react-qw/components/index.ts +0 -17
- package/lib/react-qw/index.ts +0 -96
- package/lib/react-qw/layout.ts +0 -111
- package/lib/react-qw/nmhdr.ts +0 -7
- package/lib/react-qw/props.ts +0 -41
- package/lib/react-qw/reconciler.ts +0 -383
- package/lib/stream.ts +0 -22
- package/lib/text-codec.ts +0 -171
- package/lib/text-measure.ts +0 -41
- package/lib/url.ts +0 -201
- package/lib/websocket.ts +0 -600
- package/lib/windows/comctl32.ts +0 -19
- package/lib/windows/comdlg32.ts +0 -10
- package/lib/windows/ntdll.ts +0 -11
- package/lib/windows/ole32.ts +0 -9
- package/lib/windows/shell32.ts +0 -39
- package/lib/windows/structs.ts +0 -752
- package/lib/windows/user32.ts +0 -619
- package/lib/windows/version.ts +0 -35
- package/vendor/mupdf-wasm/mupdf-wasm.d.ts +0 -571
- package/vendor/mupdf-wasm/mupdf-wasm.js +0 -2749
- package/vendor/mupdf-wasm/mupdf-wasm.wasm +0 -0
- package/vendor/mupdf-wasm/mupdf.d.ts +0 -939
- package/vendor/mupdf-wasm/mupdf.js +0 -3317
|
@@ -1367,9 +1367,9 @@ var require_scheduler_development = __commonJS({
|
|
|
1367
1367
|
}
|
|
1368
1368
|
return first;
|
|
1369
1369
|
}
|
|
1370
|
-
function compare(a,
|
|
1371
|
-
var diff = a.sortIndex -
|
|
1372
|
-
return 0 !== diff ? diff : a.id -
|
|
1370
|
+
function compare(a, b7) {
|
|
1371
|
+
var diff = a.sortIndex - b7.sortIndex;
|
|
1372
|
+
return 0 !== diff ? diff : a.id - b7.id;
|
|
1373
1373
|
}
|
|
1374
1374
|
function advanceTimers(currentTime) {
|
|
1375
1375
|
for (var timer = peek(timerQueue); null !== timer; ) {
|
|
@@ -1667,14 +1667,14 @@ var require_react_reconciler_development = __commonJS({
|
|
|
1667
1667
|
throw Error("Unable to find node on an unmounted component.");
|
|
1668
1668
|
return alternate !== fiber ? null : fiber;
|
|
1669
1669
|
}
|
|
1670
|
-
for (var a = fiber,
|
|
1670
|
+
for (var a = fiber, b7 = alternate; ; ) {
|
|
1671
1671
|
var parentA = a.return;
|
|
1672
1672
|
if (null === parentA) break;
|
|
1673
1673
|
var parentB = parentA.alternate;
|
|
1674
1674
|
if (null === parentB) {
|
|
1675
|
-
|
|
1676
|
-
if (null !==
|
|
1677
|
-
a =
|
|
1675
|
+
b7 = parentA.return;
|
|
1676
|
+
if (null !== b7) {
|
|
1677
|
+
a = b7;
|
|
1678
1678
|
continue;
|
|
1679
1679
|
}
|
|
1680
1680
|
break;
|
|
@@ -1682,23 +1682,23 @@ var require_react_reconciler_development = __commonJS({
|
|
|
1682
1682
|
if (parentA.child === parentB.child) {
|
|
1683
1683
|
for (parentB = parentA.child; parentB; ) {
|
|
1684
1684
|
if (parentB === a) return assertIsMounted(parentA), fiber;
|
|
1685
|
-
if (parentB ===
|
|
1685
|
+
if (parentB === b7) return assertIsMounted(parentA), alternate;
|
|
1686
1686
|
parentB = parentB.sibling;
|
|
1687
1687
|
}
|
|
1688
1688
|
throw Error("Unable to find node on an unmounted component.");
|
|
1689
1689
|
}
|
|
1690
|
-
if (a.return !==
|
|
1690
|
+
if (a.return !== b7.return) a = parentA, b7 = parentB;
|
|
1691
1691
|
else {
|
|
1692
1692
|
for (var didFindChild = false, _child = parentA.child; _child; ) {
|
|
1693
1693
|
if (_child === a) {
|
|
1694
1694
|
didFindChild = true;
|
|
1695
1695
|
a = parentA;
|
|
1696
|
-
|
|
1696
|
+
b7 = parentB;
|
|
1697
1697
|
break;
|
|
1698
1698
|
}
|
|
1699
|
-
if (_child ===
|
|
1699
|
+
if (_child === b7) {
|
|
1700
1700
|
didFindChild = true;
|
|
1701
|
-
|
|
1701
|
+
b7 = parentA;
|
|
1702
1702
|
a = parentB;
|
|
1703
1703
|
break;
|
|
1704
1704
|
}
|
|
@@ -1709,12 +1709,12 @@ var require_react_reconciler_development = __commonJS({
|
|
|
1709
1709
|
if (_child === a) {
|
|
1710
1710
|
didFindChild = true;
|
|
1711
1711
|
a = parentB;
|
|
1712
|
-
|
|
1712
|
+
b7 = parentA;
|
|
1713
1713
|
break;
|
|
1714
1714
|
}
|
|
1715
|
-
if (_child ===
|
|
1715
|
+
if (_child === b7) {
|
|
1716
1716
|
didFindChild = true;
|
|
1717
|
-
|
|
1717
|
+
b7 = parentB;
|
|
1718
1718
|
a = parentA;
|
|
1719
1719
|
break;
|
|
1720
1720
|
}
|
|
@@ -1726,7 +1726,7 @@ var require_react_reconciler_development = __commonJS({
|
|
|
1726
1726
|
);
|
|
1727
1727
|
}
|
|
1728
1728
|
}
|
|
1729
|
-
if (a.alternate !==
|
|
1729
|
+
if (a.alternate !== b7)
|
|
1730
1730
|
throw Error(
|
|
1731
1731
|
"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."
|
|
1732
1732
|
);
|
|
@@ -15071,10 +15071,10 @@ var require_react_reconciler_development = __commonJS({
|
|
|
15071
15071
|
setCurrentUpdatePriority(previousPriority), ReactSharedInternals.T = prevTransition;
|
|
15072
15072
|
}
|
|
15073
15073
|
};
|
|
15074
|
-
exports2.discreteUpdates = function(fn, a,
|
|
15074
|
+
exports2.discreteUpdates = function(fn, a, b7, c, d) {
|
|
15075
15075
|
var prevTransition = ReactSharedInternals.T, previousPriority = getCurrentUpdatePriority();
|
|
15076
15076
|
try {
|
|
15077
|
-
return setCurrentUpdatePriority(2), ReactSharedInternals.T = null, fn(a,
|
|
15077
|
+
return setCurrentUpdatePriority(2), ReactSharedInternals.T = null, fn(a, b7, c, d);
|
|
15078
15078
|
} finally {
|
|
15079
15079
|
setCurrentUpdatePriority(previousPriority), ReactSharedInternals.T = prevTransition, executionContext === NoContext && (workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS);
|
|
15080
15080
|
}
|
|
@@ -15356,10 +15356,10 @@ var require_constants = __commonJS({
|
|
|
15356
15356
|
// _build/test/test_react_render.js
|
|
15357
15357
|
var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
|
|
15358
15358
|
import "../lib/polyfill.js";
|
|
15359
|
-
import * as
|
|
15359
|
+
import * as gui17 from "gui";
|
|
15360
15360
|
|
|
15361
15361
|
// _build/lib/react-qw/index.js
|
|
15362
|
-
import * as
|
|
15362
|
+
import * as gui16 from "gui";
|
|
15363
15363
|
|
|
15364
15364
|
// _build/lib/windows/user32.js
|
|
15365
15365
|
import * as os3 from "os";
|
|
@@ -15368,7 +15368,6 @@ import * as os3 from "os";
|
|
|
15368
15368
|
import * as ffi from "ffi";
|
|
15369
15369
|
import * as os2 from "os";
|
|
15370
15370
|
import * as std from "std";
|
|
15371
|
-
import * as win from "win";
|
|
15372
15371
|
|
|
15373
15372
|
// _build/lib/text-codec.js
|
|
15374
15373
|
var _labelMap = {
|
|
@@ -15390,19 +15389,19 @@ function _normalizeLabel(label) {
|
|
|
15390
15389
|
function _decodeUTF8(buf, fatal) {
|
|
15391
15390
|
let out = "";
|
|
15392
15391
|
for (let i = 0; i < buf.length; ) {
|
|
15393
|
-
const
|
|
15394
|
-
if (
|
|
15395
|
-
out += String.fromCharCode(
|
|
15392
|
+
const b7 = buf[i++];
|
|
15393
|
+
if (b7 < 128) {
|
|
15394
|
+
out += String.fromCharCode(b7);
|
|
15396
15395
|
continue;
|
|
15397
15396
|
}
|
|
15398
|
-
if (
|
|
15397
|
+
if (b7 < 192) {
|
|
15399
15398
|
out += fatal ? (() => {
|
|
15400
15399
|
throw new TypeError("unexpected continuation byte");
|
|
15401
15400
|
})() : "\uFFFD";
|
|
15402
15401
|
continue;
|
|
15403
15402
|
}
|
|
15404
15403
|
let c, min;
|
|
15405
|
-
if (
|
|
15404
|
+
if (b7 < 224) {
|
|
15406
15405
|
if (i >= buf.length) {
|
|
15407
15406
|
out += fatal ? (() => {
|
|
15408
15407
|
throw new TypeError("incomplete utf-8");
|
|
@@ -15414,9 +15413,9 @@ function _decodeUTF8(buf, fatal) {
|
|
|
15414
15413
|
out += "\uFFFD";
|
|
15415
15414
|
continue;
|
|
15416
15415
|
}
|
|
15417
|
-
c = (
|
|
15416
|
+
c = (b7 & 31) << 6 | b22 & 63;
|
|
15418
15417
|
min = 128;
|
|
15419
|
-
} else if (
|
|
15418
|
+
} else if (b7 < 240) {
|
|
15420
15419
|
if (i + 1 >= buf.length) {
|
|
15421
15420
|
out += fatal ? (() => {
|
|
15422
15421
|
throw new TypeError("incomplete utf-8");
|
|
@@ -15429,9 +15428,9 @@ function _decodeUTF8(buf, fatal) {
|
|
|
15429
15428
|
out += "\uFFFD";
|
|
15430
15429
|
continue;
|
|
15431
15430
|
}
|
|
15432
|
-
c = (
|
|
15431
|
+
c = (b7 & 15) << 12 | (b22 & 63) << 6 | b32 & 63;
|
|
15433
15432
|
min = 2048;
|
|
15434
|
-
} else if (
|
|
15433
|
+
} else if (b7 < 248) {
|
|
15435
15434
|
if (i + 2 >= buf.length) {
|
|
15436
15435
|
out += fatal ? (() => {
|
|
15437
15436
|
throw new TypeError("incomplete utf-8");
|
|
@@ -15445,7 +15444,7 @@ function _decodeUTF8(buf, fatal) {
|
|
|
15445
15444
|
out += "\uFFFD";
|
|
15446
15445
|
continue;
|
|
15447
15446
|
}
|
|
15448
|
-
c = (
|
|
15447
|
+
c = (b7 & 7) << 18 | (b22 & 63) << 12 | (b32 & 63) << 6 | b42 & 63;
|
|
15449
15448
|
min = 65536;
|
|
15450
15449
|
} else {
|
|
15451
15450
|
out += fatal ? (() => {
|
|
@@ -15749,7 +15748,7 @@ function loadDll(dll) {
|
|
|
15749
15748
|
const cached = _dllCache.get(dll);
|
|
15750
15749
|
if (cached !== void 0)
|
|
15751
15750
|
return cached;
|
|
15752
|
-
const loaded =
|
|
15751
|
+
const loaded = ffi.LoadLibrary(dll);
|
|
15753
15752
|
if (!loaded)
|
|
15754
15753
|
throw new Error(`ffi-bind: LoadLibrary("${dll}") failed`);
|
|
15755
15754
|
_dllCache.set(dll, loaded);
|
|
@@ -15959,7 +15958,7 @@ var BYTE = {
|
|
|
15959
15958
|
};
|
|
15960
15959
|
var builtinCodecs = { WCHAR, BYTE };
|
|
15961
15960
|
function bind(dll, name, sig, encoders, decoders) {
|
|
15962
|
-
const proc =
|
|
15961
|
+
const proc = ffi.GetProcAddress(loadDll(dll), name);
|
|
15963
15962
|
if (!proc)
|
|
15964
15963
|
throw new Error(`ffi-bind: proc "${name}" not found in ${dll}`);
|
|
15965
15964
|
const effDec = decoders ?? encoders;
|
|
@@ -15999,13 +15998,13 @@ function lower(v) {
|
|
|
15999
15998
|
type: { tag: "array", elementType: el.type, elementSize: el.size }
|
|
16000
15999
|
};
|
|
16001
16000
|
}
|
|
16002
|
-
const
|
|
16003
|
-
if (
|
|
16004
|
-
const rawUnit =
|
|
16001
|
+
const b7 = /^([A-Za-z_]\w*):(\d+)$/.exec(v);
|
|
16002
|
+
if (b7) {
|
|
16003
|
+
const rawUnit = b7[1];
|
|
16005
16004
|
const unit = normToken(rawUnit);
|
|
16006
16005
|
if (!isCNumberToken(unit) || unit === "f32" || unit === "f64")
|
|
16007
16006
|
throw new Error(`ffi-struct: bitfield unit must be an integer type, got "${rawUnit}"`);
|
|
16008
|
-
const width = Number(
|
|
16007
|
+
const width = Number(b7[2]);
|
|
16009
16008
|
const s2 = SizeAlign[unit];
|
|
16010
16009
|
const cap = s2 * 8;
|
|
16011
16010
|
if (!Number.isInteger(width) || width < 1)
|
|
@@ -16321,10 +16320,10 @@ function buildDecl(kind, member, pack) {
|
|
|
16321
16320
|
decl[k] = v;
|
|
16322
16321
|
return decl;
|
|
16323
16322
|
}
|
|
16324
|
-
function struct(a,
|
|
16323
|
+
function struct(a, b7, c) {
|
|
16325
16324
|
const isNamed = typeof a === "string";
|
|
16326
|
-
const raw = isNamed ?
|
|
16327
|
-
const opts = isNamed ? c :
|
|
16325
|
+
const raw = isNamed ? b7 : a;
|
|
16326
|
+
const opts = isNamed ? c : b7;
|
|
16328
16327
|
return createStruct(buildDecl("struct", raw, opts?.pack));
|
|
16329
16328
|
}
|
|
16330
16329
|
|
|
@@ -16349,6 +16348,17 @@ var SIZE_DECL = {
|
|
|
16349
16348
|
cy: "i32"
|
|
16350
16349
|
};
|
|
16351
16350
|
var SIZE = /* @__PURE__ */ struct("SIZE", SIZE_DECL);
|
|
16351
|
+
var SCROLLINFO_DECL = {
|
|
16352
|
+
"#": "struct",
|
|
16353
|
+
cbSize: "u32",
|
|
16354
|
+
fMask: "u32",
|
|
16355
|
+
nMin: "i32",
|
|
16356
|
+
nMax: "i32",
|
|
16357
|
+
nPage: "u32",
|
|
16358
|
+
nPos: "i32",
|
|
16359
|
+
nTrackPos: "i32"
|
|
16360
|
+
};
|
|
16361
|
+
var SCROLLINFO = /* @__PURE__ */ struct("SCROLLINFO", SCROLLINFO_DECL);
|
|
16352
16362
|
var LOGFONTW_DECL = {
|
|
16353
16363
|
"#": "struct",
|
|
16354
16364
|
lfHeight: "i32",
|
|
@@ -16367,6 +16377,41 @@ var LOGFONTW_DECL = {
|
|
|
16367
16377
|
lfFaceName: "u16[32]@utf-16le"
|
|
16368
16378
|
};
|
|
16369
16379
|
var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", LOGFONTW_DECL);
|
|
16380
|
+
var NONCLIENTMETRICSW_DECL = {
|
|
16381
|
+
"#": "struct",
|
|
16382
|
+
cbSize: "u32",
|
|
16383
|
+
iBorderWidth: "i32",
|
|
16384
|
+
iScrollWidth: "i32",
|
|
16385
|
+
iScrollHeight: "i32",
|
|
16386
|
+
iCaptionWidth: "i32",
|
|
16387
|
+
iCaptionHeight: "i32",
|
|
16388
|
+
lfCaptionFont: LOGFONTW_DECL,
|
|
16389
|
+
iSmCaptionWidth: "i32",
|
|
16390
|
+
iSmCaptionHeight: "i32",
|
|
16391
|
+
lfSmCaptionFont: LOGFONTW_DECL,
|
|
16392
|
+
iMenuWidth: "i32",
|
|
16393
|
+
iMenuHeight: "i32",
|
|
16394
|
+
lfMenuFont: LOGFONTW_DECL,
|
|
16395
|
+
lfStatusFont: LOGFONTW_DECL,
|
|
16396
|
+
lfMessageFont: LOGFONTW_DECL,
|
|
16397
|
+
iPaddedBorderWidth: "i32"
|
|
16398
|
+
};
|
|
16399
|
+
var NONCLIENTMETRICSW = /* @__PURE__ */ struct("NONCLIENTMETRICSW", NONCLIENTMETRICSW_DECL);
|
|
16400
|
+
var BITMAPINFOHEADER_DECL = {
|
|
16401
|
+
"#": "struct",
|
|
16402
|
+
biSize: "u32",
|
|
16403
|
+
biWidth: "i32",
|
|
16404
|
+
biHeight: "i32",
|
|
16405
|
+
biPlanes: "u16",
|
|
16406
|
+
biBitCount: "u16",
|
|
16407
|
+
biCompression: "u32",
|
|
16408
|
+
biSizeImage: "u32",
|
|
16409
|
+
biXPelsPerMeter: "i32",
|
|
16410
|
+
biYPelsPerMeter: "i32",
|
|
16411
|
+
biClrUsed: "u32",
|
|
16412
|
+
biClrImportant: "u32"
|
|
16413
|
+
};
|
|
16414
|
+
var BITMAPINFOHEADER = /* @__PURE__ */ struct("BITMAPINFOHEADER", BITMAPINFOHEADER_DECL);
|
|
16370
16415
|
var OPENFILENAMEW_DECL = {
|
|
16371
16416
|
"#": "struct",
|
|
16372
16417
|
lStructSize: "u32",
|
|
@@ -16573,24 +16618,34 @@ var NOTIFYICONIDENTIFIER = /* @__PURE__ */ struct("NOTIFYICONIDENTIFIER", NOTIFY
|
|
|
16573
16618
|
var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
|
|
16574
16619
|
var _bProbe = b("GetDesktopWindow", " -> <HWND>ptr");
|
|
16575
16620
|
var LONG_PTR_SYM = os3.arch === "x64" ? "PtrW" : "W";
|
|
16621
|
+
var ShowWindow = /* @__PURE__ */ b("ShowWindow", "<HWND>ptr i32@ShowWindowCmd -> i32");
|
|
16576
16622
|
var SetWindowPos = /* @__PURE__ */ b("SetWindowPos", "<HWND>ptr <>ptr@SetWindowPosHwnd i32 i32 i32 i32 u32 -> i32");
|
|
16623
|
+
var GetWindowRect = /* @__PURE__ */ b("GetWindowRect", "<HWND>ptr <RECT>ptr -> i32");
|
|
16624
|
+
var GetClientRect = /* @__PURE__ */ b("GetClientRect", "<HWND>ptr <RECT>ptr -> i32");
|
|
16625
|
+
var GetWindowText = /* @__PURE__ */ b("GetWindowTextW", "<HWND>ptr <BYTE>ptr i32 -> i32");
|
|
16577
16626
|
var SetWindowText = /* @__PURE__ */ b("SetWindowTextW", "<HWND>ptr <WCHAR>ptr -> i32");
|
|
16627
|
+
var GetWindowTextLength = /* @__PURE__ */ b("GetWindowTextLengthW", "<HWND>ptr -> i32");
|
|
16578
16628
|
var GetWindowLongPtr = /* @__PURE__ */ b("GetWindowLong" + LONG_PTR_SYM, "<HWND>ptr i32@Gwlp -> <>ptr");
|
|
16579
16629
|
var SetWindowLongPtr = /* @__PURE__ */ b("SetWindowLong" + LONG_PTR_SYM, "<HWND>ptr i32@Gwlp <>ptr -> <>ptr");
|
|
16580
16630
|
var EnableWindow = /* @__PURE__ */ b("EnableWindow", "<HWND>ptr i32 -> i32");
|
|
16581
16631
|
var SetParent = /* @__PURE__ */ b("SetParent", "<HWND>ptr <HWND>ptr -> <HWND>ptr");
|
|
16632
|
+
var PostQuitMessage = /* @__PURE__ */ b("PostQuitMessage", "i32 -> void");
|
|
16582
16633
|
var DefWindowProc = /* @__PURE__ */ b("DefWindowProcW", "<HWND>ptr u32@AnyMsg <>ptr <>ptr -> <>ptr");
|
|
16583
16634
|
var CallWindowProc = /* @__PURE__ */ b("CallWindowProcW", "<>ptr <HWND>ptr u32@AnyMsg <>ptr <>ptr -> <>ptr");
|
|
16584
16635
|
var GetDC = /* @__PURE__ */ b("GetDC", "<HWND>ptr -> <HDC>ptr");
|
|
16585
16636
|
var ReleaseDC = /* @__PURE__ */ b("ReleaseDC", "<HWND>ptr <HDC>ptr! -> i32");
|
|
16586
16637
|
var DrawText = /* @__PURE__ */ b("DrawTextW", "<HDC>ptr! <WCHAR>ptr i32 <RECT>ptr i32 -> i32");
|
|
16587
16638
|
var InvalidateRect = /* @__PURE__ */ b("InvalidateRect", "<HWND>ptr <RECT>ptr i32 -> i32", { RECT });
|
|
16639
|
+
var UpdateWindow = /* @__PURE__ */ b("UpdateWindow", "<HWND>ptr -> i32");
|
|
16588
16640
|
var SetCursor = /* @__PURE__ */ b("SetCursor", "<HCURSOR>ptr -> <HCURSOR>ptr");
|
|
16589
16641
|
var LoadCursor = /* @__PURE__ */ b("LoadCursorW", "<HMODULE>ptr <>ptr -> <HCURSOR>ptr");
|
|
16590
16642
|
var GetCursorPos = /* @__PURE__ */ b("GetCursorPos", "<POINT>ptr -> i32");
|
|
16591
16643
|
var ScreenToClient = /* @__PURE__ */ b("ScreenToClient", "<HWND>ptr <POINT>ptr -> i32");
|
|
16644
|
+
var SetScrollInfo = /* @__PURE__ */ b("SetScrollInfo", "<HWND>ptr u32 <SCROLLINFO>ptr i32 -> i32", { SCROLLINFO });
|
|
16645
|
+
var GetScrollInfo = /* @__PURE__ */ b("GetScrollInfo", "<HWND>ptr u32 <SCROLLINFO>ptr -> i32");
|
|
16592
16646
|
var ShowScrollBar = /* @__PURE__ */ b("ShowScrollBar", "<HWND>ptr u32 i32 -> i32");
|
|
16593
16647
|
var GetSystemMetrics = /* @__PURE__ */ b("GetSystemMetrics", "i32 -> i32");
|
|
16648
|
+
var SystemParametersInfo = /* @__PURE__ */ b("SystemParametersInfoW", "u32 u32 <BYTE>ptr u32 -> i32");
|
|
16594
16649
|
|
|
16595
16650
|
// _build/lib/react-qw/reconciler.js
|
|
16596
16651
|
var import_react_reconciler = __toESM(require_react_reconciler(), 1);
|
|
@@ -16605,8 +16660,33 @@ var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
|
|
|
16605
16660
|
var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
|
|
16606
16661
|
var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });
|
|
16607
16662
|
var SelectObject = /* @__PURE__ */ b2("SelectObject", "<HDC>ptr! <HGDIOBJ>ptr -> <HGDIOBJ>ptr");
|
|
16663
|
+
var CreateDIBSection = /* @__PURE__ */ b2("CreateDIBSection", "<HDC>ptr <>ptr u32@ColorUse <>ptr <>ptr u32 -> <HGDIOBJ>ptr");
|
|
16664
|
+
var SetDIBits = /* @__PURE__ */ b2("SetDIBits", "<HDC>ptr <HGDIOBJ>ptr! u32 u32 <BYTE>ptr <>ptr u32@ColorUse -> i32");
|
|
16608
16665
|
var GetObject = /* @__PURE__ */ b2("GetObjectW", "<HGDIOBJ>ptr i32 <BYTE>ptr -> i32");
|
|
16609
16666
|
|
|
16667
|
+
// _build/lib/dpi.js
|
|
16668
|
+
function getScaleFactor() {
|
|
16669
|
+
const hdc = GetDC(NULL);
|
|
16670
|
+
const dpi = hdc ? GetDeviceCaps(
|
|
16671
|
+
hdc,
|
|
16672
|
+
88
|
|
16673
|
+
/* DeviceCap.LOGPIXELSX */
|
|
16674
|
+
) : 96;
|
|
16675
|
+
if (hdc)
|
|
16676
|
+
ReleaseDC(NULL, hdc);
|
|
16677
|
+
return dpi / 96;
|
|
16678
|
+
}
|
|
16679
|
+
function createSystemDpiFont() {
|
|
16680
|
+
const ncm = NONCLIENTMETRICSW.encode({ cbSize: NONCLIENTMETRICSW.size });
|
|
16681
|
+
if (!SystemParametersInfo(41, NONCLIENTMETRICSW.size, ncm, 0)) {
|
|
16682
|
+
const legacySize = NONCLIENTMETRICSW.size - 4;
|
|
16683
|
+
NONCLIENTMETRICSW.encode({ cbSize: legacySize }, ncm);
|
|
16684
|
+
if (!SystemParametersInfo(41, legacySize, ncm, 0))
|
|
16685
|
+
return NULL;
|
|
16686
|
+
}
|
|
16687
|
+
return CreateFontIndirect(NONCLIENTMETRICSW.decode(ncm).lfMessageFont);
|
|
16688
|
+
}
|
|
16689
|
+
|
|
16610
16690
|
// _build/lib/react-qw/props.js
|
|
16611
16691
|
import * as gui from "gui";
|
|
16612
16692
|
function applyProps(instance, newProps, _oldProps) {
|
|
@@ -16630,14 +16710,14 @@ function applyProps(instance, newProps, _oldProps) {
|
|
|
16630
16710
|
EnableWindow(hwnd2, !newProps.disabled ? 1 : 0);
|
|
16631
16711
|
}
|
|
16632
16712
|
if ("hidden" in newProps) {
|
|
16633
|
-
|
|
16713
|
+
ShowWindow(
|
|
16634
16714
|
hwnd2,
|
|
16635
16715
|
newProps.hidden ? 0 : 5
|
|
16636
16716
|
/* ShowWindowCmd.SHOW */
|
|
16637
16717
|
);
|
|
16638
16718
|
}
|
|
16639
16719
|
if ("visible" in newProps) {
|
|
16640
|
-
|
|
16720
|
+
ShowWindow(
|
|
16641
16721
|
hwnd2,
|
|
16642
16722
|
newProps.visible ? 5 : 0
|
|
16643
16723
|
/* ShowWindowCmd.HIDE */
|
|
@@ -16757,24 +16837,21 @@ function measureTextForHwnd(hwnd2, text) {
|
|
|
16757
16837
|
if (hFont)
|
|
16758
16838
|
SelectObject(hdc, oldFont);
|
|
16759
16839
|
ReleaseDC(hwnd2, hdc);
|
|
16760
|
-
const wr =
|
|
16761
|
-
const cr =
|
|
16762
|
-
|
|
16763
|
-
|
|
16764
|
-
|
|
16840
|
+
const wr = RECT.alloc();
|
|
16841
|
+
const cr = RECT.alloc();
|
|
16842
|
+
const okWr = GetWindowRect(hwnd2, wr.ptr);
|
|
16843
|
+
const okCr = GetClientRect(hwnd2, cr.ptr);
|
|
16844
|
+
if (okWr && okCr) {
|
|
16845
|
+
const w = RECT.decode(wr), c = RECT.decode(cr);
|
|
16846
|
+
result.width += w.right - w.left - (c.right - c.left);
|
|
16847
|
+
result.height += w.bottom - w.top - (c.bottom - c.top);
|
|
16765
16848
|
}
|
|
16766
16849
|
return result;
|
|
16767
16850
|
}
|
|
16768
16851
|
|
|
16769
16852
|
// _build/lib/react-qw/reconciler.js
|
|
16770
|
-
var dpiFont =
|
|
16771
|
-
var scaleFactor = (
|
|
16772
|
-
const hdc = GetDC(NULL);
|
|
16773
|
-
const dpi = hdc ? GetDeviceCaps(hdc, 88) : 96;
|
|
16774
|
-
if (hdc)
|
|
16775
|
-
ReleaseDC(NULL, hdc);
|
|
16776
|
-
return dpi / 96;
|
|
16777
|
-
})();
|
|
16853
|
+
var dpiFont = createSystemDpiFont();
|
|
16854
|
+
var scaleFactor = getScaleFactor();
|
|
16778
16855
|
var DELAYED_CONTROLS = /* @__PURE__ */ new Set(["SysListView32", "SysTreeView32", "LISTBOX", "COMBOBOX", "msctls_trackbar32", "SysDateTimePick32", "SysLink"]);
|
|
16779
16856
|
function isDelayedControl(winClass) {
|
|
16780
16857
|
return DELAYED_CONTROLS.has(winClass);
|
|
@@ -16820,11 +16897,12 @@ function runFlexLayout(inst) {
|
|
|
16820
16897
|
const visible = children.filter((c) => !c.props.hidden);
|
|
16821
16898
|
if (visible.length === 0)
|
|
16822
16899
|
return;
|
|
16823
|
-
const
|
|
16824
|
-
if (!
|
|
16900
|
+
const rcBuf = RECT.alloc();
|
|
16901
|
+
if (!GetClientRect(inst.hwnd, rcBuf.ptr)) {
|
|
16825
16902
|
console.log("flex: no rect for", inst.hwnd, inst.type);
|
|
16826
16903
|
return;
|
|
16827
16904
|
}
|
|
16905
|
+
const rect = RECT.decode(rcBuf);
|
|
16828
16906
|
const pw = (rect.right - rect.left) / scaleFactor;
|
|
16829
16907
|
const ph = (rect.bottom - rect.top) / scaleFactor;
|
|
16830
16908
|
if (pw <= 0 || ph <= 0) {
|
|
@@ -17025,7 +17103,7 @@ var hostConfig = {
|
|
|
17025
17103
|
},
|
|
17026
17104
|
hideInstance(instance) {
|
|
17027
17105
|
if (instance.hwnd !== null)
|
|
17028
|
-
|
|
17106
|
+
ShowWindow(
|
|
17029
17107
|
instance.hwnd,
|
|
17030
17108
|
0
|
|
17031
17109
|
/* ShowWindowCmd.HIDE */
|
|
@@ -17033,7 +17111,7 @@ var hostConfig = {
|
|
|
17033
17111
|
},
|
|
17034
17112
|
hideTextInstance(instance) {
|
|
17035
17113
|
if (instance.hwnd !== null)
|
|
17036
|
-
|
|
17114
|
+
ShowWindow(
|
|
17037
17115
|
instance.hwnd,
|
|
17038
17116
|
0
|
|
17039
17117
|
/* ShowWindowCmd.HIDE */
|
|
@@ -17041,7 +17119,7 @@ var hostConfig = {
|
|
|
17041
17119
|
},
|
|
17042
17120
|
unhideInstance(instance, _props) {
|
|
17043
17121
|
if (instance.hwnd !== null)
|
|
17044
|
-
|
|
17122
|
+
ShowWindow(
|
|
17045
17123
|
instance.hwnd,
|
|
17046
17124
|
5
|
|
17047
17125
|
/* ShowWindowCmd.SHOW */
|
|
@@ -17049,7 +17127,7 @@ var hostConfig = {
|
|
|
17049
17127
|
},
|
|
17050
17128
|
unhideTextInstance(instance, _text) {
|
|
17051
17129
|
if (instance.hwnd !== null)
|
|
17052
|
-
|
|
17130
|
+
ShowWindow(
|
|
17053
17131
|
instance.hwnd,
|
|
17054
17132
|
5
|
|
17055
17133
|
/* ShowWindowCmd.SHOW */
|
|
@@ -17296,11 +17374,10 @@ var DateTimePicker = (0, import_react5.forwardRef)(function DateTimePicker2({ va
|
|
|
17296
17374
|
if (!h)
|
|
17297
17375
|
return;
|
|
17298
17376
|
InvalidateRect(h, NULL, 1);
|
|
17299
|
-
const cr =
|
|
17300
|
-
if (cr) {
|
|
17301
|
-
const
|
|
17302
|
-
|
|
17303
|
-
gui6.SendMessage(h, 5, 0, hh << 16 | w);
|
|
17377
|
+
const cr = RECT.alloc();
|
|
17378
|
+
if (GetClientRect(h, cr.ptr)) {
|
|
17379
|
+
const { left, top, right, bottom } = RECT.decode(cr);
|
|
17380
|
+
gui6.SendMessage(h, 5, 0, bottom - top << 16 | right - left);
|
|
17304
17381
|
}
|
|
17305
17382
|
}, []);
|
|
17306
17383
|
return (0, import_jsx_runtime4.jsx)("w", { type: "STATIC", ws: 268435456 | 33554432, style: { ...style, flexDirection: "column", alignItems: "stretch" }, ref, onEvent: (e) => {
|
|
@@ -17361,7 +17438,10 @@ var Input = (0, import_react6.forwardRef)(({ value: controlledValue, defaultValu
|
|
|
17361
17438
|
const h = inputRef.current;
|
|
17362
17439
|
if (!h)
|
|
17363
17440
|
return;
|
|
17364
|
-
const
|
|
17441
|
+
const cap = GetWindowTextLength(h) + 1;
|
|
17442
|
+
const buf = WCHAR.alloc(cap);
|
|
17443
|
+
GetWindowText(h, buf, cap);
|
|
17444
|
+
const newText = WCHAR.decode(buf);
|
|
17365
17445
|
if (!isControlled)
|
|
17366
17446
|
setInternalValue(newText);
|
|
17367
17447
|
onChange?.(newText);
|
|
@@ -17449,6 +17529,49 @@ var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
|
|
|
17449
17529
|
var import_react9 = __toESM(require_react(), 1);
|
|
17450
17530
|
import * as gui9 from "gui";
|
|
17451
17531
|
import * as ffi3 from "ffi";
|
|
17532
|
+
|
|
17533
|
+
// _build/lib/bitmap.js
|
|
17534
|
+
function createBitmapFromPixels(width, height, pixels) {
|
|
17535
|
+
if (width <= 0 || height <= 0)
|
|
17536
|
+
return NULL;
|
|
17537
|
+
const len = width * height * 4;
|
|
17538
|
+
if (pixels.byteLength < len)
|
|
17539
|
+
return NULL;
|
|
17540
|
+
const bi = BITMAPINFOHEADER.encode({
|
|
17541
|
+
biSize: BITMAPINFOHEADER.size,
|
|
17542
|
+
biWidth: width,
|
|
17543
|
+
biHeight: -height,
|
|
17544
|
+
biPlanes: 1,
|
|
17545
|
+
biBitCount: 32
|
|
17546
|
+
});
|
|
17547
|
+
const hbm = CreateDIBSection(NULL, bi.ptr, 0, NULL, NULL, 0);
|
|
17548
|
+
if (!hbm)
|
|
17549
|
+
return NULL;
|
|
17550
|
+
const src = new PtrArrayBuffer(len);
|
|
17551
|
+
new Uint8Array(src).set(new Uint8Array(pixels, 0, len));
|
|
17552
|
+
if (SetDIBits(
|
|
17553
|
+
NULL,
|
|
17554
|
+
hbm,
|
|
17555
|
+
0,
|
|
17556
|
+
height,
|
|
17557
|
+
src,
|
|
17558
|
+
bi.ptr,
|
|
17559
|
+
0
|
|
17560
|
+
/* ColorUse.RGB_COLORS */
|
|
17561
|
+
) !== height) {
|
|
17562
|
+
DeleteObject(hbm);
|
|
17563
|
+
return NULL;
|
|
17564
|
+
}
|
|
17565
|
+
return hbm;
|
|
17566
|
+
}
|
|
17567
|
+
|
|
17568
|
+
// _build/lib/windows/comctl32.js
|
|
17569
|
+
var b3 = (name, sig) => bind("comctl32.dll", name, sig);
|
|
17570
|
+
var ImageListCreate = /* @__PURE__ */ b3("ImageList_Create", "i32 i32 u32 i32 i32 -> <HIMAGELIST>ptr");
|
|
17571
|
+
var ImageListAdd = /* @__PURE__ */ b3("ImageList_Add", "<HIMAGELIST>ptr <HGDIOBJ>ptr <HGDIOBJ>ptr -> i32");
|
|
17572
|
+
var ImageListDestroy = /* @__PURE__ */ b3("ImageList_Destroy", "<HIMAGELIST>ptr -> i32");
|
|
17573
|
+
|
|
17574
|
+
// _build/lib/react-qw/components/ListView.js
|
|
17452
17575
|
function writeU32(ptr, offset, v) {
|
|
17453
17576
|
ffi3.writeByte(ptr + offset, v & 255);
|
|
17454
17577
|
ffi3.writeByte(ptr + offset + 1, v >> 8 & 255);
|
|
@@ -17538,7 +17661,7 @@ function resolveCellStyle(columns, data, row, colIndex) {
|
|
|
17538
17661
|
}
|
|
17539
17662
|
function makeLVItem(i, sub, text, image) {
|
|
17540
17663
|
const textBuf = WCHAR.encode(text);
|
|
17541
|
-
const
|
|
17664
|
+
const b7 = LVITEMW.encode({
|
|
17542
17665
|
mask: 1 | (image !== void 0 ? 2 : 0),
|
|
17543
17666
|
iItem: i,
|
|
17544
17667
|
iSubItem: sub,
|
|
@@ -17555,32 +17678,32 @@ function makeLVItem(i, sub, text, image) {
|
|
|
17555
17678
|
piColFmt: 0,
|
|
17556
17679
|
iGroup: 0
|
|
17557
17680
|
});
|
|
17558
|
-
|
|
17559
|
-
return
|
|
17681
|
+
b7.__textBuf = textBuf;
|
|
17682
|
+
return b7;
|
|
17560
17683
|
}
|
|
17561
17684
|
var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, data, style, icons, iconSize, getIcon }, ref) {
|
|
17562
17685
|
const lvRef = (0, import_react9.useRef)(null);
|
|
17563
|
-
const iconListRef = (0, import_react9.useRef)(
|
|
17686
|
+
const iconListRef = (0, import_react9.useRef)(NULL);
|
|
17564
17687
|
(0, import_react9.useEffect)(() => {
|
|
17565
17688
|
const h = lvRef.current;
|
|
17566
17689
|
if (!h)
|
|
17567
17690
|
return;
|
|
17568
17691
|
const il = iconListRef.current;
|
|
17569
|
-
iconListRef.current =
|
|
17692
|
+
iconListRef.current = NULL;
|
|
17570
17693
|
if (il) {
|
|
17571
17694
|
gui9.SendMessage(h, 4099, 1, 0);
|
|
17572
|
-
|
|
17695
|
+
ImageListDestroy(il);
|
|
17573
17696
|
}
|
|
17574
17697
|
if (!icons || icons.length === 0)
|
|
17575
17698
|
return;
|
|
17576
17699
|
const size = iconSize ?? 32;
|
|
17577
|
-
const img =
|
|
17700
|
+
const img = ImageListCreate(size, size, 32, icons.length, 1);
|
|
17578
17701
|
if (!img)
|
|
17579
17702
|
return;
|
|
17580
17703
|
for (const p of icons) {
|
|
17581
|
-
const hbm =
|
|
17704
|
+
const hbm = createBitmapFromPixels(size, size, p);
|
|
17582
17705
|
if (hbm) {
|
|
17583
|
-
|
|
17706
|
+
ImageListAdd(img, hbm, NULL);
|
|
17584
17707
|
DeleteObject(hbm);
|
|
17585
17708
|
}
|
|
17586
17709
|
}
|
|
@@ -17761,22 +17884,19 @@ var RadioButton = (0, import_react11.forwardRef)(({ checked: controlledChecked,
|
|
|
17761
17884
|
// _build/lib/react-qw/components/ScrollView.js
|
|
17762
17885
|
var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
|
|
17763
17886
|
var import_react12 = __toESM(require_react(), 1);
|
|
17764
|
-
import * as gui12 from "gui";
|
|
17765
17887
|
var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth, contentHeight }, ref) => {
|
|
17766
17888
|
const svRef = (0, import_react12.useRef)(null);
|
|
17767
17889
|
const contentRef = (0, import_react12.useRef)(null);
|
|
17768
17890
|
const scrollXRef = (0, import_react12.useRef)(0);
|
|
17769
17891
|
const scrollYRef = (0, import_react12.useRef)(0);
|
|
17770
17892
|
function updateScroll(sv, content) {
|
|
17771
|
-
const
|
|
17772
|
-
if (!
|
|
17893
|
+
const svBuf = RECT.alloc();
|
|
17894
|
+
if (!GetClientRect(sv, svBuf.ptr))
|
|
17773
17895
|
return;
|
|
17774
|
-
const
|
|
17775
|
-
const
|
|
17776
|
-
const
|
|
17777
|
-
const scale =
|
|
17778
|
-
if (hdc)
|
|
17779
|
-
ReleaseDC(NULL, hdc);
|
|
17896
|
+
const { left, top, right, bottom } = RECT.decode(svBuf);
|
|
17897
|
+
const svW = right - left;
|
|
17898
|
+
const svH = bottom - top;
|
|
17899
|
+
const scale = getScaleFactor();
|
|
17780
17900
|
const natW = Math.round((contentWidth ?? svW / scale) * scale);
|
|
17781
17901
|
const natH = Math.round((contentHeight ?? svH / scale) * scale);
|
|
17782
17902
|
scrollXRef.current = Math.max(0, Math.min(scrollXRef.current, natW - svW));
|
|
@@ -17793,14 +17913,28 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17793
17913
|
);
|
|
17794
17914
|
forceFlexLayout(content);
|
|
17795
17915
|
if (natW > svW) {
|
|
17796
|
-
|
|
17916
|
+
SetScrollInfo(sv, 0, {
|
|
17917
|
+
cbSize: SCROLLINFO.size,
|
|
17918
|
+
fMask: 1 | 2 | 4,
|
|
17919
|
+
nMin: 0,
|
|
17920
|
+
nMax: natW - 1,
|
|
17921
|
+
nPage: svW,
|
|
17922
|
+
nPos: scrollXRef.current
|
|
17923
|
+
}, 1);
|
|
17797
17924
|
ShowScrollBar(sv, 0, 1);
|
|
17798
17925
|
} else {
|
|
17799
17926
|
scrollXRef.current = 0;
|
|
17800
17927
|
ShowScrollBar(sv, 0, 0);
|
|
17801
17928
|
}
|
|
17802
17929
|
if (natH > svH) {
|
|
17803
|
-
|
|
17930
|
+
SetScrollInfo(sv, 1, {
|
|
17931
|
+
cbSize: SCROLLINFO.size,
|
|
17932
|
+
fMask: 1 | 2 | 4,
|
|
17933
|
+
nMin: 0,
|
|
17934
|
+
nMax: natH - 1,
|
|
17935
|
+
nPage: svH,
|
|
17936
|
+
nPos: scrollYRef.current
|
|
17937
|
+
}, 1);
|
|
17804
17938
|
ShowScrollBar(sv, 1, 1);
|
|
17805
17939
|
} else {
|
|
17806
17940
|
scrollYRef.current = 0;
|
|
@@ -17830,15 +17964,21 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17830
17964
|
1 | 4
|
|
17831
17965
|
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17832
17966
|
);
|
|
17833
|
-
|
|
17967
|
+
SetScrollInfo(sv, bar, { cbSize: SCROLLINFO.size, fMask: 4, nPos: newPos }, 1);
|
|
17834
17968
|
}
|
|
17835
17969
|
function handleScroll(e, bar) {
|
|
17836
17970
|
const sv = svRef.current;
|
|
17837
17971
|
const content = contentRef.current;
|
|
17838
17972
|
if (!sv || !content)
|
|
17839
17973
|
return;
|
|
17840
|
-
const
|
|
17841
|
-
|
|
17974
|
+
const si = SCROLLINFO.encode({
|
|
17975
|
+
cbSize: SCROLLINFO.size,
|
|
17976
|
+
fMask: 23
|
|
17977
|
+
/* ScrollInfoFlag.ALL */
|
|
17978
|
+
});
|
|
17979
|
+
GetScrollInfo(sv, bar, si.ptr);
|
|
17980
|
+
const info = SCROLLINFO.decode(si);
|
|
17981
|
+
const maxPos = info.nMax - info.nPage + 1;
|
|
17842
17982
|
const code = e.wParam & 65535;
|
|
17843
17983
|
const ref_ = bar === 1 ? scrollYRef : scrollXRef;
|
|
17844
17984
|
let newPos = ref_.current;
|
|
@@ -17849,9 +17989,9 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17849
17989
|
else if (code === 1)
|
|
17850
17990
|
newPos += 20;
|
|
17851
17991
|
else if (code === 2)
|
|
17852
|
-
newPos -= info.
|
|
17992
|
+
newPos -= info.nPage;
|
|
17853
17993
|
else if (code === 3)
|
|
17854
|
-
newPos += info.
|
|
17994
|
+
newPos += info.nPage;
|
|
17855
17995
|
else
|
|
17856
17996
|
return;
|
|
17857
17997
|
newPos = Math.max(0, Math.min(maxPos, newPos));
|
|
@@ -17871,8 +18011,14 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17871
18011
|
if (!isHorz && contentHeight === void 0)
|
|
17872
18012
|
return;
|
|
17873
18013
|
const bar = isHorz ? 0 : 1;
|
|
17874
|
-
const
|
|
17875
|
-
|
|
18014
|
+
const si = SCROLLINFO.encode({
|
|
18015
|
+
cbSize: SCROLLINFO.size,
|
|
18016
|
+
fMask: 23
|
|
18017
|
+
/* ScrollInfoFlag.ALL */
|
|
18018
|
+
});
|
|
18019
|
+
GetScrollInfo(sv, bar, si.ptr);
|
|
18020
|
+
const info = SCROLLINFO.decode(si);
|
|
18021
|
+
const maxPos = info.nMax - info.nPage + 1;
|
|
17876
18022
|
const ref_ = isHorz ? scrollXRef : scrollYRef;
|
|
17877
18023
|
let newPos = ref_.current + dy;
|
|
17878
18024
|
newPos = Math.max(0, Math.min(maxPos, newPos));
|
|
@@ -17920,7 +18066,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17920
18066
|
// _build/lib/react-qw/components/Slider.js
|
|
17921
18067
|
var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
|
|
17922
18068
|
var import_react13 = __toESM(require_react(), 1);
|
|
17923
|
-
import * as
|
|
18069
|
+
import * as gui12 from "gui";
|
|
17924
18070
|
var Slider = (0, import_react13.forwardRef)(({ value, onChange, min = 0, max = 100, vertical = false, disabled, style }, ref) => {
|
|
17925
18071
|
const wrapperRef = (0, import_react13.useRef)(null);
|
|
17926
18072
|
const sliderRef = (0, import_react13.useRef)(null);
|
|
@@ -17929,14 +18075,14 @@ var Slider = (0, import_react13.forwardRef)(({ value, onChange, min = 0, max = 1
|
|
|
17929
18075
|
if (!h)
|
|
17930
18076
|
return;
|
|
17931
18077
|
const lParam = min & 65535 | (max & 65535) << 16;
|
|
17932
|
-
|
|
17933
|
-
|
|
18078
|
+
gui12.SendMessage(h, 1030, 0, lParam);
|
|
18079
|
+
gui12.SendMessage(h, 1029, 1, value);
|
|
17934
18080
|
}, [min, max]);
|
|
17935
18081
|
(0, import_react13.useEffect)(() => {
|
|
17936
18082
|
const h = sliderRef.current;
|
|
17937
18083
|
if (!h)
|
|
17938
18084
|
return;
|
|
17939
|
-
|
|
18085
|
+
gui12.SendMessage(h, 1029, 1, value);
|
|
17940
18086
|
}, [value]);
|
|
17941
18087
|
const tbStyle = 268435456 | 65536 | 1 | (vertical ? 2 : 0);
|
|
17942
18088
|
return (0, import_jsx_runtime12.jsx)("w", { type: "STATIC", ws: 268435456 | 33554432, style, ref: (h) => {
|
|
@@ -17953,7 +18099,7 @@ var Slider = (0, import_react13.forwardRef)(({ value, onChange, min = 0, max = 1
|
|
|
17953
18099
|
const h = sliderRef.current;
|
|
17954
18100
|
if (!h)
|
|
17955
18101
|
return 0;
|
|
17956
|
-
const pos =
|
|
18102
|
+
const pos = gui12.SendMessage(h, 1024, 0, 0);
|
|
17957
18103
|
onChange?.(pos);
|
|
17958
18104
|
return 0;
|
|
17959
18105
|
}
|
|
@@ -17966,7 +18112,7 @@ var Slider = (0, import_react13.forwardRef)(({ value, onChange, min = 0, max = 1
|
|
|
17966
18112
|
// _build/lib/react-qw/components/Tab.js
|
|
17967
18113
|
var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
|
|
17968
18114
|
var import_react14 = __toESM(require_react(), 1);
|
|
17969
|
-
import * as
|
|
18115
|
+
import * as gui13 from "gui";
|
|
17970
18116
|
var Tab = (0, import_react14.forwardRef)(({ tabs, selectedIndex: controlledIndex, defaultSelectedIndex = 0, onChange, style }, ref) => {
|
|
17971
18117
|
const [internalIndex, setInternalIndex] = (0, import_react14.useState)(defaultSelectedIndex);
|
|
17972
18118
|
const isControlled = controlledIndex !== void 0;
|
|
@@ -17976,7 +18122,7 @@ var Tab = (0, import_react14.forwardRef)(({ tabs, selectedIndex: controlledIndex
|
|
|
17976
18122
|
const h = tabHwnd.current;
|
|
17977
18123
|
if (!h)
|
|
17978
18124
|
return;
|
|
17979
|
-
|
|
18125
|
+
gui13.SendMessage(h, 4873, 0, 0);
|
|
17980
18126
|
for (let i = 0; i < tabs.length; i++) {
|
|
17981
18127
|
const titleBuf = WCHAR.encode(tabs[i].title);
|
|
17982
18128
|
const tci = TCITEMW.encode({
|
|
@@ -17989,14 +18135,14 @@ var Tab = (0, import_react14.forwardRef)(({ tabs, selectedIndex: controlledIndex
|
|
|
17989
18135
|
lParam: 0
|
|
17990
18136
|
});
|
|
17991
18137
|
const tciPtr = tci.ptr;
|
|
17992
|
-
|
|
18138
|
+
gui13.SendMessage(h, 4926, i, tciPtr);
|
|
17993
18139
|
}
|
|
17994
|
-
|
|
18140
|
+
gui13.SendMessage(h, 4876, sel, 0);
|
|
17995
18141
|
}, [tabs]);
|
|
17996
18142
|
(0, import_react14.useEffect)(() => {
|
|
17997
18143
|
const h = tabHwnd.current;
|
|
17998
18144
|
if (h)
|
|
17999
|
-
|
|
18145
|
+
gui13.SendMessage(h, 4876, sel, 0);
|
|
18000
18146
|
}, [sel]);
|
|
18001
18147
|
return (0, import_jsx_runtime13.jsxs)("w", { type: "STATIC", ws: 268435456 | 33554432, style: { ...style, flexDirection: "column", alignItems: "stretch" }, ref, onEvent: (e) => {
|
|
18002
18148
|
if (e.msg === 78) {
|
|
@@ -18005,7 +18151,7 @@ var Tab = (0, import_react14.forwardRef)(({ tabs, selectedIndex: controlledIndex
|
|
|
18005
18151
|
return;
|
|
18006
18152
|
const code = nmCode(e.lParam);
|
|
18007
18153
|
if (code === -552 || code === -2) {
|
|
18008
|
-
const newSel =
|
|
18154
|
+
const newSel = gui13.SendMessage(h, 4875, 0, 0);
|
|
18009
18155
|
if (newSel !== sel) {
|
|
18010
18156
|
if (!isControlled)
|
|
18011
18157
|
setInternalIndex(newSel);
|
|
@@ -18018,12 +18164,12 @@ var Tab = (0, import_react14.forwardRef)(({ tabs, selectedIndex: controlledIndex
|
|
|
18018
18164
|
|
|
18019
18165
|
// _build/lib/react-qw/components/Tooltip.js
|
|
18020
18166
|
var import_react15 = __toESM(require_react(), 1);
|
|
18021
|
-
import * as
|
|
18167
|
+
import * as gui14 from "gui";
|
|
18022
18168
|
|
|
18023
18169
|
// _build/lib/react-qw/components/TreeView.js
|
|
18024
18170
|
var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
|
|
18025
18171
|
var import_react16 = __toESM(require_react(), 1);
|
|
18026
|
-
import * as
|
|
18172
|
+
import * as gui15 from "gui";
|
|
18027
18173
|
function buildTvItem(textPtr, cChildren) {
|
|
18028
18174
|
let mask = 1;
|
|
18029
18175
|
if (cChildren > 0)
|
|
@@ -18048,20 +18194,20 @@ function insertItems(hTree, nodes, parentHandle, hItemMap, keyMap) {
|
|
|
18048
18194
|
const itemBuf = buildTvItem(textBuf.ptr, cChildren);
|
|
18049
18195
|
const item = TVITEM.decode(itemBuf);
|
|
18050
18196
|
const tvins = TVINSERTSTRUCT.encode({ hParent: parentHandle, hInsertAfter: -65536, item });
|
|
18051
|
-
const hItem =
|
|
18197
|
+
const hItem = gui15.SendMessage(hTree, 4402, 0, tvins.ptr);
|
|
18052
18198
|
hItemMap.set(hItem, node);
|
|
18053
18199
|
if (node.key)
|
|
18054
18200
|
keyMap.set(node.key, hItem);
|
|
18055
18201
|
if (node.children && node.children.length > 0) {
|
|
18056
18202
|
insertItems(hTree, node.children, hItem, hItemMap, keyMap);
|
|
18057
|
-
|
|
18203
|
+
gui15.SendMessage(hTree, 4354, 2, hItem);
|
|
18058
18204
|
}
|
|
18059
18205
|
}
|
|
18060
18206
|
}
|
|
18061
18207
|
function deleteAllItems(hTree) {
|
|
18062
|
-
const n =
|
|
18208
|
+
const n = gui15.SendMessage(hTree, 4357, 0, 0);
|
|
18063
18209
|
if (n > 0)
|
|
18064
|
-
|
|
18210
|
+
gui15.SendMessage(
|
|
18065
18211
|
hTree,
|
|
18066
18212
|
4353,
|
|
18067
18213
|
1,
|
|
@@ -18093,7 +18239,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18093
18239
|
const h = tvRef.current;
|
|
18094
18240
|
if (!h)
|
|
18095
18241
|
return;
|
|
18096
|
-
|
|
18242
|
+
gui15.SendMessage(
|
|
18097
18243
|
h,
|
|
18098
18244
|
4396,
|
|
18099
18245
|
0,
|
|
@@ -18109,7 +18255,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18109
18255
|
return;
|
|
18110
18256
|
const hItem = keyMapRef.current.get(selKey);
|
|
18111
18257
|
if (hItem !== void 0)
|
|
18112
|
-
|
|
18258
|
+
gui15.SendMessage(h, 4363, 9, hItem);
|
|
18113
18259
|
}, [selKey]);
|
|
18114
18260
|
return (0, import_jsx_runtime14.jsx)("w", { type: "STATIC", ws: 268435456 | 33554432, style: { ...style, flexDirection: "column", alignItems: "stretch" }, ref, onEvent: (e) => {
|
|
18115
18261
|
if (e.msg === 78) {
|
|
@@ -18118,7 +18264,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18118
18264
|
const h = tvRef.current;
|
|
18119
18265
|
if (!h)
|
|
18120
18266
|
return;
|
|
18121
|
-
const hCaret =
|
|
18267
|
+
const hCaret = gui15.SendMessage(h, 4362, 9, 0);
|
|
18122
18268
|
const node = hItemMapRef.current.get(hCaret) ?? null;
|
|
18123
18269
|
const key = node?.key ?? null;
|
|
18124
18270
|
if (!isControlled)
|
|
@@ -18136,24 +18282,24 @@ var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
|
|
|
18136
18282
|
var import_react17 = __toESM(require_react(), 1);
|
|
18137
18283
|
|
|
18138
18284
|
// _build/lib/windows/comdlg32.js
|
|
18139
|
-
var
|
|
18140
|
-
var GetOpenFileName = /* @__PURE__ */
|
|
18285
|
+
var b4 = (name, sig) => bind("comdlg32.dll", name, sig);
|
|
18286
|
+
var GetOpenFileName = /* @__PURE__ */ b4("GetOpenFileNameW", "<OPENFILENAMEW>ptr -> u32");
|
|
18141
18287
|
|
|
18142
18288
|
// _build/lib/windows/shell32.js
|
|
18143
|
-
var
|
|
18144
|
-
var SHBrowseForFolder = /* @__PURE__ */
|
|
18145
|
-
var SHGetPathFromIDList = /* @__PURE__ */
|
|
18289
|
+
var b5 = (name, sig, encoders) => bind("shell32.dll", name, sig, encoders);
|
|
18290
|
+
var SHBrowseForFolder = /* @__PURE__ */ b5("SHBrowseForFolderW", "<BROWSEINFOW>ptr -> <>ptr");
|
|
18291
|
+
var SHGetPathFromIDList = /* @__PURE__ */ b5("SHGetPathFromIDListW", "<>ptr <BYTE>ptr -> u32");
|
|
18146
18292
|
var Shell_NotifyIconGetRect = (() => {
|
|
18147
18293
|
try {
|
|
18148
|
-
return
|
|
18294
|
+
return b5("Shell_NotifyIconGetRect", "<NOTIFYICONIDENTIFIER>ptr <RECT>ptr -> i32", { NOTIFYICONIDENTIFIER });
|
|
18149
18295
|
} catch {
|
|
18150
18296
|
return null;
|
|
18151
18297
|
}
|
|
18152
18298
|
})();
|
|
18153
18299
|
|
|
18154
18300
|
// _build/lib/windows/ole32.js
|
|
18155
|
-
var
|
|
18156
|
-
var CoTaskMemFree = /* @__PURE__ */
|
|
18301
|
+
var b6 = (name, sig) => bind("ole32.dll", name, sig);
|
|
18302
|
+
var CoTaskMemFree = /* @__PURE__ */ b6("CoTaskMemFree", "<>ptr -> void");
|
|
18157
18303
|
|
|
18158
18304
|
// _build/lib/react-qw/components/PathPicker.js
|
|
18159
18305
|
function openFileDialog(owner, filter, title, multiple) {
|
|
@@ -18248,7 +18394,7 @@ var rootMap = /* @__PURE__ */ new Map();
|
|
|
18248
18394
|
function ensureDefaultClass() {
|
|
18249
18395
|
if (defaultClassRegistered)
|
|
18250
18396
|
return DEFAULT_CLASS;
|
|
18251
|
-
|
|
18397
|
+
gui16.RegisterClass(DEFAULT_CLASS, (hwnd2, msg, wParam, lParam) => {
|
|
18252
18398
|
const entry = rootMap.get(hwnd2);
|
|
18253
18399
|
if (msg === 2 && entry) {
|
|
18254
18400
|
rootMap.delete(hwnd2);
|
|
@@ -18274,15 +18420,27 @@ function createRoot(container) {
|
|
|
18274
18420
|
const ws = (cfg.ws ?? 0) | 13565952;
|
|
18275
18421
|
const w = (cfg.width ?? 800) * scaleFactor;
|
|
18276
18422
|
const h = (cfg.height ?? 600) * scaleFactor;
|
|
18277
|
-
const [sw, sh] = [GetSystemMetrics(
|
|
18423
|
+
const [sw, sh] = [GetSystemMetrics(
|
|
18424
|
+
0
|
|
18425
|
+
/* SysMetrics.CXSCREEN */
|
|
18426
|
+
), GetSystemMetrics(
|
|
18427
|
+
1
|
|
18428
|
+
/* SysMetrics.CYSCREEN */
|
|
18429
|
+
)];
|
|
18278
18430
|
const x = cfg.x === void 0 ? (sw - w) / 2 | 0 : cfg.x === -2147483648 ? -2147483648 : cfg.x * scaleFactor;
|
|
18279
18431
|
const y = cfg.y === void 0 ? (sh - h) / 2 | 0 : cfg.y === -2147483648 ? -2147483648 : cfg.y * scaleFactor;
|
|
18280
|
-
const hwin =
|
|
18432
|
+
const hwin = gui16.CreateWindow(className, cfg.text || "", ws, x, y, w, h, null, null);
|
|
18281
18433
|
if (!hwin)
|
|
18282
18434
|
throw new Error("CreateWindow failed");
|
|
18283
18435
|
hwnd2 = hwin;
|
|
18284
|
-
if (!cfg.noShowWindow)
|
|
18285
|
-
|
|
18436
|
+
if (!cfg.noShowWindow) {
|
|
18437
|
+
ShowWindow(
|
|
18438
|
+
hwnd2,
|
|
18439
|
+
1
|
|
18440
|
+
/* ShowWindowCmd.SHOWNORMAL */
|
|
18441
|
+
);
|
|
18442
|
+
UpdateWindow(hwnd2);
|
|
18443
|
+
}
|
|
18286
18444
|
} else {
|
|
18287
18445
|
hwnd2 = container;
|
|
18288
18446
|
}
|
|
@@ -18312,21 +18470,25 @@ function render(element, containerOrConfig, _callback) {
|
|
|
18312
18470
|
// _build/test/test_react_render.js
|
|
18313
18471
|
var WS_CHILD = 1073741824;
|
|
18314
18472
|
var WS_VISIBLE = 268435456;
|
|
18315
|
-
|
|
18473
|
+
gui17.RegisterClass("ReactTest", (hwnd2, msg, wParam, lParam) => {
|
|
18316
18474
|
if (!hwnd2)
|
|
18317
|
-
return
|
|
18475
|
+
return gui17.DefWindowProc(hwnd2, msg, wParam, lParam);
|
|
18318
18476
|
if (msg === 2) {
|
|
18319
|
-
|
|
18477
|
+
PostQuitMessage(0);
|
|
18320
18478
|
return 0;
|
|
18321
18479
|
}
|
|
18322
|
-
return
|
|
18480
|
+
return gui17.DefWindowProc(hwnd2, msg, wParam, lParam);
|
|
18323
18481
|
});
|
|
18324
18482
|
function Greeting() {
|
|
18325
18483
|
return (0, import_jsx_runtime16.jsx)("w", { type: "BUTTON", text: "Hello", ws: WS_CHILD | WS_VISIBLE, style: { width: 200, height: 30 } });
|
|
18326
18484
|
}
|
|
18327
|
-
var hwnd =
|
|
18485
|
+
var hwnd = gui17.CreateWindow("ReactTest", "React Test", 13565952, 200, 200, 500, 400, null, null);
|
|
18328
18486
|
if (hwnd) {
|
|
18329
|
-
|
|
18487
|
+
ShowWindow(
|
|
18488
|
+
hwnd,
|
|
18489
|
+
1
|
|
18490
|
+
/* ShowWindowCmd.SHOWNORMAL */
|
|
18491
|
+
);
|
|
18330
18492
|
render((0, import_jsx_runtime16.jsx)(Greeting, {}), hwnd);
|
|
18331
18493
|
}
|
|
18332
18494
|
/*! Bundled license information:
|