@bigbinary/neeto-atoms 1.0.37 → 1.0.39

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 (59) hide show
  1. package/dist/DatePicker-CJfkNORC.js +634 -0
  2. package/dist/DatePicker-CJfkNORC.js.map +1 -0
  3. package/dist/{TimePicker-wPi2k6Z8.js → TimePicker-D4cwQB7b.js} +50 -32
  4. package/dist/TimePicker-D4cwQB7b.js.map +1 -0
  5. package/dist/TimePickerPanel-DN5mK2he.js +436 -0
  6. package/dist/TimePickerPanel-DN5mK2he.js.map +1 -0
  7. package/dist/cjs/DatePicker-DaVdS--q.js +636 -0
  8. package/dist/cjs/DatePicker-DaVdS--q.js.map +1 -0
  9. package/dist/cjs/{TimePicker-BG_vYH3r.js → TimePicker-DrHKSjhU.js} +49 -31
  10. package/dist/cjs/TimePicker-DrHKSjhU.js.map +1 -0
  11. package/dist/cjs/TimePickerPanel-Df904uM-.js +446 -0
  12. package/dist/cjs/TimePickerPanel-Df904uM-.js.map +1 -0
  13. package/dist/cjs/components/DatePicker.js +4 -3
  14. package/dist/cjs/components/DatePicker.js.map +1 -1
  15. package/dist/cjs/components/TimePicker.js +3 -2
  16. package/dist/cjs/components/TimePicker.js.map +1 -1
  17. package/dist/cjs/components/index.js +5 -4
  18. package/dist/cjs/components/index.js.map +1 -1
  19. package/dist/cjs/index.js +11 -247
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/primitives/Calendar.js +8129 -10
  22. package/dist/cjs/primitives/Calendar.js.map +1 -1
  23. package/dist/cjs/primitives/index.js +1 -1
  24. package/dist/components/DatePicker/constants.d.ts +0 -1
  25. package/dist/components/DatePicker/types.d.ts +7 -5
  26. package/dist/components/DatePicker/utils.d.ts +18 -3
  27. package/dist/components/DatePicker.js +4 -3
  28. package/dist/components/DatePicker.js.map +1 -1
  29. package/dist/components/TimePicker/types.d.ts +3 -3
  30. package/dist/components/TimePicker/utils.d.ts +13 -1
  31. package/dist/components/TimePicker.js +3 -2
  32. package/dist/components/TimePicker.js.map +1 -1
  33. package/dist/components/index.js +5 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.js +9 -239
  37. package/dist/index.js.map +1 -1
  38. package/dist/primitives/Calendar.js +8112 -8
  39. package/dist/primitives/Calendar.js.map +1 -1
  40. package/dist/primitives/index.js +1 -1
  41. package/dist/utils/inputMask.d.ts +38 -0
  42. package/dist/utils/timezone.d.ts +7 -0
  43. package/package.json +2 -1
  44. package/dist/Calendar-CjOBwDbx.js +0 -8134
  45. package/dist/Calendar-CjOBwDbx.js.map +0 -1
  46. package/dist/DatePicker-CCN3b1oz.js +0 -3166
  47. package/dist/DatePicker-CCN3b1oz.js.map +0 -1
  48. package/dist/TimePicker-wPi2k6Z8.js.map +0 -1
  49. package/dist/TimePickerPanel-DAhz3B2d.js +0 -227
  50. package/dist/TimePickerPanel-DAhz3B2d.js.map +0 -1
  51. package/dist/cjs/Calendar-02KiUZTT.js +0 -8175
  52. package/dist/cjs/Calendar-02KiUZTT.js.map +0 -1
  53. package/dist/cjs/DatePicker-DRQubO2h.js +0 -3168
  54. package/dist/cjs/DatePicker-DRQubO2h.js.map +0 -1
  55. package/dist/cjs/TimePicker-BG_vYH3r.js.map +0 -1
  56. package/dist/cjs/TimePickerPanel-6xA-hjhm.js +0 -233
  57. package/dist/cjs/TimePickerPanel-6xA-hjhm.js.map +0 -1
  58. package/dist/utils/dayjs/index.d.ts +0 -4
  59. package/dist/utils/dayjs/timezonePlugin.d.ts +0 -3
@@ -9,7 +9,7 @@ var primitives_Badge = require('./Badge.js');
9
9
  var primitives_Breadcrumb = require('./Breadcrumb.js');
10
10
  var primitives_Button = require('./Button.js');
11
11
  var primitives_ButtonGroup = require('./ButtonGroup.js');
12
- var primitives_Calendar = require('../Calendar-02KiUZTT.js');
12
+ var primitives_Calendar = require('./Calendar.js');
13
13
  var primitives_Card = require('./Card.js');
14
14
  var primitives_Carousel = require('./Carousel.js');
15
15
  var primitives_Chart = require('./Chart.js');
@@ -1,6 +1,5 @@
1
1
  export declare const DEFAULT_DATE_FORMAT = "dd/MM/yyyy";
2
2
  export declare const DEFAULT_TIME_FORMAT = "HH:mm:ss";
