@verifiedinc-public/shared-ui-elements 8.21.2 → 8.22.0

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.
Files changed (106) hide show
  1. package/dist/components/chart/OneClickHealthBigNumbers/OneClickHealthBigNumbers.d.ts +1 -1
  2. package/dist/components/chart/OneClickHealthBigNumbers/OneClickHealthBigNumbers.mjs +1 -1
  3. package/dist/components/chart/OneClickHealthBigNumbers/OneClickHealthBigNumbersMapper.d.ts +3 -8
  4. package/dist/components/chart/OneClickHealthBigNumbers/OneClickHealthBigNumbersMapper.mjs +1 -1
  5. package/dist/components/chart/OneClickHealthOutcomeOverTimeChart/OneClickHealthOutcomeOverTimeChart.d.ts +16 -0
  6. package/dist/components/chart/OneClickHealthOutcomeOverTimeChart/OneClickHealthOutcomeOverTimeChart.map.d.ts +22 -0
  7. package/dist/components/chart/OneClickHealthOutcomeOverTimeChart/OneClickHealthOutcomeOverTimeChart.map.mjs +1 -0
  8. package/dist/components/chart/OneClickHealthOutcomeOverTimeChart/OneClickHealthOutcomeOverTimeChart.mjs +1 -0
  9. package/dist/components/chart/OneClickHealthOutcomeOverTimeChart/index.d.ts +2 -0
  10. package/dist/components/chart/OneClickHealthOverTimeChart/OneClickHealthOverTimeChart.d.ts +4 -0
  11. package/dist/components/chart/OneClickHealthPercentageChart/OneClickHealthPercentageChart.d.ts +4 -0
  12. package/dist/components/chart/OneClickHealthSynchronizedMetricsChart/OneClickHealthSynchronizedMetricsChart.d.ts +17 -0
  13. package/dist/components/chart/OneClickHealthSynchronizedMetricsChart/OneClickHealthSynchronizedMetricsChart.map.d.ts +18 -0
  14. package/dist/components/chart/OneClickHealthSynchronizedMetricsChart/OneClickHealthSynchronizedMetricsChart.map.mjs +1 -0
  15. package/dist/components/chart/OneClickHealthSynchronizedMetricsChart/OneClickHealthSynchronizedMetricsChart.mjs +1 -0
  16. package/dist/components/chart/OneClickHealthSynchronizedMetricsChart/index.d.ts +2 -0
  17. package/dist/components/chart/OneClickOverTimeChart/OneClickOverTimeChart.d.ts +4 -0
  18. package/dist/components/chart/OneClickPercentageChart/OneClickPercentageChart.d.ts +4 -0
  19. package/dist/components/chart/OneClickSignupOutcomeOverTimeChart/OneClickSignupOutcomeOverTimeChart.d.ts +16 -0
  20. package/dist/components/chart/OneClickSignupOutcomeOverTimeChart/OneClickSignupOutcomeOverTimeChart.map.d.ts +21 -0
  21. package/dist/components/chart/OneClickSignupOutcomeOverTimeChart/OneClickSignupOutcomeOverTimeChart.map.mjs +1 -0
  22. package/dist/components/chart/OneClickSignupOutcomeOverTimeChart/OneClickSignupOutcomeOverTimeChart.mjs +1 -0
  23. package/dist/components/chart/OneClickSignupOutcomeOverTimeChart/index.d.ts +2 -0
  24. package/dist/components/chart/OneClickSignupSynchronizedMetricsChart/OneClickSignupSynchronizedMetricsChart.d.ts +17 -0
  25. package/dist/components/chart/OneClickSignupSynchronizedMetricsChart/OneClickSignupSynchronizedMetricsChart.map.d.ts +18 -0
  26. package/dist/components/chart/OneClickSignupSynchronizedMetricsChart/OneClickSignupSynchronizedMetricsChart.map.mjs +1 -0
  27. package/dist/components/chart/OneClickSignupSynchronizedMetricsChart/OneClickSignupSynchronizedMetricsChart.mjs +1 -0
  28. package/dist/components/chart/OneClickSignupSynchronizedMetricsChart/index.d.ts +2 -0
  29. package/dist/components/chart/OneClickVerificationBigNumbers/OneClickVerificationBigNumbers.d.ts +3 -3
  30. package/dist/components/chart/OneClickVerificationBigNumbers/OneClickVerificationBigNumbers.mjs +1 -1
  31. package/dist/components/chart/OneClickVerificationBigNumbers/OneClickVerificationBigNumbersMapper.d.ts +5 -7
  32. package/dist/components/chart/OneClickVerificationBigNumbers/OneClickVerificationBigNumbersMapper.mjs +1 -1
  33. package/dist/components/chart/OneClickVerificationFunnelChart/OneClickVerificationFunnelChart.mjs +1 -1
  34. package/dist/components/chart/OneClickVerificationOutcomeOverTimeChart/OneClickVerificationOutcomeOverTimeChart.d.ts +9 -4
  35. package/dist/components/chart/OneClickVerificationOutcomeOverTimeChart/OneClickVerificationOutcomeOverTimeChart.mjs +1 -1
  36. package/dist/components/chart/OutcomeOverTimeChart/OutcomeOverTimeChart.d.ts +18 -0
  37. package/dist/components/chart/OutcomeOverTimeChart/OutcomeOverTimeChart.mjs +1 -0
  38. package/dist/components/chart/OutcomeOverTimeChart/index.d.ts +1 -0
  39. package/dist/components/chart/OverviewBigNumbers/OverviewBigNumbers.d.ts +7 -0
  40. package/dist/components/chart/OverviewBigNumbers/OverviewBigNumbers.mjs +1 -0
  41. package/dist/components/chart/OverviewBigNumbers/OverviewBigNumbers.types.d.ts +13 -0
  42. package/dist/components/chart/OverviewBigNumbers/OverviewBigNumbers.types.mjs +1 -0
  43. package/dist/components/chart/OverviewBigNumbers/index.d.ts +2 -0
  44. package/dist/components/chart/SignupBigNumbers/SignupBigNumbers.d.ts +1 -1
  45. package/dist/components/chart/SignupBigNumbers/SignupBigNumbers.mjs +1 -1
  46. package/dist/components/chart/SignupBigNumbers/SignupBigNumbersMapper.d.ts +5 -8
  47. package/dist/components/chart/SignupBigNumbers/SignupBigNumbersMapper.mjs +1 -1
  48. package/dist/components/chart/SynchronizedMetricsChart/SynchronizedMetricsChart.d.ts +3 -0
  49. package/dist/components/chart/SynchronizedMetricsChart/SynchronizedMetricsChart.mjs +1 -0
  50. package/dist/components/chart/SynchronizedMetricsChart/SynchronizedMetricsChart.types.d.ts +21 -0
  51. package/dist/components/chart/SynchronizedMetricsChart/index.d.ts +2 -0
  52. package/dist/components/chart/TTSBigNumbers/TTSBigNumbers.d.ts +1 -1
  53. package/dist/components/chart/TTSBigNumbers/TTSBigNumbers.mjs +1 -1
  54. package/dist/components/chart/TTSBigNumbers/TTSBigNumbersMapper.d.ts +5 -8
  55. package/dist/components/chart/TTSBigNumbers/TTSBigNumbersMapper.mjs +1 -1
  56. package/dist/components/chart/index.d.ts +7 -0
  57. package/dist/components/chart/index.mjs +1 -1
  58. package/dist/components/form/DateInput/index.mjs +1 -1
  59. package/dist/components/form/MemberIdInput.d.ts +21 -0
  60. package/dist/components/form/MemberIdInput.mjs +1 -0
  61. package/dist/components/form/NewOneClickForm/core/fields/healthInsurance.d.ts +104 -0
  62. package/dist/components/form/NewOneClickForm/core/fields/healthInsurance.mjs +1 -0
  63. package/dist/components/form/NewOneClickForm/core/fields/index.d.ts +86 -0
  64. package/dist/components/form/NewOneClickForm/core/fields/index.mjs +1 -1
  65. package/dist/components/form/NewOneClickForm/core/form/form.d.ts +8 -0
  66. package/dist/components/form/NewOneClickForm/core/form/formBuilder.mjs +1 -1
  67. package/dist/components/form/NewOneClickForm/core/form/formField.mjs +1 -1
  68. package/dist/components/form/NewOneClickForm/core/form/formFieldBuilder.mjs +1 -1
  69. package/dist/components/form/NewOneClickForm/core/formats/healthInsurance.format.d.ts +3 -0
  70. package/dist/components/form/NewOneClickForm/core/formats/healthInsurance.format.mjs +1 -0
  71. package/dist/components/form/NewOneClickForm/core/formats/index.d.ts +1 -0
  72. package/dist/components/form/NewOneClickForm/core/internal/mappers/domain.map.d.ts +2 -0
  73. package/dist/components/form/NewOneClickForm/core/internal/mappers/domain.map.mjs +1 -0
  74. package/dist/components/form/NewOneClickForm/core/internal/mappers/index.d.ts +1 -0
  75. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/healthInsurance.schema.d.ts +35 -0
  76. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/healthInsurance.schema.mjs +1 -0
  77. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/index.d.ts +3 -0
  78. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/memberId.schema.d.ts +3 -0
  79. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/memberId.schema.mjs +1 -0
  80. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/payerName.schema.d.ts +3 -0
  81. package/dist/components/form/NewOneClickForm/core/validations/healthInsurance/payerName.schema.mjs +1 -0
  82. package/dist/components/form/NewOneClickForm/core/validations/index.d.ts +1 -0
  83. package/dist/components/form/NewOneClickForm/react/ui/fields/input/date.field.mjs +1 -1
  84. package/dist/components/form/NewOneClickForm/react/ui/fields/input/field.mjs +1 -1
  85. package/dist/components/form/NewOneClickForm/react/ui/fields/input/healthInsurance.field.d.ts +3 -0
  86. package/dist/components/form/NewOneClickForm/react/ui/fields/input/healthInsurance.field.mjs +1 -0
  87. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/driversLicense.field.d.ts +3 -0
  88. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/driversLicense.field.mjs +1 -0
  89. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/field.mjs +1 -1
  90. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/healthInsurance.field.d.ts +3 -0
  91. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/healthInsurance.field.mjs +1 -0
  92. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/variantSelect.field.d.ts +8 -0
  93. package/dist/components/form/NewOneClickForm/react/ui/fields/readonly/variantSelect.field.mjs +1 -0
  94. package/dist/components/form/NewOneClickForm/react/ui/fields/shared.mjs +1 -1
  95. package/dist/components/form/NewOneClickForm/react/ui/fields/style.d.ts +13 -3
  96. package/dist/components/form/NewOneClickForm/react/ui/fields/style.mjs +1 -1
  97. package/dist/components/form/NewOneClickForm/react/ui/form-content.mjs +1 -1
  98. package/dist/components/form/NewOneClickForm/react/ui/form.context.d.ts +10 -0
  99. package/dist/components/form/NewOneClickForm/react/ui/form.context.mjs +1 -1
  100. package/dist/components/form/NewOneClickForm/react/ui/form.mjs +1 -1
  101. package/dist/components/index.mjs +1 -1
  102. package/dist/index.mjs +1 -1
  103. package/dist/utils/color/index.d.ts +8 -0
  104. package/dist/utils/color/index.mjs +1 -1
  105. package/dist/utils/index.mjs +1 -1
  106. package/package.json +1 -1
