@quicdata/analytics 0.0.5 → 0.0.7
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/core/fetch-data.d.ts +2 -0
- package/core/fetch-data.d.ts.map +1 -1
- package/core/fetch-data.js +5 -0
- package/core/index.d.ts +3 -1
- package/core/index.d.ts.map +1 -1
- package/core/index.js +2 -1
- package/core/seed.d.ts +79 -0
- package/core/seed.d.ts.map +1 -0
- package/core/seed.js +34 -0
- package/filters/widget-toolbar.d.ts +7 -0
- package/filters/widget-toolbar.d.ts.map +1 -1
- package/filters/widget-toolbar.js +156 -98
- package/package.json +1 -1
- package/widgets/analytics-report.d.ts +2 -2
- package/widgets/analytics-report.d.ts.map +1 -1
- package/widgets/analytics-report.js +2 -2
- package/widgets/analytics-widget.d.ts +2 -2
- package/widgets/analytics-widget.d.ts.map +1 -1
- package/widgets/analytics-widget.js +2 -2
- package/widgets/base-chart.d.ts +2 -1
- package/widgets/base-chart.d.ts.map +1 -1
- package/widgets/table.d.ts +2 -1
- package/widgets/table.d.ts.map +1 -1
package/core/fetch-data.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { AnalyticsDataResponse, FilterDefinition } from './types.js';
|
|
|
3
3
|
export declare function buildWidgetDataUrl(apiUrl: string, widgetId: string | number): string;
|
|
4
4
|
/** Build widget definition URL. Path: /widgets/{id} (no data). */
|
|
5
5
|
export declare function buildWidgetDefinitionUrl(apiUrl: string, widgetId: string | number): string;
|
|
6
|
+
/** Build dataset data URL from API base and dataset id. Path: /datasets/{id}/data */
|
|
7
|
+
export declare function buildDatasetDataUrl(apiUrl: string, datasetId: string | number): string;
|
|
6
8
|
/** Build report definition URL. GET /reports/definitions/{id} */
|
|
7
9
|
export declare function buildReportDefinitionUrl(apiUrl: string, reportId: string | number): string;
|
|
8
10
|
/** Build report filters URL (with optional query params for context). GET /reports/definitions/{id}/filters */
|
package/core/fetch-data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-data.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/core/fetch-data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch-data.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/core/fetch-data.ts"],"names":[],"mappings":"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"}
|
package/core/fetch-data.js
CHANGED
|
@@ -9,6 +9,11 @@ export function buildWidgetDefinitionUrl(apiUrl, widgetId) {
|
|
|
9
9
|
const base = (apiUrl || '').replace(/\/$/, '');
|
|
10
10
|
return `${base}/widgets/${widgetId}`;
|
|
11
11
|
}
|
|
12
|
+
/** Build dataset data URL from API base and dataset id. Path: /datasets/{id}/data */
|
|
13
|
+
export function buildDatasetDataUrl(apiUrl, datasetId) {
|
|
14
|
+
const base = (apiUrl || '').replace(/\/$/, '');
|
|
15
|
+
return `${base}/datasets/${datasetId}/data`;
|
|
16
|
+
}
|
|
12
17
|
/** Report definition base path. Path: /reports/definitions/{id} */
|
|
13
18
|
function reportDefinitionBase(apiUrl, reportId) {
|
|
14
19
|
const base = (apiUrl || '').replace(/\/$/, '');
|
package/core/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { setAnalyticsApiKey, getAnalyticsApiKey, getAnalyticsRequestInit } from './auth.js';
|
|
2
|
-
export { buildWidgetDataUrl, buildWidgetDefinitionUrl, fetchAnalyticsData, fetchWidgetData, fetchWidgetDefinition, buildReportDefinitionUrl, buildReportFiltersUrl, buildReportPreviewUrl, buildReportPdfUrl, buildReportExcelUrl, fetchReportDefinition, fetchReportFilters, } from './fetch-data.js';
|
|
2
|
+
export { buildWidgetDataUrl, buildWidgetDefinitionUrl, buildDatasetDataUrl, fetchAnalyticsData, fetchWidgetData, fetchWidgetDefinition, buildReportDefinitionUrl, buildReportFiltersUrl, buildReportPreviewUrl, buildReportPdfUrl, buildReportExcelUrl, fetchReportDefinition, fetchReportFilters, } from './fetch-data.js';
|
|
3
3
|
export type { AnalyticsRequestParams, WidgetDataApiResponse, WidgetChartType, WidgetDefinitionApiResponse, WidgetDefinitionSubset, ReportDefinitionApiResponse, ReportDefinitionResult, } from './fetch-data.js';
|
|
4
4
|
export type { AnalyticsDataResponse, AnalyticsDataMeta, WidgetDataResponse, WidgetDataOptions, DatetimeGranularity, DimensionRef, MeasureRef, FilterItem, FilterDefinition, FilterOption, CommonChartConfig, BarChartConfig, LineChartConfig, DonutPieChartConfig, NumberKpiChartConfig, TableChartConfig, ChartType, WidgetDefinitionConfig, LazyWidgetOptions, WorkerWidgetOptions, } from './types.js';
|
|
5
5
|
export { observeViewport } from './viewport-observer.js';
|
|
6
6
|
export type { ViewportObserverOptions, ViewportObserverCallbacks } from './viewport-observer.js';
|
|
7
7
|
export { runWidgetTransform } from './widget-transform-runner.js';
|
|
8
8
|
export type { WidgetTransformInput, WidgetTransformOptions } from './widget-transform-runner.js';
|
|
9
|
+
export { seedWidget, seedReport, seedDashboardChild, seedDashboard, seedDataset } from './seed.js';
|
|
10
|
+
export type { SeedId, SeedWidgetConfig, SeedReportConfig, SeedDashboardChildConfig, SeedDashboardConfig, SeedDatasetConfig, } from './seed.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnG,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,WAAW,CAAC"}
|
package/core/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { setAnalyticsApiKey, getAnalyticsApiKey, getAnalyticsRequestInit } from './auth.js';
|
|
2
|
-
export { buildWidgetDataUrl, buildWidgetDefinitionUrl, fetchAnalyticsData, fetchWidgetData, fetchWidgetDefinition, buildReportDefinitionUrl, buildReportFiltersUrl, buildReportPreviewUrl, buildReportPdfUrl, buildReportExcelUrl, fetchReportDefinition, fetchReportFilters, } from './fetch-data.js';
|
|
2
|
+
export { buildWidgetDataUrl, buildWidgetDefinitionUrl, buildDatasetDataUrl, fetchAnalyticsData, fetchWidgetData, fetchWidgetDefinition, buildReportDefinitionUrl, buildReportFiltersUrl, buildReportPreviewUrl, buildReportPdfUrl, buildReportExcelUrl, fetchReportDefinition, fetchReportFilters, } from './fetch-data.js';
|
|
3
3
|
export { observeViewport } from './viewport-observer.js';
|
|
4
4
|
export { runWidgetTransform } from './widget-transform-runner.js';
|
|
5
|
+
export { seedWidget, seedReport, seedDashboardChild, seedDashboard, seedDataset } from './seed.js';
|
package/core/seed.d.ts
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed helpers: build minimal config objects using a predefined id (numeric or string).
|
|
3
|
+
* Use these to seed widget, report, dashboard, or dataset config with a simple id.
|
|
4
|
+
*/
|
|
5
|
+
export type SeedId = string | number;
|
|
6
|
+
/** Config for <analytics-widget>: widgetId + apiUrl and optional overrides. */
|
|
7
|
+
export interface SeedWidgetConfig {
|
|
8
|
+
widgetId: SeedId;
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
dataParams?: Record<string, string | number | boolean>;
|
|
12
|
+
lazy?: boolean;
|
|
13
|
+
prefetchMargin?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Config for <analytics-report>: reportId + apiUrl and optional overrides. */
|
|
16
|
+
export interface SeedReportConfig {
|
|
17
|
+
reportId: SeedId;
|
|
18
|
+
apiUrl: string;
|
|
19
|
+
customTitle?: string;
|
|
20
|
+
dataParams?: Record<string, string | number | boolean>;
|
|
21
|
+
}
|
|
22
|
+
/** Config for a single dashboard widget (child). */
|
|
23
|
+
export interface SeedDashboardChildConfig {
|
|
24
|
+
widgetId: SeedId;
|
|
25
|
+
type?: string;
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
w: number;
|
|
29
|
+
h: number;
|
|
30
|
+
title?: string;
|
|
31
|
+
lazy?: boolean;
|
|
32
|
+
prefetch_margin?: string;
|
|
33
|
+
}
|
|
34
|
+
/** Config for <analytics-dashboard>: apiUrl + children (each with id) and optional overrides. */
|
|
35
|
+
export interface SeedDashboardConfig {
|
|
36
|
+
apiUrl: string;
|
|
37
|
+
column?: number;
|
|
38
|
+
children?: SeedDashboardChildConfig[];
|
|
39
|
+
filters?: Array<{
|
|
40
|
+
param_name: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
type?: string;
|
|
43
|
+
default_value?: unknown;
|
|
44
|
+
}>;
|
|
45
|
+
hide_filter?: boolean;
|
|
46
|
+
refresh_rate?: number;
|
|
47
|
+
}
|
|
48
|
+
/** Config for dataset-based table/chart: datasetId + apiUrl (builds data URL /datasets/{id}/data). */
|
|
49
|
+
export interface SeedDatasetConfig {
|
|
50
|
+
datasetId: SeedId;
|
|
51
|
+
apiUrl: string;
|
|
52
|
+
dataParams?: Record<string, string | number | boolean>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Seed config for a single widget. Id can be numeric (e.g. 1) or string.
|
|
56
|
+
*/
|
|
57
|
+
export declare function seedWidget(id: SeedId, apiUrl: string, overrides?: Partial<SeedWidgetConfig>): SeedWidgetConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Seed config for a report. Id can be numeric (e.g. 1) or string.
|
|
60
|
+
*/
|
|
61
|
+
export declare function seedReport(id: SeedId, apiUrl: string, overrides?: Partial<SeedReportConfig>): SeedReportConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Seed config for a dashboard child (one widget in the grid). Id can be numeric.
|
|
64
|
+
*/
|
|
65
|
+
export declare function seedDashboardChild(id: SeedId, type: string, position: {
|
|
66
|
+
x: number;
|
|
67
|
+
y: number;
|
|
68
|
+
w: number;
|
|
69
|
+
h: number;
|
|
70
|
+
}, overrides?: Partial<SeedDashboardChildConfig>): SeedDashboardChildConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Seed config for a dashboard. Children use numeric (or string) ids.
|
|
73
|
+
*/
|
|
74
|
+
export declare function seedDashboard(apiUrl: string, children: SeedDashboardChildConfig[], overrides?: Partial<SeedDashboardConfig>): SeedDashboardConfig;
|
|
75
|
+
/**
|
|
76
|
+
* Seed config for a dataset (data URL = /datasets/{id}/data). Id can be numeric.
|
|
77
|
+
*/
|
|
78
|
+
export declare function seedDataset(id: SeedId, apiUrl: string, overrides?: Partial<SeedDatasetConfig>): SeedDatasetConfig;
|
|
79
|
+
//# sourceMappingURL=seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/core/seed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACxD;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iGAAiG;AACjG,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAE9G;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAE9G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACxD,SAAS,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAC5C,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEjJ;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAEjH"}
|
package/core/seed.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed helpers: build minimal config objects using a predefined id (numeric or string).
|
|
3
|
+
* Use these to seed widget, report, dashboard, or dataset config with a simple id.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Seed config for a single widget. Id can be numeric (e.g. 1) or string.
|
|
7
|
+
*/
|
|
8
|
+
export function seedWidget(id, apiUrl, overrides) {
|
|
9
|
+
return { widgetId: id, apiUrl, ...overrides };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Seed config for a report. Id can be numeric (e.g. 1) or string.
|
|
13
|
+
*/
|
|
14
|
+
export function seedReport(id, apiUrl, overrides) {
|
|
15
|
+
return { reportId: id, apiUrl, ...overrides };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Seed config for a dashboard child (one widget in the grid). Id can be numeric.
|
|
19
|
+
*/
|
|
20
|
+
export function seedDashboardChild(id, type, position, overrides) {
|
|
21
|
+
return { widgetId: id, type, x: position.x, y: position.y, w: position.w, h: position.h, ...overrides };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Seed config for a dashboard. Children use numeric (or string) ids.
|
|
25
|
+
*/
|
|
26
|
+
export function seedDashboard(apiUrl, children, overrides) {
|
|
27
|
+
return { apiUrl, children, ...overrides };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Seed config for a dataset (data URL = /datasets/{id}/data). Id can be numeric.
|
|
31
|
+
*/
|
|
32
|
+
export function seedDataset(id, apiUrl, overrides) {
|
|
33
|
+
return { datasetId: id, apiUrl, ...overrides };
|
|
34
|
+
}
|
|
@@ -10,7 +10,14 @@ export declare class AnalyticsWidgetToolbar extends LitElement {
|
|
|
10
10
|
values: Record<string, string | number | boolean>;
|
|
11
11
|
activeCount: number;
|
|
12
12
|
private _dialogOpen;
|
|
13
|
+
private _portalRoot;
|
|
14
|
+
private _inFilterChange;
|
|
15
|
+
private _onEscapeKey;
|
|
16
|
+
updated(changed: Map<string, unknown>): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
private _renderOverlayPortal;
|
|
13
19
|
private _onFilterIconClick;
|
|
20
|
+
private _onOverlayClick;
|
|
14
21
|
private _onDialogClose;
|
|
15
22
|
private _onFilterChange;
|
|
16
23
|
private _onFilterBarClose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-toolbar.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/filters/widget-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"widget-toolbar.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/filters/widget-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAiEzD;;;GAGG;AACH,qBACa,sBAAuB,SAAQ,UAAU;IACpD,OAAgB,MAAM,0BA8DpB;IAEyB,OAAO,EAAE,gBAAgB,EAAE,CAAM;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAM;IACvD,WAAW,SAAK;IAEnC,OAAO,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAMlB;IAEO,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgB5C,oBAAoB,IAAI,IAAI;IASrC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,eAAe,CAGrB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,eAAe,CAgBrB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEO,MAAM;CAsBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,0BAA0B,EAAE,sBAAsB,CAAC;KACpD;CACF"}
|
|
@@ -1,7 +1,69 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { LitElement, html, css } from 'lit';
|
|
3
|
+
import { render } from 'lit';
|
|
3
4
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
5
|
import { EVENT_FILTER_CHANGE, EVENT_FILTER_CLOSE } from './filter-bar.js';
|
|
6
|
+
/** Overlay/dialog styles for the body portal (no :host). */
|
|
7
|
+
const overlayPortalStyles = css `
|
|
8
|
+
.overlay {
|
|
9
|
+
position: fixed;
|
|
10
|
+
inset: 0;
|
|
11
|
+
z-index: var(--analytics-widget-toolbar-overlay-z-index, 1000);
|
|
12
|
+
background: var(--analytics-widget-toolbar-overlay-bg, rgba(0, 0, 0, 0.35));
|
|
13
|
+
backdrop-filter: var(--analytics-widget-toolbar-overlay-backdrop-filter, blur(2px));
|
|
14
|
+
-webkit-backdrop-filter: var(--analytics-widget-toolbar-overlay-backdrop-filter, blur(2px));
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: flex-start;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
padding: 2rem;
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
}
|
|
21
|
+
.dialog {
|
|
22
|
+
position: relative;
|
|
23
|
+
z-index: var(--analytics-widget-toolbar-dialog-z-index, 1);
|
|
24
|
+
background: #fff;
|
|
25
|
+
border-radius: 12px;
|
|
26
|
+
border: 1px solid #e2e8f0;
|
|
27
|
+
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12);
|
|
28
|
+
min-width: 320px;
|
|
29
|
+
max-width: 90vw;
|
|
30
|
+
max-height: 85vh;
|
|
31
|
+
overflow: auto;
|
|
32
|
+
}
|
|
33
|
+
.dialog-close {
|
|
34
|
+
position: absolute;
|
|
35
|
+
top: 0.5rem;
|
|
36
|
+
right: 0.5rem;
|
|
37
|
+
display: inline-flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
width: 2rem;
|
|
41
|
+
height: 2rem;
|
|
42
|
+
padding: 0;
|
|
43
|
+
color: #64748b;
|
|
44
|
+
background: transparent;
|
|
45
|
+
border: none;
|
|
46
|
+
border-radius: 6px;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
z-index: calc(var(--analytics-widget-toolbar-dialog-z-index, 1) + 1);
|
|
49
|
+
}
|
|
50
|
+
.dialog-close:hover {
|
|
51
|
+
background: #f1f5f9;
|
|
52
|
+
color: #334155;
|
|
53
|
+
}
|
|
54
|
+
.dialog-body {
|
|
55
|
+
padding: 2.5rem 2.5rem 1rem 1rem;
|
|
56
|
+
--analytics-filter-bar-bg: transparent;
|
|
57
|
+
--analytics-filter-bar-border: transparent;
|
|
58
|
+
--analytics-filter-bar-label-color: #475569;
|
|
59
|
+
--analytics-filter-bar-input-bg: #fff;
|
|
60
|
+
--analytics-filter-bar-input-border: #cbd5e1;
|
|
61
|
+
--analytics-filter-bar-input-color: inherit;
|
|
62
|
+
--analytics-filter-bar-close-color: #64748b;
|
|
63
|
+
--analytics-filter-bar-close-hover-bg: #f1f5f9;
|
|
64
|
+
--analytics-filter-bar-close-hover-color: #334155;
|
|
65
|
+
}
|
|
66
|
+
`;
|
|
5
67
|
/**
|
|
6
68
|
* Floating widget toolbar: glass-style bar at top-right, visible on hover.
|
|
7
69
|
* Contains filter icon; click opens a dialog with the filter form.
|
|
@@ -13,6 +75,49 @@ let AnalyticsWidgetToolbar = class AnalyticsWidgetToolbar extends LitElement {
|
|
|
13
75
|
this.values = {};
|
|
14
76
|
this.activeCount = 0;
|
|
15
77
|
this._dialogOpen = false;
|
|
78
|
+
this._portalRoot = null;
|
|
79
|
+
this._inFilterChange = false;
|
|
80
|
+
this._onEscapeKey = (e) => {
|
|
81
|
+
if (!this._dialogOpen)
|
|
82
|
+
return;
|
|
83
|
+
if (e.key === 'Escape') {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
this._onDialogClose();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
this._onFilterIconClick = () => {
|
|
89
|
+
this._dialogOpen = true;
|
|
90
|
+
};
|
|
91
|
+
this._onOverlayClick = (e) => {
|
|
92
|
+
if (e.target !== e.currentTarget)
|
|
93
|
+
return; // only close when clicking mask, not dialog
|
|
94
|
+
this._onDialogClose();
|
|
95
|
+
};
|
|
96
|
+
this._onDialogClose = () => {
|
|
97
|
+
this._dialogOpen = false;
|
|
98
|
+
this.dispatchEvent(new CustomEvent(EVENT_FILTER_CLOSE, { bubbles: true, composed: true }));
|
|
99
|
+
};
|
|
100
|
+
this._onFilterChange = (e) => {
|
|
101
|
+
if (this._inFilterChange)
|
|
102
|
+
return;
|
|
103
|
+
if (e.target === this)
|
|
104
|
+
return;
|
|
105
|
+
e.stopPropagation();
|
|
106
|
+
this._inFilterChange = true;
|
|
107
|
+
try {
|
|
108
|
+
this.dispatchEvent(new CustomEvent(EVENT_FILTER_CHANGE, {
|
|
109
|
+
bubbles: true,
|
|
110
|
+
composed: true,
|
|
111
|
+
detail: e.detail,
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
this._inFilterChange = false;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
this._onFilterBarClose = () => {
|
|
119
|
+
this._dialogOpen = false;
|
|
120
|
+
};
|
|
16
121
|
}
|
|
17
122
|
static { this.styles = css `
|
|
18
123
|
:host {
|
|
@@ -76,83 +181,60 @@ let AnalyticsWidgetToolbar = class AnalyticsWidgetToolbar extends LitElement {
|
|
|
76
181
|
color: #fff;
|
|
77
182
|
border-radius: 9999px;
|
|
78
183
|
}
|
|
79
|
-
.overlay {
|
|
80
|
-
position: fixed;
|
|
81
|
-
inset: 0;
|
|
82
|
-
z-index: var(--analytics-widget-toolbar-overlay-z-index, 1000);
|
|
83
|
-
background: var(--analytics-widget-toolbar-overlay-bg, rgba(0, 0, 0, 0.35));
|
|
84
|
-
backdrop-filter: var(--analytics-widget-toolbar-overlay-backdrop-filter, blur(2px));
|
|
85
|
-
-webkit-backdrop-filter: var(--analytics-widget-toolbar-overlay-backdrop-filter, blur(2px));
|
|
86
|
-
display: flex;
|
|
87
|
-
align-items: flex-start;
|
|
88
|
-
justify-content: center;
|
|
89
|
-
padding: 2rem;
|
|
90
|
-
box-sizing: border-box;
|
|
91
|
-
}
|
|
92
|
-
.dialog {
|
|
93
|
-
position: relative;
|
|
94
|
-
z-index: var(--analytics-widget-toolbar-dialog-z-index, 1);
|
|
95
|
-
background: #fff;
|
|
96
|
-
border-radius: 12px;
|
|
97
|
-
border: 1px solid #e2e8f0;
|
|
98
|
-
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12);
|
|
99
|
-
min-width: 320px;
|
|
100
|
-
max-width: 90vw;
|
|
101
|
-
max-height: 85vh;
|
|
102
|
-
overflow: auto;
|
|
103
|
-
}
|
|
104
|
-
.dialog-close {
|
|
105
|
-
position: absolute;
|
|
106
|
-
top: 0.5rem;
|
|
107
|
-
right: 0.5rem;
|
|
108
|
-
display: inline-flex;
|
|
109
|
-
align-items: center;
|
|
110
|
-
justify-content: center;
|
|
111
|
-
width: 2rem;
|
|
112
|
-
height: 2rem;
|
|
113
|
-
padding: 0;
|
|
114
|
-
color: #64748b;
|
|
115
|
-
background: transparent;
|
|
116
|
-
border: none;
|
|
117
|
-
border-radius: 6px;
|
|
118
|
-
cursor: pointer;
|
|
119
|
-
z-index: calc(var(--analytics-widget-toolbar-dialog-z-index, 1) + 1);
|
|
120
|
-
}
|
|
121
|
-
.dialog-close:hover {
|
|
122
|
-
background: #f1f5f9;
|
|
123
|
-
color: #334155;
|
|
124
|
-
}
|
|
125
|
-
.dialog-body {
|
|
126
|
-
padding: 2.5rem 2.5rem 1rem 1rem;
|
|
127
|
-
/* Light mode: use filter-bar defaults (light bg, dark text) */
|
|
128
|
-
--analytics-filter-bar-bg: transparent;
|
|
129
|
-
--analytics-filter-bar-border: transparent;
|
|
130
|
-
--analytics-filter-bar-label-color: #475569;
|
|
131
|
-
--analytics-filter-bar-input-bg: #fff;
|
|
132
|
-
--analytics-filter-bar-input-border: #cbd5e1;
|
|
133
|
-
--analytics-filter-bar-input-color: inherit;
|
|
134
|
-
--analytics-filter-bar-close-color: #64748b;
|
|
135
|
-
--analytics-filter-bar-close-hover-bg: #f1f5f9;
|
|
136
|
-
--analytics-filter-bar-close-hover-color: #334155;
|
|
137
|
-
}
|
|
138
184
|
`; }
|
|
139
|
-
|
|
140
|
-
this._dialogOpen
|
|
185
|
+
updated(changed) {
|
|
186
|
+
if (this._dialogOpen) {
|
|
187
|
+
if (!this._portalRoot) {
|
|
188
|
+
this._portalRoot = document.createElement('div');
|
|
189
|
+
this._portalRoot.className = 'analytics-widget-toolbar-portal';
|
|
190
|
+
document.body.appendChild(this._portalRoot);
|
|
191
|
+
}
|
|
192
|
+
render(this._renderOverlayPortal(), this._portalRoot);
|
|
193
|
+
window.addEventListener('keydown', this._onEscapeKey);
|
|
194
|
+
}
|
|
195
|
+
else if (this._portalRoot) {
|
|
196
|
+
this._portalRoot.remove();
|
|
197
|
+
this._portalRoot = null;
|
|
198
|
+
window.removeEventListener('keydown', this._onEscapeKey);
|
|
199
|
+
}
|
|
141
200
|
}
|
|
142
|
-
|
|
143
|
-
this.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
bubbles: true,
|
|
150
|
-
composed: true,
|
|
151
|
-
detail: e.detail,
|
|
152
|
-
}));
|
|
201
|
+
disconnectedCallback() {
|
|
202
|
+
if (this._portalRoot?.parentNode) {
|
|
203
|
+
this._portalRoot.remove();
|
|
204
|
+
this._portalRoot = null;
|
|
205
|
+
}
|
|
206
|
+
window.removeEventListener('keydown', this._onEscapeKey);
|
|
207
|
+
super.disconnectedCallback();
|
|
153
208
|
}
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
_renderOverlayPortal() {
|
|
210
|
+
return html `
|
|
211
|
+
<style>${overlayPortalStyles}</style>
|
|
212
|
+
<div
|
|
213
|
+
class="overlay"
|
|
214
|
+
role="dialog"
|
|
215
|
+
aria-modal="true"
|
|
216
|
+
aria-label="Filters"
|
|
217
|
+
@click=${this._onOverlayClick}
|
|
218
|
+
>
|
|
219
|
+
<div class="dialog" @click=${(e) => e.stopPropagation()}>
|
|
220
|
+
<button type="button" class="dialog-close" aria-label="Close" @click=${this._onDialogClose}>
|
|
221
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
222
|
+
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
223
|
+
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
224
|
+
</svg>
|
|
225
|
+
</button>
|
|
226
|
+
<div class="dialog-body">
|
|
227
|
+
<analytics-filter-bar
|
|
228
|
+
.filters=${this.filters}
|
|
229
|
+
.values=${this.values}
|
|
230
|
+
.showClose=${false}
|
|
231
|
+
@analytics-filter-change=${this._onFilterChange}
|
|
232
|
+
@analytics-filter-close=${this._onFilterBarClose}
|
|
233
|
+
></analytics-filter-bar>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
`;
|
|
156
238
|
}
|
|
157
239
|
render() {
|
|
158
240
|
const hasFilters = this.filters.length > 0;
|
|
@@ -174,30 +256,6 @@ let AnalyticsWidgetToolbar = class AnalyticsWidgetToolbar extends LitElement {
|
|
|
174
256
|
${this.activeCount > 0 ? html `<span class="badge">${this.activeCount}</span>` : ''}
|
|
175
257
|
</button>
|
|
176
258
|
</div>
|
|
177
|
-
|
|
178
|
-
${this._dialogOpen
|
|
179
|
-
? html `
|
|
180
|
-
<div class="overlay" role="dialog" aria-modal="true" aria-label="Filters" @click=${this._onDialogClose}>
|
|
181
|
-
<div class="dialog" @click=${(e) => e.stopPropagation()}>
|
|
182
|
-
<button type="button" class="dialog-close" aria-label="Close" @click=${this._onDialogClose}>
|
|
183
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
184
|
-
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
185
|
-
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
186
|
-
</svg>
|
|
187
|
-
</button>
|
|
188
|
-
<div class="dialog-body">
|
|
189
|
-
<analytics-filter-bar
|
|
190
|
-
.filters=${this.filters}
|
|
191
|
-
.values=${this.values}
|
|
192
|
-
.showClose=${false}
|
|
193
|
-
@analytics-filter-change=${this._onFilterChange}
|
|
194
|
-
@analytics-filter-close=${this._onFilterBarClose}
|
|
195
|
-
></analytics-filter-bar>
|
|
196
|
-
</div>
|
|
197
|
-
</div>
|
|
198
|
-
</div>
|
|
199
|
-
`
|
|
200
|
-
: ''}
|
|
201
259
|
`;
|
|
202
260
|
}
|
|
203
261
|
};
|
package/package.json
CHANGED
|
@@ -8,8 +8,8 @@ import './table.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class AnalyticsReport extends LitElement {
|
|
10
10
|
static styles: import("lit").CSSResult;
|
|
11
|
-
/** Report definition id (used with apiUrl to load definition and preview). */
|
|
12
|
-
reportId: string;
|
|
11
|
+
/** Report definition id (used with apiUrl to load definition and preview). Accepts string or number for seeding. */
|
|
12
|
+
reportId: string | number;
|
|
13
13
|
/** API base URL (e.g. /api/analytics). */
|
|
14
14
|
apiUrl: string;
|
|
15
15
|
/** Optional title override. When set (non-empty), overrides report name from definition. Use attribute "custom-title" to avoid native title. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-report.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/analytics-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAYrD,OAAO,0BAA0B,CAAC;AAClC,OAAO,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAyFpB;IAEF,
|
|
1
|
+
{"version":3,"file":"analytics-report.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/analytics-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAYrD,OAAO,0BAA0B,CAAC;AAClC,OAAO,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAyFpB;IAEF,oHAAoH;IACxD,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtF,0CAA0C;IACgB,MAAM,EAAE,MAAM,CAAC;IAEzE,gJAAgJ;IACjF,WAAW,EAAE,MAAM,CAAC;IAEnF,6DAA6D;IACzB,KAAK,EAAE,MAAM,CAAC;IAElD,sEAAsE;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAE1F,QAAyB,KAAK,CAAS;IACvC,QAAyB,QAAQ,CAAqB;IACtD,QAAyB,OAAO,CAA4C;IAC5E,QAAyB,eAAe,CAAS;IACjD,QAAyB,WAAW,CAAS;IAC7C,QAAyB,aAAa,CAAS;IAC/C,QAAyB,QAAQ,CAAU;IAC3C,QAAyB,MAAM,CAAgB;;IAmBtC,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;YAevC,WAAW;IAwBzB,wJAAwJ;IACxJ,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,eAAe;IAMvB,OAAO,KAAK,QAAQ,GAGnB;IAED,OAAO,KAAK,WAAW,GAItB;IAED,OAAO,KAAK,OAAO,GAIlB;IAED,OAAO,KAAK,SAAS,GAIpB;IAED,OAAO,CAAC,MAAM;IAIL,MAAM;CAiDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,eAAe,CAAC;KACrC;CACF"}
|
|
@@ -126,7 +126,7 @@ let AnalyticsReport = class AnalyticsReport extends LitElement {
|
|
|
126
126
|
this.removeEventListener(EVENT_FILTER_CHANGE, this._onFilterChange);
|
|
127
127
|
}
|
|
128
128
|
updated(changed) {
|
|
129
|
-
if (!this.apiUrl || !this.reportId || this._loading)
|
|
129
|
+
if (!this.apiUrl || (this.reportId !== 0 && !this.reportId) || this._loading)
|
|
130
130
|
return;
|
|
131
131
|
if (changed.has('reportId') || changed.has('apiUrl')) {
|
|
132
132
|
this._name = '';
|
|
@@ -142,7 +142,7 @@ let AnalyticsReport = class AnalyticsReport extends LitElement {
|
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
async _loadReport() {
|
|
145
|
-
if (!this.apiUrl || !this.reportId || this._loading)
|
|
145
|
+
if (!this.apiUrl || (this.reportId !== 0 && !this.reportId) || this._loading)
|
|
146
146
|
return;
|
|
147
147
|
this._loading = true;
|
|
148
148
|
this._error = null;
|
|
@@ -11,8 +11,8 @@ import './table.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class AnalyticsWidget extends LitElement {
|
|
13
13
|
static styles: import("lit").CSSResult;
|
|
14
|
-
/** Widget id (used with apiUrl to load definition and data). */
|
|
15
|
-
widgetId: string;
|
|
14
|
+
/** Widget id (used with apiUrl to load definition and data). Accepts string or number for seeding. */
|
|
15
|
+
widgetId: string | number;
|
|
16
16
|
/** API base URL (e.g. /api/analytics). Used with widgetId to fetch definition and data. */
|
|
17
17
|
apiUrl: string;
|
|
18
18
|
/** Optional title override. When unset, the inner widget uses the title from the definition. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-widget.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/analytics-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AACxB,OAAO,YAAY,CAAC;AAapB;;;;GAIG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAmCpB;IAEF,
|
|
1
|
+
{"version":3,"file":"analytics-widget.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/analytics-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,gBAAgB,CAAC;AACxB,OAAO,YAAY,CAAC;AAapB;;;;GAIG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAmCpB;IAEF,sGAAsG;IAC1C,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtF,2FAA2F;IACjC,MAAM,EAAE,MAAM,CAAC;IAEzE,gGAAgG;IAC5D,KAAK,EAAE,MAAM,CAAC;IAElD,gEAAgE;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAE1F,2EAA2E;IACvC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEzE,4EAA4E;IACvC,IAAI,EAAE,OAAO,CAAC;IAEnD,yEAAyE;IACP,cAAc,EAAE,MAAM,CAAC;IAEzF,QAAyB,UAAU,CAAuB;IAC1D,QAAyB,WAAW,CAAgC;IACpE,QAAyB,QAAQ,CAAU;IAC3C,QAAyB,MAAM,CAAgB;;IAiBtC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;YAWvC,eAAe;IAqB7B,OAAO,KAAK,SAAS,GAGpB;IAED,OAAO,CAAC,kBAAkB;IA8DjB,MAAM;CAgBhB"}
|
|
@@ -74,7 +74,7 @@ let AnalyticsWidget = class AnalyticsWidget extends LitElement {
|
|
|
74
74
|
this._error = null;
|
|
75
75
|
}
|
|
76
76
|
updated(changed) {
|
|
77
|
-
if (!this.apiUrl || !this.widgetId || this._loading)
|
|
77
|
+
if (!this.apiUrl || (this.widgetId !== 0 && !this.widgetId) || this._loading)
|
|
78
78
|
return;
|
|
79
79
|
if (changed.has('widgetId') || changed.has('apiUrl')) {
|
|
80
80
|
this._chartType = '';
|
|
@@ -86,7 +86,7 @@ let AnalyticsWidget = class AnalyticsWidget extends LitElement {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
async _loadDefinition() {
|
|
89
|
-
if (!this.apiUrl || !this.widgetId || this._loading)
|
|
89
|
+
if (!this.apiUrl || (this.widgetId !== 0 && !this.widgetId) || this._loading)
|
|
90
90
|
return;
|
|
91
91
|
this._loading = true;
|
|
92
92
|
this._error = null;
|
package/widgets/base-chart.d.ts
CHANGED
|
@@ -16,7 +16,8 @@ export declare abstract class BaseChartWidget extends LitElement {
|
|
|
16
16
|
/** API URL to fetch data (e.g. /api/analytics/widgets/1/data). When widgetId + apiUrl are set, this is overridden by buildWidgetDataUrl(apiUrl, widgetId). */
|
|
17
17
|
dataUrl: string;
|
|
18
18
|
/** Widget id (used with apiUrl to build data URL: /widgets/{id}/data). */
|
|
19
|
-
|
|
19
|
+
/** Widget id (with apiUrl builds data URL). Accepts string or number for seeding. */
|
|
20
|
+
widgetId: string | number;
|
|
20
21
|
/** API base URL (host + prefix, e.g. /api/analytics). Used with widgetId to build data URL. */
|
|
21
22
|
apiUrl: string;
|
|
22
23
|
/** Query params for data-url (e.g. date_from, date_to). Widget params override dashboard params for same key. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-chart.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/base-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAA0B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAO5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAM9E,OAAO,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,eAAgB,SAAQ,UAAU;IACtD,OAAgB,MAAM,0BAuFpB;IAEF,8FAA8F;IAC1D,KAAK,EAAE,MAAM,CAAC;IAElD,8JAA8J;IACnG,OAAO,EAAE,MAAM,CAAC;IAE3E,0EAA0E;
|
|
1
|
+
{"version":3,"file":"base-chart.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/base-chart.ts"],"names":[],"mappings":"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"}
|
package/widgets/table.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export declare class TableWidget extends LitElement {
|
|
|
15
15
|
/** API URL to fetch data (e.g. /api/analytics/widgets/1/data). When widgetId + apiUrl are set, overridden by buildWidgetDataUrl(apiUrl, widgetId). */
|
|
16
16
|
dataUrl: string;
|
|
17
17
|
/** Widget id (used with apiUrl to build data URL: /widgets/{id}/data). */
|
|
18
|
-
|
|
18
|
+
/** Widget id (with apiUrl builds data URL). Accepts string or number for seeding. */
|
|
19
|
+
widgetId: string | number;
|
|
19
20
|
/** API base URL (host + prefix, e.g. /api/analytics). Used with widgetId to build data URL. */
|
|
20
21
|
apiUrl: string;
|
|
21
22
|
/** Query params for data-url (e.g. date_from, date_to). Widget params override dashboard params for same key. */
|
package/widgets/table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,KAAK,EAA0B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAM5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAM9E,OAAO,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BA+HpB;IAEF,8FAA8F;IAC1D,KAAK,EAAE,MAAM,CAAC;IAElD,sJAAsJ;IAC3F,OAAO,EAAE,MAAM,CAAC;IAE3E,0EAA0E;
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../libs/analytics/src/widgets/table.ts"],"names":[],"mappings":"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"}
|