@trops/dash-core 0.1.182 → 0.1.184
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/index.esm.js +117 -63
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +117 -63
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -27564,7 +27564,7 @@ var STATUS = {
|
|
|
27564
27564
|
* @returns {Object} WebSocket provider interface
|
|
27565
27565
|
*/
|
|
27566
27566
|
var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
27567
|
-
var _app$providers;
|
|
27567
|
+
var _dashApi$api, _app$providers;
|
|
27568
27568
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
27569
27569
|
var _options$autoConnect = options.autoConnect,
|
|
27570
27570
|
autoConnect = _options$autoConnect === void 0 ? true : _options$autoConnect,
|
|
@@ -27611,6 +27611,10 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27611
27611
|
var maxMessagesRef = useRef(maxMessages);
|
|
27612
27612
|
maxMessagesRef.current = maxMessages;
|
|
27613
27613
|
var dashApi = app === null || app === void 0 ? void 0 : app.dashApi;
|
|
27614
|
+
// Access the raw preload bridge (mainApi) for the webSocket sub-API.
|
|
27615
|
+
// dashApi is an ElectronDashboardApi wrapper; the webSocket methods
|
|
27616
|
+
// live on the underlying mainApi object (dashApi.api).
|
|
27617
|
+
var wsApi = dashApi === null || dashApi === void 0 || (_dashApi$api = dashApi.api) === null || _dashApi$api === void 0 ? void 0 : _dashApi$api.webSocket;
|
|
27614
27618
|
|
|
27615
27619
|
// Get the widget data
|
|
27616
27620
|
var widgetData = widgetContext === null || widgetContext === void 0 ? void 0 : widgetContext.widgetData;
|
|
@@ -27662,7 +27666,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27662
27666
|
}
|
|
27663
27667
|
return _context2.abrupt("return");
|
|
27664
27668
|
case 1:
|
|
27665
|
-
if (!(!
|
|
27669
|
+
if (!(!wsApi || !provider)) {
|
|
27666
27670
|
_context2.next = 2;
|
|
27667
27671
|
break;
|
|
27668
27672
|
}
|
|
@@ -27691,7 +27695,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27691
27695
|
}
|
|
27692
27696
|
_context2.prev = 5;
|
|
27693
27697
|
_context2.next = 6;
|
|
27694
|
-
return
|
|
27698
|
+
return wsApi.getStatus(selectedProviderName);
|
|
27695
27699
|
case 6:
|
|
27696
27700
|
statusResult = _context2.sent;
|
|
27697
27701
|
if (!((statusResult === null || statusResult === void 0 ? void 0 : statusResult.status) === "connected")) {
|
|
@@ -27768,7 +27772,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27768
27772
|
case 0:
|
|
27769
27773
|
_context.prev = 0;
|
|
27770
27774
|
_context.next = 1;
|
|
27771
|
-
return
|
|
27775
|
+
return wsApi.connect(selectedProviderName, {
|
|
27772
27776
|
url: provider.wsConfig.url,
|
|
27773
27777
|
headers: provider.wsConfig.headers || null,
|
|
27774
27778
|
subprotocols: provider.wsConfig.subprotocols || null,
|
|
@@ -27848,7 +27852,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27848
27852
|
return _context2.stop();
|
|
27849
27853
|
}
|
|
27850
27854
|
}, _callee2, null, [[5, 8], [10, 14], [18, 22]]);
|
|
27851
|
-
})), [
|
|
27855
|
+
})), [wsApi, provider, providerType, selectedProviderName, applyConnected]);
|
|
27852
27856
|
|
|
27853
27857
|
/**
|
|
27854
27858
|
* Disconnect from the WebSocket server.
|
|
@@ -27859,7 +27863,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27859
27863
|
return _regeneratorRuntime.wrap(function (_context3) {
|
|
27860
27864
|
while (1) switch (_context3.prev = _context3.next) {
|
|
27861
27865
|
case 0:
|
|
27862
|
-
if (!(!
|
|
27866
|
+
if (!(!wsApi || !selectedProviderName)) {
|
|
27863
27867
|
_context3.next = 1;
|
|
27864
27868
|
break;
|
|
27865
27869
|
}
|
|
@@ -27897,7 +27901,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27897
27901
|
pendingConnects["delete"](selectedProviderName);
|
|
27898
27902
|
_context3.prev = 4;
|
|
27899
27903
|
_context3.next = 5;
|
|
27900
|
-
return
|
|
27904
|
+
return wsApi.disconnect(selectedProviderName);
|
|
27901
27905
|
case 5:
|
|
27902
27906
|
_context3.next = 7;
|
|
27903
27907
|
break;
|
|
@@ -27909,7 +27913,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27909
27913
|
return _context3.stop();
|
|
27910
27914
|
}
|
|
27911
27915
|
}, _callee3, null, [[4, 6]]);
|
|
27912
|
-
})), [
|
|
27916
|
+
})), [wsApi, selectedProviderName]);
|
|
27913
27917
|
|
|
27914
27918
|
/**
|
|
27915
27919
|
* Send data through the WebSocket connection
|
|
@@ -27920,14 +27924,14 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27920
27924
|
return _regeneratorRuntime.wrap(function (_context4) {
|
|
27921
27925
|
while (1) switch (_context4.prev = _context4.next) {
|
|
27922
27926
|
case 0:
|
|
27923
|
-
if (!(!
|
|
27927
|
+
if (!(!wsApi || !selectedProviderName)) {
|
|
27924
27928
|
_context4.next = 1;
|
|
27925
27929
|
break;
|
|
27926
27930
|
}
|
|
27927
27931
|
throw new Error("WebSocket not connected");
|
|
27928
27932
|
case 1:
|
|
27929
27933
|
_context4.next = 2;
|
|
27930
|
-
return
|
|
27934
|
+
return wsApi.send(selectedProviderName, data);
|
|
27931
27935
|
case 2:
|
|
27932
27936
|
result = _context4.sent;
|
|
27933
27937
|
if (!result.error) {
|
|
@@ -27946,7 +27950,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27946
27950
|
return function (_x) {
|
|
27947
27951
|
return _ref4.apply(this, arguments);
|
|
27948
27952
|
};
|
|
27949
|
-
}(), [
|
|
27953
|
+
}(), [wsApi, selectedProviderName]);
|
|
27950
27954
|
|
|
27951
27955
|
// Keep a ref to connect so the auto-connect effect doesn't depend on it
|
|
27952
27956
|
var connectRef = useRef(connect);
|
|
@@ -27954,7 +27958,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27954
27958
|
|
|
27955
27959
|
// Listen for incoming messages from main process
|
|
27956
27960
|
useEffect(function () {
|
|
27957
|
-
if (!
|
|
27961
|
+
if (!wsApi || !selectedProviderName) return;
|
|
27958
27962
|
var handleMessage = function handleMessage(_event, payload) {
|
|
27959
27963
|
if (payload.provider !== selectedProviderName) return;
|
|
27960
27964
|
if (!mountedRef.current) return;
|
|
@@ -27969,15 +27973,15 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
27969
27973
|
setMessages(next);
|
|
27970
27974
|
setLastMessage(msg);
|
|
27971
27975
|
};
|
|
27972
|
-
|
|
27976
|
+
wsApi.onMessage(handleMessage);
|
|
27973
27977
|
return function () {
|
|
27974
|
-
return
|
|
27978
|
+
return wsApi.offMessage(handleMessage);
|
|
27975
27979
|
};
|
|
27976
|
-
}, [
|
|
27980
|
+
}, [wsApi, selectedProviderName]);
|
|
27977
27981
|
|
|
27978
27982
|
// Listen for status changes from main process
|
|
27979
27983
|
useEffect(function () {
|
|
27980
|
-
if (!
|
|
27984
|
+
if (!wsApi || !selectedProviderName) return;
|
|
27981
27985
|
var handleStatusChange = function handleStatusChange(_event, payload) {
|
|
27982
27986
|
if (payload.provider !== selectedProviderName) return;
|
|
27983
27987
|
if (!mountedRef.current) return;
|
|
@@ -28014,11 +28018,11 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
28014
28018
|
}
|
|
28015
28019
|
}
|
|
28016
28020
|
};
|
|
28017
|
-
|
|
28021
|
+
wsApi.onStatusChange(handleStatusChange);
|
|
28018
28022
|
return function () {
|
|
28019
|
-
return
|
|
28023
|
+
return wsApi.offStatusChange(handleStatusChange);
|
|
28020
28024
|
};
|
|
28021
|
-
}, [
|
|
28025
|
+
}, [wsApi, selectedProviderName]);
|
|
28022
28026
|
|
|
28023
28027
|
// Auto-connect on mount or when provider selection changes
|
|
28024
28028
|
useEffect(function () {
|
|
@@ -28035,7 +28039,7 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
28035
28039
|
mountedRef.current = false;
|
|
28036
28040
|
|
|
28037
28041
|
// Decrement consumer count; only disconnect if last consumer
|
|
28038
|
-
if (connectedRef.current &&
|
|
28042
|
+
if (connectedRef.current && wsApi && selectedProviderName) {
|
|
28039
28043
|
var state = connectionStates.get(selectedProviderName);
|
|
28040
28044
|
if (state) {
|
|
28041
28045
|
state.consumerCount = Math.max(0, state.consumerCount - 1);
|
|
@@ -28047,10 +28051,10 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
28047
28051
|
// Last consumer — disconnect
|
|
28048
28052
|
connectionStates["delete"](selectedProviderName);
|
|
28049
28053
|
}
|
|
28050
|
-
|
|
28054
|
+
wsApi.disconnect(selectedProviderName)["catch"](function () {});
|
|
28051
28055
|
}
|
|
28052
28056
|
};
|
|
28053
|
-
}, [
|
|
28057
|
+
}, [wsApi, selectedProviderName]);
|
|
28054
28058
|
return {
|
|
28055
28059
|
isConnected: isConnected,
|
|
28056
28060
|
isConnecting: isConnecting,
|
|
@@ -40499,17 +40503,44 @@ var ThemeDetail = function ThemeDetail(_ref6) {
|
|
|
40499
40503
|
|
|
40500
40504
|
function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
40501
40505
|
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
40502
|
-
var
|
|
40503
|
-
var
|
|
40504
|
-
|
|
40505
|
-
|
|
40506
|
-
|
|
40507
|
-
|
|
40508
|
-
|
|
40509
|
-
|
|
40510
|
-
|
|
40511
|
-
|
|
40512
|
-
|
|
40506
|
+
var BackToChooser = function BackToChooser(_ref) {
|
|
40507
|
+
var onClick = _ref.onClick,
|
|
40508
|
+
children = _ref.children;
|
|
40509
|
+
return /*#__PURE__*/jsxs("div", {
|
|
40510
|
+
className: "flex flex-col h-full overflow-hidden",
|
|
40511
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
40512
|
+
className: "flex-shrink-0 px-4 pt-4",
|
|
40513
|
+
children: /*#__PURE__*/jsxs("button", {
|
|
40514
|
+
type: "button",
|
|
40515
|
+
onClick: onClick,
|
|
40516
|
+
className: "flex items-center gap-1.5 text-sm opacity-60 hover:opacity-100 transition-opacity",
|
|
40517
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
40518
|
+
icon: "arrow-left",
|
|
40519
|
+
className: "h-3 w-3"
|
|
40520
|
+
}), /*#__PURE__*/jsx("span", {
|
|
40521
|
+
children: "Back"
|
|
40522
|
+
})]
|
|
40523
|
+
})
|
|
40524
|
+
}), /*#__PURE__*/jsx("div", {
|
|
40525
|
+
className: "flex-1 min-h-0 overflow-y-auto",
|
|
40526
|
+
children: children
|
|
40527
|
+
})]
|
|
40528
|
+
});
|
|
40529
|
+
};
|
|
40530
|
+
|
|
40531
|
+
// ─── Main Component ──────────────────────────────────────────────────────
|
|
40532
|
+
|
|
40533
|
+
var ThemesSection = function ThemesSection(_ref2) {
|
|
40534
|
+
var _ref2$onOpenThemeEdit = _ref2.onOpenThemeEditor,
|
|
40535
|
+
onOpenThemeEditor = _ref2$onOpenThemeEdit === void 0 ? null : _ref2$onOpenThemeEdit,
|
|
40536
|
+
_ref2$dashApi = _ref2.dashApi,
|
|
40537
|
+
dashApi = _ref2$dashApi === void 0 ? null : _ref2$dashApi,
|
|
40538
|
+
_ref2$credentials = _ref2.credentials,
|
|
40539
|
+
credentials = _ref2$credentials === void 0 ? null : _ref2$credentials,
|
|
40540
|
+
_ref2$createRequested = _ref2.createRequested,
|
|
40541
|
+
createRequested = _ref2$createRequested === void 0 ? false : _ref2$createRequested,
|
|
40542
|
+
_ref2$onCreateAcknowl = _ref2.onCreateAcknowledged,
|
|
40543
|
+
onCreateAcknowledged = _ref2$onCreateAcknowl === void 0 ? null : _ref2$onCreateAcknowl;
|
|
40513
40544
|
var _useContext = useContext(ThemeContext),
|
|
40514
40545
|
themes = _useContext.themes,
|
|
40515
40546
|
currentThemeKey = _useContext.themeKey,
|
|
@@ -40547,6 +40578,10 @@ var ThemesSection = function ThemesSection(_ref) {
|
|
|
40547
40578
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
40548
40579
|
enteredViaChooser = _useState12[0],
|
|
40549
40580
|
setEnteredViaChooser = _useState12[1];
|
|
40581
|
+
var _useState13 = useState(null),
|
|
40582
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
40583
|
+
initialMethod = _useState14[0],
|
|
40584
|
+
setInitialMethod = _useState14[1];
|
|
40550
40585
|
var themeEntries = themes ? Object.entries(themes) : [];
|
|
40551
40586
|
var appId = credentials === null || credentials === void 0 ? void 0 : credentials.appId;
|
|
40552
40587
|
var rowStyles = getStylesForItem(themeObjects.PANEL_HEADER, currentTheme, {
|
|
@@ -40607,9 +40642,9 @@ var ThemesSection = function ThemesSection(_ref) {
|
|
|
40607
40642
|
if (!dashApi || !appId) return;
|
|
40608
40643
|
if (key === currentThemeKey) {
|
|
40609
40644
|
var _themeEntries$find;
|
|
40610
|
-
var otherKey = (_themeEntries$find = themeEntries.find(function (
|
|
40611
|
-
var
|
|
40612
|
-
k =
|
|
40645
|
+
var otherKey = (_themeEntries$find = themeEntries.find(function (_ref3) {
|
|
40646
|
+
var _ref4 = _slicedToArray(_ref3, 1),
|
|
40647
|
+
k = _ref4[0];
|
|
40613
40648
|
return k !== key;
|
|
40614
40649
|
})) === null || _themeEntries$find === void 0 ? void 0 : _themeEntries$find[0];
|
|
40615
40650
|
if (otherKey) {
|
|
@@ -40725,10 +40760,10 @@ var ThemesSection = function ThemesSection(_ref) {
|
|
|
40725
40760
|
}), /*#__PURE__*/jsx("div", {
|
|
40726
40761
|
className: "flex-1 overflow-y-auto min-h-0",
|
|
40727
40762
|
children: /*#__PURE__*/jsxs(Sidebar.Content, {
|
|
40728
|
-
children: [themeEntries.map(function (
|
|
40729
|
-
var
|
|
40730
|
-
key =
|
|
40731
|
-
theme =
|
|
40763
|
+
children: [themeEntries.map(function (_ref5) {
|
|
40764
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
40765
|
+
key = _ref6[0],
|
|
40766
|
+
theme = _ref6[1];
|
|
40732
40767
|
var isActive = key === currentThemeKey;
|
|
40733
40768
|
var isSelected = selectedThemeKey === key && generateMode === GENERATE_MODES.NONE && installMode !== "marketplace";
|
|
40734
40769
|
return /*#__PURE__*/jsx(Sidebar.Item, {
|
|
@@ -40789,38 +40824,57 @@ var ThemesSection = function ThemesSection(_ref) {
|
|
|
40789
40824
|
setInstallMode("marketplace");
|
|
40790
40825
|
setEnteredViaChooser(true);
|
|
40791
40826
|
},
|
|
40792
|
-
|
|
40793
|
-
|
|
40794
|
-
|
|
40795
|
-
onCreateFromUrl: function onCreateFromUrl() {
|
|
40796
|
-
setGenerateMode(GENERATE_MODES.FROM_URL);
|
|
40827
|
+
onSelectMethod: function onSelectMethod(method) {
|
|
40828
|
+
setInitialMethod(method);
|
|
40829
|
+
if (method === "presets") setGenerateMode(GENERATE_MODES.PRESETS);else if (method === "color") setGenerateMode(GENERATE_MODES.COLOR);else if (method === "from-url") setGenerateMode(GENERATE_MODES.FROM_URL);else setGenerateMode(GENERATE_MODES.WIZARD);
|
|
40797
40830
|
}
|
|
40798
40831
|
});
|
|
40799
40832
|
} else if (generateMode === GENERATE_MODES.WIZARD) {
|
|
40800
|
-
detailContent = /*#__PURE__*/jsx(
|
|
40801
|
-
|
|
40802
|
-
|
|
40803
|
-
|
|
40804
|
-
|
|
40805
|
-
|
|
40806
|
-
|
|
40807
|
-
|
|
40808
|
-
|
|
40809
|
-
|
|
40833
|
+
detailContent = /*#__PURE__*/jsx(BackToChooser, {
|
|
40834
|
+
onClick: function onClick() {
|
|
40835
|
+
return setGenerateMode(GENERATE_MODES.CHOOSER);
|
|
40836
|
+
},
|
|
40837
|
+
children: /*#__PURE__*/jsx(ThemeQuickCreate, {
|
|
40838
|
+
wizardName: wizardName,
|
|
40839
|
+
setWizardName: setWizardName,
|
|
40840
|
+
wizardMethod: wizardMethod,
|
|
40841
|
+
setWizardMethod: setWizardMethod,
|
|
40842
|
+
wizardTheme: wizardTheme,
|
|
40843
|
+
setWizardTheme: setWizardTheme,
|
|
40844
|
+
onComplete: handleWizardComplete,
|
|
40845
|
+
onExtract: handleUrlExtract,
|
|
40846
|
+
onMapToTheme: handleUrlMapToTheme,
|
|
40847
|
+
initialMethod: initialMethod
|
|
40848
|
+
})
|
|
40810
40849
|
});
|
|
40811
40850
|
} else if (generateMode === GENERATE_MODES.PRESETS) {
|
|
40812
|
-
detailContent = /*#__PURE__*/jsx(
|
|
40813
|
-
|
|
40851
|
+
detailContent = /*#__PURE__*/jsx(BackToChooser, {
|
|
40852
|
+
onClick: function onClick() {
|
|
40853
|
+
return setGenerateMode(GENERATE_MODES.CHOOSER);
|
|
40854
|
+
},
|
|
40855
|
+
children: /*#__PURE__*/jsx(PresetGallery, {
|
|
40856
|
+
onSelect: handleCreateFromPreset
|
|
40857
|
+
})
|
|
40814
40858
|
});
|
|
40815
40859
|
} else if (generateMode === GENERATE_MODES.FROM_URL) {
|
|
40816
|
-
detailContent = /*#__PURE__*/jsx(
|
|
40817
|
-
|
|
40818
|
-
|
|
40819
|
-
|
|
40860
|
+
detailContent = /*#__PURE__*/jsx(BackToChooser, {
|
|
40861
|
+
onClick: function onClick() {
|
|
40862
|
+
return setGenerateMode(GENERATE_MODES.CHOOSER);
|
|
40863
|
+
},
|
|
40864
|
+
children: /*#__PURE__*/jsx(ThemeFromUrlPane, {
|
|
40865
|
+
onExtract: handleUrlExtract,
|
|
40866
|
+
onMapToTheme: handleUrlMapToTheme,
|
|
40867
|
+
onGenerate: handleUrlThemeGenerated
|
|
40868
|
+
})
|
|
40820
40869
|
});
|
|
40821
40870
|
} else if (generateMode === GENERATE_MODES.COLOR) {
|
|
40822
|
-
detailContent = /*#__PURE__*/jsx(
|
|
40823
|
-
|
|
40871
|
+
detailContent = /*#__PURE__*/jsx(BackToChooser, {
|
|
40872
|
+
onClick: function onClick() {
|
|
40873
|
+
return setGenerateMode(GENERATE_MODES.CHOOSER);
|
|
40874
|
+
},
|
|
40875
|
+
children: /*#__PURE__*/jsx(ColorHarmonyPicker, {
|
|
40876
|
+
onGenerate: handleCreateFromHarmony
|
|
40877
|
+
})
|
|
40824
40878
|
});
|
|
40825
40879
|
} else if (selectedThemeKey && themes && themes[selectedThemeKey]) {
|
|
40826
40880
|
detailContent = /*#__PURE__*/jsx(ThemeDetail, {
|