@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.js CHANGED
@@ -8575,7 +8575,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
8575
8575
  var hasPropertyDescriptors_1 = hasPropertyDescriptors;
8576
8576
 
8577
8577
  var keys = objectKeys$2;
8578
- var hasSymbols$5 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
8578
+ var hasSymbols$4 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
8579
8579
 
8580
8580
  var toStr$4 = Object.prototype.toString;
8581
8581
  var concat = Array.prototype.concat;
@@ -8608,7 +8608,7 @@ var defineProperty$1 = function (object, name, value, predicate) {
8608
8608
  var defineProperties$1 = function (object, map) {
8609
8609
  var predicates = arguments.length > 2 ? arguments[2] : {};
8610
8610
  var props = keys(map);
8611
- if (hasSymbols$5) {
8611
+ if (hasSymbols$4) {
8612
8612
  props = concat.call(props, Object.getOwnPropertySymbols(map));
8613
8613
  }
8614
8614
  for (var i = 0; i < props.length; i += 1) {
@@ -8674,11 +8674,11 @@ var sign$1 = function sign(number) {
8674
8674
  };
8675
8675
 
8676
8676
  var shams$1;
8677
- var hasRequiredShams;
8677
+ var hasRequiredShams$1;
8678
8678
 
8679
- function requireShams () {
8680
- if (hasRequiredShams) return shams$1;
8681
- hasRequiredShams = 1;
8679
+ function requireShams$1 () {
8680
+ if (hasRequiredShams$1) return shams$1;
8681
+ hasRequiredShams$1 = 1;
8682
8682
 
8683
8683
  /** @type {import('./shams')} */
8684
8684
  /* eslint complexity: [2, 18], max-statements: [2, 33] */
@@ -8727,10 +8727,10 @@ function requireShams () {
8727
8727
  }
8728
8728
 
8729
8729
  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
8730
- var hasSymbolSham = requireShams();
8730
+ var hasSymbolSham = requireShams$1();
8731
8731
 
8732
8732
  /** @type {import('.')} */
8733
- var hasSymbols$4 = function hasNativeSymbols() {
8733
+ var hasSymbols$3 = function hasNativeSymbols() {
8734
8734
  if (typeof origSymbol !== 'function') { return false; }
8735
8735
  if (typeof Symbol !== 'function') { return false; }
8736
8736
  if (typeof origSymbol('foo') !== 'symbol') { return false; }
@@ -9034,7 +9034,7 @@ var ThrowTypeError = $gOPD$1
9034
9034
  }())
9035
9035
  : throwTypeError;
9036
9036
 
9037
- var hasSymbols$3 = hasSymbols$4();
9037
+ var hasSymbols$2 = hasSymbols$3();
9038
9038
 
9039
9039
  var getProto$2 = getProto$3;
9040
9040
  var $ObjectGPO = requireObject_getPrototypeOf();
@@ -9052,7 +9052,7 @@ var INTRINSICS = {
9052
9052
  '%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
9053
9053
  '%Array%': Array,
9054
9054
  '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
9055
- '%ArrayIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
9055
+ '%ArrayIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
9056
9056
  '%AsyncFromSyncIteratorPrototype%': undefined$1,
9057
9057
  '%AsyncFunction%': needsEval,
9058
9058
  '%AsyncGenerator%': needsEval,
@@ -9083,10 +9083,10 @@ var INTRINSICS = {
9083
9083
  '%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
9084
9084
  '%isFinite%': isFinite,
9085
9085
  '%isNaN%': isNaN,
9086
- '%IteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
9086
+ '%IteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
9087
9087
  '%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
9088
9088
  '%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
9089
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
9089
+ '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
9090
9090
  '%Math%': Math,
9091
9091
  '%Number%': Number,
9092
9092
  '%Object%': $Object$2,
@@ -9100,11 +9100,11 @@ var INTRINSICS = {
9100
9100
  '%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
9101
9101
  '%RegExp%': RegExp,
9102
9102
  '%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
9103
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
9103
+ '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
9104
9104
  '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
9105
9105
  '%String%': String,
9106
- '%StringIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
9107
- '%Symbol%': hasSymbols$3 ? Symbol : undefined$1,
9106
+ '%StringIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
9107
+ '%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
9108
9108
  '%SyntaxError%': $SyntaxError$1,
9109
9109
  '%ThrowTypeError%': ThrowTypeError,
9110
9110
  '%TypedArray%': TypedArray,
@@ -9457,12 +9457,12 @@ var callBound$i = function callBoundIntrinsic(name, allowMissing) {
9457
9457
 
9458
9458
  // modified from https://github.com/es-shims/es6-shim
9459
9459
  var objectKeys$1 = objectKeys$2;
9460
- var hasSymbols$2 = requireShams()();
9460
+ var hasSymbols$1 = requireShams$1()();
9461
9461
  var callBound$h = callBound$i;
9462
9462
  var $Object$1 = esObjectAtoms;
9463
9463
  var $push = callBound$h('Array.prototype.push');
9464
9464
  var $propIsEnumerable = callBound$h('Object.prototype.propertyIsEnumerable');
9465
- var originalGetSymbols = hasSymbols$2 ? $Object$1.getOwnPropertySymbols : null;
9465
+ var originalGetSymbols = hasSymbols$1 ? $Object$1.getOwnPropertySymbols : null;
9466
9466
 
9467
9467
  // eslint-disable-next-line no-unused-vars
9468
9468
  var implementation$8 = function assign(target, source1) {
@@ -9476,7 +9476,7 @@ var implementation$8 = function assign(target, source1) {
9476
9476
 
9477
9477
  // step 3.a.ii:
9478
9478
  var keys = objectKeys$1(from);
9479
- var getSymbols = hasSymbols$2 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
9479
+ var getSymbols = hasSymbols$1 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
9480
9480
  if (getSymbols) {
9481
9481
  var syms = getSymbols(from);
9482
9482
  for (var j = 0; j < syms.length; ++j) {
@@ -9773,14 +9773,23 @@ var regexp_prototype_flags = flagsBound;
9773
9773
 
9774
9774
  var esGetIterator = {exports: {}};
9775
9775
 
9776
- var hasSymbols$1 = requireShams();
9776
+ var shams;
9777
+ var hasRequiredShams;
9777
9778
 
9778
- /** @type {import('.')} */
9779
- var shams = function hasToStringTagShams() {
9780
- return hasSymbols$1() && !!Symbol.toStringTag;
9781
- };
9779
+ function requireShams () {
9780
+ if (hasRequiredShams) return shams;
9781
+ hasRequiredShams = 1;
9782
+
9783
+ var hasSymbols = requireShams$1();
9782
9784
 
9783
- var hasToStringTag$7 = shams();
9785
+ /** @type {import('.')} */
9786
+ shams = function hasToStringTagShams() {
9787
+ return hasSymbols() && !!Symbol.toStringTag;
9788
+ };
9789
+ return shams;
9790
+ }
9791
+
9792
+ var hasToStringTag$7 = requireShams()();
9784
9793
  var callBound$f = callBound$i;
9785
9794
 
9786
9795
  var $toString$7 = callBound$f('Object.prototype.toString');
@@ -10817,7 +10826,7 @@ var tryStringObject = function tryStringObject(value) {
10817
10826
  /** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
10818
10827
  var $toString$6 = callBound$c('Object.prototype.toString');
10819
10828
  var strClass = '[object String]';
10820
- var hasToStringTag$6 = shams();
10829
+ var hasToStringTag$6 = requireShams()();
10821
10830
 
10822
10831
  /** @type {import('.')} */
10823
10832
  var isString$2 = function isString(value) {
@@ -10933,7 +10942,7 @@ var isSet$2 = exported$1 || function isSet(x) {
10933
10942
  var isArguments$1 = isArguments$2;
10934
10943
  var getStopIterationIterator = stopIterationIterator;
10935
10944
 
10936
- if (hasSymbols$4() || requireShams()()) {
10945
+ if (hasSymbols$3() || requireShams$1()()) {
10937
10946
  var $iterator = Symbol.iterator;
10938
10947
  // Symbol is available natively or shammed
10939
10948
  // natively:
@@ -11222,7 +11231,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
11222
11231
  /** @type {(value: unknown) => string} */
11223
11232
  var toStr$2 = callBound$9('Object.prototype.toString');
11224
11233
  var dateClass = '[object Date]';
11225
- var hasToStringTag$5 = shams();
11234
+ var hasToStringTag$5 = requireShams()();
11226
11235
 
11227
11236
  /** @type {import('.')} */
11228
11237
  var isDateObject = function isDateObject(value) {
@@ -11233,7 +11242,7 @@ var isDateObject = function isDateObject(value) {
11233
11242
  };
11234
11243
 
11235
11244
  var callBound$8 = callBound$i;
11236
- var hasToStringTag$4 = shams();
11245
+ var hasToStringTag$4 = requireShams()();
11237
11246
  var hasOwn = hasown;
11238
11247
  var gOPD$1 = gopd$1;
11239
11248
 
@@ -11338,7 +11347,7 @@ var tryNumberObject = function tryNumberObject(value) {
11338
11347
  };
11339
11348
  var $toString$3 = callBound$6('Object.prototype.toString');
11340
11349
  var numClass = '[object Number]';
11341
- var hasToStringTag$3 = shams();
11350
+ var hasToStringTag$3 = requireShams()();
11342
11351
 
11343
11352
  /** @type {import('.')} */
11344
11353
  var isNumberObject = function isNumberObject(value) {
@@ -11365,7 +11374,7 @@ var tryBooleanObject = function booleanBrandCheck(value) {
11365
11374
  }
11366
11375
  };
11367
11376
  var boolClass = '[object Boolean]';
11368
- var hasToStringTag$2 = shams();
11377
+ var hasToStringTag$2 = requireShams()();
11369
11378
 
11370
11379
  /** @type {import('.')} */
11371
11380
  var isBooleanObject = function isBoolean(value) {
@@ -11407,7 +11416,7 @@ function requireSafeRegexTest () {
11407
11416
 
11408
11417
  var callBound$4 = callBound$i;
11409
11418
  var $toString$1 = callBound$4('Object.prototype.toString');
11410
- var hasSymbols = hasSymbols$4();
11419
+ var hasSymbols = hasSymbols$3();
11411
11420
  var safeRegexTest = requireSafeRegexTest();
11412
11421
 
11413
11422
  if (hasSymbols) {
@@ -11853,7 +11862,7 @@ var gOPD = gopd$1;
11853
11862
  var getProto = getProto$3;
11854
11863
 
11855
11864
  var $toString = callBound$2('Object.prototype.toString');
11856
- var hasToStringTag = shams();
11865
+ var hasToStringTag = requireShams()();
11857
11866
 
11858
11867
  var g = typeof globalThis === 'undefined' ? commonjsGlobal : globalThis;
11859
11868
  var typedArrays = availableTypedArrays();
@@ -45206,7 +45215,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45206
45215
  case 2:
45207
45216
  list = _context.sent;
45208
45217
  (list || []).forEach(function (w) {
45209
- registryByName[w.name] = w;
45218
+ registryByName[w.packageId || w.name] = w;
45210
45219
  });
45211
45220
  case 3:
45212
45221
  installedFromCM = Object.keys(cMap).filter(function (key) {
@@ -45278,7 +45287,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45278
45287
  var uninstallWidget = React.useCallback(/*#__PURE__*/function () {
45279
45288
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widgetName) {
45280
45289
  var _window$mainApi2;
45281
- var cMap, keysToRemove, _t2;
45290
+ var widget, packageId, cMap, keysToRemove, _t2;
45282
45291
  return _regeneratorRuntime.wrap(function (_context2) {
45283
45292
  while (1) switch (_context2.prev = _context2.next) {
45284
45293
  case 0:
@@ -45289,17 +45298,22 @@ var useInstalledWidgets = function useInstalledWidgets() {
45289
45298
  return _context2.abrupt("return");
45290
45299
  case 1:
45291
45300
  _context2.prev = 1;
45292
- // Remove matching ComponentManager entries so the widget
45301
+ // Resolve packageId widgetName may be a CM key (e.g. "AnalogClockWidget")
45302
+ // but the registry is keyed by scoped package ID (e.g. "@trops/clock").
45303
+ widget = widgets.find(function (w) {
45304
+ return w.name === widgetName;
45305
+ });
45306
+ packageId = (widget === null || widget === void 0 ? void 0 : widget.packageId) || widgetName; // Remove matching ComponentManager entries so the widget
45293
45307
  // doesn't reappear as a "builtin" ghost after uninstall.
45294
45308
  cMap = ComponentManager.componentMap() || {};
45295
45309
  keysToRemove = Object.keys(cMap).filter(function (key) {
45296
- return cMap[key]._sourcePackage === widgetName;
45310
+ return cMap[key]._sourcePackage === packageId;
45297
45311
  });
45298
45312
  keysToRemove.forEach(function (key) {
45299
45313
  return delete cMap[key];
45300
45314
  });
45301
45315
  _context2.next = 2;
45302
- return window.mainApi.widgets.uninstall(widgetName);
45316
+ return window.mainApi.widgets.uninstall(packageId);
45303
45317
  case 2:
45304
45318
  _context2.next = 3;
45305
45319
  return refresh();
@@ -45319,7 +45333,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
45319
45333
  return function (_x) {
45320
45334
  return _ref2.apply(this, arguments);
45321
45335
  };
45322
- }(), [refresh]);
45336
+ }(), [refresh, widgets]);
45323
45337
  React.useEffect(function () {
45324
45338
  refresh();
45325
45339
  var handleWidgetsUpdated = function handleWidgetsUpdated() {
@@ -45374,17 +45388,32 @@ function useWidgetUpdates() {
45374
45388
  if (installed.length === 0) return;
45375
45389
  checkedRef.current = true;
45376
45390
  setIsChecking(true);
45377
- var payload = installed.map(function (w) {
45378
- return {
45379
- name: w.name,
45380
- version: w.version
45381
- };
45391
+
45392
+ // Deduplicate by package — multiple widgets in the same package share one version
45393
+ var pkgMap = new Map();
45394
+ installed.forEach(function (w) {
45395
+ var pkgId = w.packageId || w.name;
45396
+ if (!pkgMap.has(pkgId)) {
45397
+ pkgMap.set(pkgId, {
45398
+ name: pkgId,
45399
+ version: w.version
45400
+ });
45401
+ }
45382
45402
  });
45403
+ var payload = Array.from(pkgMap.values());
45383
45404
  (_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) {
45384
45405
  if (Array.isArray(results) && results.length > 0) {
45385
45406
  var map = new Map();
45386
45407
  results.forEach(function (r) {
45387
- return map.set(r.name, r);
45408
+ // Key by package ID (from result)
45409
+ map.set(r.name, r);
45410
+ // Also key by each widget's CM key so UI can look up by widget name
45411
+ installed.forEach(function (w) {
45412
+ var pkgId = w.packageId || w.name;
45413
+ if (pkgId === r.name) {
45414
+ map.set(w.name, r);
45415
+ }
45416
+ });
45388
45417
  });
45389
45418
  setUpdates(map);
45390
45419
  }
@@ -45397,7 +45426,7 @@ function useWidgetUpdates() {
45397
45426
  // Update a single widget by downloading the latest version
45398
45427
  var updateWidget = React.useCallback(/*#__PURE__*/function () {
45399
45428
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(name) {
45400
- var info, resolvedUrl;
45429
+ var info, widget, packageId, resolvedUrl;
45401
45430
  return _regeneratorRuntime.wrap(function (_context) {
45402
45431
  while (1) switch (_context.prev = _context.next) {
45403
45432
  case 0:
@@ -45408,11 +45437,16 @@ function useWidgetUpdates() {
45408
45437
  }
45409
45438
  return _context.abrupt("return");
45410
45439
  case 1:
45440
+ // Use packageId for install — name may be a CM key (widget-level)
45441
+ widget = installedWidgets.find(function (w) {
45442
+ return w.name === name;
45443
+ });
45444
+ packageId = (widget === null || widget === void 0 ? void 0 : widget.packageId) || info.name || name;
45411
45445
  setIsUpdating(name);
45412
45446
  _context.prev = 2;
45413
- resolvedUrl = info.downloadUrl.replace(/\{version\}/g, info.latestVersion).replace(/\{name\}/g, name);
45447
+ resolvedUrl = info.downloadUrl.replace(/\{version\}/g, info.latestVersion).replace(/\{name\}/g, packageId);
45414
45448
  _context.next = 3;
45415
- return window.mainApi.widgets.install(name, resolvedUrl);
45449
+ return window.mainApi.widgets.install(packageId, resolvedUrl);
45416
45450
  case 3:
45417
45451
  // Remove from updates map on success
45418
45452
  setUpdates(function (prev) {
@@ -45439,7 +45473,7 @@ function useWidgetUpdates() {
45439
45473
  return function (_x) {
45440
45474
  return _ref.apply(this, arguments);
45441
45475
  };
45442
- }(), [updates, onUpdated]);
45476
+ }(), [updates, onUpdated, installedWidgets]);
45443
45477
  return {
45444
45478
  updates: updates,
45445
45479
  isChecking: isChecking,