@@ -4,4 +4,4 @@ export interface OneClickHealthBigNumbersProps {
4
4
  isLoading: boolean;
5
5
  hideTotalCost?: boolean;
6
6
  }
7
- export declare function OneClickHealthBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<OneClickHealthBigNumbersProps>): React.ReactNode;
7
+ export declare function OneClickHealthBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<OneClickHealthBigNumbersProps>): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use strict";import{Stack as r}from"@mui/material";import{BigNumber as t}from"../BigNumber/index.mjs";import{formatNumberRounded as s,formatCurrency as c,formatPercentage as u}from"../../../utils/number/formatters.mjs";import{defaultMetrics as m,calculateOneClickHealthMetrics as n}from"./OneClickHealthBigNumbersMapper.mjs";import{jsxs as f,jsx as e}from"react/jsx-runtime";function p({chartData:l,isLoading:o=!0,hideTotalCost:i=!1}){const a=o?m:n(l);return f(r,{direction:"row",spacing:3,children:[e(t,{label:"Total Created",value:a.total,initialValue:a.total,map:s}),e(t,{label:"Total Success",value:a.success,initialValue:a.success,map:s}),!i&&e(t,{label:"Total Cost",value:a.totalCost,initialValue:a.totalCost,map:c}),e(t,{label:"Success Rate",value:a.successRate,initialValue:a.successRate,map:u})]})}export{p as OneClickHealthBigNumbers};
1
+ "use strict";import{calculateOneClickHealthMetrics as a}from"./OneClickHealthBigNumbersMapper.mjs";import{jsx as e}from"react/jsx-runtime";import{OverviewBigNumbers as o}from"../OverviewBigNumbers/OverviewBigNumbers.mjs";import{defaultOverviewMetrics as s}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";function m({chartData:t,isLoading:i=!0,hideTotalCost:r=!1}){return e(o,{metrics:i?s:a(t),isLoading:i,hideTotalCost:r})}export{m as OneClickHealthBigNumbers};
@@ -1,10 +1,5 @@
1
- export interface OneClickHealthOverallMetrics {
2
- total: number;
3
- success: number;
4
- totalCost: number;
5
- successRate: number;
6
- }
7
- export declare const defaultMetrics: OneClickHealthOverallMetrics;
1
+ import { OverviewMetrics } from '../OverviewBigNumbers/OverviewBigNumbers.types';
2
+ export declare const defaultMetrics: OverviewMetrics;
8
3
  export interface OneClickHealthBigNumbersChartData {
9
4
  interval?: Array<{
10
5
  oneClickHealthCreated: number;
@@ -15,4 +10,4 @@ export interface OneClickHealthBigNumbersChartData {
15
10
  brandUuid: string;
16
11
  brandName: string;
17
12
  }
18
- export declare function calculateOneClickHealthMetrics(data: OneClickHealthBigNumbersChartData[]): OneClickHealthOverallMetrics;
13
+ export declare function calculateOneClickHealthMetrics(data: OneClickHealthBigNumbersChartData[]): OverviewMetrics;
@@ -1 +1 @@
1
- "use strict";const o={total:0,success:0,totalCost:0,successRate:0};function C(e){if(!(e!=null&&e.length))return o;let t=0,c=0;const u=0;e.forEach(l=>{var r;if((r=l.interval)!=null&&r.length){const i=l.interval.reduce((a,s)=>a+(s.oneClickHealthCreated||0),0),h=l.interval.reduce((a,s)=>a+(s.oneClickHealthSucceeded||0),0);t+=i,c+=h}});const n=t>0?c/t:0;return{total:t,success:c,totalCost:u,successRate:isNaN(n)?0:n}}export{C as calculateOneClickHealthMetrics,o as defaultMetrics};
1
+ "use strict";import{defaultOverviewMetrics as f}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";const s=f;function v(t){if(!(t!=null&&t.length))return s;let e=0,c=0;const i=0;t.forEach(l=>{var r;if((r=l.interval)!=null&&r.length){const u=l.interval.reduce((a,n)=>a+(n.oneClickHealthCreated||0),0),d=l.interval.reduce((a,n)=>a+(n.oneClickHealthSucceeded||0),0);e+=u,c+=d}});const o=e>0?c/e:0;return{started:e,succeeded:c,totalCost:i,successRate:o}}export{v as calculateOneClickHealthMetrics,s as defaultMetrics};
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { OneClickHealthOutcomeBrandData } from './OneClickHealthOutcomeOverTimeChart.map';
4
+ import { BrandFilter } from '../../BrandFilterInput';
5
+ export interface OneClickHealthOutcomeOverTimeChartProps {
6
+ chartData: OneClickHealthOutcomeBrandData[];
7
+ isLoading: boolean;
8
+ isSuccess: boolean;
9
+ isFetching: boolean;
10
+ filter: {
11
+ timezone?: string;
12
+ brands?: BrandFilter[];
13
+ };
14
+ sx?: SxProps;
15
+ }
16
+ export declare function OneClickHealthOutcomeOverTimeChart({ chartData, isLoading, ...rest }: Readonly<OneClickHealthOutcomeOverTimeChartProps>): React.ReactNode;
@@ -0,0 +1,22 @@
1
+ import { AreaSeriesChartData } from '../AreaChart';
2
+ import { BrandFilter } from '../../BrandFilterInput';
3
+ export interface OneClickHealthOutcomeIntervalEntry {
4
+ date: string | number;
5
+ oneClickHealthSucceeded: number;
6
+ oneClickHealthPartial: number;
7
+ oneClickHealthFailed: number;
8
+ }
9
+ export interface OneClickHealthOutcomeBrandData {
10
+ brandUuid: string;
11
+ brandName: string;
12
+ interval?: OneClickHealthOutcomeIntervalEntry[];
13
+ }
14
+ export interface MapOneClickHealthOutcomeOverTimeChartDataOptions {
15
+ brands?: BrandFilter[];
16
+ data: OneClickHealthOutcomeBrandData[];
17
+ }
18
+ export interface OneClickHealthOutcomeChartData {
19
+ series: AreaSeriesChartData[];
20
+ data: Array<Record<string, number | string>>;
21
+ }
22
+ export declare function mapOneClickHealthOutcomeOverTimeChartData(options: MapOneClickHealthOutcomeOverTimeChartDataOptions): OneClickHealthOutcomeChartData;
@@ -0,0 +1 @@
1
+ "use strict";import{mapAreaChartData as s}from"../AreaChart/AreaChart.map.mjs";import{green as h,yellow as k,red as C}from"../../../styles/colors.mjs";function u(r){const l=new Map,c=r.brands?new Set(r.brands.map(a=>a._raw.brandUuid)):null;for(const a of r.data)if(!(c&&!c.has(a.brandUuid)))for(const t of a.interval??[]){const o=+new Date(t.date);l.has(o)||l.set(o,{date:o,oneClickHealthSucceeded:0,oneClickHealthPartial:0,oneClickHealthFailed:0});const e=l.get(o);e&&(e.oneClickHealthSucceeded=e.oneClickHealthSucceeded+Number(t.oneClickHealthSucceeded||0),e.oneClickHealthPartial=e.oneClickHealthPartial+Number(t.oneClickHealthPartial||0),e.oneClickHealthFailed=e.oneClickHealthFailed+Number(t.oneClickHealthFailed||0))}const i=Array.from(l.values()).sort((a,t)=>a.date-t.date),{series:d,data:n}=s({data:i,seriesConfig:[{key:"Succeeded",dataKey:"oneClickHealthSucceeded",color:h},{key:"Partial",dataKey:"oneClickHealthPartial",color:k},{key:"Failed",dataKey:"oneClickHealthFailed",color:C}]});return{series:d,data:n}}export{u as mapOneClickHealthOutcomeOverTimeChartData};
@@ -0,0 +1 @@
1
+ "use strict";import{mapOneClickHealthOutcomeOverTimeChartData as s}from"./OneClickHealthOutcomeOverTimeChart.map.mjs";import{jsx as o}from"react/jsx-runtime";import{OutcomeOverTimeChart as m}from"../OutcomeOverTimeChart/OutcomeOverTimeChart.mjs";function n({chartData:e,isLoading:a=!0,...t}){const{series:r,data:i}=a?{series:[],data:[]}:s({brands:t.filter.brands,data:e});return o(m,{data:i,series:r,isLoading:a,...t})}export{n as OneClickHealthOutcomeOverTimeChart};
@@ -0,0 +1,2 @@
1
+ export * from './OneClickHealthOutcomeOverTimeChart';
2
+ export * from './OneClickHealthOutcomeOverTimeChart.map';
@@ -14,4 +14,8 @@ export interface OneClickHealthOverTimeChartProps {
14
14
  };
15
15
  sx?: SxProps;
16
16
  }
17
+ /**
18
+ * @deprecated Use {@link OneClickHealthSynchronizedMetricsChart} instead.
19
+ * This component will be removed in a future version.
20
+ */
17
21
  export declare function OneClickHealthOverTimeChart({ label, data, isLoading, isFetching, isSuccess, filter, sx, }: Readonly<OneClickHealthOverTimeChartProps>): React.ReactNode;
@@ -18,5 +18,9 @@ interface OneClickHealthPercentageChartProps {
18
18
  filter?: any;
19
19
  sx?: any;
20
20
  }
21
+ /**
22
+ * @deprecated Use {@link OneClickHealthSynchronizedMetricsChart} instead.
23
+ * This component will be removed in a future version.
24
+ */
21
25
  export declare function OneClickHealthPercentageChart({ data, isLoading, isFetching, isSuccess, filter, sx, }: Readonly<OneClickHealthPercentageChartProps>): React.JSX.Element;
22
26
  export {};
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { OneClickHealthSynchronizedBrandData } from './OneClickHealthSynchronizedMetricsChart.map';
4
+ import { BrandFilter } from '../../BrandFilterInput';
5
+ export interface OneClickHealthSynchronizedMetricsChartProps {
6
+ chartData: OneClickHealthSynchronizedBrandData[];
7
+ isLoading?: boolean;
8
+ isSuccess: boolean;
9
+ isFetching: boolean;
10
+ filter: {
11
+ timezone?: string;
12
+ brands: BrandFilter[];
13
+ };
14
+ colorMap: Map<string, string>;
15
+ sx?: SxProps;
16
+ }
17
+ export declare function OneClickHealthSynchronizedMetricsChart({ chartData, isLoading, isSuccess, isFetching, filter, colorMap, sx, }: Readonly<OneClickHealthSynchronizedMetricsChartProps>): React.ReactNode;
@@ -0,0 +1,18 @@
1
+ import { BrandFilter } from '../../BrandFilterInput';
2
+ import { SynchronizedMappedData } from '../SynchronizedMetricsChart';
3
+ export interface OneClickHealthSynchronizedInterval {
4
+ date: string | number;
5
+ oneClickHealthCreated: number;
6
+ oneClickHealthSucceeded: number;
7
+ }
8
+ export interface OneClickHealthSynchronizedBrandData {
9
+ brandUuid: string;
10
+ brandName: string;
11
+ interval?: OneClickHealthSynchronizedInterval[];
12
+ }
13
+ export interface MapOneClickHealthSynchronizedDataOptions {
14
+ brands: BrandFilter[];
15
+ colorMap: Map<string, string>;
16
+ data: OneClickHealthSynchronizedBrandData[];
17
+ }
18
+ export declare function mapOneClickHealthSynchronizedData(options: MapOneClickHealthSynchronizedDataOptions): SynchronizedMappedData;
@@ -0,0 +1 @@
1
+ "use strict";import{mapSeriesTimeSeriesData as t}from"../SeriesChart/SeriesChart.map.mjs";function C(l){const{brands:n,colorMap:d,data:c}=l,a={brands:n,colorMap:d,data:c},o=t({...a,keyValue:"oneClickHealthCreated"}),i=t({...a,keyValue:"oneClickHealthSucceeded"}),p=c.map(r=>({...r,interval:(r.interval??[]).map(e=>({...e,percentage:e.oneClickHealthCreated>0?e.oneClickHealthSucceeded/e.oneClickHealthCreated*100:0}))})),s=t({...a,data:p,keyValue:"percentage"});return{started:o,succeeded:i,percentage:s}}export{C as mapOneClickHealthSynchronizedData};
@@ -0,0 +1 @@
1
+ "use strict";import{useMemo as p}from"react";import{mapOneClickHealthSynchronizedData as h}from"./OneClickHealthSynchronizedMetricsChart.map.mjs";import{jsx as m}from"react/jsx-runtime";import{SynchronizedMetricsChart as u}from"../SynchronizedMetricsChart/SynchronizedMetricsChart.mjs";function l({chartData:s,isLoading:e=!0,isSuccess:r,isFetching:c,filter:a,colorMap:t,sx:i}){const{started:n,succeeded:o,percentage:d}=p(()=>e?{started:[],succeeded:[],percentage:[]}:h({brands:a.brands,colorMap:t,data:s}),[e,a.brands,t,s]);return m(u,{startedData:n,succeededData:o,percentageData:d,isLoading:e,isSuccess:r,isFetching:c,filter:a,sx:i})}export{l as OneClickHealthSynchronizedMetricsChart};
@@ -0,0 +1,2 @@
1
+ export * from './OneClickHealthSynchronizedMetricsChart';
2
+ export * from './OneClickHealthSynchronizedMetricsChart.map';
@@ -11,4 +11,8 @@ export interface OneClickOverTimeChartProps {
11
11
  brands: BrandFilter[];
12
12
  };
13
13
  }
