@servicetitan/dte-pdf-editor 1.95.0 → 1.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +84 -2
  2. package/dist/components/field-config-panel/advanced-settings.d.ts +2 -0
  3. package/dist/components/field-config-panel/advanced-settings.d.ts.map +1 -1
  4. package/dist/components/field-config-panel/advanced-settings.js +5 -4
  5. package/dist/components/field-config-panel/advanced-settings.js.map +1 -1
  6. package/dist/components/field-config-panel/e-sign-options-modal.d.ts +3 -0
  7. package/dist/components/field-config-panel/e-sign-options-modal.d.ts.map +1 -1
  8. package/dist/components/field-config-panel/e-sign-options-modal.js +6 -4
  9. package/dist/components/field-config-panel/e-sign-options-modal.js.map +1 -1
  10. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts +14 -1
  11. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts.map +1 -1
  12. package/dist/components/field-config-panel/field-config-panel-overlay.js +41 -2
  13. package/dist/components/field-config-panel/field-config-panel-overlay.js.map +1 -1
  14. package/dist/components/field-config-panel/field-config-panel.d.ts +6 -0
  15. package/dist/components/field-config-panel/field-config-panel.d.ts.map +1 -1
  16. package/dist/components/field-config-panel/field-config-panel.js +17 -3
  17. package/dist/components/field-config-panel/field-config-panel.js.map +1 -1
  18. package/dist/components/field-config-panel/formula-generator.d.ts +4 -0
  19. package/dist/components/field-config-panel/formula-generator.d.ts.map +1 -1
  20. package/dist/components/field-config-panel/formula-generator.js +2 -2
  21. package/dist/components/field-config-panel/formula-generator.js.map +1 -1
  22. package/dist/components/field-config-panel/formula-modal.d.ts +5 -0
  23. package/dist/components/field-config-panel/formula-modal.d.ts.map +1 -1
  24. package/dist/components/field-config-panel/formula-modal.js +13 -6
  25. package/dist/components/field-config-panel/formula-modal.js.map +1 -1
  26. package/dist/components/field-config-panel/formula-workspace.d.ts +2 -0
  27. package/dist/components/field-config-panel/formula-workspace.d.ts.map +1 -1
  28. package/dist/components/field-config-panel/formula-workspace.js +6 -4
  29. package/dist/components/field-config-panel/formula-workspace.js.map +1 -1
  30. package/dist/components/pdf-editor/pdf-editor.d.ts +52 -1
  31. package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
  32. package/dist/components/pdf-editor/pdf-editor.js +2 -2
  33. package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
  34. package/dist/components/pdf-view/pdf-view-calculated.d.ts +3 -1
  35. package/dist/components/pdf-view/pdf-view-calculated.d.ts.map +1 -1
  36. package/dist/components/pdf-view/pdf-view-calculated.js +14 -4
  37. package/dist/components/pdf-view/pdf-view-calculated.js.map +1 -1
  38. package/dist/components/pdf-view/pdf-view.d.ts +18 -4
  39. package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
  40. package/dist/components/pdf-view/pdf-view.js +2 -2
  41. package/dist/components/pdf-view/pdf-view.js.map +1 -1
  42. package/dist/constants/calculated.constants.d.ts +6 -0
  43. package/dist/constants/calculated.constants.d.ts.map +1 -1
  44. package/dist/constants/calculated.constants.js +6 -0
  45. package/dist/constants/calculated.constants.js.map +1 -1
  46. package/dist/hooks/usePinchZoom.d.ts.map +1 -1
  47. package/dist/hooks/usePinchZoom.js +1 -1
  48. package/dist/hooks/usePinchZoom.js.map +1 -1
  49. package/dist/interface/types.d.ts +37 -1
  50. package/dist/interface/types.d.ts.map +1 -1
  51. package/dist/interface/types.js.map +1 -1
  52. package/dist/utils/formula/business-days.utils.d.ts +32 -0
  53. package/dist/utils/formula/business-days.utils.d.ts.map +1 -0
  54. package/dist/utils/formula/business-days.utils.js +148 -0
  55. package/dist/utils/formula/business-days.utils.js.map +1 -0
  56. package/dist/utils/formula/caret.utils.js +1 -1
  57. package/dist/utils/formula/caret.utils.js.map +1 -1
  58. package/dist/utils/formula/evaluate-formula.utils.d.ts +25 -6
  59. package/dist/utils/formula/evaluate-formula.utils.d.ts.map +1 -1
  60. package/dist/utils/formula/evaluate-formula.utils.js +61 -101
  61. package/dist/utils/formula/evaluate-formula.utils.js.map +1 -1
  62. package/dist/utils/formula/index.d.ts +1 -0
  63. package/dist/utils/formula/index.d.ts.map +1 -1
  64. package/dist/utils/formula/index.js +1 -0
  65. package/dist/utils/formula/index.js.map +1 -1
  66. package/dist/utils/formula/schedule-bindings.utils.d.ts +12 -0
  67. package/dist/utils/formula/schedule-bindings.utils.d.ts.map +1 -0
  68. package/dist/utils/formula/schedule-bindings.utils.js +17 -0
  69. package/dist/utils/formula/schedule-bindings.utils.js.map +1 -0
  70. package/package.json +2 -1
  71. package/src/__tests__/field-types/date-fields.test.ts +29 -3
  72. package/src/__tests__/field-types/e-sign-fields.test.ts +2 -2
  73. package/src/__tests__/field-types/fillable-fields.test.ts +2 -2
  74. package/src/components/field-config-panel/advanced-settings.tsx +16 -3
  75. package/src/components/field-config-panel/e-sign-options-modal.tsx +13 -2
  76. package/src/components/field-config-panel/field-config-panel-overlay.tsx +97 -1
  77. package/src/components/field-config-panel/field-config-panel.tsx +28 -0
  78. package/src/components/field-config-panel/formula-generator.tsx +8 -1
  79. package/src/components/field-config-panel/formula-modal.tsx +19 -4
  80. package/src/components/field-config-panel/formula-workspace.tsx +31 -6
  81. package/src/components/pdf-editor/pdf-editor.tsx +82 -0
  82. package/src/components/pdf-view/pdf-view-calculated.tsx +28 -3
  83. package/src/components/pdf-view/pdf-view.tsx +23 -3
  84. package/src/constants/calculated.constants.ts +7 -0
  85. package/src/hooks/usePinchZoom.ts +1 -6
  86. package/src/interface/types.ts +47 -0
  87. package/src/utils/field/__tests__/field-background-color.utils.test.ts +8 -8
  88. package/src/utils/field/__tests__/get-field-bounds-style.utils.test.ts +16 -0
  89. package/src/utils/formula/__tests__/evaluate-formula.utils.test.ts +198 -16
  90. package/src/utils/formula/__tests__/schedule-bindings.utils.test.ts +73 -0
  91. package/src/utils/formula/business-days.utils.ts +188 -0
  92. package/src/utils/formula/caret.utils.ts +1 -1
  93. package/src/utils/formula/evaluate-formula.utils.ts +94 -114
  94. package/src/utils/formula/index.ts +1 -0
  95. package/src/utils/formula/schedule-bindings.utils.ts +27 -0
