@verifiedinc-public/shared-ui-elements 10.0.0 → 11.0.1-beta.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.
- package/dist/components/chart/ConversionOverTimeChart/index.d.ts +18 -1
- package/dist/components/chart/ConversionOverTimeChart/index.mjs +1 -1
- package/dist/components/form/NewOneClickForm/core/formats/date.format.mjs +1 -1
- package/dist/components/form/NewOneClickForm/react/ui/fields/input/date.field.mjs +1 -1
- package/dist/validations/date.schema.mjs +1 -1
- package/package.json +1 -1
|
@@ -29,6 +29,18 @@ export interface ConversionOverTimeChartView {
|
|
|
29
29
|
/** Stacking mode for this view. Defaults to the top-level `stackMode`. */
|
|
30
30
|
stackMode?: 'stack' | 'none';
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Auxiliary boolean toggle rendered to the left of the built-in
|
|
34
|
+
* Numbers / Percentages group. Consumer owns the selected state so the toggle
|
|
35
|
+
* can drive consumer-side data or rendering decisions.
|
|
36
|
+
*/
|
|
37
|
+
export interface ConversionOverTimeChartToggle {
|
|
38
|
+
id: string;
|
|
39
|
+
label: string;
|
|
40
|
+
selected: boolean;
|
|
41
|
+
onChange: (selected: boolean) => void;
|
|
42
|
+
ariaLabel?: string;
|
|
43
|
+
}
|
|
32
44
|
export interface ConversionOverTimeChartLegendBrand {
|
|
33
45
|
uuid: string;
|
|
34
46
|
value: string;
|
|
@@ -70,5 +82,10 @@ export interface ConversionOverTimeChartProps {
|
|
|
70
82
|
views?: ConversionOverTimeChartView[];
|
|
71
83
|
/** Key of the initially selected view. Defaults to the first view. */
|
|
72
84
|
defaultViewKey?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Optional auxiliary toggles rendered left of the Numbers / Percentages
|
|
87
|
+
* group. Each toggle is independent and controlled by the consumer.
|
|
88
|
+
*/
|
|
89
|
+
extraToggles?: ConversionOverTimeChartToggle[];
|
|
73
90
|
}
|
|
74
|
-
export declare function ConversionOverTimeChart({ data, series, chartData, seriesConfig, stackMode: stackModeProp, isLoading, isFetching, isSuccess, filter, sx, legendBrand, showLegendUuid, views, defaultViewKey, }: Readonly<ConversionOverTimeChartProps>): React.ReactNode;
|
|
91
|
+
export declare function ConversionOverTimeChart({ data, series, chartData, seriesConfig, stackMode: stackModeProp, isLoading, isFetching, isSuccess, filter, sx, legendBrand, showLegendUuid, views, defaultViewKey, extraToggles, }: Readonly<ConversionOverTimeChartProps>): React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{useState as
|
|
1
|
+
"use strict";import{useState as V}from"react";import{Stack as D,Box as H,ToggleButton as T,ToggleButtonGroup as J}from"@mui/material";import{EmptyChartSection as E}from"../EmptyChartSection.mjs";import{LoadingChartSection as U}from"../LoadingChartSection.mjs";import{AreaChart as Q}from"../AreaChart/index.mjs";import{SeriesPercentageChartLegend as R}from"../SeriesPercentageChartLegend/index.mjs";import{useStyle as X}from"../styles.mjs";import{formatExtendedDate as q,formatDateMMYY as ee}from"../../../utils/date.mjs";import{DEFAULT_TIMEZONE as ae}from"../../form/TimezoneInput/timezones.mjs";import{jsx as o,jsxs as k}from"react/jsx-runtime";function te({brands:g,data:v,seriesConfig:m}){const c=new Map,p=g?new Set(g.map(t=>t._raw.brandUuid)):null;for(const t of v)if(!(p&&!p.has(t.brandUuid)))for(const l of t.interval??[]){const f=+new Date(l.date);let r=c.get(f);if(!r){r={date:f};for(const s of m)r[s.dataKey]=0;c.set(f,r)}for(const s of m)r[s.dataKey]=r[s.dataKey]+Number(l[s.dataKey]||0)}return{series:m,data:Array.from(c.values()).sort((t,l)=>t.date-l.date)}}function re({data:g,series:v,chartData:m,seriesConfig:c,stackMode:p="stack",isLoading:t,isFetching:l,isSuccess:f,filter:r,sx:s,legendBrand:i,showLegendUuid:B=!0,views:C,defaultViewKey:j,extraToggles:K}){var N;const w=X(),M=r.timezone??ae,h=C??[{key:"absolute",label:"Numbers",mode:"absolute"},{key:"percent",label:"Percentages",mode:"percent"}],[S,z]=V(j??((N=h[0])==null?void 0:N.key)??"absolute"),a=h.find(e=>e.key===S)??h[0],b=a?.mode??"absolute",x=a?.stackMode??p,F=a?.chartData??m,$=a?.seriesConfig??c,O=a?.data??g,P=a?.series??v,n=F!==void 0?t?{series:[],data:[]}:te({brands:r.brands,data:F,seriesConfig:$??[]}):{series:P??[],data:O??[]},L=!n.data.length||!f,A=!n.data.length&&t;if(!C){if(A)return o(U,{});if(L)return o(E,{})}const W=x==="none"&&b==="percent"?n.data.map(e=>{const u=Math.max(0,...n.series.map(d=>Number(e[d.dataKey])||0)),y={date:e.date};for(const d of n.series)y[d.dataKey]=u===0?0:(Number(e[d.dataKey])||0)/u;return y}):null,Y=x==="stack"?b==="absolute"?"stack":"expand":"none",Z=b==="absolute"?{tickFormatter:e=>Number(e).toLocaleString(),allowDecimals:!1}:{tickFormatter:e=>`${(e*100).toFixed(0)}%`,domain:[0,1]},_=b==="absolute"?e=>Number(e).toLocaleString():x==="stack"?(e,u,y)=>{const d=n.series.reduce((G,I)=>G+(Number(y.payload[I.dataKey])||0),0);return d===0?"0.0%":`${(Number(e)/d*100).toFixed(1)}%`}:e=>`${(Number(e)*100).toFixed(1)}%`;return k(D,{children:[k(H,{sx:{display:"flex",flexDirection:"column",gap:1,height:w.regularChartWrapper.height},children:[k(D,{direction:"row",spacing:1,justifyContent:"flex-end",children:[K?.map(e=>o(T,{value:e.id,selected:e.selected,onChange:()=>e.onChange(!e.selected),size:"small","aria-label":e.ariaLabel??e.label,"aria-pressed":e.selected,children:e.label},e.id)),o(J,{value:S,exclusive:!0,onChange:(e,u)=>{u!==null&&z(u)},size:"small",children:h.map(e=>o(T,{value:e.key,children:e.label},e.key))})]}),A?o(U,{}):L?o(E,{}):o(Q,{data:W??n.data,series:n.series,stackMode:Y,isAnimationActive:!0,xAxis:{dataKey:"date",type:"number",domain:["dataMin","dataMax"],tickFormatter:e=>ee(e,{timeZone:M,hour12:!1,hour:"numeric"}),allowDuplicatedCategory:!1},yAxis:Z,tooltip:{formatter:_,labelFormatter:e=>q(e,{timeZone:M,hour12:!1})},sx:{...w.regularChartWrapper,height:"unset",flex:1,minHeight:0,opacity:l?.4:1,...s}})]}),i&&o(R,{payload:[{uuid:i.uuid,value:i.value,color:i.color,dataKey:i.dataKey??i.uuid,brandName:i.brandName,integrationType:i.integrationType}],showUuid:B})]})}export{re as ConversionOverTimeChart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const o=
|
|
1
|
+
"use strict";const o=/^•{4}-(\d{2})-(\d{2})$/,c=/^(\d{4})-(\d{2})-(\d{2})$/,s=e=>{const r=o.exec(e);if(r)return`${r[1]}/${r[2]}/\u2022\u2022\u2022\u2022`;const t=c.exec(e);if(t)return`${t[2]}/${t[3]}/${t[1]}`;const n=new Date(Number(e)),a=String(n.getUTCMonth()+1).padStart(2,"0"),$=String(n.getUTCDate()).padStart(2,"0"),d=n.getUTCFullYear();return`${a}/${$}/${d}`};export{s as dateFormat};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{useRef as
|
|
1
|
+
"use strict";import{useRef as M,useState as A}from"react";import{Box as I}from"@mui/material";import{validateTimestamp as V,USDateSchema as B}from"../../../../../../../validations/date.schema.mjs";import{formatDateMMDDYYYY as K}from"../../../../../../../utils/date.mjs";import{credentialKeys as N}from"../../../../core/fields/index.mjs";import{useFormField as O}from"../../../core/field.hook.mjs";import{useOneClickForm as P}from"../../form.context.mjs";import{getAutoCompleteAttributeValue as E}from"../shared.mjs";import{FieldLabel as R}from"./label.mjs";import{ClearFieldAdornment as j}from"./clear-field-adornment.mjs";import{jsx as o}from"react/jsx-runtime";import{fieldInputTypes as z}from"../../../../core/fields/constants.mjs";import{DateInput as L}from"../../../../../DateInput/index.mjs";function q({fieldKey:n}){var u,m,p;const{options:c}=P(),{field:e,setValue:r}=O({key:n}),C=M(null),f=/^•{4}-\d{2}-\d{2}$/.test(e?.value??""),v=V(e?.defaultValue??""),[b,d]=A(()=>{const t=e?.value;if(!t)return"";const i=/^•{4}-(\d{2})-(\d{2})$/.exec(t);if(i)return`${i[1]}/${i[2]}/1900`;const a=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);return a?`${a[2]}/${a[3]}/${a[1]}`:K(t)});if(!e||e.schema.characteristics.inputType!==z.date)return null;const l=e.schema.key===N.birthDate,s=new Date,k=1900,y=1,S=1,$=l?s.getUTCFullYear()-18:s.getUTCFullYear()+100,T=l?s.getUTCMonth()+1:12,F=l?s.getUTCDate():31,Y=new Date(k,y-1,S),x=new Date($,T-1,F),U=t=>{if(e.isDisabled)return;if(f){d(""),r("");return}const i=B.safeParse(t),a=t.replace(/[^0-9]/g,"");if(d(t),a.length<=0)return r("");if(!i.success)return r("NaN");const[D,h,g]=t.split("/").map(Number);r(v?String(Date.UTC(g,D-1,h,12,0,0,0)):`${String(g).padStart(4,"0")}-${String(D).padStart(2,"0")}-${String(h).padStart(2,"0")}`)},w=()=>{d(""),r("")};return o(I,{width:"100%",children:o(L,{inputRef:C,variant:"outlined",size:"small",autoComplete:E(e.schema.key),label:o(R,{fieldKey:n}),value:b,onChange:U,error:!(e!=null&&e.isValid),helperText:(u=e.errorMessage)!=null&&u.length?e.errorMessage:e?.description,placeholder:e.schema.characteristics.placeholder,pickerClickOutsideBoundaryElement:c.features.datePickerClickOutsideBoundaryElement,pickerDefaultSelectedDate:new Date("08/01/1989"),minDate:Y,maxDate:x,disabled:e.isDisabled,redactYear:f||l&&((p=(m=c.features.field)==null?void 0:m.dob)==null?void 0:p.redactYear),InputProps:{"data-mask-me":!0,endAdornment:o(j,{fieldKey:n,onClick:w,disabled:e.isDisabled})}})})}export{q as DateInputField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import*as
|
|
1
|
+
"use strict";import*as r from"zod";const l=r.string().refine(e=>{if(/^\d{2}\/\d{2}\/\d{4}$/.test(e)){const t=Date.parse(String(new Date(e)));return!isNaN(t)}return!1},"Date is invalid"),N=e=>r.date().refine(t=>t.getTime()<Date.now(),{message:e}),o=e=>{if(!/^-?\d+$/.test(e)||e==="NaN"||e==="")return!1;const t=parseInt(e,10);if(isNaN(t))return!1;const a=new Date(t);if(isNaN(a.getTime()))return!1;const s=a.getUTCHours(),u=a.getUTCMinutes(),f=a.getUTCSeconds(),c=a.getUTCMilliseconds();return!(s!==12||u!==0||f!==0||c!==0)},d=e=>{if(e==="NaN"||e==="")return!1;const t=parseInt(e,10);if(isNaN(t))return!1;const a=new Date(t);if(isNaN(a.getTime()))return!1;const s=Date.UTC(1900,0,1,0,0,0,0);return t>=s},g=e=>o(e),m=e=>/^-?\d+$/.test(e)?d(e):!1,D=e=>{const t=parseInt(e,10),a=new Date(t),s=new Date,u=new Date(Date.UTC(s.getUTCFullYear()-18,s.getUTCMonth(),s.getUTCDate(),23,59,59,999));return a.getTime()<=u.getTime()},T=e=>D(e),U=/^\d{4}-\d{2}-\d{2}$/,C=/^•{4}-\d{2}-\d{2}$/,n=e=>U.test(e)&&!isNaN(new Date(e).getTime()),i=e=>C.test(e),w=e=>{const t=new Date(e),a=new Date;return a.setUTCFullYear(a.getUTCFullYear()-18),t<=a},p=r.string().refine(e=>i(e)||n(e)||g(e),"").refine(e=>i(e)||n(e)||m(e),""),h=r.string().refine(e=>i(e)||n(e)||g(e),"").refine(e=>i(e)||(n(e)?Number(e.slice(0,4))>=1900:m(e)),"").refine(e=>i(e)?!0:n(e)?w(e):T(e),"Must be 18 years or older");export{l as USDateSchema,h as birthDateSchema,p as dateSchema,N as getDateSchemaWithPastValidation,T as refineAge18Plus,m as refineMinimumDate1900,g as refineTimestamp,D as validateAge18Plus,d as validateMinimumDate1900,o as validateTimestamp};
|
package/package.json
CHANGED