3
- export declare const DEFAULT_DATETIME_FORMAT = "dd/MM/yyyy HH:mm:ss";
4
3
  export declare const SIZE_CONFIG: {
5
4
  readonly small: {
6
5
  readonly trigger: "h-7 text-xs";
@@ -1,12 +1,14 @@
1
+ import type { Dayjs } from "dayjs";
1
2
  import type { TimePickerFormat } from "../TimePicker/types";
3
+ export type DateValue = Date | Dayjs;
2
4
  export type DatePickerType = "date" | "range";
3
5
  export interface DatePickerProps {
4
- /** Current value. Date for single, [Date, Date] for range. */
5
- value?: Date | [Date | null, Date | null] | null;
6
+ /** Current value. Date/Dayjs for single, [Date, Date] for range. */
7
+ value?: DateValue | [DateValue | null, DateValue | null] | null;
6
8
  /** Default value (uncontrolled). */
7
- defaultValue?: Date | [Date | null, Date | null];
8
- /** Callback on date change. */
9
- onChange?: (value: Date | [Date, Date] | null, formatted: string | [string, string]) => void;
9
+ defaultValue?: DateValue | [DateValue | null, DateValue | null];
10
+ /** Callback on date change. Returns Dayjs objects for neeto ecosystem compatibility. */
11
+ onChange?: (value: Dayjs | [Dayjs, Dayjs] | null, formatted: string | [string, string]) => void;
10
12
  /** Single date or range selection. */
11
13
  type?: DatePickerType;
12
14
  /** Display format string (date-fns compatible, e.g. "dd/MM/yyyy"). */
@@ -1,10 +1,25 @@
1
+ import type { Dayjs } from "dayjs";
1
2
  import type { TimeValue } from "../TimePicker/types";
2
- /** Coerce dayjs/moment-like objects or date strings to native Date. */
3
- export declare const toNativeDate: (value: unknown) => Date | null;
4
3
  /** Coerce a single or range value to native Date(s). */
5
4
  export declare const coerceDateValue: (value: unknown, type: "date" | "range") => Date | [Date | null, Date | null] | null;
5
+ /**
6
+ * Format a date using the timezone-aware dayjs wrapper.
7
+ * Respects the configured timezone (set via dayjs.tz.setDefault).
8
+ */
6
9
  export declare const formatDate: (date: Date | null, formatStr: string) => string;
7
10
  export declare const parseDate: (str: string, formatStr: string) => Date | null;
8
- export declare const clampDate: (date: Date, min?: Date, max?: Date) => Date;
9
11
  export declare const applyTimeToDate: (date: Date, time: TimeValue) => Date;
12
+ /**
13
+ * Reinterpret a native Date's local time values in the user's configured timezone.
14
+ * Matches neetoUI's getTimezoneAppliedDateTime behavior.
15
+ * No-op if no timezone is configured (user timezone === browser timezone).
16
+ */
17
+ export declare const applyTimezone: (date: Date) => Date;
18
+ export declare const toDayjs: (date: Date) => Dayjs;
19
+ /**
20
+ * Build the display format string, normalized to date-fns style (lowercase dd/yyyy)
21
+ * for the input mask, which uses lowercase tokens in FORMAT_CHARS.
22
+ */
10
23
  export declare const getDisplayFormat: (dateFormat: string, timeFormat: string, showTime: boolean) => string;
24
+ export declare const isDatePartComplete: (part: string, maskEnabled: boolean, singleDateLen: number) => boolean;
25
+ export declare const parseRangeText: (text: string, displayFormat: string, maskEnabled: boolean, singleDateLen: number) => [Date, Date] | null;
@@ -1,7 +1,7 @@
1
- export { D as DatePicker } from '../DatePicker-CCN3b1oz.js';
1
+ export { D as DatePicker } from '../DatePicker-CJfkNORC.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
- import '../Calendar-CjOBwDbx.js';
4
+ import '../primitives/Calendar.js';
5
5
  import '../utils-BJnb9o5c.js';
6
6
  import '../button-CrEMzWKw.js';
7
7
  import '../index-Bo3AAQJp.js';
@@ -30,8 +30,9 @@ import '../index-Cor698lu.js';
30
30
  import '../primitives/Field.js';
31
31
  import '../label-BgLSVt4u.js';
32
32
  import '../separator-ByRsc-y-.js';
33
+ import '@bigbinary/neeto-commons-frontend/utils';
34
+ import '../TimePickerPanel-DN5mK2he.js';
33
35
  import '../primitives/Button.js';
34
- import '../TimePickerPanel-DAhz3B2d.js';
35
36
  import '../primitives/ScrollArea.js';
36
37
  import '../index-d0BBQf5t.js';
37
38
  import '../index-BfAAoDv6.js';
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DatePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -26,10 +26,10 @@ export interface TimePickerPanelProps {
26
26
  className?: string;
27
27
  }
28
28
  export interface TimePickerProps {
29
- /** Current time value. */
29
+ /** Current time value. Accepts TimeValue, Date, or Dayjs. */
30
30
  value?: TimeValue | Date;
31
- /** Callback when time changes. */
32
- onChange?: (value: TimeValue) => void;
31
+ /** Callback when time changes. Returns Dayjs object and formatted string for neeto ecosystem compatibility. */
32
+ onChange?: (value: unknown, timeString: string) => void;
33
33
  /** 12-hour or 24-hour format. */
34
34
  format?: TimePickerFormat;
35
35
  /** Show seconds column. */
@@ -1,3 +1,4 @@
1
+ import type { Dayjs } from "dayjs";
1
2
  import type { TimeValue } from "./types";
2
3
  export declare const generateRange: (start: number, end: number, step?: number) => number[];
3
4
  export declare const to12Hour: (hour24: number) => {
@@ -5,7 +6,18 @@ export declare const to12Hour: (hour24: number) => {
5
6
  period: "AM" | "PM";
6
7
  };
7
8
  export declare const to24Hour: (hour12: number, period: "AM" | "PM") => number;
9
+ /**
10
+ * Extract time values from a Date using the timezone-aware dayjs wrapper.
11
+ * Uses dayjs().hour() instead of native date.getHours() to respect
12
+ * the configured timezone (set via dayjs.tz.setDefault).
13
+ */
8
14
  export declare const dateToTimeValue: (date: Date) => TimeValue;
9
- export declare const timeValueToDate: (date: Date, time: TimeValue) => Date;
10
15
  export declare const padNumber: (num: number, length?: number) => string;
16
+ export declare const formatTimeDisplay: (time: TimeValue | null, format: "12" | "24", showSeconds: boolean) => string;
11
17
  export declare const parseTimeString: (input: string, format: "12" | "24") => TimeValue | null;
18
+ /**
19
+ * Convert TimeValue to a timezone-aware Dayjs.
20
+ * Matches neetoUI's getTimezoneAppliedDateTime behavior by formatting
21
+ * to string and reparsing through the timezone-aware dayjs wrapper.
22
+ */
23
+ export declare const timeValueToDayjs: (time: TimeValue) => Dayjs;
@@ -1,5 +1,5 @@
1
- export { T as TimePicker } from '../TimePicker-wPi2k6Z8.js';
2
- export { T as TimePickerPanel } from '../TimePickerPanel-DAhz3B2d.js';
1
+ export { T as TimePicker } from '../TimePicker-D4cwQB7b.js';
2
+ export { T as TimePickerPanel } from '../TimePickerPanel-DN5mK2he.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import '../primitives/Popover.js';
@@ -32,4 +32,5 @@ import '../index-CfriMyrd.js';
32
32
  import '../primitives/ScrollArea.js';
33
33
  import '../index-d0BBQf5t.js';
34
34
  import '../index-BfAAoDv6.js';
35
+ import '@bigbinary/neeto-commons-frontend/utils';
35
36
  //# sourceMappingURL=TimePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TimePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -8,7 +8,7 @@ export { C as Callout } from '../Callout-ClNFeMbn.js';
8
8
  export { C as Checkbox } from '../Checkbox-C_Rd2-8Z.js';
9
9
  export { C as ColorPicker } from '../ColorPicker-D7Y1gZNn.js';
10
10
  export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-CEA8czNL.js';
11
- export { D as DatePicker } from '../DatePicker-CCN3b1oz.js';
11
+ export { D as DatePicker } from '../DatePicker-CJfkNORC.js';
12
12
  export { D as Dialog } from '../Dialog-BOcBeB8v.js';
13
13
  export { E as Empty } from '../Empty-fV1Yplri.js';
14
14
  export { I as Input } from '../Input-xjYQfsaz.js';
@@ -27,8 +27,8 @@ export { S as Stepper } from '../Stepper-7OpfOfas.js';
27
27
  export { S as Switch } from '../Switch-OAB7pfNn.js';
28
28
  export { T as Tabs } from '../Tabs-DTbbJITd.js';
29
29
  export { T as Textarea } from '../Textarea-B2Uhx-Yy.js';
30
- export { T as TimePicker } from '../TimePicker-wPi2k6Z8.js';
31
- export { T as TimePickerPanel } from '../TimePickerPanel-DAhz3B2d.js';
30
+ export { T as TimePicker } from '../TimePicker-D4cwQB7b.js';
31
+ export { T as TimePickerPanel } from '../TimePickerPanel-DN5mK2he.js';
32
32
  export { T as Toastr } from '../Toastr-BimwuEnS.js';
33
33
  export { T as Tooltip } from '../Tooltip-CA3irJ2q.js';
34
34
  export { T as TranslationProvider } from '../TranslationProvider-BvRvUsPS.js';
@@ -101,7 +101,8 @@ import '../primitives/Table.js';
101
101
  import '../primitives/Pagination.js';
102
102
  import '../chevron-left-BDoT8E2-.js';
103
103
  import '../ellipsis-lb8Ws6br.js';
104
- import '../Calendar-CjOBwDbx.js';
104
+ import '../primitives/Calendar.js';
105
+ import '@bigbinary/neeto-commons-frontend/utils';
105
106
  import '../primitives/Empty.js';
106
107
  import '../primitives/InputGroup.js';
107
108
  import '../input-group-BKkj65Uq.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -17,7 +17,8 @@ export { DatePicker } from "./components/DatePicker";
17
17
  export type { DatePickerProps, DatePickerType } from "./components/DatePicker";
18
18
  export { TimePicker } from "./components/TimePicker";
19
19
  export type { TimePickerProps, TimeValue, TimePickerFormat, } from "./components/TimePicker";
20
- export { dayjs, getTimezoneAppliedDateTime } from "./utils/dayjs";
20
+ export { dayjs } from "@bigbinary/neeto-commons-frontend/utils";
21
+ export { getTimezoneAppliedDateTime } from "./utils/timezone";
21
22
  export { TranslationProvider } from "./components/TranslationProvider";
22
23
  export type { TranslationProviderProps } from "./components/TranslationProvider";
23
24
  export { resources as translations } from "./translations";
package/dist/index.js CHANGED
@@ -1,8 +1,5 @@
1
- import pureDayjs from 'dayjs';
2
- import localeData from 'dayjs/plugin/localeData';
3
- import utc from 'dayjs/plugin/utc';
4
- import weekday from 'dayjs/plugin/weekday';
5
- import weekOfYear from 'dayjs/plugin/weekOfYear';
1
+ import { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
2
+ export { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
6
3
  export { T as TranslationProvider, r as translations } from './TranslationProvider-BvRvUsPS.js';
7
4
  export { DropdownMenu } from './components/DropdownMenu.js';
8
5
  export { u as useIsMobile } from './use-mobile-QbHL72cX.js';
@@ -16,7 +13,7 @@ export { C as Callout } from './Callout-ClNFeMbn.js';
16
13
  export { C as Checkbox } from './Checkbox-C_Rd2-8Z.js';
17
14
  export { C as ColorPicker } from './ColorPicker-D7Y1gZNn.js';
18
15
  export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-CEA8czNL.js';
19
- export { D as DatePicker } from './DatePicker-CCN3b1oz.js';
16
+ export { D as DatePicker } from './DatePicker-CJfkNORC.js';
20
17
  export { D as Dialog } from './Dialog-BOcBeB8v.js';
21
18
  export { D as DirectionProvider } from './DirectionProvider-weqLz_BJ.js';
22
19
  export { E as Empty } from './Empty-fV1Yplri.js';
@@ -36,7 +33,7 @@ export { S as Stepper } from './Stepper-7OpfOfas.js';
36
33
  export { S as Switch } from './Switch-OAB7pfNn.js';
37
34
  export { T as Tabs } from './Tabs-DTbbJITd.js';
38
35
  export { T as Textarea } from './Textarea-B2Uhx-Yy.js';
39
- export { T as TimePicker } from './TimePicker-wPi2k6Z8.js';
36
+ export { T as TimePicker } from './TimePicker-D4cwQB7b.js';
40
37
  export { T as Toastr } from './Toastr-BimwuEnS.js';
41
38
  export { T as Tooltip } from './Tooltip-CA3irJ2q.js';
42
39
  export { T as Tree } from './Tree-BlzjThRi.js';
@@ -107,8 +104,8 @@ import './primitives/Table.js';
107
104
  import './primitives/Pagination.js';
108
105
  import './chevron-left-BDoT8E2-.js';
109
106
  import './ellipsis-lb8Ws6br.js';
110
- import './Calendar-CjOBwDbx.js';
111
- import './TimePickerPanel-DAhz3B2d.js';
107
+ import './primitives/Calendar.js';
108
+ import './TimePickerPanel-DN5mK2he.js';
112
109
  import './primitives/ScrollArea.js';
113
110
  import './index-BfAAoDv6.js';
114
111
  import './primitives/Empty.js';
@@ -133,237 +130,10 @@ import './primitives/Textarea.js';
133
130
  import './index-D_roZz8G.js';
134
131
  import './redux-BKH6DnBB.js';
135
132
 
136
- const typeToPos = {
137
- year: 0,
138
- month: 1,
139
- day: 2,
140
- hour: 3,
141
- minute: 4,
142
- second: 5
143
- };
144
- const dateTimeFormatDefaults = {
145
- year: "numeric",
146
- month: "2-digit",
147
- day: "2-digit",
148
- hour: "2-digit",
149
- minute: "2-digit",
150
- second: "2-digit"
151
- };
152
- const dtfCache = /* @__PURE__ */ new Map();
153
- const getDateTimeFormat = (timezone, options = {}) => {
154
- const timeZoneName = options.timeZoneName || "short";
155
- const key = `${timezone}|${timeZoneName}`;
156
- let dtf = dtfCache.get(key);
157
- if (!dtf) {
158
- dtf = new Intl.DateTimeFormat("en-US", {
159
- ...dateTimeFormatDefaults,
160
- hour12: false,
161
- timeZone: timezone,
162
- timeZoneName
163
- });
164
- dtfCache.set(key, dtf);
165
- }
166
- return dtf;
167
- };
168
- const localeStringifierCache = /* @__PURE__ */ new Map();
169
- const getLocaleStringifier = (timezone) => {
170
- let localeStringifier = localeStringifierCache.get(timezone);
171
- if (!localeStringifier) {
172
- localeStringifier = new Intl.DateTimeFormat("en-US", {
173
- ...dateTimeFormatDefaults,
174
- timeZone: timezone
175
- });
176
- localeStringifierCache.set(timezone, localeStringifier);
177
- }
178
- return localeStringifier;
179
- };
180
- const timezonePlugin = (_o, c, d) => {
181
- let defaultTimezone;
182
- const dayjsFactory = d;
183
- const dayjsClass = c;
184
- const makeFormatParts = (timestamp, timezone, options = {}) => {
185
- const date = new Date(timestamp);
186
- const dtf = getDateTimeFormat(timezone, options);
187
- return dtf.formatToParts(date);
188
- };
189
- const tzOffset = (timestamp, timezone) => {
190
- const formatResult = makeFormatParts(timestamp, timezone);
191
- const filled = [];
192
- for (let i = 0; i < formatResult.length; i += 1) {
193
- const { type, value } = formatResult[i];
194
- const pos = typeToPos[type];
195
- if (pos >= 0) {
196
- filled[pos] = parseInt(value, 10);
197
- }
198
- }
199
- const hour = filled[3];
200
- const fixedHour = hour === 24 ? 0 : hour;
201
- const utcString = `${filled[0]}-${filled[1]}-${filled[2]} ${fixedHour}:${filled[4]}:${filled[5]}:000`;
202
- const utcTs = dayjsFactory.utc(utcString).valueOf();
203
- let asTS = Number(timestamp);
204
- const over = asTS % 1e3;
205
- asTS -= over;
206
- return (utcTs - asTS) / (60 * 1e3);
207
- };
208
- const fixOffset = (localTS, o0, tz) => {
209
- let utcGuess = localTS - o0 * 60 * 1e3;
210
- const o2 = tzOffset(utcGuess, tz);
211
- if (o0 === o2) {
212
- return [utcGuess, o0];
213
- }
214
- utcGuess -= (o2 - o0) * 60 * 1e3;
215
- const o3 = tzOffset(utcGuess, tz);
216
- if (o2 === o3) {
217
- return [utcGuess, o2];
218
- }
219
- return [localTS - Math.min(o2, o3) * 60 * 1e3, Math.max(o2, o3)];
220
- };
221
- const proto = dayjsClass.prototype;
222
- proto.tz = function(timezone = defaultTimezone, keepLocalTime) {
223
- const oldOffset = this.utcOffset();
224
- const date = this.toDate();
225
- const target = getLocaleStringifier(timezone).format(date);
226
- const diff = Math.round(
227
- (date.getTime() - new Date(target).getTime()) / 1e3 / 60
228
- );
229
- let ins = dayjsFactory(target).$set("millisecond", this.$ms).utcOffset(
230
- -Math.round(date.getTimezoneOffset() / 15) * 15 - diff,
231
- true
232
- );
233
- if (keepLocalTime) {
234
- const newOffset = ins.utcOffset();
235
- ins = ins.add(oldOffset - newOffset, "minute");
236
- }
237
- ins.$x.$timezone = timezone;
238
- return ins;
239
- };
240
- proto.offsetName = function(type) {
241
- const zone = this.$x.$timezone || dayjsFactory.tz.guess();
242
- const result = makeFormatParts(this.valueOf(), zone, {
243
- timeZoneName: type
244
- }).find(
245
- (m) => m.type.toLowerCase() === "timezonename"
246
- );
247
- return result && result.value;
248
- };
249
- const oldStartOf = proto.startOf;
250
- proto.startOf = function(units, startOf) {
251
- if (!this.$x || !this.$x.$timezone) {
252
- return oldStartOf.call(this, units, startOf);
253
- }
254
- const withoutTz = dayjsFactory(this.format("YYYY-MM-DD HH:mm:ss:SSS"));
255
- const startOfWithoutTz = oldStartOf.call(withoutTz, units, startOf);
256
- return startOfWithoutTz.tz(this.$x.$timezone, true);
257
- };
258
- const tzFunction = function(input, arg1, arg2) {
259
- const parseFormat = arg2 && arg1;
260
- const timezone = arg2 || arg1 || defaultTimezone;
261
- const previousOffset = tzOffset(Number(dayjsFactory()), timezone);
262
- if (typeof input !== "string") {
263
- return dayjsFactory(input).tz(timezone);
264
- }
265
- const localTs = dayjsFactory.utc(input, parseFormat).valueOf();
266
- const [targetTs, targetOffset] = fixOffset(
267
- localTs,
268
- previousOffset,
269
- timezone
270
- );
271
- const ins = dayjsFactory(targetTs).utcOffset(targetOffset);
272
- ins.$x.$timezone = timezone;
273
- return ins;
274
- };
275
- tzFunction.guess = function() {
276
- return Intl.DateTimeFormat().resolvedOptions().timeZone;
277
- };
278
- tzFunction.setDefault = function(timezone) {
279
- defaultTimezone = timezone;
280
- };
281
- dayjsFactory.tz = tzFunction;
282
- };
283
-
284
- pureDayjs.extend(weekOfYear);
285
- pureDayjs.extend(weekday);
286
- pureDayjs.extend(localeData);
287
- pureDayjs.extend(utc);
288
- pureDayjs.extend(timezonePlugin);
289
- class LRUCache {
290
- limit;
291
- cache;
292
- constructor(limit) {
293
- this.limit = limit;
294
- this.cache = /* @__PURE__ */ new Map();
295
- }
296
- get(key) {
297
- const value = this.cache.get(key);
298
- this.cache.delete(key);
299
- if (value !== void 0) {
300
- this.cache.set(key, value);
301
- }
302
- return value;
303
- }
304
- set(key, value) {
305
- if (this.cache.size >= this.limit) {
306
- const oldestKey = this.cache.keys().next().value;
307
- if (oldestKey !== void 0) {
308
- this.cache.delete(oldestKey);
309
- }
310
- }
311
- this.cache.set(key, value);
312
- }
313
- has(key) {
314
- return this.cache.has(key);
315
- }
316
- }
317
- const hasTimezone = (dateString) => {
318
- const timezoneRegex = /Z|[+-]\d{2}:\d{2}$|[+-]\d{4}$|GMT([+-]\d{4})?$/;
319
- return timezoneRegex.test(dateString);
320
- };
321
- const cache = new LRUCache(1e3);
322
- const pureDayjsWithTz = pureDayjs;
323
- const dayjs = (...args) => {
324
- const cacheKey = JSON.stringify(args);
325
- if (cache.has(cacheKey) && args[0] !== void 0) return cache.get(cacheKey);
326
- const userTimezone = pureDayjsWithTz.tz()?.$x?.$timezone;
327
- const browserTimezone = pureDayjsWithTz.tz.guess();
328
- const timezone = userTimezone || browserTimezone;
329
- if (userTimezone === browserTimezone || userTimezone === void 0) {
330
- const result2 = pureDayjsWithTz(...args);
331
- if (args[0] !== void 0) cache.set(cacheKey, result2);
332
- return result2;
333
- }
334
- const mutableArgs = [...args];
335
- if (mutableArgs.length > 0 && (typeof mutableArgs[0] === "string" || mutableArgs[0] === null)) {
336
- const pureDayjsArgs = [mutableArgs[0], mutableArgs[1]];
337
- if (typeof mutableArgs[0] === "string" && hasTimezone(mutableArgs[0])) {
338
- mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs);
339
- } else {
340
- mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs).format(
341
- "YYYY-MM-DD HH:mm:ss"
342
- );
343
- mutableArgs[1] = "YYYY-MM-DD HH:mm:ss";
344
- }
345
- }
346
- if (mutableArgs[0]?.toString() === "Invalid Date") {
347
- const result2 = pureDayjsWithTz(...mutableArgs);
348
- if (mutableArgs[0] !== void 0) cache.set(cacheKey, result2);
349
- return result2;
350
- }
351
- const result = mutableArgs.length === 2 ? pureDayjsWithTz.tz(
352
- mutableArgs[0],
353
- mutableArgs[1],
354
- timezone
355
- ) : pureDayjsWithTz.tz(
356
- mutableArgs[0],
357
- timezone
358
- );
359
- if (mutableArgs[0] !== void 0) cache.set(cacheKey, result);
360
- return result;
361
- };
362
- Object.assign(dayjs, { ...pureDayjs });
363
133
  const getTimezoneAppliedDateTime = (inputDateTime) => {
364
- const timezoneAppliedDateTime = (date) => date && typeof date.format === "function" ? dayjs(date.format("YYYY-MM-DD HH:mm:ss")) : null;
365
- return Array.isArray(inputDateTime) ? inputDateTime.map(timezoneAppliedDateTime) : timezoneAppliedDateTime(inputDateTime);
134
+ const apply = (date) => date && typeof date.format === "function" ? dayjs(date.format("YYYY-MM-DD HH:mm:ss")) : null;
135
+ return Array.isArray(inputDateTime) ? inputDateTime.map(apply) : apply(inputDateTime);
366
136
  };
367
137
 
368
- export { dayjs, getTimezoneAppliedDateTime };
138
+ export { getTimezoneAppliedDateTime };
369
139
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/dayjs/timezonePlugin.ts","../src/utils/dayjs/index.ts"],"sourcesContent":["import type { Dayjs, PluginFunc } from \"dayjs\";\n\ntype TypeToPos = Record<string, number>;\n\nconst typeToPos: TypeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\n\nconst dateTimeFormatDefaults: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\n\nconst dtfCache = new Map<string, Intl.DateTimeFormat>();\nconst getDateTimeFormat = (\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n): Intl.DateTimeFormat => {\n const timeZoneName = options.timeZoneName || \"short\";\n const key = `${timezone}|${timeZoneName}`;\n let dtf = dtfCache.get(key);\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n hour12: false,\n timeZone: timezone,\n timeZoneName,\n });\n dtfCache.set(key, dtf);\n }\n\n return dtf;\n};\n\nconst localeStringifierCache = new Map<string, Intl.DateTimeFormat>();\nconst getLocaleStringifier = (timezone: string): Intl.DateTimeFormat => {\n let localeStringifier = localeStringifierCache.get(timezone);\n if (!localeStringifier) {\n localeStringifier = new Intl.DateTimeFormat(\"en-US\", {\n ...dateTimeFormatDefaults,\n timeZone: timezone,\n });\n localeStringifierCache.set(timezone, localeStringifier);\n }\n\n return localeStringifier;\n};\n\ninterface DayjsInternal extends Dayjs {\n $ms: number;\n $x: { $timezone?: string };\n $set(unit: string, value: number): DayjsInternal;\n tz(timezone: string, keepLocalTime?: boolean): DayjsInternal;\n offsetName(type?: \"short\" | \"long\"): string | undefined;\n startOf(units: string, startOf?: boolean): DayjsInternal;\n}\n\ntype DayjsFactory = {\n (input?: string | number | Date | Dayjs, format?: string): DayjsInternal;\n utc(input?: string | number | Date, format?: string): DayjsInternal;\n tz: {\n (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n};\n\ntype DayjsClass = {\n prototype: DayjsInternal;\n};\n\nconst timezonePlugin: PluginFunc = (_o, c, d) => {\n let defaultTimezone: string | undefined;\n\n const dayjsFactory = d as unknown as DayjsFactory;\n const dayjsClass = c as unknown as DayjsClass;\n\n const makeFormatParts = (\n timestamp: number,\n timezone: string,\n options: { timeZoneName?: \"short\" | \"long\" } = {}\n ): Intl.DateTimeFormatPart[] => {\n const date = new Date(timestamp);\n const dtf = getDateTimeFormat(timezone, options);\n\n return dtf.formatToParts(date);\n };\n\n const tzOffset = (timestamp: number, timezone: string): number => {\n const formatResult = makeFormatParts(timestamp, timezone);\n const filled: number[] = [];\n for (let i = 0; i < formatResult.length; i += 1) {\n const { type, value } = formatResult[i];\n const pos = typeToPos[type];\n\n if (pos >= 0) {\n filled[pos] = parseInt(value, 10);\n }\n }\n const hour = filled[3];\n const fixedHour = hour === 24 ? 0 : hour;\n const utcString = `${filled[0]}-${filled[1]}-${filled[2]} ${fixedHour}:${filled[4]}:${filled[5]}:000`;\n const utcTs = dayjsFactory.utc(utcString).valueOf();\n let asTS = Number(timestamp);\n const over = asTS % 1000;\n asTS -= over;\n\n return (utcTs - asTS) / (60 * 1000);\n };\n\n const fixOffset = (\n localTS: number,\n o0: number,\n tz: string\n ): [number, number] => {\n let utcGuess = localTS - o0 * 60 * 1000;\n const o2 = tzOffset(utcGuess, tz);\n if (o0 === o2) {\n return [utcGuess, o0];\n }\n utcGuess -= (o2 - o0) * 60 * 1000;\n const o3 = tzOffset(utcGuess, tz);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n };\n\n const proto = dayjsClass.prototype;\n\n proto.tz = function (\n timezone: string = defaultTimezone!,\n keepLocalTime?: boolean\n ) {\n const oldOffset = this.utcOffset();\n const date = this.toDate();\n const target = getLocaleStringifier(timezone).format(date);\n const diff = Math.round(\n (date.getTime() - new Date(target).getTime()) / 1000 / 60\n );\n let ins = dayjsFactory(target)\n .$set(\"millisecond\", this.$ms)\n .utcOffset(\n -Math.round(date.getTimezoneOffset() / 15) * 15 - diff,\n true\n ) as DayjsInternal;\n if (keepLocalTime) {\n const newOffset = ins.utcOffset();\n ins = ins.add(oldOffset - newOffset, \"minute\") as DayjsInternal;\n }\n ins.$x.$timezone = timezone;\n\n return ins;\n };\n\n proto.offsetName = function (type?: \"short\" | \"long\") {\n const zone = this.$x.$timezone || dayjsFactory.tz.guess();\n const result = makeFormatParts(this.valueOf(), zone, {\n timeZoneName: type,\n }).find(\n (m: Intl.DateTimeFormatPart) => m.type.toLowerCase() === \"timezonename\"\n );\n\n return result && result.value;\n };\n\n const oldStartOf = proto.startOf;\n proto.startOf = function (units: string, startOf?: boolean) {\n if (!this.$x || !this.$x.$timezone) {\n return oldStartOf.call(this, units, startOf);\n }\n\n const withoutTz = dayjsFactory(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));\n const startOfWithoutTz = oldStartOf.call(withoutTz, units, startOf);\n\n return (startOfWithoutTz as DayjsInternal).tz(this.$x.$timezone, true);\n };\n\n const tzFunction = function (\n input: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ) {\n const parseFormat = arg2 && arg1;\n const timezone = arg2 || arg1 || defaultTimezone;\n const previousOffset = tzOffset(Number(dayjsFactory()), timezone!);\n if (typeof input !== \"string\") {\n return dayjsFactory(input as string | number | Date).tz(timezone!);\n }\n const localTs = dayjsFactory.utc(input, parseFormat).valueOf();\n const [targetTs, targetOffset] = fixOffset(\n localTs,\n previousOffset,\n timezone!\n );\n const ins = dayjsFactory(targetTs).utcOffset(targetOffset) as DayjsInternal;\n ins.$x.$timezone = timezone;\n\n return ins;\n } as DayjsFactory[\"tz\"];\n\n tzFunction.guess = function () {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n };\n\n tzFunction.setDefault = function (timezone?: string) {\n defaultTimezone = timezone;\n };\n\n dayjsFactory.tz = tzFunction;\n};\n\nexport default timezonePlugin;\n","import pureDayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear\";\n\nimport timezonePlugin from \"./timezonePlugin\";\n\npureDayjs.extend(weekOfYear);\npureDayjs.extend(weekday);\npureDayjs.extend(localeData);\npureDayjs.extend(utc);\npureDayjs.extend(timezonePlugin);\n\ninterface DayjsInternal extends Dayjs {\n $x: { $timezone?: string };\n}\n\ninterface DayjsWithTz {\n (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n ): Dayjs;\n utc(input?: string | number | Date, format?: string): Dayjs;\n tz: {\n (\n input?: string | number | Date | Dayjs,\n arg1?: string,\n arg2?: string\n ): DayjsInternal;\n guess: () => string;\n setDefault: (timezone?: string) => void;\n };\n}\n\nclass LRUCache<K, V> {\n private limit: number;\n private cache: Map<K, V>;\n\n constructor(limit: number) {\n this.limit = limit;\n this.cache = new Map();\n }\n\n get(key: K): V | undefined {\n const value = this.cache.get(key);\n this.cache.delete(key);\n if (value !== undefined) {\n this.cache.set(key, value);\n }\n\n return value;\n }\n\n set(key: K, value: V): void {\n if (this.cache.size >= this.limit) {\n const oldestKey = this.cache.keys().next().value;\n if (oldestKey !== undefined) {\n this.cache.delete(oldestKey);\n }\n }\n this.cache.set(key, value);\n }\n\n has(key: K): boolean {\n return this.cache.has(key);\n }\n}\n\nconst hasTimezone = (dateString: string): boolean => {\n const timezoneRegex = /Z|[+-]\\d{2}:\\d{2}$|[+-]\\d{4}$|GMT([+-]\\d{4})?$/;\n\n return timezoneRegex.test(dateString);\n};\n\nconst cache = new LRUCache<string, Dayjs>(1000);\nconst pureDayjsWithTz = pureDayjs as unknown as DayjsWithTz;\n\nconst dayjs = (\n ...args: [string | number | Date | Dayjs | null | undefined, string?]\n): Dayjs => {\n const cacheKey = JSON.stringify(args);\n\n if (cache.has(cacheKey) && args[0] !== undefined) return cache.get(cacheKey)!;\n\n const userTimezone = pureDayjsWithTz.tz()?.$x?.$timezone;\n const browserTimezone = pureDayjsWithTz.tz.guess();\n const timezone = userTimezone || browserTimezone;\n\n if (userTimezone === browserTimezone || userTimezone === undefined) {\n const result = pureDayjsWithTz(...args);\n\n if (args[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const mutableArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [...args];\n\n if (\n mutableArgs.length > 0 &&\n (typeof mutableArgs[0] === \"string\" || mutableArgs[0] === null)\n ) {\n const pureDayjsArgs: [\n string | number | Date | Dayjs | null | undefined,\n string?,\n ] = [mutableArgs[0], mutableArgs[1]];\n\n if (typeof mutableArgs[0] === \"string\" && hasTimezone(mutableArgs[0])) {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs);\n } else {\n mutableArgs[0] = pureDayjsWithTz(...pureDayjsArgs).format(\n \"YYYY-MM-DD HH:mm:ss\"\n );\n mutableArgs[1] = \"YYYY-MM-DD HH:mm:ss\";\n }\n }\n\n if (mutableArgs[0]?.toString() === \"Invalid Date\") {\n const result = pureDayjsWithTz(...mutableArgs);\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result);\n\n return result;\n }\n\n const result =\n mutableArgs.length === 2\n ? pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n mutableArgs[1],\n timezone\n )\n : pureDayjsWithTz.tz(\n mutableArgs[0] as string | number | Date | Dayjs,\n timezone\n );\n\n if (mutableArgs[0] !== undefined) cache.set(cacheKey, result as Dayjs);\n\n return result as Dayjs;\n};\n\nObject.assign(dayjs, { ...pureDayjs });\n\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const timezoneAppliedDateTime = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(timezoneAppliedDateTime)\n : timezoneAppliedDateTime(inputDateTime);\n};\n\nexport { dayjs };\n"],"names":["result"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/timezone.ts"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\n/**\n * Apply the configured timezone to a date value.\n * Strips the original timezone and reinterprets via neetocommons' dayjs wrapper.\n * Handles both single dates and arrays (for date ranges).\n */\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const apply = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(apply)\n : apply(inputDateTime);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,0BAAA,GAA6B,CACxC,aAAA,KACoC;AACpC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACb,IAAA,IAAQ,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,GAC3B,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,qBAAqB,CAAC,CAAA,GACxC,IAAA;AAEN,EAAA,OAAO,KAAA,CAAM,QAAQ,aAAa,CAAA,GAC9B,cAAc,GAAA,CAAI,KAAK,CAAA,GACvB,KAAA,CAAM,aAAa,CAAA;AACzB;;;;"}