@trops/dash-core 0.1.187 → 0.1.189
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 +882 -365
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +924 -395
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
|
14
14
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
15
15
|
var react = require('@headlessui/react');
|
|
16
16
|
var solid = require('@heroicons/react/20/solid');
|
|
17
|
+
var fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core');
|
|
17
18
|
var clsx = require('clsx');
|
|
18
19
|
var reactDnd = require('react-dnd');
|
|
19
20
|
var reactDndHtml5Backend = require('react-dnd-html5-backend');
|
|
@@ -22,7 +23,6 @@ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
|
22
23
|
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
23
24
|
var colors = require('tailwindcss/colors');
|
|
24
25
|
var ReactDOM = require('react-dom');
|
|
25
|
-
var fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core');
|
|
26
26
|
var algoliasearch = require('algoliasearch');
|
|
27
27
|
var reactInstantsearchHooksWeb = require('react-instantsearch-hooks-web');
|
|
28
28
|
var reactRouterDom = require('react-router-dom');
|
|
@@ -5222,6 +5222,837 @@ var LayoutQuickAddMenu = function LayoutQuickAddMenu(_ref) {
|
|
|
5222
5222
|
});
|
|
5223
5223
|
};
|
|
5224
5224
|
|
|
5225
|
+
var CATEGORIES = [{
|
|
5226
|
+
key: "reporting",
|
|
5227
|
+
label: "Reporting",
|
|
5228
|
+
icon: "chart-bar",
|
|
5229
|
+
description: "Dashboards for data visualization and reports"
|
|
5230
|
+
}, {
|
|
5231
|
+
key: "monitoring",
|
|
5232
|
+
label: "Monitoring",
|
|
5233
|
+
icon: "heart-pulse",
|
|
5234
|
+
description: "System health, uptime, and performance monitoring"
|
|
5235
|
+
}, {
|
|
5236
|
+
key: "productivity",
|
|
5237
|
+
label: "Productivity",
|
|
5238
|
+
icon: "list-check",
|
|
5239
|
+
description: "Task tracking, calendars, and workflow management"
|
|
5240
|
+
}, {
|
|
5241
|
+
key: "development",
|
|
5242
|
+
label: "Development",
|
|
5243
|
+
icon: "code",
|
|
5244
|
+
description: "Code repos, CI/CD, and developer tools"
|
|
5245
|
+
}, {
|
|
5246
|
+
key: "communication",
|
|
5247
|
+
label: "Communication",
|
|
5248
|
+
icon: "comments",
|
|
5249
|
+
description: "Messages, channels, and team communication"
|
|
5250
|
+
}, {
|
|
5251
|
+
key: "custom",
|
|
5252
|
+
label: "Custom",
|
|
5253
|
+
icon: "grid-2",
|
|
5254
|
+
description: "Build a fully custom dashboard"
|
|
5255
|
+
}];
|
|
5256
|
+
|
|
5257
|
+
/**
|
|
5258
|
+
* WizardIntentStep
|
|
5259
|
+
*
|
|
5260
|
+
* Step 0 of the Dashboard Wizard. Presents category cards so the user
|
|
5261
|
+
* can indicate what kind of dashboard they want to build.
|
|
5262
|
+
* Multi-select — user can pick multiple categories.
|
|
5263
|
+
*
|
|
5264
|
+
* @param {Object} props
|
|
5265
|
+
* @param {Object} props.state - Wizard state from useWizardState
|
|
5266
|
+
* @param {Function} props.dispatch - Wizard dispatch from useWizardState
|
|
5267
|
+
*/
|
|
5268
|
+
var WizardIntentStep = function WizardIntentStep(_ref) {
|
|
5269
|
+
var state = _ref.state,
|
|
5270
|
+
dispatch = _ref.dispatch;
|
|
5271
|
+
var handleToggle = function handleToggle(key) {
|
|
5272
|
+
dispatch({
|
|
5273
|
+
type: "TOGGLE_INTENT",
|
|
5274
|
+
payload: key
|
|
5275
|
+
});
|
|
5276
|
+
};
|
|
5277
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5278
|
+
className: "wizard-intent-step",
|
|
5279
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
5280
|
+
className: "wizard-step-header",
|
|
5281
|
+
children: "What is this dashboard for?"
|
|
5282
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
5283
|
+
className: "wizard-card-grid",
|
|
5284
|
+
children: CATEGORIES.map(function (cat) {
|
|
5285
|
+
return /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectableCard, {
|
|
5286
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5287
|
+
icon: cat.icon,
|
|
5288
|
+
fixedWidth: true
|
|
5289
|
+
}),
|
|
5290
|
+
label: cat.label,
|
|
5291
|
+
description: cat.description,
|
|
5292
|
+
selected: state.intent.includes(cat.key),
|
|
5293
|
+
onSelect: function onSelect() {
|
|
5294
|
+
return handleToggle(cat.key);
|
|
5295
|
+
}
|
|
5296
|
+
}, cat.key);
|
|
5297
|
+
})
|
|
5298
|
+
})]
|
|
5299
|
+
});
|
|
5300
|
+
};
|
|
5301
|
+
|
|
5302
|
+
var FALLBACK = "puzzle-piece";
|
|
5303
|
+
|
|
5304
|
+
/**
|
|
5305
|
+
* Resolve an icon name to a valid FontAwesome icon reference.
|
|
5306
|
+
* Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
|
|
5307
|
+
* the icon is falsy or not found in either prefix.
|
|
5308
|
+
*/
|
|
5309
|
+
var resolveIcon = function resolveIcon(iconName) {
|
|
5310
|
+
if (!iconName) return FALLBACK;
|
|
5311
|
+
|
|
5312
|
+
// Already an array tuple like ["fab", "github"] — pass through
|
|
5313
|
+
if (Array.isArray(iconName)) return iconName;
|
|
5314
|
+
|
|
5315
|
+
// Try solid
|
|
5316
|
+
if (fontawesomeSvgCore.findIconDefinition({
|
|
5317
|
+
prefix: "fas",
|
|
5318
|
+
iconName: iconName
|
|
5319
|
+
})) return iconName;
|
|
5320
|
+
|
|
5321
|
+
// Try brand
|
|
5322
|
+
if (fontawesomeSvgCore.findIconDefinition({
|
|
5323
|
+
prefix: "fab",
|
|
5324
|
+
iconName: iconName
|
|
5325
|
+
})) return ["fab", iconName];
|
|
5326
|
+
return FALLBACK;
|
|
5327
|
+
};
|
|
5328
|
+
|
|
5329
|
+
var WizardProvidersStep = function WizardProvidersStep(_ref) {
|
|
5330
|
+
var state = _ref.state,
|
|
5331
|
+
dispatch = _ref.dispatch;
|
|
5332
|
+
var _useContext = React.useContext(AppContext),
|
|
5333
|
+
providersMap = _useContext.providers;
|
|
5334
|
+
var providerList = React.useMemo(function () {
|
|
5335
|
+
if (!providersMap || _typeof(providersMap) !== "object") return [];
|
|
5336
|
+
return Object.values(providersMap).map(function (p) {
|
|
5337
|
+
return {
|
|
5338
|
+
key: p.type || p.name,
|
|
5339
|
+
name: p.name,
|
|
5340
|
+
type: p.type,
|
|
5341
|
+
icon: p.icon || p.type,
|
|
5342
|
+
configured: !!(p.credentials && Object.keys(p.credentials).length > 0)
|
|
5343
|
+
};
|
|
5344
|
+
});
|
|
5345
|
+
}, [providersMap]);
|
|
5346
|
+
|
|
5347
|
+
// Pre-check configured providers on first render
|
|
5348
|
+
React.useEffect(function () {
|
|
5349
|
+
if (state.providers.length === 0 && providerList.length > 0) {
|
|
5350
|
+
var configuredKeys = providerList.filter(function (p) {
|
|
5351
|
+
return p.configured;
|
|
5352
|
+
}).map(function (p) {
|
|
5353
|
+
return p.key;
|
|
5354
|
+
});
|
|
5355
|
+
if (configuredKeys.length > 0) {
|
|
5356
|
+
dispatch({
|
|
5357
|
+
type: "SET_PROVIDERS",
|
|
5358
|
+
payload: configuredKeys
|
|
5359
|
+
});
|
|
5360
|
+
}
|
|
5361
|
+
}
|
|
5362
|
+
}, [providerList, state.providers.length, dispatch]);
|
|
5363
|
+
var handleToggle = function handleToggle(key) {
|
|
5364
|
+
dispatch({
|
|
5365
|
+
type: "TOGGLE_PROVIDER",
|
|
5366
|
+
payload: key
|
|
5367
|
+
});
|
|
5368
|
+
};
|
|
5369
|
+
if (providerList.length === 0) {
|
|
5370
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5371
|
+
className: "wizard-providers-step",
|
|
5372
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
5373
|
+
className: "wizard-step-header",
|
|
5374
|
+
children: "Which tools and services do you use?"
|
|
5375
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
5376
|
+
className: "wizard-empty-message",
|
|
5377
|
+
children: "No providers configured yet. Add providers in Settings first."
|
|
5378
|
+
})]
|
|
5379
|
+
});
|
|
5380
|
+
}
|
|
5381
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5382
|
+
className: "wizard-providers-step",
|
|
5383
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
5384
|
+
className: "wizard-step-header",
|
|
5385
|
+
children: "Which tools and services do you use?"
|
|
5386
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
5387
|
+
className: "wizard-card-grid",
|
|
5388
|
+
children: providerList.map(function (provider) {
|
|
5389
|
+
var isSelected = state.providers.includes(provider.key);
|
|
5390
|
+
var needsSetup = isSelected && !provider.configured;
|
|
5391
|
+
return /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectableCard, {
|
|
5392
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5393
|
+
icon: resolveIcon(provider.icon),
|
|
5394
|
+
fixedWidth: true
|
|
5395
|
+
}),
|
|
5396
|
+
label: provider.name,
|
|
5397
|
+
description: needsSetup ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5398
|
+
className: "wizard-needs-setup-badge",
|
|
5399
|
+
children: "Needs setup"
|
|
5400
|
+
}) : null,
|
|
5401
|
+
selected: isSelected,
|
|
5402
|
+
onSelect: function onSelect() {
|
|
5403
|
+
return handleToggle(provider.key);
|
|
5404
|
+
}
|
|
5405
|
+
}, provider.key);
|
|
5406
|
+
})
|
|
5407
|
+
})]
|
|
5408
|
+
});
|
|
5409
|
+
};
|
|
5410
|
+
|
|
5411
|
+
function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
5412
|
+
function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$e(r, a) : void 0; } }
|
|
5413
|
+
function _arrayLikeToArray$e(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5414
|
+
|
|
5415
|
+
/**
|
|
5416
|
+
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
5417
|
+
*
|
|
5418
|
+
* Extracted from EnhancedWidgetDropdown so the same logic can power the
|
|
5419
|
+
* Discover tab inside AppSettingsModal (and anywhere else).
|
|
5420
|
+
*
|
|
5421
|
+
* Options:
|
|
5422
|
+
* filterByCapabilities – if true (default), only show packages compatible
|
|
5423
|
+
* with the app's API capabilities
|
|
5424
|
+
*
|
|
5425
|
+
* Returns:
|
|
5426
|
+
* packages – raw package objects from the registry
|
|
5427
|
+
* flatWidgets – flattened widget entries with `isRegistry: true`
|
|
5428
|
+
* isLoading – true while a search request is in flight
|
|
5429
|
+
* error – error message string (or null)
|
|
5430
|
+
* searchQuery / setSearchQuery – controlled search input
|
|
5431
|
+
* isInstalling – true during an install
|
|
5432
|
+
* installError – install error string (or null)
|
|
5433
|
+
* search() – manually trigger a search
|
|
5434
|
+
* installPackage(widget) – install a specific registry widget
|
|
5435
|
+
* showAllPackages / setShowAllPackages – toggle to show incompatible packages
|
|
5436
|
+
* appCapabilities – the app's API namespaces
|
|
5437
|
+
*/
|
|
5438
|
+
var useRegistrySearch = function useRegistrySearch() {
|
|
5439
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
5440
|
+
_ref$filterByCapabili = _ref.filterByCapabilities,
|
|
5441
|
+
filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
|
|
5442
|
+
var _useState = React.useState(false),
|
|
5443
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
5444
|
+
isLoading = _useState2[0],
|
|
5445
|
+
setIsLoading = _useState2[1];
|
|
5446
|
+
var _useState3 = React.useState(null),
|
|
5447
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
5448
|
+
error = _useState4[0],
|
|
5449
|
+
setError = _useState4[1];
|
|
5450
|
+
var _useState5 = React.useState([]),
|
|
5451
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
5452
|
+
packages = _useState6[0],
|
|
5453
|
+
setPackages = _useState6[1];
|
|
5454
|
+
var _useState7 = React.useState([]),
|
|
5455
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
5456
|
+
flatWidgets = _useState8[0],
|
|
5457
|
+
setFlatWidgets = _useState8[1];
|
|
5458
|
+
var _useState9 = React.useState(""),
|
|
5459
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
5460
|
+
searchQuery = _useState0[0],
|
|
5461
|
+
setSearchQuery = _useState0[1];
|
|
5462
|
+
var _useState1 = React.useState(false),
|
|
5463
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
5464
|
+
isInstalling = _useState10[0],
|
|
5465
|
+
setIsInstalling = _useState10[1];
|
|
5466
|
+
var _useState11 = React.useState(null),
|
|
5467
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
5468
|
+
installError = _useState12[0],
|
|
5469
|
+
setInstallError = _useState12[1];
|
|
5470
|
+
var _useState13 = React.useState(false),
|
|
5471
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
5472
|
+
showAllPackages = _useState14[0],
|
|
5473
|
+
setShowAllPackages = _useState14[1];
|
|
5474
|
+
|
|
5475
|
+
// Discover app capabilities from window.mainApi
|
|
5476
|
+
var appCapabilities = React.useMemo(function () {
|
|
5477
|
+
if (typeof window !== "undefined" && window.mainApi) {
|
|
5478
|
+
return Object.keys(window.mainApi);
|
|
5479
|
+
}
|
|
5480
|
+
return [];
|
|
5481
|
+
}, []);
|
|
5482
|
+
var search = React.useCallback(/*#__PURE__*/function () {
|
|
5483
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
|
|
5484
|
+
var _window$mainApi;
|
|
5485
|
+
var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
|
|
5486
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
5487
|
+
while (1) switch (_context.prev = _context.next) {
|
|
5488
|
+
case 0:
|
|
5489
|
+
if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
|
|
5490
|
+
_context.next = 1;
|
|
5491
|
+
break;
|
|
5492
|
+
}
|
|
5493
|
+
setPackages([]);
|
|
5494
|
+
setFlatWidgets([]);
|
|
5495
|
+
return _context.abrupt("return");
|
|
5496
|
+
case 1:
|
|
5497
|
+
setIsLoading(true);
|
|
5498
|
+
setError(null);
|
|
5499
|
+
_context.prev = 2;
|
|
5500
|
+
filters = {};
|
|
5501
|
+
if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
|
|
5502
|
+
filters.appCapabilities = appCapabilities;
|
|
5503
|
+
}
|
|
5504
|
+
_context.next = 3;
|
|
5505
|
+
return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
|
|
5506
|
+
case 3:
|
|
5507
|
+
result = _context.sent;
|
|
5508
|
+
// Only include packages that contain at least one widget
|
|
5509
|
+
// (filters out theme-only packages, etc.)
|
|
5510
|
+
pkgs = (result.packages || []).filter(function (pkg) {
|
|
5511
|
+
return pkg.widgets && pkg.widgets.length > 0;
|
|
5512
|
+
});
|
|
5513
|
+
setPackages(pkgs);
|
|
5514
|
+
|
|
5515
|
+
// Flatten packages into widget entries
|
|
5516
|
+
capSet = new Set(appCapabilities.map(function (c) {
|
|
5517
|
+
return c.toLowerCase();
|
|
5518
|
+
}));
|
|
5519
|
+
widgets = [];
|
|
5520
|
+
_iterator = _createForOfIteratorHelper$e(pkgs);
|
|
5521
|
+
try {
|
|
5522
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
5523
|
+
pkg = _step.value;
|
|
5524
|
+
// Compute missing APIs for the entire package
|
|
5525
|
+
allApiProviders = [];
|
|
5526
|
+
_iterator2 = _createForOfIteratorHelper$e(pkg.providers || []);
|
|
5527
|
+
try {
|
|
5528
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5529
|
+
p = _step2.value;
|
|
5530
|
+
if (p.providerClass === "api" && p.required !== false) {
|
|
5531
|
+
allApiProviders.push(p.type);
|
|
5532
|
+
}
|
|
5533
|
+
}
|
|
5534
|
+
} catch (err) {
|
|
5535
|
+
_iterator2.e(err);
|
|
5536
|
+
} finally {
|
|
5537
|
+
_iterator2.f();
|
|
5538
|
+
}
|
|
5539
|
+
_iterator3 = _createForOfIteratorHelper$e(pkg.widgets || []);
|
|
5540
|
+
try {
|
|
5541
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
5542
|
+
w = _step3.value;
|
|
5543
|
+
_iterator5 = _createForOfIteratorHelper$e(w.providers || []);
|
|
5544
|
+
try {
|
|
5545
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
5546
|
+
_p = _step5.value;
|
|
5547
|
+
if (_p.providerClass === "api" && _p.required !== false) {
|
|
5548
|
+
allApiProviders.push(_p.type);
|
|
5549
|
+
}
|
|
5550
|
+
}
|
|
5551
|
+
} catch (err) {
|
|
5552
|
+
_iterator5.e(err);
|
|
5553
|
+
} finally {
|
|
5554
|
+
_iterator5.f();
|
|
5555
|
+
}
|
|
5556
|
+
}
|
|
5557
|
+
} catch (err) {
|
|
5558
|
+
_iterator3.e(err);
|
|
5559
|
+
} finally {
|
|
5560
|
+
_iterator3.f();
|
|
5561
|
+
}
|
|
5562
|
+
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
5563
|
+
return !capSet.has(api.toLowerCase());
|
|
5564
|
+
});
|
|
5565
|
+
_iterator4 = _createForOfIteratorHelper$e(pkg.widgets || []);
|
|
5566
|
+
try {
|
|
5567
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
5568
|
+
widget = _step4.value;
|
|
5569
|
+
widgets.push({
|
|
5570
|
+
key: "".concat(pkg.name, "/").concat(widget.name),
|
|
5571
|
+
name: widget.displayName || widget.name,
|
|
5572
|
+
description: widget.description || "",
|
|
5573
|
+
icon: widget.icon || null,
|
|
5574
|
+
providers: widget.providers || [],
|
|
5575
|
+
isRegistry: true,
|
|
5576
|
+
packageName: pkg.name,
|
|
5577
|
+
packageDisplayName: pkg.displayName || pkg.name,
|
|
5578
|
+
packageVersion: pkg.version,
|
|
5579
|
+
packageAuthor: pkg.author || "",
|
|
5580
|
+
packageDescription: pkg.description || "",
|
|
5581
|
+
packageTags: pkg.tags || [],
|
|
5582
|
+
packageCategory: pkg.category || "",
|
|
5583
|
+
downloadUrl: pkg.downloadUrl || "",
|
|
5584
|
+
repository: pkg.repository || "",
|
|
5585
|
+
publishedAt: pkg.publishedAt || "",
|
|
5586
|
+
packageWidgets: pkg.widgets || [],
|
|
5587
|
+
appOrigin: pkg.appOrigin || null,
|
|
5588
|
+
packageProviders: pkg.providers || [],
|
|
5589
|
+
missingApis: missingApis
|
|
5590
|
+
});
|
|
5591
|
+
}
|
|
5592
|
+
} catch (err) {
|
|
5593
|
+
_iterator4.e(err);
|
|
5594
|
+
} finally {
|
|
5595
|
+
_iterator4.f();
|
|
5596
|
+
}
|
|
5597
|
+
}
|
|
5598
|
+
} catch (err) {
|
|
5599
|
+
_iterator.e(err);
|
|
5600
|
+
} finally {
|
|
5601
|
+
_iterator.f();
|
|
5602
|
+
}
|
|
5603
|
+
setFlatWidgets(widgets);
|
|
5604
|
+
_context.next = 5;
|
|
5605
|
+
break;
|
|
5606
|
+
case 4:
|
|
5607
|
+
_context.prev = 4;
|
|
5608
|
+
_t = _context["catch"](2);
|
|
5609
|
+
setError(_t.message || "Failed to load registry");
|
|
5610
|
+
setPackages([]);
|
|
5611
|
+
setFlatWidgets([]);
|
|
5612
|
+
case 5:
|
|
5613
|
+
_context.prev = 5;
|
|
5614
|
+
setIsLoading(false);
|
|
5615
|
+
return _context.finish(5);
|
|
5616
|
+
case 6:
|
|
5617
|
+
case "end":
|
|
5618
|
+
return _context.stop();
|
|
5619
|
+
}
|
|
5620
|
+
}, _callee, null, [[2, 4, 5, 6]]);
|
|
5621
|
+
}));
|
|
5622
|
+
return function (_x) {
|
|
5623
|
+
return _ref2.apply(this, arguments);
|
|
5624
|
+
};
|
|
5625
|
+
}(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
|
|
5626
|
+
|
|
5627
|
+
// Debounce search on query changes (300ms)
|
|
5628
|
+
React.useEffect(function () {
|
|
5629
|
+
var timer = setTimeout(function () {
|
|
5630
|
+
search(searchQuery);
|
|
5631
|
+
}, 300);
|
|
5632
|
+
return function () {
|
|
5633
|
+
return clearTimeout(timer);
|
|
5634
|
+
};
|
|
5635
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5636
|
+
}, [searchQuery, showAllPackages]);
|
|
5637
|
+
var installPackage = React.useCallback(/*#__PURE__*/function () {
|
|
5638
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
|
|
5639
|
+
var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
|
|
5640
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
5641
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
5642
|
+
case 0:
|
|
5643
|
+
if (!(!widget || !widget.isRegistry)) {
|
|
5644
|
+
_context2.next = 1;
|
|
5645
|
+
break;
|
|
5646
|
+
}
|
|
5647
|
+
return _context2.abrupt("return");
|
|
5648
|
+
case 1:
|
|
5649
|
+
setIsInstalling(true);
|
|
5650
|
+
setInstallError(null);
|
|
5651
|
+
_context2.prev = 2;
|
|
5652
|
+
packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
|
|
5653
|
+
resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
|
|
5654
|
+
_context2.next = 3;
|
|
5655
|
+
return window.mainApi.widgets.install(packageName, resolvedUrl);
|
|
5656
|
+
case 3:
|
|
5657
|
+
_context2.next = 5;
|
|
5658
|
+
break;
|
|
5659
|
+
case 4:
|
|
5660
|
+
_context2.prev = 4;
|
|
5661
|
+
_t2 = _context2["catch"](2);
|
|
5662
|
+
setInstallError(_t2.message || "Failed to install package");
|
|
5663
|
+
case 5:
|
|
5664
|
+
_context2.prev = 5;
|
|
5665
|
+
setIsInstalling(false);
|
|
5666
|
+
return _context2.finish(5);
|
|
5667
|
+
case 6:
|
|
5668
|
+
case "end":
|
|
5669
|
+
return _context2.stop();
|
|
5670
|
+
}
|
|
5671
|
+
}, _callee2, null, [[2, 4, 5, 6]]);
|
|
5672
|
+
}));
|
|
5673
|
+
return function (_x2) {
|
|
5674
|
+
return _ref3.apply(this, arguments);
|
|
5675
|
+
};
|
|
5676
|
+
}(), []);
|
|
5677
|
+
var retry = React.useCallback(function () {
|
|
5678
|
+
search(searchQuery);
|
|
5679
|
+
}, [search, searchQuery]);
|
|
5680
|
+
return {
|
|
5681
|
+
packages: packages,
|
|
5682
|
+
flatWidgets: flatWidgets,
|
|
5683
|
+
isLoading: isLoading,
|
|
5684
|
+
error: error,
|
|
5685
|
+
searchQuery: searchQuery,
|
|
5686
|
+
setSearchQuery: setSearchQuery,
|
|
5687
|
+
isInstalling: isInstalling,
|
|
5688
|
+
installError: installError,
|
|
5689
|
+
search: search,
|
|
5690
|
+
installPackage: installPackage,
|
|
5691
|
+
retry: retry,
|
|
5692
|
+
showAllPackages: showAllPackages,
|
|
5693
|
+
setShowAllPackages: setShowAllPackages,
|
|
5694
|
+
appCapabilities: appCapabilities
|
|
5695
|
+
};
|
|
5696
|
+
};
|
|
5697
|
+
|
|
5698
|
+
var WizardResultsStep = function WizardResultsStep(_ref) {
|
|
5699
|
+
var state = _ref.state,
|
|
5700
|
+
dispatch = _ref.dispatch;
|
|
5701
|
+
var _useState = React.useState("prebuilt"),
|
|
5702
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
5703
|
+
activeTab = _useState2[0],
|
|
5704
|
+
setActiveTab = _useState2[1];
|
|
5705
|
+
|
|
5706
|
+
// --- Dashboard search (Tab A) ---
|
|
5707
|
+
var _useState3 = React.useState([]),
|
|
5708
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
5709
|
+
dashboards = _useState4[0],
|
|
5710
|
+
setDashboards = _useState4[1];
|
|
5711
|
+
var _useState5 = React.useState(false),
|
|
5712
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
5713
|
+
dashLoading = _useState6[0],
|
|
5714
|
+
setDashLoading = _useState6[1];
|
|
5715
|
+
var _useState7 = React.useState(null),
|
|
5716
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
5717
|
+
dashError = _useState8[0],
|
|
5718
|
+
setDashError = _useState8[1];
|
|
5719
|
+
var dashFilters = React.useMemo(function () {
|
|
5720
|
+
return {
|
|
5721
|
+
category: state.intent.length ? state.intent.join(",") : undefined,
|
|
5722
|
+
providerTypes: state.providers.length ? state.providers : undefined
|
|
5723
|
+
};
|
|
5724
|
+
}, [state.intent, state.providers]);
|
|
5725
|
+
var searchDashboards = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
5726
|
+
var _window$mainApi;
|
|
5727
|
+
var result, _t;
|
|
5728
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
5729
|
+
while (1) switch (_context.prev = _context.next) {
|
|
5730
|
+
case 0:
|
|
5731
|
+
if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.registry) !== null && _window$mainApi !== void 0 && _window$mainApi.searchDashboards) {
|
|
5732
|
+
_context.next = 1;
|
|
5733
|
+
break;
|
|
5734
|
+
}
|
|
5735
|
+
setDashboards([]);
|
|
5736
|
+
return _context.abrupt("return");
|
|
5737
|
+
case 1:
|
|
5738
|
+
setDashLoading(true);
|
|
5739
|
+
setDashError(null);
|
|
5740
|
+
_context.prev = 2;
|
|
5741
|
+
_context.next = 3;
|
|
5742
|
+
return window.mainApi.registry.searchDashboards("", dashFilters);
|
|
5743
|
+
case 3:
|
|
5744
|
+
result = _context.sent;
|
|
5745
|
+
setDashboards(result.packages || []);
|
|
5746
|
+
_context.next = 5;
|
|
5747
|
+
break;
|
|
5748
|
+
case 4:
|
|
5749
|
+
_context.prev = 4;
|
|
5750
|
+
_t = _context["catch"](2);
|
|
5751
|
+
setDashError(_t.message || "Failed to search dashboards");
|
|
5752
|
+
setDashboards([]);
|
|
5753
|
+
case 5:
|
|
5754
|
+
_context.prev = 5;
|
|
5755
|
+
setDashLoading(false);
|
|
5756
|
+
return _context.finish(5);
|
|
5757
|
+
case 6:
|
|
5758
|
+
case "end":
|
|
5759
|
+
return _context.stop();
|
|
5760
|
+
}
|
|
5761
|
+
}, _callee, null, [[2, 4, 5, 6]]);
|
|
5762
|
+
})), [dashFilters]);
|
|
5763
|
+
React.useEffect(function () {
|
|
5764
|
+
searchDashboards();
|
|
5765
|
+
}, [searchDashboards]);
|
|
5766
|
+
|
|
5767
|
+
// --- Widget search (Tab B) ---
|
|
5768
|
+
var _useRegistrySearch = useRegistrySearch({
|
|
5769
|
+
filterByCapabilities: true
|
|
5770
|
+
}),
|
|
5771
|
+
flatWidgets = _useRegistrySearch.flatWidgets,
|
|
5772
|
+
widgetsLoading = _useRegistrySearch.isLoading,
|
|
5773
|
+
widgetsError = _useRegistrySearch.error;
|
|
5774
|
+
|
|
5775
|
+
// Filter widgets by selected categories + providers
|
|
5776
|
+
var filteredWidgets = React.useMemo(function () {
|
|
5777
|
+
return flatWidgets.filter(function (w) {
|
|
5778
|
+
// Category filter: match if widget's category overlaps user intent
|
|
5779
|
+
var catMatch = state.intent.length === 0 || state.intent.some(function (cat) {
|
|
5780
|
+
return (w.packageCategory || "").toLowerCase() === cat.toLowerCase();
|
|
5781
|
+
});
|
|
5782
|
+
|
|
5783
|
+
// Provider filter: match if widget requires any of the selected providers
|
|
5784
|
+
var providerMatch = state.providers.length === 0 || (w.providers || []).some(function (p) {
|
|
5785
|
+
return state.providers.includes(p.type);
|
|
5786
|
+
}) || (w.packageProviders || []).some(function (p) {
|
|
5787
|
+
return state.providers.includes(p.type);
|
|
5788
|
+
});
|
|
5789
|
+
return catMatch && providerMatch;
|
|
5790
|
+
});
|
|
5791
|
+
}, [flatWidgets, state.intent, state.providers]);
|
|
5792
|
+
|
|
5793
|
+
// --- Tab change: set wizard path ---
|
|
5794
|
+
var handleTabChange = React.useCallback(function (tab) {
|
|
5795
|
+
setActiveTab(tab);
|
|
5796
|
+
dispatch({
|
|
5797
|
+
type: "SET_PATH",
|
|
5798
|
+
payload: tab === "prebuilt" ? "prebuilt" : "custom"
|
|
5799
|
+
});
|
|
5800
|
+
}, [dispatch]);
|
|
5801
|
+
|
|
5802
|
+
// Set initial path on mount
|
|
5803
|
+
React.useEffect(function () {
|
|
5804
|
+
if (!state.path) {
|
|
5805
|
+
dispatch({
|
|
5806
|
+
type: "SET_PATH",
|
|
5807
|
+
payload: "prebuilt"
|
|
5808
|
+
});
|
|
5809
|
+
}
|
|
5810
|
+
}, [state.path, dispatch]);
|
|
5811
|
+
|
|
5812
|
+
// --- Dashboard selection (single-select) ---
|
|
5813
|
+
var handleSelectDashboard = React.useCallback(function (dashboard) {
|
|
5814
|
+
dispatch({
|
|
5815
|
+
type: "SET_SELECTED_DASHBOARD",
|
|
5816
|
+
payload: dashboard
|
|
5817
|
+
});
|
|
5818
|
+
}, [dispatch]);
|
|
5819
|
+
|
|
5820
|
+
// --- Widget selection (multi-select) ---
|
|
5821
|
+
var handleToggleWidget = React.useCallback(function (widget) {
|
|
5822
|
+
dispatch({
|
|
5823
|
+
type: "TOGGLE_WIDGET",
|
|
5824
|
+
payload: widget
|
|
5825
|
+
});
|
|
5826
|
+
}, [dispatch]);
|
|
5827
|
+
var isWidgetSelected = React.useCallback(function (widget) {
|
|
5828
|
+
return state.selectedWidgets.some(function (w) {
|
|
5829
|
+
return w.name === widget.name;
|
|
5830
|
+
});
|
|
5831
|
+
}, [state.selectedWidgets]);
|
|
5832
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5833
|
+
className: "wizard-results-step",
|
|
5834
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
5835
|
+
className: "wizard-step-header",
|
|
5836
|
+
children: "Choose your starting point"
|
|
5837
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3, {
|
|
5838
|
+
value: activeTab,
|
|
5839
|
+
onValueChange: handleTabChange,
|
|
5840
|
+
className: "wizard-results-tabs",
|
|
5841
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.List, {
|
|
5842
|
+
className: "wizard-results-tab-list",
|
|
5843
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
|
|
5844
|
+
value: "prebuilt",
|
|
5845
|
+
children: "Pre-built Dashboards"
|
|
5846
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.Trigger, {
|
|
5847
|
+
value: "custom",
|
|
5848
|
+
children: ["Build Your Own", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5849
|
+
className: "wizard-count-badge",
|
|
5850
|
+
children: state.selectedWidgets.length
|
|
5851
|
+
})]
|
|
5852
|
+
})]
|
|
5853
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
|
|
5854
|
+
value: "prebuilt",
|
|
5855
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashboardList, {
|
|
5856
|
+
dashboards: dashboards,
|
|
5857
|
+
isLoading: dashLoading,
|
|
5858
|
+
error: dashError,
|
|
5859
|
+
selectedDashboard: state.selectedDashboard,
|
|
5860
|
+
onSelect: handleSelectDashboard
|
|
5861
|
+
})
|
|
5862
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
|
|
5863
|
+
value: "custom",
|
|
5864
|
+
children: /*#__PURE__*/jsxRuntime.jsx(WidgetList, {
|
|
5865
|
+
widgets: filteredWidgets,
|
|
5866
|
+
isLoading: widgetsLoading,
|
|
5867
|
+
error: widgetsError,
|
|
5868
|
+
isSelected: isWidgetSelected,
|
|
5869
|
+
onToggle: handleToggleWidget,
|
|
5870
|
+
selectedCount: state.selectedWidgets.length
|
|
5871
|
+
})
|
|
5872
|
+
})]
|
|
5873
|
+
})]
|
|
5874
|
+
});
|
|
5875
|
+
};
|
|
5876
|
+
|
|
5877
|
+
// --- Sub-components ---
|
|
5878
|
+
|
|
5879
|
+
var DashboardList = function DashboardList(_ref3) {
|
|
5880
|
+
var dashboards = _ref3.dashboards,
|
|
5881
|
+
isLoading = _ref3.isLoading,
|
|
5882
|
+
error = _ref3.error,
|
|
5883
|
+
selectedDashboard = _ref3.selectedDashboard,
|
|
5884
|
+
onSelect = _ref3.onSelect;
|
|
5885
|
+
if (isLoading) {
|
|
5886
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5887
|
+
className: "wizard-loading",
|
|
5888
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5889
|
+
icon: "spinner",
|
|
5890
|
+
spin: true,
|
|
5891
|
+
fixedWidth: true,
|
|
5892
|
+
className: "wizard-loading-icon"
|
|
5893
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5894
|
+
children: "Searching dashboards..."
|
|
5895
|
+
})]
|
|
5896
|
+
});
|
|
5897
|
+
}
|
|
5898
|
+
if (error) {
|
|
5899
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5900
|
+
className: "wizard-error",
|
|
5901
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5902
|
+
icon: "circle-exclamation",
|
|
5903
|
+
fixedWidth: true
|
|
5904
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5905
|
+
children: error
|
|
5906
|
+
})]
|
|
5907
|
+
});
|
|
5908
|
+
}
|
|
5909
|
+
if (dashboards.length === 0) {
|
|
5910
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5911
|
+
className: "wizard-empty",
|
|
5912
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5913
|
+
icon: "box-open",
|
|
5914
|
+
fixedWidth: true,
|
|
5915
|
+
className: "wizard-empty-icon"
|
|
5916
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
5917
|
+
children: "No pre-built dashboards match your selections."
|
|
5918
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
5919
|
+
className: "wizard-empty-hint",
|
|
5920
|
+
children: "Try the \"Build Your Own\" tab to pick individual widgets."
|
|
5921
|
+
})]
|
|
5922
|
+
});
|
|
5923
|
+
}
|
|
5924
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
5925
|
+
className: "wizard-dashboard-list",
|
|
5926
|
+
children: dashboards.map(function (dash) {
|
|
5927
|
+
var isSelected = selectedDashboard && selectedDashboard.name === dash.name;
|
|
5928
|
+
var widgetCount = (dash.widgets || []).length;
|
|
5929
|
+
var providerNames = (dash.providers || []).map(function (p) {
|
|
5930
|
+
return p.name || p.type;
|
|
5931
|
+
}).join(", ");
|
|
5932
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
5933
|
+
type: "button",
|
|
5934
|
+
className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
|
|
5935
|
+
onClick: function onClick() {
|
|
5936
|
+
return onSelect(dash);
|
|
5937
|
+
},
|
|
5938
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5939
|
+
className: "wizard-dashboard-card-header",
|
|
5940
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5941
|
+
icon: resolveIcon(dash.icon || "grid-2"),
|
|
5942
|
+
fixedWidth: true,
|
|
5943
|
+
className: "wizard-dashboard-card-icon"
|
|
5944
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5945
|
+
className: "wizard-dashboard-card-name",
|
|
5946
|
+
children: dash.displayName || dash.name
|
|
5947
|
+
}), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5948
|
+
icon: "circle-check",
|
|
5949
|
+
className: "wizard-dashboard-card-check"
|
|
5950
|
+
})]
|
|
5951
|
+
}), dash.description && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
5952
|
+
className: "wizard-dashboard-card-desc",
|
|
5953
|
+
children: dash.description
|
|
5954
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5955
|
+
className: "wizard-dashboard-card-meta",
|
|
5956
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
5957
|
+
children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
|
|
5958
|
+
}), providerNames && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5959
|
+
children: providerNames
|
|
5960
|
+
})]
|
|
5961
|
+
})]
|
|
5962
|
+
}, dash.name);
|
|
5963
|
+
})
|
|
5964
|
+
});
|
|
5965
|
+
};
|
|
5966
|
+
var WidgetList = function WidgetList(_ref4) {
|
|
5967
|
+
var widgets = _ref4.widgets,
|
|
5968
|
+
isLoading = _ref4.isLoading,
|
|
5969
|
+
error = _ref4.error,
|
|
5970
|
+
isSelected = _ref4.isSelected,
|
|
5971
|
+
onToggle = _ref4.onToggle,
|
|
5972
|
+
selectedCount = _ref4.selectedCount;
|
|
5973
|
+
if (isLoading) {
|
|
5974
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5975
|
+
className: "wizard-loading",
|
|
5976
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5977
|
+
icon: "spinner",
|
|
5978
|
+
spin: true,
|
|
5979
|
+
fixedWidth: true,
|
|
5980
|
+
className: "wizard-loading-icon"
|
|
5981
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5982
|
+
children: "Searching widgets..."
|
|
5983
|
+
})]
|
|
5984
|
+
});
|
|
5985
|
+
}
|
|
5986
|
+
if (error) {
|
|
5987
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5988
|
+
className: "wizard-error",
|
|
5989
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
5990
|
+
icon: "circle-exclamation",
|
|
5991
|
+
fixedWidth: true
|
|
5992
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
5993
|
+
children: error
|
|
5994
|
+
})]
|
|
5995
|
+
});
|
|
5996
|
+
}
|
|
5997
|
+
if (widgets.length === 0) {
|
|
5998
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5999
|
+
className: "wizard-empty",
|
|
6000
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
6001
|
+
icon: "puzzle-piece",
|
|
6002
|
+
fixedWidth: true,
|
|
6003
|
+
className: "wizard-empty-icon"
|
|
6004
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
6005
|
+
children: "No widgets match your selections."
|
|
6006
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
6007
|
+
className: "wizard-empty-hint",
|
|
6008
|
+
children: "Try adjusting your categories or providers in the previous steps."
|
|
6009
|
+
})]
|
|
6010
|
+
});
|
|
6011
|
+
}
|
|
6012
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
6013
|
+
className: "wizard-widget-list",
|
|
6014
|
+
children: [selectedCount > 0 && /*#__PURE__*/jsxRuntime.jsxs("p", {
|
|
6015
|
+
className: "wizard-widget-count",
|
|
6016
|
+
children: [selectedCount, " widget", selectedCount !== 1 ? "s" : "", " selected"]
|
|
6017
|
+
}), widgets.map(function (widget) {
|
|
6018
|
+
var checked = isSelected(widget);
|
|
6019
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
6020
|
+
type: "button",
|
|
6021
|
+
className: "wizard-widget-card ".concat(checked ? "wizard-widget-card--selected" : ""),
|
|
6022
|
+
onClick: function onClick() {
|
|
6023
|
+
return onToggle(widget);
|
|
6024
|
+
},
|
|
6025
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
6026
|
+
className: "wizard-widget-card-checkbox",
|
|
6027
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
6028
|
+
icon: checked ? "square-check" : "square",
|
|
6029
|
+
fixedWidth: true
|
|
6030
|
+
})
|
|
6031
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
6032
|
+
className: "wizard-widget-card-info",
|
|
6033
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
6034
|
+
className: "wizard-widget-card-header",
|
|
6035
|
+
children: [widget.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
6036
|
+
icon: resolveIcon(widget.icon),
|
|
6037
|
+
fixedWidth: true,
|
|
6038
|
+
className: "wizard-widget-card-icon"
|
|
6039
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
6040
|
+
className: "wizard-widget-card-name",
|
|
6041
|
+
children: widget.name
|
|
6042
|
+
})]
|
|
6043
|
+
}), widget.description && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
6044
|
+
className: "wizard-widget-card-desc",
|
|
6045
|
+
children: widget.description
|
|
6046
|
+
}), widget.packageDisplayName && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
6047
|
+
className: "wizard-widget-card-package",
|
|
6048
|
+
children: widget.packageDisplayName
|
|
6049
|
+
})]
|
|
6050
|
+
})]
|
|
6051
|
+
}, widget.key);
|
|
6052
|
+
})]
|
|
6053
|
+
});
|
|
6054
|
+
};
|
|
6055
|
+
|
|
5225
6056
|
var LayoutBuilderAddItemModal = function LayoutBuilderAddItemModal(_ref) {
|
|
5226
6057
|
var workspace = _ref.workspace,
|
|
5227
6058
|
open = _ref.open,
|
|
@@ -5825,7 +6656,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
|
|
|
5825
6656
|
var hasPropertyDescriptors_1 = hasPropertyDescriptors;
|
|
5826
6657
|
|
|
5827
6658
|
var keys = objectKeys$2;
|
|
5828
|
-
var hasSymbols$
|
|
6659
|
+
var hasSymbols$4 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
|
|
5829
6660
|
|
|
5830
6661
|
var toStr$4 = Object.prototype.toString;
|
|
5831
6662
|
var concat = Array.prototype.concat;
|
|
@@ -5858,7 +6689,7 @@ var defineProperty$1 = function (object, name, value, predicate) {
|
|
|
5858
6689
|
var defineProperties$1 = function (object, map) {
|
|
5859
6690
|
var predicates = arguments.length > 2 ? arguments[2] : {};
|
|
5860
6691
|
var props = keys(map);
|
|
5861
|
-
if (hasSymbols$
|
|
6692
|
+
if (hasSymbols$4) {
|
|
5862
6693
|
props = concat.call(props, Object.getOwnPropertySymbols(map));
|
|
5863
6694
|
}
|
|
5864
6695
|
for (var i = 0; i < props.length; i += 1) {
|
|
@@ -5924,11 +6755,11 @@ var sign$1 = function sign(number) {
|
|
|
5924
6755
|
};
|
|
5925
6756
|
|
|
5926
6757
|
var shams$1;
|
|
5927
|
-
var hasRequiredShams;
|
|
6758
|
+
var hasRequiredShams$1;
|
|
5928
6759
|
|
|
5929
|
-
function requireShams () {
|
|
5930
|
-
if (hasRequiredShams) return shams$1;
|
|
5931
|
-
hasRequiredShams = 1;
|
|
6760
|
+
function requireShams$1 () {
|
|
6761
|
+
if (hasRequiredShams$1) return shams$1;
|
|
6762
|
+
hasRequiredShams$1 = 1;
|
|
5932
6763
|
|
|
5933
6764
|
/** @type {import('./shams')} */
|
|
5934
6765
|
/* eslint complexity: [2, 18], max-statements: [2, 33] */
|
|
@@ -5977,10 +6808,10 @@ function requireShams () {
|
|
|
5977
6808
|
}
|
|
5978
6809
|
|
|
5979
6810
|
var origSymbol = typeof Symbol !== 'undefined' && Symbol;
|
|
5980
|
-
var hasSymbolSham = requireShams();
|
|
6811
|
+
var hasSymbolSham = requireShams$1();
|
|
5981
6812
|
|
|
5982
6813
|
/** @type {import('.')} */
|
|
5983
|
-
var hasSymbols$
|
|
6814
|
+
var hasSymbols$3 = function hasNativeSymbols() {
|
|
5984
6815
|
if (typeof origSymbol !== 'function') { return false; }
|
|
5985
6816
|
if (typeof Symbol !== 'function') { return false; }
|
|
5986
6817
|
if (typeof origSymbol('foo') !== 'symbol') { return false; }
|
|
@@ -6284,7 +7115,7 @@ var ThrowTypeError = $gOPD$1
|
|
|
6284
7115
|
}())
|
|
6285
7116
|
: throwTypeError;
|
|
6286
7117
|
|
|
6287
|
-
var hasSymbols$
|
|
7118
|
+
var hasSymbols$2 = hasSymbols$3();
|
|
6288
7119
|
|
|
6289
7120
|
var getProto$2 = getProto$3;
|
|
6290
7121
|
var $ObjectGPO = requireObject_getPrototypeOf();
|
|
@@ -6302,7 +7133,7 @@ var INTRINSICS = {
|
|
|
6302
7133
|
'%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
|
|
6303
7134
|
'%Array%': Array,
|
|
6304
7135
|
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
|
|
6305
|
-
'%ArrayIteratorPrototype%': hasSymbols$
|
|
7136
|
+
'%ArrayIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
|
|
6306
7137
|
'%AsyncFromSyncIteratorPrototype%': undefined$1,
|
|
6307
7138
|
'%AsyncFunction%': needsEval,
|
|
6308
7139
|
'%AsyncGenerator%': needsEval,
|
|
@@ -6333,10 +7164,10 @@ var INTRINSICS = {
|
|
|
6333
7164
|
'%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
|
|
6334
7165
|
'%isFinite%': isFinite,
|
|
6335
7166
|
'%isNaN%': isNaN,
|
|
6336
|
-
'%IteratorPrototype%': hasSymbols$
|
|
7167
|
+
'%IteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
|
|
6337
7168
|
'%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
|
|
6338
7169
|
'%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
|
|
6339
|
-
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$
|
|
7170
|
+
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
|
|
6340
7171
|
'%Math%': Math,
|
|
6341
7172
|
'%Number%': Number,
|
|
6342
7173
|
'%Object%': $Object$2,
|
|
@@ -6350,11 +7181,11 @@ var INTRINSICS = {
|
|
|
6350
7181
|
'%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
|
|
6351
7182
|
'%RegExp%': RegExp,
|
|
6352
7183
|
'%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
|
|
6353
|
-
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$
|
|
7184
|
+
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
|
|
6354
7185
|
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
|
|
6355
7186
|
'%String%': String,
|
|
6356
|
-
'%StringIteratorPrototype%': hasSymbols$
|
|
6357
|
-
'%Symbol%': hasSymbols$
|
|
7187
|
+
'%StringIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
|
|
7188
|
+
'%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
|
|
6358
7189
|
'%SyntaxError%': $SyntaxError$1,
|
|
6359
7190
|
'%ThrowTypeError%': ThrowTypeError,
|
|
6360
7191
|
'%TypedArray%': TypedArray,
|
|
@@ -6707,12 +7538,12 @@ var callBound$i = function callBoundIntrinsic(name, allowMissing) {
|
|
|
6707
7538
|
|
|
6708
7539
|
// modified from https://github.com/es-shims/es6-shim
|
|
6709
7540
|
var objectKeys$1 = objectKeys$2;
|
|
6710
|
-
var hasSymbols$
|
|
7541
|
+
var hasSymbols$1 = requireShams$1()();
|
|
6711
7542
|
var callBound$h = callBound$i;
|
|
6712
7543
|
var $Object$1 = esObjectAtoms;
|
|
6713
7544
|
var $push = callBound$h('Array.prototype.push');
|
|
6714
7545
|
var $propIsEnumerable = callBound$h('Object.prototype.propertyIsEnumerable');
|
|
6715
|
-
var originalGetSymbols = hasSymbols$
|
|
7546
|
+
var originalGetSymbols = hasSymbols$1 ? $Object$1.getOwnPropertySymbols : null;
|
|
6716
7547
|
|
|
6717
7548
|
// eslint-disable-next-line no-unused-vars
|
|
6718
7549
|
var implementation$8 = function assign(target, source1) {
|
|
@@ -6726,7 +7557,7 @@ var implementation$8 = function assign(target, source1) {
|
|
|
6726
7557
|
|
|
6727
7558
|
// step 3.a.ii:
|
|
6728
7559
|
var keys = objectKeys$1(from);
|
|
6729
|
-
var getSymbols = hasSymbols$
|
|
7560
|
+
var getSymbols = hasSymbols$1 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
|
|
6730
7561
|
if (getSymbols) {
|
|
6731
7562
|
var syms = getSymbols(from);
|
|
6732
7563
|
for (var j = 0; j < syms.length; ++j) {
|
|
@@ -7023,14 +7854,23 @@ var regexp_prototype_flags = flagsBound;
|
|
|
7023
7854
|
|
|
7024
7855
|
var esGetIterator = {exports: {}};
|
|
7025
7856
|
|
|
7026
|
-
var
|
|
7857
|
+
var shams;
|
|
7858
|
+
var hasRequiredShams;
|
|
7027
7859
|
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
};
|
|
7860
|
+
function requireShams () {
|
|
7861
|
+
if (hasRequiredShams) return shams;
|
|
7862
|
+
hasRequiredShams = 1;
|
|
7032
7863
|
|
|
7033
|
-
var
|
|
7864
|
+
var hasSymbols = requireShams$1();
|
|
7865
|
+
|
|
7866
|
+
/** @type {import('.')} */
|
|
7867
|
+
shams = function hasToStringTagShams() {
|
|
7868
|
+
return hasSymbols() && !!Symbol.toStringTag;
|
|
7869
|
+
};
|
|
7870
|
+
return shams;
|
|
7871
|
+
}
|
|
7872
|
+
|
|
7873
|
+
var hasToStringTag$7 = requireShams()();
|
|
7034
7874
|
var callBound$f = callBound$i;
|
|
7035
7875
|
|
|
7036
7876
|
var $toString$7 = callBound$f('Object.prototype.toString');
|
|
@@ -8067,7 +8907,7 @@ var tryStringObject = function tryStringObject(value) {
|
|
|
8067
8907
|
/** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
|
|
8068
8908
|
var $toString$6 = callBound$c('Object.prototype.toString');
|
|
8069
8909
|
var strClass = '[object String]';
|
|
8070
|
-
var hasToStringTag$6 =
|
|
8910
|
+
var hasToStringTag$6 = requireShams()();
|
|
8071
8911
|
|
|
8072
8912
|
/** @type {import('.')} */
|
|
8073
8913
|
var isString$2 = function isString(value) {
|
|
@@ -8183,7 +9023,7 @@ var isSet$2 = exported$1 || function isSet(x) {
|
|
|
8183
9023
|
var isArguments$1 = isArguments$2;
|
|
8184
9024
|
var getStopIterationIterator = stopIterationIterator;
|
|
8185
9025
|
|
|
8186
|
-
if (hasSymbols$
|
|
9026
|
+
if (hasSymbols$3() || requireShams$1()()) {
|
|
8187
9027
|
var $iterator = Symbol.iterator;
|
|
8188
9028
|
// Symbol is available natively or shammed
|
|
8189
9029
|
// natively:
|
|
@@ -8472,7 +9312,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
|
|
|
8472
9312
|
/** @type {(value: unknown) => string} */
|
|
8473
9313
|
var toStr$2 = callBound$9('Object.prototype.toString');
|
|
8474
9314
|
var dateClass = '[object Date]';
|
|
8475
|
-
var hasToStringTag$5 =
|
|
9315
|
+
var hasToStringTag$5 = requireShams()();
|
|
8476
9316
|
|
|
8477
9317
|
/** @type {import('.')} */
|
|
8478
9318
|
var isDateObject = function isDateObject(value) {
|
|
@@ -8483,7 +9323,7 @@ var isDateObject = function isDateObject(value) {
|
|
|
8483
9323
|
};
|
|
8484
9324
|
|
|
8485
9325
|
var callBound$8 = callBound$i;
|
|
8486
|
-
var hasToStringTag$4 =
|
|
9326
|
+
var hasToStringTag$4 = requireShams()();
|
|
8487
9327
|
var hasOwn = hasown;
|
|
8488
9328
|
var gOPD$1 = gopd$1;
|
|
8489
9329
|
|
|
@@ -8588,7 +9428,7 @@ var tryNumberObject = function tryNumberObject(value) {
|
|
|
8588
9428
|
};
|
|
8589
9429
|
var $toString$3 = callBound$6('Object.prototype.toString');
|
|
8590
9430
|
var numClass = '[object Number]';
|
|
8591
|
-
var hasToStringTag$3 =
|
|
9431
|
+
var hasToStringTag$3 = requireShams()();
|
|
8592
9432
|
|
|
8593
9433
|
/** @type {import('.')} */
|
|
8594
9434
|
var isNumberObject = function isNumberObject(value) {
|
|
@@ -8615,7 +9455,7 @@ var tryBooleanObject = function booleanBrandCheck(value) {
|
|
|
8615
9455
|
}
|
|
8616
9456
|
};
|
|
8617
9457
|
var boolClass = '[object Boolean]';
|
|
8618
|
-
var hasToStringTag$2 =
|
|
9458
|
+
var hasToStringTag$2 = requireShams()();
|
|
8619
9459
|
|
|
8620
9460
|
/** @type {import('.')} */
|
|
8621
9461
|
var isBooleanObject = function isBoolean(value) {
|
|
@@ -8657,7 +9497,7 @@ function requireSafeRegexTest () {
|
|
|
8657
9497
|
|
|
8658
9498
|
var callBound$4 = callBound$i;
|
|
8659
9499
|
var $toString$1 = callBound$4('Object.prototype.toString');
|
|
8660
|
-
var hasSymbols = hasSymbols$
|
|
9500
|
+
var hasSymbols = hasSymbols$3();
|
|
8661
9501
|
var safeRegexTest = requireSafeRegexTest();
|
|
8662
9502
|
|
|
8663
9503
|
if (hasSymbols) {
|
|
@@ -9103,7 +9943,7 @@ var gOPD = gopd$1;
|
|
|
9103
9943
|
var getProto = getProto$3;
|
|
9104
9944
|
|
|
9105
9945
|
var $toString = callBound$2('Object.prototype.toString');
|
|
9106
|
-
var hasToStringTag =
|
|
9946
|
+
var hasToStringTag = requireShams()();
|
|
9107
9947
|
|
|
9108
9948
|
var g = typeof globalThis === 'undefined' ? commonjsGlobal : globalThis;
|
|
9109
9949
|
var typedArrays = availableTypedArrays();
|
|
@@ -9854,9 +10694,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
9854
10694
|
};
|
|
9855
10695
|
|
|
9856
10696
|
var _excluded$5 = ["rows", "cols"];
|
|
9857
|
-
function _createForOfIteratorHelper$
|
|
9858
|
-
function _unsupportedIterableToArray$
|
|
9859
|
-
function _arrayLikeToArray$
|
|
10697
|
+
function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
10698
|
+
function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
|
|
10699
|
+
function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9860
10700
|
function ownKeys$z(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; }
|
|
9861
10701
|
function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9862
10702
|
var defaultGrid = {
|
|
@@ -10009,7 +10849,7 @@ function GridEditor(_ref) {
|
|
|
10009
10849
|
function sortObjectByKeys(obj) {
|
|
10010
10850
|
var sortedKeys = Object.keys(obj).sort();
|
|
10011
10851
|
var sortedObj = {};
|
|
10012
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10852
|
+
var _iterator = _createForOfIteratorHelper$d(sortedKeys),
|
|
10013
10853
|
_step;
|
|
10014
10854
|
try {
|
|
10015
10855
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10482,9 +11322,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
10482
11322
|
});
|
|
10483
11323
|
};
|
|
10484
11324
|
|
|
10485
|
-
function _createForOfIteratorHelper$
|
|
10486
|
-
function _unsupportedIterableToArray$
|
|
10487
|
-
function _arrayLikeToArray$
|
|
11325
|
+
function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
11326
|
+
function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
|
|
11327
|
+
function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10488
11328
|
function ownKeys$x(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; }
|
|
10489
11329
|
function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10490
11330
|
var DAYS = [{
|
|
@@ -10813,7 +11653,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10813
11653
|
setIsLoading(true);
|
|
10814
11654
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
10815
11655
|
var stateMap = {};
|
|
10816
|
-
var _iterator = _createForOfIteratorHelper$
|
|
11656
|
+
var _iterator = _createForOfIteratorHelper$c(tasks || []),
|
|
10817
11657
|
_step;
|
|
10818
11658
|
try {
|
|
10819
11659
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13663,9 +14503,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
|
|
|
13663
14503
|
});
|
|
13664
14504
|
};
|
|
13665
14505
|
|
|
13666
|
-
function _createForOfIteratorHelper$
|
|
13667
|
-
function _unsupportedIterableToArray$
|
|
13668
|
-
function _arrayLikeToArray$
|
|
14506
|
+
function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
14507
|
+
function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$b(r, a) : void 0; } }
|
|
14508
|
+
function _arrayLikeToArray$b(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
13669
14509
|
function ownKeys$u(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; }
|
|
13670
14510
|
function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13671
14511
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -13932,11 +14772,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
13932
14772
|
|
|
13933
14773
|
// Flatten all widgets from all packages for the widget list
|
|
13934
14774
|
flatWidgets = [];
|
|
13935
|
-
_iterator = _createForOfIteratorHelper$
|
|
14775
|
+
_iterator = _createForOfIteratorHelper$b(result.packages || []);
|
|
13936
14776
|
try {
|
|
13937
14777
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13938
14778
|
pkg = _step.value;
|
|
13939
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
14779
|
+
_iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
|
|
13940
14780
|
try {
|
|
13941
14781
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
13942
14782
|
widget = _step2.value;
|
|
@@ -15492,9 +16332,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
15492
16332
|
});
|
|
15493
16333
|
};
|
|
15494
16334
|
|
|
15495
|
-
function _createForOfIteratorHelper$
|
|
15496
|
-
function _unsupportedIterableToArray$
|
|
15497
|
-
function _arrayLikeToArray$
|
|
16335
|
+
function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
16336
|
+
function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$a(r, a) : void 0; } }
|
|
16337
|
+
function _arrayLikeToArray$a(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15498
16338
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
15499
16339
|
var item = _ref.item,
|
|
15500
16340
|
widget = _ref.widget,
|
|
@@ -15538,7 +16378,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
15538
16378
|
var el = headerRef.current;
|
|
15539
16379
|
if (!el) return;
|
|
15540
16380
|
var observer = new ResizeObserver(function (entries) {
|
|
15541
|
-
var _iterator = _createForOfIteratorHelper$
|
|
16381
|
+
var _iterator = _createForOfIteratorHelper$a(entries),
|
|
15542
16382
|
_step;
|
|
15543
16383
|
try {
|
|
15544
16384
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -15895,9 +16735,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
15895
16735
|
};
|
|
15896
16736
|
};
|
|
15897
16737
|
|
|
15898
|
-
function _createForOfIteratorHelper$
|
|
15899
|
-
function _unsupportedIterableToArray$
|
|
15900
|
-
function _arrayLikeToArray$
|
|
16738
|
+
function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
16739
|
+
function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
|
|
16740
|
+
function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15901
16741
|
function formatCountdown(ms) {
|
|
15902
16742
|
if (ms == null || ms < 0) return "--";
|
|
15903
16743
|
if (ms < 1000) return "< 1s";
|
|
@@ -16014,7 +16854,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
16014
16854
|
|
|
16015
16855
|
// Find soonest countdown among enabled tasks
|
|
16016
16856
|
var soonestMs = null;
|
|
16017
|
-
var _iterator = _createForOfIteratorHelper$
|
|
16857
|
+
var _iterator = _createForOfIteratorHelper$9(enabledTasks),
|
|
16018
16858
|
_step;
|
|
16019
16859
|
try {
|
|
16020
16860
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -20627,9 +21467,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
20627
21467
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
20628
21468
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
20629
21469
|
|
|
20630
|
-
function _createForOfIteratorHelper$
|
|
20631
|
-
function _unsupportedIterableToArray$
|
|
20632
|
-
function _arrayLikeToArray$
|
|
21470
|
+
function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
21471
|
+
function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
|
|
21472
|
+
function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
20633
21473
|
function ownKeys$n(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; }
|
|
20634
21474
|
function _objectSpread$n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$n(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20635
21475
|
var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
|
|
@@ -21193,7 +22033,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
21193
22033
|
return selectable["delete"](cn);
|
|
21194
22034
|
});
|
|
21195
22035
|
var resolved = new Set();
|
|
21196
|
-
var _iterator = _createForOfIteratorHelper$
|
|
22036
|
+
var _iterator = _createForOfIteratorHelper$8(selectable),
|
|
21197
22037
|
_step;
|
|
21198
22038
|
try {
|
|
21199
22039
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -23333,9 +24173,9 @@ function isWidgetResolvable(componentKey) {
|
|
|
23333
24173
|
|
|
23334
24174
|
function ownKeys$m(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; }
|
|
23335
24175
|
function _objectSpread$m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$m(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23336
|
-
function _createForOfIteratorHelper$
|
|
23337
|
-
function _unsupportedIterableToArray$
|
|
23338
|
-
function _arrayLikeToArray$
|
|
24176
|
+
function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
24177
|
+
function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
|
|
24178
|
+
function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23339
24179
|
/**
|
|
23340
24180
|
* The model for all layout components used primarily in the renderLayout method
|
|
23341
24181
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -23347,7 +24187,7 @@ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
23347
24187
|
function sortObjectByKeys(obj) {
|
|
23348
24188
|
var sortedKeys = Object.keys(obj).sort();
|
|
23349
24189
|
var sortedObj = {};
|
|
23350
|
-
var _iterator = _createForOfIteratorHelper$
|
|
24190
|
+
var _iterator = _createForOfIteratorHelper$7(sortedKeys),
|
|
23351
24191
|
_step;
|
|
23352
24192
|
try {
|
|
23353
24193
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -26613,9 +27453,9 @@ var useDashboard = function useDashboard() {
|
|
|
26613
27453
|
});
|
|
26614
27454
|
};
|
|
26615
27455
|
|
|
26616
|
-
function _createForOfIteratorHelper$
|
|
26617
|
-
function _unsupportedIterableToArray$
|
|
26618
|
-
function _arrayLikeToArray$
|
|
27456
|
+
function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
27457
|
+
function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
|
|
27458
|
+
function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
26619
27459
|
|
|
26620
27460
|
/**
|
|
26621
27461
|
* useWidgetProviders Hook
|
|
@@ -26666,7 +27506,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
26666
27506
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
26667
27507
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
26668
27508
|
var providers = {};
|
|
26669
|
-
var _iterator = _createForOfIteratorHelper$
|
|
27509
|
+
var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
|
|
26670
27510
|
_step;
|
|
26671
27511
|
try {
|
|
26672
27512
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -27401,9 +28241,9 @@ var useNotifications = function useNotifications() {
|
|
|
27401
28241
|
};
|
|
27402
28242
|
};
|
|
27403
28243
|
|
|
27404
|
-
function _createForOfIteratorHelper$
|
|
27405
|
-
function _unsupportedIterableToArray$
|
|
27406
|
-
function _arrayLikeToArray$
|
|
28244
|
+
function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
28245
|
+
function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
|
|
28246
|
+
function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
27407
28247
|
|
|
27408
28248
|
/**
|
|
27409
28249
|
* useScheduler Hook
|
|
@@ -27476,7 +28316,7 @@ var useScheduler = function useScheduler() {
|
|
|
27476
28316
|
if (pending && pending.length > 0) {
|
|
27477
28317
|
setPendingResults(pending);
|
|
27478
28318
|
// Call handlers for each pending result
|
|
27479
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28319
|
+
var _iterator = _createForOfIteratorHelper$5(pending),
|
|
27480
28320
|
_step;
|
|
27481
28321
|
try {
|
|
27482
28322
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -30653,36 +31493,9 @@ function loadWidgetBundle(source, widgetName) {
|
|
|
30653
31493
|
};
|
|
30654
31494
|
}
|
|
30655
31495
|
|
|
30656
|
-
var
|
|
30657
|
-
|
|
30658
|
-
|
|
30659
|
-
* Resolve an icon name to a valid FontAwesome icon reference.
|
|
30660
|
-
* Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
|
|
30661
|
-
* the icon is falsy or not found in either prefix.
|
|
30662
|
-
*/
|
|
30663
|
-
var resolveIcon = function resolveIcon(iconName) {
|
|
30664
|
-
if (!iconName) return FALLBACK;
|
|
30665
|
-
|
|
30666
|
-
// Already an array tuple like ["fab", "github"] — pass through
|
|
30667
|
-
if (Array.isArray(iconName)) return iconName;
|
|
30668
|
-
|
|
30669
|
-
// Try solid
|
|
30670
|
-
if (fontawesomeSvgCore.findIconDefinition({
|
|
30671
|
-
prefix: "fas",
|
|
30672
|
-
iconName: iconName
|
|
30673
|
-
})) return iconName;
|
|
30674
|
-
|
|
30675
|
-
// Try brand
|
|
30676
|
-
if (fontawesomeSvgCore.findIconDefinition({
|
|
30677
|
-
prefix: "fab",
|
|
30678
|
-
iconName: iconName
|
|
30679
|
-
})) return ["fab", iconName];
|
|
30680
|
-
return FALLBACK;
|
|
30681
|
-
};
|
|
30682
|
-
|
|
30683
|
-
function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
30684
|
-
function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
|
|
30685
|
-
function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
31496
|
+
function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
31497
|
+
function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$4(r, a) : void 0; } }
|
|
31498
|
+
function _arrayLikeToArray$4(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
30686
31499
|
/**
|
|
30687
31500
|
* Validation utilities for grid-first dashboard architecture
|
|
30688
31501
|
*
|
|
@@ -30921,7 +31734,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
|
|
|
30921
31734
|
|
|
30922
31735
|
// Validate each cell
|
|
30923
31736
|
var cells = [];
|
|
30924
|
-
var _iterator = _createForOfIteratorHelper$
|
|
31737
|
+
var _iterator = _createForOfIteratorHelper$4(cellNumbers),
|
|
30925
31738
|
_step;
|
|
30926
31739
|
try {
|
|
30927
31740
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -38665,9 +39478,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
|
|
|
38665
39478
|
|
|
38666
39479
|
function ownKeys$6(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; }
|
|
38667
39480
|
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
38668
|
-
function _createForOfIteratorHelper$
|
|
38669
|
-
function _unsupportedIterableToArray$
|
|
38670
|
-
function _arrayLikeToArray$
|
|
39481
|
+
function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
39482
|
+
function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$3(r, a) : void 0; } }
|
|
39483
|
+
function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
38671
39484
|
function isValidWsUrl(url) {
|
|
38672
39485
|
if (!url) return false;
|
|
38673
39486
|
try {
|
|
@@ -38714,7 +39527,7 @@ function extractCredentialFields(url, headerRows) {
|
|
|
38714
39527
|
fields.add(match[1]);
|
|
38715
39528
|
}
|
|
38716
39529
|
}
|
|
38717
|
-
var _iterator = _createForOfIteratorHelper$
|
|
39530
|
+
var _iterator = _createForOfIteratorHelper$3(headerRows),
|
|
38718
39531
|
_step;
|
|
38719
39532
|
try {
|
|
38720
39533
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -38817,7 +39630,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
38817
39630
|
if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
|
|
38818
39631
|
|
|
38819
39632
|
// Check required credential fields are filled
|
|
38820
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
39633
|
+
var _iterator2 = _createForOfIteratorHelper$3(credentialFields),
|
|
38821
39634
|
_step2;
|
|
38822
39635
|
try {
|
|
38823
39636
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -38840,7 +39653,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
38840
39653
|
|
|
38841
39654
|
// Build headers object from rows
|
|
38842
39655
|
var headers = {};
|
|
38843
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
39656
|
+
var _iterator3 = _createForOfIteratorHelper$3(headerRows),
|
|
38844
39657
|
_step3;
|
|
38845
39658
|
try {
|
|
38846
39659
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -38909,7 +39722,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
38909
39722
|
|
|
38910
39723
|
// Build config from current form state (same as handleSave)
|
|
38911
39724
|
headers = {};
|
|
38912
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
39725
|
+
_iterator4 = _createForOfIteratorHelper$3(headerRows);
|
|
38913
39726
|
try {
|
|
38914
39727
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
38915
39728
|
row = _step4.value;
|
|
@@ -41553,293 +42366,6 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
|
41553
42366
|
});
|
|
41554
42367
|
};
|
|
41555
42368
|
|
|
41556
|
-
function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
41557
|
-
function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$3(r, a) : void 0; } }
|
|
41558
|
-
function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
41559
|
-
|
|
41560
|
-
/**
|
|
41561
|
-
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
41562
|
-
*
|
|
41563
|
-
* Extracted from EnhancedWidgetDropdown so the same logic can power the
|
|
41564
|
-
* Discover tab inside AppSettingsModal (and anywhere else).
|
|
41565
|
-
*
|
|
41566
|
-
* Options:
|
|
41567
|
-
* filterByCapabilities – if true (default), only show packages compatible
|
|
41568
|
-
* with the app's API capabilities
|
|
41569
|
-
*
|
|
41570
|
-
* Returns:
|
|
41571
|
-
* packages – raw package objects from the registry
|
|
41572
|
-
* flatWidgets – flattened widget entries with `isRegistry: true`
|
|
41573
|
-
* isLoading – true while a search request is in flight
|
|
41574
|
-
* error – error message string (or null)
|
|
41575
|
-
* searchQuery / setSearchQuery – controlled search input
|
|
41576
|
-
* isInstalling – true during an install
|
|
41577
|
-
* installError – install error string (or null)
|
|
41578
|
-
* search() – manually trigger a search
|
|
41579
|
-
* installPackage(widget) – install a specific registry widget
|
|
41580
|
-
* showAllPackages / setShowAllPackages – toggle to show incompatible packages
|
|
41581
|
-
* appCapabilities – the app's API namespaces
|
|
41582
|
-
*/
|
|
41583
|
-
var useRegistrySearch = function useRegistrySearch() {
|
|
41584
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
41585
|
-
_ref$filterByCapabili = _ref.filterByCapabilities,
|
|
41586
|
-
filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
|
|
41587
|
-
var _useState = React.useState(false),
|
|
41588
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
41589
|
-
isLoading = _useState2[0],
|
|
41590
|
-
setIsLoading = _useState2[1];
|
|
41591
|
-
var _useState3 = React.useState(null),
|
|
41592
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
41593
|
-
error = _useState4[0],
|
|
41594
|
-
setError = _useState4[1];
|
|
41595
|
-
var _useState5 = React.useState([]),
|
|
41596
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
41597
|
-
packages = _useState6[0],
|
|
41598
|
-
setPackages = _useState6[1];
|
|
41599
|
-
var _useState7 = React.useState([]),
|
|
41600
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
41601
|
-
flatWidgets = _useState8[0],
|
|
41602
|
-
setFlatWidgets = _useState8[1];
|
|
41603
|
-
var _useState9 = React.useState(""),
|
|
41604
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
41605
|
-
searchQuery = _useState0[0],
|
|
41606
|
-
setSearchQuery = _useState0[1];
|
|
41607
|
-
var _useState1 = React.useState(false),
|
|
41608
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
41609
|
-
isInstalling = _useState10[0],
|
|
41610
|
-
setIsInstalling = _useState10[1];
|
|
41611
|
-
var _useState11 = React.useState(null),
|
|
41612
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
41613
|
-
installError = _useState12[0],
|
|
41614
|
-
setInstallError = _useState12[1];
|
|
41615
|
-
var _useState13 = React.useState(false),
|
|
41616
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
41617
|
-
showAllPackages = _useState14[0],
|
|
41618
|
-
setShowAllPackages = _useState14[1];
|
|
41619
|
-
|
|
41620
|
-
// Discover app capabilities from window.mainApi
|
|
41621
|
-
var appCapabilities = React.useMemo(function () {
|
|
41622
|
-
if (typeof window !== "undefined" && window.mainApi) {
|
|
41623
|
-
return Object.keys(window.mainApi);
|
|
41624
|
-
}
|
|
41625
|
-
return [];
|
|
41626
|
-
}, []);
|
|
41627
|
-
var search = React.useCallback(/*#__PURE__*/function () {
|
|
41628
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
|
|
41629
|
-
var _window$mainApi;
|
|
41630
|
-
var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
|
|
41631
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
41632
|
-
while (1) switch (_context.prev = _context.next) {
|
|
41633
|
-
case 0:
|
|
41634
|
-
if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
|
|
41635
|
-
_context.next = 1;
|
|
41636
|
-
break;
|
|
41637
|
-
}
|
|
41638
|
-
setPackages([]);
|
|
41639
|
-
setFlatWidgets([]);
|
|
41640
|
-
return _context.abrupt("return");
|
|
41641
|
-
case 1:
|
|
41642
|
-
setIsLoading(true);
|
|
41643
|
-
setError(null);
|
|
41644
|
-
_context.prev = 2;
|
|
41645
|
-
filters = {};
|
|
41646
|
-
if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
|
|
41647
|
-
filters.appCapabilities = appCapabilities;
|
|
41648
|
-
}
|
|
41649
|
-
_context.next = 3;
|
|
41650
|
-
return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
|
|
41651
|
-
case 3:
|
|
41652
|
-
result = _context.sent;
|
|
41653
|
-
// Only include packages that contain at least one widget
|
|
41654
|
-
// (filters out theme-only packages, etc.)
|
|
41655
|
-
pkgs = (result.packages || []).filter(function (pkg) {
|
|
41656
|
-
return pkg.widgets && pkg.widgets.length > 0;
|
|
41657
|
-
});
|
|
41658
|
-
setPackages(pkgs);
|
|
41659
|
-
|
|
41660
|
-
// Flatten packages into widget entries
|
|
41661
|
-
capSet = new Set(appCapabilities.map(function (c) {
|
|
41662
|
-
return c.toLowerCase();
|
|
41663
|
-
}));
|
|
41664
|
-
widgets = [];
|
|
41665
|
-
_iterator = _createForOfIteratorHelper$3(pkgs);
|
|
41666
|
-
try {
|
|
41667
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
41668
|
-
pkg = _step.value;
|
|
41669
|
-
// Compute missing APIs for the entire package
|
|
41670
|
-
allApiProviders = [];
|
|
41671
|
-
_iterator2 = _createForOfIteratorHelper$3(pkg.providers || []);
|
|
41672
|
-
try {
|
|
41673
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
41674
|
-
p = _step2.value;
|
|
41675
|
-
if (p.providerClass === "api" && p.required !== false) {
|
|
41676
|
-
allApiProviders.push(p.type);
|
|
41677
|
-
}
|
|
41678
|
-
}
|
|
41679
|
-
} catch (err) {
|
|
41680
|
-
_iterator2.e(err);
|
|
41681
|
-
} finally {
|
|
41682
|
-
_iterator2.f();
|
|
41683
|
-
}
|
|
41684
|
-
_iterator3 = _createForOfIteratorHelper$3(pkg.widgets || []);
|
|
41685
|
-
try {
|
|
41686
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
41687
|
-
w = _step3.value;
|
|
41688
|
-
_iterator5 = _createForOfIteratorHelper$3(w.providers || []);
|
|
41689
|
-
try {
|
|
41690
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
41691
|
-
_p = _step5.value;
|
|
41692
|
-
if (_p.providerClass === "api" && _p.required !== false) {
|
|
41693
|
-
allApiProviders.push(_p.type);
|
|
41694
|
-
}
|
|
41695
|
-
}
|
|
41696
|
-
} catch (err) {
|
|
41697
|
-
_iterator5.e(err);
|
|
41698
|
-
} finally {
|
|
41699
|
-
_iterator5.f();
|
|
41700
|
-
}
|
|
41701
|
-
}
|
|
41702
|
-
} catch (err) {
|
|
41703
|
-
_iterator3.e(err);
|
|
41704
|
-
} finally {
|
|
41705
|
-
_iterator3.f();
|
|
41706
|
-
}
|
|
41707
|
-
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
41708
|
-
return !capSet.has(api.toLowerCase());
|
|
41709
|
-
});
|
|
41710
|
-
_iterator4 = _createForOfIteratorHelper$3(pkg.widgets || []);
|
|
41711
|
-
try {
|
|
41712
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
41713
|
-
widget = _step4.value;
|
|
41714
|
-
widgets.push({
|
|
41715
|
-
key: "".concat(pkg.name, "/").concat(widget.name),
|
|
41716
|
-
name: widget.displayName || widget.name,
|
|
41717
|
-
description: widget.description || "",
|
|
41718
|
-
icon: widget.icon || null,
|
|
41719
|
-
providers: widget.providers || [],
|
|
41720
|
-
isRegistry: true,
|
|
41721
|
-
packageName: pkg.name,
|
|
41722
|
-
packageDisplayName: pkg.displayName || pkg.name,
|
|
41723
|
-
packageVersion: pkg.version,
|
|
41724
|
-
packageAuthor: pkg.author || "",
|
|
41725
|
-
packageDescription: pkg.description || "",
|
|
41726
|
-
packageTags: pkg.tags || [],
|
|
41727
|
-
packageCategory: pkg.category || "",
|
|
41728
|
-
downloadUrl: pkg.downloadUrl || "",
|
|
41729
|
-
repository: pkg.repository || "",
|
|
41730
|
-
publishedAt: pkg.publishedAt || "",
|
|
41731
|
-
packageWidgets: pkg.widgets || [],
|
|
41732
|
-
appOrigin: pkg.appOrigin || null,
|
|
41733
|
-
packageProviders: pkg.providers || [],
|
|
41734
|
-
missingApis: missingApis
|
|
41735
|
-
});
|
|
41736
|
-
}
|
|
41737
|
-
} catch (err) {
|
|
41738
|
-
_iterator4.e(err);
|
|
41739
|
-
} finally {
|
|
41740
|
-
_iterator4.f();
|
|
41741
|
-
}
|
|
41742
|
-
}
|
|
41743
|
-
} catch (err) {
|
|
41744
|
-
_iterator.e(err);
|
|
41745
|
-
} finally {
|
|
41746
|
-
_iterator.f();
|
|
41747
|
-
}
|
|
41748
|
-
setFlatWidgets(widgets);
|
|
41749
|
-
_context.next = 5;
|
|
41750
|
-
break;
|
|
41751
|
-
case 4:
|
|
41752
|
-
_context.prev = 4;
|
|
41753
|
-
_t = _context["catch"](2);
|
|
41754
|
-
setError(_t.message || "Failed to load registry");
|
|
41755
|
-
setPackages([]);
|
|
41756
|
-
setFlatWidgets([]);
|
|
41757
|
-
case 5:
|
|
41758
|
-
_context.prev = 5;
|
|
41759
|
-
setIsLoading(false);
|
|
41760
|
-
return _context.finish(5);
|
|
41761
|
-
case 6:
|
|
41762
|
-
case "end":
|
|
41763
|
-
return _context.stop();
|
|
41764
|
-
}
|
|
41765
|
-
}, _callee, null, [[2, 4, 5, 6]]);
|
|
41766
|
-
}));
|
|
41767
|
-
return function (_x) {
|
|
41768
|
-
return _ref2.apply(this, arguments);
|
|
41769
|
-
};
|
|
41770
|
-
}(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
|
|
41771
|
-
|
|
41772
|
-
// Debounce search on query changes (300ms)
|
|
41773
|
-
React.useEffect(function () {
|
|
41774
|
-
var timer = setTimeout(function () {
|
|
41775
|
-
search(searchQuery);
|
|
41776
|
-
}, 300);
|
|
41777
|
-
return function () {
|
|
41778
|
-
return clearTimeout(timer);
|
|
41779
|
-
};
|
|
41780
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41781
|
-
}, [searchQuery, showAllPackages]);
|
|
41782
|
-
var installPackage = React.useCallback(/*#__PURE__*/function () {
|
|
41783
|
-
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
|
|
41784
|
-
var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
|
|
41785
|
-
return _regeneratorRuntime.wrap(function (_context2) {
|
|
41786
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
41787
|
-
case 0:
|
|
41788
|
-
if (!(!widget || !widget.isRegistry)) {
|
|
41789
|
-
_context2.next = 1;
|
|
41790
|
-
break;
|
|
41791
|
-
}
|
|
41792
|
-
return _context2.abrupt("return");
|
|
41793
|
-
case 1:
|
|
41794
|
-
setIsInstalling(true);
|
|
41795
|
-
setInstallError(null);
|
|
41796
|
-
_context2.prev = 2;
|
|
41797
|
-
packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
|
|
41798
|
-
resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
|
|
41799
|
-
_context2.next = 3;
|
|
41800
|
-
return window.mainApi.widgets.install(packageName, resolvedUrl);
|
|
41801
|
-
case 3:
|
|
41802
|
-
_context2.next = 5;
|
|
41803
|
-
break;
|
|
41804
|
-
case 4:
|
|
41805
|
-
_context2.prev = 4;
|
|
41806
|
-
_t2 = _context2["catch"](2);
|
|
41807
|
-
setInstallError(_t2.message || "Failed to install package");
|
|
41808
|
-
case 5:
|
|
41809
|
-
_context2.prev = 5;
|
|
41810
|
-
setIsInstalling(false);
|
|
41811
|
-
return _context2.finish(5);
|
|
41812
|
-
case 6:
|
|
41813
|
-
case "end":
|
|
41814
|
-
return _context2.stop();
|
|
41815
|
-
}
|
|
41816
|
-
}, _callee2, null, [[2, 4, 5, 6]]);
|
|
41817
|
-
}));
|
|
41818
|
-
return function (_x2) {
|
|
41819
|
-
return _ref3.apply(this, arguments);
|
|
41820
|
-
};
|
|
41821
|
-
}(), []);
|
|
41822
|
-
var retry = React.useCallback(function () {
|
|
41823
|
-
search(searchQuery);
|
|
41824
|
-
}, [search, searchQuery]);
|
|
41825
|
-
return {
|
|
41826
|
-
packages: packages,
|
|
41827
|
-
flatWidgets: flatWidgets,
|
|
41828
|
-
isLoading: isLoading,
|
|
41829
|
-
error: error,
|
|
41830
|
-
searchQuery: searchQuery,
|
|
41831
|
-
setSearchQuery: setSearchQuery,
|
|
41832
|
-
isInstalling: isInstalling,
|
|
41833
|
-
installError: installError,
|
|
41834
|
-
search: search,
|
|
41835
|
-
installPackage: installPackage,
|
|
41836
|
-
retry: retry,
|
|
41837
|
-
showAllPackages: showAllPackages,
|
|
41838
|
-
setShowAllPackages: setShowAllPackages,
|
|
41839
|
-
appCapabilities: appCapabilities
|
|
41840
|
-
};
|
|
41841
|
-
};
|
|
41842
|
-
|
|
41843
42369
|
function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
41844
42370
|
function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }
|
|
41845
42371
|
function _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -48520,6 +49046,9 @@ exports.WidgetFactory = WidgetFactory;
|
|
|
48520
49046
|
exports.WidgetPopoutStage = WidgetPopoutStage;
|
|
48521
49047
|
exports.WidgetProviderWrapper = WidgetProviderWrapper;
|
|
48522
49048
|
exports.WidgetSidebar = WidgetSidebar;
|
|
49049
|
+
exports.WizardIntentStep = WizardIntentStep;
|
|
49050
|
+
exports.WizardProvidersStep = WizardProvidersStep;
|
|
49051
|
+
exports.WizardResultsStep = WizardResultsStep;
|
|
48523
49052
|
exports.Workspace = Workspace;
|
|
48524
49053
|
exports.WorkspaceContext = WorkspaceContext;
|
|
48525
49054
|
exports.WorkspaceFooter = WorkspaceFooter;
|