@burdenoff/microfe-bigconsole 2026.1012.4 → 2026.1012.6
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/bigconsole/BigConsoleRoutes.js +149 -140
- package/dist/bigconsole/assistant/assistantProduct.js +4 -1
- package/dist/bigconsole/assistant/displayCopy.d.ts +32 -0
- package/dist/bigconsole/assistant/pageContext.d.ts +14 -0
- package/dist/bigconsole/assistant/pageContext.js +6 -1
- package/dist/bigconsole/assistant/pageControls.d.ts +81 -0
- package/dist/bigconsole/assistant/pageControls.js +169 -0
- package/dist/bigconsole/assistant/previewControl.d.ts +16 -0
- package/dist/bigconsole/assistant/previewControl.js +10 -0
- package/dist/bigconsole/assistant/recordAdapters.js +27 -26
- package/dist/bigconsole/assistant/usePreviewControl.d.ts +2 -0
- package/dist/bigconsole/assistant/usePreviewControl.js +20 -0
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +9 -9
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
- package/dist/bigconsole/components/common/SortBySelect.d.ts +11 -0
- package/dist/bigconsole/components/common/SortBySelect.js +29 -0
- package/dist/bigconsole/components/common/index.d.ts +1 -0
- package/dist/bigconsole/components/common/index.js +1 -0
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +15 -15
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +153 -153
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +134 -134
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +46 -46
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
- package/dist/bigconsole/components/datasink/DataSinkCard.js +51 -50
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
- package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
- package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
- package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
- package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +77 -76
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +96 -95
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +507 -499
- package/dist/bigconsole/components/widgets/advanced/AdvancedWidgetConfig.js +14 -14
- package/dist/bigconsole/components/widgets/advanced/AdvancedWidgets.js +68 -67
- package/dist/bigconsole/components/widgets/advanced/boxPlotDescription.d.ts +7 -0
- package/dist/bigconsole/components/widgets/advanced/boxPlotDescription.js +12 -0
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
- package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
- package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
- package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
- package/dist/bigconsole/constants/backendErrors.js +94 -0
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +67 -67
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +14 -0
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +32 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +23 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +138 -113
- package/dist/bigconsole/hooks/useDrilldown.js +3 -3
- package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
- package/dist/bigconsole/pages/AdminPage.js +130 -130
- package/dist/bigconsole/pages/DashboardBuilderPage.js +72 -60
- package/dist/bigconsole/pages/DashboardViewPage.js +244 -221
- package/dist/bigconsole/pages/DashboardsPage.js +269 -221
- package/dist/bigconsole/pages/DataParsersPage.js +180 -157
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +62 -55
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +252 -234
- package/dist/bigconsole/pages/DataSinkViewPage.js +1 -1
- package/dist/bigconsole/pages/DataSinksPage.js +335 -299
- package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
- package/dist/bigconsole/pages/InsightsPage.js +279 -265
- package/dist/bigconsole/pages/OverviewPage.js +47 -47
- package/dist/bigconsole/pages/ParserBuilderPage.js +229 -213
- package/dist/bigconsole/pages/ParserViewPage.js +97 -97
- package/dist/bigconsole/pages/PipelineBuilderPage.js +256 -214
- package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
- package/dist/bigconsole/pages/PipelinesPage.js +107 -88
- package/dist/bigconsole/pages/SettingsPage.js +179 -173
- package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
- package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +69 -69
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
- package/dist/bigconsole/store/widgetStore.d.ts +12 -0
- package/dist/bigconsole/store/widgetStore.js +3 -1
- package/dist/bigconsole/utils/backendError.d.ts +18 -0
- package/dist/bigconsole/utils/backendError.js +42 -0
- package/dist/bigconsole/utils/dashboardList.d.ts +28 -0
- package/dist/bigconsole/utils/dashboardList.js +15 -0
- package/dist/bigconsole/utils/dataSinkList.d.ts +15 -0
- package/dist/bigconsole/utils/dataSinkList.js +15 -0
- package/dist/bigconsole/utils/formDirty.d.ts +82 -0
- package/dist/bigconsole/utils/formDirty.js +21 -0
- package/dist/bigconsole/utils/insightsDraft.d.ts +29 -0
- package/dist/bigconsole/utils/insightsDraft.js +8 -0
- package/dist/bigconsole/utils/layoutBaseline.d.ts +130 -0
- package/dist/bigconsole/utils/layoutBaseline.js +96 -0
- package/dist/bigconsole/utils/listSort.d.ts +80 -0
- package/dist/bigconsole/utils/listSort.js +85 -0
- package/dist/bigconsole/utils/widgetFormDirty.d.ts +16 -0
- package/dist/bigconsole/utils/widgetFormDirty.js +13 -0
- package/dist/bigconsole/workflowOpen.js +15 -14
- package/package.json +3 -3
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
//#region src/bigconsole/utils/layoutBaseline.ts
|
|
2
|
+
var e = {
|
|
3
|
+
x: 0,
|
|
4
|
+
y: 0,
|
|
5
|
+
w: 4,
|
|
6
|
+
h: 4
|
|
7
|
+
}, t = (e) => typeof e == "number" && Number.isFinite(e) ? e : void 0, n = (e) => Number.isFinite(e) ? e : 0;
|
|
8
|
+
function r(e, n, r) {
|
|
9
|
+
return t(e) ?? t(n) ?? r;
|
|
10
|
+
}
|
|
11
|
+
var i = (e, t) => e < t ? -1 : +(e > t);
|
|
12
|
+
function a(e) {
|
|
13
|
+
let t = /* @__PURE__ */ new Map();
|
|
14
|
+
for (let r of e) t.set(r.id, {
|
|
15
|
+
x: n(r.x),
|
|
16
|
+
y: n(r.y),
|
|
17
|
+
w: n(r.w),
|
|
18
|
+
h: n(r.h)
|
|
19
|
+
});
|
|
20
|
+
return new Map([...t.entries()].sort(([e], [t]) => i(e, t)));
|
|
21
|
+
}
|
|
22
|
+
function o(t) {
|
|
23
|
+
let n = [];
|
|
24
|
+
for (let i of t) n.push({
|
|
25
|
+
id: i.id,
|
|
26
|
+
x: r(i.position?.x, i.positionX, e.x),
|
|
27
|
+
y: r(i.position?.y, i.positionY, e.y),
|
|
28
|
+
w: r(i.position?.width, i.positionWidth, e.w),
|
|
29
|
+
h: r(i.position?.height, i.positionHeight, e.h)
|
|
30
|
+
});
|
|
31
|
+
return a(n);
|
|
32
|
+
}
|
|
33
|
+
function s(t) {
|
|
34
|
+
return t.map((t) => ({
|
|
35
|
+
id: t.id,
|
|
36
|
+
x: r(t.position.x, void 0, e.x),
|
|
37
|
+
y: r(t.position.y, void 0, e.y),
|
|
38
|
+
w: r(t.position.width, void 0, e.w),
|
|
39
|
+
h: r(t.position.height, void 0, e.h)
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
function c(e, t) {
|
|
43
|
+
if (e.size !== t.size) return !1;
|
|
44
|
+
for (let [n, r] of e) {
|
|
45
|
+
let e = t.get(n);
|
|
46
|
+
if (!e || r.x !== e.x || r.y !== e.y || r.w !== e.w || r.h !== e.h) return !1;
|
|
47
|
+
}
|
|
48
|
+
return !0;
|
|
49
|
+
}
|
|
50
|
+
function l(e, t) {
|
|
51
|
+
return t !== null && !c(e, t);
|
|
52
|
+
}
|
|
53
|
+
var u = {
|
|
54
|
+
baseline: null,
|
|
55
|
+
frozen: !1,
|
|
56
|
+
seenRevision: null
|
|
57
|
+
};
|
|
58
|
+
function d(e, t) {
|
|
59
|
+
switch (t.type) {
|
|
60
|
+
case "reset": return u;
|
|
61
|
+
case "observe": {
|
|
62
|
+
if (e.baseline === null) return {
|
|
63
|
+
baseline: t.layout,
|
|
64
|
+
frozen: !1,
|
|
65
|
+
seenRevision: t.editRevision
|
|
66
|
+
};
|
|
67
|
+
let n = t.editRevision !== e.seenRevision;
|
|
68
|
+
return e.frozen ? n ? {
|
|
69
|
+
...e,
|
|
70
|
+
seenRevision: t.editRevision
|
|
71
|
+
} : e : n ? {
|
|
72
|
+
baseline: e.baseline,
|
|
73
|
+
frozen: !0,
|
|
74
|
+
seenRevision: t.editRevision
|
|
75
|
+
} : c(t.layout, e.baseline) ? e : {
|
|
76
|
+
baseline: t.layout,
|
|
77
|
+
frozen: !1,
|
|
78
|
+
seenRevision: t.editRevision
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
case "saved": return e.baseline === null ? {
|
|
82
|
+
baseline: t.layout,
|
|
83
|
+
frozen: !1,
|
|
84
|
+
seenRevision: t.editRevision
|
|
85
|
+
} : {
|
|
86
|
+
baseline: t.layout,
|
|
87
|
+
frozen: e.seenRevision !== null && e.seenRevision > t.editRevision,
|
|
88
|
+
seenRevision: e.seenRevision
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function f(e, t) {
|
|
93
|
+
return e.frozen && l(t, e.baseline);
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { u as INITIAL_LAYOUT_BASELINE, f as isLayoutBaselineDirty, o as layoutFromWidgets, s as layoutItemsFromPositionUpdates, a as normaliseLayout, d as reduceLayoutBaseline };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "Sort by" model for BigConsole list pages (BOFF-8679).
|
|
3
|
+
*
|
|
4
|
+
* ★ One definition of the sort values, the comparator and the option labels, so
|
|
5
|
+
* the visible `SortBySelect`, the page's own list pipeline and the assistant's
|
|
6
|
+
* page-control adapter (`assistant/pageControls.ts`) cannot disagree: a person
|
|
7
|
+
* who picks "Name Z–A" from the menu and a person who says "sort by name
|
|
8
|
+
* descending" set the SAME state and get the SAME list.
|
|
9
|
+
*
|
|
10
|
+
* Pure: no React, no DOM, no i18n provider (labels come in through `Tr`).
|
|
11
|
+
*
|
|
12
|
+
* Only fields the list data really carries are offered:
|
|
13
|
+
* - Name: every dashboard has `name`; a data sink may have a null `name`, in
|
|
14
|
+
* which case its `key` is what the card and the table show, so that is what
|
|
15
|
+
* sorts.
|
|
16
|
+
* - Last updated: `updatedAt` on both. A row with no parseable date sorts last
|
|
17
|
+
* in both directions (it has no "age" to rank).
|
|
18
|
+
*/
|
|
19
|
+
export type ListSortValue = 'default' | 'name-asc' | 'name-desc' | 'updated-desc' | 'updated-asc';
|
|
20
|
+
export type ListSortField = 'name' | 'updated';
|
|
21
|
+
export type SortTr = (key: string, fallback: string) => string;
|
|
22
|
+
export interface ListSortOption {
|
|
23
|
+
value: ListSortValue;
|
|
24
|
+
label: string;
|
|
25
|
+
}
|
|
26
|
+
/** How a list item exposes the two sortable fields. */
|
|
27
|
+
export interface ListSortKeys<T> {
|
|
28
|
+
/** The text the row shows as its name. */
|
|
29
|
+
name: (item: T) => string;
|
|
30
|
+
/** ISO timestamp of the last update, if any. */
|
|
31
|
+
updatedAt: (item: T) => string | null | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** The i18n key and English source of every label used by the control. */
|
|
34
|
+
export declare const LIST_SORT_COPY: {
|
|
35
|
+
readonly label: {
|
|
36
|
+
readonly key: "bigconsole.listSort.label";
|
|
37
|
+
readonly en: "Sort by";
|
|
38
|
+
};
|
|
39
|
+
readonly default: {
|
|
40
|
+
readonly key: "bigconsole.listSort.default";
|
|
41
|
+
readonly en: "Default order";
|
|
42
|
+
};
|
|
43
|
+
readonly nameAsc: {
|
|
44
|
+
readonly key: "bigconsole.listSort.nameAsc";
|
|
45
|
+
readonly en: "Name A–Z";
|
|
46
|
+
};
|
|
47
|
+
readonly nameDesc: {
|
|
48
|
+
readonly key: "bigconsole.listSort.nameDesc";
|
|
49
|
+
readonly en: "Name Z–A";
|
|
50
|
+
};
|
|
51
|
+
readonly updatedDesc: {
|
|
52
|
+
readonly key: "bigconsole.listSort.updatedDesc";
|
|
53
|
+
readonly en: "Last updated: newest";
|
|
54
|
+
};
|
|
55
|
+
readonly updatedAsc: {
|
|
56
|
+
readonly key: "bigconsole.listSort.updatedAsc";
|
|
57
|
+
readonly en: "Last updated: oldest";
|
|
58
|
+
};
|
|
59
|
+
readonly fieldName: {
|
|
60
|
+
readonly key: "bigconsole.listSort.field.name";
|
|
61
|
+
readonly en: "Name";
|
|
62
|
+
};
|
|
63
|
+
readonly fieldUpdated: {
|
|
64
|
+
readonly key: "bigconsole.listSort.field.updated";
|
|
65
|
+
readonly en: "Last updated";
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* The list ordered by `value`. `default` returns the items in the order given
|
|
70
|
+
* (the page's own default order, untouched). The sort is stable: rows that tie
|
|
71
|
+
* keep their incoming order, so a re-sort never shuffles equal rows.
|
|
72
|
+
*/
|
|
73
|
+
export declare function sortList<T>(items: readonly T[], value: ListSortValue, keys: ListSortKeys<T>): T[];
|
|
74
|
+
/**
|
|
75
|
+
* The options the visible control lists, in its words. `withDefault` adds the
|
|
76
|
+
* "Default order" entry for a page whose natural order is not one of the four
|
|
77
|
+
* (Dashboards: the server's order). A page whose default IS one of them
|
|
78
|
+
* (Data Sinks: newest first) omits it and starts on that value.
|
|
79
|
+
*/
|
|
80
|
+
export declare function listSortOptions(tr: SortTr, withDefault: boolean): ListSortOption[];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
//#region src/bigconsole/utils/listSort.ts
|
|
2
|
+
var e = {
|
|
3
|
+
label: {
|
|
4
|
+
key: "bigconsole.listSort.label",
|
|
5
|
+
en: "Sort by"
|
|
6
|
+
},
|
|
7
|
+
default: {
|
|
8
|
+
key: "bigconsole.listSort.default",
|
|
9
|
+
en: "Default order"
|
|
10
|
+
},
|
|
11
|
+
nameAsc: {
|
|
12
|
+
key: "bigconsole.listSort.nameAsc",
|
|
13
|
+
en: "Name A–Z"
|
|
14
|
+
},
|
|
15
|
+
nameDesc: {
|
|
16
|
+
key: "bigconsole.listSort.nameDesc",
|
|
17
|
+
en: "Name Z–A"
|
|
18
|
+
},
|
|
19
|
+
updatedDesc: {
|
|
20
|
+
key: "bigconsole.listSort.updatedDesc",
|
|
21
|
+
en: "Last updated: newest"
|
|
22
|
+
},
|
|
23
|
+
updatedAsc: {
|
|
24
|
+
key: "bigconsole.listSort.updatedAsc",
|
|
25
|
+
en: "Last updated: oldest"
|
|
26
|
+
},
|
|
27
|
+
fieldName: {
|
|
28
|
+
key: "bigconsole.listSort.field.name",
|
|
29
|
+
en: "Name"
|
|
30
|
+
},
|
|
31
|
+
fieldUpdated: {
|
|
32
|
+
key: "bigconsole.listSort.field.updated",
|
|
33
|
+
en: "Last updated"
|
|
34
|
+
}
|
|
35
|
+
}, t = new Intl.Collator(void 0, {
|
|
36
|
+
sensitivity: "base",
|
|
37
|
+
numeric: !0
|
|
38
|
+
});
|
|
39
|
+
function n(e) {
|
|
40
|
+
if (!e) return null;
|
|
41
|
+
let t = new Date(e).getTime();
|
|
42
|
+
return Number.isNaN(t) ? null : t;
|
|
43
|
+
}
|
|
44
|
+
function r(e, r, i) {
|
|
45
|
+
let a = [...e];
|
|
46
|
+
switch (r) {
|
|
47
|
+
case "default": return a;
|
|
48
|
+
case "name-asc": return a.sort((e, n) => t.compare(i.name(e), i.name(n)));
|
|
49
|
+
case "name-desc": return a.sort((e, n) => t.compare(i.name(n), i.name(e)));
|
|
50
|
+
case "updated-desc":
|
|
51
|
+
case "updated-asc": {
|
|
52
|
+
let e = r === "updated-desc" ? -1 : 1;
|
|
53
|
+
return a.sort((t, r) => {
|
|
54
|
+
let a = n(i.updatedAt(t)), o = n(i.updatedAt(r));
|
|
55
|
+
return a === null && o === null ? 0 : a === null ? 1 : o === null ? -1 : (a - o) * e;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function i(t, n) {
|
|
61
|
+
let r = [
|
|
62
|
+
{
|
|
63
|
+
value: "name-asc",
|
|
64
|
+
label: t(e.nameAsc.key, e.nameAsc.en)
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
value: "name-desc",
|
|
68
|
+
label: t(e.nameDesc.key, e.nameDesc.en)
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
value: "updated-desc",
|
|
72
|
+
label: t(e.updatedDesc.key, e.updatedDesc.en)
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
value: "updated-asc",
|
|
76
|
+
label: t(e.updatedAsc.key, e.updatedAsc.en)
|
|
77
|
+
}
|
|
78
|
+
];
|
|
79
|
+
return n ? [{
|
|
80
|
+
value: "default",
|
|
81
|
+
label: t(e.default.key, e.default.en)
|
|
82
|
+
}, ...r] : r;
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { e as LIST_SORT_COPY, i as listSortOptions, r as sortList };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** True when `form` differs by value from `baseline`. Either side missing is clean. */
|
|
2
|
+
export declare function isWidgetFormEdited<T>(form: T | null | undefined, baseline: T | null | undefined): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Adds an inferred DataSink binding to a form that is bound to `parserId` and has none.
|
|
5
|
+
*
|
|
6
|
+
* The widget inspector infers an absent `dataSinkId` from the parser's input sink key once the
|
|
7
|
+
* parser resolves (AI-created widgets bind a parser without duplicating its input sink id). That
|
|
8
|
+
* is the panel filling in what the widget already means, not an edit by the person. It is
|
|
9
|
+
* applied to the form AND to the baseline with this one function, so the value compare of
|
|
10
|
+
* `isWidgetFormEdited` reads clean. Returns the same object when nothing applies, so a state
|
|
11
|
+
* updater using it does not trigger a re-render.
|
|
12
|
+
*/
|
|
13
|
+
export declare function withInferredDataSink<T extends {
|
|
14
|
+
parserId?: string | null;
|
|
15
|
+
dataSinkId?: string | null;
|
|
16
|
+
}>(form: T | null | undefined, parserId: string, dataSinkId: string): T | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isDirty as e } from "./formDirty.js";
|
|
2
|
+
//#region src/bigconsole/utils/widgetFormDirty.ts
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
return t == null || n == null ? !1 : e(t, n);
|
|
5
|
+
}
|
|
6
|
+
function n(e, t, n) {
|
|
7
|
+
return e == null ? null : e.parserId !== t || e.dataSinkId ? e : {
|
|
8
|
+
...e,
|
|
9
|
+
dataSinkId: n
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { t as isWidgetFormEdited, n as withInferredDataSink };
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { WorkflowDefinitionExistsDocument as e } from "../generated/wspace-operations.js";
|
|
2
2
|
import { BOOTSTRAP_RETRY_DELAY_MS as t } from "./constants.js";
|
|
3
|
+
import { hasGraphQLErrorCode as n } from "./utils/backendError.js";
|
|
3
4
|
//#region src/bigconsole/workflowOpen.ts
|
|
4
|
-
var
|
|
5
|
-
function
|
|
5
|
+
var r = new Set(["NOT_FOUND"]), i = { createWorkflow: !0 }, a = { state: i };
|
|
6
|
+
function o(e) {
|
|
6
7
|
return typeof e == "object" && !!e && e.createWorkflow === !0;
|
|
7
8
|
}
|
|
8
|
-
function
|
|
9
|
+
function s(e) {
|
|
9
10
|
return { query: (t) => e.query(t) };
|
|
10
11
|
}
|
|
11
|
-
async function
|
|
12
|
+
async function c(t, i) {
|
|
12
13
|
try {
|
|
13
|
-
let
|
|
14
|
+
let a = await t.query({
|
|
14
15
|
query: e,
|
|
15
|
-
variables: { workflowKey:
|
|
16
|
+
variables: { workflowKey: i },
|
|
16
17
|
fetchPolicy: "network-only"
|
|
17
18
|
});
|
|
18
|
-
return
|
|
19
|
-
} catch {
|
|
20
|
-
return "error";
|
|
19
|
+
return a.error ? n(a.error, r) ? "absent" : "error" : a.data?.workflowDefinition ? "found" : "absent";
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return n(e, r) ? "absent" : "error";
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
var
|
|
24
|
-
async function
|
|
25
|
-
return await
|
|
24
|
+
var l = (e) => new Promise((t) => setTimeout(t, e));
|
|
25
|
+
async function u(e, n, { retryDelayMs: r = t, sleep: i = l } = {}) {
|
|
26
|
+
return await c(e, n) === "found" ? "found" : (await i(r), c(e, n));
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function d({ key: e, createIntent: t, verifiedKey: n, absentKey: r, failedKey: i }) {
|
|
28
29
|
return t || n === e ? "builder" : r === e ? "not-found" : i === e ? "failed" : "checking";
|
|
29
30
|
}
|
|
30
31
|
//#endregion
|
|
31
|
-
export {
|
|
32
|
+
export { i as CREATE_WORKFLOW_STATE, a as NEW_WORKFLOW_NAV, d as decideWorkflowOpenView, o as isCreateIntent, s as toLookupClient, u as verifyWorkflowKey };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-bigconsole",
|
|
3
|
-
"version": "2026.1012.
|
|
3
|
+
"version": "2026.1012.6",
|
|
4
4
|
"description": "BigConsole - AI-powered analytics and dashboard platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@apollo/client": "^4.0.11",
|
|
57
|
-
"@burdenoff/fe-libs": "2026.
|
|
57
|
+
"@burdenoff/fe-libs": "2026.1011.4",
|
|
58
58
|
"@burdenoff/fluidgrids-fe-sdk": "2026.731.4",
|
|
59
59
|
"@iconify/react": "^6.0.2",
|
|
60
60
|
"@monaco-editor/react": "^4.7.0",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"zustand": "^5.0.3"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@burdenoff/fe-libs": "2026.
|
|
92
|
+
"@burdenoff/fe-libs": "2026.1011.4",
|
|
93
93
|
"@burdenoff/fluidgrids-fe-sdk": "2026.731.4",
|
|
94
94
|
"@eslint/js": "^10.0.1",
|
|
95
95
|
"@graphql-codegen/add": "^5.0.0",
|