14
+ /**
15
+ * @deprecated Use {@link OneClickSignupSynchronizedMetricsChart} instead.
16
+ * This component will be removed in a future version.
17
+ */
14
18
  export declare function OneClickOverTimeChart({ data, isLoading, isFetching, isSuccess, filter, }: Readonly<OneClickOverTimeChartProps>): React.ReactNode;
@@ -18,5 +18,9 @@ interface OneClickPercentageChartProps {
18
18
  filter?: any;
19
19
  sx?: any;
20
20
  }
21
+ /**
22
+ * @deprecated Use {@link OneClickSignupSynchronizedMetricsChart} instead.
23
+ * This component will be removed in a future version.
24
+ */
21
25
  export declare function OneClickPercentageChart({ data, isLoading, isFetching, isSuccess, filter, sx, }: Readonly<OneClickPercentageChartProps>): React.ReactNode;
22
26
  export {};
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { OneClickSignupOutcomeBrandData } from './OneClickSignupOutcomeOverTimeChart.map';
4
+ import { BrandFilter } from '../../BrandFilterInput';
5
+ export interface OneClickSignupOutcomeOverTimeChartProps {
6
+ chartData: OneClickSignupOutcomeBrandData[];
7
+ isLoading: boolean;
8
+ isSuccess: boolean;
9
+ isFetching: boolean;
10
+ filter: {
11
+ timezone?: string;
12
+ brands?: BrandFilter[];
13
+ };
14
+ sx?: SxProps;
15
+ }
16
+ export declare function OneClickSignupOutcomeOverTimeChart({ chartData, isLoading, ...rest }: Readonly<OneClickSignupOutcomeOverTimeChartProps>): React.ReactNode;
@@ -0,0 +1,21 @@
1
+ import { AreaSeriesChartData } from '../AreaChart';
2
+ import { BrandFilter } from '../../BrandFilterInput';
3
+ export interface OneClickSignupOutcomeIntervalEntry {
4
+ date: string | number;
5
+ oneClickCreated: number;
6
+ oneClickSuccess: number;
7
+ }
8
+ export interface OneClickSignupOutcomeBrandData {
9
+ brandUuid: string;
10
+ brandName: string;
11
+ interval?: OneClickSignupOutcomeIntervalEntry[];
12
+ }
13
+ export interface MapOneClickSignupOutcomeOverTimeChartDataOptions {
14
+ brands?: BrandFilter[];
15
+ data: OneClickSignupOutcomeBrandData[];
16
+ }
17
+ export interface OneClickSignupOutcomeChartData {
18
+ series: AreaSeriesChartData[];
19
+ data: Array<Record<string, number | string>>;
20
+ }
21
+ export declare function mapOneClickSignupOutcomeOverTimeChartData(options: MapOneClickSignupOutcomeOverTimeChartDataOptions): OneClickSignupOutcomeChartData;
@@ -0,0 +1 @@
1
+ "use strict";import{mapAreaChartData as C}from"../AreaChart/AreaChart.map.mjs";import{green as k,red as m}from"../../../styles/colors.mjs";function f(c){const s=new Map,n=c.brands?new Set(c.brands.map(e=>e._raw.brandUuid)):null;for(const e of c.data)if(!(n&&!n.has(e.brandUuid)))for(const a of e.interval??[]){const t=+new Date(a.date);s.has(t)||s.set(t,{date:t,oneClickSuccess:0,oneClickFailed:0});const o=s.get(t);if(!o)continue;const i=Number(a.oneClickSuccess||0),u=Number(a.oneClickCreated||0);o.oneClickSuccess=o.oneClickSuccess+i,o.oneClickFailed=o.oneClickFailed+Math.max(0,u-i)}const r=Array.from(s.values()).sort((e,a)=>e.date-a.date),{series:d,data:l}=C({data:r,seriesConfig:[{key:"Success",dataKey:"oneClickSuccess",color:k},{key:"Failed",dataKey:"oneClickFailed",color:m}]});return{series:d,data:l}}export{f as mapOneClickSignupOutcomeOverTimeChartData};
@@ -0,0 +1 @@
1
+ "use strict";import{mapOneClickSignupOutcomeOverTimeChartData as s}from"./OneClickSignupOutcomeOverTimeChart.map.mjs";import{jsx as o}from"react/jsx-runtime";import{OutcomeOverTimeChart as m}from"../OutcomeOverTimeChart/OutcomeOverTimeChart.mjs";function n({chartData:t,isLoading:a=!0,...r}){const{series:i,data:e}=a?{series:[],data:[]}:s({brands:r.filter.brands,data:t});return o(m,{data:e,series:i,isLoading:a,...r})}export{n as OneClickSignupOutcomeOverTimeChart};
@@ -0,0 +1,2 @@
1
+ export * from './OneClickSignupOutcomeOverTimeChart';
2
+ export * from './OneClickSignupOutcomeOverTimeChart.map';
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { OneClickSignupSynchronizedBrandData } from './OneClickSignupSynchronizedMetricsChart.map';
4
+ import { BrandFilter } from '../../BrandFilterInput';
5
+ export interface OneClickSignupSynchronizedMetricsChartProps {
6
+ chartData: OneClickSignupSynchronizedBrandData[];
7
+ isLoading?: boolean;
8
+ isSuccess: boolean;
9
+ isFetching: boolean;
10
+ filter: {
11
+ timezone?: string;
12
+ brands: BrandFilter[];
13
+ };
14
+ colorMap: Map<string, string>;
15
+ sx?: SxProps;
16
+ }
17
+ export declare function OneClickSignupSynchronizedMetricsChart({ chartData, isLoading, isSuccess, isFetching, filter, colorMap, sx, }: Readonly<OneClickSignupSynchronizedMetricsChartProps>): React.ReactNode;
@@ -0,0 +1,18 @@
1
+ import { BrandFilter } from '../../BrandFilterInput';
2
+ import { SynchronizedMappedData } from '../SynchronizedMetricsChart';
3
+ export interface OneClickSignupSynchronizedInterval {
4
+ date: string | number;
5
+ oneClickCreated: number;
6
+ oneClickSuccess: number;
7
+ }
8
+ export interface OneClickSignupSynchronizedBrandData {
9
+ brandUuid: string;
10
+ brandName: string;
11
+ interval?: OneClickSignupSynchronizedInterval[];
12
+ }
13
+ export interface MapOneClickSignupSynchronizedDataOptions {
14
+ brands: BrandFilter[];
15
+ colorMap: Map<string, string>;
16
+ data: OneClickSignupSynchronizedBrandData[];
17
+ }
18
+ export declare function mapOneClickSignupSynchronizedData(options: MapOneClickSignupSynchronizedDataOptions): SynchronizedMappedData;
@@ -0,0 +1 @@
1
+ "use strict";import{mapSeriesTimeSeriesData as c}from"../SeriesChart/SeriesChart.map.mjs";function u(t){const{brands:i,colorMap:o,data:n}=t,a={brands:i,colorMap:o,data:n},l=c({...a,keyValue:"oneClickCreated"}),s=c({...a,keyValue:"oneClickSuccess"}),d=n.map(r=>({...r,interval:(r.interval??[]).map(e=>({...e,percentage:e.oneClickCreated>0?e.oneClickSuccess/e.oneClickCreated*100:0}))})),p=c({...a,data:d,keyValue:"percentage"});return{started:l,succeeded:s,percentage:p}}export{u as mapOneClickSignupSynchronizedData};
@@ -0,0 +1 @@
1
+ "use strict";import{useMemo as p}from"react";import{mapOneClickSignupSynchronizedData as m}from"./OneClickSignupSynchronizedMetricsChart.map.mjs";import{jsx as u}from"react/jsx-runtime";import{SynchronizedMetricsChart as g}from"../SynchronizedMetricsChart/SynchronizedMetricsChart.mjs";function h({chartData:s,isLoading:e=!0,isSuccess:r,isFetching:c,filter:a,colorMap:t,sx:i}){const{started:n,succeeded:o,percentage:d}=p(()=>e?{started:[],succeeded:[],percentage:[]}:m({brands:a.brands,colorMap:t,data:s}),[e,a.brands,t,s]);return u(g,{startedData:n,succeededData:o,percentageData:d,isLoading:e,isSuccess:r,isFetching:c,filter:a,sx:i})}export{h as OneClickSignupSynchronizedMetricsChart};
@@ -0,0 +1,2 @@
1
+ export * from './OneClickSignupSynchronizedMetricsChart';
2
+ export * from './OneClickSignupSynchronizedMetricsChart.map';
@@ -1,6 +1,6 @@
1
- import { OneClickVerificationBigNumbersChartData } from './OneClickVerificationBigNumbersMapper';
1
+ import { OneClickVerificationBrandData } from './OneClickVerificationBigNumbersMapper';
2
2
  export interface OneClickVerificationBigNumbersProps {
3
- chartData: OneClickVerificationBigNumbersChartData[];
3
+ chartData: OneClickVerificationBrandData[];
4
4
  isLoading: boolean;
5
5
  }