@@ -72,6 +72,14 @@ export interface ESignDateSignedOffsetSettingsFinalRule {
72
72
  */
73
73
  export interface ESignDateSignedOffsetSettings {
74
74
  rules: [ESignDateSignedOffsetSettingsFinalRule] | [...ESignDateSignedOffsetSettingsRule[], ESignDateSignedOffsetSettingsFinalRule];
75
+ /**
76
+ * Whether the day offset skips weekends/holidays per a business-day schedule, same toggle as a
77
+ * calculated field's (`FieldScheduleBinding`) but stored here instead, since - like `rules` -
78
+ * it applies to every `dateSignedOffset` field in the document, not one field at a time.
79
+ */
80
+ businessCalendarEnabled?: boolean;
81
+ /** The schedule to use while `businessCalendarEnabled` is on; undefined for the default schedule. */
82
+ scheduleId?: number;
75
83
  }
76
84
  export interface FillableDropdownItem {
77
85
  value: string;
@@ -230,6 +238,35 @@ export type FormulaToken = {
230
238
  export interface StructuredFormula {
231
239
  tokens: FormulaToken[];
232
240
  }
241
+ /**
242
+ * Days a date calculated field skips, as DTE resolves a business-day schedule
243
+ * (`POST api/holidays/calendar`). Date arithmetic outside `firstYear`–`lastYear` is blank.
244
+ */
245
+ export interface BusinessCalendar {
246
+ /** Excluded weekend days, as `Date.getUTCDay()` numbers them: 0 = Sunday, 6 = Saturday. */
247
+ weekendDays: number[];
248
+ /** Holiday dates, already moved to their observed days, as `YYYY-MM-DD`. */
249
+ holidays: string[];
250
+ firstYear: number;
251
+ lastYear: number;
252
+ }
253
+ /**
254
+ * Re-exported from `@servicetitan/dte-shared` so existing imports from this path keep
255
+ * working: the schedule editor UI (`ScheduleDrawer`/`SchedulePicker`) is shared with
256
+ * `@servicetitan/dte-unlayer` and lives there now, these types are its domain model.
257
+ */
258
+ export type { BusinessCalendarRules, BusinessDaySchedule, HolidayCatalog, KnownHoliday, SaveScheduleRequest, WeekendDay, } from '@servicetitan/dte-shared';
259
+ /**
260
+ * A date calculated field whose custom business-day exclusion toggle is on, and the schedule it
261
+ * uses (DTE's bindings, full-replace via `PUT api/holidays/templates/{id}/bindings`). A field with
262
+ * no entry here uses the default calendar with the toggle off (plain calendar-day arithmetic).
263
+ */
264
+ export interface FieldScheduleBinding {
265
+ /** `PdfField.id`. */
266
+ fieldKey: string;
267
+ /** One of the tenant's schedules, or undefined for the default schedule. */
268
+ scheduleId?: number;
269
+ }
233
270
  /** Format options for a calculated field with a numeric result (number, currency, percent) */
234
271
  export interface CalculatedFormatForNumber {
235
272
  resultType: 'number' | 'currency' | 'percent';
@@ -381,5 +418,4 @@ export interface DataPointOption {
381
418
  radioOptions?: RadioGroupOption[];
382
419
  lookupSource?: string;
383
420
  }
384
- export {};
385
421
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uDAAqC,CAAA;IACrC,uCAAqB,CAAA;AACzB,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAkMD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAmItD;;GAEG;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CAC1C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE;CACnD,CAAC;AAMX,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;IAC1C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAC1C,CAAC;AAEX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uDAAqC,CAAA;IACrC,uCAAqB,CAAA;AACzB,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AA0MD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AA0KtD;;GAEG;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CAC1C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE;CACnD,CAAC;AAMX,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;IAC1C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAC1C,CAAC;AAEX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type BusinessCalendar } from '../../interface/types';
2
+ /**
3
+ * The default calendar: Saturday and Sunday plus `holidays` (the host's, DTE's
4
+ * `GET api/holidays`), for the current year ± DEFAULT_CALENDAR_YEARS. Fields whose schedule toggle
5
+ * is off use it.
6
+ */
7
+ export declare function defaultBusinessCalendar(holidays?: string[]): BusinessCalendar;
8
+ /**
9
+ * Walks `days` business days from a date (epoch ms; negative walks back), the start not counted.
10
+ * Mirrors DTE's `BusinessDayCalculator.AddBusinessDays`: null for a fractional offset, more than
11
+ * MAX_DATE_CALC_DAYS, an invalid start, or a start or walk outside the calendar's years.
12
+ */
13
+ export declare function addBusinessDays(startMs: number, days: number, calendar: BusinessCalendar): number | null;
14
+ /**
15
+ * Counts the business days from `fromMs` to `toMs`, negative when `toMs` is earlier; the start is
16
+ * not counted, the end is. Mirrors DTE's `BusinessDayCalculator.CountBusinessDays`: null for an
17
+ * invalid date, a span over MAX_DATE_CALC_DAYS, or a date outside the calendar's years.
18
+ */
19
+ export declare function countBusinessDays(fromMs: number, toMs: number, calendar: BusinessCalendar): number | null;
20
+ /**
21
+ * Adds `days` plain calendar days to a date (epoch ms; negative subtracts) — no weekend or holiday
22
+ * skipping. Used when a date calculated field's business-day exclusion toggle is off, matching the
23
+ * pre-DTE-4695 behavior. Null for a fractional offset, more than MAX_DATE_CALC_DAYS, or an invalid
24
+ * start.
25
+ */
26
+ export declare function addCalendarDays(startMs: number, days: number): number | null;
27
+ /**
28
+ * Counts the plain calendar days from `fromMs` to `toMs`, negative when `toMs` is earlier — no
29
+ * weekend or holiday skipping. Null for an invalid date or a span over MAX_DATE_CALC_DAYS.
30
+ */
31
+ export declare function countCalendarDays(fromMs: number, toMs: number): number | null;
32
+ //# sourceMappingURL=business-days.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-days.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/business-days.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwD9D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAQ7E;AAWD;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,GAC3B,MAAM,GAAG,IAAI,CA2Bf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,GAC3B,MAAM,GAAG,IAAI,CA2Bf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7E"}
@@ -0,0 +1,148 @@
1
+ import { DEFAULT_CALENDAR_YEARS, MAX_DATE_CALC_DAYS } from '../../constants';
2
+ /** Saturday and Sunday: the default calendar's weekend. */
3
+ const DEFAULT_WEEKEND_DAYS = [0, 6];
4
+ const DAY_MS = 24 * 60 * 60 * 1000;
5
+ function toDateOnly(ms) {
6
+ const d = new Date(ms);
7
+ d.setUTCHours(0, 0, 0, 0);
8
+ return d;
9
+ }
10
+ function toDateKey(d) {
11
+ const y = d.getUTCFullYear();
12
+ const m = String(d.getUTCMonth() + 1).padStart(2, '0');
13
+ const day = String(d.getUTCDate()).padStart(2, '0');
14
+ return `${y}-${m}-${day}`;
15
+ }
16
+ function buildHolidaySet(holidays) {
17
+ const set = new Set();
18
+ for (const h of holidays !== null && holidays !== void 0 ? holidays : []) {
19
+ const d = toDateOnly(new Date(h).getTime());
20
+ if (!isNaN(d.getTime())) {
21
+ set.add(toDateKey(d));
22
+ }
23
+ }
24
+ return set;
25
+ }
26
+ // Calendars are passed once and reused by every field, so each is prepared once.
27
+ const preparedCalendars = new WeakMap();
28
+ function prepareCalendar(calendar) {
29
+ var _a;
30
+ const cached = preparedCalendars.get(calendar);
31
+ if (cached) {
32
+ return cached;
33
+ }
34
+ const prepared = {
35
+ weekendDays: new Set((_a = calendar.weekendDays) !== null && _a !== void 0 ? _a : DEFAULT_WEEKEND_DAYS),
36
+ holidays: buildHolidaySet(calendar.holidays),
37
+ firstYear: calendar.firstYear,
38
+ lastYear: calendar.lastYear,
39
+ };
40
+ preparedCalendars.set(calendar, prepared);
41
+ return prepared;
42
+ }
43
+ /**
44
+ * The default calendar: Saturday and Sunday plus `holidays` (the host's, DTE's
45
+ * `GET api/holidays`), for the current year ± DEFAULT_CALENDAR_YEARS. Fields whose schedule toggle
46
+ * is off use it.
47
+ */
48
+ export function defaultBusinessCalendar(holidays) {
49
+ const year = new Date().getUTCFullYear();
50
+ return {
51
+ weekendDays: DEFAULT_WEEKEND_DAYS,
52
+ holidays: holidays !== null && holidays !== void 0 ? holidays : [],
53
+ firstYear: year - DEFAULT_CALENDAR_YEARS,
54
+ lastYear: year + DEFAULT_CALENDAR_YEARS,
55
+ };
56
+ }
57
+ function isBusinessDay(d, calendar) {
58
+ return !calendar.weekendDays.has(d.getUTCDay()) && !calendar.holidays.has(toDateKey(d));
59
+ }
60
+ function isWithinYears(d, calendar) {
61
+ const year = d.getUTCFullYear();
62
+ return year >= calendar.firstYear && year <= calendar.lastYear;
63
+ }
64
+ /**
65
+ * Walks `days` business days from a date (epoch ms; negative walks back), the start not counted.
66
+ * Mirrors DTE's `BusinessDayCalculator.AddBusinessDays`: null for a fractional offset, more than
67
+ * MAX_DATE_CALC_DAYS, an invalid start, or a start or walk outside the calendar's years.
68
+ */
69
+ export function addBusinessDays(startMs, days, calendar) {
70
+ const prepared = prepareCalendar(calendar);
71
+ const start = toDateOnly(startMs);
72
+ if (!Number.isInteger(days) ||
73
+ Math.abs(days) > MAX_DATE_CALC_DAYS ||
74
+ !isFinite(start.getTime()) ||
75
+ !isWithinYears(start, prepared)) {
76
+ return null;
77
+ }
78
+ const direction = days >= 0 ? 1 : -1;
79
+ let remaining = Math.abs(days);
80
+ const current = new Date(start.getTime());
81
+ while (remaining > 0) {
82
+ current.setUTCDate(current.getUTCDate() + direction);
83
+ if (!isWithinYears(current, prepared)) {
84
+ return null;
85
+ }
86
+ if (isBusinessDay(current, prepared)) {
87
+ remaining--;
88
+ }
89
+ }
90
+ return current.getTime();
91
+ }
92
+ /**
93
+ * Counts the business days from `fromMs` to `toMs`, negative when `toMs` is earlier; the start is
94
+ * not counted, the end is. Mirrors DTE's `BusinessDayCalculator.CountBusinessDays`: null for an
95
+ * invalid date, a span over MAX_DATE_CALC_DAYS, or a date outside the calendar's years.
96
+ */
97
+ export function countBusinessDays(fromMs, toMs, calendar) {
98
+ const prepared = prepareCalendar(calendar);
99
+ const from = toDateOnly(fromMs);
100
+ const to = toDateOnly(toMs);
101
+ if (!isFinite(from.getTime()) || !isFinite(to.getTime())) {
102
+ return null;
103
+ }
104
+ if (Math.abs(to.getTime() - from.getTime()) / DAY_MS > MAX_DATE_CALC_DAYS ||
105
+ !isWithinYears(from, prepared) ||
106
+ !isWithinYears(to, prepared)) {
107
+ return null;
108
+ }
109
+ const direction = to.getTime() >= from.getTime() ? 1 : -1;
110
+ const cursor = new Date(from.getTime());
111
+ let count = 0;
112
+ while (toDateKey(cursor) !== toDateKey(to)) {
113
+ cursor.setUTCDate(cursor.getUTCDate() + direction);
114
+ if (isBusinessDay(cursor, prepared)) {
115
+ count++;
116
+ }
117
+ }
118
+ return count * direction;
119
+ }
120
+ /**
121
+ * Adds `days` plain calendar days to a date (epoch ms; negative subtracts) — no weekend or holiday
122
+ * skipping. Used when a date calculated field's business-day exclusion toggle is off, matching the
123
+ * pre-DTE-4695 behavior. Null for a fractional offset, more than MAX_DATE_CALC_DAYS, or an invalid
124
+ * start.
125
+ */
126
+ export function addCalendarDays(startMs, days) {
127
+ const start = toDateOnly(startMs);
128
+ if (!Number.isInteger(days) ||
129
+ Math.abs(days) > MAX_DATE_CALC_DAYS ||
130
+ !isFinite(start.getTime())) {
131
+ return null;
132
+ }
133
+ return start.getTime() + days * DAY_MS;
134
+ }
135
+ /**
136
+ * Counts the plain calendar days from `fromMs` to `toMs`, negative when `toMs` is earlier — no
137
+ * weekend or holiday skipping. Null for an invalid date or a span over MAX_DATE_CALC_DAYS.
138
+ */
139
+ export function countCalendarDays(fromMs, toMs) {
140
+ const from = toDateOnly(fromMs);
141
+ const to = toDateOnly(toMs);
142
+ if (!isFinite(from.getTime()) || !isFinite(to.getTime())) {
143
+ return null;
144
+ }
145
+ const diffDays = Math.round((to.getTime() - from.getTime()) / DAY_MS);
146
+ return Math.abs(diffDays) > MAX_DATE_CALC_DAYS ? null : diffDays;
147
+ }
148
+ //# sourceMappingURL=business-days.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-days.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/business-days.utils.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ function getExpressionBeforeCaret(element) {
26
26
  while (current && current.parentNode !== element) {
27
27
  current = current.parentNode;
28
28
  }
29
- return current && current.parentNode === element ? current : null;
29
+ return (current === null || current === void 0 ? void 0 : current.parentNode) === element ? current : null;
30
30
  };
31
31
  if (endContainer === element) {
32
32
  element.childNodes.forEach((node, index) => {
@@ -1 +1 @@
1
- {"version":3,"file":"caret.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/caret.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caret.utils.js","sourceRoot":"","sources":["../../../src/utils/formula/caret.utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,21 @@
1
- import { type DataModelValues, type StructuredFormula } from '../../interface/types';
1
+ import { type BusinessCalendar, type DataModelValues, type FieldScheduleBinding, type StructuredFormula } from '../../interface/types';
2
+ /**
3
+ * Which calendar a date formula uses. `enabled` is the field's custom business-day exclusion
4
+ * toggle (DTE's schedule binding): off uses plain calendar-day arithmetic (no weekend/holiday
5
+ * skipping, the pre-DTE-4695 behavior); on uses the field's own calendar (`calendar`, a field
6
+ * bound to a schedule) or the default one, Saturday and Sunday plus `holidays`.
7
+ */
8
+ export interface DateCalcOptions {
9
+ enabled?: boolean;
10
+ calendar?: BusinessCalendar;
11
+ holidays?: string[];
12
+ }
13
+ /**
14
+ * A field's options: disabled (plain calendar-day math) unless it has a binding in
15
+ * `scheduleBindings` (DTE's `fieldKey` = `PdfField.id`), in which case it uses its own calendar
16
+ * when the host passed one for its id, else the default calendar.
17
+ */
18
+ export declare function getFieldDateCalcOptions(fieldId: string | undefined, scheduleBindings: FieldScheduleBinding[] | undefined, holidays: string[] | undefined, fieldCalendars: Record<string, BusinessCalendar> | undefined): DateCalcOptions;
2
19
  /**
3
20
  * Convert formula operand to number. Merge tags and fillable only ever give:
4
21
  * empty '', a number, or a string number (e.g. '1.2'). Only those are converted to number for calculation.
@@ -15,14 +32,16 @@ export declare function valueToNumber(raw: unknown): number;
15
32
  * field is omitted rather than showing 0.
16
33
  *
17
34
  * Date fields are identified by `fieldType: 'date'` on field tokens. When date
18
- * fields are present, arithmetic follows business-day semantics — weekends and
19
- * holidays are skipped when adding/subtracting days, and date diffs count only
20
- * business days.
35
+ * fields are present and `options.enabled` is on, arithmetic follows business-day
36
+ * semantics — the calendar's weekend days and holidays are skipped when adding/subtracting
37
+ * days, and date diffs count only business days, with a result outside the calendar's years
38
+ * blank. Otherwise (the field's exclusion toggle is off) it's plain calendar-day arithmetic.
39
+ * Either way, as in DTE, a fractional offset or a difference over 365 days is `null` (blank).
21
40
  */
22
- export declare function evaluateFormula(formula: StructuredFormula | undefined | null, data: DataModelValues | undefined, holidays?: string[]): number | null;
41
+ export declare function evaluateFormula(formula: StructuredFormula | undefined | null, data: DataModelValues | undefined, options?: DateCalcOptions): number | null;
23
42
  /**
24
43
  * Returns true when the formula divides by zero with the given data
25
44
  * (literal `… / 0` or a divisor that resolves to 0). Matches backend null result.
26
45
  */
27
- export declare function hasDivisionByZero(formula: StructuredFormula | undefined | null, data?: DataModelValues, holidays?: string[]): boolean;
46
+ export declare function hasDivisionByZero(formula: StructuredFormula | undefined | null, data?: DataModelValues, options?: DateCalcOptions): boolean;
28
47
  //# sourceMappingURL=evaluate-formula.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate-formula.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/evaluate-formula.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,EAGpB,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBlD;AAiXD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EAC7C,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAsBf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EAC7C,IAAI,CAAC,EAAE,eAAe,EACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,WActB"}
1
+ {"version":3,"file":"evaluate-formula.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/formula/evaluate-formula.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAGzB,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAU/B;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,SAAS,EACpD,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,GAC7D,eAAe,CAOjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBlD;AAiTD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EAC7C,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,eAAe,GAC1B,MAAM,GAAG,IAAI,CAwBf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,EAC7C,IAAI,CAAC,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,eAAe,WAc5B"}
@@ -1,4 +1,18 @@
1
1
  import { resolvePdfDataValues } from '../data-model';
2
+ import { addBusinessDays, addCalendarDays, countBusinessDays, countCalendarDays, defaultBusinessCalendar, } from './business-days.utils';
3
+ /**
4
+ * A field's options: disabled (plain calendar-day math) unless it has a binding in
5
+ * `scheduleBindings` (DTE's `fieldKey` = `PdfField.id`), in which case it uses its own calendar
6
+ * when the host passed one for its id, else the default calendar.
7
+ */
8
+ export function getFieldDateCalcOptions(fieldId, scheduleBindings, holidays, fieldCalendars) {
9
+ const enabled = !!fieldId && !!(scheduleBindings === null || scheduleBindings === void 0 ? void 0 : scheduleBindings.some(b => b.fieldKey === fieldId));
10
+ if (!enabled) {
11
+ return { enabled: false };
12
+ }
13
+ const calendar = fieldCalendars === null || fieldCalendars === void 0 ? void 0 : fieldCalendars[fieldId];
14
+ return calendar ? { enabled: true, calendar } : { enabled: true, holidays };
15
+ }
2
16
  /**
3
17
  * Convert formula operand to number. Merge tags and fillable only ever give:
4
18
  * empty '', a number, or a string number (e.g. '1.2'). Only those are converted to number for calculation.
@@ -148,88 +162,16 @@ function parseDateValue(raw) {
148
162
  const d = new Date(raw);
149
163
  return isNaN(d.getTime()) ? NaN : d.getTime();
150
164
  }
151
- function toDateOnly(ms) {
152
- const d = new Date(ms);
153
- d.setUTCHours(0, 0, 0, 0);
154
- return d;
155
- }
156
- function toDateKey(d) {
157
- const y = d.getUTCFullYear();
158
- const m = String(d.getUTCMonth() + 1).padStart(2, '0');
159
- const day = String(d.getUTCDate()).padStart(2, '0');
160
- return `${y}-${m}-${day}`;
161
- }
162
- function isWeekend(d) {
163
- const day = d.getUTCDay();
164
- return day === 0 || day === 6;
165
- }
166
- function buildHolidaySet(holidays) {
167
- if (!(holidays === null || holidays === void 0 ? void 0 : holidays.length)) {
168
- return new Set();
169
- }
170
- const set = new Set();
171
- for (const h of holidays) {
172
- const d = toDateOnly(new Date(h).getTime());
173
- if (!isNaN(d.getTime())) {
174
- set.add(toDateKey(d));
175
- }
176
- }
177
- return set;
178
- }
179
- function isNonBusinessDay(d, holidaySet) {
180
- return isWeekend(d) || (holidaySet.size > 0 && holidaySet.has(toDateKey(d)));
181
- }
182
- /**
183
- * Add business days to a date (epoch ms), skipping weekends and holidays.
184
- * Returns the resulting date as epoch ms.
185
- */
186
- function addBusinessDays(startMs, days, holidaySet) {
187
- const result = toDateOnly(startMs);
188
- if (!isFinite(result.getTime())) {
189
- return result.getTime();
190
- }
191
- const intDays = Math.trunc(days);
192
- if (intDays === 0) {
193
- return result.getTime();
194
- }
195
- const direction = intDays > 0 ? 1 : -1;
196
- let remaining = Math.abs(intDays);
197
- while (remaining > 0) {
198
- result.setUTCDate(result.getUTCDate() + direction);
199
- if (!isNonBusinessDay(result, holidaySet)) {
200
- remaining--;
201
- }
202
- }
203
- return result.getTime();
204
- }
205
- /**
206
- * Count business days between two dates (epoch ms), skipping weekends and holidays.
207
- * Positive when `toMs` is after `fromMs`, negative otherwise.
208
- */
209
- function businessDayDiff(fromMs, toMs, holidaySet) {
210
- const start = toDateOnly(fromMs);
211
- const end = toDateOnly(toMs);
212
- if (!isFinite(start.getTime()) || !isFinite(end.getTime())) {
213
- return 0;
214
- }
215
- const direction = end.getTime() >= start.getTime() ? 1 : -1;
216
- const cursor = new Date(start.getTime());
217
- let count = 0;
218
- while (toDateKey(cursor) !== toDateKey(end)) {
219
- cursor.setUTCDate(cursor.getUTCDate() + direction);
220
- if (!isNonBusinessDay(cursor, holidaySet)) {
221
- count++;
222
- }
223
- }
224
- return count * direction;
165
+ /** Blank date arithmetic is NaN, so it carries through to a null result like other invalid values. */
166
+ function orNaN(value) {
167
+ return value !== null && value !== void 0 ? value : NaN;
225
168
  }
226
169
  function resolveDateAwareTokens(formula, data) {
227
170
  return formula.tokens.map((t) => {
228
171
  if (t.type === 'field') {
229
172
  const raw = resolvePdfDataValues(data, t.path);
230
173
  if (t.fieldType === 'date') {
231
- const ms = parseDateValue(raw);
232
- return { kind: 'date', value: isNaN(ms) ? 0 : ms };
174
+ return { kind: 'date', value: parseDateValue(raw) };
233
175
  }
234
176
  return { kind: 'number', value: valueToNumber(raw) };
235
177
  }
@@ -239,32 +181,46 @@ function resolveDateAwareTokens(formula, data) {
239
181
  return t;
240
182
  });
241
183
  }
184
+ function businessDayMath(calendar) {
185
+ return {
186
+ add: (ms, days) => addBusinessDays(ms, days, calendar),
187
+ diff: (fromMs, toMs) => countBusinessDays(fromMs, toMs, calendar),
188
+ };
189
+ }
190
+ function calendarDayMath() {
191
+ return {
192
+ add: (ms, days) => addCalendarDays(ms, days),
193
+ diff: (fromMs, toMs) => countCalendarDays(fromMs, toMs),
194
+ };
195
+ }
242
196
  /**
243
- * Apply an operator to two typed values with date-aware, business-day semantics:
244
- * date + number → add business days → date
245
- * number + date → add business days → date
246
- * date - number → sub business days → date
247
- * date - date → business day diff → number
248
- * number ± number → normal → number
197
+ * Apply an operator to two typed values with date-aware semantics:
198
+ * date + number → add days → date
199
+ * number + date → add days → date
200
+ * date - number → sub days → date
201
+ * date - date → day diff → number (`D1 - D2` counts from D2 to D1, as DTE does)
202
+ * number ± number → normal → number
203
+ *
204
+ * Steps are applied one at a time, left to right, as DTE's `ByodFormulaEvaluator` does.
249
205
  */
250
- function applyDateOp(a, op, b, holidaySet) {
206
+ function applyDateOp(a, op, b, dateMath) {
251
207
  if (a.kind === 'date' && b.kind === 'number') {
252
208
  if (op === '+') {
253
- return { kind: 'date', value: addBusinessDays(a.value, b.value, holidaySet) };
209
+ return { kind: 'date', value: orNaN(dateMath.add(a.value, b.value)) };
254
210
  }
255
211
  if (op === '-') {
256
- return { kind: 'date', value: addBusinessDays(a.value, -b.value, holidaySet) };
212
+ return { kind: 'date', value: orNaN(dateMath.add(a.value, -b.value)) };
257
213
  }
258
214
  }
259
215
  if (a.kind === 'number' && b.kind === 'date' && op === '+') {
260
- return { kind: 'date', value: addBusinessDays(b.value, a.value, holidaySet) };
216
+ return { kind: 'date', value: orNaN(dateMath.add(b.value, a.value)) };
261
217
  }
262
218
  if (a.kind === 'date' && b.kind === 'date' && op === '-') {
263
- return { kind: 'number', value: businessDayDiff(a.value, b.value, holidaySet) };
219
+ return { kind: 'number', value: orNaN(dateMath.diff(b.value, a.value)) };
264
220
  }
265
221
  return { kind: 'number', value: applyOp(a.value, op, b.value) };
266
222
  }
267
- function evalDateFlat(tokens, holidaySet) {
223
+ function evalDateFlat(tokens, dateMath) {
268
224
  const list = [...tokens];
269
225
  for (let i = 1; i < list.length - 1;) {
270
226
  const t = list[i];
@@ -272,7 +228,7 @@ function evalDateFlat(tokens, holidaySet) {
272
228
  const left = list[i - 1];
273
229
  const right = list[i + 1];
274
230
  if (isTypedValue(left) && isTypedValue(right)) {
275
- const result = applyDateOp(left, t.value, right, holidaySet);
231
+ const result = applyDateOp(left, t.value, right, dateMath);
276
232
  list.splice(i - 1, 3, result);
277
233
  continue;
278
234
  }
@@ -282,7 +238,7 @@ function evalDateFlat(tokens, holidaySet) {
282
238
  const single = list[0];
283
239
  return isTypedValue(single) ? single : { kind: 'number', value: 0 };
284
240
  }
285
- function evalDateAwareTokens(tokens, holidaySet) {
241
+ function evalDateAwareTokens(tokens, dateMath) {
286
242
  if (tokens.length === 0) {
287
243
  return { kind: 'number', value: 0 };
288
244
  }
@@ -298,13 +254,13 @@ function evalDateAwareTokens(tokens, holidaySet) {
298
254
  break;
299
255
  }
300
256
  const inner = list.slice(idx + 1, close);
301
- const result = evalDateAwareTokens(inner, holidaySet);
257
+ const result = evalDateAwareTokens(inner, dateMath);
302
258
  list.splice(idx, close - idx + 1, result);
303
259
  continue;
304
260
  }
305
261
  idx++;
306
262
  }
307
- return evalDateFlat(list, holidaySet);
263
+ return evalDateFlat(list, dateMath);
308
264
  }
309
265
  /*
310
266
  * ---------------------------------------------------------------------------
@@ -322,12 +278,14 @@ function evalDateAwareTokens(tokens, holidaySet) {
322
278
  * field is omitted rather than showing 0.
323
279
  *
324
280
  * Date fields are identified by `fieldType: 'date'` on field tokens. When date
325
- * fields are present, arithmetic follows business-day semantics — weekends and
326
- * holidays are skipped when adding/subtracting days, and date diffs count only
327
- * business days.
281
+ * fields are present and `options.enabled` is on, arithmetic follows business-day
282
+ * semantics — the calendar's weekend days and holidays are skipped when adding/subtracting
283
+ * days, and date diffs count only business days, with a result outside the calendar's years
284
+ * blank. Otherwise (the field's exclusion toggle is off) it's plain calendar-day arithmetic.
285
+ * Either way, as in DTE, a fractional offset or a difference over 365 days is `null` (blank).
328
286
  */
329
- export function evaluateFormula(formula, data, holidays) {
330
- var _a;
287
+ export function evaluateFormula(formula, data, options) {
288
+ var _a, _b;
331
289
  if (!((_a = formula === null || formula === void 0 ? void 0 : formula.tokens) === null || _a === void 0 ? void 0 : _a.length)) {
332
290
  return null;
333
291
  }
@@ -337,8 +295,10 @@ export function evaluateFormula(formula, data, holidays) {
337
295
  }
338
296
  if (dateFieldPaths.size) {
339
297
  const resolved = resolveDateAwareTokens(formula, data);
340
- const holidaySet = buildHolidaySet(holidays);
341
- const result = evalDateAwareTokens(resolved, holidaySet);
298
+ const dateMath = (options === null || options === void 0 ? void 0 : options.enabled)
299
+ ? businessDayMath((_b = options.calendar) !== null && _b !== void 0 ? _b : defaultBusinessCalendar(options.holidays))
300
+ : calendarDayMath();
301
+ const result = evalDateAwareTokens(resolved, dateMath);
342
302
  const n = result.value;
343
303
  return Number.isFinite(n) ? n : null;
344
304
  }
@@ -350,7 +310,7 @@ export function evaluateFormula(formula, data, holidays) {
350
310
  * Returns true when the formula divides by zero with the given data
351
311
  * (literal `… / 0` or a divisor that resolves to 0). Matches backend null result.
352
312
  */
353
- export function hasDivisionByZero(formula, data, holidays) {
313
+ export function hasDivisionByZero(formula, data, options) {
354
314
  var _a;
355
315
  if (!((_a = formula === null || formula === void 0 ? void 0 : formula.tokens) === null || _a === void 0 ? void 0 : _a.length)) {
356
316
  return false;
@@ -363,6 +323,6 @@ export function hasDivisionByZero(formula, data, holidays) {
363
323
  if (!hasAllFieldValues(formula, data, dateFieldPaths)) {
364
324
  return false;
365
325
  }
366
- return evaluateFormula(formula, data, holidays) === null;
326
+ return evaluateFormula(formula, data, options) === null;
367
327
  }
368
328
  //# sourceMappingURL=evaluate-formula.utils.js.map