@trops/dash-core 0.1.37 → 0.1.39
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 +369 -72
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +369 -72
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2655,9 +2655,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
2655
2655
|
|
|
2656
2656
|
function ownKeys$t(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; }
|
|
2657
2657
|
function _objectSpread$t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2658
|
-
function _createForOfIteratorHelper$
|
|
2659
|
-
function _unsupportedIterableToArray$
|
|
2660
|
-
function _arrayLikeToArray$
|
|
2658
|
+
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; } } }; }
|
|
2659
|
+
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; } }
|
|
2660
|
+
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; }
|
|
2661
2661
|
/**
|
|
2662
2662
|
* Layout template definitions for the dashboard template picker.
|
|
2663
2663
|
*
|
|
@@ -2893,7 +2893,7 @@ function createLayoutFromTemplate(template) {
|
|
|
2893
2893
|
cols: template.cols,
|
|
2894
2894
|
gap: "gap-2"
|
|
2895
2895
|
};
|
|
2896
|
-
var _iterator = _createForOfIteratorHelper$
|
|
2896
|
+
var _iterator = _createForOfIteratorHelper$9(template.cells),
|
|
2897
2897
|
_step;
|
|
2898
2898
|
try {
|
|
2899
2899
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -4405,9 +4405,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
4405
4405
|
};
|
|
4406
4406
|
|
|
4407
4407
|
var _excluded$5 = ["rows", "cols"];
|
|
4408
|
-
function _createForOfIteratorHelper$
|
|
4409
|
-
function _unsupportedIterableToArray$
|
|
4410
|
-
function _arrayLikeToArray$
|
|
4408
|
+
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; } } }; }
|
|
4409
|
+
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; } }
|
|
4410
|
+
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; }
|
|
4411
4411
|
function ownKeys$r(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; }
|
|
4412
4412
|
function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4413
4413
|
var defaultGrid = {
|
|
@@ -4560,7 +4560,7 @@ function GridEditor(_ref) {
|
|
|
4560
4560
|
function sortObjectByKeys(obj) {
|
|
4561
4561
|
var sortedKeys = Object.keys(obj).sort();
|
|
4562
4562
|
var sortedObj = {};
|
|
4563
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4563
|
+
var _iterator = _createForOfIteratorHelper$8(sortedKeys),
|
|
4564
4564
|
_step;
|
|
4565
4565
|
try {
|
|
4566
4566
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -7099,9 +7099,9 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
7099
7099
|
});
|
|
7100
7100
|
};
|
|
7101
7101
|
|
|
7102
|
-
function _createForOfIteratorHelper$
|
|
7103
|
-
function _unsupportedIterableToArray$
|
|
7104
|
-
function _arrayLikeToArray$
|
|
7102
|
+
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; } } }; }
|
|
7103
|
+
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; } }
|
|
7104
|
+
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; }
|
|
7105
7105
|
function ownKeys$p(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; }
|
|
7106
7106
|
function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7107
7107
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -7310,11 +7310,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
7310
7310
|
|
|
7311
7311
|
// Flatten all widgets from all packages for the widget list
|
|
7312
7312
|
flatWidgets = [];
|
|
7313
|
-
_iterator = _createForOfIteratorHelper$
|
|
7313
|
+
_iterator = _createForOfIteratorHelper$7(result.packages || []);
|
|
7314
7314
|
try {
|
|
7315
7315
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
7316
7316
|
pkg = _step.value;
|
|
7317
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
7317
|
+
_iterator2 = _createForOfIteratorHelper$7(pkg.widgets || []);
|
|
7318
7318
|
try {
|
|
7319
7319
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
7320
7320
|
widget = _step2.value;
|
|
@@ -8480,9 +8480,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
8480
8480
|
});
|
|
8481
8481
|
};
|
|
8482
8482
|
|
|
8483
|
-
function _createForOfIteratorHelper$
|
|
8484
|
-
function _unsupportedIterableToArray$
|
|
8485
|
-
function _arrayLikeToArray$
|
|
8483
|
+
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; } } }; }
|
|
8484
|
+
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; } }
|
|
8485
|
+
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; }
|
|
8486
8486
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
8487
8487
|
var item = _ref.item,
|
|
8488
8488
|
widget = _ref.widget,
|
|
@@ -8526,7 +8526,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
8526
8526
|
var el = headerRef.current;
|
|
8527
8527
|
if (!el) return;
|
|
8528
8528
|
var observer = new ResizeObserver(function (entries) {
|
|
8529
|
-
var _iterator = _createForOfIteratorHelper$
|
|
8529
|
+
var _iterator = _createForOfIteratorHelper$6(entries),
|
|
8530
8530
|
_step;
|
|
8531
8531
|
try {
|
|
8532
8532
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13236,9 +13236,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
13236
13236
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
13237
13237
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
13238
13238
|
|
|
13239
|
-
function _createForOfIteratorHelper$
|
|
13240
|
-
function _unsupportedIterableToArray$
|
|
13241
|
-
function _arrayLikeToArray$
|
|
13239
|
+
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; } } }; }
|
|
13240
|
+
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; } }
|
|
13241
|
+
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; }
|
|
13242
13242
|
function ownKeys$h(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; }
|
|
13243
13243
|
function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13244
13244
|
var DraggableCellBody = function DraggableCellBody(_ref) {
|
|
@@ -13584,7 +13584,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13584
13584
|
return selectable["delete"](cn);
|
|
13585
13585
|
});
|
|
13586
13586
|
var resolved = new Set();
|
|
13587
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13587
|
+
var _iterator = _createForOfIteratorHelper$5(selectable),
|
|
13588
13588
|
_step;
|
|
13589
13589
|
try {
|
|
13590
13590
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -15646,9 +15646,9 @@ function isWidgetResolvable(componentKey) {
|
|
|
15646
15646
|
|
|
15647
15647
|
function ownKeys$g(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; }
|
|
15648
15648
|
function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15649
|
-
function _createForOfIteratorHelper$
|
|
15650
|
-
function _unsupportedIterableToArray$
|
|
15651
|
-
function _arrayLikeToArray$
|
|
15649
|
+
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; } } }; }
|
|
15650
|
+
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; } }
|
|
15651
|
+
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; }
|
|
15652
15652
|
/**
|
|
15653
15653
|
* The model for all layout components used primarily in the renderLayout method
|
|
15654
15654
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -15660,7 +15660,7 @@ function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
15660
15660
|
function sortObjectByKeys(obj) {
|
|
15661
15661
|
var sortedKeys = Object.keys(obj).sort();
|
|
15662
15662
|
var sortedObj = {};
|
|
15663
|
-
var _iterator = _createForOfIteratorHelper$
|
|
15663
|
+
var _iterator = _createForOfIteratorHelper$4(sortedKeys),
|
|
15664
15664
|
_step;
|
|
15665
15665
|
try {
|
|
15666
15666
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -18803,9 +18803,9 @@ var useDashboard = function useDashboard() {
|
|
|
18803
18803
|
});
|
|
18804
18804
|
};
|
|
18805
18805
|
|
|
18806
|
-
function _createForOfIteratorHelper$
|
|
18807
|
-
function _unsupportedIterableToArray$
|
|
18808
|
-
function _arrayLikeToArray$
|
|
18806
|
+
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; } } }; }
|
|
18807
|
+
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; } }
|
|
18808
|
+
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; }
|
|
18809
18809
|
|
|
18810
18810
|
/**
|
|
18811
18811
|
* useWidgetProviders Hook
|
|
@@ -18856,7 +18856,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
18856
18856
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
18857
18857
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
18858
18858
|
var providers = {};
|
|
18859
|
-
var _iterator = _createForOfIteratorHelper$
|
|
18859
|
+
var _iterator = _createForOfIteratorHelper$3(providerDeclarations),
|
|
18860
18860
|
_step;
|
|
18861
18861
|
try {
|
|
18862
18862
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -21661,9 +21661,9 @@ var resolveIcon = function resolveIcon(iconName) {
|
|
|
21661
21661
|
return FALLBACK;
|
|
21662
21662
|
};
|
|
21663
21663
|
|
|
21664
|
-
function _createForOfIteratorHelper$
|
|
21665
|
-
function _unsupportedIterableToArray$
|
|
21666
|
-
function _arrayLikeToArray$
|
|
21664
|
+
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; } } }; }
|
|
21665
|
+
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; } }
|
|
21666
|
+
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; }
|
|
21667
21667
|
/**
|
|
21668
21668
|
* Validation utilities for grid-first dashboard architecture
|
|
21669
21669
|
*
|
|
@@ -21902,7 +21902,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
|
|
|
21902
21902
|
|
|
21903
21903
|
// Validate each cell
|
|
21904
21904
|
var cells = [];
|
|
21905
|
-
var _iterator = _createForOfIteratorHelper$
|
|
21905
|
+
var _iterator = _createForOfIteratorHelper$2(cellNumbers),
|
|
21906
21906
|
_step;
|
|
21907
21907
|
try {
|
|
21908
21908
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28300,9 +28300,9 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
|
28300
28300
|
});
|
|
28301
28301
|
};
|
|
28302
28302
|
|
|
28303
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(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; } } }; }
|
|
28304
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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(r, a) : void 0; } }
|
|
28305
|
-
function _arrayLikeToArray(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; }
|
|
28303
|
+
function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(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; } } }; }
|
|
28304
|
+
function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(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$1(r, a) : void 0; } }
|
|
28305
|
+
function _arrayLikeToArray$1(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; }
|
|
28306
28306
|
|
|
28307
28307
|
/**
|
|
28308
28308
|
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
@@ -28377,11 +28377,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
28377
28377
|
|
|
28378
28378
|
// Flatten packages into widget entries
|
|
28379
28379
|
widgets = [];
|
|
28380
|
-
_iterator = _createForOfIteratorHelper(pkgs);
|
|
28380
|
+
_iterator = _createForOfIteratorHelper$1(pkgs);
|
|
28381
28381
|
try {
|
|
28382
28382
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
28383
28383
|
pkg = _step.value;
|
|
28384
|
-
_iterator2 = _createForOfIteratorHelper(pkg.widgets || []);
|
|
28384
|
+
_iterator2 = _createForOfIteratorHelper$1(pkg.widgets || []);
|
|
28385
28385
|
try {
|
|
28386
28386
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28387
28387
|
widget = _step2.value;
|
|
@@ -28657,6 +28657,71 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
28657
28657
|
});
|
|
28658
28658
|
};
|
|
28659
28659
|
|
|
28660
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(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; } } }; }
|
|
28661
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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(r, a) : void 0; } }
|
|
28662
|
+
function _arrayLikeToArray(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; }
|
|
28663
|
+
|
|
28664
|
+
/**
|
|
28665
|
+
* Walk a workspace layout array (possibly nested via LayoutGridContainer
|
|
28666
|
+
* children) and collect every `item.component` value.
|
|
28667
|
+
*/
|
|
28668
|
+
function collectComponentsFromLayout(layout) {
|
|
28669
|
+
var components = [];
|
|
28670
|
+
if (!Array.isArray(layout)) return components;
|
|
28671
|
+
var _iterator = _createForOfIteratorHelper(layout),
|
|
28672
|
+
_step;
|
|
28673
|
+
try {
|
|
28674
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
28675
|
+
var item = _step.value;
|
|
28676
|
+
if (item.component) components.push(item.component);
|
|
28677
|
+
if (Array.isArray(item.children)) {
|
|
28678
|
+
components.push.apply(components, _toConsumableArray(collectComponentsFromLayout(item.children)));
|
|
28679
|
+
}
|
|
28680
|
+
}
|
|
28681
|
+
} catch (err) {
|
|
28682
|
+
_iterator.e(err);
|
|
28683
|
+
} finally {
|
|
28684
|
+
_iterator.f();
|
|
28685
|
+
}
|
|
28686
|
+
return components;
|
|
28687
|
+
}
|
|
28688
|
+
|
|
28689
|
+
/**
|
|
28690
|
+
* Check which workspaces use any of the given component names.
|
|
28691
|
+
*
|
|
28692
|
+
* @param {string[]} componentNames – CM keys the widget package registers
|
|
28693
|
+
* @param {object[]} workspaces – workspace objects with .layout arrays
|
|
28694
|
+
* @returns {{ workspaceId: string, workspaceName: string, count: number }[]}
|
|
28695
|
+
*/
|
|
28696
|
+
function findWidgetUsage(componentNames, workspaces) {
|
|
28697
|
+
if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
|
|
28698
|
+
var nameSet = new Set(componentNames);
|
|
28699
|
+
var results = [];
|
|
28700
|
+
var _iterator2 = _createForOfIteratorHelper(workspaces),
|
|
28701
|
+
_step2;
|
|
28702
|
+
try {
|
|
28703
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28704
|
+
var ws = _step2.value;
|
|
28705
|
+
var comps = collectComponentsFromLayout(ws.layout);
|
|
28706
|
+
var count = comps.filter(function (c) {
|
|
28707
|
+
return nameSet.has(c);
|
|
28708
|
+
}).length;
|
|
28709
|
+
if (count > 0) {
|
|
28710
|
+
results.push({
|
|
28711
|
+
workspaceId: ws.id,
|
|
28712
|
+
workspaceName: ws.name || ws.id,
|
|
28713
|
+
count: count
|
|
28714
|
+
});
|
|
28715
|
+
}
|
|
28716
|
+
}
|
|
28717
|
+
} catch (err) {
|
|
28718
|
+
_iterator2.e(err);
|
|
28719
|
+
} finally {
|
|
28720
|
+
_iterator2.f();
|
|
28721
|
+
}
|
|
28722
|
+
return results;
|
|
28723
|
+
}
|
|
28724
|
+
|
|
28660
28725
|
/**
|
|
28661
28726
|
* useInstalledWidgets — hook for listing and managing installed widgets.
|
|
28662
28727
|
*
|
|
@@ -28702,13 +28767,15 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
28702
28767
|
name: key,
|
|
28703
28768
|
displayName: config.name || key,
|
|
28704
28769
|
author: config.author || null,
|
|
28770
|
+
"package": config["package"] || null,
|
|
28705
28771
|
description: config.description || null,
|
|
28706
28772
|
icon: config.icon || null,
|
|
28707
28773
|
version: null,
|
|
28708
28774
|
path: null,
|
|
28709
28775
|
source: "builtin",
|
|
28710
28776
|
providers: config.providers || [],
|
|
28711
|
-
workspace: config.workspace || null
|
|
28777
|
+
workspace: config.workspace || null,
|
|
28778
|
+
componentNames: [key]
|
|
28712
28779
|
};
|
|
28713
28780
|
}); // ── Installed widgets from WidgetRegistry ───────────────
|
|
28714
28781
|
// Registry entries now include .dash.js fields (icon, providers,
|
|
@@ -28738,13 +28805,15 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
28738
28805
|
name: w.name,
|
|
28739
28806
|
displayName: w.displayName || (cm === null || cm === void 0 ? void 0 : cm.name) || cmKey || w.name,
|
|
28740
28807
|
author: w.author || (cm === null || cm === void 0 ? void 0 : cm.author) || null,
|
|
28808
|
+
"package": w["package"] || (cm === null || cm === void 0 ? void 0 : cm["package"]) || null,
|
|
28741
28809
|
description: w.description || (cm === null || cm === void 0 ? void 0 : cm.description) || null,
|
|
28742
28810
|
icon: w.icon || (cm === null || cm === void 0 ? void 0 : cm.icon) || null,
|
|
28743
28811
|
version: w.version || null,
|
|
28744
28812
|
path: w.path || null,
|
|
28745
28813
|
source: "installed",
|
|
28746
28814
|
providers: (_w$providers = w.providers) !== null && _w$providers !== void 0 && _w$providers.length ? w.providers : (cm === null || cm === void 0 ? void 0 : cm.providers) || [],
|
|
28747
|
-
workspace: w.workspace || (cm === null || cm === void 0 ? void 0 : cm.workspace) || null
|
|
28815
|
+
workspace: w.workspace || (cm === null || cm === void 0 ? void 0 : cm.workspace) || null,
|
|
28816
|
+
componentNames: w.componentNames || (cmKey ? [cmKey] : [])
|
|
28748
28817
|
};
|
|
28749
28818
|
});
|
|
28750
28819
|
case 3:
|
|
@@ -28839,7 +28908,10 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
28839
28908
|
};
|
|
28840
28909
|
|
|
28841
28910
|
var WidgetsSection = function WidgetsSection(_ref) {
|
|
28842
|
-
var _ref$
|
|
28911
|
+
var _ref$workspaces = _ref.workspaces,
|
|
28912
|
+
workspaces = _ref$workspaces === void 0 ? [] : _ref$workspaces;
|
|
28913
|
+
_ref.credentials;
|
|
28914
|
+
var _ref$createRequested = _ref.createRequested,
|
|
28843
28915
|
createRequested = _ref$createRequested === void 0 ? false : _ref$createRequested,
|
|
28844
28916
|
_ref$onCreateAcknowle = _ref.onCreateAcknowledged,
|
|
28845
28917
|
onCreateAcknowledged = _ref$onCreateAcknowle === void 0 ? null : _ref$onCreateAcknowle;
|
|
@@ -28867,10 +28939,99 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
28867
28939
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
28868
28940
|
deleteTarget = _useState6[0],
|
|
28869
28941
|
setDeleteTarget = _useState6[1];
|
|
28870
|
-
var _useState7 = React.useState(
|
|
28942
|
+
var _useState7 = React.useState([]),
|
|
28871
28943
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
28872
|
-
|
|
28873
|
-
|
|
28944
|
+
deleteUsage = _useState8[0],
|
|
28945
|
+
setDeleteUsage = _useState8[1];
|
|
28946
|
+
var _useState9 = React.useState(null),
|
|
28947
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
28948
|
+
installResult = _useState0[0],
|
|
28949
|
+
setInstallResult = _useState0[1];
|
|
28950
|
+
|
|
28951
|
+
// ── Filter state ────────────────────────────────────────────────────
|
|
28952
|
+
var _useState1 = React.useState(""),
|
|
28953
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
28954
|
+
searchQuery = _useState10[0],
|
|
28955
|
+
setSearchQuery = _useState10[1];
|
|
28956
|
+
var _useState11 = React.useState("all"),
|
|
28957
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
28958
|
+
filterSource = _useState12[0],
|
|
28959
|
+
setFilterSource = _useState12[1]; // "all" | "builtin" | "installed"
|
|
28960
|
+
var _useState13 = React.useState("all"),
|
|
28961
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
28962
|
+
filterAuthor = _useState14[0],
|
|
28963
|
+
setFilterAuthor = _useState14[1];
|
|
28964
|
+
var _useState15 = React.useState("all"),
|
|
28965
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
28966
|
+
filterProvider = _useState16[0],
|
|
28967
|
+
setFilterProvider = _useState16[1];
|
|
28968
|
+
|
|
28969
|
+
// ── Derived filter options ──────────────────────────────────────────
|
|
28970
|
+
var uniqueAuthors = React.useMemo(function () {
|
|
28971
|
+
return _toConsumableArray(new Set(widgets.map(function (w) {
|
|
28972
|
+
return w["package"] || w.author || "Other";
|
|
28973
|
+
}))).sort();
|
|
28974
|
+
}, [widgets]);
|
|
28975
|
+
var uniqueProviders = React.useMemo(function () {
|
|
28976
|
+
return _toConsumableArray(new Set(widgets.flatMap(function (w) {
|
|
28977
|
+
return (w.providers || []).map(function (p) {
|
|
28978
|
+
return p.type;
|
|
28979
|
+
});
|
|
28980
|
+
}))).sort();
|
|
28981
|
+
}, [widgets]);
|
|
28982
|
+
|
|
28983
|
+
// ── Filtered + grouped widgets ──────────────────────────────────────
|
|
28984
|
+
var _useMemo = React.useMemo(function () {
|
|
28985
|
+
var filtered = widgets.filter(function (w) {
|
|
28986
|
+
// Search: match name, displayName, or description
|
|
28987
|
+
if (searchQuery) {
|
|
28988
|
+
var q = searchQuery.toLowerCase();
|
|
28989
|
+
var matchesSearch = (w.displayName || "").toLowerCase().includes(q) || (w.name || "").toLowerCase().includes(q) || (w.description || "").toLowerCase().includes(q);
|
|
28990
|
+
if (!matchesSearch) return false;
|
|
28991
|
+
}
|
|
28992
|
+
// Source filter
|
|
28993
|
+
if (filterSource !== "all" && w.source !== filterSource) return false;
|
|
28994
|
+
// Author/package filter
|
|
28995
|
+
if (filterAuthor !== "all") {
|
|
28996
|
+
if ((w["package"] || w.author || "Other") !== filterAuthor) return false;
|
|
28997
|
+
}
|
|
28998
|
+
// Provider filter
|
|
28999
|
+
if (filterProvider !== "all") {
|
|
29000
|
+
if (filterProvider === "none") {
|
|
29001
|
+
if (w.providers && w.providers.length > 0) return false;
|
|
29002
|
+
} else {
|
|
29003
|
+
if (!w.providers || !w.providers.some(function (p) {
|
|
29004
|
+
return p.type === filterProvider;
|
|
29005
|
+
})) return false;
|
|
29006
|
+
}
|
|
29007
|
+
}
|
|
29008
|
+
return true;
|
|
29009
|
+
});
|
|
29010
|
+
|
|
29011
|
+
// Group by package > author > "Other"
|
|
29012
|
+
var groups = {};
|
|
29013
|
+
filtered.forEach(function (w) {
|
|
29014
|
+
var group = w["package"] || w.author || "Other";
|
|
29015
|
+
if (!groups[group]) groups[group] = [];
|
|
29016
|
+
groups[group].push(w);
|
|
29017
|
+
});
|
|
29018
|
+
return {
|
|
29019
|
+
filteredGrouped: groups,
|
|
29020
|
+
filteredCount: filtered.length,
|
|
29021
|
+
totalCount: widgets.length
|
|
29022
|
+
};
|
|
29023
|
+
}, [widgets, searchQuery, filterSource, filterAuthor, filterProvider]),
|
|
29024
|
+
filteredGrouped = _useMemo.filteredGrouped,
|
|
29025
|
+
filteredCount = _useMemo.filteredCount,
|
|
29026
|
+
totalCount = _useMemo.totalCount;
|
|
29027
|
+
var hasActiveFilters = searchQuery || filterSource !== "all" || filterAuthor !== "all" || filterProvider !== "all";
|
|
29028
|
+
var clearFilters = function clearFilters() {
|
|
29029
|
+
setSearchQuery("");
|
|
29030
|
+
setFilterSource("all");
|
|
29031
|
+
setFilterAuthor("all");
|
|
29032
|
+
setFilterProvider("all");
|
|
29033
|
+
};
|
|
29034
|
+
var selectClassName = "w-full px-2 py-1 rounded text-xs bg-transparent border ".concat(currentTheme["border-primary-medium"] || "border-gray-700", " ").concat(currentTheme["text-primary-light"] || "text-gray-300", " focus:outline-none appearance-none cursor-pointer");
|
|
28874
29035
|
|
|
28875
29036
|
// Respond to external create trigger from header button
|
|
28876
29037
|
var prevCreateRequested = React.useRef(false);
|
|
@@ -28889,6 +29050,14 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
28889
29050
|
var selectedWidget = selectedWidgetName ? widgets.find(function (w) {
|
|
28890
29051
|
return w.name === selectedWidgetName;
|
|
28891
29052
|
}) : null;
|
|
29053
|
+
|
|
29054
|
+
// ── Uninstall with usage check ──────────────────────────────────────
|
|
29055
|
+
|
|
29056
|
+
function handleDeleteRequest(widget) {
|
|
29057
|
+
var usage = findWidgetUsage(widget.componentNames, workspaces);
|
|
29058
|
+
setDeleteUsage(usage);
|
|
29059
|
+
setDeleteTarget(widget);
|
|
29060
|
+
}
|
|
28892
29061
|
function handleConfirmDelete() {
|
|
28893
29062
|
return _handleConfirmDelete.apply(this, arguments);
|
|
28894
29063
|
}
|
|
@@ -28917,6 +29086,7 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
28917
29086
|
_context["catch"](1);
|
|
28918
29087
|
case 4:
|
|
28919
29088
|
setDeleteTarget(null);
|
|
29089
|
+
setDeleteUsage([]);
|
|
28920
29090
|
case 5:
|
|
28921
29091
|
case "end":
|
|
28922
29092
|
return _context.stop();
|
|
@@ -29097,33 +29267,126 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
29097
29267
|
className: "text-sm opacity-40 py-8 text-center block",
|
|
29098
29268
|
children: "No widgets available"
|
|
29099
29269
|
});
|
|
29270
|
+
} else if (filteredCount === 0) {
|
|
29271
|
+
listBody = /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
29272
|
+
className: "text-sm opacity-40 py-8 text-center block",
|
|
29273
|
+
children: "No widgets match filters"
|
|
29274
|
+
});
|
|
29100
29275
|
} else {
|
|
29101
|
-
|
|
29102
|
-
|
|
29103
|
-
|
|
29104
|
-
|
|
29105
|
-
|
|
29106
|
-
|
|
29107
|
-
|
|
29108
|
-
|
|
29109
|
-
|
|
29110
|
-
|
|
29111
|
-
|
|
29112
|
-
|
|
29113
|
-
|
|
29114
|
-
|
|
29115
|
-
|
|
29116
|
-
|
|
29117
|
-
|
|
29118
|
-
|
|
29119
|
-
|
|
29120
|
-
|
|
29121
|
-
|
|
29276
|
+
var groupKeys = Object.keys(filteredGrouped).sort();
|
|
29277
|
+
var showGroupHeaders = groupKeys.length > 1;
|
|
29278
|
+
listBody = groupKeys.map(function (group) {
|
|
29279
|
+
var groupWidgets = filteredGrouped[group];
|
|
29280
|
+
var items = groupWidgets.map(function (widget) {
|
|
29281
|
+
var isSelected = selectedWidgetName === widget.name && !installMode;
|
|
29282
|
+
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
29283
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
29284
|
+
icon: resolveIcon(widget.icon),
|
|
29285
|
+
className: "h-3.5 w-3.5"
|
|
29286
|
+
}),
|
|
29287
|
+
active: isSelected,
|
|
29288
|
+
onClick: function onClick() {
|
|
29289
|
+
setSelectedWidgetName(widget.name);
|
|
29290
|
+
setInstallMode(null);
|
|
29291
|
+
setInstallResult(null);
|
|
29292
|
+
},
|
|
29293
|
+
className: isSelected ? "bg-white/10 opacity-100" : "",
|
|
29294
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
29295
|
+
className: "flex items-center gap-2",
|
|
29296
|
+
children: [widget.displayName || widget.name, widget.source === "builtin" && /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, {
|
|
29297
|
+
text: "Built-in"
|
|
29298
|
+
})]
|
|
29299
|
+
})
|
|
29300
|
+
}, widget.name);
|
|
29301
|
+
});
|
|
29302
|
+
if (showGroupHeaders) {
|
|
29303
|
+
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Group, {
|
|
29304
|
+
label: group,
|
|
29305
|
+
children: items
|
|
29306
|
+
}, group);
|
|
29307
|
+
}
|
|
29308
|
+
return items;
|
|
29122
29309
|
});
|
|
29123
29310
|
}
|
|
29124
29311
|
var listContent = /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29125
29312
|
className: "flex flex-col h-full",
|
|
29126
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
29313
|
+
children: [!isLoading && !error && widgets.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29314
|
+
className: "flex flex-col gap-2 px-3 py-2 flex-shrink-0 border-b border-white/10",
|
|
29315
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SearchInput, {
|
|
29316
|
+
value: searchQuery,
|
|
29317
|
+
onChange: setSearchQuery,
|
|
29318
|
+
placeholder: "Search widgets...",
|
|
29319
|
+
inputClassName: "py-1.5 text-xs"
|
|
29320
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
29321
|
+
className: "flex bg-white/5 rounded-md p-0.5",
|
|
29322
|
+
children: [{
|
|
29323
|
+
key: "all",
|
|
29324
|
+
label: "All"
|
|
29325
|
+
}, {
|
|
29326
|
+
key: "builtin",
|
|
29327
|
+
label: "Built-in"
|
|
29328
|
+
}, {
|
|
29329
|
+
key: "installed",
|
|
29330
|
+
label: "Installed"
|
|
29331
|
+
}].map(function (tab) {
|
|
29332
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
29333
|
+
type: "button",
|
|
29334
|
+
onClick: function onClick() {
|
|
29335
|
+
return setFilterSource(tab.key);
|
|
29336
|
+
},
|
|
29337
|
+
className: "flex-1 px-2 py-0.5 rounded text-[11px] transition-colors ".concat(filterSource === tab.key ? "bg-white/10 font-medium opacity-90" : "opacity-50 hover:opacity-70"),
|
|
29338
|
+
children: tab.label
|
|
29339
|
+
}, tab.key);
|
|
29340
|
+
})
|
|
29341
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29342
|
+
className: "grid grid-cols-2 gap-1.5",
|
|
29343
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("select", {
|
|
29344
|
+
value: filterAuthor,
|
|
29345
|
+
onChange: function onChange(e) {
|
|
29346
|
+
return setFilterAuthor(e.target.value);
|
|
29347
|
+
},
|
|
29348
|
+
className: selectClassName,
|
|
29349
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("option", {
|
|
29350
|
+
value: "all",
|
|
29351
|
+
children: "All Authors"
|
|
29352
|
+
}), uniqueAuthors.map(function (a) {
|
|
29353
|
+
return /*#__PURE__*/jsxRuntime.jsx("option", {
|
|
29354
|
+
value: a,
|
|
29355
|
+
children: a
|
|
29356
|
+
}, a);
|
|
29357
|
+
})]
|
|
29358
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("select", {
|
|
29359
|
+
value: filterProvider,
|
|
29360
|
+
onChange: function onChange(e) {
|
|
29361
|
+
return setFilterProvider(e.target.value);
|
|
29362
|
+
},
|
|
29363
|
+
className: selectClassName,
|
|
29364
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("option", {
|
|
29365
|
+
value: "all",
|
|
29366
|
+
children: "All Providers"
|
|
29367
|
+
}), /*#__PURE__*/jsxRuntime.jsx("option", {
|
|
29368
|
+
value: "none",
|
|
29369
|
+
children: "No Providers"
|
|
29370
|
+
}), uniqueProviders.map(function (p) {
|
|
29371
|
+
return /*#__PURE__*/jsxRuntime.jsx("option", {
|
|
29372
|
+
value: p,
|
|
29373
|
+
children: p
|
|
29374
|
+
}, p);
|
|
29375
|
+
})]
|
|
29376
|
+
})]
|
|
29377
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29378
|
+
className: "flex items-center justify-between text-[10px] px-0.5",
|
|
29379
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
29380
|
+
className: "opacity-50",
|
|
29381
|
+
children: hasActiveFilters ? "".concat(filteredCount, " of ").concat(totalCount, " widgets") : "".concat(totalCount, " widgets")
|
|
29382
|
+
}), hasActiveFilters && /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
29383
|
+
type: "button",
|
|
29384
|
+
onClick: clearFilters,
|
|
29385
|
+
className: "opacity-60 hover:opacity-100 transition-opacity text-gray-300 hover:bg-white/10 px-1.5 py-0.5 rounded",
|
|
29386
|
+
children: "Clear"
|
|
29387
|
+
})]
|
|
29388
|
+
})]
|
|
29389
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Content, {
|
|
29127
29390
|
children: listBody
|
|
29128
29391
|
}), !isLoading && !error && widgets.length > 0 && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
29129
29392
|
className: "px-3 py-2 text-[10px] opacity-40 flex-shrink-0 border-t border-white/10",
|
|
@@ -29201,10 +29464,14 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
29201
29464
|
detailContent = /*#__PURE__*/jsxRuntime.jsx(InstalledWidgetDetail, {
|
|
29202
29465
|
widget: selectedWidget,
|
|
29203
29466
|
onDelete: function onDelete(w) {
|
|
29204
|
-
return
|
|
29467
|
+
return handleDeleteRequest(w);
|
|
29205
29468
|
}
|
|
29206
29469
|
});
|
|
29207
29470
|
}
|
|
29471
|
+
|
|
29472
|
+
// ── Uninstall confirmation message ──────────────────────────────────
|
|
29473
|
+
|
|
29474
|
+
var deleteMessage = deleteUsage.length > 0 ? "\"".concat((deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.displayName) || (deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.name), "\" is currently used in ").concat(deleteUsage.length, " dashboard").concat(deleteUsage.length !== 1 ? "s" : "", ". Uninstalling will leave orphaned layout items on these dashboards.") : "Are you sure you want to uninstall \"".concat((deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.displayName) || (deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.name), "\"?");
|
|
29208
29475
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
29209
29476
|
children: [/*#__PURE__*/jsxRuntime.jsx(SectionLayout, {
|
|
29210
29477
|
listContent: listContent,
|
|
@@ -29213,16 +29480,36 @@ var WidgetsSection = function WidgetsSection(_ref) {
|
|
|
29213
29480
|
}), /*#__PURE__*/jsxRuntime.jsx(DashReact.ConfirmationModal, {
|
|
29214
29481
|
isOpen: !!deleteTarget,
|
|
29215
29482
|
setIsOpen: function setIsOpen() {
|
|
29216
|
-
|
|
29483
|
+
setDeleteTarget(null);
|
|
29484
|
+
setDeleteUsage([]);
|
|
29217
29485
|
},
|
|
29218
29486
|
title: "Uninstall Widget",
|
|
29219
|
-
message:
|
|
29487
|
+
message: deleteMessage,
|
|
29220
29488
|
confirmLabel: "Uninstall",
|
|
29221
29489
|
variant: "danger",
|
|
29222
29490
|
onConfirm: handleConfirmDelete,
|
|
29223
29491
|
onCancel: function onCancel() {
|
|
29224
|
-
|
|
29225
|
-
|
|
29492
|
+
setDeleteTarget(null);
|
|
29493
|
+
setDeleteUsage([]);
|
|
29494
|
+
},
|
|
29495
|
+
children: deleteUsage.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29496
|
+
className: "mt-2 space-y-1",
|
|
29497
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
29498
|
+
className: "text-xs font-semibold opacity-70",
|
|
29499
|
+
children: "Affected dashboards:"
|
|
29500
|
+
}), deleteUsage.map(function (u) {
|
|
29501
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29502
|
+
className: "text-xs opacity-60 flex items-center gap-1.5 pl-2",
|
|
29503
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
29504
|
+
icon: "triangle-exclamation",
|
|
29505
|
+
className: "h-3 w-3 text-yellow-500"
|
|
29506
|
+
}), u.workspaceName, " ", /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
29507
|
+
className: "opacity-50",
|
|
29508
|
+
children: ["(", u.count, " instance", u.count !== 1 ? "s" : "", ")"]
|
|
29509
|
+
})]
|
|
29510
|
+
}, u.workspaceId);
|
|
29511
|
+
})]
|
|
29512
|
+
})
|
|
29226
29513
|
})]
|
|
29227
29514
|
});
|
|
29228
29515
|
};
|
|
@@ -29372,6 +29659,8 @@ var AppSettingsModal = function AppSettingsModal(_ref) {
|
|
|
29372
29659
|
return setCreateRequested(false);
|
|
29373
29660
|
}
|
|
29374
29661
|
}), activeSection === "widgets" && /*#__PURE__*/jsxRuntime.jsx(WidgetsSection, {
|
|
29662
|
+
workspaces: workspaces,
|
|
29663
|
+
credentials: credentials,
|
|
29375
29664
|
createRequested: createRequested,
|
|
29376
29665
|
onCreateAcknowledged: function onCreateAcknowledged() {
|
|
29377
29666
|
return setCreateRequested(false);
|
|
@@ -30889,7 +31178,15 @@ var DashboardStageInner = function DashboardStageInner(_ref2) {
|
|
|
30889
31178
|
return tab.id === workspaceItem.id;
|
|
30890
31179
|
});
|
|
30891
31180
|
if (existingTab) {
|
|
30892
|
-
//
|
|
31181
|
+
// Sync fresh workspace data to existing tab
|
|
31182
|
+
setOpenTabs(function (prev) {
|
|
31183
|
+
return prev.map(function (tab) {
|
|
31184
|
+
return tab.id === existingTab.id ? _objectSpread(_objectSpread({}, tab), {}, {
|
|
31185
|
+
name: workspaceItem.name || "Untitled",
|
|
31186
|
+
workspace: workspaceItem
|
|
31187
|
+
}) : tab;
|
|
31188
|
+
});
|
|
31189
|
+
});
|
|
30893
31190
|
setActiveTabId(existingTab.id);
|
|
30894
31191
|
} else {
|
|
30895
31192
|
// Open new tab
|