@lssm/example.analytics-dashboard 0.0.0-canary-20251215234340 → 0.0.0-canary-20251216024228
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/dashboard/dashboard.contracts.js +1 -0
- package/dist/dashboard/dashboard.enum.js +1 -0
- package/dist/dashboard/dashboard.schema.js +1 -0
- package/dist/dashboard/index.js +1 -0
- package/dist/feature.js +1 -1
- package/dist/index.js +1 -1
- package/dist/query/index.js +1 -0
- package/dist/query/query.contracts.js +1 -0
- package/dist/query/query.enum.js +1 -0
- package/dist/query/query.schema.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -11
- package/dist/contracts/index.js +0 -1
- package/dist/entities/index.js +0 -1
- package/dist/events.js +0 -1
- package/dist/handlers/index.js +0 -1
- package/dist/presentations/index.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/example.analytics-dashboard",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251216024228",
|
|
4
4
|
"description": "Analytics Dashboard example with widgets and query engine for ContractSpec",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -33,16 +33,19 @@
|
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
35
|
".": "./src/index.ts",
|
|
36
|
-
"./
|
|
36
|
+
"./dashboard": "./src/dashboard/index.ts",
|
|
37
|
+
"./dashboard/dashboard.contracts": "./src/dashboard/dashboard.contracts.ts",
|
|
38
|
+
"./dashboard/dashboard.enum": "./src/dashboard/dashboard.enum.ts",
|
|
39
|
+
"./dashboard/dashboard.schema": "./src/dashboard/dashboard.schema.ts",
|
|
37
40
|
"./docs": "./src/docs/index.ts",
|
|
38
41
|
"./docs/analytics-dashboard.docblock": "./src/docs/analytics-dashboard.docblock.ts",
|
|
39
|
-
"./entities": "./src/entities/index.ts",
|
|
40
|
-
"./events": "./src/events.ts",
|
|
41
42
|
"./example": "./src/example.ts",
|
|
42
43
|
"./feature": "./src/feature.ts",
|
|
43
|
-
"./
|
|
44
|
-
"./presentations": "./src/presentations/index.ts",
|
|
44
|
+
"./query": "./src/query/index.ts",
|
|
45
45
|
"./query-engine": "./src/query-engine/index.ts",
|
|
46
|
+
"./query/query.contracts": "./src/query/query.contracts.ts",
|
|
47
|
+
"./query/query.enum": "./src/query/query.enum.ts",
|
|
48
|
+
"./query/query.schema": "./src/query/query.schema.ts",
|
|
46
49
|
"./*": "./*"
|
|
47
50
|
},
|
|
48
51
|
"module": "./dist/index.js",
|
|
@@ -54,16 +57,19 @@
|
|
|
54
57
|
"access": "public",
|
|
55
58
|
"exports": {
|
|
56
59
|
".": "./dist/index.js",
|
|
57
|
-
"./
|
|
60
|
+
"./dashboard": "./dist/dashboard/index.js",
|
|
61
|
+
"./dashboard/dashboard.contracts": "./dist/dashboard/dashboard.contracts.js",
|
|
62
|
+
"./dashboard/dashboard.enum": "./dist/dashboard/dashboard.enum.js",
|
|
63
|
+
"./dashboard/dashboard.schema": "./dist/dashboard/dashboard.schema.js",
|
|
58
64
|
"./docs": "./dist/docs/index.js",
|
|
59
65
|
"./docs/analytics-dashboard.docblock": "./dist/docs/analytics-dashboard.docblock.js",
|
|
60
|
-
"./entities": "./dist/entities/index.js",
|
|
61
|
-
"./events": "./dist/events.js",
|
|
62
66
|
"./example": "./dist/example.js",
|
|
63
67
|
"./feature": "./dist/feature.js",
|
|
64
|
-
"./
|
|
65
|
-
"./presentations": "./dist/presentations/index.js",
|
|
68
|
+
"./query": "./dist/query/index.js",
|
|
66
69
|
"./query-engine": "./dist/query-engine/index.js",
|
|
70
|
+
"./query/query.contracts": "./dist/query/query.contracts.js",
|
|
71
|
+
"./query/query.enum": "./dist/query/query.enum.js",
|
|
72
|
+
"./query/query.schema": "./dist/query/query.schema.js",
|
|
67
73
|
"./*": "./*"
|
|
68
74
|
}
|
|
69
75
|
}
|
package/dist/contracts/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ScalarTypeEnum as e,defineEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";import{defineCommand as r,defineQuery as i}from"@lssm/lib.contracts/spec";const a=[`example.analytics-dashboard`],o=t(`DashboardStatus`,[`DRAFT`,`PUBLISHED`,`ARCHIVED`]),s=t(`WidgetType`,[`LINE_CHART`,`BAR_CHART`,`PIE_CHART`,`AREA_CHART`,`SCATTER_PLOT`,`METRIC`,`TABLE`,`HEATMAP`,`FUNNEL`,`MAP`,`TEXT`,`EMBED`]),c=t(`QueryType`,[`SQL`,`METRIC`,`AGGREGATION`,`CUSTOM`]),l=t(`RefreshInterval`,[`NONE`,`MINUTE`,`FIVE_MINUTES`,`FIFTEEN_MINUTES`,`HOUR`,`DAY`]),u=n({name:`WidgetModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},dashboardId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},type:{type:s,isOptional:!1},gridX:{type:e.Int_unsecure(),isOptional:!1},gridY:{type:e.Int_unsecure(),isOptional:!1},gridWidth:{type:e.Int_unsecure(),isOptional:!1},gridHeight:{type:e.Int_unsecure(),isOptional:!1},queryId:{type:e.String_unsecure(),isOptional:!0},config:{type:e.JSON(),isOptional:!0}}}),d=n({name:`DashboardModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},status:{type:o,isOptional:!1},refreshInterval:{type:l,isOptional:!1},isPublic:{type:e.Boolean(),isOptional:!1},widgets:{type:u,isArray:!0,isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),f=n({name:`QueryModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},type:{type:c,isOptional:!1},definition:{type:e.JSON(),isOptional:!1},sql:{type:e.String_unsecure(),isOptional:!0},cacheTtlSeconds:{type:e.Int_unsecure(),isOptional:!1},isShared:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),p=n({name:`QueryResultModel`,fields:{queryId:{type:e.String_unsecure(),isOptional:!1},data:{type:e.JSON(),isOptional:!1},columns:{type:e.JSON(),isOptional:!1},rowCount:{type:e.Int_unsecure(),isOptional:!1},executionTimeMs:{type:e.Int_unsecure(),isOptional:!1},cachedAt:{type:e.DateTime(),isOptional:!0},error:{type:e.String_unsecure(),isOptional:!0}}}),m=n({name:`CreateDashboardInput`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},slug:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},refreshInterval:{type:l,isOptional:!0},dateRange:{type:e.JSON(),isOptional:!0}}}),h=n({name:`AddWidgetInput`,fields:{dashboardId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.NonEmptyString(),isOptional:!1},type:{type:s,isOptional:!1},gridX:{type:e.Int_unsecure(),isOptional:!0},gridY:{type:e.Int_unsecure(),isOptional:!0},gridWidth:{type:e.Int_unsecure(),isOptional:!0},gridHeight:{type:e.Int_unsecure(),isOptional:!0},queryId:{type:e.String_unsecure(),isOptional:!0},config:{type:e.JSON(),isOptional:!0}}}),g=n({name:`CreateQueryInput`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},type:{type:c,isOptional:!1},definition:{type:e.JSON(),isOptional:!1},sql:{type:e.String_unsecure(),isOptional:!0},metricIds:{type:e.String_unsecure(),isArray:!0,isOptional:!0},cacheTtlSeconds:{type:e.Int_unsecure(),isOptional:!0},isShared:{type:e.Boolean(),isOptional:!0}}}),_=n({name:`ExecuteQueryInput`,fields:{queryId:{type:e.String_unsecure(),isOptional:!1},parameters:{type:e.JSON(),isOptional:!0},dateRange:{type:e.JSON(),isOptional:!0},filters:{type:e.JSON(),isOptional:!0},forceRefresh:{type:e.Boolean(),isOptional:!0}}}),v=n({name:`ListDashboardsInput`,fields:{status:{type:o,isOptional:!0},search:{type:e.String_unsecure(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),y=n({name:`ListDashboardsOutput`,fields:{dashboards:{type:d,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),b=r({meta:{name:`analytics.dashboard.create`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`dashboard`,`create`],description:`Create a new analytics dashboard.`,goal:`Allow users to create custom dashboards.`,context:`Dashboard management.`},io:{input:m,output:d},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.dashboard.created`,version:1,when:`Dashboard created`,payload:d}],audit:[`analytics.dashboard.created`]}}),x=r({meta:{name:`analytics.widget.add`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`widget`,`add`],description:`Add a widget to a dashboard.`,goal:`Allow users to add visualizations.`,context:`Dashboard editor.`},io:{input:h,output:u},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.widget.added`,version:1,when:`Widget added`,payload:u}]}}),S=r({meta:{name:`analytics.query.create`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`query`,`create`],description:`Create a data query.`,goal:`Define reusable data queries.`,context:`Query builder.`},io:{input:g,output:f},policy:{auth:`user`},sideEffects:{emits:[{name:`analytics.query.created`,version:1,when:`Query created`,payload:f}],audit:[`analytics.query.created`]}}),C=i({meta:{name:`analytics.query.execute`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`query`,`execute`],description:`Execute a data query.`,goal:`Fetch data for visualizations.`,context:`Dashboard rendering.`},io:{input:_,output:p},policy:{auth:`user`}}),w=i({meta:{name:`analytics.dashboard.list`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`dashboard`,`list`],description:`List dashboards.`,goal:`Browse available dashboards.`,context:`Dashboard listing.`},io:{input:v,output:y},policy:{auth:`user`}}),T=n({name:`GetDashboardInput`,fields:{dashboardId:{type:e.String_unsecure(),isOptional:!0},slug:{type:e.String_unsecure(),isOptional:!0},shareToken:{type:e.String_unsecure(),isOptional:!0}}}),E=i({meta:{name:`analytics.dashboard.get`,version:1,stability:`stable`,owners:[...a],tags:[`analytics`,`dashboard`,`get`],description:`Get a dashboard with widgets.`,goal:`Load dashboard for viewing.`,context:`Dashboard view.`},io:{input:T,output:d},policy:{auth:`anonymous`}});export{x as AddWidgetContract,h as AddWidgetInputModel,b as CreateDashboardContract,m as CreateDashboardInputModel,S as CreateQueryContract,g as CreateQueryInputModel,d as DashboardModel,C as ExecuteQueryContract,_ as ExecuteQueryInputModel,E as GetDashboardContract,T as GetDashboardInputModel,w as ListDashboardsContract,v as ListDashboardsInputModel,y as ListDashboardsOutputModel,f as QueryModel,p as QueryResultModel,u as WidgetModel};
|
package/dist/entities/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`DashboardStatus`,values:[`DRAFT`,`PUBLISHED`,`ARCHIVED`],schema:`analytics`,description:`Status of a dashboard.`}),a=t({name:`WidgetType`,values:[`LINE_CHART`,`BAR_CHART`,`PIE_CHART`,`AREA_CHART`,`SCATTER_PLOT`,`METRIC`,`TABLE`,`HEATMAP`,`FUNNEL`,`MAP`,`TEXT`,`EMBED`],schema:`analytics`,description:`Type of widget visualization.`}),o=t({name:`QueryType`,values:[`SQL`,`METRIC`,`AGGREGATION`,`CUSTOM`],schema:`analytics`,description:`Type of data query.`}),s=t({name:`RefreshInterval`,values:[`NONE`,`MINUTE`,`FIVE_MINUTES`,`FIFTEEN_MINUTES`,`HOUR`,`DAY`],schema:`analytics`,description:`Auto-refresh interval.`}),c=t({name:`ChartType`,values:[`LINE`,`BAR`,`PIE`,`AREA`,`SCATTER`,`HEATMAP`,`FUNNEL`,`MAP`],schema:`analytics`,description:`Type of chart visualization.`}),l=t({name:`TimeRange`,values:[`LAST_HOUR`,`LAST_24_HOURS`,`LAST_7_DAYS`,`LAST_30_DAYS`,`LAST_90_DAYS`,`CUSTOM`],schema:`analytics`,description:`Predefined time range options.`}),u=t({name:`ReportFormat`,values:[`PDF`,`CSV`,`EXCEL`,`PNG`,`JSON`],schema:`analytics`,description:`Report export format.`}),d=e({name:`Dashboard`,description:`An analytics dashboard with widgets.`,schema:`analytics`,map:`dashboard`,fields:{id:n.id({description:`Unique dashboard ID`}),name:n.string({description:`Dashboard name`}),slug:n.string({description:`URL-friendly identifier`}),description:n.string({isOptional:!0}),status:n.enum(`DashboardStatus`,{default:`DRAFT`}),layout:n.json({isOptional:!0,description:`Grid layout configuration`}),refreshInterval:n.enum(`RefreshInterval`,{default:`NONE`}),dateRange:n.json({isOptional:!0,description:`Default date range`}),filters:n.json({isOptional:!0,description:`Global dashboard filters`}),isPublic:n.boolean({default:!1}),shareToken:n.string({isOptional:!0}),organizationId:n.foreignKey(),createdBy:n.foreignKey(),createdAt:n.createdAt(),updatedAt:n.updatedAt(),publishedAt:n.dateTime({isOptional:!0}),widgets:n.hasMany(`Widget`)},indexes:[r.unique([`organizationId`,`slug`]),r.on([`organizationId`,`status`]),r.on([`shareToken`]),r.on([`createdBy`])],enums:[i,s]}),f=e({name:`Widget`,description:`A visualization widget on a dashboard.`,schema:`analytics`,map:`widget`,fields:{id:n.id(),dashboardId:n.foreignKey(),name:n.string({description:`Widget title`}),description:n.string({isOptional:!0}),type:n.enum(`WidgetType`,{default:`LINE_CHART`}),gridX:n.int({default:0}),gridY:n.int({default:0}),gridWidth:n.int({default:6}),gridHeight:n.int({default:4}),queryId:n.string({isOptional:!0}),config:n.json({isOptional:!0,description:`Widget-specific configuration`}),styling:n.json({isOptional:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),dashboard:n.belongsTo(`Dashboard`,[`dashboardId`],[`id`],{onDelete:`Cascade`}),query:n.belongsTo(`Query`,[`queryId`],[`id`])},indexes:[r.on([`dashboardId`]),r.on([`queryId`])],enums:[a]}),p=e({name:`Query`,description:`A data query for analytics.`,schema:`analytics`,map:`query`,fields:{id:n.id(),name:n.string({description:`Query name`}),description:n.string({isOptional:!0}),type:n.enum(`QueryType`,{default:`AGGREGATION`}),definition:n.json({description:`Query definition`}),sql:n.string({isOptional:!0}),metricIds:n.string({isArray:!0}),cacheTtlSeconds:n.int({default:300}),organizationId:n.foreignKey(),createdBy:n.foreignKey(),isShared:n.boolean({default:!1}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),widgets:n.hasMany(`Widget`)},indexes:[r.on([`organizationId`,`isShared`]),r.on([`createdBy`]),r.on([`type`])],enums:[o]}),m=e({name:`SavedFilter`,description:`A saved filter configuration.`,schema:`analytics`,map:`saved_filter`,fields:{id:n.id(),name:n.string(),description:n.string({isOptional:!0}),filterConfig:n.json({description:`Filter configuration`}),dashboardId:n.string({isOptional:!0}),isGlobal:n.boolean({default:!1}),organizationId:n.foreignKey(),createdBy:n.foreignKey(),createdAt:n.createdAt(),updatedAt:n.updatedAt(),dashboard:n.belongsTo(`Dashboard`,[`dashboardId`],[`id`])},indexes:[r.on([`organizationId`,`isGlobal`]),r.on([`dashboardId`]),r.on([`createdBy`])]}),h=e({name:`Report`,description:`A scheduled or on-demand report.`,schema:`analytics`,map:`report`,fields:{id:n.id(),name:n.string(),description:n.string({isOptional:!0}),dashboardId:n.foreignKey({isOptional:!0}),queryIds:n.string({isArray:!0}),scheduleEnabled:n.boolean({default:!1}),scheduleCron:n.string({isOptional:!0}),recipients:n.string({isArray:!0}),format:n.string({default:`"PDF"`}),lastRunAt:n.dateTime({isOptional:!0}),lastRunStatus:n.string({isOptional:!0}),organizationId:n.foreignKey(),createdBy:n.foreignKey(),createdAt:n.createdAt(),updatedAt:n.updatedAt(),dashboard:n.belongsTo(`Dashboard`,[`dashboardId`],[`id`]),runs:n.hasMany(`ReportRun`)},indexes:[r.on([`organizationId`]),r.on([`dashboardId`]),r.on([`scheduleEnabled`])]}),g=e({name:`ReportRun`,description:`A report execution record.`,schema:`analytics`,map:`report_run`,fields:{id:n.id(),reportId:n.foreignKey(),status:n.string({default:`"PENDING"`}),fileId:n.string({isOptional:!0}),errorMessage:n.string({isOptional:!0}),startedAt:n.dateTime({isOptional:!0}),completedAt:n.dateTime({isOptional:!0}),createdAt:n.createdAt(),report:n.belongsTo(`Report`,[`reportId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`reportId`,`createdAt`]),r.on([`status`])]}),_=[d,f,p,m,h,g],v={moduleId:`@lssm/example.analytics-dashboard`,entities:_,enums:[i,a,o,s,c,l,u]};export{c as ChartTypeEnum,d as DashboardEntity,i as DashboardStatusEnum,p as QueryEntity,o as QueryTypeEnum,s as RefreshIntervalEnum,h as ReportEntity,u as ReportFormatEnum,g as ReportRunEntity,m as SavedFilterEntity,l as TimeRangeEnum,f as WidgetEntity,a as WidgetTypeEnum,_ as analyticsDashboardEntities,v as analyticsDashboardSchemaContribution};
|
package/dist/events.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=t({name:`DashboardCreatedEventPayload`,fields:{dashboardId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},organizationId:{type:e.String_unsecure(),isOptional:!1},createdBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),i=t({name:`DashboardPublishedEventPayload`,fields:{dashboardId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},publishedBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=t({name:`WidgetAddedEventPayload`,fields:{widgetId:{type:e.String_unsecure(),isOptional:!1},dashboardId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`QueryCreatedEventPayload`,fields:{queryId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},organizationId:{type:e.String_unsecure(),isOptional:!1},createdBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`QueryExecutedEventPayload`,fields:{queryId:{type:e.String_unsecure(),isOptional:!1},executionTimeMs:{type:e.Int_unsecure(),isOptional:!1},rowCount:{type:e.Int_unsecure(),isOptional:!1},cached:{type:e.Boolean(),isOptional:!1},executedBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),c=t({name:`DashboardViewedEventPayload`,fields:{dashboardId:{type:e.String_unsecure(),isOptional:!1},viewedBy:{type:e.String_unsecure(),isOptional:!0},isPublicView:{type:e.Boolean(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`ReportGeneratedEventPayload`,fields:{reportId:{type:e.String_unsecure(),isOptional:!1},reportRunId:{type:e.String_unsecure(),isOptional:!1},format:{type:e.String_unsecure(),isOptional:!1},recipientCount:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),u=n({name:`analytics.dashboard.created`,version:1,description:`A new dashboard has been created.`,payload:r}),d=n({name:`analytics.dashboard.published`,version:1,description:`A dashboard has been published.`,payload:i}),f=n({name:`analytics.widget.added`,version:1,description:`A widget has been added to a dashboard.`,payload:a}),p=n({name:`analytics.query.created`,version:1,description:`A query has been created.`,payload:o}),m=n({name:`analytics.query.executed`,version:1,description:`A query has been executed.`,payload:s}),h=n({name:`analytics.dashboard.viewed`,version:1,description:`A dashboard has been viewed.`,payload:c}),g=n({name:`analytics.report.generated`,version:1,description:`A report has been generated.`,payload:l}),_={DashboardCreatedEvent:u,DashboardPublishedEvent:d,WidgetAddedEvent:f,QueryCreatedEvent:p,QueryExecutedEvent:m,DashboardViewedEvent:h,ReportGeneratedEvent:g};export{_ as AnalyticsDashboardEvents,u as DashboardCreatedEvent,d as DashboardPublishedEvent,h as DashboardViewedEvent,p as QueryCreatedEvent,m as QueryExecutedEvent,g as ReportGeneratedEvent,f as WidgetAddedEvent};
|
package/dist/handlers/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={dashboards:new Map,widgets:new Map,queries:new Map,filters:new Map,reports:new Map};async function t(t,n){let r=`dash_${Date.now()}`,i=new Date,a={id:r,name:t.name,slug:t.slug,description:t.description,status:`DRAFT`,refreshInterval:t.refreshInterval??`NONE`,dateRange:t.dateRange,isPublic:!1,organizationId:n.organizationId,createdBy:n.userId,createdAt:i,updatedAt:i};return e.dashboards.set(r,a),{id:r,name:t.name,slug:t.slug,status:`DRAFT`,createdAt:i}}async function n(t,n){let r=`widget_${Date.now()}`,i=new Date,a={id:r,dashboardId:t.dashboardId,name:t.name,type:t.type,gridX:t.gridX??0,gridY:t.gridY??0,gridWidth:t.gridWidth??6,gridHeight:t.gridHeight??4,queryId:t.queryId,config:t.config,createdAt:i,updatedAt:i};return e.widgets.set(r,a),{id:r,dashboardId:t.dashboardId,name:t.name,type:t.type}}async function r(t,n){let r=`query_${Date.now()}`,i=new Date,a={id:r,name:t.name,description:t.description,type:t.type,definition:t.definition,sql:t.sql,metricIds:t.metricIds??[],cacheTtlSeconds:t.cacheTtlSeconds??300,isShared:t.isShared??!1,organizationId:n.organizationId,createdBy:n.userId,createdAt:i,updatedAt:i};return e.queries.set(r,a),{id:r,name:t.name,type:t.type,isShared:t.isShared??!1,createdAt:i}}async function i(t,n){let r=Array.from(e.dashboards.values()).filter(e=>e.organizationId===n.organizationId);if(t.status&&(r=r.filter(e=>e.status===t.status)),t.search){let e=t.search.toLowerCase();r=r.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))}let i=r.length,a=t.offset??0,o=t.limit??20;return r=r.sort((e,t)=>{let n=e.createdAt.getTime();return t.createdAt.getTime()-n}).slice(a,a+o),{dashboards:r,total:i}}async function a(t,n){let r;if(t.dashboardId?r=e.dashboards.get(t.dashboardId):t.slug?r=Array.from(e.dashboards.values()).find(e=>e.slug===t.slug&&e.organizationId===n.organizationId):t.shareToken&&(r=Array.from(e.dashboards.values()).find(e=>e.shareToken===t.shareToken)),!r)throw Error(`Dashboard not found`);let i=Array.from(e.widgets.values()).filter(e=>e.dashboardId===r.id);return{...r,widgets:i}}export{n as handleAddWidget,t as handleCreateDashboard,r as handleCreateQuery,a as handleGetDashboard,i as handleListDashboards,e as mockAnalyticsStore};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={name:`analytics.dashboards.list`,type:`list`,description:`Dashboard listing page with search and filters`,layout:{header:{title:`Analytics Dashboards`,actions:[`create_dashboard`]},filters:[`status`,`search`],list:{itemType:`dashboard_card`,pagination:!0,itemsPerPage:20}},dataSource:{query:`analytics.dashboard.list`,defaultParams:{status:void 0,limit:20,offset:0}},actions:{create_dashboard:{label:`New Dashboard`,icon:`plus`,command:`analytics.dashboard.create`}}},t={name:`analytics.dashboard.view`,type:`dashboard`,description:`Dashboard viewing/editing interface`,layout:{header:{title:`{{dashboard.name}}`,breadcrumbs:[`Dashboards`,`{{dashboard.name}}`],actions:[`edit`,`share`,`refresh`,`export`]},toolbar:{dateRangePicker:!0,filters:!0,refreshInterval:!0},grid:{type:`responsive`,columns:12,rowHeight:100,margin:16},widgets:{dragEnabled:`{{isEditing}}`,resizeEnabled:`{{isEditing}}`}},dataSource:{query:`analytics.dashboard.get`,params:{dashboardId:`{{params.dashboardId}}`,slug:`{{params.slug}}`}},actions:{edit:{label:`Edit`,icon:`edit`,toggleState:`isEditing`,requiresPermission:`dashboard:edit`},share:{label:`Share`,icon:`share`,openModal:`share_dashboard`},refresh:{label:`Refresh`,icon:`refresh`,action:`refreshAllWidgets`},export:{label:`Export`,icon:`download`,openMenu:[`export_pdf`,`export_png`,`export_csv`]}}},n={name:`analytics.dashboard.editor`,type:`editor`,description:`Dashboard editing interface with widget palette`,layout:{header:{title:`Edit: {{dashboard.name}}`,actions:[`save`,`preview`,`discard`]},sidebar:{widgetPalette:!0,queryBuilder:!0,settings:!0},main:{type:`grid_editor`,columns:12,rowHeight:100,snapToGrid:!0},footer:{statusBar:!0,lastSaved:!0}},widgetPalette:{categories:[{name:`Charts`,widgets:[`line_chart`,`bar_chart`,`pie_chart`,`area_chart`,`scatter_plot`]},{name:`Data`,widgets:[`metric`,`table`,`funnel`]},{name:`Visualization`,widgets:[`heatmap`,`map`,`text`,`embed`]}]},actions:{save:{label:`Save`,icon:`save`,command:`analytics.dashboard.update`,primary:!0},preview:{label:`Preview`,icon:`eye`,toggleState:`previewMode`},discard:{label:`Discard Changes`,icon:`x`,confirmMessage:`Discard unsaved changes?`,action:`discardChanges`}}},r={name:`analytics.widget.configure`,type:`modal`,description:`Widget configuration panel`,layout:{tabs:[`data`,`visualization`,`formatting`]},tabs:{data:{label:`Data`,sections:[{name:`Query`,fields:[`queryId`,`createNewQuery`]},{name:`Filters`,fields:[`inheritDashboardFilters`,`additionalFilters`]}]},visualization:{label:`Visualization`,sections:[{name:`Chart Type`,fields:[`chartType`,`chartVariant`]},{name:`Axes`,fields:[`xAxis`,`yAxis`,`secondaryYAxis`]},{name:`Legend`,fields:[`showLegend`,`legendPosition`]}]},formatting:{label:`Formatting`,sections:[{name:`Title`,fields:[`title`,`subtitle`,`titleAlignment`]},{name:`Colors`,fields:[`colorScheme`,`customColors`]},{name:`Numbers`,fields:[`numberFormat`,`decimals`,`prefix`,`suffix`]}]}}},i={name:`analytics.query.builder`,type:`builder`,description:`Visual query builder interface`,layout:{header:{title:`Query Builder`,actions:[`run`,`save`,`clear`]},main:{queryTypeSelector:!0,builderArea:!0,preview:!0},footer:{executionStats:!0}},queryTypes:{metric:{label:`Metric Query`,icon:`hash`,description:`Query usage metrics`},aggregation:{label:`Aggregation`,icon:`layers`,description:`Aggregate data with measures and dimensions`},sql:{label:`SQL`,icon:`code`,description:`Write custom SQL query`}},builderComponents:{metricSelector:{type:`multi_select`,source:`metering.metrics.list`},measureBuilder:{type:`field_list`,fields:[`name`,`field`,`aggregation`,`format`]},dimensionBuilder:{type:`field_list`,fields:[`name`,`field`,`type`,`granularity`]},filterBuilder:{type:`condition_builder`,operators:[`eq`,`neq`,`gt`,`gte`,`lt`,`lte`,`in`,`contains`,`between`]},sqlEditor:{type:`code_editor`,language:`sql`,autoComplete:!0,formatOnSave:!0}}},a={DashboardListPresentation:e,DashboardViewPresentation:t,DashboardEditorPresentation:n,WidgetConfigurationPresentation:r,QueryBuilderPresentation:i};export{a as AnalyticsDashboardPresentations,n as DashboardEditorPresentation,e as DashboardListPresentation,t as DashboardViewPresentation,i as QueryBuilderPresentation,r as WidgetConfigurationPresentation};
|