@zydon/common 2.9.35 → 2.9.37

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 (181) hide show
  1. package/dist/{chunk-IFYEQTIR.js → chunk-3RFXFIBL.js} +2 -2
  2. package/dist/{chunk-HLJGNOJN.js → chunk-5GXRPVV5.js} +3 -3
  3. package/dist/{chunk-HLJGNOJN.js.map → chunk-5GXRPVV5.js.map} +1 -1
  4. package/dist/{chunk-XT2AH5G2.js → chunk-5ZMA4N4W.js} +1 -1
  5. package/dist/{chunk-ALVCWIRN.js → chunk-ANH46M6K.js} +3 -3
  6. package/dist/{chunk-A2LPDSRW.js → chunk-BK36QQTT.js} +2 -2
  7. package/dist/chunk-CB4KDKZY.js +6 -0
  8. package/dist/chunk-CB4KDKZY.js.map +1 -0
  9. package/dist/{chunk-CK6Q4FGI.js → chunk-COAGQGZA.js} +2 -2
  10. package/dist/{chunk-5N6Y3FIM.js → chunk-CZ5Y53WA.js} +2 -2
  11. package/dist/{chunk-U2XWJMVE.js → chunk-EICUAMNN.js} +2 -2
  12. package/dist/chunk-H762KDPN.js +11 -0
  13. package/dist/chunk-H762KDPN.js.map +1 -0
  14. package/dist/{chunk-LKX2OZSP.js → chunk-JBYYU67F.js} +3 -3
  15. package/dist/{chunk-FCC5IEAW.js → chunk-JKAMT5TC.js} +2 -2
  16. package/dist/chunk-K34AZXX4.js +8 -0
  17. package/dist/chunk-K34AZXX4.js.map +1 -0
  18. package/dist/{chunk-IWNQZ4DU.js → chunk-KDSM2AIT.js} +2 -2
  19. package/dist/chunk-KJJDGCL4.js +8 -0
  20. package/dist/chunk-KJJDGCL4.js.map +1 -0
  21. package/dist/{chunk-XA36N32L.js → chunk-L6CMWQCC.js} +2 -2
  22. package/dist/{chunk-HPBLOHGU.js → chunk-MJFCJZFD.js} +2 -2
  23. package/dist/chunk-MTJT2RGA.js +8 -0
  24. package/dist/chunk-MTJT2RGA.js.map +1 -0
  25. package/dist/{chunk-W6J37DOS.js → chunk-MY4CZ5PC.js} +2 -2
  26. package/dist/{chunk-XECFL7W6.js → chunk-NJLLYK4S.js} +2 -2
  27. package/dist/{chunk-QZVNKHIE.js → chunk-PMKM67BB.js} +2 -2
  28. package/dist/{chunk-3GERPUNO.js → chunk-PVHLAOT2.js} +5 -5
  29. package/dist/chunk-Q2R3X4EB.js +8 -0
  30. package/dist/chunk-Q2R3X4EB.js.map +1 -0
  31. package/dist/{chunk-C3JTGVAS.js → chunk-R7BNGTUT.js} +2 -2
  32. package/dist/{chunk-K6O5RVKC.js → chunk-TAA5KCEG.js} +3 -3
  33. package/dist/{chunk-772DOKEN.js → chunk-TS7QZPD6.js} +2 -2
  34. package/dist/{chunk-7IHZRIIU.js → chunk-TSEVZMIE.js} +2 -2
  35. package/dist/chunk-UYYDORSQ.js +6 -0
  36. package/dist/chunk-UYYDORSQ.js.map +1 -0
  37. package/dist/{chunk-4FRN4I7H.js → chunk-VELCTMU2.js} +2 -2
  38. package/dist/{chunk-BUDIH7D2.js → chunk-VPZL6AIF.js} +2 -2
  39. package/dist/{chunk-7CMID2IK.js → chunk-W27CC2AQ.js} +5 -5
  40. package/dist/{chunk-ZYFY6BCA.js → chunk-YHOVSR7P.js} +2 -2
  41. package/dist/chunk-YJYS2LQQ.js +12 -0
  42. package/dist/chunk-YJYS2LQQ.js.map +1 -0
  43. package/dist/chunk-Z3HTIXB2.js +6 -0
  44. package/dist/chunk-Z3HTIXB2.js.map +1 -0
  45. package/dist/components/Accordion/index.js +2 -2
  46. package/dist/components/ActionButton/index.js +2 -2
  47. package/dist/components/Analytics/Carts/index.d.ts +29 -0
  48. package/dist/components/Analytics/Carts/index.js +61 -0
  49. package/dist/components/Analytics/Carts/index.js.map +1 -0
  50. package/dist/components/Analytics/OrderProjection/index.d.ts +6 -78
  51. package/dist/components/Analytics/OrderProjection/index.js +39 -40
  52. package/dist/components/Analytics/OrderProjection/index.js.map +1 -1
  53. package/dist/components/Analytics/OverviewAnalytics/index.d.ts +6 -3
  54. package/dist/components/Analytics/OverviewAnalytics/index.js +21 -20
  55. package/dist/components/Analytics/OverviewAnalytics/index.js.map +1 -1
  56. package/dist/components/Analytics/PartnerAnalysis/index.d.ts +11 -5
  57. package/dist/components/Analytics/PartnerAnalysis/index.js +25 -24
  58. package/dist/components/Analytics/PartnerAnalysis/index.js.map +1 -1
  59. package/dist/components/Analytics/index.js +7 -7
  60. package/dist/components/Analytics/index.js.map +1 -1
  61. package/dist/components/Autocomplete/index.js +2 -2
  62. package/dist/components/AvatarButton/index.js +5 -5
  63. package/dist/components/BuilderLayout/index.js +2 -2
  64. package/dist/components/BuilderSidebar/index.js +1 -1
  65. package/dist/components/BulkEditModal/index.js +4 -4
  66. package/dist/components/CardBrand/index.js +1 -1
  67. package/dist/components/ColorPickerInput/index.js +2 -2
  68. package/dist/components/ColumnResizeHandle/index.d.ts +3 -2
  69. package/dist/components/ColumnResizeHandle/index.js +1 -1
  70. package/dist/components/Common/index.js +4 -4
  71. package/dist/components/CopyButton/index.js +2 -2
  72. package/dist/components/DataView/index.js +5 -5
  73. package/dist/components/DataViewMobileItem/index.d.ts +6 -0
  74. package/dist/components/DataViewMobileItem/index.js +2 -0
  75. package/dist/components/DataViewMobileItem/index.js.map +1 -0
  76. package/dist/components/DragButton/index.js +2 -2
  77. package/dist/components/Drawer/index.js +2 -2
  78. package/dist/components/DynamicDataView/index.js +8 -8
  79. package/dist/components/EasyCropModal/index.js +3 -3
  80. package/dist/components/Error/index.js +1 -1
  81. package/dist/components/ExpandableGroup/index.js +1 -1
  82. package/dist/components/FileUpload/index.js +6 -6
  83. package/dist/components/Filters/index.js +4 -4
  84. package/dist/components/FrameSkeleton/index.js +1 -1
  85. package/dist/components/HelpButton/index.js +2 -2
  86. package/dist/components/Icon/index.js +1 -1
  87. package/dist/components/IconButton/index.js +2 -2
  88. package/dist/components/ImageCropModal/index.js +2 -2
  89. package/dist/components/Incrementer/index.js +2 -2
  90. package/dist/components/InfoCircle/index.js +2 -2
  91. package/dist/components/ListBundles/index.js +2 -2
  92. package/dist/components/MenuItem/index.js +2 -10
  93. package/dist/components/MenuItem/index.js.map +1 -1
  94. package/dist/components/Modal/index.js +2 -2
  95. package/dist/components/MoreMenu/index.js +4 -11
  96. package/dist/components/MoreMenu/index.js.map +1 -1
  97. package/dist/components/NotFound/index.js +1 -1
  98. package/dist/components/PasswordRules/index.js +1 -1
  99. package/dist/components/PopoverSelect/index.js +1 -1
  100. package/dist/components/PortalBrandImage/index.js +1 -1
  101. package/dist/components/SearchInput/index.js +2 -2
  102. package/dist/components/SelectList/index.js +4 -4
  103. package/dist/components/SelectableCards/index.js +3 -3
  104. package/dist/components/SeoPreview/index.js +1 -1
  105. package/dist/components/StateDisplay/index.js +2 -2
  106. package/dist/components/StepUpDialog/index.js +1 -1
  107. package/dist/components/Steps/index.js +1 -1
  108. package/dist/components/StyledTab/index.js +1 -1
  109. package/dist/components/SwapList/index.js +2 -2
  110. package/dist/components/ToggleTheme/index.js +3 -3
  111. package/dist/components/WebhookCard/index.js +1 -1
  112. package/dist/components/carousel/index.js +2 -2
  113. package/dist/components/form/Address/index.js +3 -3
  114. package/dist/components/form/Autocomplete/index.js +3 -3
  115. package/dist/components/form/ColorPicker/index.js +2 -2
  116. package/dist/components/form/FileUpload/index.js +6 -6
  117. package/dist/components/form/Incrementer/index.js +2 -2
  118. package/dist/components/form/Password/index.js +1 -1
  119. package/dist/components/form/SelectList/index.js +4 -4
  120. package/dist/components/form/SelectableCards/index.js +3 -3
  121. package/dist/components/form/Webhook/index.js +4 -4
  122. package/dist/components/lightbox/index.js +1 -1
  123. package/dist/components/table/index.js +2 -2
  124. package/dist/hooks/useCartsFilters.d.ts +8 -0
  125. package/dist/hooks/useCartsFilters.js +5 -0
  126. package/dist/hooks/useCartsFilters.js.map +1 -0
  127. package/dist/hooks/useOrderProjectionFilters.d.ts +4 -58
  128. package/dist/hooks/useOrderProjectionFilters.js +3 -4
  129. package/dist/hooks/useResizableColumns.d.ts +1 -1
  130. package/dist/hooks/useResizableColumns.js +1 -1
  131. package/dist/hooks/useThemeToggle.js +3 -3
  132. package/dist/index.js +3 -3
  133. package/dist/theme/theme-provider.js +3 -3
  134. package/dist/types/carts.d.ts +8 -0
  135. package/dist/types/carts.js +2 -0
  136. package/dist/types/carts.js.map +1 -0
  137. package/dist/types/orderProjection.d.ts +6 -160
  138. package/dist/types/orderProjection.js +1 -1
  139. package/dist/types/partnerAnalysis.d.ts +5 -1
  140. package/dist/useCartsFilters-9eb738ab.d.ts +219 -0
  141. package/dist/useOrderProjectionFilters-5c1162d5.d.ts +297 -0
  142. package/dist/{useResizableColumns.types-6611ee0b.d.ts → useResizableColumns.types-33105448.d.ts} +4 -3
  143. package/dist/utils/buildExportPayload.js +1 -1
  144. package/dist/utils/carts.d.ts +20 -0
  145. package/dist/utils/carts.js +3 -0
  146. package/dist/utils/carts.js.map +1 -0
  147. package/dist/utils/orderProjection.d.ts +4 -25
  148. package/dist/utils/orderProjection.js +1 -2
  149. package/package.json +5 -1
  150. package/dist/chunk-7WUAJEER.js +0 -6
  151. package/dist/chunk-7WUAJEER.js.map +0 -1
  152. package/dist/chunk-PTIGK5PS.js +0 -6
  153. package/dist/chunk-PTIGK5PS.js.map +0 -1
  154. package/dist/chunk-QGXT2AUD.js +0 -4
  155. package/dist/chunk-QGXT2AUD.js.map +0 -1
  156. package/dist/chunk-TQFKLNTU.js +0 -8
  157. package/dist/chunk-TQFKLNTU.js.map +0 -1
  158. /package/dist/{chunk-IFYEQTIR.js.map → chunk-3RFXFIBL.js.map} +0 -0
  159. /package/dist/{chunk-XT2AH5G2.js.map → chunk-5ZMA4N4W.js.map} +0 -0
  160. /package/dist/{chunk-ALVCWIRN.js.map → chunk-ANH46M6K.js.map} +0 -0
  161. /package/dist/{chunk-A2LPDSRW.js.map → chunk-BK36QQTT.js.map} +0 -0
  162. /package/dist/{chunk-CK6Q4FGI.js.map → chunk-COAGQGZA.js.map} +0 -0
  163. /package/dist/{chunk-5N6Y3FIM.js.map → chunk-CZ5Y53WA.js.map} +0 -0
  164. /package/dist/{chunk-U2XWJMVE.js.map → chunk-EICUAMNN.js.map} +0 -0
  165. /package/dist/{chunk-LKX2OZSP.js.map → chunk-JBYYU67F.js.map} +0 -0
  166. /package/dist/{chunk-FCC5IEAW.js.map → chunk-JKAMT5TC.js.map} +0 -0
  167. /package/dist/{chunk-IWNQZ4DU.js.map → chunk-KDSM2AIT.js.map} +0 -0
  168. /package/dist/{chunk-XA36N32L.js.map → chunk-L6CMWQCC.js.map} +0 -0
  169. /package/dist/{chunk-HPBLOHGU.js.map → chunk-MJFCJZFD.js.map} +0 -0
  170. /package/dist/{chunk-W6J37DOS.js.map → chunk-MY4CZ5PC.js.map} +0 -0
  171. /package/dist/{chunk-XECFL7W6.js.map → chunk-NJLLYK4S.js.map} +0 -0
  172. /package/dist/{chunk-QZVNKHIE.js.map → chunk-PMKM67BB.js.map} +0 -0
  173. /package/dist/{chunk-3GERPUNO.js.map → chunk-PVHLAOT2.js.map} +0 -0
  174. /package/dist/{chunk-C3JTGVAS.js.map → chunk-R7BNGTUT.js.map} +0 -0
  175. /package/dist/{chunk-K6O5RVKC.js.map → chunk-TAA5KCEG.js.map} +0 -0
  176. /package/dist/{chunk-772DOKEN.js.map → chunk-TS7QZPD6.js.map} +0 -0
  177. /package/dist/{chunk-7IHZRIIU.js.map → chunk-TSEVZMIE.js.map} +0 -0
  178. /package/dist/{chunk-4FRN4I7H.js.map → chunk-VELCTMU2.js.map} +0 -0
  179. /package/dist/{chunk-BUDIH7D2.js.map → chunk-VPZL6AIF.js.map} +0 -0
  180. /package/dist/{chunk-7CMID2IK.js.map → chunk-W27CC2AQ.js.map} +0 -0
  181. /package/dist/{chunk-ZYFY6BCA.js.map → chunk-YHOVSR7P.js.map} +0 -0