6
- export declare function OneClickVerificationBigNumbers({ chartData, isLoading, }: Readonly<OneClickVerificationBigNumbersProps>): React.ReactNode;
6
+ export declare function OneClickVerificationBigNumbers({ chartData, isLoading, }: Readonly<OneClickVerificationBigNumbersProps>): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use strict";import{Stack as l}from"@mui/material";import{BigNumber as e}from"../BigNumber/index.mjs";import{formatNumberRounded as i,formatPercentage as s}from"../../../utils/number/formatters.mjs";import{defaultMetrics as c,calculateOneClickVerificationMetrics as m}from"./OneClickVerificationBigNumbersMapper.mjs";import{jsxs as u,jsx as t}from"react/jsx-runtime";function n({chartData:r,isLoading:o=!0}){const a=o?c:m(r);return u(l,{direction:"row",spacing:3,children:[t(e,{label:"Total Created",value:a.totalCreated,initialValue:a.totalCreated,map:i}),t(e,{label:"Total Verified",value:a.totalVerified,initialValue:a.totalVerified,map:i}),t(e,{label:"Success Rate",value:a.successRate,initialValue:a.successRate,map:s})]})}export{n as OneClickVerificationBigNumbers};
1
+ "use strict";import{calculateOneClickVerificationMetrics as t}from"./OneClickVerificationBigNumbersMapper.mjs";import{jsx as e}from"react/jsx-runtime";import{OverviewBigNumbers as o}from"../OverviewBigNumbers/OverviewBigNumbers.mjs";import{defaultOverviewMetrics as a}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";function s({chartData:r,isLoading:i=!0}){return e(o,{metrics:i?a:t(r),isLoading:i,hideTotalCost:!0})}export{s as OneClickVerificationBigNumbers};
@@ -1,11 +1,9 @@
1
1
  import { OneClickVerificationBrandData } from '../oneClickVerification.types';
