@triptease/tt-date-range-picker 6.4.3 → 6.5.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.
@@ -18,6 +18,7 @@ var Preset;
18
18
  Preset["LastWeek"] = "Last week";
19
19
  Preset["ThisMonth"] = "This month";
20
20
  Preset["LastMonth"] = "Last month";
21
+ Preset["MonthToDate"] = "Month to date";
21
22
  Preset["ThisQuarter"] = "This quarter";
22
23
  Preset["LastQuarter"] = "Last quarter";
23
24
  Preset["YearToDate"] = "Year to date";
@@ -102,6 +103,11 @@ class PresetButton extends lit_1.LitElement {
102
103
  };
103
104
  case Preset.AllTime:
104
105
  return { startDate: undefined, endDate: undefined };
106
+ case Preset.MonthToDate:
107
+ return {
108
+ startDate: this.today.startOf('month').toISODate(),
109
+ endDate: this.today.toISODate(),
110
+ };
105
111
  default:
106
112
  return { startDate: this.today.toISODate(), endDate: this.today.plus({ days: 28 }).toISODate() };
107
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PresetButton.js","sourceRoot":"","sources":["../../../../src/SidePanel/PresetButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { DateTime } from 'luxon';\nimport { DateRange, DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { button } from './styles.js';\n\nexport enum Preset {\n ThisWeek = 'This week',\n LastWeek = 'Last week',\n ThisMonth = 'This month',\n LastMonth = 'Last month',\n ThisQuarter = 'This quarter',\n LastQuarter = 'Last quarter',\n YearToDate = 'Year to date',\n LastYear = 'Last year',\n Next1Month = 'Next 1 month',\n Next3Months = 'Next 3 months',\n Next6Months = 'Next 6 months',\n Next12Months = 'Next 12 months',\n AllTime = 'All time',\n}\n\nconst parsePreset = (value: string | null): Preset | undefined => {\n if (!value) return undefined;\n if (Object.values(Preset).includes(<Preset>value)) return <Preset>value;\n return undefined;\n};\n\nexport class PresetButton extends LitElement {\n static styles = button;\n\n @property({ type: Preset, converter: parsePreset })\n public preset?: Preset;\n\n private _onClick = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.dispatchEvent(new DateRangeSelectionEvent(this.range));\n };\n\n private get today(): DateTime {\n return DateTime.local().startOf('day');\n }\n\n private get range(): DateRange {\n switch (this.preset) {\n case Preset.ThisWeek:\n return { startDate: this.today.startOf('week').toISODate()!, endDate: this.today.endOf('week').toISODate()! };\n case Preset.LastWeek:\n return {\n startDate: this.today.startOf('week').minus({ weeks: 1 }).toISODate()!,\n endDate: this.today.endOf('week').minus({ weeks: 1 }).toISODate()!,\n };\n case Preset.ThisMonth:\n return { startDate: this.today.startOf('month').toISODate()!, endDate: this.today.endOf('month').toISODate()! };\n case Preset.LastMonth:\n return {\n startDate: this.today.minus({ months: 1 }).startOf('month').toISODate()!,\n endDate: this.today.minus({ months: 1 }).endOf('month').toISODate()!,\n };\n case Preset.ThisQuarter:\n return {\n startDate: this.today.startOf('quarter').toISODate()!,\n endDate: this.today.endOf('quarter').toISODate()!,\n };\n case Preset.YearToDate:\n return { startDate: this.today.startOf('year').toISODate()!, endDate: this.today.toISODate()! };\n case Preset.Next1Month:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 1 }).toISODate()!,\n };\n case Preset.Next3Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 3 }).toISODate()!,\n };\n case Preset.Next6Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 6 }).toISODate()!,\n };\n case Preset.Next12Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 12 }).toISODate()!,\n };\n case Preset.LastQuarter:\n return {\n startDate: this.today.minus({ quarters: 1 }).startOf('quarter').toISODate()!,\n endDate: this.today.minus({ quarters: 1 }).endOf('quarter').toISODate()!,\n };\n case Preset.LastYear:\n return {\n startDate: this.today.minus({ years: 1 }).startOf('year').toISODate()!,\n endDate: this.today.minus({ years: 1 }).endOf('year').toISODate()!,\n };\n case Preset.AllTime:\n return { startDate: undefined, endDate: undefined };\n default:\n return { startDate: this.today.toISODate()!, endDate: this.today.plus({ days: 28 }).toISODate()! };\n }\n }\n\n public render() {\n return html` <button @click=\"${this._onClick}\">\n <slot>${this.preset}</slot>\n </button>`;\n }\n}\n"]}
1
+ {"version":3,"file":"PresetButton.js","sourceRoot":"","sources":["../../../../src/SidePanel/PresetButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { DateTime } from 'luxon';\nimport { DateRange, DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { button } from './styles.js';\n\nexport enum Preset {\n ThisWeek = 'This week',\n LastWeek = 'Last week',\n ThisMonth = 'This month',\n LastMonth = 'Last month',\n MonthToDate = 'Month to date',\n ThisQuarter = 'This quarter',\n LastQuarter = 'Last quarter',\n YearToDate = 'Year to date',\n LastYear = 'Last year',\n Next1Month = 'Next 1 month',\n Next3Months = 'Next 3 months',\n Next6Months = 'Next 6 months',\n Next12Months = 'Next 12 months',\n AllTime = 'All time',\n}\n\nconst parsePreset = (value: string | null): Preset | undefined => {\n if (!value) return undefined;\n if (Object.values(Preset).includes(<Preset>value)) return <Preset>value;\n return undefined;\n};\n\nexport class PresetButton extends LitElement {\n static styles = button;\n\n @property({ type: Preset, converter: parsePreset })\n public preset?: Preset;\n\n private _onClick = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.dispatchEvent(new DateRangeSelectionEvent(this.range));\n };\n\n private get today(): DateTime {\n return DateTime.local().startOf('day');\n }\n\n private get range(): DateRange {\n switch (this.preset) {\n case Preset.ThisWeek:\n return { startDate: this.today.startOf('week').toISODate()!, endDate: this.today.endOf('week').toISODate()! };\n case Preset.LastWeek:\n return {\n startDate: this.today.startOf('week').minus({ weeks: 1 }).toISODate()!,\n endDate: this.today.endOf('week').minus({ weeks: 1 }).toISODate()!,\n };\n case Preset.ThisMonth:\n return { startDate: this.today.startOf('month').toISODate()!, endDate: this.today.endOf('month').toISODate()! };\n case Preset.LastMonth:\n return {\n startDate: this.today.minus({ months: 1 }).startOf('month').toISODate()!,\n endDate: this.today.minus({ months: 1 }).endOf('month').toISODate()!,\n };\n case Preset.ThisQuarter:\n return {\n startDate: this.today.startOf('quarter').toISODate()!,\n endDate: this.today.endOf('quarter').toISODate()!,\n };\n case Preset.YearToDate:\n return { startDate: this.today.startOf('year').toISODate()!, endDate: this.today.toISODate()! };\n case Preset.Next1Month:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 1 }).toISODate()!,\n };\n case Preset.Next3Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 3 }).toISODate()!,\n };\n case Preset.Next6Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 6 }).toISODate()!,\n };\n case Preset.Next12Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 12 }).toISODate()!,\n };\n case Preset.LastQuarter:\n return {\n startDate: this.today.minus({ quarters: 1 }).startOf('quarter').toISODate()!,\n endDate: this.today.minus({ quarters: 1 }).endOf('quarter').toISODate()!,\n };\n case Preset.LastYear:\n return {\n startDate: this.today.minus({ years: 1 }).startOf('year').toISODate()!,\n endDate: this.today.minus({ years: 1 }).endOf('year').toISODate()!,\n };\n case Preset.AllTime:\n return { startDate: undefined, endDate: undefined };\n case Preset.MonthToDate:\n return {\n startDate: this.today.startOf('month').toISODate()!,\n endDate: this.today.toISODate()!,\n };\n default:\n return { startDate: this.today.toISODate()!, endDate: this.today.plus({ days: 28 }).toISODate()! };\n }\n }\n\n public render() {\n return html` <button @click=\"${this._onClick}\">\n <slot>${this.preset}</slot>\n </button>`;\n }\n}\n"]}
@@ -4,6 +4,7 @@ export declare enum Preset {
4
4
  LastWeek = "Last week",
5
5
  ThisMonth = "This month",
6
6
  LastMonth = "Last month",
7
+ MonthToDate = "Month to date",
7
8
  ThisQuarter = "This quarter",
8
9
  LastQuarter = "Last quarter",
9
10
  YearToDate = "Year to date",
@@ -15,6 +15,7 @@ export var Preset;
15
15
  Preset["LastWeek"] = "Last week";
16
16
  Preset["ThisMonth"] = "This month";
17
17
  Preset["LastMonth"] = "Last month";
18
+ Preset["MonthToDate"] = "Month to date";
18
19
  Preset["ThisQuarter"] = "This quarter";
19
20
  Preset["LastQuarter"] = "Last quarter";
20
21
  Preset["YearToDate"] = "Year to date";
@@ -99,6 +100,11 @@ export class PresetButton extends LitElement {
99
100
  };
100
101
  case Preset.AllTime:
101
102
  return { startDate: undefined, endDate: undefined };
103
+ case Preset.MonthToDate:
104
+ return {
105
+ startDate: this.today.startOf('month').toISODate(),
106
+ endDate: this.today.toISODate(),
107
+ };
102
108
  default:
103
109
  return { startDate: this.today.toISODate(), endDate: this.today.plus({ days: 28 }).toISODate() };
104
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PresetButton.js","sourceRoot":"","sources":["../../../../src/SidePanel/PresetButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { DateTime } from 'luxon';\nimport { DateRange, DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { button } from './styles.js';\n\nexport enum Preset {\n ThisWeek = 'This week',\n LastWeek = 'Last week',\n ThisMonth = 'This month',\n LastMonth = 'Last month',\n ThisQuarter = 'This quarter',\n LastQuarter = 'Last quarter',\n YearToDate = 'Year to date',\n LastYear = 'Last year',\n Next1Month = 'Next 1 month',\n Next3Months = 'Next 3 months',\n Next6Months = 'Next 6 months',\n Next12Months = 'Next 12 months',\n AllTime = 'All time',\n}\n\nconst parsePreset = (value: string | null): Preset | undefined => {\n if (!value) return undefined;\n if (Object.values(Preset).includes(<Preset>value)) return <Preset>value;\n return undefined;\n};\n\nexport class PresetButton extends LitElement {\n static styles = button;\n\n @property({ type: Preset, converter: parsePreset })\n public preset?: Preset;\n\n private _onClick = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.dispatchEvent(new DateRangeSelectionEvent(this.range));\n };\n\n private get today(): DateTime {\n return DateTime.local().startOf('day');\n }\n\n private get range(): DateRange {\n switch (this.preset) {\n case Preset.ThisWeek:\n return { startDate: this.today.startOf('week').toISODate()!, endDate: this.today.endOf('week').toISODate()! };\n case Preset.LastWeek:\n return {\n startDate: this.today.startOf('week').minus({ weeks: 1 }).toISODate()!,\n endDate: this.today.endOf('week').minus({ weeks: 1 }).toISODate()!,\n };\n case Preset.ThisMonth:\n return { startDate: this.today.startOf('month').toISODate()!, endDate: this.today.endOf('month').toISODate()! };\n case Preset.LastMonth:\n return {\n startDate: this.today.minus({ months: 1 }).startOf('month').toISODate()!,\n endDate: this.today.minus({ months: 1 }).endOf('month').toISODate()!,\n };\n case Preset.ThisQuarter:\n return {\n startDate: this.today.startOf('quarter').toISODate()!,\n endDate: this.today.endOf('quarter').toISODate()!,\n };\n case Preset.YearToDate:\n return { startDate: this.today.startOf('year').toISODate()!, endDate: this.today.toISODate()! };\n case Preset.Next1Month:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 1 }).toISODate()!,\n };\n case Preset.Next3Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 3 }).toISODate()!,\n };\n case Preset.Next6Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 6 }).toISODate()!,\n };\n case Preset.Next12Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 12 }).toISODate()!,\n };\n case Preset.LastQuarter:\n return {\n startDate: this.today.minus({ quarters: 1 }).startOf('quarter').toISODate()!,\n endDate: this.today.minus({ quarters: 1 }).endOf('quarter').toISODate()!,\n };\n case Preset.LastYear:\n return {\n startDate: this.today.minus({ years: 1 }).startOf('year').toISODate()!,\n endDate: this.today.minus({ years: 1 }).endOf('year').toISODate()!,\n };\n case Preset.AllTime:\n return { startDate: undefined, endDate: undefined };\n default:\n return { startDate: this.today.toISODate()!, endDate: this.today.plus({ days: 28 }).toISODate()! };\n }\n }\n\n public render() {\n return html` <button @click=\"${this._onClick}\">\n <slot>${this.preset}</slot>\n </button>`;\n }\n}\n"]}
1
+ {"version":3,"file":"PresetButton.js","sourceRoot":"","sources":["../../../../src/SidePanel/PresetButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { DateTime } from 'luxon';\nimport { DateRange, DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { button } from './styles.js';\n\nexport enum Preset {\n ThisWeek = 'This week',\n LastWeek = 'Last week',\n ThisMonth = 'This month',\n LastMonth = 'Last month',\n MonthToDate = 'Month to date',\n ThisQuarter = 'This quarter',\n LastQuarter = 'Last quarter',\n YearToDate = 'Year to date',\n LastYear = 'Last year',\n Next1Month = 'Next 1 month',\n Next3Months = 'Next 3 months',\n Next6Months = 'Next 6 months',\n Next12Months = 'Next 12 months',\n AllTime = 'All time',\n}\n\nconst parsePreset = (value: string | null): Preset | undefined => {\n if (!value) return undefined;\n if (Object.values(Preset).includes(<Preset>value)) return <Preset>value;\n return undefined;\n};\n\nexport class PresetButton extends LitElement {\n static styles = button;\n\n @property({ type: Preset, converter: parsePreset })\n public preset?: Preset;\n\n private _onClick = (event: MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.dispatchEvent(new DateRangeSelectionEvent(this.range));\n };\n\n private get today(): DateTime {\n return DateTime.local().startOf('day');\n }\n\n private get range(): DateRange {\n switch (this.preset) {\n case Preset.ThisWeek:\n return { startDate: this.today.startOf('week').toISODate()!, endDate: this.today.endOf('week').toISODate()! };\n case Preset.LastWeek:\n return {\n startDate: this.today.startOf('week').minus({ weeks: 1 }).toISODate()!,\n endDate: this.today.endOf('week').minus({ weeks: 1 }).toISODate()!,\n };\n case Preset.ThisMonth:\n return { startDate: this.today.startOf('month').toISODate()!, endDate: this.today.endOf('month').toISODate()! };\n case Preset.LastMonth:\n return {\n startDate: this.today.minus({ months: 1 }).startOf('month').toISODate()!,\n endDate: this.today.minus({ months: 1 }).endOf('month').toISODate()!,\n };\n case Preset.ThisQuarter:\n return {\n startDate: this.today.startOf('quarter').toISODate()!,\n endDate: this.today.endOf('quarter').toISODate()!,\n };\n case Preset.YearToDate:\n return { startDate: this.today.startOf('year').toISODate()!, endDate: this.today.toISODate()! };\n case Preset.Next1Month:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 1 }).toISODate()!,\n };\n case Preset.Next3Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 3 }).toISODate()!,\n };\n case Preset.Next6Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 6 }).toISODate()!,\n };\n case Preset.Next12Months:\n return {\n startDate: this.today.toISODate()!,\n endDate: this.today.plus({ months: 12 }).toISODate()!,\n };\n case Preset.LastQuarter:\n return {\n startDate: this.today.minus({ quarters: 1 }).startOf('quarter').toISODate()!,\n endDate: this.today.minus({ quarters: 1 }).endOf('quarter').toISODate()!,\n };\n case Preset.LastYear:\n return {\n startDate: this.today.minus({ years: 1 }).startOf('year').toISODate()!,\n endDate: this.today.minus({ years: 1 }).endOf('year').toISODate()!,\n };\n case Preset.AllTime:\n return { startDate: undefined, endDate: undefined };\n case Preset.MonthToDate:\n return {\n startDate: this.today.startOf('month').toISODate()!,\n endDate: this.today.toISODate()!,\n };\n default:\n return { startDate: this.today.toISODate()!, endDate: this.today.plus({ days: 28 }).toISODate()! };\n }\n }\n\n public render() {\n return html` <button @click=\"${this._onClick}\">\n <slot>${this.preset}</slot>\n </button>`;\n }\n}\n"]}
@@ -13,6 +13,7 @@ describe('PresetButton', () => {
13
13
  [
14
14
  [Preset.LastWeek, '2024-12-23', '2024-12-29'],
15
15
  [Preset.LastMonth, '2024-12-01', '2024-12-31'],
16
+ [Preset.MonthToDate, '2025-01-01', '2025-01-01'],
16
17
  [Preset.LastQuarter, '2024-10-01', '2024-12-31'],
17
18
  [Preset.LastYear, '2024-01-01', '2024-12-31'],
18
19
  [Preset.ThisWeek, '2024-12-30', '2025-01-05'],
@@ -34,5 +35,17 @@ describe('PresetButton', () => {
34
35
  await expect(event.detail.endDate).to.equal(endDate);
35
36
  });
36
37
  });
38
+ it(`should fire a date selection event with the correct date range when the month to date preset is clicked mid month`, async () => {
39
+ const midJan2025 = Date.UTC(2025, 0, 16, 0, 0, 0);
40
+ Settings.now = () => midJan2025;
41
+ const button = await fixture(html `
42
+ <tt-preset-button preset=${Preset.MonthToDate}></tt-preset-button>
43
+ `);
44
+ const dateSelectionPromise = oneEvent(button, 'date-range-selection');
45
+ button.shadowRoot?.querySelector('button')?.click();
46
+ const event = await dateSelectionPromise;
47
+ await expect(event.detail.startDate).to.equal('2025-01-01');
48
+ await expect(event.detail.endDate).to.equal('2025-01-16');
49
+ });
37
50
  });