@@ -4,15 +4,16 @@ interface ResizableColumn {
4
4
  key: string;
5
5
  minWidth: number;
6
6
  defaultWidth?: number;
7
+ maxWidthRatio?: number;
7
8
  }
8
9
  interface ResizableColumnWidth {
9
10
  key: string;
10
11
  width: number;
11
12
  }
12
13
  interface ColumnResizeProps {
13
- onResizeStart: () => void;
14
- onResize: (offset: number) => void;
15
- onResizeEnd: () => void;
14
+ onResizeStart: (handleId: string) => void;
15
+ onResize: (offset: number, handleId: string) => void;
16
+ onResizeEnd: (handleId: string) => void;
16
17
  onReset: () => void;
17
18
  }
18
19
  interface UseResizableColumnsProps {
@@ -1,5 +1,5 @@
1
- import '../chunk-4P2L7UJA.js';
2
1
  import '../chunk-P64QBDAO.js';
2
+ import '../chunk-4P2L7UJA.js';
3
3
 
4
4
  var u=(t,e)=>{if(!(!t?.fields||!e))return t.fields.find(r=>r.name===e||r.filter_field_name===e)},i=(t,e)=>{if(!e)return;let r=u(t,e);return t?.fields?r?.filter_field_name||r?.name:e},f=(t,e)=>{if(!(!t?.fields||!e||e.length===0))return e.filter(r=>r!=="ACTIONS")},l=(t,e)=>{let r=e?.trim();if(!r)return;let n=i(t,t?.description_field_name)||i(t,"name");if(n)return {operator:"AND",groups:[{operator:"AND",conditionals:[{fieldName:n,conditional:"LIKE",value:[r]}]}]}},p=(t,e,r)=>{if(!e||!r)return;let n=i(t,e);if(n)return {fieldName:n,sortType:r==="desc"?"DESC":"ASC"}},c=({metadata:t,visibleFieldNames:e,search:r,sort:n,dir:s})=>{let o=f(t,e),d=l(t,r),a=p(t,n,s);return {...o&&{criteria:o},...d&&{filter:d},...a&&{sort:a}}},y=c;
5
5
 
@@ -0,0 +1,20 @@
1
+ declare enum CartStatus {
2
+ ACTIVATED = "ACTIVATED",
3
+ ABANDONED = "ABANDONED",
4
+ EXPIRED = "EXPIRED"
5
+ }
6
+ declare enum Profile {
7
+ PARTNER = "PARTNER",
8
+ SELLER = "SELLER"
9
+ }
10
+ declare const CART_STATUS_OPTIONS: Record<CartStatus, {
11
+ label: string;
12
+ color: 'success' | 'error' | 'warning';
13
+ }>;
14
+ declare const CART_PROFILE_OPTIONS: Record<Profile, {
15
+ label: string;
16
+ }>;
17
+ declare const renderCurrencyValue: (value: number | null | undefined) => string;
18
+ declare const getProfileName: (profile: Profile) => "Vendedor" | "-" | "Cliente";
19
+
20
+ export { CART_PROFILE_OPTIONS, CART_STATUS_OPTIONS, CartStatus, Profile, getProfileName, renderCurrencyValue };
@@ -0,0 +1,3 @@
1
+ export { d as CART_PROFILE_OPTIONS, c as CART_STATUS_OPTIONS, a as CartStatus, b as Profile, f as getProfileName, e as renderCurrencyValue } from '../chunk-Z3HTIXB2.js';
2
+ import '../chunk-OF6623HG.js';
3
+ //# sourceMappingURL=carts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,27 +1,6 @@
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, B as DAY_COLUMN_MIN_WIDTH, r as DayOfWeek, T as EVENT_TYPE_OPTIONS, s as EventType, t as ExternalOrigin, F as Frequency, w as MAX_INDIVIDUAL_EVENTS, x as MAX_VISIBLE_TOOLTIP_EVENTS, M as MontlhyStrategy, z as PARTNER_COLUMN_DEFAULT_WIDTH, y as PARTNER_COLUMN_KEY, H as PARTNER_COLUMN_MAX_RATIO, A as PARTNER_COLUMN_MIN_WIDTH, u as Period, v as SCROLL_END_THRESHOLD, V as ViewMode, J as getDateRange, I as getDayColumnKey, K as getDaysInRange, Q as getEventStyles, N as getPeriodInfo, L as getRecurrenceLabel } from '../useOrderProjectionFilters-5c1162d5.js';
4
4
  import './analytics.js';