2
+ import { OverviewMetrics } from '../OverviewBigNumbers/OverviewBigNumbers.types';
2
3
  export type { OneClickVerificationIntervalEntry, OneClickVerificationBrandData, } from '../oneClickVerification.types';
3
- export interface OneClickVerificationOverallMetrics {
4
- totalCreated: number;
5
- totalVerified: number;
6
- successRate: number;
7
- }
8
- export declare const defaultMetrics: OneClickVerificationOverallMetrics;
4
+ /** @deprecated Use {@link OverviewMetrics} from OverviewBigNumbers. */
5
+ export type OneClickVerificationOverallMetrics = OverviewMetrics;
9
6
  /** @deprecated Use {@link OneClickVerificationBrandData} from the shared chart types. */
10
7
  export type OneClickVerificationBigNumbersChartData = OneClickVerificationBrandData;
11
- export declare function calculateOneClickVerificationMetrics(data: OneClickVerificationBrandData[]): OneClickVerificationOverallMetrics;
8
+ export declare const defaultMetrics: OverviewMetrics;
9
+ export declare function calculateOneClickVerificationMetrics(data: OneClickVerificationBrandData[]): OverviewMetrics;
@@ -1 +1 @@
1
- "use strict";const o={totalCreated:0,totalVerified:0,successRate:0};function u(t){if(!(t!=null&&t.length))return o;let e=0,i=0;t.forEach(a=>{var c;if((c=a.interval)!=null&&c.length){const s=a.interval.reduce((r,n)=>r+(n.oneClickVerificationCreated||0),0),f=a.interval.reduce((r,n)=>r+(n.oneClickVerificationVerified||0),0);e+=s,i+=f}});const l=e>0?i/e:0;return{totalCreated:e,totalVerified:i,successRate:isNaN(l)?0:l}}export{u as calculateOneClickVerificationMetrics,o as defaultMetrics};
1
+ "use strict";import{defaultOverviewMetrics as d}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";const l=d;function v(t){if(!(t!=null&&t.length))return l;let e=0,c=0;const o=0;t.forEach(r=>{var a;if((a=r.interval)!=null&&a.length){const u=r.interval.reduce((i,n)=>i+(n.oneClickVerificationCreated||0),0),f=r.interval.reduce((i,n)=>i+(n.oneClickVerificationVerified||0),0);e+=u,c+=f}});const s=e>0?c/e:0;return{started:e,succeeded:c,totalCost:o,successRate:s}}export{v as calculateOneClickVerificationMetrics,l as defaultMetrics};
@@ -1 +1 @@
1
- "use strict";import{useState as L,useRef as F,useEffect as I}from"react";import{useTheme as N}from"@mui/material";import{lighten as R,contrastColor as T}from"../../../utils/color/index.mjs";import{EmptyChartSection as x}from"../EmptyChartSection.mjs";import{LoadingChartSection as k}from"../LoadingChartSection.mjs";import{FunnelChart as D}from"../FunnelChart/index.mjs";import{useStyle as H}from"../styles.mjs";import{jsx as a,jsxs as J}from"react/jsx-runtime";const K=[40,25,10,0];function M({data:u,isLoading:O,isFetching:P,isSuccess:b,sx:z}){const A=H(),c=N(),[v,B]=L(0),[g,j]=L(0),y=F(0),S=F(0);if(I(()=>{const t=y.current,e=S.current;t!==0&&t!==v&&B(t),e!==0&&e!==g&&j(e)}),!u.length&&O)return a(k,{});if(!u.length||!b)return a(x,{});if(u.every(t=>t.value===0))return a(x,{});const p=u.map((t,e)=>({step:t,originalIndex:e})).filter(({step:t})=>t.value>0);if(p.length<2)return a(x,{});const C=c.palette.primary.main,s=p.map(({step:t,originalIndex:e},n)=>{const i=n>0?p[n-1].step:null;let r=null;if(i!==null&&i.value>0){const o=(i.value-t.value)/i.value*100;r=o>0?o:null}return{name:t.name,value:t.value,dropOffPercent:r,fill:R(C,K[e])}}),w=s.reduce((t,e,n)=>e.value>s[t].value?n:t,0);function E(t){var e;const{x:n,y:i,width:r,height:o,value:f,index:l}=t;if(f==null)return null;l===w&&(y.current=n+r/2,S.current=n+r);const d=((e=s[l])==null?void 0:e.fill)??C,m=r>=60?T(d):c.palette.text.primary;return a("text",{x:v||n+r/2,y:i+o/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:14,fontWeight:600,fill:m,children:Number(f).toLocaleString()})}function W(t){var e;const{x:n,y:i,width:r,height:o,index:f}=t,l=s[f];if(!l)return null;const d=(g||n+r)+8,m=l.dropOffPercent!==null&&l.dropOffPercent>0,h=i+o/2;return J("g",{children:[a("text",{x:d,y:m?h-8:h,textAnchor:"start",dominantBaseline:"middle",fontSize:16,fill:c.palette.text.primary,children:l.name}),m&&a("text",{x:d,y:h+10,textAnchor:"start",dominantBaseline:"middle",fontSize:11,fill:c.palette.text.secondary,children:`Drop-off ${(e=l.dropOffPercent)==null?void 0:e.toFixed(1)}%`})]})}return a(D,{data:s,insideLabel:{content:E,dataKey:"value"},outsideLabel:{content:W},sx:{...A.regularChartWrapper,opacity:P?.4:1,...z}})}export{M as OneClickVerificationFunnelChart};
1
+ "use strict";import{useTheme as P}from"@mui/material";import{EmptyChartSection as c}from"../EmptyChartSection.mjs";import{FunnelChart as z}from"../FunnelChart/index.mjs";import{LoadingChartSection as A}from"../LoadingChartSection.mjs";import{useStyle as b}from"../styles.mjs";import{mix as j}from"../../../utils/color/index.mjs";import{lightGreen as W,lightGrey as D}from"../../../styles/colors.mjs";import{jsx as r,jsxs as G}from"react/jsx-runtime";const I=4;function T({data:o,isLoading:y,isFetching:S,isSuccess:C,sx:B}){var h;const O=b(),d=P();if(!o.length&&y)return r(A,{});if(!o.length||!C)return r(c,{});if(o.every(e=>e.value===0))return r(c,{});if(((h=o[o.length-1])==null?void 0:h.value)===0)return r(c,{});const m=o.map((e,t)=>({step:e,originalIndex:t})).filter(({step:e})=>e.value>0);if(m.length<2)return r(c,{});const u=m.map(({step:e,originalIndex:t},i)=>{const n=i>0?m[i-1].step:null;let l=null;if(n!==null&&n.value>0){const f=(n.value-e.value)/n.value*100;l=f>0?f:null}const s=t/(I-1)*100;return{name:e.name,value:e.value,dropOffPercent:l,fill:j(D,W,s)}}),w=u[u.reduce((e,t,i)=>t.value>u[e].value?i:e,0)].value;function F(e){const{y:t,height:i,value:n,viewBox:l}=e;if(n==null)return null;const s=l.x+l.width/2;return r("text",{x:s,y:t+i/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:14,fontWeight:600,fill:d.palette.text.primary,children:Number(n).toLocaleString()})}function L(e){var t;const{x:i,y:n,height:l,index:s,viewBox:f}=e,a=u[s];if(!a)return null;const x=f.x+f.width/2,v=x+(x-i)*w/a.value+8,g=a.dropOffPercent!==null&&a.dropOffPercent>0,p=n+l/2;return G("g",{children:[r("text",{x:v,y:g?p-8:p,textAnchor:"start",dominantBaseline:"middle",fontSize:16,fill:d.palette.text.primary,children:a.name}),g&&r("text",{x:v,y:p+10,textAnchor:"start",dominantBaseline:"middle",fontSize:11,fill:d.palette.text.secondary,children:`Drop-off ${(t=a.dropOffPercent)==null?void 0:t.toFixed(1)}%`})]})}return r(z,{data:u,insideLabel:{content:F,dataKey:"value"},outsideLabel:{content:L},sx:{...O.regularChartWrapper,opacity:S?.4:1,...B}})}export{T as OneClickVerificationFunnelChart};
@@ -1,10 +1,15 @@
1
1
  import { default as React } from 'react';
