@zydon/common 2.9.35 → 2.9.36

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.
@@ -10,7 +10,10 @@ import * as _mui_material_styles from '@mui/material/styles';
10
10
  import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
11
11
  import * as _mui_material from '@mui/material';
12
12
  import * as _mui_material_Button from '@mui/material/Button';
13
- import '../../../types/orderProjection.js';
13
+ import '../../../orderProjection-c6f4f71e.js';
14
+ import 'dayjs';
15
+ import '../../../types/analytics.js';
16
+ import '../../../utils/analytics.js';
14
17
 
15
18
  interface ChartItem {
16
19
  name: string;
@@ -1,7 +1,7 @@
1
1
  import { FilterDateState } from '../types/analytics.js';
2
2
  import * as react from 'react';
3
3
  import dayjs__default from 'dayjs';
4
- import { ViewMode } from '../types/orderProjection.js';
4
+ import { V as ViewMode } from '../orderProjection-c6f4f71e.js';
5
5
  import '../utils/analytics.js';
6
6
  import '../utils/partnerAnalysis.js';
7
7
 
@@ -1,6 +1,5 @@
1
- export { a as default } from '../chunk-HLJGNOJN.js';
2
- import '../chunk-PTIGK5PS.js';
3
- import '../chunk-QGXT2AUD.js';
1
+ export { a as default } from '../chunk-SRP3UTFW.js';
2
+ import '../chunk-OONF23Z2.js';
4
3
  import '../chunk-ERLI5GAP.js';
5
4
  import '../chunk-TXJ45CNA.js';
6
5
  //# sourceMappingURL=useOrderProjectionFilters.js.map
@@ -0,0 +1,182 @@
1
+ import dayjs__default from 'dayjs';
2
+ import { FilterDateState } from './types/analytics.js';
3
+ import { Status } from './utils/partnerAnalysis.js';
4
+
5
+ interface Recurrence {
6
+ frequency: Frequency;
7
+ interval: number;
8
+ days_of_week: DayOfWeek[];
9
+ monthly_strategy: MontlhyStrategy;
10
+ day_of_month: number;
11
+ occurrence: number;
12
+ custom_unit: CustomUnit;
13
+ }
14
+ interface SaleAnalysis {
15
+ sale_count: number;
16
+ last_sale_external_id: string;
17
+ last_sale_sale_external_id?: string | null;
18
+ last_sale_negotiation_date: Date;
19
+ }
20
+ interface Event {
21
+ id: string;
22
+ type: EventType;
23
+ external_id: string;
24
+ sale_external_id?: string | null;
25
+ external_origin: ExternalOrigin;
26
+ reference_date: Date;
27
+ amount_value: number;
28
+ }
29
+ interface Partner {
30
+ external_id: string;
31
+ name: string;
32
+ tax_id: string;
33
+ phone: string;
34
+ classification: Status;
35
+ recurrence: Recurrence;
36
+ sale_analysis: SaleAnalysis;
37
+ events: Event[];
38
+ }
39
+ interface Day {
40
+ date: string;
41
+ order_placed: number;
42
+ order_unplanned: number;
43
+ order_planned: number;
44
+ shopping_cart_active: number;
45
+ shopping_cart_abandoned: number;
46
+ }
47
+ interface OrderProjectionSummary {
48
+ days: Day[];
49
+ partner_count: number;
50
+ }
51
+ interface EventStyles {
52
+ label: string;
53
+ labelPlural: string;
54
+ background: string;
55
+ color: string;
56
+ backgroundHover: string;
57
+ iconBadgeColor?: string;
58
+ }
59
+ interface GroupedEvent {
60
+ count: number;
61
+ config: EventStyles;
62
+ events: Event[];
63
+ }
64
+ interface PartnerAddress {
65
+ street?: string;
66
+ number?: string;
67
+ complement?: string;
68
+ neighborhood?: string;
69
+ city?: string;
70
+ state?: string;
71
+ postal_code?: string;
72
+ }
73
+ interface PartnerSaleSummary {
74
+ order_quantity: number;
75
+ total_value: number;
76
+ average_ticket: number;
77
+ }
78
+ interface PartnerOrder {
79
+ id: string;
80
+ external_id?: string;
81
+ sale_external_id?: string | null;
82
+ negotiation_date: Date;
83
+ total_value: number;
84
+ }
85
+ interface OrderProjectionEvent {
86
+ id: string;
87
+ partner: Omit<Partner, 'events'>;
88
+ type: EventType;
89
+ external_origin: ExternalOrigin;
90
+ reference_date: Date;
91
+ amount_value: number;
92
+ detail: Record<string, any>;
93
+ }
94
+ interface PartnerProfile {
95
+ id: string;
96
+ name: string;
97
+ }
98
+ interface PartnerSeller {
99
+ id: string;
100
+ name: string;
101
+ }
102
+ interface PartnerDetails {
103
+ id: string;
104
+ external_id?: string;
105
+ name: string;
106
+ trade_name?: string;
107
+ fiscal_registration_number?: string;
108
+ email?: string;
109
+ phone?: string;
110
+ mobile?: string;
111
+ profile?: PartnerProfile;
112
+ main_seller?: PartnerSeller;
113
+ address?: PartnerAddress;
114
+ }
115
+
116
+ declare enum Frequency {
117
+ DAILY = "DAILY",
118
+ WEEKLY = "WEEKLY",
119
+ MONTHLY = "MONTHLY",
120
+ CUSTOM = "CUSTOM"
121
+ }
122
+ declare enum DayOfWeek {
123
+ SUNDAY = "SUNDAY",
124
+ MONDAY = "MONDAY",
125
+ TUESDAY = "TUESDAY",
126
+ WEDNESDAY = "WEDNESDAY",
127
+ THURSDAY = "THURSDAY",
128
+ FRIDAY = "FRIDAY",
129
+ SATURDAY = "SATURDAY"
130
+ }
131
+ declare enum MontlhyStrategy {
132
+ FIXED_DAY = "FIXED_DAY",
133
+ SPECIFIC_DAY = "SPECIFIC_DAY"
134
+ }
135
+ declare enum CustomUnit {
136
+ DAYS = "DAYS",
137
+ WEEKS = "WEEKS",
138
+ MONTHS = "MONTHS"
139
+ }
140
+ declare enum EventType {
141
+ ORDER_PLACED = "ORDER_PLACED",
142
+ ORDER_UNPLANNED = "ORDER_UNPLANNED",
143
+ ORDER_PLANNED = "ORDER_PLANNED",
144
+ SHOPPING_CART_ACTIVE = "SHOPPING_CART_ACTIVE",
145
+ SHOPPING_CART_ABANDONED = "SHOPPING_CART_ABANDONED"
146
+ }
147
+ declare enum ExternalOrigin {
148
+ SALE = "SALE",
149
+ ORDER = "ORDER",
150
+ SHOPPING_CART = "SHOPPING_CART",
151
+ ORDER_PROJECTION = "ORDER_PROJECTION"
152
+ }
153
+ declare enum Period {
154
+ PAST = "PAST",
155
+ TODAY = "TODAY",
156
+ FUTURE = "FUTURE"
157
+ }
158
+ declare enum ViewMode {
159
+ DAY = "DAY",
160
+ WEEK = "WEEK"
161
+ }
162
+ declare const SCROLL_END_THRESHOLD = 350;
163
+ declare const MAX_INDIVIDUAL_EVENTS = 2;
164
+ declare const MAX_VISIBLE_TOOLTIP_EVENTS = 3;
165
+ declare const PARTNER_COLUMN_KEY = "partner";
166
+ declare const PARTNER_COLUMN_DEFAULT_WIDTH = 216;
167
+ declare const PARTNER_COLUMN_MIN_WIDTH = 170;
168
+ declare const DAY_COLUMN_MIN_WIDTH = 160;
169
+ declare const getDayColumnKey: (index: number) => string;
170
+ declare const getDateRange: (referenceDate: dayjs__default.Dayjs, daysCount: number) => FilterDateState;
171
+ declare const getDaysInRange: (startDate: string, endDate: string) => dayjs__default.Dayjs[];
172
+ declare const getRecurrenceLabel: (recurrence?: Recurrence) => string;
173
+ declare const getPeriodInfo: (referenceDate: Date) => {
174
+ period: Period;
175
+ };
176
+ declare const getEventStyles: (type?: EventType, period?: Period) => EventStyles;
177
+ declare const EVENT_TYPE_OPTIONS: Record<EventType, {
178
+ label: string;
179
+ color: string;
180
+ }>;
181
+
182
+ export { CustomUnit as C, Day as D, Event as E, Frequency as F, GroupedEvent as G, MontlhyStrategy as M, OrderProjectionSummary as O, Partner as P, Recurrence as R, SaleAnalysis as S, ViewMode as V, OrderProjectionEvent as a, PartnerDetails as b, PartnerOrder as c, PartnerSaleSummary as d, PartnerAddress as e, EventStyles as f, PartnerProfile as g, PartnerSeller as h, DayOfWeek as i, EventType as j, ExternalOrigin as k, Period as l, SCROLL_END_THRESHOLD as m, MAX_INDIVIDUAL_EVENTS as n, MAX_VISIBLE_TOOLTIP_EVENTS as o, PARTNER_COLUMN_KEY as p, PARTNER_COLUMN_DEFAULT_WIDTH as q, PARTNER_COLUMN_MIN_WIDTH as r, DAY_COLUMN_MIN_WIDTH as s, getDayColumnKey as t, getDateRange as u, getDaysInRange as v, getRecurrenceLabel as w, getPeriodInfo as x, getEventStyles as y, EVENT_TYPE_OPTIONS as z };
@@ -1,160 +1,5 @@
1
- import { Status } from '../utils/partnerAnalysis.js';
2
-
3
- declare enum Frequency {
4
- DAILY = "DAILY",
5
- WEEKLY = "WEEKLY",
6
- MONTHLY = "MONTHLY",
7
- CUSTOM = "CUSTOM"
8
- }
9
- declare enum DayOfWeek {
10
- SUNDAY = "SUNDAY",
11
- MONDAY = "MONDAY",
12
- TUESDAY = "TUESDAY",
13
- WEDNESDAY = "WEDNESDAY",
14
- THURSDAY = "THURSDAY",
15
- FRIDAY = "FRIDAY",
16
- SATURDAY = "SATURDAY"
17
- }
18
- declare enum MontlhyStrategy {
19
- FIXED_DAY = "FIXED_DAY",
20
- SPECIFIC_DAY = "SPECIFIC_DAY"
21
- }
22
- declare enum CustomUnit {
23
- DAYS = "DAYS",
24
- WEEKS = "WEEKS",
25
- MONTHS = "MONTHS"
26
- }
27
- interface Recurrence {
28
- frequency: Frequency;
29
- interval: number;
30
- days_of_week: DayOfWeek[];
31
- monthly_strategy: MontlhyStrategy;
32
- day_of_month: number;
33
- occurrence: number;
34
- custom_unit: CustomUnit;
35
- }
36
- declare enum EventType {
37
- ORDER_PLACED = "ORDER_PLACED",
38
- ORDER_UNPLANNED = "ORDER_UNPLANNED",
39
- ORDER_PLANNED = "ORDER_PLANNED",
40
- SHOPPING_CART_ACTIVE = "SHOPPING_CART_ACTIVE",
41
- SHOPPING_CART_ABANDONED = "SHOPPING_CART_ABANDONED"
42
- }
43
- declare enum ExternalOrigin {
44
- SALE = "SALE",
45
- ORDER = "ORDER",
46
- SHOPPING_CART = "SHOPPING_CART",
47
- ORDER_PROJECTION = "ORDER_PROJECTION"
48
- }
49
- declare enum Period {
50
- PAST = "PAST",
51
- TODAY = "TODAY",
52
- FUTURE = "FUTURE"
53
- }
54
- declare enum ViewMode {
55
- DAY = "DAY",
56
- WEEK = "WEEK"
57
- }
58
- interface SaleAnalysis {
59
- sale_count: number;
60
- last_sale_external_id: string;
61
- last_sale_sale_external_id?: string | null;
62
- last_sale_negotiation_date: Date;
63
- }
64
- interface Event {
65
- id: string;
66
- type: EventType;
67
- external_id: string;
68
- sale_external_id?: string | null;
69
- external_origin: ExternalOrigin;
70
- reference_date: Date;
71
- amount_value: number;
72
- }
73
- interface Partner {
74
- external_id: string;
75
- name: string;
76
- tax_id: string;
77
- phone: string;
78
- classification: Status;
79
- recurrence: Recurrence;
80
- sale_analysis: SaleAnalysis;
81
- events: Event[];
82
- }
83
- interface Day {
84
- date: string;
85
- order_placed: number;
86
- order_unplanned: number;
87
- order_planned: number;
88
- shopping_cart_active: number;
89
- shopping_cart_abandoned: number;
90
- }
91
- interface OrderProjectionSummary {
92
- days: Day[];
93
- partner_count: number;
94
- }
95
- interface EventStyles {
96
- label: string;
97
- labelPlural: string;
98
- background: string;
99
- color: string;
100
- backgroundHover: string;
101
- iconBadgeColor?: string;
102
- }
103
- interface GroupedEvent {
104
- count: number;
105
- config: EventStyles;
106
- events: Event[];
107
- }
108
- interface PartnerAddress {
109
- street?: string;
110
- number?: string;
111
- complement?: string;
112
- neighborhood?: string;
113
- city?: string;
114
- state?: string;
115
- postal_code?: string;
116
- }
117
- interface PartnerSaleSummary {
118
- order_quantity: number;
119
- total_value: number;
120
- average_ticket: number;
121
- }
122
- interface PartnerOrder {
123
- id: string;
124
- external_id?: string;
125
- sale_external_id?: string | null;
126
- negotiation_date: Date;
127
- total_value: number;
128
- }
129
- interface OrderProjectionEvent {
130
- id: string;
131
- partner: Omit<Partner, 'events'>;
132
- type: EventType;
133
- external_origin: ExternalOrigin;
134
- reference_date: Date;
135
- amount_value: number;
136
- detail: Record<string, any>;
137
- }
138
- interface PartnerProfile {
139
- id: string;
140
- name: string;
141
- }
142
- interface PartnerSeller {
143
- id: string;
144
- name: string;
145
- }
146
- interface PartnerDetails {
147
- id: string;
148
- external_id?: string;
149
- name: string;
150
- trade_name?: string;
151
- fiscal_registration_number?: string;
152
- email?: string;
153
- phone?: string;
154
- mobile?: string;
155
- profile?: PartnerProfile;
156
- main_seller?: PartnerSeller;
157
- address?: PartnerAddress;
158
- }
159
-
160
- export { CustomUnit, Day, DayOfWeek, Event, EventStyles, EventType, ExternalOrigin, Frequency, GroupedEvent, MontlhyStrategy, OrderProjectionEvent, OrderProjectionSummary, Partner, PartnerAddress, PartnerDetails, PartnerOrder, PartnerProfile, PartnerSaleSummary, PartnerSeller, Period, Recurrence, SaleAnalysis, ViewMode };
1
+ export { D as Day, E as Event, f as EventStyles, G as GroupedEvent, a as OrderProjectionEvent, O as OrderProjectionSummary, P as Partner, e as PartnerAddress, b as PartnerDetails, c as PartnerOrder, g as PartnerProfile, d as PartnerSaleSummary, h as PartnerSeller, R as Recurrence, S as SaleAnalysis } from '../orderProjection-c6f4f71e.js';
2
+ import '../utils/partnerAnalysis.js';
3
+ import 'dayjs';
4
+ import './analytics.js';
5
+ import '../utils/analytics.js';
@@ -1,2 +1,2 @@
1
- export { d as CustomUnit, b as DayOfWeek, e as EventType, f as ExternalOrigin, a as Frequency, c as MontlhyStrategy, g as Period, h as ViewMode } from '../chunk-QGXT2AUD.js';
1
+
2
2
  //# sourceMappingURL=orderProjection.js.map
@@ -1,5 +1,8 @@
1
+ import { R as Recurrence } from '../orderProjection-c6f4f71e.js';
1
2
  import { AbcCurve } from '../utils/partnerAnalysis.js';
2
- import { Recurrence } from './orderProjection.js';
3
+ import 'dayjs';
4
+ import './analytics.js';
5
+ import '../utils/analytics.js';
3
6
 
4
7
  interface RankingItem {
5
8
  partner_external_id: string;
@@ -1,27 +1,5 @@
1
- import dayjs__default from 'dayjs';
2
- import { FilterDateState } from '../types/analytics.js';
3
- import { Recurrence, Period, EventType, EventStyles } from '../types/orderProjection.js';
1
+ import 'dayjs';
2
+ import '../types/analytics.js';
3
+ export { C as CustomUnit, s as DAY_COLUMN_MIN_WIDTH, i as DayOfWeek, z as EVENT_TYPE_OPTIONS, j as EventType, k as ExternalOrigin, F as Frequency, n as MAX_INDIVIDUAL_EVENTS, o as MAX_VISIBLE_TOOLTIP_EVENTS, M as MontlhyStrategy, q as PARTNER_COLUMN_DEFAULT_WIDTH, p as PARTNER_COLUMN_KEY, r as PARTNER_COLUMN_MIN_WIDTH, l as Period, m as SCROLL_END_THRESHOLD, V as ViewMode, u as getDateRange, t as getDayColumnKey, v as getDaysInRange, y as getEventStyles, x as getPeriodInfo, w as getRecurrenceLabel } from '../orderProjection-c6f4f71e.js';
4
4
  import './analytics.js';
5
5
  import './partnerAnalysis.js';
6
-
7
- declare const SCROLL_END_THRESHOLD = 350;
8
- declare const MAX_INDIVIDUAL_EVENTS = 2;
9
- declare const MAX_VISIBLE_TOOLTIP_EVENTS = 3;
10
- declare const PARTNER_COLUMN_KEY = "partner";
11
- declare const PARTNER_COLUMN_DEFAULT_WIDTH = 216;
12
- declare const PARTNER_COLUMN_MIN_WIDTH = 170;
13
- declare const DAY_COLUMN_MIN_WIDTH = 160;
14
- declare const getDayColumnKey: (index: number) => string;
15
- declare const getDateRange: (referenceDate: dayjs__default.Dayjs, daysCount: number) => FilterDateState;
16
- declare const getDaysInRange: (startDate: string, endDate: string) => dayjs__default.Dayjs[];
17
- declare const getRecurrenceLabel: (recurrence?: Recurrence) => string;
18
- declare const getPeriodInfo: (referenceDate: Date) => {
19
- period: Period;
20
- };
21
- declare const getEventStyles: (type?: EventType, period?: Period) => EventStyles;
22
- declare const EVENT_TYPE_OPTIONS: Record<EventType, {
23
- label: string;
24
- color: string;
25
- }>;
26
-
27
- export { DAY_COLUMN_MIN_WIDTH, EVENT_TYPE_OPTIONS, MAX_INDIVIDUAL_EVENTS, MAX_VISIBLE_TOOLTIP_EVENTS, PARTNER_COLUMN_DEFAULT_WIDTH, PARTNER_COLUMN_KEY, PARTNER_COLUMN_MIN_WIDTH, SCROLL_END_THRESHOLD, getDateRange, getDayColumnKey, getDaysInRange, getEventStyles, getPeriodInfo, getRecurrenceLabel };
@@ -1,4 +1,3 @@
1
- export { g as DAY_COLUMN_MIN_WIDTH, n as EVENT_TYPE_OPTIONS, b as MAX_INDIVIDUAL_EVENTS, c as MAX_VISIBLE_TOOLTIP_EVENTS, e as PARTNER_COLUMN_DEFAULT_WIDTH, d as PARTNER_COLUMN_KEY, f as PARTNER_COLUMN_MIN_WIDTH, a as SCROLL_END_THRESHOLD, i as getDateRange, h as getDayColumnKey, j as getDaysInRange, m as getEventStyles, l as getPeriodInfo, k as getRecurrenceLabel } from '../chunk-PTIGK5PS.js';
2
- import '../chunk-QGXT2AUD.js';
1
+ export { d as CustomUnit, o as DAY_COLUMN_MIN_WIDTH, b as DayOfWeek, v as EVENT_TYPE_OPTIONS, e as EventType, f as ExternalOrigin, a as Frequency, j as MAX_INDIVIDUAL_EVENTS, k as MAX_VISIBLE_TOOLTIP_EVENTS, c as MontlhyStrategy, m as PARTNER_COLUMN_DEFAULT_WIDTH, l as PARTNER_COLUMN_KEY, n as PARTNER_COLUMN_MIN_WIDTH, g as Period, i as SCROLL_END_THRESHOLD, h as ViewMode, q as getDateRange, p as getDayColumnKey, r as getDaysInRange, u as getEventStyles, t as getPeriodInfo, s as getRecurrenceLabel } from '../chunk-OONF23Z2.js';
3
2
  import '../chunk-ERLI5GAP.js';
4
3
  //# sourceMappingURL=orderProjection.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.35",
3
+ "version": "2.9.36",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,9 +0,0 @@
1
- import { i } from './chunk-PTIGK5PS.js';
2
- import { b } from './chunk-TXJ45CNA.js';
3
- import { useRef, useState, useMemo, useCallback } from 'react';
4
- import D from 'dayjs';
5
-
6
- var L=()=>{let u=b("down","sm"),P=b("down","md"),v=b("down","lg"),O=b("down","xl"),m=useRef(null),[g,f]=useState(()=>D()),[h,R]=useState([]),[S,T]=useState([]),[o,j]=useState([]),[r,w]=useState([]),[y,M]=useState(!0),[b$1,F]=useState("WEEK"),i$1=useMemo(()=>h.map(t=>t.id),[h]),l=useMemo(()=>S.map(t=>t.id),[S]),_=u?"DAY":b$1,a=useMemo(()=>u||_==="DAY"?1:P?3:v?4:O?5:7,[u,P,v,O,_]),n=useMemo(()=>i(g,a),[g,a]),E=useMemo(()=>({start_date:n.start_date,end_date:n.end_date,...i$1.length>0?{partner_ids:i$1}:{},...o.length>0?{event_types:o}:{},...l.length>0?{profile_ids:l}:{},...r.length>0?{classifications:r}:{},ascending:y}),[n.start_date,n.end_date,i$1,o,l,r,y]),k=useMemo(()=>({start_date:n.start_date,end_date:n.end_date,...i$1.length>0?{partner_ids:i$1}:{},...l.length>0?{profile_ids:l}:{},...o.length>0?{event_types:o}:{},...r.length>0?{classifications:r}:{}}),[n.start_date,n.end_date,i$1,l,o,r]),e=useCallback(()=>{m.current&&(m.current.scrollTop=0);},[]),A=useCallback(t=>{f(t),e();},[e]),q=useCallback(()=>{f(t=>t.subtract(a,"day")),e();},[e,a]),x=useCallback(()=>{f(t=>t.add(a,"day")),e();},[e,a]),V=useCallback(()=>{f(D()),e();},[e]),W=useCallback(t=>{R(t),e();},[e]),B=useCallback(t=>{j(t),e();},[e]),I=useCallback(t=>{T(t),e();},[e]),Y=useCallback(t=>{w(t),e();},[e]),H=useCallback(t=>{M(t),e();},[e]);return {scrollRef:m,baseDate:g,dateRange:n,visibleDays:a,handleBaseDateChange:A,handlePreviousWeek:q,handleNextWeek:x,handleToday:V,selectedPartners:h,setSelectedPartners:W,selectedEventTypes:o,setSelectedEventTypes:B,selectedProfiles:S,setSelectedProfiles:I,selectedClassifications:r,setSelectedClassifications:Y,ascending:y,setAscending:H,viewMode:_,setViewMode:F,params:E,summaryParams:k,scrollToTop:e}},J=L;
7
-
8
- export { J as a };
9
- //# sourceMappingURL=chunk-HLJGNOJN.js.map
@@ -1,6 +0,0 @@
1
- import i from 'dayjs';
2
-
3
- var l="YYYY-MM-DD",b=350,F=2,D=3,u="partner",P=216,E=170,A=160,_=e=>`day-${e}`,f=(e,r)=>{if(r===7){let d=e.startOf("week"),s=d.add(6,"day");return {period:"OTHER",start_date:d.format(l),end_date:s.format(l)}}let a=Math.floor((r-1)/2),o=Math.ceil((r-1)/2),n=e.subtract(a,"day"),t=e.add(o,"day");return {period:"OTHER",start_date:n.format(l),end_date:t.format(l)}},N=(e,r)=>{let a=i(e),o=i(r),n=[],t=a;for(;t.isBefore(o)||t.isSame(o,"day");)n.push(t),t=t.add(1,"day");return n},g={["SUNDAY"]:"Domingo",["MONDAY"]:"Segunda",["TUESDAY"]:"Ter\xE7a",["WEDNESDAY"]:"Quarta",["THURSDAY"]:"Quinta",["FRIDAY"]:"Sexta",["SATURDAY"]:"S\xE1bado"},T=e=>{if(!e)return "N\xE3o definida";let{frequency:r,days_of_week:a}=e;switch(r){case"DAILY":return "Diariamente";case"WEEKLY":{if(!a||a.length===0)return "Semanalmente";let o=a.map(d=>g[d]);if(o.length===1)return o[0];let n=o[o.length-1];return `${o.slice(0,-1).join(", ")} e ${n}`}case"MONTHLY":return "Mensalmente";case"CUSTOM":return "Personalizada";default:return "N\xE3o definida"}},R=e=>{let r=i(e).startOf("day"),a=i().startOf("day");return r.isBefore(a)?{period:"PAST"}:r.isSame(a)?{period:"TODAY"}:{period:"FUTURE"}},p=(e,r)=>e==="ORDER_PLACED"?{label:"Pedido realizado",labelPlural:"Pedidos realizados",background:"linear-gradient(0deg, rgba(34, 197, 94, 0.08) 0%, rgba(34, 197, 94, 0.08) 100%), #FFF",color:"#065E49",backgroundHover:"linear-gradient(0deg, rgba(34, 197, 94, 0.20) 0%, rgba(34, 197, 94, 0.20) 100%), #FFF"}:e==="ORDER_UNPLANNED"?{label:"Pedido fora do padr\xE3o",labelPlural:"Pedidos fora do padr\xE3o",background:"linear-gradient(0deg, rgba(0, 184, 217, 0.12) 0%, rgba(0, 184, 217, 0.12) 100%), #FFF",color:"#003768",backgroundHover:"linear-gradient(0deg, rgba(0, 184, 217, 0.24) 0%, rgba(0, 184, 217, 0.24) 100%), #FFF"}:e==="SHOPPING_CART_ACTIVE"?{label:"Pedido em andamento",labelPlural:"Pedidos em andamento",background:"linear-gradient(0deg, rgba(255, 171, 0, 0.12) 0%, rgba(255, 171, 0, 0.12) 100%), #FFF",color:"#7A4100",backgroundHover:"linear-gradient(0deg, rgba(255, 171, 0, 0.20) 0%, rgba(255, 171, 0, 0.20) 100%), #FFF",iconBadgeColor:"#FFAB00"}:e==="SHOPPING_CART_ABANDONED"?{label:"Carrinho abandonado",labelPlural:"Carrinhos abandonados",background:"linear-gradient(0deg, rgba(255, 86, 48, 0.12) 0%, rgba(255, 86, 48, 0.12) 100%), #FFF",color:"#7A0916",backgroundHover:"linear-gradient(0deg, rgba(255, 86, 48, 0.24) 0%, rgba(255, 86, 48, 0.24) 100%), #FFF",iconBadgeColor:"#FF5630"}:e==="ORDER_PLANNED"?r==="PAST"?{label:"Pedido n\xE3o realizado",labelPlural:"Pedidos n\xE3o realizados",background:"linear-gradient(0deg, rgba(255, 86, 48, 0.12) 0%, rgba(255, 86, 48, 0.12) 100%), #FFF",color:"#7A0916",backgroundHover:"linear-gradient(0deg, rgba(255, 86, 48, 0.24) 0%, rgba(255, 86, 48, 0.24) 100%), #FFF",iconBadgeColor:"#FF5630"}:r==="TODAY"?{label:"Pedido previsto para hoje",labelPlural:"Pedidos previstos para hoje",background:"linear-gradient(0deg, rgba(255, 171, 0, 0.12) 0%, rgba(255, 171, 0, 0.12) 100%), #FFF",color:"#7A4100",backgroundHover:"linear-gradient(0deg, rgba(255, 171, 0, 0.20) 0%, rgba(255, 171, 0, 0.20) 100%), #FFF",iconBadgeColor:"#FFAB00"}:{label:"Pedido previsto",labelPlural:"Pedidos previstos",background:"linear-gradient(0deg, rgba(145, 158, 171, 0.08) 0%, rgba(145, 158, 171, 0.08) 100%), #FFF",color:"#1C252E",backgroundHover:"linear-gradient(0deg, #C4CDD5 0%, #C4CDD5 100%), #FFF"}:{label:"Desconhecido",labelPlural:"Desconhecidos",background:"#FFF",color:"#000",backgroundHover:"#FFF"},O={["ORDER_PLACED"]:{label:"Pedido realizado",color:"#22C55E"},["ORDER_UNPLANNED"]:{label:"Pedido fora do padr\xE3o",color:"#00B8D9"},["ORDER_PLANNED"]:{label:"Pedido previsto",color:"#C4CDD5"},["SHOPPING_CART_ACTIVE"]:{label:"Pedido em andamento",color:"#FFAB00"},["SHOPPING_CART_ABANDONED"]:{label:"Carrinho abandonado",color:"#FF5630"}};
4
-
5
- export { b as a, F as b, D as c, u as d, P as e, E as f, A as g, _ as h, f as i, N as j, T as k, R as l, p as m, O as n };
6
- //# sourceMappingURL=chunk-PTIGK5PS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/orderProjection.ts"],"names":["dayjs","DATE_FORMAT","SCROLL_END_THRESHOLD","MAX_INDIVIDUAL_EVENTS","MAX_VISIBLE_TOOLTIP_EVENTS","PARTNER_COLUMN_KEY","PARTNER_COLUMN_DEFAULT_WIDTH","PARTNER_COLUMN_MIN_WIDTH","DAY_COLUMN_MIN_WIDTH","getDayColumnKey","index","getDateRange","referenceDate","daysCount","start","end","daysBefore","daysAfter","getDaysInRange","startDate","endDate","days","current","DAY_LABELS","getRecurrenceLabel","recurrence","frequency","days_of_week","selectedDays","day","lastDay","getPeriodInfo","refDate","today","getEventStyles","type","period","EVENT_TYPE_OPTIONS"],"mappings":"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","sourcesContent":["import dayjs from 'dayjs';\n\nimport { FilterDateState } from 'types/analytics';\nimport {\n DayOfWeek,\n EventStyles,\n EventType,\n Frequency,\n Period,\n Recurrence,\n} from 'types/orderProjection';\nimport { FilterPeriod } from 'utils/analytics';\n\nconst DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const SCROLL_END_THRESHOLD = 350;\n\nexport const MAX_INDIVIDUAL_EVENTS = 2;\n\nexport const MAX_VISIBLE_TOOLTIP_EVENTS = 3;\n\nexport const PARTNER_COLUMN_KEY = 'partner';\n\nexport const PARTNER_COLUMN_DEFAULT_WIDTH = 216;\n\nexport const PARTNER_COLUMN_MIN_WIDTH = 170;\n\nexport const DAY_COLUMN_MIN_WIDTH = 160;\n\nexport const getDayColumnKey = (index: number): string => `day-${index}`;\n\nexport const getDateRange = (\n referenceDate: dayjs.Dayjs,\n daysCount: number,\n): FilterDateState => {\n if (daysCount === 7) {\n const start = referenceDate.startOf('week');\n const end = start.add(6, 'day');\n\n return {\n period: FilterPeriod.OTHER,\n start_date: start.format(DATE_FORMAT),\n end_date: end.format(DATE_FORMAT),\n };\n }\n\n const daysBefore = Math.floor((daysCount - 1) / 2);\n const daysAfter = Math.ceil((daysCount - 1) / 2);\n\n const start = referenceDate.subtract(daysBefore, 'day');\n const end = referenceDate.add(daysAfter, 'day');\n\n return {\n period: FilterPeriod.OTHER,\n start_date: start.format(DATE_FORMAT),\n end_date: end.format(DATE_FORMAT),\n };\n};\n\nexport const getDaysInRange = (\n startDate: string,\n endDate: string,\n): dayjs.Dayjs[] => {\n const start = dayjs(startDate);\n const end = dayjs(endDate);\n const days: dayjs.Dayjs[] = [];\n\n let current = start;\n\n while (current.isBefore(end) || current.isSame(end, 'day')) {\n days.push(current);\n current = current.add(1, 'day');\n }\n\n return days;\n};\n\nconst DAY_LABELS: Record<DayOfWeek, string> = {\n [DayOfWeek.SUNDAY]: 'Domingo',\n [DayOfWeek.MONDAY]: 'Segunda',\n [DayOfWeek.TUESDAY]: 'Terça',\n [DayOfWeek.WEDNESDAY]: 'Quarta',\n [DayOfWeek.THURSDAY]: 'Quinta',\n [DayOfWeek.FRIDAY]: 'Sexta',\n [DayOfWeek.SATURDAY]: 'Sábado',\n};\n\nexport const getRecurrenceLabel = (recurrence?: Recurrence): string => {\n if (!recurrence) return 'Não definida';\n\n const { frequency, days_of_week } = recurrence;\n\n switch (frequency) {\n case Frequency.DAILY:\n return 'Diariamente';\n\n case Frequency.WEEKLY: {\n if (!days_of_week || days_of_week.length === 0) {\n return 'Semanalmente';\n }\n\n const selectedDays = days_of_week.map(day => DAY_LABELS[day]);\n\n if (selectedDays.length === 1) {\n return selectedDays[0];\n }\n\n const lastDay = selectedDays[selectedDays.length - 1];\n const otherDays = selectedDays.slice(0, -1).join(', ');\n return `${otherDays} e ${lastDay}`;\n }\n\n case Frequency.MONTHLY:\n return 'Mensalmente';\n\n case Frequency.CUSTOM:\n return 'Personalizada';\n\n default:\n return 'Não definida';\n }\n};\n\nexport const getPeriodInfo = (referenceDate: Date): { period: Period } => {\n const refDate = dayjs(referenceDate).startOf('day');\n const today = dayjs().startOf('day');\n\n if (refDate.isBefore(today)) return { period: Period.PAST };\n if (refDate.isSame(today)) return { period: Period.TODAY };\n\n return { period: Period.FUTURE };\n};\n\nexport const getEventStyles = (\n type?: EventType,\n period?: Period,\n): EventStyles => {\n if (type === EventType.ORDER_PLACED) {\n return {\n label: 'Pedido realizado',\n labelPlural: 'Pedidos realizados',\n background:\n 'linear-gradient(0deg, rgba(34, 197, 94, 0.08) 0%, rgba(34, 197, 94, 0.08) 100%), #FFF',\n color: '#065E49',\n backgroundHover:\n 'linear-gradient(0deg, rgba(34, 197, 94, 0.20) 0%, rgba(34, 197, 94, 0.20) 100%), #FFF',\n };\n }\n\n if (type === EventType.ORDER_UNPLANNED) {\n return {\n label: 'Pedido fora do padrão',\n labelPlural: 'Pedidos fora do padrão',\n background:\n 'linear-gradient(0deg, rgba(0, 184, 217, 0.12) 0%, rgba(0, 184, 217, 0.12) 100%), #FFF',\n color: '#003768',\n backgroundHover:\n 'linear-gradient(0deg, rgba(0, 184, 217, 0.24) 0%, rgba(0, 184, 217, 0.24) 100%), #FFF',\n };\n }\n\n if (type === EventType.SHOPPING_CART_ACTIVE) {\n return {\n label: 'Pedido em andamento',\n labelPlural: 'Pedidos em andamento',\n background:\n 'linear-gradient(0deg, rgba(255, 171, 0, 0.12) 0%, rgba(255, 171, 0, 0.12) 100%), #FFF',\n color: '#7A4100',\n backgroundHover:\n 'linear-gradient(0deg, rgba(255, 171, 0, 0.20) 0%, rgba(255, 171, 0, 0.20) 100%), #FFF',\n iconBadgeColor: '#FFAB00',\n };\n }\n\n if (type === EventType.SHOPPING_CART_ABANDONED) {\n return {\n label: 'Carrinho abandonado',\n labelPlural: 'Carrinhos abandonados',\n background:\n 'linear-gradient(0deg, rgba(255, 86, 48, 0.12) 0%, rgba(255, 86, 48, 0.12) 100%), #FFF',\n color: '#7A0916',\n backgroundHover:\n 'linear-gradient(0deg, rgba(255, 86, 48, 0.24) 0%, rgba(255, 86, 48, 0.24) 100%), #FFF',\n iconBadgeColor: '#FF5630',\n };\n }\n\n if (type === EventType.ORDER_PLANNED) {\n if (period === Period.PAST) {\n return {\n label: 'Pedido não realizado',\n labelPlural: 'Pedidos não realizados',\n background:\n 'linear-gradient(0deg, rgba(255, 86, 48, 0.12) 0%, rgba(255, 86, 48, 0.12) 100%), #FFF',\n color: '#7A0916',\n backgroundHover:\n 'linear-gradient(0deg, rgba(255, 86, 48, 0.24) 0%, rgba(255, 86, 48, 0.24) 100%), #FFF',\n iconBadgeColor: '#FF5630',\n };\n }\n\n if (period === Period.TODAY) {\n return {\n label: 'Pedido previsto para hoje',\n labelPlural: 'Pedidos previstos para hoje',\n background:\n 'linear-gradient(0deg, rgba(255, 171, 0, 0.12) 0%, rgba(255, 171, 0, 0.12) 100%), #FFF',\n color: '#7A4100',\n backgroundHover:\n 'linear-gradient(0deg, rgba(255, 171, 0, 0.20) 0%, rgba(255, 171, 0, 0.20) 100%), #FFF',\n iconBadgeColor: '#FFAB00',\n };\n }\n\n return {\n label: 'Pedido previsto',\n labelPlural: 'Pedidos previstos',\n background:\n 'linear-gradient(0deg, rgba(145, 158, 171, 0.08) 0%, rgba(145, 158, 171, 0.08) 100%), #FFF',\n color: '#1C252E',\n backgroundHover: 'linear-gradient(0deg, #C4CDD5 0%, #C4CDD5 100%), #FFF',\n };\n }\n\n return {\n label: 'Desconhecido',\n labelPlural: 'Desconhecidos',\n background: '#FFF',\n color: '#000',\n backgroundHover: '#FFF',\n };\n};\n\nexport const EVENT_TYPE_OPTIONS: Record<\n EventType,\n { label: string; color: string }\n> = {\n [EventType.ORDER_PLACED]: {\n label: 'Pedido realizado',\n color: '#22C55E',\n },\n [EventType.ORDER_UNPLANNED]: {\n label: 'Pedido fora do padrão',\n color: '#00B8D9',\n },\n [EventType.ORDER_PLANNED]: {\n label: 'Pedido previsto',\n color: '#C4CDD5',\n },\n [EventType.SHOPPING_CART_ACTIVE]: {\n label: 'Pedido em andamento',\n color: '#FFAB00',\n },\n [EventType.SHOPPING_CART_ABANDONED]: {\n label: 'Carrinho abandonado',\n color: '#FF5630',\n },\n};\n"]}
@@ -1,4 +0,0 @@
1
- var i=(e=>(e.DAILY="DAILY",e.WEEKLY="WEEKLY",e.MONTHLY="MONTHLY",e.CUSTOM="CUSTOM",e))(i||{}),s=(t=>(t.SUNDAY="SUNDAY",t.MONDAY="MONDAY",t.TUESDAY="TUESDAY",t.WEDNESDAY="WEDNESDAY",t.THURSDAY="THURSDAY",t.FRIDAY="FRIDAY",t.SATURDAY="SATURDAY",t))(s||{}),_=(n=>(n.FIXED_DAY="FIXED_DAY",n.SPECIFIC_DAY="SPECIFIC_DAY",n))(_||{}),o=(r=>(r.DAYS="DAYS",r.WEEKS="WEEKS",r.MONTHS="MONTHS",r))(o||{}),l=(a=>(a.ORDER_PLACED="ORDER_PLACED",a.ORDER_UNPLANNED="ORDER_UNPLANNED",a.ORDER_PLANNED="ORDER_PLANNED",a.SHOPPING_CART_ACTIVE="SHOPPING_CART_ACTIVE",a.SHOPPING_CART_ABANDONED="SHOPPING_CART_ABANDONED",a))(l||{}),A=(e=>(e.SALE="SALE",e.ORDER="ORDER",e.SHOPPING_CART="SHOPPING_CART",e.ORDER_PROJECTION="ORDER_PROJECTION",e))(A||{}),g=(r=>(r.PAST="PAST",r.TODAY="TODAY",r.FUTURE="FUTURE",r))(g||{}),u=(n=>(n.DAY="DAY",n.WEEK="WEEK",n))(u||{});
2
-
3
- export { i as a, s as b, _ as c, o as d, l as e, A as f, g, u as h };
4
- //# sourceMappingURL=chunk-QGXT2AUD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/orderProjection.ts"],"names":["Frequency","DayOfWeek","MontlhyStrategy","CustomUnit","EventType","ExternalOrigin","Period","ViewMode"],"mappings":"AAEO,IAAKA,OACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SAJCA,OAAA,IAOAC,OACVA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,SAAW,WAPDA,OAAA,IAUAC,OACVA,EAAA,UAAY,YACZA,EAAA,aAAe,eAFLA,OAAA,IAKAC,OACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAHCA,OAAA,IAgBAC,OACVA,EAAA,aAAe,eACfA,EAAA,gBAAkB,kBAClBA,EAAA,cAAgB,gBAChBA,EAAA,qBAAuB,uBACvBA,EAAA,wBAA0B,0BALhBA,OAAA,IAQAC,OACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,cAAgB,gBAChBA,EAAA,iBAAmB,mBAJTA,OAAA,IAOAC,OACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAHCA,OAAA,IAMAC,OACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OAFGA,OAAA","sourcesContent":["import { Status } from 'utils/partnerAnalysis';\n\nexport enum Frequency {\n DAILY = 'DAILY',\n WEEKLY = 'WEEKLY',\n MONTHLY = 'MONTHLY',\n CUSTOM = 'CUSTOM',\n}\n\nexport enum DayOfWeek {\n SUNDAY = 'SUNDAY',\n MONDAY = 'MONDAY',\n TUESDAY = 'TUESDAY',\n WEDNESDAY = 'WEDNESDAY',\n THURSDAY = 'THURSDAY',\n FRIDAY = 'FRIDAY',\n SATURDAY = 'SATURDAY',\n}\n\nexport enum MontlhyStrategy {\n FIXED_DAY = 'FIXED_DAY',\n SPECIFIC_DAY = 'SPECIFIC_DAY',\n}\n\nexport enum CustomUnit {\n DAYS = 'DAYS',\n WEEKS = 'WEEKS',\n MONTHS = 'MONTHS',\n}\n\nexport interface Recurrence {\n frequency: Frequency;\n interval: number;\n days_of_week: DayOfWeek[];\n monthly_strategy: MontlhyStrategy;\n day_of_month: number;\n occurrence: number;\n custom_unit: CustomUnit;\n}\n\nexport enum EventType {\n ORDER_PLACED = 'ORDER_PLACED',\n ORDER_UNPLANNED = 'ORDER_UNPLANNED',\n ORDER_PLANNED = 'ORDER_PLANNED',\n SHOPPING_CART_ACTIVE = 'SHOPPING_CART_ACTIVE',\n SHOPPING_CART_ABANDONED = 'SHOPPING_CART_ABANDONED',\n}\n\nexport enum ExternalOrigin {\n SALE = 'SALE',\n ORDER = 'ORDER',\n SHOPPING_CART = 'SHOPPING_CART',\n ORDER_PROJECTION = 'ORDER_PROJECTION',\n}\n\nexport enum Period {\n PAST = 'PAST',\n TODAY = 'TODAY',\n FUTURE = 'FUTURE',\n}\n\nexport enum ViewMode {\n DAY = 'DAY',\n WEEK = 'WEEK',\n}\n\nexport interface SaleAnalysis {\n sale_count: number;\n last_sale_external_id: string;\n last_sale_sale_external_id?: string | null;\n last_sale_negotiation_date: Date;\n}\n\nexport interface Event {\n id: string;\n type: EventType;\n external_id: string;\n sale_external_id?: string | null;\n external_origin: ExternalOrigin;\n reference_date: Date;\n amount_value: number;\n}\n\nexport interface Partner {\n external_id: string;\n name: string;\n tax_id: string;\n phone: string;\n classification: Status;\n recurrence: Recurrence;\n sale_analysis: SaleAnalysis;\n events: Event[];\n}\n\nexport interface Day {\n date: string;\n order_placed: number;\n order_unplanned: number;\n order_planned: number;\n shopping_cart_active: number;\n shopping_cart_abandoned: number;\n}\n\nexport interface OrderProjectionSummary {\n days: Day[];\n partner_count: number;\n}\n\nexport interface EventStyles {\n label: string;\n labelPlural: string;\n background: string;\n color: string;\n backgroundHover: string;\n iconBadgeColor?: string;\n}\n\nexport interface GroupedEvent {\n count: number;\n config: EventStyles;\n events: Event[];\n}\n\nexport interface PartnerAddress {\n street?: string;\n number?: string;\n complement?: string;\n neighborhood?: string;\n city?: string;\n state?: string;\n postal_code?: string;\n}\n\nexport interface PartnerSaleSummary {\n order_quantity: number;\n total_value: number;\n average_ticket: number;\n}\n\nexport interface PartnerOrder {\n id: string;\n external_id?: string;\n sale_external_id?: string | null;\n negotiation_date: Date;\n total_value: number;\n}\n\n\nexport interface OrderProjectionEvent {\n id: string;\n partner: Omit<Partner, 'events'>;\n type: EventType;\n external_origin: ExternalOrigin;\n reference_date: Date;\n amount_value: number;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n detail: Record<string, any>;\n}\n\nexport interface PartnerProfile {\n id: string;\n name: string;\n}\n\nexport interface PartnerSeller {\n id: string;\n name: string;\n}\n\nexport interface PartnerDetails {\n id: string;\n external_id?: string;\n name: string;\n trade_name?: string;\n fiscal_registration_number?: string;\n email?: string;\n phone?: string;\n mobile?: string;\n profile?: PartnerProfile;\n main_seller?: PartnerSeller;\n address?: PartnerAddress;\n}\n"]}