5
+ import 'react';
5
6
  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, w 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, p as PARTNER_COLUMN_MAX_RATIO, n as PARTNER_COLUMN_MIN_WIDTH, g as Period, i as SCROLL_END_THRESHOLD, h as ViewMode, r as getDateRange, q as getDayColumnKey, s as getDaysInRange, v as getEventStyles, u as getPeriodInfo, t as getRecurrenceLabel } from '../chunk-UYYDORSQ.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.37",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -46,6 +46,10 @@
46
46
  "import": "./dist/components/Analytics/index.js",
47
47
  "types": "./dist/components/Analytics/index.d.ts"
48
48
  },
49
+ "./components/Analytics/Carts": {
50
+ "import": "./dist/components/Analytics/Carts/index.js",
51
+ "types": "./dist/components/Analytics/Carts/index.d.ts"
52
+ },
49
53
  "./components/Analytics/OrderProjection": {
50
54
  "import": "./dist/components/Analytics/OrderProjection/index.js",
51
55
  "types": "./dist/components/Analytics/OrderProjection/index.d.ts"
@@ -1,6 +0,0 @@
1
- import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
2
-
3
- var P=(e,o)=>{let s=e.reduce((n,d)=>n+(d.defaultWidth??0),0),l=e.filter(n=>!n.defaultWidth).length,W=(o-s)/(l||1);return e.reduce((n,d)=>({...n,[d.key]:Math.max(d.minWidth,d.defaultWidth??W)}),{})},k=(e,o)=>Object.fromEntries(Object.entries(e).filter(([s])=>s!==o)),v=({columns:e,containerRef:o,enabled:s})=>{let[l,W]=useState({}),[n,d]=useState(0),[b,z]=useState(null),C=useRef(0);useEffect(()=>{let t=o.current;if(!t||!s)return;let i=new ResizeObserver(()=>d(t.clientWidth));return i.observe(t),d(t.clientWidth),()=>i.disconnect()},[o,s]);let R=useMemo(()=>P(e,n),[e,n]),h=useMemo(()=>{let t=e.map(r=>({key:r.key,width:l[r.key]??R[r.key]})),i=t.reduce((r,c)=>r+c.width,0),a=Math.max(0,n-i),u=t.length-1;return t.map((r,c)=>({...r,width:c===u?r.width+a:r.width}))},[e,n,R,l]),g=useMemo(()=>h.reduce((t,i)=>t+i.width,0),[h]),p=useCallback(t=>{if(s)return {onResizeStart:()=>{C.current=h.find(i=>i.key===t)?.width??0,z(t);},onResize:i=>{let a=e.find(u=>u.key===t)?.minWidth??0;W(u=>({...u,[t]:Math.max(a,C.current+i)}));},onResizeEnd:()=>z(null),onReset:()=>W(i=>k(i,t))}},[e,h,s]);return {columnWidths:s?h:[],totalWidth:s?g:0,isResizing:!!b,getColumnResizeProps:p}},E=v;
4
-
5
- export { E as a };
6
- //# sourceMappingURL=chunk-7WUAJEER.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/useResizableColumns.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","getDefaultWidths","columns","containerWidth","reservedWidth","total","column","flexibleCount","flexibleWidth","widths","omitColumn","key","columnKey","useResizableColumns","containerRef","enabled","resizedWidths","setResizedWidths","setContainerWidth","resizingKey","setResizingKey","resizeStartWidth","container","observer","defaultWidths","columnWidths","naturalWidth","remainingWidth","lastIndex","index","totalWidth","getColumnResizeProps","offset","minWidth","previous","useResizableColumns_default"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n ColumnResizeProps,\n ResizableColumn,\n ResizableColumnWidth,\n UseResizableColumnsProps,\n} from './useResizableColumns.types';\n\ntype ColumnWidths = Record<string, number>;\n\nconst getDefaultWidths = (\n columns: ResizableColumn[],\n containerWidth: number,\n): ColumnWidths => {\n const reservedWidth = columns.reduce(\n (total, column) => total + (column.defaultWidth ?? 0),\n 0,\n );\n\n const flexibleCount = columns.filter(column => !column.defaultWidth).length;\n const flexibleWidth = (containerWidth - reservedWidth) / (flexibleCount || 1);\n\n return columns.reduce<ColumnWidths>(\n (widths, column) => ({\n ...widths,\n [column.key]: Math.max(\n column.minWidth,\n column.defaultWidth ?? flexibleWidth,\n ),\n }),\n {},\n );\n};\n\nconst omitColumn = (widths: ColumnWidths, key: string): ColumnWidths =>\n Object.fromEntries(\n Object.entries(widths).filter(([columnKey]) => columnKey !== key),\n );\n\nconst useResizableColumns = ({\n columns,\n containerRef,\n enabled,\n}: UseResizableColumnsProps) => {\n const [resizedWidths, setResizedWidths] = useState<ColumnWidths>({});\n const [containerWidth, setContainerWidth] = useState(0);\n const [resizingKey, setResizingKey] = useState<string | null>(null);\n\n const resizeStartWidth = useRef(0);\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!container || !enabled) return;\n\n const observer = new ResizeObserver(() =>\n setContainerWidth(container.clientWidth),\n );\n\n observer.observe(container);\n setContainerWidth(container.clientWidth);\n\n return () => observer.disconnect();\n }, [containerRef, enabled]);\n\n const defaultWidths = useMemo(\n () => getDefaultWidths(columns, containerWidth),\n [columns, containerWidth],\n );\n\n const columnWidths = useMemo<ResizableColumnWidth[]>(() => {\n const widths = columns.map(column => ({\n key: column.key,\n width: resizedWidths[column.key] ?? defaultWidths[column.key],\n }));\n\n const naturalWidth = widths.reduce(\n (total, column) => total + column.width,\n 0,\n );\n\n const remainingWidth = Math.max(0, containerWidth - naturalWidth);\n const lastIndex = widths.length - 1;\n\n return widths.map((column, index) => ({\n ...column,\n width: index === lastIndex ? column.width + remainingWidth : column.width,\n }));\n }, [columns, containerWidth, defaultWidths, resizedWidths]);\n\n const totalWidth = useMemo(\n () => columnWidths.reduce((total, column) => total + column.width, 0),\n [columnWidths],\n );\n\n const getColumnResizeProps = useCallback(\n (key: string): ColumnResizeProps | undefined => {\n if (!enabled) return undefined;\n\n return {\n onResizeStart: () => {\n resizeStartWidth.current =\n columnWidths.find(column => column.key === key)?.width ?? 0;\n\n setResizingKey(key);\n },\n\n onResize: offset => {\n const minWidth =\n columns.find(column => column.key === key)?.minWidth ?? 0;\n\n setResizedWidths(previous => ({\n ...previous,\n [key]: Math.max(minWidth, resizeStartWidth.current + offset),\n }));\n },\n\n onResizeEnd: () => setResizingKey(null),\n\n onReset: () => setResizedWidths(previous => omitColumn(previous, key)),\n };\n },\n [columns, columnWidths, enabled],\n );\n\n return {\n columnWidths: enabled ? columnWidths : [],\n totalWidth: enabled ? totalWidth : 0,\n isResizing: !!resizingKey,\n getColumnResizeProps,\n };\n};\n\nexport default useResizableColumns;\n"]}
@@ -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"]}
@@ -1,8 +0,0 @@
1
- import { useRef, useCallback } from 'react';
2
- import { styled } from '@mui/material/styles';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- var p=styled("span")(({theme:t})=>({position:"absolute",top:0,right:0,zIndex:1,width:t.spacing(1),height:"100%",cursor:"col-resize",touchAction:"none",userSelect:"none","&:hover, &:focus-visible":{backgroundColor:t.palette.primary.main,opacity:.32}}));var h={ArrowLeft:-16,ArrowRight:16},C=({label:t,onResizeStart:o,onResize:l,onResizeEnd:a,onReset:i})=>{let r=useRef(null),s=useCallback(n=>{n.preventDefault(),n.stopPropagation(),r.current=n.clientX,n.currentTarget.setPointerCapture(n.pointerId),o();},[o]),d=useCallback(n=>{r.current!==null&&l(n.clientX-r.current);},[l]),u=useCallback(n=>{r.current!==null&&(r.current=null,n.currentTarget.releasePointerCapture(n.pointerId),a());},[a]),m=useCallback(n=>{let c=h[n.key];c&&(n.preventDefault(),o(),l(c),a());},[l,a,o]),P=useCallback(()=>i(),[i]);return jsx(p,{role:"separator","aria-orientation":"vertical","aria-label":t,tabIndex:0,onPointerDown:s,onPointerMove:d,onPointerUp:u,onPointerCancel:u,onDoubleClick:P,onKeyDown:m})},T=C;
6
-
7
- export { T as a };
8
- //# sourceMappingURL=chunk-TQFKLNTU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ColumnResizeHandle/index.tsx","../src/components/ColumnResizeHandle/styles.ts"],"names":["useCallback","useRef","styled","Handle","theme","jsx","KEYBOARD_OFFSETS","ColumnResizeHandle","label","onResizeStart","onResize","onResizeEnd","onReset","startX","handlePointerDown","event","handlePointerMove","handlePointerUp","handleKeyDown","offset","handleDoubleClick","ColumnResizeHandle_default"],"mappings":"AAAA,OAAsC,eAAAA,EAAa,UAAAC,MAAc,QCAjE,OAAS,UAAAC,MAAc,uBAEhB,IAAMC,EAASD,EAAO,MAAM,EAAE,CAAC,CAAE,MAAAE,CAAM,KAAO,CACnD,SAAU,WACV,IAAK,EACL,MAAO,EACP,OAAQ,EAER,MAAOA,EAAM,QAAQ,CAAC,EACtB,OAAQ,OAER,OAAQ,aACR,YAAa,OACb,WAAY,OAEZ,2BAA4B,CAC1B,gBAAiBA,EAAM,QAAQ,QAAQ,KACvC,QAAS,GACX,CACF,EAAE,EDoDE,cAAAC,MAAA,oBAlEJ,IAAMC,EAA2C,CAC/C,UAAW,IACX,WAAY,EACd,EAEMC,EAAqB,CAAC,CAC1B,MAAAC,EACA,cAAAC,EACA,SAAAC,EACA,YAAAC,EACA,QAAAC,CACF,IAA+B,CAC7B,IAAMC,EAASZ,EAAsB,IAAI,EAEnCa,EAAoBd,EACvBe,GAAyC,CACxCA,EAAM,eAAe,EACrBA,EAAM,gBAAgB,EAEtBF,EAAO,QAAUE,EAAM,QACvBA,EAAM,cAAc,kBAAkBA,EAAM,SAAS,EAErDN,EAAc,CAChB,EACA,CAACA,CAAa,CAChB,EAEMO,EAAoBhB,EACvBe,GAAyC,CACpCF,EAAO,UAAY,MAEvBH,EAASK,EAAM,QAAUF,EAAO,OAAO,CACzC,EACA,CAACH,CAAQ,CACX,EAEMO,EAAkBjB,EACrBe,GAAyC,CACpCF,EAAO,UAAY,OAEvBA,EAAO,QAAU,KACjBE,EAAM,cAAc,sBAAsBA,EAAM,SAAS,EAEzDJ,EAAY,EACd,EACA,CAACA,CAAW,CACd,EAEMO,EAAgBlB,EACnBe,GAA0C,CACzC,IAAMI,EAASb,EAAiBS,EAAM,GAAG,EAEpCI,IAELJ,EAAM,eAAe,EAErBN,EAAc,EACdC,EAASS,CAAM,EACfR,EAAY,EACd,EACA,CAACD,EAAUC,EAAaF,CAAa,CACvC,EAEMW,EAAoBpB,EAAY,IAAMY,EAAQ,EAAG,CAACA,CAAO,CAAC,EAEhE,OACEP,EAACF,EAAA,CACC,KAAK,YACL,mBAAiB,WACjB,aAAYK,EACZ,SAAU,EACV,cAAeM,EACf,cAAeE,EACf,YAAaC,EACb,gBAAiBA,EACjB,cAAeG,EACf,UAAWF,EACb,CAEJ,EAEOG,EAAQd","sourcesContent":["import { KeyboardEvent, PointerEvent, useCallback, useRef } from 'react';\n\nimport { ColumnResizeHandleProps } from './props';\nimport { Handle } from './styles';\n\nconst KEYBOARD_OFFSETS: Record<string, number> = {\n ArrowLeft: -16,\n ArrowRight: 16,\n};\n\nconst ColumnResizeHandle = ({\n label,\n onResizeStart,\n onResize,\n onResizeEnd,\n onReset,\n}: ColumnResizeHandleProps) => {\n const startX = useRef<number | null>(null);\n\n const handlePointerDown = useCallback(\n (event: PointerEvent<HTMLSpanElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n startX.current = event.clientX;\n event.currentTarget.setPointerCapture(event.pointerId);\n\n onResizeStart();\n },\n [onResizeStart],\n );\n\n const handlePointerMove = useCallback(\n (event: PointerEvent<HTMLSpanElement>) => {\n if (startX.current === null) return;\n\n onResize(event.clientX - startX.current);\n },\n [onResize],\n );\n\n const handlePointerUp = useCallback(\n (event: PointerEvent<HTMLSpanElement>) => {\n if (startX.current === null) return;\n\n startX.current = null;\n event.currentTarget.releasePointerCapture(event.pointerId);\n\n onResizeEnd();\n },\n [onResizeEnd],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLSpanElement>) => {\n const offset = KEYBOARD_OFFSETS[event.key];\n\n if (!offset) return;\n\n event.preventDefault();\n\n onResizeStart();\n onResize(offset);\n onResizeEnd();\n },\n [onResize, onResizeEnd, onResizeStart],\n );\n\n const handleDoubleClick = useCallback(() => onReset(), [onReset]);\n\n return (\n <Handle\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={label}\n tabIndex={0}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n onDoubleClick={handleDoubleClick}\n onKeyDown={handleKeyDown}\n />\n );\n};\n\nexport default ColumnResizeHandle;\n","import { styled } from '@mui/material/styles';\n\nexport const Handle = styled('span')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n right: 0,\n zIndex: 1,\n\n width: theme.spacing(1),\n height: '100%',\n\n cursor: 'col-resize',\n touchAction: 'none',\n userSelect: 'none',\n\n '&:hover, &:focus-visible': {\n backgroundColor: theme.palette.primary.main,\n opacity: 0.32,\n },\n}));\n"]}