@zydon/common 2.9.30 → 2.9.31

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/README.md CHANGED
@@ -87,7 +87,7 @@ enqueueSnackbar('Mensagem', { variant: 'error' });
87
87
  ### Utils
88
88
  - **file:** utils para lidar com arquivos `(downloadFile)`
89
89
  - **formatNumber:** utils para formatar números `(fNumber, fCurrency, fPercent, fShortenNumber, fData result, fWithDecimalPlacesOrNot)`
90
- - **formatTime:** utils para lidar com datas `(fDate, fDateTime format, fTimestamp, fToNow)` (*Construido utilizando* [date-fns](https://www.npmjs.com/package/date-fns))
90
+ - **formatTime:** utils para lidar com datas `(today, fDate, fDateTime, fTime, fTimestamp, fToNow, fTimeAgo, fExpiration, fIsBetween, fIsAfter, fIsSame, fDateRangeShortLabel, fAdd, fSub, getDifferenceInDays, formatStr)` (*Construido utilizando* [dayjs](https://www.npmjs.com/package/dayjs))
91
91
  - **cssStyles:** utils para lidar com estilos CSS `(bgBlur, bgGradient, textGradient, filterStyles, hideScrollbarY, hideScrollbarX)`
92
92
  - **routes:** utils para lidar com rotas `(getRoot)`
93
93
  - **sort:** utils para lidar com ordenação de arrys de objetos `(sort, updatePosition)`
@@ -0,0 +1,8 @@
1
+ import i from 'dayjs';
2
+ import x from 'dayjs/plugin/duration';
3
+ import D from 'dayjs/plugin/relativeTime';
4
+
5
+ i.extend(x);i.extend(D);var c={dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY",time:"HH:mm",split:{dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY"},paramCase:{dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY"}};function P(r){return i(new Date).startOf("day").format(r)}function b(r,t){return r?i(r).isValid()?i(r).format(t??c.dateTime):"Invalid time value":null}function s(r,t){return r?i(r).isValid()?i(r).format(t??c.date):"Invalid time value":null}function k(r,t){return r?i(r).isValid()?i(r).format(t??c.time):"Invalid time value":null}function m(r){return r?i(r).isValid()?i(r).valueOf():"Invalid time value":null}function F(r){return r?i(r).isValid()?i(r).toNow(!0):"Invalid time value":null}function y(r,t){if(!r)return null;let e=i(r);if(!e.isValid())return "Invalid time value";let n=d(new Date,e)?e:i();if(t==="instant")return `H\xE1 ${n.toNow(!0)}`;let a=i().startOf("day").diff(n.startOf("day"),"day");return a===0?"Hoje":a===1?"Ontem":`H\xE1 ${a} dias`}function M(r,t){if(!r||!i(r).isValid())return null;let e=t==="day"?i(r).endOf("day"):i(r);if(d(new Date,e))return {expired:!0,label:"Expirado",value:y(r,"day"),text:"Expirado"};let n=e.toNow(!0);return {expired:!1,label:"Expira em",value:n,text:`Expira em ${n}`}}function T(r,t,e){if(!r||!t||!e)return !1;let n=m(r),a=m(t),o=m(e);return n&&a&&o?n>=a&&n<=o:!1}function d(r,t){return i(r).isAfter(t)}function f(r,t,e){return !r||!t?!1:i(r).isValid()&&i(t).isValid()?i(r).isSame(t,e??"year"):"Invalid time value"}function g(r,t,e){let n=i(r).isValid()&&i(t).isValid(),a=d(r,t);if(!n||a)return "Invalid time value";let o=`${s(r)} - ${s(t)}`;if(e)return o;let u=f(r,t,"year"),l=f(r,t,"month"),p=f(r,t,"day");return u&&!l?o=`${s(r,"DD MMM")} - ${s(t)}`:u&&l&&!p?o=`${s(r,"DD")} - ${s(t)}`:u&&l&&p&&(o=`${s(t)}`),o}function I({years:r=0,months:t=0,days:e=0,hours:n=0,minutes:a=0,seconds:o=0,milliseconds:u=0}){return i().add(i.duration({years:r,months:t,days:e,hours:n,minutes:a,seconds:o,milliseconds:u})).format()}function H({years:r=0,months:t=0,days:e=0,hours:n=0,minutes:a=0,seconds:o=0,milliseconds:u=0}){return i().subtract(i.duration({years:r,months:t,days:e,hours:n,minutes:a,seconds:o,milliseconds:u})).format()}var $=(r,t)=>!r||!t?null:i(t).diff(i(r),"day");
6
+
7
+ export { c as a, P as b, b as c, s as d, k as e, m as f, F as g, y as h, M as i, T as j, d as k, f as l, g as m, I as n, H as o, $ as p };
8
+ //# sourceMappingURL=chunk-2W5FGLTC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/formatTime.ts"],"names":["dayjs","duration","relativeTime","formatStr","today","format","fDateTime","date","fDate","fTime","fTimestamp","fToNow","fTimeAgo","unit","target","elapsed","fIsAfter","daysElapsed","fExpiration","limit","value","fIsBetween","inputDate","startDate","endDate","formattedInputDate","formattedStartDate","formattedEndDate","fIsSame","units","fDateRangeShortLabel","initial","isValid","isAfter","label","isSameYear","isSameMonth","isSameDay","fAdd","years","months","days","hours","minutes","seconds","milliseconds","fSub","getDifferenceInDays"],"mappings":"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","sourcesContent":["import type { Dayjs, OpUnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport relativeTime from 'dayjs/plugin/relativeTime';\n\n// ----------------------------------------------------------------------\n\ndayjs.extend(duration);\ndayjs.extend(relativeTime);\n\n// ----------------------------------------------------------------------\n\nexport type DatePickerFormat =\n | Dayjs\n | Date\n | string\n | number\n | null\n | undefined;\n\nexport const formatStr = {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n time: 'HH:mm',\n split: {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n },\n paramCase: {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n },\n};\n\nexport function today(format?: string) {\n return dayjs(new Date()).startOf('day').format(format);\n}\n\nexport function fDateTime(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.dateTime)\n : 'Invalid time value';\n}\n\nexport function fDate(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.date)\n : 'Invalid time value';\n}\n\nexport function fTime(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.time)\n : 'Invalid time value';\n}\n\nexport function fTimestamp(date: DatePickerFormat) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid ? dayjs(date).valueOf() : 'Invalid time value';\n}\n\nexport function fToNow(date: DatePickerFormat) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid ? dayjs(date).toNow(true) : 'Invalid time value';\n}\n\nexport type TimeUnit = 'instant' | 'day';\n\nexport interface Expiration {\n expired: boolean;\n label: string;\n value: string;\n text: string;\n}\n\nexport function fTimeAgo(date: DatePickerFormat, unit: TimeUnit) {\n if (!date) {\n return null;\n }\n\n const target = dayjs(date);\n\n if (!target.isValid()) {\n return 'Invalid time value';\n }\n\n const elapsed = fIsAfter(new Date(), target) ? target : dayjs();\n\n if (unit === 'instant') {\n return `Há ${elapsed.toNow(true)}`;\n }\n\n const daysElapsed = dayjs()\n .startOf('day')\n .diff(elapsed.startOf('day'), 'day');\n\n if (daysElapsed === 0) {\n return 'Hoje';\n }\n\n if (daysElapsed === 1) {\n return 'Ontem';\n }\n\n return `Há ${daysElapsed} dias`;\n}\n\nexport function fExpiration(\n date: DatePickerFormat,\n unit: TimeUnit,\n): Expiration | null {\n if (!date || !dayjs(date).isValid()) {\n return null;\n }\n\n const limit = unit === 'day' ? dayjs(date).endOf('day') : dayjs(date);\n\n if (fIsAfter(new Date(), limit)) {\n return {\n expired: true,\n label: 'Expirado',\n value: fTimeAgo(date, 'day') as string,\n text: 'Expirado',\n };\n }\n\n const value = limit.toNow(true);\n\n return {\n expired: false,\n label: 'Expira em',\n value,\n text: `Expira em ${value}`,\n };\n}\n\nexport function fIsBetween(\n inputDate: DatePickerFormat,\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n) {\n if (!inputDate || !startDate || !endDate) {\n return false;\n }\n\n const formattedInputDate = fTimestamp(inputDate);\n const formattedStartDate = fTimestamp(startDate);\n const formattedEndDate = fTimestamp(endDate);\n\n if (formattedInputDate && formattedStartDate && formattedEndDate) {\n return (\n formattedInputDate >= formattedStartDate &&\n formattedInputDate <= formattedEndDate\n );\n }\n\n return false;\n}\n\nexport function fIsAfter(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n) {\n return dayjs(startDate).isAfter(endDate);\n}\n\nexport function fIsSame(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n units?: OpUnitType,\n) {\n if (!startDate || !endDate) {\n return false;\n }\n\n const isValid = dayjs(startDate).isValid() && dayjs(endDate).isValid();\n\n if (!isValid) {\n return 'Invalid time value';\n }\n\n return dayjs(startDate).isSame(endDate, units ?? 'year');\n}\n\nexport function fDateRangeShortLabel(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n initial?: boolean,\n) {\n const isValid = dayjs(startDate).isValid() && dayjs(endDate).isValid();\n\n const isAfter = fIsAfter(startDate, endDate);\n\n if (!isValid || isAfter) {\n return 'Invalid time value';\n }\n\n let label = `${fDate(startDate)} - ${fDate(endDate)}`;\n\n if (initial) {\n return label;\n }\n\n const isSameYear = fIsSame(startDate, endDate, 'year');\n const isSameMonth = fIsSame(startDate, endDate, 'month');\n const isSameDay = fIsSame(startDate, endDate, 'day');\n\n if (isSameYear && !isSameMonth) {\n label = `${fDate(startDate, 'DD MMM')} - ${fDate(endDate)}`;\n } else if (isSameYear && isSameMonth && !isSameDay) {\n label = `${fDate(startDate, 'DD')} - ${fDate(endDate)}`;\n } else if (isSameYear && isSameMonth && isSameDay) {\n label = `${fDate(endDate)}`;\n }\n\n return label;\n}\n\nexport type DurationProps = {\n years?: number;\n months?: number;\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n};\n\nexport function fAdd({\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n}: DurationProps) {\n const result = dayjs()\n .add(\n dayjs.duration({\n years,\n months,\n days,\n hours,\n minutes,\n seconds,\n milliseconds,\n }),\n )\n .format();\n\n return result;\n}\n\nexport function fSub({\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n}: DurationProps) {\n const result = dayjs()\n .subtract(\n dayjs.duration({\n years,\n months,\n days,\n hours,\n minutes,\n seconds,\n milliseconds,\n }),\n )\n .format();\n\n return result;\n}\n\nexport const getDifferenceInDays = (startDate?: Date, endDate?: Date) => {\n if (!startDate || !endDate) return null;\n\n return dayjs(endDate).diff(dayjs(startDate), 'day');\n};\n"]}
@@ -4,7 +4,7 @@ import { a, m, c as c$1, n } from '../../../chunk-QSIIIIKG.js';
4
4
  import { a as a$7 } from '../../../chunk-DRGARBKB.js';
5
5
  import { a as a$6 } from '../../../chunk-YX5SZL5S.js';
6
6
  import { a as a$4 } from '../../../chunk-PLYIMNOS.js';
7
- import { d as d$2 } from '../../../chunk-A7QSCOUE.js';
7
+ import { d as d$2 } from '../../../chunk-2W5FGLTC.js';
8
8
  import { h, d as d$1, c as c$2 } from '../../../chunk-OF6623HG.js';
9
9
  import { a as a$3 } from '../../../chunk-ADNBF5AS.js';
10
10
  import { d } from '../../../chunk-WRS6EB73.js';
@@ -3,7 +3,7 @@ import { b as b$2, a as a$5 } from '../../../chunk-XL6SZZGI.js';
3
3
  import { a, b as b$1, m, n, c } from '../../../chunk-QSIIIIKG.js';
4
4
  import { a as a$8 } from '../../../chunk-DRGARBKB.js';
5
5
  import { a as a$4 } from '../../../chunk-PLYIMNOS.js';
6
- import { d as d$2 } from '../../../chunk-A7QSCOUE.js';
6
+ import { d as d$2 } from '../../../chunk-2W5FGLTC.js';
7
7
  import { h, d, a as a$6, c as c$1 } from '../../../chunk-OF6623HG.js';
8
8
  import { a as a$3 } from '../../../chunk-ADNBF5AS.js';
9
9
  import { d as d$1 } from '../../../chunk-WRS6EB73.js';
@@ -1,7 +1,7 @@
1
1
  export { a as FilterOperator, b as SortType } from '../../chunk-P64QBDAO.js';
2
2
  import '../../chunk-4P2L7UJA.js';
3
3
  import { a as a$4 } from '../../chunk-E5SBGF5G.js';
4
- import { d, c } from '../../chunk-A7QSCOUE.js';
4
+ import { d, c } from '../../chunk-2W5FGLTC.js';
5
5
  import { h, a as a$6 } from '../../chunk-OF6623HG.js';
6
6
  import { d as d$1 } from '../../chunk-WRS6EB73.js';
7
7
  import '../../chunk-IR7WWQME.js';
@@ -1,4 +1,4 @@
1
- import { d } from '../../chunk-A7QSCOUE.js';
1
+ import { d } from '../../chunk-2W5FGLTC.js';
2
2
  import s from '@mui/material/Typography';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -20,7 +20,15 @@ declare function fDate(date: DatePickerFormat, format?: string): string | null;
20
20
  declare function fTime(date: DatePickerFormat, format?: string): string | null;
21
21
  declare function fTimestamp(date: DatePickerFormat): number | "Invalid time value" | null;
22
22
  declare function fToNow(date: DatePickerFormat): string | null;
23
- declare function fTimeLeft(date: DatePickerFormat): string | null;
23
+ type TimeUnit = 'instant' | 'day';
24
+ interface Expiration {
25
+ expired: boolean;
26
+ label: string;
27
+ value: string;
28
+ text: string;
29
+ }
30
+ declare function fTimeAgo(date: DatePickerFormat, unit: TimeUnit): string | null;
31
+ declare function fExpiration(date: DatePickerFormat, unit: TimeUnit): Expiration | null;
24
32
  declare function fIsBetween(inputDate: DatePickerFormat, startDate: DatePickerFormat, endDate: DatePickerFormat): boolean;
25
33
  declare function fIsAfter(startDate: DatePickerFormat, endDate: DatePickerFormat): boolean;
26
34
  declare function fIsSame(startDate: DatePickerFormat, endDate: DatePickerFormat, units?: OpUnitType): boolean | "Invalid time value";
@@ -38,4 +46,4 @@ declare function fAdd({ years, months, days, hours, minutes, seconds, millisecon
38
46
  declare function fSub({ years, months, days, hours, minutes, seconds, milliseconds, }: DurationProps): string;
39
47
  declare const getDifferenceInDays: (startDate?: Date, endDate?: Date) => number | null;
40
48
 
41
- export { DatePickerFormat, DurationProps, fAdd, fDate, fDateRangeShortLabel, fDateTime, fIsAfter, fIsBetween, fIsSame, fSub, fTime, fTimeLeft, fTimestamp, fToNow, formatStr, getDifferenceInDays, today };
49
+ export { DatePickerFormat, DurationProps, Expiration, TimeUnit, fAdd, fDate, fDateRangeShortLabel, fDateTime, fExpiration, fIsAfter, fIsBetween, fIsSame, fSub, fTime, fTimeAgo, fTimestamp, fToNow, formatStr, getDifferenceInDays, today };
@@ -1,2 +1,2 @@
1
- export { m as fAdd, d as fDate, l as fDateRangeShortLabel, c as fDateTime, j as fIsAfter, i as fIsBetween, k as fIsSame, n as fSub, e as fTime, h as fTimeLeft, f as fTimestamp, g as fToNow, a as formatStr, o as getDifferenceInDays, b as today } from '../chunk-A7QSCOUE.js';
1
+ export { n as fAdd, d as fDate, m as fDateRangeShortLabel, c as fDateTime, i as fExpiration, k as fIsAfter, j as fIsBetween, l as fIsSame, o as fSub, e as fTime, h as fTimeAgo, f as fTimestamp, g as fToNow, a as formatStr, p as getDifferenceInDays, b as today } from '../chunk-2W5FGLTC.js';
2
2
  //# sourceMappingURL=formatTime.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.30",
3
+ "version": "2.9.31",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,8 +0,0 @@
1
- import t from 'dayjs';
2
- import p from 'dayjs/plugin/duration';
3
- import D from 'dayjs/plugin/relativeTime';
4
-
5
- t.extend(p);t.extend(D);var c={dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY",time:"HH:mm",split:{dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY"},paramCase:{dateTime:"DD/MM/YYYY HH:mm",date:"DD/MM/YYYY"}};function x(r){return t(new Date).startOf("day").format(r)}function P(r,i){return r?t(r).isValid()?t(r).format(i??c.dateTime):"Invalid time value":null}function f(r,i){return r?t(r).isValid()?t(r).format(i??c.date):"Invalid time value":null}function M(r,i){return r?t(r).isValid()?t(r).format(i??c.time):"Invalid time value":null}function m(r){return r?t(r).isValid()?t(r).valueOf():"Invalid time value":null}function k(r){return r?t(r).isValid()?t(r).toNow(!0):"Invalid time value":null}function F(r){if(!r)return null;let i=t(r);if(!i.isValid())return "Invalid time value";let e=t(),n=i.startOf("day").diff(e.startOf("day"),"day");if(n<0)return "vencido";if(n===0)return "hoje";if(n<7)return n===1?"1 dia":`${n} dias`;let a=i.diff(e,"year");if(a>=1)return a===1?"1 ano":`${a} anos`;let o=i.diff(e,"month");if(o>=1)return o===1?"1 m\xEAs":`${o} meses`;let s=Math.floor(n/7);return s===1?"1 semana":`${s} semanas`}function b(r,i,e){if(!r||!i||!e)return !1;let n=m(r),a=m(i),o=m(e);return n&&a&&o?n>=a&&n<=o:!1}function Y(r,i){return t(r).isAfter(i)}function l(r,i,e){return !r||!i?!1:t(r).isValid()&&t(i).isValid()?t(r).isSame(i,e??"year"):"Invalid time value"}function I(r,i,e){let n=t(r).isValid()&&t(i).isValid(),a=Y(r,i);if(!n||a)return "Invalid time value";let o=`${f(r)} - ${f(i)}`;if(e)return o;let s=l(r,i,"year"),u=l(r,i,"month"),d=l(r,i,"day");return s&&!u?o=`${f(r,"DD MMM")} - ${f(i)}`:s&&u&&!d?o=`${f(r,"DD")} - ${f(i)}`:s&&u&&d&&(o=`${f(i)}`),o}function T({years:r=0,months:i=0,days:e=0,hours:n=0,minutes:a=0,seconds:o=0,milliseconds:s=0}){return t().add(t.duration({years:r,months:i,days:e,hours:n,minutes:a,seconds:o,milliseconds:s})).format()}function $({years:r=0,months:i=0,days:e=0,hours:n=0,minutes:a=0,seconds:o=0,milliseconds:s=0}){return t().subtract(t.duration({years:r,months:i,days:e,hours:n,minutes:a,seconds:o,milliseconds:s})).format()}var h=(r,i)=>!r||!i?null:t(i).diff(t(r),"day");
6
-
7
- export { c as a, x as b, P as c, f as d, M as e, m as f, k as g, F as h, b as i, Y as j, l as k, I as l, T as m, $ as n, h as o };
8
- //# sourceMappingURL=chunk-A7QSCOUE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/formatTime.ts"],"names":["dayjs","duration","relativeTime","formatStr","today","format","fDateTime","date","fDate","fTime","fTimestamp","fToNow","fTimeLeft","target","now","diffDays","diffYears","diffMonths","diffWeeks","fIsBetween","inputDate","startDate","endDate","formattedInputDate","formattedStartDate","formattedEndDate","fIsAfter","fIsSame","units","fDateRangeShortLabel","initial","isValid","isAfter","label","isSameYear","isSameMonth","isSameDay","fAdd","years","months","days","hours","minutes","seconds","milliseconds","fSub","getDifferenceInDays"],"mappings":"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","sourcesContent":["import type { Dayjs, OpUnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport relativeTime from 'dayjs/plugin/relativeTime';\n\n// ----------------------------------------------------------------------\n\ndayjs.extend(duration);\ndayjs.extend(relativeTime);\n\n// ----------------------------------------------------------------------\n\nexport type DatePickerFormat =\n | Dayjs\n | Date\n | string\n | number\n | null\n | undefined;\n\nexport const formatStr = {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n time: 'HH:mm',\n split: {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n },\n paramCase: {\n dateTime: 'DD/MM/YYYY HH:mm',\n date: 'DD/MM/YYYY',\n },\n};\n\nexport function today(format?: string) {\n return dayjs(new Date()).startOf('day').format(format);\n}\n\nexport function fDateTime(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.dateTime)\n : 'Invalid time value';\n}\n\nexport function fDate(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.date)\n : 'Invalid time value';\n}\n\nexport function fTime(date: DatePickerFormat, format?: string) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid\n ? dayjs(date).format(format ?? formatStr.time)\n : 'Invalid time value';\n}\n\nexport function fTimestamp(date: DatePickerFormat) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid ? dayjs(date).valueOf() : 'Invalid time value';\n}\n\nexport function fToNow(date: DatePickerFormat) {\n if (!date) {\n return null;\n }\n\n const isValid = dayjs(date).isValid();\n\n return isValid ? dayjs(date).toNow(true) : 'Invalid time value';\n}\n\nexport function fTimeLeft(date: DatePickerFormat) {\n if (!date) {\n return null;\n }\n\n const target = dayjs(date);\n\n if (!target.isValid()) {\n return 'Invalid time value';\n }\n\n const now = dayjs();\n const diffDays = target.startOf('day').diff(now.startOf('day'), 'day');\n\n if (diffDays < 0) return 'vencido';\n if (diffDays === 0) return 'hoje';\n if (diffDays < 7) return diffDays === 1 ? '1 dia' : `${diffDays} dias`;\n\n const diffYears = target.diff(now, 'year');\n\n if (diffYears >= 1) {\n return diffYears === 1 ? '1 ano' : `${diffYears} anos`;\n }\n\n const diffMonths = target.diff(now, 'month');\n\n if (diffMonths >= 1) {\n return diffMonths === 1 ? '1 mês' : `${diffMonths} meses`;\n }\n\n const diffWeeks = Math.floor(diffDays / 7);\n\n return diffWeeks === 1 ? '1 semana' : `${diffWeeks} semanas`;\n}\n\nexport function fIsBetween(\n inputDate: DatePickerFormat,\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n) {\n if (!inputDate || !startDate || !endDate) {\n return false;\n }\n\n const formattedInputDate = fTimestamp(inputDate);\n const formattedStartDate = fTimestamp(startDate);\n const formattedEndDate = fTimestamp(endDate);\n\n if (formattedInputDate && formattedStartDate && formattedEndDate) {\n return (\n formattedInputDate >= formattedStartDate &&\n formattedInputDate <= formattedEndDate\n );\n }\n\n return false;\n}\n\nexport function fIsAfter(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n) {\n return dayjs(startDate).isAfter(endDate);\n}\n\nexport function fIsSame(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n units?: OpUnitType,\n) {\n if (!startDate || !endDate) {\n return false;\n }\n\n const isValid = dayjs(startDate).isValid() && dayjs(endDate).isValid();\n\n if (!isValid) {\n return 'Invalid time value';\n }\n\n return dayjs(startDate).isSame(endDate, units ?? 'year');\n}\n\nexport function fDateRangeShortLabel(\n startDate: DatePickerFormat,\n endDate: DatePickerFormat,\n initial?: boolean,\n) {\n const isValid = dayjs(startDate).isValid() && dayjs(endDate).isValid();\n\n const isAfter = fIsAfter(startDate, endDate);\n\n if (!isValid || isAfter) {\n return 'Invalid time value';\n }\n\n let label = `${fDate(startDate)} - ${fDate(endDate)}`;\n\n if (initial) {\n return label;\n }\n\n const isSameYear = fIsSame(startDate, endDate, 'year');\n const isSameMonth = fIsSame(startDate, endDate, 'month');\n const isSameDay = fIsSame(startDate, endDate, 'day');\n\n if (isSameYear && !isSameMonth) {\n label = `${fDate(startDate, 'DD MMM')} - ${fDate(endDate)}`;\n } else if (isSameYear && isSameMonth && !isSameDay) {\n label = `${fDate(startDate, 'DD')} - ${fDate(endDate)}`;\n } else if (isSameYear && isSameMonth && isSameDay) {\n label = `${fDate(endDate)}`;\n }\n\n return label;\n}\n\nexport type DurationProps = {\n years?: number;\n months?: number;\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n};\n\nexport function fAdd({\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n}: DurationProps) {\n const result = dayjs()\n .add(\n dayjs.duration({\n years,\n months,\n days,\n hours,\n minutes,\n seconds,\n milliseconds,\n }),\n )\n .format();\n\n return result;\n}\n\nexport function fSub({\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n}: DurationProps) {\n const result = dayjs()\n .subtract(\n dayjs.duration({\n years,\n months,\n days,\n hours,\n minutes,\n seconds,\n milliseconds,\n }),\n )\n .format();\n\n return result;\n}\n\nexport const getDifferenceInDays = (startDate?: Date, endDate?: Date) => {\n if (!startDate || !endDate) return null;\n\n return dayjs(endDate).diff(dayjs(startDate), 'day');\n};\n"]}