2
2
  import { SxProps } from '@mui/material';
3
- import { AreaSeriesChartData } from '../AreaChart';
3
+ import { AreaSeriesChartData } from '../OutcomeOverTimeChart';
4
+ import { OneClickVerificationBrandData } from '../oneClickVerification.types';
4
5
  import { BrandFilter } from '../../BrandFilterInput';
5
6
  export interface OneClickVerificationOutcomeOverTimeChartProps {
6
- data: Array<Record<string, number | string>>;
7
- series: AreaSeriesChartData[];
7
+ /** @deprecated Use `chartData` instead. Pass raw brand data and let the wrapper handle mapping. */
8
+ data?: Array<Record<string, number | string>>;
9
+ /** @deprecated Use `chartData` instead. Pass raw brand data and let the wrapper handle mapping. */
10
+ series?: AreaSeriesChartData[];
11
+ /** Raw brand data. The wrapper maps it internally. Preferred over deprecated `data`/`series`. */
12
+ chartData?: OneClickVerificationBrandData[];
8
13
  isLoading: boolean;
9
14
  isSuccess: boolean;
10
15
  isFetching: boolean;
@@ -14,4 +19,4 @@ export interface OneClickVerificationOutcomeOverTimeChartProps {
14
19
  };
15
20
  sx?: SxProps;
16
21
  }
