medusa-stats 1.0.9 → 1.0.10
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/.medusa/server/src/admin/index.js +105 -105
- package/.medusa/server/src/admin/index.mjs +105 -105
- package/.medusa/server/src/loaders/statistics/index.js +1 -1
- package/README.md +317 -310
- package/package.json +92 -88
|
@@ -7209,103 +7209,6 @@ const AlertsPage = () => {
|
|
|
7209
7209
|
const config$4 = adminSdk.defineRouteConfig({
|
|
7210
7210
|
label: "Alerts"
|
|
7211
7211
|
});
|
|
7212
|
-
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
7213
|
-
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
7214
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7215
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7216
|
-
ui.Table.Row,
|
|
7217
|
-
{
|
|
7218
|
-
className: "cursor-pointer",
|
|
7219
|
-
onClick: onToggle,
|
|
7220
|
-
children: [
|
|
7221
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
7222
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
7223
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
7224
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
7225
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
7226
|
-
] })
|
|
7227
|
-
] }) }),
|
|
7228
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
7229
|
-
statistics.length || 0,
|
|
7230
|
-
" available"
|
|
7231
|
-
] }) }),
|
|
7232
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
7233
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
7234
|
-
]
|
|
7235
|
-
}
|
|
7236
|
-
),
|
|
7237
|
-
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 py-4", children: [
|
|
7238
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
7239
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7240
|
-
"div",
|
|
7241
|
-
{
|
|
7242
|
-
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
7243
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
7244
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
7245
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
7246
|
-
stat.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
7247
|
-
] }) })
|
|
7248
|
-
},
|
|
7249
|
-
stat.id
|
|
7250
|
-
)) })
|
|
7251
|
-
] }) }) })
|
|
7252
|
-
] });
|
|
7253
|
-
};
|
|
7254
|
-
const LoadingRow = () => /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
7255
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
7256
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
7257
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
7258
|
-
] }) }),
|
|
7259
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
7260
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
7261
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
7262
|
-
] });
|
|
7263
|
-
const ProvidersPage = () => {
|
|
7264
|
-
const [expandedRows, setExpandedRows] = React.useState(/* @__PURE__ */ new Set());
|
|
7265
|
-
const { data, isLoading } = reactQuery.useQuery({
|
|
7266
|
-
queryFn: () => listProviders(),
|
|
7267
|
-
queryKey: [STATISTICS_QUERY, "providers"]
|
|
7268
|
-
});
|
|
7269
|
-
const providers = (data == null ? void 0 : data.providers) || [];
|
|
7270
|
-
const toggleRow = (providerId) => {
|
|
7271
|
-
setExpandedRows((prev) => {
|
|
7272
|
-
const newSet = new Set(prev);
|
|
7273
|
-
if (newSet.has(providerId)) {
|
|
7274
|
-
newSet.delete(providerId);
|
|
7275
|
-
} else {
|
|
7276
|
-
newSet.add(providerId);
|
|
7277
|
-
}
|
|
7278
|
-
return newSet;
|
|
7279
|
-
});
|
|
7280
|
-
};
|
|
7281
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
7282
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { level: "h2", children: "Providers" }) }),
|
|
7283
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table, { children: [
|
|
7284
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
7285
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Provider" }),
|
|
7286
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Statistics" }),
|
|
7287
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Status" }),
|
|
7288
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, {})
|
|
7289
|
-
] }) }),
|
|
7290
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7291
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
7292
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
7293
|
-
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {})
|
|
7294
|
-
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7295
|
-
ProviderRow,
|
|
7296
|
-
{
|
|
7297
|
-
provider,
|
|
7298
|
-
isExpanded: expandedRows.has(provider.id),
|
|
7299
|
-
onToggle: () => toggleRow(provider.id)
|
|
7300
|
-
},
|
|
7301
|
-
provider.id
|
|
7302
|
-
)) : /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
7303
|
-
] }) })
|
|
7304
|
-
] });
|
|
7305
|
-
};
|
|
7306
|
-
const config$3 = adminSdk.defineRouteConfig({
|
|
7307
|
-
label: "Providers"
|
|
7308
|
-
});
|
|
7309
7212
|
const OptionSelector = ({
|
|
7310
7213
|
onSelect,
|
|
7311
7214
|
title,
|
|
@@ -8216,7 +8119,7 @@ const OptionEditDrawer = ({
|
|
|
8216
8119
|
] })
|
|
8217
8120
|
] }) });
|
|
8218
8121
|
};
|
|
8219
|
-
const config$
|
|
8122
|
+
const config$3 = adminSdk.defineRouteConfig({
|
|
8220
8123
|
label: "Option Presets",
|
|
8221
8124
|
icon: icons.ArrowDownTray
|
|
8222
8125
|
});
|
|
@@ -8545,6 +8448,103 @@ const PresetsPage = () => {
|
|
|
8545
8448
|
)
|
|
8546
8449
|
] });
|
|
8547
8450
|
};
|
|
8451
|
+
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
8452
|
+
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
8453
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8454
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8455
|
+
ui.Table.Row,
|
|
8456
|
+
{
|
|
8457
|
+
className: "cursor-pointer",
|
|
8458
|
+
onClick: onToggle,
|
|
8459
|
+
children: [
|
|
8460
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
8461
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
8462
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
8463
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
8464
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
8465
|
+
] })
|
|
8466
|
+
] }) }),
|
|
8467
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
8468
|
+
statistics.length || 0,
|
|
8469
|
+
" available"
|
|
8470
|
+
] }) }),
|
|
8471
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
8472
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
8473
|
+
]
|
|
8474
|
+
}
|
|
8475
|
+
),
|
|
8476
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 py-4", children: [
|
|
8477
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
8478
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8479
|
+
"div",
|
|
8480
|
+
{
|
|
8481
|
+
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
8482
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
8483
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
8484
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
8485
|
+
stat.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
8486
|
+
] }) })
|
|
8487
|
+
},
|
|
8488
|
+
stat.id
|
|
8489
|
+
)) })
|
|
8490
|
+
] }) }) })
|
|
8491
|
+
] });
|
|
8492
|
+
};
|
|
8493
|
+
const LoadingRow = () => /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
8494
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
8495
|
+
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
8496
|
+
/* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
8497
|
+
] }) }),
|
|
8498
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
8499
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
8500
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
8501
|
+
] });
|
|
8502
|
+
const ProvidersPage = () => {
|
|
8503
|
+
const [expandedRows, setExpandedRows] = React.useState(/* @__PURE__ */ new Set());
|
|
8504
|
+
const { data, isLoading } = reactQuery.useQuery({
|
|
8505
|
+
queryFn: () => listProviders(),
|
|
8506
|
+
queryKey: [STATISTICS_QUERY, "providers"]
|
|
8507
|
+
});
|
|
8508
|
+
const providers = (data == null ? void 0 : data.providers) || [];
|
|
8509
|
+
const toggleRow = (providerId) => {
|
|
8510
|
+
setExpandedRows((prev) => {
|
|
8511
|
+
const newSet = new Set(prev);
|
|
8512
|
+
if (newSet.has(providerId)) {
|
|
8513
|
+
newSet.delete(providerId);
|
|
8514
|
+
} else {
|
|
8515
|
+
newSet.add(providerId);
|
|
8516
|
+
}
|
|
8517
|
+
return newSet;
|
|
8518
|
+
});
|
|
8519
|
+
};
|
|
8520
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
8521
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { level: "h2", children: "Providers" }) }),
|
|
8522
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table, { children: [
|
|
8523
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Table.Row, { children: [
|
|
8524
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Provider" }),
|
|
8525
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Statistics" }),
|
|
8526
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, { children: "Status" }),
|
|
8527
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.HeaderCell, {})
|
|
8528
|
+
] }) }),
|
|
8529
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8530
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
8531
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {}),
|
|
8532
|
+
/* @__PURE__ */ jsxRuntime.jsx(LoadingRow, {})
|
|
8533
|
+
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8534
|
+
ProviderRow,
|
|
8535
|
+
{
|
|
8536
|
+
provider,
|
|
8537
|
+
isExpanded: expandedRows.has(provider.id),
|
|
8538
|
+
onToggle: () => toggleRow(provider.id)
|
|
8539
|
+
},
|
|
8540
|
+
provider.id
|
|
8541
|
+
)) : /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Row, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
8542
|
+
] }) })
|
|
8543
|
+
] });
|
|
8544
|
+
};
|
|
8545
|
+
const config$2 = adminSdk.defineRouteConfig({
|
|
8546
|
+
label: "Providers"
|
|
8547
|
+
});
|
|
8548
8548
|
const columnHelper = ui.createDataTableColumnHelper();
|
|
8549
8549
|
const getColumns = () => [
|
|
8550
8550
|
columnHelper.accessor("alert.name", {
|
|
@@ -10426,14 +10426,14 @@ const routeModule = {
|
|
|
10426
10426
|
Component: AlertsPage,
|
|
10427
10427
|
path: "/statistics/alerts"
|
|
10428
10428
|
},
|
|
10429
|
-
{
|
|
10430
|
-
Component: ProvidersPage,
|
|
10431
|
-
path: "/statistics/providers"
|
|
10432
|
-
},
|
|
10433
10429
|
{
|
|
10434
10430
|
Component: PresetsPage,
|
|
10435
10431
|
path: "/statistics/presets"
|
|
10436
10432
|
},
|
|
10433
|
+
{
|
|
10434
|
+
Component: ProvidersPage,
|
|
10435
|
+
path: "/statistics/providers"
|
|
10436
|
+
},
|
|
10437
10437
|
{
|
|
10438
10438
|
Component: AlertLogsPage,
|
|
10439
10439
|
path: "/statistics/alerts/logs"
|
|
@@ -10463,15 +10463,15 @@ const menuItemModule = {
|
|
|
10463
10463
|
translationNs: void 0
|
|
10464
10464
|
},
|
|
10465
10465
|
{
|
|
10466
|
-
label: config$
|
|
10467
|
-
icon: config$
|
|
10466
|
+
label: config$3.label,
|
|
10467
|
+
icon: config$3.icon,
|
|
10468
10468
|
path: "/statistics/presets",
|
|
10469
10469
|
nested: void 0,
|
|
10470
10470
|
rank: void 0,
|
|
10471
10471
|
translationNs: void 0
|
|
10472
10472
|
},
|
|
10473
10473
|
{
|
|
10474
|
-
label: config$
|
|
10474
|
+
label: config$2.label,
|
|
10475
10475
|
icon: void 0,
|
|
10476
10476
|
path: "/statistics/providers",
|
|
10477
10477
|
nested: void 0,
|
|
@@ -7205,103 +7205,6 @@ const AlertsPage = () => {
|
|
|
7205
7205
|
const config$4 = defineRouteConfig({
|
|
7206
7206
|
label: "Alerts"
|
|
7207
7207
|
});
|
|
7208
|
-
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
7209
|
-
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
7210
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7211
|
-
/* @__PURE__ */ jsxs(
|
|
7212
|
-
Table.Row,
|
|
7213
|
-
{
|
|
7214
|
-
className: "cursor-pointer",
|
|
7215
|
-
onClick: onToggle,
|
|
7216
|
-
children: [
|
|
7217
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
7218
|
-
/* @__PURE__ */ jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsx(Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
7219
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
7220
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
7221
|
-
/* @__PURE__ */ jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
7222
|
-
] })
|
|
7223
|
-
] }) }),
|
|
7224
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
7225
|
-
statistics.length || 0,
|
|
7226
|
-
" available"
|
|
7227
|
-
] }) }),
|
|
7228
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
7229
|
-
/* @__PURE__ */ jsx(Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsx(ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
7230
|
-
]
|
|
7231
|
-
}
|
|
7232
|
-
),
|
|
7233
|
-
isExpanded && /* @__PURE__ */ jsx(Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxs("div", { className: "space-y-2 py-4", children: [
|
|
7234
|
-
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
7235
|
-
/* @__PURE__ */ jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsx(
|
|
7236
|
-
"div",
|
|
7237
|
-
{
|
|
7238
|
-
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
7239
|
-
children: /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
7240
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
7241
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
7242
|
-
stat.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
7243
|
-
] }) })
|
|
7244
|
-
},
|
|
7245
|
-
stat.id
|
|
7246
|
-
)) })
|
|
7247
|
-
] }) }) })
|
|
7248
|
-
] });
|
|
7249
|
-
};
|
|
7250
|
-
const LoadingRow = () => /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
7251
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { children: [
|
|
7252
|
-
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
7253
|
-
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
7254
|
-
] }) }),
|
|
7255
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
7256
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
7257
|
-
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
7258
|
-
] });
|
|
7259
|
-
const ProvidersPage = () => {
|
|
7260
|
-
const [expandedRows, setExpandedRows] = useState(/* @__PURE__ */ new Set());
|
|
7261
|
-
const { data, isLoading } = useQuery({
|
|
7262
|
-
queryFn: () => listProviders(),
|
|
7263
|
-
queryKey: [STATISTICS_QUERY, "providers"]
|
|
7264
|
-
});
|
|
7265
|
-
const providers = (data == null ? void 0 : data.providers) || [];
|
|
7266
|
-
const toggleRow = (providerId) => {
|
|
7267
|
-
setExpandedRows((prev) => {
|
|
7268
|
-
const newSet = new Set(prev);
|
|
7269
|
-
if (newSet.has(providerId)) {
|
|
7270
|
-
newSet.delete(providerId);
|
|
7271
|
-
} else {
|
|
7272
|
-
newSet.add(providerId);
|
|
7273
|
-
}
|
|
7274
|
-
return newSet;
|
|
7275
|
-
});
|
|
7276
|
-
};
|
|
7277
|
-
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
7278
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Providers" }) }),
|
|
7279
|
-
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
7280
|
-
/* @__PURE__ */ jsx(Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
7281
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Provider" }),
|
|
7282
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Statistics" }),
|
|
7283
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Status" }),
|
|
7284
|
-
/* @__PURE__ */ jsx(Table.HeaderCell, {})
|
|
7285
|
-
] }) }),
|
|
7286
|
-
/* @__PURE__ */ jsx(Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7287
|
-
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
7288
|
-
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
7289
|
-
/* @__PURE__ */ jsx(LoadingRow, {})
|
|
7290
|
-
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsx(
|
|
7291
|
-
ProviderRow,
|
|
7292
|
-
{
|
|
7293
|
-
provider,
|
|
7294
|
-
isExpanded: expandedRows.has(provider.id),
|
|
7295
|
-
onToggle: () => toggleRow(provider.id)
|
|
7296
|
-
},
|
|
7297
|
-
provider.id
|
|
7298
|
-
)) : /* @__PURE__ */ jsx(Table.Row, { children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
7299
|
-
] }) })
|
|
7300
|
-
] });
|
|
7301
|
-
};
|
|
7302
|
-
const config$3 = defineRouteConfig({
|
|
7303
|
-
label: "Providers"
|
|
7304
|
-
});
|
|
7305
7208
|
const OptionSelector = ({
|
|
7306
7209
|
onSelect,
|
|
7307
7210
|
title,
|
|
@@ -8212,7 +8115,7 @@ const OptionEditDrawer = ({
|
|
|
8212
8115
|
] })
|
|
8213
8116
|
] }) });
|
|
8214
8117
|
};
|
|
8215
|
-
const config$
|
|
8118
|
+
const config$3 = defineRouteConfig({
|
|
8216
8119
|
label: "Option Presets",
|
|
8217
8120
|
icon: ArrowDownTray
|
|
8218
8121
|
});
|
|
@@ -8541,6 +8444,103 @@ const PresetsPage = () => {
|
|
|
8541
8444
|
)
|
|
8542
8445
|
] });
|
|
8543
8446
|
};
|
|
8447
|
+
const ProviderRow = ({ provider, isExpanded, onToggle }) => {
|
|
8448
|
+
const statistics = (provider == null ? void 0 : provider.statistics) || [];
|
|
8449
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8450
|
+
/* @__PURE__ */ jsxs(
|
|
8451
|
+
Table.Row,
|
|
8452
|
+
{
|
|
8453
|
+
className: "cursor-pointer",
|
|
8454
|
+
onClick: onToggle,
|
|
8455
|
+
children: [
|
|
8456
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 py-2", children: [
|
|
8457
|
+
/* @__PURE__ */ jsx("div", { className: "bg-ui-bg-subtle border rounded-lg p-2", children: /* @__PURE__ */ jsx(Adjustments, { className: "text-ui-fg-muted" }) }),
|
|
8458
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
8459
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium", children: provider.display_name || provider.id }),
|
|
8460
|
+
/* @__PURE__ */ jsx("p", { className: "text-ui-fg-muted text-xs", children: provider.id })
|
|
8461
|
+
] })
|
|
8462
|
+
] }) }),
|
|
8463
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-ui-fg-subtle", children: [
|
|
8464
|
+
statistics.length || 0,
|
|
8465
|
+
" available"
|
|
8466
|
+
] }) }),
|
|
8467
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(StatusBadge, { color: provider.is_enabled ? "green" : "grey", children: provider.is_enabled ? "Active" : "Disabled" }) }),
|
|
8468
|
+
/* @__PURE__ */ jsx(Table.Cell, { className: "text-right", children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpMini, { className: "inline-block text-ui-fg-muted" }) : /* @__PURE__ */ jsx(ChevronDownMini, { className: "inline-block text-ui-fg-muted" }) })
|
|
8469
|
+
]
|
|
8470
|
+
}
|
|
8471
|
+
),
|
|
8472
|
+
isExpanded && /* @__PURE__ */ jsx(Table.Row, { className: "bg-ui-bg-subtle hover:bg-ui-bg-subtle", children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, children: /* @__PURE__ */ jsxs("div", { className: "space-y-2 py-4", children: [
|
|
8473
|
+
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium mb-3", children: "Available Statistics" }),
|
|
8474
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-2", children: statistics.map((stat) => /* @__PURE__ */ jsx(
|
|
8475
|
+
"div",
|
|
8476
|
+
{
|
|
8477
|
+
className: "bg-ui-bg-base rounded-lg p-3 border border-ui-border-base",
|
|
8478
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
8479
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: stat.name || stat.id }),
|
|
8480
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-muted mt-1", children: stat.id }),
|
|
8481
|
+
stat.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-ui-fg-subtle mt-2", children: stat.description })
|
|
8482
|
+
] }) })
|
|
8483
|
+
},
|
|
8484
|
+
stat.id
|
|
8485
|
+
)) })
|
|
8486
|
+
] }) }) })
|
|
8487
|
+
] });
|
|
8488
|
+
};
|
|
8489
|
+
const LoadingRow = () => /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
8490
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsxs("div", { children: [
|
|
8491
|
+
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-48 mb-1" }),
|
|
8492
|
+
/* @__PURE__ */ jsx(Skeleton$1, { className: "h-4 w-32" })
|
|
8493
|
+
] }) }),
|
|
8494
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) }),
|
|
8495
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-20" }) }),
|
|
8496
|
+
/* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Skeleton$1, { className: "h-5 w-24" }) })
|
|
8497
|
+
] });
|
|
8498
|
+
const ProvidersPage = () => {
|
|
8499
|
+
const [expandedRows, setExpandedRows] = useState(/* @__PURE__ */ new Set());
|
|
8500
|
+
const { data, isLoading } = useQuery({
|
|
8501
|
+
queryFn: () => listProviders(),
|
|
8502
|
+
queryKey: [STATISTICS_QUERY, "providers"]
|
|
8503
|
+
});
|
|
8504
|
+
const providers = (data == null ? void 0 : data.providers) || [];
|
|
8505
|
+
const toggleRow = (providerId) => {
|
|
8506
|
+
setExpandedRows((prev) => {
|
|
8507
|
+
const newSet = new Set(prev);
|
|
8508
|
+
if (newSet.has(providerId)) {
|
|
8509
|
+
newSet.delete(providerId);
|
|
8510
|
+
} else {
|
|
8511
|
+
newSet.add(providerId);
|
|
8512
|
+
}
|
|
8513
|
+
return newSet;
|
|
8514
|
+
});
|
|
8515
|
+
};
|
|
8516
|
+
return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0 overflow-hidden", children: [
|
|
8517
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Providers" }) }),
|
|
8518
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
8519
|
+
/* @__PURE__ */ jsx(Table.Header, { className: "!border-none", children: /* @__PURE__ */ jsxs(Table.Row, { children: [
|
|
8520
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Provider" }),
|
|
8521
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Statistics" }),
|
|
8522
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, { children: "Status" }),
|
|
8523
|
+
/* @__PURE__ */ jsx(Table.HeaderCell, {})
|
|
8524
|
+
] }) }),
|
|
8525
|
+
/* @__PURE__ */ jsx(Table.Body, { className: "!border-none", children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8526
|
+
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
8527
|
+
/* @__PURE__ */ jsx(LoadingRow, {}),
|
|
8528
|
+
/* @__PURE__ */ jsx(LoadingRow, {})
|
|
8529
|
+
] }) : providers.length > 0 ? providers.map((provider) => /* @__PURE__ */ jsx(
|
|
8530
|
+
ProviderRow,
|
|
8531
|
+
{
|
|
8532
|
+
provider,
|
|
8533
|
+
isExpanded: expandedRows.has(provider.id),
|
|
8534
|
+
onToggle: () => toggleRow(provider.id)
|
|
8535
|
+
},
|
|
8536
|
+
provider.id
|
|
8537
|
+
)) : /* @__PURE__ */ jsx(Table.Row, { children: /* @__PURE__ */ jsx(Table.Cell, { ...{ colSpan: 4 }, className: "text-center text-ui-fg-muted ", children: "No providers found" }) }) })
|
|
8538
|
+
] }) })
|
|
8539
|
+
] });
|
|
8540
|
+
};
|
|
8541
|
+
const config$2 = defineRouteConfig({
|
|
8542
|
+
label: "Providers"
|
|
8543
|
+
});
|
|
8544
8544
|
const columnHelper = createDataTableColumnHelper();
|
|
8545
8545
|
const getColumns = () => [
|
|
8546
8546
|
columnHelper.accessor("alert.name", {
|
|
@@ -10422,14 +10422,14 @@ const routeModule = {
|
|
|
10422
10422
|
Component: AlertsPage,
|
|
10423
10423
|
path: "/statistics/alerts"
|
|
10424
10424
|
},
|
|
10425
|
-
{
|
|
10426
|
-
Component: ProvidersPage,
|
|
10427
|
-
path: "/statistics/providers"
|
|
10428
|
-
},
|
|
10429
10425
|
{
|
|
10430
10426
|
Component: PresetsPage,
|
|
10431
10427
|
path: "/statistics/presets"
|
|
10432
10428
|
},
|
|
10429
|
+
{
|
|
10430
|
+
Component: ProvidersPage,
|
|
10431
|
+
path: "/statistics/providers"
|
|
10432
|
+
},
|
|
10433
10433
|
{
|
|
10434
10434
|
Component: AlertLogsPage,
|
|
10435
10435
|
path: "/statistics/alerts/logs"
|
|
@@ -10459,15 +10459,15 @@ const menuItemModule = {
|
|
|
10459
10459
|
translationNs: void 0
|
|
10460
10460
|
},
|
|
10461
10461
|
{
|
|
10462
|
-
label: config$
|
|
10463
|
-
icon: config$
|
|
10462
|
+
label: config$3.label,
|
|
10463
|
+
icon: config$3.icon,
|
|
10464
10464
|
path: "/statistics/presets",
|
|
10465
10465
|
nested: void 0,
|
|
10466
10466
|
rank: void 0,
|
|
10467
10467
|
translationNs: void 0
|
|
10468
10468
|
},
|
|
10469
10469
|
{
|
|
10470
|
-
label: config$
|
|
10470
|
+
label: config$2.label,
|
|
10471
10471
|
icon: void 0,
|
|
10472
10472
|
path: "/statistics/providers",
|
|
10473
10473
|
nested: void 0,
|
|
@@ -44,4 +44,4 @@ const registerProvidersInDb = async ({ container, }) => {
|
|
|
44
44
|
}
|
|
45
45
|
await financialSummaryService.upsert(upsertData);
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9hZGVycy9zdGF0aXN0aWNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQW1GO0FBQ25GLGlFQUFzRTtBQVF0RSxxREFBa0Y7QUFLbEYsbURBQTZEO0FBRTdELE1BQU0seUJBQXlCLEdBQUcsZ0JBQWdCLENBQUE7QUFFbEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQVUsRUFBRSxTQUEwQixFQUFFLGFBQWtCLEVBQUUsRUFBRTtJQUN4RixJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxtQkFBVyxDQUNqQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMseUVBQXlFLENBQzVFLENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUV0RixTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFBLGdCQUFPLEVBQUMsS0FBSyxDQUFDO0tBQ3hCLENBQUMsQ0FBQztJQUlILGtCQUFNLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxLQUFLLENBQUMsVUFBVSxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEYsU0FBUyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFBLGdCQUFPLEVBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDL0gsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsS0FBSyxFQUFFLEVBQ2xCLFNBQVMsRUFDVCxPQUFPLEdBUVYsRUFBaUIsRUFBRTtJQUNoQixNQUFNLElBQUEsa0NBQW9CLEVBQUM7UUFDdkIsU0FBUztRQUNULFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUU7UUFDbkMsaUJBQWlCLEVBQUUsY0FBYztLQUNwQyxDQUFDLENBQUE7SUFFRixNQUFNLHFCQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQUE7QUFFRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSxFQUNqQyxTQUFTLEdBQ0csRUFBaUIsRUFBRTtJQUMvQixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUF5Qyx5QkFBeUIsRUFBRTtRQUN6RyxpQkFBaUIsRUFBRSxJQUFJO0tBQzFCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsT0FBTTtJQUNWLENBQUM7SUFFRCxNQUFNLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzdDLDJCQUEyQixDQUM5QixDQUFDO0lBRUYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLHVCQUF1QixDQUFDLElBQUksQ0FDeEQsRUFBRSxFQUFFLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUN0QyxFQUFFLENBQ0wsQ0FBQTtJQUVELE1BQU0sVUFBVSxHQUFnRSxFQUFFLENBQUE7SUFFbEYsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDNUQsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDakQsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELE1BQU0sdUJBQXVCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ3BELENBQUMsQ0FBQSJ9
|