@trops/dash-core 0.1.273 → 0.1.275

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 CHANGED
@@ -45188,7 +45188,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45188
45188
  case 2:
45189
45189
  list = _context.sent;
45190
45190
  (list || []).forEach(function (w) {
45191
- registryByName[w.name] = w;
45191
+ registryByName[w.packageId || w.name] = w;
45192
45192
  });
45193
45193
  case 3:
45194
45194
  installedFromCM = Object.keys(cMap).filter(function (key) {
@@ -45260,7 +45260,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45260
45260
  var uninstallWidget = useCallback(/*#__PURE__*/function () {
45261
45261
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widgetName) {
45262
45262
  var _window$mainApi2;
45263
- var cMap, keysToRemove, _t2;
45263
+ var widget, packageId, cMap, keysToRemove, _t2;
45264
45264
  return _regeneratorRuntime.wrap(function (_context2) {
45265
45265
  while (1) switch (_context2.prev = _context2.next) {
45266
45266
  case 0:
@@ -45271,17 +45271,22 @@ var useInstalledWidgets = function useInstalledWidgets() {
45271
45271
  return _context2.abrupt("return");
45272
45272
  case 1:
45273
45273
  _context2.prev = 1;
45274
- // Remove matching ComponentManager entries so the widget
45274
+ // Resolve packageId widgetName may be a CM key (e.g. "AnalogClockWidget")
45275
+ // but the registry is keyed by scoped package ID (e.g. "@trops/clock").
45276
+ widget = widgets.find(function (w) {
45277
+ return w.name === widgetName;
45278
+ });
45279
+ packageId = (widget === null || widget === void 0 ? void 0 : widget.packageId) || widgetName; // Remove matching ComponentManager entries so the widget
45275
45280
  // doesn't reappear as a "builtin" ghost after uninstall.
45276
45281
  cMap = ComponentManager.componentMap() || {};
45277
45282
  keysToRemove = Object.keys(cMap).filter(function (key) {
45278
- return cMap[key]._sourcePackage === widgetName;
45283
+ return cMap[key]._sourcePackage === packageId;
45279
45284
  });
45280
45285
  keysToRemove.forEach(function (key) {
45281
45286
  return delete cMap[key];
45282
45287
  });
45283
45288
  _context2.next = 2;
45284
- return window.mainApi.widgets.uninstall(widgetName);
45289
+ return window.mainApi.widgets.uninstall(packageId);
45285
45290
  case 2:
45286
45291
  _context2.next = 3;
45287
45292
  return refresh();
@@ -45301,7 +45306,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45301
45306
  return function (_x) {
45302
45307
  return _ref2.apply(this, arguments);
45303
45308
  };
45304
- }(), [refresh]);
45309
+ }(), [refresh, widgets]);
45305
45310
  useEffect(function () {
45306
45311
  refresh();
45307
45312
  var handleWidgetsUpdated = function handleWidgetsUpdated() {
@@ -45356,17 +45361,32 @@ function useWidgetUpdates() {
45356
45361
  if (installed.length === 0) return;
45357
45362
  checkedRef.current = true;
45358
45363
  setIsChecking(true);
45359
- var payload = installed.map(function (w) {
45360
- return {
45361
- name: w.name,
45362
- version: w.version
45363
- };
45364
+
45365
+ // Deduplicate by package — multiple widgets in the same package share one version
45366
+ var pkgMap = new Map();
45367
+ installed.forEach(function (w) {
45368
+ var pkgId = w.packageId || w.name;
45369
+ if (!pkgMap.has(pkgId)) {
45370
+ pkgMap.set(pkgId, {
45371
+ name: pkgId,
45372
+ version: w.version
45373
+ });
45374
+ }
45364
45375
  });
45376
+ var payload = Array.from(pkgMap.values());
45365
45377
  (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.registry) === null || _window$mainApi === void 0 || _window$mainApi.checkUpdates(payload).then(function (results) {
45366
45378
  if (Array.isArray(results) && results.length > 0) {
45367
45379
  var map = new Map();
45368
45380
  results.forEach(function (r) {
45369
- return map.set(r.name, r);
45381
+ // Key by package ID (from result)
45382
+ map.set(r.name, r);
45383
+ // Also key by each widget's CM key so UI can look up by widget name
45384
+ installed.forEach(function (w) {
45385
+ var pkgId = w.packageId || w.name;
45386
+ if (pkgId === r.name) {
45387
+ map.set(w.name, r);
45388
+ }
45389
+ });
45370
45390
  });
45371
45391
  setUpdates(map);
45372
45392
  }
@@ -45379,7 +45399,7 @@ function useWidgetUpdates() {
45379
45399
  // Update a single widget by downloading the latest version
45380
45400
  var updateWidget = useCallback(/*#__PURE__*/function () {
45381
45401
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(name) {
45382
- var info, resolvedUrl;
45402
+ var info, widget, packageId, resolvedUrl;
45383
45403
  return _regeneratorRuntime.wrap(function (_context) {
45384
45404
  while (1) switch (_context.prev = _context.next) {
45385
45405
  case 0:
@@ -45390,11 +45410,16 @@ function useWidgetUpdates() {
45390
45410
  }
45391
45411
  return _context.abrupt("return");
45392
45412
  case 1:
45413
+ // Use packageId for install — name may be a CM key (widget-level)
45414
+ widget = installedWidgets.find(function (w) {
45415
+ return w.name === name;
45416
+ });
45417
+ packageId = (widget === null || widget === void 0 ? void 0 : widget.packageId) || info.name || name;
45393
45418
  setIsUpdating(name);
45394
45419
  _context.prev = 2;
45395
- resolvedUrl = info.downloadUrl.replace(/\{version\}/g, info.latestVersion).replace(/\{name\}/g, name);
45420
+ resolvedUrl = info.downloadUrl.replace(/\{version\}/g, info.latestVersion).replace(/\{name\}/g, packageId);
45396
45421
  _context.next = 3;
45397
- return window.mainApi.widgets.install(name, resolvedUrl);
45422
+ return window.mainApi.widgets.install(packageId, resolvedUrl);
45398
45423
  case 3:
45399
45424
  // Remove from updates map on success
45400
45425
  setUpdates(function (prev) {
@@ -45421,7 +45446,7 @@ function useWidgetUpdates() {
45421
45446
  return function (_x) {
45422
45447
  return _ref.apply(this, arguments);
45423
45448
  };
45424
- }(), [updates, onUpdated]);
45449
+ }(), [updates, onUpdated, installedWidgets]);
45425
45450
  return {
45426
45451
  updates: updates,
45427
45452
  isChecking: isChecking,