17
- export declare function OneClickVerificationOutcomeOverTimeChart({ data, series, isLoading, isFetching, isSuccess, filter, sx, }: Readonly<OneClickVerificationOutcomeOverTimeChartProps>): React.ReactNode;
22
+ export declare function OneClickVerificationOutcomeOverTimeChart({ data: legacyData, series: legacySeries, chartData, isLoading, ...rest }: Readonly<OneClickVerificationOutcomeOverTimeChartProps>): React.ReactNode;
@@ -1 +1 @@
1
- "use strict";import{useState as k}from"react";import{Box as m,ToggleButtonGroup as F,ToggleButton as c}from"@mui/material";import{EmptyChartSection as D}from"../EmptyChartSection.mjs";import{LoadingChartSection as S}from"../LoadingChartSection.mjs";import{AreaChart as v}from"../AreaChart/index.mjs";import{useStyle as A}from"../styles.mjs";import{formatExtendedDate as E,formatDateMMYY as M}from"../../../utils/date.mjs";import{DEFAULT_TIMEZONE as N}from"../../form/TimezoneInput/timezones.mjs";import{jsx as t,jsxs as u}from"react/jsx-runtime";function L({data:i,series:d,isLoading:f,isFetching:p,isSuccess:h,filter:x,sx:g}){const n=A(),s=x.timezone??N,[a,C]=k("absolute");if(!i.length&&f)return t(S,{});if(!i.length||!h)return t(D,{});const y=a==="absolute"?"stack":"expand";return u(m,{sx:{display:"flex",flexDirection:"column",gap:1,height:n.regularChartWrapper.height},children:[t(m,{sx:{display:"flex",justifyContent:"flex-end"},children:u(F,{value:a,exclusive:!0,onChange:(e,r)=>{r!==null&&C(r)},size:"small",children:[t(c,{value:"absolute",children:"Numbers"}),t(c,{value:"percent",children:"Percentages"})]})}),t(v,{data:i,series:d,stackMode:y,isAnimationActive:!0,xAxis:{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:e=>M(e,{timeZone:s,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1},yAxis:a==="absolute"?{tickFormatter:e=>Number(e).toLocaleString(),allowDecimals:!1}:{tickFormatter:e=>`${(e*100).toFixed(0)}%`,domain:[0,1],allowDecimals:!1},tooltip:{formatter:a==="absolute"?e=>Number(e).toLocaleString():(e,r,b)=>{const o=b.payload,l=o.oneClickVerificationVerified+o.oneClickVerificationExpired+o.oneClickVerificationFailed;return l===0?"0.0%":`${(Number(e)/l*100).toFixed(1)}%`},labelFormatter:e=>E(e,{timeZone:s,hour12:!1})},sx:{...n.regularChartWrapper,height:"unset",flex:1,minHeight:0,opacity:p?.4:1,...g}})]})}export{L as OneClickVerificationOutcomeOverTimeChart};
1
+ "use strict";import{mapOneClickVerificationOutcomeOverTimeChartData as m}from"./OneClickVerificationOutcomeOverTimeChart.map.mjs";import{jsx as n}from"react/jsx-runtime";import{OutcomeOverTimeChart as c}from"../OutcomeOverTimeChart/OutcomeOverTimeChart.mjs";function d({data:r,series:t,chartData:a,isLoading:e=!0,...i}){const{series:s,data:o}=a?e?{series:[],data:[]}:m({brands:i.filter.brands,data:a}):{series:t??[],data:r??[]};return n(c,{data:o,series:s,isLoading:e,...i})}export{d as OneClickVerificationOutcomeOverTimeChart};
@@ -0,0 +1,18 @@
1
+ import { default as React } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { AreaSeriesChartData } from '../AreaChart';
4
+ import { BrandFilter } from '../../BrandFilterInput';
5
+ export type { AreaSeriesChartData } from '../AreaChart';
6
+ export interface OutcomeOverTimeChartProps {
7
+ data: Array<Record<string, number | string>>;
8
+ series: AreaSeriesChartData[];
9
+ isLoading: boolean;
10
+ isSuccess: boolean;
11
+ isFetching: boolean;
12
+ filter: {
13
+ timezone?: string;
14
+ brands?: BrandFilter[];
15
+ };
16
+ sx?: SxProps;
17
+ }
18
+ export declare function OutcomeOverTimeChart({ data, series, isLoading, isFetching, isSuccess, filter, sx, }: Readonly<OutcomeOverTimeChartProps>): React.ReactNode;
@@ -0,0 +1 @@
1
+ "use strict";import{useState as v}from"react";import{Box as m,ToggleButtonGroup as A,ToggleButton as u}from"@mui/material";import{EmptyChartSection as D}from"../EmptyChartSection.mjs";import{LoadingChartSection as M}from"../LoadingChartSection.mjs";import{AreaChart as N}from"../AreaChart/index.mjs";import{useStyle as k}from"../styles.mjs";import{formatExtendedDate as E,formatDateMMYY as T}from"../../../utils/date.mjs";import{DEFAULT_TIMEZONE as L}from"../../form/TimezoneInput/timezones.mjs";import{jsx as t,jsxs as c}from"react/jsx-runtime";function w({data:r,series:i,isLoading:d,isFetching:p,isSuccess:h,filter:f,sx:g}){const s=k(),l=f.timezone??L,[a,x]=v("absolute");if(!r.length&&d)return t(M,{});if(!r.length||!h)return t(D,{});const y=a==="absolute"?"stack":"expand";return c(m,{sx:{display:"flex",flexDirection:"column",gap:1,height:s.regularChartWrapper.height},children:[t(m,{sx:{display:"flex",justifyContent:"flex-end"},children:c(A,{value:a,exclusive:!0,onChange:(e,o)=>{o!==null&&x(o)},size:"small",children:[t(u,{value:"absolute",children:"Numbers"}),t(u,{value:"percent",children:"Percentages"})]})}),t(N,{data:r,series:i,stackMode:y,isAnimationActive:!0,xAxis:{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:e=>T(e,{timeZone:l,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1},yAxis:a==="absolute"?{tickFormatter:e=>Number(e).toLocaleString(),allowDecimals:!1}:{tickFormatter:e=>`${(e*100).toFixed(0)}%`,domain:[0,1],allowDecimals:!1},tooltip:{formatter:a==="absolute"?e=>Number(e).toLocaleString():(e,o,b)=>{const C=b.payload,n=i.reduce((F,S)=>F+(Number(C[S.dataKey])||0),0);return n===0?"0.0%":`${(Number(e)/n*100).toFixed(1)}%`},labelFormatter:e=>E(e,{timeZone:l,hour12:!1})},sx:{...s.regularChartWrapper,height:"unset",flex:1,minHeight:0,opacity:p?.4:1,...g}})]})}export{w as OutcomeOverTimeChart};
@@ -0,0 +1 @@
1
+ export * from './OutcomeOverTimeChart';
@@ -0,0 +1,7 @@
1
+ import { OverviewMetrics } from './OverviewBigNumbers.types';
2
+ export interface OverviewBigNumbersProps {
3
+ metrics: OverviewMetrics;
4
+ isLoading?: boolean;
5
+ hideTotalCost?: boolean;
6
+ }
7
+ export declare function OverviewBigNumbers({ metrics, isLoading, hideTotalCost, }: Readonly<OverviewBigNumbersProps>): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ "use strict";import{Stack as l}from"@mui/material";import{BigNumber as a}from"../BigNumber/index.mjs";import{formatNumberRounded as s,formatCurrency as c,formatPercentage as u}from"../../../utils/number/formatters.mjs";import{defaultOverviewMetrics as m}from"./OverviewBigNumbers.types.mjs";import{jsxs as d,jsx as t}from"react/jsx-runtime";function n({metrics:r,isLoading:i=!0,hideTotalCost:o=!1}){const e=i?m:r;return d(l,{direction:"row",spacing:3,children:[t(a,{label:"Started",value:e.started,initialValue:e.started,map:s}),t(a,{label:"Succeeded",value:e.succeeded,initialValue:e.succeeded,map:s}),!o&&t(a,{label:"Total Cost",value:e.totalCost??0,initialValue:e.totalCost??0,map:c}),t(a,{label:"Success Rate",value:e.successRate,initialValue:e.successRate,map:u})]})}export{n as OverviewBigNumbers};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Normalized metrics for product overview BigNumber cards.
3
+ * Used by OverviewBigNumbers and all product-specific BigNumber wrappers.
4
+ */
5
+ export interface OverviewMetrics {
6
+ started: number;
7
+ succeeded: number;
8
+ /** Optional. If omitted and hideTotalCost is false, renders as $0.00. */
9
+ totalCost?: number;
10
+ /** Ratio in [0, 1], not a percentage. 0.85 renders as "85.00%". */
11
+ successRate: number;
12
+ }
13
+ export declare const defaultOverviewMetrics: OverviewMetrics;
@@ -0,0 +1 @@
1
+ "use strict";const e={started:0,succeeded:0,totalCost:0,successRate:0};export{e as defaultOverviewMetrics};
@@ -0,0 +1,2 @@
1
+ export * from './OverviewBigNumbers';
2
+ export * from './OverviewBigNumbers.types';
@@ -4,4 +4,4 @@ export interface SignupBigNumbersProps {
4
4
  isLoading: boolean;
5
5
  hideTotalCost?: boolean;
6
6
  }
7
- export declare function SignupBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<SignupBigNumbersProps>): React.ReactNode;
7
+ export declare function SignupBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<SignupBigNumbersProps>): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use strict";import{Stack as r}from"@mui/material";import{BigNumber as t}from"../BigNumber/index.mjs";import{formatNumberRounded as s,formatCurrency as u,formatPercentage as c}from"../../../utils/number/formatters.mjs";import{defaultMetrics as n,calculateSignupMetrics as m}from"./SignupBigNumbersMapper.mjs";import{jsxs as p,jsx as i}from"react/jsx-runtime";function g({chartData:e,isLoading:l=!0,hideTotalCost:o=!1}){const a=l?n:m(e);return p(r,{direction:"row",spacing:3,children:[i(t,{label:"Total 1-Click Signups",value:a.totalSignups,initialValue:a.totalSignups,map:s}),i(t,{label:"Finished 1-Click Signups",value:a.totalSuccess,initialValue:a.totalSuccess,map:s}),!o&&i(t,{label:"Total Cost",value:a.totalCost,initialValue:a.totalCost,map:u}),i(t,{label:"Success Rate",value:a.successRate,initialValue:a.successRate,map:c})]})}export{g as SignupBigNumbers};
1
+ "use strict";import{calculateSignupMetrics as o}from"./SignupBigNumbersMapper.mjs";import{jsx as a}from"react/jsx-runtime";import{OverviewBigNumbers as e}from"../OverviewBigNumbers/OverviewBigNumbers.mjs";import{defaultOverviewMetrics as s}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";function m({chartData:r,isLoading:i=!0,hideTotalCost:t=!1}){return a(e,{metrics:i?s:o(r),isLoading:i,hideTotalCost:t})}export{m as SignupBigNumbers};
@@ -1,10 +1,7 @@
1
- export interface SignupMetrics {
2
- totalSignups: number;
3
- totalSuccess: number;
4
- totalCost: number;
5
- successRate: number;
6
- }
7
- export declare const defaultMetrics: SignupMetrics;
1
+ import { OverviewMetrics } from '../OverviewBigNumbers/OverviewBigNumbers.types';
2
+ /** @deprecated Use {@link OverviewMetrics} from OverviewBigNumbers. */
3
+ export type SignupMetrics = OverviewMetrics;
4
+ export declare const defaultMetrics: OverviewMetrics;
8
5
  export interface SignupBigNumbersChartData {
9
6
  interval?: Array<{
10
7
  oneClickCreated: number;
@@ -20,4 +17,4 @@ export interface SignupBigNumbersChartData {
20
17
  totalCost?: string;
21
18
  };
22
19
  }
23
- export declare function calculateSignupMetrics(data: SignupBigNumbersChartData[]): SignupMetrics;
20
+ export declare function calculateSignupMetrics(data: SignupBigNumbersChartData[]): OverviewMetrics;
@@ -1 +1 @@
1
- "use strict";const a={totalSignups:0,totalSuccess:0,totalCost:0,successRate:0};function n(e){if(!(e!=null&&e.length))return a;const s=e.reduce((l,t)=>l+(t.overall.oneClickCreated||0),0),c=e.reduce((l,t)=>l+(t.overall.oneClickSuccess||0),0),r=e.reduce((l,t)=>{const u=t.overall.totalCost?Number(t.overall.totalCost.replace("$","").replace(/,/g,"")):0;return l+u},0),o=c/s;return{totalSignups:s,totalSuccess:c,totalCost:r,successRate:isNaN(o)?0:o}}export{n as calculateSignupMetrics,a as defaultMetrics};
1
+ "use strict";import{defaultOverviewMetrics as n}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";const o=n;function i(t){if(!(t!=null&&t.length))return o;const l=t.reduce((r,e)=>r+(e.overall.oneClickCreated||0),0),c=t.reduce((r,e)=>r+(e.overall.oneClickSuccess||0),0),s=t.reduce((r,e)=>{const u=e.overall.totalCost?Number(e.overall.totalCost.replace("$","").replace(/,/g,"")):0;return r+u},0),a=l>0?c/l:0;return{started:l,succeeded:c,totalCost:s,successRate:a}}export{i as calculateSignupMetrics,o as defaultMetrics};
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ import { SynchronizedMetricsChartProps } from './SynchronizedMetricsChart.types';
3
+ export declare function SynchronizedMetricsChart({ startedData, succeededData, percentageData, isLoading, isSuccess, isFetching, filter, sx, }: Readonly<SynchronizedMetricsChartProps>): React.ReactNode;
@@ -0,0 +1 @@
1
+ "use strict";import{useState as C,useMemo as c,useCallback as w}from"react";import{Stack as g,useTheme as L,Typography as M}from"@mui/material";import{ResponsiveContainer as N,AreaChart as E,CartesianGrid as O,XAxis as B,YAxis as P,Tooltip as I,Area as Y}from"recharts";import{formatDateMMYY as Z,formatExtendedDate as j}from"../../../utils/date.mjs";import{DEFAULT_TIMEZONE as K}from"../../form/TimezoneInput/timezones.mjs";import{EmptyChartSection as W}from"../EmptyChartSection.mjs";import{LoadingChartSection as $}from"../LoadingChartSection.mjs";import{SimpleLegend as G}from"../SimpleLegend/index.mjs";import{chartDefaultProps as R,xAxisDefaultProps as U,yAxisDefaultProps as X}from"../shared.mjs";import{jsx as t,jsxs as x}from"react/jsx-runtime";const _="synchronized-metrics",H=200;function y(a){const i=new Map;for(const r of a)for(const s of r.chartData){let n=i.get(s.date);n||(n={date:s.date},i.set(s.date,n)),n[r.uuid]=s.value}return Array.from(i.values()).sort((r,s)=>r.date-s.date)}function D({title:a,mergedData:i,brands:r,hiddenBrands:s,timezone:n,tooltipFormatter:l,yAxisTickFormatter:u,yAxisDomain:h}){const m=L(),p=r.filter(e=>!s.has(e.uuid));return x(g,{children:[t(M,{variant:"subtitle2",sx:{mb:.5},children:a}),t(N,{width:"100%",height:H,children:x(E,{data:i,syncId:_,margin:R.margin,children:[t(O,{vertical:!1}),t(B,{dataKey:"date",tickFormatter:e=>Z(e,{timeZone:n,hour12:!1,hour:"numeric"}),...U}),t(P,{tickFormatter:u??(e=>Number(e).toLocaleString()),allowDecimals:!1,domain:h,...X}),t(I,{cursor:{stroke:m.palette.neutral.main,strokeWidth:1},formatter:l??(e=>Number(e).toLocaleString()),labelFormatter:e=>j(e,{timeZone:n,hour12:!1}),itemSorter:e=>-Number(e?.value??0)}),p.map(e=>t(Y,{dataKey:e.uuid,name:e.name,stroke:e.color,fill:e.color,fillOpacity:.1,type:"monotone",strokeWidth:2,isAnimationActive:!1},e.uuid))]})})]})}function q({startedData:a,succeededData:i,percentageData:r,isLoading:s,isSuccess:n,isFetching:l,filter:u,sx:h}){const[m,p]=C(new Set),e=u.timezone??K,S=!a.length&&!i.length&&!r.length,v=c(()=>y(a),[a]),F=c(()=>y(i),[i]),T=c(()=>y(r),[r]),A=a.length,k=w(o=>{p(d=>{const b=d.has(o.name);if(!b&&A-d.size<=1)return d;const f=new Set(d);return b?f.delete(o.name):f.add(o.name),f})},[A]),z=c(()=>a.map(o=>({value:o.name,color:o.color,payload:{name:o.uuid}})),[a]);return S&&s?t($,{}):S||!n?t(W,{}):t(g,{sx:{width:"100%",...h},children:x(g,{sx:{opacity:l?.4:1,gap:2},children:[t(D,{title:"Started Over Time",mergedData:v,brands:a,hiddenBrands:m,timezone:e}),t(D,{title:"Succeeded Over Time",mergedData:F,brands:i,hiddenBrands:m,timezone:e}),t(D,{title:"Success Percentage Over Time",mergedData:T,brands:r,hiddenBrands:m,timezone:e,tooltipFormatter:o=>`${Number(o).toFixed(1)}%`,yAxisTickFormatter:o=>`${Number(o).toFixed(0)}%`,yAxisDomain:["auto","auto"]}),t(G,{payload:z,hiddenItems:m,onToggle:k})]})})}export{q as SynchronizedMetricsChart};
@@ -0,0 +1,21 @@
1
+ import { SxProps } from '@mui/material';
2
+ import { SeriesChartData } from '../SeriesChart';
3
+ import { BrandFilter } from '../../../components/BrandFilterInput';
4
+ export interface SynchronizedMappedData {
5
+ started: SeriesChartData[];
6
+ succeeded: SeriesChartData[];
7
+ percentage: SeriesChartData[];
8
+ }
9
+ export interface SynchronizedMetricsChartProps {
10
+ startedData: SeriesChartData[];
11
+ succeededData: SeriesChartData[];
12
+ percentageData: SeriesChartData[];
13
+ isLoading: boolean;
14
+ isSuccess: boolean;
15
+ isFetching: boolean;
16
+ filter: {
17
+ timezone?: string;
18
+ brands: BrandFilter[];
19
+ };
20
+ sx?: SxProps;
21
+ }
@@ -0,0 +1,2 @@
1
+ export * from './SynchronizedMetricsChart';
2
+ export * from './SynchronizedMetricsChart.types';
@@ -4,4 +4,4 @@ export interface TTSBigNumbersProps {
4
4
  isLoading: boolean;
5
5
  hideTotalCost?: boolean;
6
6
  }
7
- export declare function TTSBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<TTSBigNumbersProps>): React.ReactNode;
7
+ export declare function TTSBigNumbers({ chartData, isLoading, hideTotalCost, }: Readonly<TTSBigNumbersProps>): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use strict";import{Stack as r}from"@mui/material";import{BigNumber as t}from"../BigNumber/index.mjs";import{formatNumberRounded as s,formatCurrency as c,formatPercentage as u}from"../../../utils/number/formatters.mjs";import{defaultMetrics as m,calculateSignupMetrics as n}from"./TTSBigNumbersMapper.mjs";import{jsxs as f,jsx as e}from"react/jsx-runtime";function p({chartData:l,isLoading:i=!0,hideTotalCost:o=!1}){const a=i?m:n(l);return f(r,{direction:"row",spacing:3,children:[e(t,{label:"Total Sent",value:a.total,initialValue:a.total,map:s}),e(t,{label:"Total Verified",value:a.success,initialValue:a.success,map:s}),!o&&e(t,{label:"Total Cost",value:a.totalCost,initialValue:a.totalCost,map:c}),e(t,{label:"Success Rate",value:a.successRate,initialValue:a.successRate,map:u})]})}export{p as TTSBigNumbers};
1
+ "use strict";import{calculateTTSMetrics as o}from"./TTSBigNumbersMapper.mjs";import{jsx as a}from"react/jsx-runtime";import{OverviewBigNumbers as e}from"../OverviewBigNumbers/OverviewBigNumbers.mjs";import{defaultOverviewMetrics as s}from"../OverviewBigNumbers/OverviewBigNumbers.types.mjs";function m({chartData:r,isLoading:i=!0,hideTotalCost:t=!1}){return a(e,{metrics:i?s:o(r),isLoading:i,hideTotalCost:t})}export{m as TTSBigNumbers};
@@ -1,10 +1,7 @@
1
- export interface TTSOverallMetrics {
2
- total: number;
3
- success: number;
4
- totalCost: number;
5
- successRate: number;
6
- }
7
- export declare const defaultMetrics: TTSOverallMetrics;
1
+ import { OverviewMetrics } from '../OverviewBigNumbers/OverviewBigNumbers.types';
2
+ /** @deprecated Use {@link OverviewMetrics} from OverviewBigNumbers. */
3
+ export type TTSOverallMetrics = OverviewMetrics;
4
+ export declare const defaultMetrics: OverviewMetrics;
8
5
  export interface TTSBigNumbersChartData {
9
6
  interval?: Array<{
10
7
  ttsSent: number;
@@ -15,4 +12,4 @@ export interface TTSBigNumbersChartData {
15
12
  brandUuid: string;
16
13
  brandName: string;
17
14
  }
18
- export declare function calculateSignupMetrics(data: TTSBigNumbersChartData[]): TTSOverallMetrics;
15
+ export declare function calculateTTSMetrics(data: TTSBigNumbersChartData[]): OverviewMetrics;