@trops/dash-core 0.1.431 → 0.1.433
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/electron/index.js +23 -1
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +274 -76
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +235 -43
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -8967,7 +8967,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
|
|
|
8967
8967
|
var hasPropertyDescriptors_1 = hasPropertyDescriptors;
|
|
8968
8968
|
|
|
8969
8969
|
var keys = objectKeys$2;
|
|
8970
|
-
var hasSymbols$
|
|
8970
|
+
var hasSymbols$4 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
|
|
8971
8971
|
|
|
8972
8972
|
var toStr$4 = Object.prototype.toString;
|
|
8973
8973
|
var concat = Array.prototype.concat;
|
|
@@ -9000,7 +9000,7 @@ var defineProperty$1 = function (object, name, value, predicate) {
|
|
|
9000
9000
|
var defineProperties$1 = function (object, map) {
|
|
9001
9001
|
var predicates = arguments.length > 2 ? arguments[2] : {};
|
|
9002
9002
|
var props = keys(map);
|
|
9003
|
-
if (hasSymbols$
|
|
9003
|
+
if (hasSymbols$4) {
|
|
9004
9004
|
props = concat.call(props, Object.getOwnPropertySymbols(map));
|
|
9005
9005
|
}
|
|
9006
9006
|
for (var i = 0; i < props.length; i += 1) {
|
|
@@ -9066,11 +9066,11 @@ var sign$1 = function sign(number) {
|
|
|
9066
9066
|
};
|
|
9067
9067
|
|
|
9068
9068
|
var shams$1;
|
|
9069
|
-
var hasRequiredShams;
|
|
9069
|
+
var hasRequiredShams$1;
|
|
9070
9070
|
|
|
9071
|
-
function requireShams () {
|
|
9072
|
-
if (hasRequiredShams) return shams$1;
|
|
9073
|
-
hasRequiredShams = 1;
|
|
9071
|
+
function requireShams$1 () {
|
|
9072
|
+
if (hasRequiredShams$1) return shams$1;
|
|
9073
|
+
hasRequiredShams$1 = 1;
|
|
9074
9074
|
|
|
9075
9075
|
/** @type {import('./shams')} */
|
|
9076
9076
|
/* eslint complexity: [2, 18], max-statements: [2, 33] */
|
|
@@ -9119,10 +9119,10 @@ function requireShams () {
|
|
|
9119
9119
|
}
|
|
9120
9120
|
|
|
9121
9121
|
var origSymbol = typeof Symbol !== 'undefined' && Symbol;
|
|
9122
|
-
var hasSymbolSham = requireShams();
|
|
9122
|
+
var hasSymbolSham = requireShams$1();
|
|
9123
9123
|
|
|
9124
9124
|
/** @type {import('.')} */
|
|
9125
|
-
var hasSymbols$
|
|
9125
|
+
var hasSymbols$3 = function hasNativeSymbols() {
|
|
9126
9126
|
if (typeof origSymbol !== 'function') { return false; }
|
|
9127
9127
|
if (typeof Symbol !== 'function') { return false; }
|
|
9128
9128
|
if (typeof origSymbol('foo') !== 'symbol') { return false; }
|
|
@@ -9426,7 +9426,7 @@ var ThrowTypeError = $gOPD$1
|
|
|
9426
9426
|
}())
|
|
9427
9427
|
: throwTypeError;
|
|
9428
9428
|
|
|
9429
|
-
var hasSymbols$
|
|
9429
|
+
var hasSymbols$2 = hasSymbols$3();
|
|
9430
9430
|
|
|
9431
9431
|
var getProto$2 = getProto$3;
|
|
9432
9432
|
var $ObjectGPO = requireObject_getPrototypeOf();
|
|
@@ -9444,7 +9444,7 @@ var INTRINSICS = {
|
|
|
9444
9444
|
'%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
|
|
9445
9445
|
'%Array%': Array,
|
|
9446
9446
|
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
|
|
9447
|
-
'%ArrayIteratorPrototype%': hasSymbols$
|
|
9447
|
+
'%ArrayIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
|
|
9448
9448
|
'%AsyncFromSyncIteratorPrototype%': undefined$1,
|
|
9449
9449
|
'%AsyncFunction%': needsEval,
|
|
9450
9450
|
'%AsyncGenerator%': needsEval,
|
|
@@ -9475,10 +9475,10 @@ var INTRINSICS = {
|
|
|
9475
9475
|
'%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
|
|
9476
9476
|
'%isFinite%': isFinite,
|
|
9477
9477
|
'%isNaN%': isNaN,
|
|
9478
|
-
'%IteratorPrototype%': hasSymbols$
|
|
9478
|
+
'%IteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
|
|
9479
9479
|
'%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
|
|
9480
9480
|
'%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
|
|
9481
|
-
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$
|
|
9481
|
+
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
|
|
9482
9482
|
'%Math%': Math,
|
|
9483
9483
|
'%Number%': Number,
|
|
9484
9484
|
'%Object%': $Object$2,
|
|
@@ -9492,11 +9492,11 @@ var INTRINSICS = {
|
|
|
9492
9492
|
'%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
|
|
9493
9493
|
'%RegExp%': RegExp,
|
|
9494
9494
|
'%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
|
|
9495
|
-
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$
|
|
9495
|
+
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
|
|
9496
9496
|
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
|
|
9497
9497
|
'%String%': String,
|
|
9498
|
-
'%StringIteratorPrototype%': hasSymbols$
|
|
9499
|
-
'%Symbol%': hasSymbols$
|
|
9498
|
+
'%StringIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
|
|
9499
|
+
'%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
|
|
9500
9500
|
'%SyntaxError%': $SyntaxError$1,
|
|
9501
9501
|
'%ThrowTypeError%': ThrowTypeError,
|
|
9502
9502
|
'%TypedArray%': TypedArray,
|
|
@@ -9849,12 +9849,12 @@ var callBound$i = function callBoundIntrinsic(name, allowMissing) {
|
|
|
9849
9849
|
|
|
9850
9850
|
// modified from https://github.com/es-shims/es6-shim
|
|
9851
9851
|
var objectKeys$1 = objectKeys$2;
|
|
9852
|
-
var hasSymbols$
|
|
9852
|
+
var hasSymbols$1 = requireShams$1()();
|
|
9853
9853
|
var callBound$h = callBound$i;
|
|
9854
9854
|
var $Object$1 = esObjectAtoms;
|
|
9855
9855
|
var $push = callBound$h('Array.prototype.push');
|
|
9856
9856
|
var $propIsEnumerable = callBound$h('Object.prototype.propertyIsEnumerable');
|
|
9857
|
-
var originalGetSymbols = hasSymbols$
|
|
9857
|
+
var originalGetSymbols = hasSymbols$1 ? $Object$1.getOwnPropertySymbols : null;
|
|
9858
9858
|
|
|
9859
9859
|
// eslint-disable-next-line no-unused-vars
|
|
9860
9860
|
var implementation$8 = function assign(target, source1) {
|
|
@@ -9868,7 +9868,7 @@ var implementation$8 = function assign(target, source1) {
|
|
|
9868
9868
|
|
|
9869
9869
|
// step 3.a.ii:
|
|
9870
9870
|
var keys = objectKeys$1(from);
|
|
9871
|
-
var getSymbols = hasSymbols$
|
|
9871
|
+
var getSymbols = hasSymbols$1 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
|
|
9872
9872
|
if (getSymbols) {
|
|
9873
9873
|
var syms = getSymbols(from);
|
|
9874
9874
|
for (var j = 0; j < syms.length; ++j) {
|
|
@@ -10165,14 +10165,23 @@ var regexp_prototype_flags = flagsBound;
|
|
|
10165
10165
|
|
|
10166
10166
|
var esGetIterator = {exports: {}};
|
|
10167
10167
|
|
|
10168
|
-
var
|
|
10168
|
+
var shams;
|
|
10169
|
+
var hasRequiredShams;
|
|
10169
10170
|
|
|
10170
|
-
|
|
10171
|
-
|
|
10172
|
-
|
|
10173
|
-
|
|
10171
|
+
function requireShams () {
|
|
10172
|
+
if (hasRequiredShams) return shams;
|
|
10173
|
+
hasRequiredShams = 1;
|
|
10174
|
+
|
|
10175
|
+
var hasSymbols = requireShams$1();
|
|
10174
10176
|
|
|
10175
|
-
|
|
10177
|
+
/** @type {import('.')} */
|
|
10178
|
+
shams = function hasToStringTagShams() {
|
|
10179
|
+
return hasSymbols() && !!Symbol.toStringTag;
|
|
10180
|
+
};
|
|
10181
|
+
return shams;
|
|
10182
|
+
}
|
|
10183
|
+
|
|
10184
|
+
var hasToStringTag$7 = requireShams()();
|
|
10176
10185
|
var callBound$f = callBound$i;
|
|
10177
10186
|
|
|
10178
10187
|
var $toString$7 = callBound$f('Object.prototype.toString');
|
|
@@ -11209,7 +11218,7 @@ var tryStringObject = function tryStringObject(value) {
|
|
|
11209
11218
|
/** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
|
|
11210
11219
|
var $toString$6 = callBound$c('Object.prototype.toString');
|
|
11211
11220
|
var strClass = '[object String]';
|
|
11212
|
-
var hasToStringTag$6 =
|
|
11221
|
+
var hasToStringTag$6 = requireShams()();
|
|
11213
11222
|
|
|
11214
11223
|
/** @type {import('.')} */
|
|
11215
11224
|
var isString$2 = function isString(value) {
|
|
@@ -11325,7 +11334,7 @@ var isSet$2 = exported$1 || function isSet(x) {
|
|
|
11325
11334
|
var isArguments$1 = isArguments$2;
|
|
11326
11335
|
var getStopIterationIterator = stopIterationIterator;
|
|
11327
11336
|
|
|
11328
|
-
if (hasSymbols$
|
|
11337
|
+
if (hasSymbols$3() || requireShams$1()()) {
|
|
11329
11338
|
var $iterator = Symbol.iterator;
|
|
11330
11339
|
// Symbol is available natively or shammed
|
|
11331
11340
|
// natively:
|
|
@@ -11614,7 +11623,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
|
|
|
11614
11623
|
/** @type {(value: unknown) => string} */
|
|
11615
11624
|
var toStr$2 = callBound$9('Object.prototype.toString');
|
|
11616
11625
|
var dateClass = '[object Date]';
|
|
11617
|
-
var hasToStringTag$5 =
|
|
11626
|
+
var hasToStringTag$5 = requireShams()();
|
|
11618
11627
|
|
|
11619
11628
|
/** @type {import('.')} */
|
|
11620
11629
|
var isDateObject = function isDateObject(value) {
|
|
@@ -11625,7 +11634,7 @@ var isDateObject = function isDateObject(value) {
|
|
|
11625
11634
|
};
|
|
11626
11635
|
|
|
11627
11636
|
var callBound$8 = callBound$i;
|
|
11628
|
-
var hasToStringTag$4 =
|
|
11637
|
+
var hasToStringTag$4 = requireShams()();
|
|
11629
11638
|
var hasOwn = hasown;
|
|
11630
11639
|
var gOPD$1 = gopd$1;
|
|
11631
11640
|
|
|
@@ -11730,7 +11739,7 @@ var tryNumberObject = function tryNumberObject(value) {
|
|
|
11730
11739
|
};
|
|
11731
11740
|
var $toString$3 = callBound$6('Object.prototype.toString');
|
|
11732
11741
|
var numClass = '[object Number]';
|
|
11733
|
-
var hasToStringTag$3 =
|
|
11742
|
+
var hasToStringTag$3 = requireShams()();
|
|
11734
11743
|
|
|
11735
11744
|
/** @type {import('.')} */
|
|
11736
11745
|
var isNumberObject = function isNumberObject(value) {
|
|
@@ -11757,7 +11766,7 @@ var tryBooleanObject = function booleanBrandCheck(value) {
|
|
|
11757
11766
|
}
|
|
11758
11767
|
};
|
|
11759
11768
|
var boolClass = '[object Boolean]';
|
|
11760
|
-
var hasToStringTag$2 =
|
|
11769
|
+
var hasToStringTag$2 = requireShams()();
|
|
11761
11770
|
|
|
11762
11771
|
/** @type {import('.')} */
|
|
11763
11772
|
var isBooleanObject = function isBoolean(value) {
|
|
@@ -11799,7 +11808,7 @@ function requireSafeRegexTest () {
|
|
|
11799
11808
|
|
|
11800
11809
|
var callBound$4 = callBound$i;
|
|
11801
11810
|
var $toString$1 = callBound$4('Object.prototype.toString');
|
|
11802
|
-
var hasSymbols = hasSymbols$
|
|
11811
|
+
var hasSymbols = hasSymbols$3();
|
|
11803
11812
|
var safeRegexTest = requireSafeRegexTest();
|
|
11804
11813
|
|
|
11805
11814
|
if (hasSymbols) {
|
|
@@ -12245,7 +12254,7 @@ var gOPD = gopd$1;
|
|
|
12245
12254
|
var getProto = getProto$3;
|
|
12246
12255
|
|
|
12247
12256
|
var $toString = callBound$2('Object.prototype.toString');
|
|
12248
|
-
var hasToStringTag =
|
|
12257
|
+
var hasToStringTag = requireShams()();
|
|
12249
12258
|
|
|
12250
12259
|
var g = typeof globalThis === 'undefined' ? commonjsGlobal : globalThis;
|
|
12251
12260
|
var typedArrays = availableTypedArrays();
|
|
@@ -18036,7 +18045,6 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
18036
18045
|
padding: true,
|
|
18037
18046
|
height: "h-full",
|
|
18038
18047
|
children: filteredWidgets.map(function (widget) {
|
|
18039
|
-
var _widget$providers;
|
|
18040
18048
|
return /*#__PURE__*/jsx(MenuItem3, {
|
|
18041
18049
|
onClick: function onClick() {
|
|
18042
18050
|
return handleWidgetSelect(widget);
|
|
@@ -18056,15 +18064,22 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
18056
18064
|
}), widget.description && /*#__PURE__*/jsx("div", {
|
|
18057
18065
|
className: "text-xs opacity-50 truncate",
|
|
18058
18066
|
children: widget.description
|
|
18059
|
-
}), (
|
|
18060
|
-
|
|
18061
|
-
|
|
18062
|
-
|
|
18063
|
-
|
|
18064
|
-
|
|
18065
|
-
|
|
18066
|
-
|
|
18067
|
-
|
|
18067
|
+
}), function () {
|
|
18068
|
+
// Same defensive null-safe iteration as WidgetSidebar:
|
|
18069
|
+
// a sparse `providers` array (null entries from a
|
|
18070
|
+
// malformed `.dash.js`) used to crash the chip render.
|
|
18071
|
+
var provs = getUserConfigurableProviders(widget.providers);
|
|
18072
|
+
if (provs.length === 0) return null;
|
|
18073
|
+
return /*#__PURE__*/jsx("div", {
|
|
18074
|
+
className: "flex flex-wrap gap-1 mt-0.5",
|
|
18075
|
+
children: provs.map(function (p) {
|
|
18076
|
+
return /*#__PURE__*/jsx("span", {
|
|
18077
|
+
className: "text-[10px] px-1.5 py-0.5 rounded bg-blue-500/20 text-blue-300",
|
|
18078
|
+
children: p.type
|
|
18079
|
+
}, p.type);
|
|
18080
|
+
})
|
|
18081
|
+
});
|
|
18082
|
+
}()]
|
|
18068
18083
|
}), /*#__PURE__*/jsxs("div", {
|
|
18069
18084
|
className: "flex items-center gap-1.5 flex-shrink-0",
|
|
18070
18085
|
children: [installedPackageNames.has(widget.packageName) && /*#__PURE__*/jsx("span", {
|
|
@@ -26668,7 +26683,11 @@ function renderComponent(component, id) {
|
|
|
26668
26683
|
// Check if widget exists before attempting render —
|
|
26669
26684
|
// WidgetFactory.render() always returns a React element (truthy),
|
|
26670
26685
|
// so the old ternary fallback could never fire.
|
|
26671
|
-
|
|
26686
|
+
// Pass `params` (the layout item) so `packageId` /
|
|
26687
|
+
// `_sourcePackage` can disambiguate when a legacy layout
|
|
26688
|
+
// references a bare component name and multiple installed
|
|
26689
|
+
// packages register a widget with the same trailing name.
|
|
26690
|
+
if (!isWidgetResolvable(component, params)) {
|
|
26672
26691
|
return /*#__PURE__*/jsx(WidgetNotFound, {
|
|
26673
26692
|
component: component
|
|
26674
26693
|
});
|
|
@@ -27473,20 +27492,25 @@ function addChildToLayoutItem(childComponent, layoutItem, workspace) {
|
|
|
27473
27492
|
}
|
|
27474
27493
|
|
|
27475
27494
|
/**
|
|
27476
|
-
* Check if a widget component key is resolvable in ComponentManager
|
|
27495
|
+
* Check if a widget component key is resolvable in ComponentManager.
|
|
27496
|
+
* Routes through `ComponentManager.resolve` so a legacy bare component
|
|
27497
|
+
* key (e.g. `"ProspectWorkspace"`) finds its registered scoped form
|
|
27498
|
+
* (`"ai-built.pipeline.ProspectWorkspace"`). Without this routing the
|
|
27499
|
+
* function would return false for every legacy-layout widget after the
|
|
27500
|
+
* scoped-IDs migration, and the renderer would show `WidgetNotFound`
|
|
27501
|
+
* for working dashboards.
|
|
27502
|
+
*
|
|
27477
27503
|
* @param {string} componentKey the component key to check
|
|
27504
|
+
* @param {object} [data] the layout item — used for `packageId`
|
|
27505
|
+
* disambiguation when multiple registered
|
|
27506
|
+
* widgets share the same bare name
|
|
27478
27507
|
* @returns {boolean} true if the widget can be rendered
|
|
27479
27508
|
*/
|
|
27480
|
-
function isWidgetResolvable(componentKey) {
|
|
27509
|
+
function isWidgetResolvable(componentKey, data) {
|
|
27481
27510
|
// Layout containers are always resolvable (handled specially by WidgetFactory)
|
|
27482
27511
|
if (ComponentManager.isLayoutContainer(componentKey)) return true;
|
|
27483
|
-
var
|
|
27484
|
-
|
|
27485
|
-
// Exact key match (scoped id)
|
|
27486
|
-
if (m[componentKey] && typeof m[componentKey].component === "function") {
|
|
27487
|
-
return true;
|
|
27488
|
-
}
|
|
27489
|
-
return false;
|
|
27512
|
+
var config = ComponentManager.resolve(componentKey, data);
|
|
27513
|
+
return !!(config && typeof config.component === "function");
|
|
27490
27514
|
}
|
|
27491
27515
|
|
|
27492
27516
|
// export {
|
|
@@ -27668,6 +27692,16 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
|
|
|
27668
27692
|
if (Array.isArray(widgetConfig.eventHandlers)) {
|
|
27669
27693
|
layout.eventHandlers = widgetConfig.eventHandlers;
|
|
27670
27694
|
}
|
|
27695
|
+
// Migrate legacy bare `component` references to the canonical
|
|
27696
|
+
// scoped form (`scope.package.Component`). ComponentManager.config
|
|
27697
|
+
// returns the resolved scoped key on `widgetConfig.component`, so
|
|
27698
|
+
// we just lift it. Idempotent: items already scoped pass through
|
|
27699
|
+
// unchanged because resolveComponentKey returns the input verbatim
|
|
27700
|
+
// when it's already in the map. Persisted on next save — no
|
|
27701
|
+
// separate migration step needed.
|
|
27702
|
+
if (typeof widgetConfig.component === "string" && widgetConfig.component && widgetConfig.component !== layout.component) {
|
|
27703
|
+
layout.component = widgetConfig.component;
|
|
27704
|
+
}
|
|
27671
27705
|
}
|
|
27672
27706
|
|
|
27673
27707
|
// Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
|
|
@@ -31353,6 +31387,120 @@ var ContextModel = /*#__PURE__*/function () {
|
|
|
31353
31387
|
}]);
|
|
31354
31388
|
}();
|
|
31355
31389
|
|
|
31390
|
+
/**
|
|
31391
|
+
* scopedComponentId.js
|
|
31392
|
+
*
|
|
31393
|
+
* Single source of truth for the canonical scoped component id used by
|
|
31394
|
+
* ComponentManager registration, layout items, and publish-time scope
|
|
31395
|
+
* remap. Format: `scope.packageName.ComponentName`.
|
|
31396
|
+
*
|
|
31397
|
+
* Why a 3-part dotted form (and not `@scope/pkg.Component`)?
|
|
31398
|
+
* - Matches existing `config.id` shape that `.dash.js` files already
|
|
31399
|
+
* set when authored explicitly (see ComponentManager.registerWidget:
|
|
31400
|
+
* `const registrationKey = config.id || widgetKey;`).
|
|
31401
|
+
* - Trivial to parse (`split(".")` — three parts, ordered).
|
|
31402
|
+
* - Avoids slashes inside object keys, which some downstream serializers
|
|
31403
|
+
* (older dash-registry indexers) historically choked on.
|
|
31404
|
+
*
|
|
31405
|
+
* The upstream package id may arrive in either of two shapes:
|
|
31406
|
+
* - "@scope/pkg" (npm-style)
|
|
31407
|
+
* - "scope/pkg" (bare scope)
|
|
31408
|
+
* Both produce the same scoped id.
|
|
31409
|
+
*/
|
|
31410
|
+
|
|
31411
|
+
/**
|
|
31412
|
+
* Build the canonical scoped component id from a package name and a
|
|
31413
|
+
* bare component name.
|
|
31414
|
+
*
|
|
31415
|
+
* @param {string} packageName e.g. "@ai-built/pipeline" or "ai-built/pipeline"
|
|
31416
|
+
* @param {string} componentName e.g. "ProspectListColumn"
|
|
31417
|
+
* @returns {string} e.g. "ai-built.pipeline.ProspectListColumn"
|
|
31418
|
+
*/
|
|
31419
|
+
function makeScopedComponentId(packageName, componentName) {
|
|
31420
|
+
if (!componentName) return "";
|
|
31421
|
+
if (!packageName) return componentName;
|
|
31422
|
+
var cleaned = String(packageName).replace(/^@/, "").replace(/\//g, ".");
|
|
31423
|
+
return "".concat(cleaned, ".").concat(componentName);
|
|
31424
|
+
}
|
|
31425
|
+
|
|
31426
|
+
/**
|
|
31427
|
+
* Parse a scoped component id into its three parts. Returns null when
|
|
31428
|
+
* the input isn't a 3-part dotted id (e.g. legacy bare names).
|
|
31429
|
+
*
|
|
31430
|
+
* @param {string} scopedId
|
|
31431
|
+
* @returns {{scope: string, packageName: string, componentName: string} | null}
|
|
31432
|
+
*/
|
|
31433
|
+
function parseScopedComponentId(scopedId) {
|
|
31434
|
+
if (typeof scopedId !== "string") return null;
|
|
31435
|
+
var parts = scopedId.split(".");
|
|
31436
|
+
if (parts.length !== 3) return null;
|
|
31437
|
+
return {
|
|
31438
|
+
scope: parts[0],
|
|
31439
|
+
packageName: parts[1],
|
|
31440
|
+
componentName: parts[2]
|
|
31441
|
+
};
|
|
31442
|
+
}
|
|
31443
|
+
|
|
31444
|
+
/**
|
|
31445
|
+
* Pull the bare component name from a scoped or unscoped id.
|
|
31446
|
+
*
|
|
31447
|
+
* @param {string} idOrName
|
|
31448
|
+
* @returns {string}
|
|
31449
|
+
*/
|
|
31450
|
+
function bareComponentName(idOrName) {
|
|
31451
|
+
if (typeof idOrName !== "string") return "";
|
|
31452
|
+
var parts = idOrName.split(".");
|
|
31453
|
+
return parts[parts.length - 1] || "";
|
|
31454
|
+
}
|
|
31455
|
+
|
|
31456
|
+
/**
|
|
31457
|
+
* Resolve a component name to a registry key. Returns null if no
|
|
31458
|
+
* match exists.
|
|
31459
|
+
*
|
|
31460
|
+
* Pure function — depends only on the passed-in `componentMap` and
|
|
31461
|
+
* `data`. Lives outside ComponentManager so it can be tested without
|
|
31462
|
+
* pulling in the full Component/Layout import chain (and so other
|
|
31463
|
+
* call sites can route through it without circular deps).
|
|
31464
|
+
*
|
|
31465
|
+
* Lookup order (the LAYOUT ITEM is the source of truth):
|
|
31466
|
+
* 1. EXACT match on `component` — covers the new scoped form
|
|
31467
|
+
* (`scope.package.X`) and any legacy `.dash.js` that already
|
|
31468
|
+
* set `config.id` to a scoped value.
|
|
31469
|
+
* 2. If `component` is bare (no dots) AND we have a packageId hint
|
|
31470
|
+
* on the layout item, build the scoped id and try that.
|
|
31471
|
+
* 3. Bare-name fallback: scan the map for any key ending in
|
|
31472
|
+
* `.${component}`. If exactly one matches, use it. If multiple
|
|
31473
|
+
* match (the collision case), prefer the one matching the
|
|
31474
|
+
* layout item's `packageId` / `_sourcePackage`; otherwise fall
|
|
31475
|
+
* through to the first match (deterministic, but also logs a
|
|
31476
|
+
* warning so callers can spot the ambiguity).
|
|
31477
|
+
*
|
|
31478
|
+
* Step (3) is the back-compat path for layouts authored before
|
|
31479
|
+
* scoped registration landed. New layouts ALWAYS resolve via step (1).
|
|
31480
|
+
*/
|
|
31481
|
+
function resolveComponentKey(componentMap, component, data) {
|
|
31482
|
+
if (!componentMap || !component) return null;
|
|
31483
|
+
if (component in componentMap) return component;
|
|
31484
|
+
if (typeof component !== "string") return null;
|
|
31485
|
+
if (component.includes(".")) return null;
|
|
31486
|
+
var packageId = (data === null || data === void 0 ? void 0 : data.packageId) || (data === null || data === void 0 ? void 0 : data._sourcePackage) || (data === null || data === void 0 ? void 0 : data.packageName) || null;
|
|
31487
|
+
if (packageId) {
|
|
31488
|
+
var scoped = makeScopedComponentId(packageId, component);
|
|
31489
|
+
if (scoped in componentMap) return scoped;
|
|
31490
|
+
}
|
|
31491
|
+
var suffix = ".".concat(component);
|
|
31492
|
+
var matches = Object.keys(componentMap).filter(function (k) {
|
|
31493
|
+
return k.endsWith(suffix);
|
|
31494
|
+
});
|
|
31495
|
+
if (matches.length === 0) return null;
|
|
31496
|
+
if (matches.length === 1) return matches[0];
|
|
31497
|
+
if (packageId) {
|
|
31498
|
+
var target = makeScopedComponentId(packageId, component);
|
|
31499
|
+
if (matches.includes(target)) return target;
|
|
31500
|
+
}
|
|
31501
|
+
return matches[0];
|
|
31502
|
+
}
|
|
31503
|
+
|
|
31356
31504
|
var _componentMap = {};
|
|
31357
31505
|
var _containerComponent = null;
|
|
31358
31506
|
var _gridContainerComponent = null;
|
|
@@ -31389,6 +31537,25 @@ var ComponentManager = {
|
|
|
31389
31537
|
componentMap: function componentMap() {
|
|
31390
31538
|
return _componentMap;
|
|
31391
31539
|
},
|
|
31540
|
+
/**
|
|
31541
|
+
* Resolve a component name to its registered config — single source
|
|
31542
|
+
* of truth for every render-path lookup. Routes through
|
|
31543
|
+
* `resolveComponentKey` so legacy bare names (`"ProspectWorkspace"`)
|
|
31544
|
+
* still find their registered scoped counterpart
|
|
31545
|
+
* (`"ai-built.pipeline.ProspectWorkspace"`). Returns null when the
|
|
31546
|
+
* widget isn't registered. Pass the layout item as `data` to use
|
|
31547
|
+
* its `packageId` / `_sourcePackage` for disambiguation.
|
|
31548
|
+
*
|
|
31549
|
+
* @param {string} component
|
|
31550
|
+
* @param {object} [data]
|
|
31551
|
+
* @returns {object|null} the live registered config, or null
|
|
31552
|
+
*/
|
|
31553
|
+
resolve: function resolve(component, data) {
|
|
31554
|
+
var m = _componentMap;
|
|
31555
|
+
if (!m) return null;
|
|
31556
|
+
var key = resolveComponentKey(m, component, data);
|
|
31557
|
+
return key ? m[key] || null : null;
|
|
31558
|
+
},
|
|
31392
31559
|
/**
|
|
31393
31560
|
* The method for registering the widget into the Dashboard application
|
|
31394
31561
|
* This is a requirement for the widget to be included into the Dash
|
|
@@ -31457,15 +31624,18 @@ var ComponentManager = {
|
|
|
31457
31624
|
* @returns {Widget} the Widget in the component map
|
|
31458
31625
|
*/
|
|
31459
31626
|
getComponent: function getComponent(component) {
|
|
31627
|
+
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
31460
31628
|
try {
|
|
31461
31629
|
// console.log("get component");
|
|
31462
31630
|
if (component && this.componentMap()) {
|
|
31463
31631
|
if (ComponentManager.isLayoutContainer(component) === false) {
|
|
31464
31632
|
var m = this.componentMap();
|
|
31465
|
-
//
|
|
31466
|
-
|
|
31467
|
-
|
|
31468
|
-
|
|
31633
|
+
// Resolve through the scoped/bare lookup pipeline so layouts
|
|
31634
|
+
// authored under either format land at the same registry key.
|
|
31635
|
+
var resolvedKey = resolveComponentKey(m, component, data);
|
|
31636
|
+
var cmp = resolvedKey ? m[resolvedKey] : null;
|
|
31637
|
+
if (cmp !== null && cmp !== undefined) {
|
|
31638
|
+
cmp["componentName"] = resolvedKey;
|
|
31469
31639
|
return cmp;
|
|
31470
31640
|
}
|
|
31471
31641
|
} else {
|
|
@@ -31643,17 +31813,20 @@ var ComponentManager = {
|
|
|
31643
31813
|
|
|
31644
31814
|
// get the component configuration from the map
|
|
31645
31815
|
var components = this.map();
|
|
31646
|
-
|
|
31816
|
+
var resolvedKey = resolveComponentKey(components, component, data);
|
|
31817
|
+
if (resolvedKey && resolvedKey in components) {
|
|
31647
31818
|
// let c = deepCopy(components['component']);
|
|
31648
31819
|
|
|
31649
31820
|
// we have to make sure that we remove the component if this is a context
|
|
31650
31821
|
|
|
31651
|
-
var tempComponent = components[
|
|
31822
|
+
var tempComponent = components[resolvedKey];
|
|
31652
31823
|
delete tempComponent["component"];
|
|
31653
31824
|
var c = JSON.parse(JSON.stringify(tempComponent));
|
|
31654
31825
|
|
|
31655
|
-
//
|
|
31656
|
-
|
|
31826
|
+
// Carry the canonical scoped id forward so callers (LayoutModel,
|
|
31827
|
+
// ComponentManager.getComponent) can rewrite layout items'
|
|
31828
|
+
// `component` to the scoped form on first load.
|
|
31829
|
+
c["component"] = resolvedKey;
|
|
31657
31830
|
|
|
31658
31831
|
// if no userConfig key. let's add it for the next step
|
|
31659
31832
|
if ("userConfig" in c === false) {
|
|
@@ -51289,14 +51462,17 @@ var NotificationsSection = function NotificationsSection(_ref) {
|
|
|
51289
51462
|
});
|
|
51290
51463
|
}, []);
|
|
51291
51464
|
|
|
51292
|
-
// Collect all widget instances with notifications from workspaces
|
|
51465
|
+
// Collect all widget instances with notifications from workspaces.
|
|
51466
|
+
// Route through `ComponentManager.resolve` so a legacy layout
|
|
51467
|
+
// referencing a bare component name still finds its registered
|
|
51468
|
+
// scoped form (post-v0.1.432). Direct `componentMap[item.component]`
|
|
51469
|
+
// returns undefined for bare names after the migration.
|
|
51293
51470
|
var widgetInstances = [];
|
|
51294
|
-
var componentMap = ComponentManager.componentMap() || {};
|
|
51295
51471
|
workspaces.forEach(function (ws) {
|
|
51296
51472
|
var items = flattenLayout(ws.layout);
|
|
51297
51473
|
items.forEach(function (item) {
|
|
51298
51474
|
var _config$notifications;
|
|
51299
|
-
var config =
|
|
51475
|
+
var config = ComponentManager.resolve(item.component, item);
|
|
51300
51476
|
if ((config === null || config === void 0 || (_config$notifications = config.notifications) === null || _config$notifications === void 0 ? void 0 : _config$notifications.length) > 0) {
|
|
51301
51477
|
var _item$userPrefs;
|
|
51302
51478
|
widgetInstances.push({
|
|
@@ -53513,7 +53689,13 @@ var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
|
|
|
53513
53689
|
_useDrag2 = _slicedToArray(_useDrag, 2),
|
|
53514
53690
|
isDragging = _useDrag2[0].isDragging,
|
|
53515
53691
|
drag = _useDrag2[1];
|
|
53516
|
-
|
|
53692
|
+
|
|
53693
|
+
// Route through getUserConfigurableProviders — drops the `api`
|
|
53694
|
+
// class AND null/undefined entries that occasionally appear in
|
|
53695
|
+
// sparse `widget.providers` arrays. Without this, a single null
|
|
53696
|
+
// slot crashes the whole sidebar with `Cannot read properties of
|
|
53697
|
+
// null (reading 'type')`.
|
|
53698
|
+
var providerTypes = getUserConfigurableProviders(widget.providers).map(function (p) {
|
|
53517
53699
|
return p.type;
|
|
53518
53700
|
});
|
|
53519
53701
|
var eventCount = (widget.events || []).length;
|
|
@@ -54087,12 +54269,18 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
|
|
|
54087
54269
|
}))).sort();
|
|
54088
54270
|
}, [allWidgets]);
|
|
54089
54271
|
|
|
54090
|
-
// Derive unique provider types for dropdown
|
|
54272
|
+
// Derive unique provider types for the filter dropdown. Route
|
|
54273
|
+
// through getUserConfigurableProviders so a single null entry in
|
|
54274
|
+
// any widget's `providers` array doesn't crash the whole sidebar
|
|
54275
|
+
// (it filters non-objects AND drops the `api` provider class that
|
|
54276
|
+
// isn't user-configurable). Observed prod crash:
|
|
54277
|
+
// `TypeError: Cannot read properties of null (reading 'type')` →
|
|
54278
|
+
// unmounted WidgetSidebar via React error boundary.
|
|
54091
54279
|
var uniqueProviders = useMemo(function () {
|
|
54092
54280
|
var types = new Set();
|
|
54093
54281
|
allWidgets.forEach(function (_ref7) {
|
|
54094
54282
|
var widget = _ref7.widget;
|
|
54095
|
-
return (widget
|
|
54283
|
+
return getUserConfigurableProviders(widget === null || widget === void 0 ? void 0 : widget.providers).forEach(function (p) {
|
|
54096
54284
|
return types.add(p.type);
|
|
54097
54285
|
});
|
|
54098
54286
|
});
|
|
@@ -54114,12 +54302,13 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
|
|
|
54114
54302
|
if (filterAuthor !== "all") {
|
|
54115
54303
|
if ((widget["package"] || widget.author || "Other") !== filterAuthor) return false;
|
|
54116
54304
|
}
|
|
54117
|
-
// Provider filter
|
|
54305
|
+
// Provider filter — same null-safety as `uniqueProviders` above.
|
|
54118
54306
|
if (filterProvider !== "all") {
|
|
54307
|
+
var configurable = getUserConfigurableProviders(widget === null || widget === void 0 ? void 0 : widget.providers);
|
|
54119
54308
|
if (filterProvider === "none") {
|
|
54120
|
-
if (
|
|
54309
|
+
if (configurable.length > 0) return false;
|
|
54121
54310
|
} else {
|
|
54122
|
-
if (!
|
|
54311
|
+
if (!configurable.some(function (p) {
|
|
54123
54312
|
return p.type === filterProvider;
|
|
54124
54313
|
})) return false;
|
|
54125
54314
|
}
|
|
@@ -57697,9 +57886,13 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
57697
57886
|
return getUnresolvedProviders({
|
|
57698
57887
|
workspace: workspaceSelected,
|
|
57699
57888
|
appProviders: (appContext === null || appContext === void 0 ? void 0 : appContext.providers) || {},
|
|
57889
|
+
// Use ComponentManager.config so a legacy layout referencing
|
|
57890
|
+
// a bare component name (`"PipelineKanban"`) still resolves
|
|
57891
|
+
// to its scoped registration. Direct `componentMap[name]`
|
|
57892
|
+
// returns undefined after the v0.1.432 scoped-IDs migration.
|
|
57700
57893
|
getWidgetRequirements: function getWidgetRequirements(name) {
|
|
57701
|
-
var _ComponentManager$
|
|
57702
|
-
return name && ((_ComponentManager$
|
|
57894
|
+
var _ComponentManager$con;
|
|
57895
|
+
return name && ((_ComponentManager$con = ComponentManager.config(name)) === null || _ComponentManager$con === void 0 ? void 0 : _ComponentManager$con.providers) || [];
|
|
57703
57896
|
}
|
|
57704
57897
|
});
|
|
57705
57898
|
}, [workspaceSelected, appContext === null || appContext === void 0 ? void 0 : appContext.providers]);
|
|
@@ -58701,13 +58894,18 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
58701
58894
|
isOpen: isConfigModalOpen,
|
|
58702
58895
|
setIsOpen: setIsConfigModalOpen,
|
|
58703
58896
|
workspace: workspaceSelected,
|
|
58704
|
-
appProviders: (appContext === null || appContext === void 0 ? void 0 : appContext.providers) || {}
|
|
58897
|
+
appProviders: (appContext === null || appContext === void 0 ? void 0 : appContext.providers) || {}
|
|
58898
|
+
// Use ComponentManager.config so legacy bare component
|
|
58899
|
+
// refs in `workspaceSelected.layout` still resolve to
|
|
58900
|
+
// their registered scoped form (post-v0.1.432). Direct
|
|
58901
|
+
// `componentMap[name]` returns undefined for those.
|
|
58902
|
+
,
|
|
58705
58903
|
getWidgetRequirements: function getWidgetRequirements(name) {
|
|
58706
|
-
var _ComponentManager$
|
|
58707
|
-
return name && ((_ComponentManager$
|
|
58904
|
+
var _ComponentManager$con2;
|
|
58905
|
+
return name && ((_ComponentManager$con2 = ComponentManager.config(name)) === null || _ComponentManager$con2 === void 0 ? void 0 : _ComponentManager$con2.providers) || [];
|
|
58708
58906
|
},
|
|
58709
58907
|
getWidgetConfig: function getWidgetConfig(name) {
|
|
58710
|
-
return name && ComponentManager.
|
|
58908
|
+
return name && ComponentManager.config(name) || null;
|
|
58711
58909
|
},
|
|
58712
58910
|
onSaveBindings: handleBulkProviderBindings,
|
|
58713
58911
|
onSaveListeners: handleBulkListenerBindings,
|
|
@@ -62087,5 +62285,5 @@ function MarkdownFormEditor(_ref8) {
|
|
|
62087
62285
|
|
|
62088
62286
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
62089
62287
|
|
|
62090
|
-
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ChatCore, ChatInput, ChatMessages, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardActionsApi, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWizardModal, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, MarkdownFormEditor, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MessageBubble, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PageTabBar, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, PanelEditItemProviders, PinnedSidebar, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, StreamingText, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, ToolCallBlock, ToolSelector, WELCOME_STORAGE_KEY, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetNotFound, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, WorkspaceScopeContext, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, moveWidgetAcrossContainers, numChildrenForLayout, parse, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, serialize, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
|
|
62288
|
+
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ChatCore, ChatInput, ChatMessages, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardActionsApi, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWizardModal, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, MarkdownFormEditor, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MessageBubble, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PageTabBar, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, PanelEditItemProviders, PinnedSidebar, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, StreamingText, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, ToolCallBlock, ToolSelector, WELCOME_STORAGE_KEY, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetNotFound, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, WorkspaceScopeContext, addChildToLayoutItem, addItemToItemLayout, bareComponentName, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, makeScopedComponentId, mcpJsonToFormState, moveWidgetAcrossContainers, numChildrenForLayout, parse, parseScopedComponentId, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, serialize, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
|
|
62091
62289
|
//# sourceMappingURL=index.esm.js.map
|