38
51
  //# sourceMappingURL=preset-button.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preset-button.test.js","sourceRoot":"","sources":["../../../test/preset-button.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACvD,OAAO,mCAAmC,CAAC;AAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,GAAG,EAAE;QACV,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACT,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH;QACE,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC;QAC7C,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;QAC9C,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAChD,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC;QAC7C,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC;QAC7C,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;QAC/C,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAChD,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;QAC9C,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;QAC/C,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAChD,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAChD,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;QACjD,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;KACvC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;QACzC,EAAE,CAAC,2EAA2E,MAAM,oBAAoB,EAAE,KAAK,IAAI,EAAE;YACnH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,6BAA6B,MAAM,uBAAuB,CAAC,CAAC;YAE3G,MAAM,oBAAoB,GAAG,QAAQ,CAA0B,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAC/F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;YAEzC,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { Settings } from 'luxon';\nimport { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport { DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { Preset, PresetButton } from '../src/index.js';\nimport '../src/SidePanel/tt-side-panel.js';\n\nconst firstJan2025 = Date.UTC(2025, 0, 1, 0, 0, 0);\ndescribe('PresetButton', () => {\n before(() => {\n Settings.now = () => firstJan2025;\n });\n\n after(() => {\n Settings.now = () => Date.now();\n });\n\n [\n [Preset.LastWeek, '2024-12-23', '2024-12-29'],\n [Preset.LastMonth, '2024-12-01', '2024-12-31'],\n [Preset.LastQuarter, '2024-10-01', '2024-12-31'],\n [Preset.LastYear, '2024-01-01', '2024-12-31'],\n [Preset.ThisWeek, '2024-12-30', '2025-01-05'],\n [Preset.YearToDate, '2025-01-01', '2025-01-01'],\n [Preset.ThisQuarter, '2025-01-01', '2025-03-31'],\n [Preset.ThisMonth, '2025-01-01', '2025-01-31'],\n [Preset.Next1Month, '2025-01-01', '2025-02-01'],\n [Preset.Next3Months, '2025-01-01', '2025-04-01'],\n [Preset.Next6Months, '2025-01-01', '2025-07-01'],\n [Preset.Next12Months, '2025-01-01', '2026-01-01'],\n [Preset.AllTime, undefined, undefined],\n ].forEach(([preset, startDate, endDate]) => {\n it(`should fire a date selection event with the correct date range when the ${preset} preset is clicked`, async () => {\n const button = await fixture<PresetButton>(html` <tt-preset-button preset=${preset}></tt-preset-button> `);\n\n const dateSelectionPromise = oneEvent<DateRangeSelectionEvent>(button, 'date-range-selection');\n button.shadowRoot?.querySelector('button')?.click();\n const event = await dateSelectionPromise;\n\n await expect(event.detail.startDate).to.equal(startDate);\n await expect(event.detail.endDate).to.equal(endDate);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"preset-button.test.js","sourceRoot":"","sources":["../../../test/preset-button.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Settings } from 'luxon';\nimport { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport { DateRangeSelectionEvent } from '@triptease/tt-calendar/date-selection-context.js';\nimport { Preset, PresetButton } from '../src/index.js';\nimport '../src/SidePanel/tt-side-panel.js';\n\nconst firstJan2025 = Date.UTC(2025, 0, 1, 0, 0, 0);\n\ndescribe('PresetButton', () => {\n before(() => {\n Settings.now = () => firstJan2025;\n });\n\n after(() => {\n Settings.now = () => Date.now();\n });\n\n [\n [Preset.LastWeek, '2024-12-23', '2024-12-29'],\n [Preset.LastMonth, '2024-12-01', '2024-12-31'],\n [Preset.MonthToDate, '2025-01-01', '2025-01-01'],\n [Preset.LastQuarter, '2024-10-01', '2024-12-31'],\n [Preset.LastYear, '2024-01-01', '2024-12-31'],\n [Preset.ThisWeek, '2024-12-30', '2025-01-05'],\n [Preset.YearToDate, '2025-01-01', '2025-01-01'],\n [Preset.ThisQuarter, '2025-01-01', '2025-03-31'],\n [Preset.ThisMonth, '2025-01-01', '2025-01-31'],\n [Preset.Next1Month, '2025-01-01', '2025-02-01'],\n [Preset.Next3Months, '2025-01-01', '2025-04-01'],\n [Preset.Next6Months, '2025-01-01', '2025-07-01'],\n [Preset.Next12Months, '2025-01-01', '2026-01-01'],\n [Preset.AllTime, undefined, undefined],\n ].forEach(([preset, startDate, endDate]) => {\n it(`should fire a date selection event with the correct date range when the ${preset} preset is clicked`, async () => {\n const button = await fixture<PresetButton>(html` <tt-preset-button preset=${preset}></tt-preset-button> `);\n\n const dateSelectionPromise = oneEvent<DateRangeSelectionEvent>(button, 'date-range-selection');\n button.shadowRoot?.querySelector('button')?.click();\n const event = await dateSelectionPromise;\n\n await expect(event.detail.startDate).to.equal(startDate);\n await expect(event.detail.endDate).to.equal(endDate);\n });\n });\n\n it(`should fire a date selection event with the correct date range when the month to date preset is clicked mid month`, async () => {\n const midJan2025 = Date.UTC(2025, 0, 16, 0, 0, 0);\n\n Settings.now = () => midJan2025;\n\n const button = await fixture<PresetButton>(html`\n <tt-preset-button preset=${Preset.MonthToDate}></tt-preset-button>\n `);\n\n const dateSelectionPromise = oneEvent<DateRangeSelectionEvent>(button, 'date-range-selection');\n button.shadowRoot?.querySelector('button')?.click();\n const event = await dateSelectionPromise;\n\n await expect(event.detail.startDate).to.equal('2025-01-01');\n await expect(event.detail.endDate).to.equal('2025-01-16');\n });\n});\n"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent tt-date-range-picker following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "@triptease",
6
- "version": "6.4.3",
6
+ "version": "6.5.0",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist/esm",