@triptease/tt-date-range-picker 6.2.5 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/DateRangeInput/DateRangeInput.js +67 -0
- package/dist/cjs/src/DateRangeInput/DateRangeInput.js.map +1 -0
- package/dist/cjs/src/DateRangeInput/tt-date-range-input.js +15 -0
- package/dist/cjs/src/DateRangeInput/tt-date-range-input.js.map +1 -0
- package/dist/cjs/src/SidePanel/PresetButton.js +120 -0
- package/dist/cjs/src/SidePanel/PresetButton.js.map +1 -0
- package/dist/cjs/src/SidePanel/SidePanel.js +43 -0
- package/dist/cjs/src/SidePanel/SidePanel.js.map +1 -0
- package/dist/cjs/src/SidePanel/styles.js +85 -0
- package/dist/cjs/src/SidePanel/styles.js.map +1 -0
- package/dist/cjs/src/SidePanel/tt-side-panel.js +17 -0
- package/dist/cjs/src/SidePanel/tt-side-panel.js.map +1 -0
- package/dist/cjs/src/TtDateRangePicker.js +243 -0
- package/dist/cjs/src/TtDateRangePicker.js.map +1 -0
- package/dist/cjs/src/helpers.js +9 -0
- package/dist/cjs/src/helpers.js.map +1 -0
- package/dist/cjs/src/index.js +24 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/styles.js +70 -0
- package/dist/cjs/src/styles.js.map +1 -0
- package/dist/cjs/src/tt-date-range-picker.js +30 -0
- package/dist/cjs/src/tt-date-range-picker.js.map +1 -0
- package/dist/cjs/src/types.js +3 -0
- package/dist/cjs/src/types.js.map +1 -0
- package/dist/esm/src/DateRangeInput/DateRangeInput.js.map +1 -0
- package/dist/esm/src/DateRangeInput/tt-date-range-input.js.map +1 -0
- package/dist/esm/src/SidePanel/PresetButton.js.map +1 -0
- package/dist/esm/src/SidePanel/SidePanel.js.map +1 -0
- package/dist/esm/src/SidePanel/styles.js.map +1 -0
- package/dist/esm/src/SidePanel/tt-side-panel.js.map +1 -0
- package/dist/esm/src/TtDateRangePicker.js.map +1 -0
- package/dist/esm/src/helpers.js.map +1 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/styles.js.map +1 -0
- package/dist/esm/src/tt-date-range-picker.js.map +1 -0
- package/dist/esm/src/types.js.map +1 -0
- package/dist/esm/test/date-range-picker.test.js.map +1 -0
- package/dist/esm/test/preset-button.test.js.map +1 -0
- package/dist/web/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/web/DateRangeInput/tt-date-range-input.js +3 -3
- package/dist/web/FocusEvent.d.js +1 -1
- package/dist/web/SidePanel/PresetButton.js +2 -2
- package/dist/web/SidePanel/SidePanel.js +1 -1
- package/dist/web/SidePanel/styles.js +1 -1
- package/dist/web/SidePanel/tt-side-panel.js +2 -2
- package/dist/web/TtDateRangePicker.js +3 -3
- package/dist/web/helpers.js +1 -1
- package/dist/web/index.js +17 -17
- package/dist/web/styles.js +1 -1
- package/dist/web/tt-date-range-picker.js +17 -17
- package/dist/web/types.js +1 -1
- package/package.json +26 -12
- package/tsconfig.cjs.json +9 -0
- package/tsconfig.json +3 -3
- package/web-test-runner.config.js +1 -1
- package/dist/src/DateRangeInput/DateRangeInput.js.map +0 -1
- package/dist/src/DateRangeInput/tt-date-range-input.js.map +0 -1
- package/dist/src/SidePanel/PresetButton.js.map +0 -1
- package/dist/src/SidePanel/SidePanel.js.map +0 -1
- package/dist/src/SidePanel/styles.js.map +0 -1
- package/dist/src/SidePanel/tt-side-panel.js.map +0 -1
- package/dist/src/TtDateRangePicker.js.map +0 -1
- package/dist/src/helpers.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/styles.js.map +0 -1
- package/dist/src/tt-date-range-picker.js.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/test/date-range-picker.test.js.map +0 -1
- package/dist/test/preset-button.test.js.map +0 -1
- /package/dist/{src → esm/src}/DateRangeInput/DateRangeInput.d.ts +0 -0
- /package/dist/{src → esm/src}/DateRangeInput/DateRangeInput.js +0 -0
- /package/dist/{src → esm/src}/DateRangeInput/tt-date-range-input.d.ts +0 -0
- /package/dist/{src → esm/src}/DateRangeInput/tt-date-range-input.js +0 -0
- /package/dist/{src → esm/src}/SidePanel/PresetButton.d.ts +0 -0
- /package/dist/{src → esm/src}/SidePanel/PresetButton.js +0 -0
- /package/dist/{src → esm/src}/SidePanel/SidePanel.d.ts +0 -0
- /package/dist/{src → esm/src}/SidePanel/SidePanel.js +0 -0
- /package/dist/{src → esm/src}/SidePanel/styles.d.ts +0 -0
- /package/dist/{src → esm/src}/SidePanel/styles.js +0 -0
- /package/dist/{src → esm/src}/SidePanel/tt-side-panel.d.ts +0 -0
- /package/dist/{src → esm/src}/SidePanel/tt-side-panel.js +0 -0
- /package/dist/{src → esm/src}/TtDateRangePicker.d.ts +0 -0
- /package/dist/{src → esm/src}/TtDateRangePicker.js +0 -0
- /package/dist/{src → esm/src}/helpers.d.ts +0 -0
- /package/dist/{src → esm/src}/helpers.js +0 -0
- /package/dist/{src → esm/src}/index.d.ts +0 -0
- /package/dist/{src → esm/src}/index.js +0 -0
- /package/dist/{src → esm/src}/styles.d.ts +0 -0
- /package/dist/{src → esm/src}/styles.js +0 -0
- /package/dist/{src → esm/src}/tt-date-range-picker.d.ts +0 -0
- /package/dist/{src → esm/src}/tt-date-range-picker.js +0 -0
- /package/dist/{src → esm/src}/types.d.ts +0 -0
- /package/dist/{src → esm/src}/types.js +0 -0
- /package/dist/{test → esm/test}/date-range-picker.test.d.ts +0 -0
- /package/dist/{test → esm/test}/date-range-picker.test.js +0 -0
- /package/dist/{test → esm/test}/preset-button.test.d.ts +0 -0
- /package/dist/{test → esm/test}/preset-button.test.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @triptease/tt-date-range-picker
|
|
2
2
|
|
|
3
|
+
## 6.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updating the prepublish command to use yarn build:node instead of tsc so that it compiles the imports down to use required for common js
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @triptease/tt-date-input@6.1.1
|
|
10
|
+
- @triptease/tt-calendar@6.1.1
|
|
11
|
+
- @triptease/tt-dialog@5.2.1
|
|
12
|
+
|
|
13
|
+
## 6.3.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- Add dual ESM/CJS output
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- @triptease/tt-date-input@6.1.0
|
|
23
|
+
- @triptease/tt-calendar@6.1.0
|
|
24
|
+
- @triptease/tt-dialog@5.2.0
|
|
25
|
+
- @triptease/icons@1.4.0
|
|
26
|
+
|
|
3
27
|
## 6.2.5
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DateRangeInput = void 0;
|
|
10
|
+
const decorators_js_1 = require("lit/decorators.js");
|
|
11
|
+
const lit_1 = require("lit");
|
|
12
|
+
class DateRangeInput extends lit_1.LitElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this._onFocus = () => {
|
|
16
|
+
this.dateInputs[0].focus();
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
connectedCallback() {
|
|
20
|
+
super.connectedCallback();
|
|
21
|
+
this.addEventListener('focus', this._onFocus);
|
|
22
|
+
}
|
|
23
|
+
disconnectedCallback() {
|
|
24
|
+
super.disconnectedCallback();
|
|
25
|
+
this.removeEventListener('focus', this._onFocus);
|
|
26
|
+
}
|
|
27
|
+
_onInput(e) {
|
|
28
|
+
const target = e.target;
|
|
29
|
+
const { value, name } = target;
|
|
30
|
+
if (!value)
|
|
31
|
+
return;
|
|
32
|
+
const field = name === 'start-date' ? 'startDate' : 'endDate';
|
|
33
|
+
this.value = { ...this.value, [field]: value };
|
|
34
|
+
this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
|
|
35
|
+
}
|
|
36
|
+
render() {
|
|
37
|
+
return (0, lit_1.html) `
|
|
38
|
+
<tt-date-input name="start-date" @change="${this._onInput}" .value="${this.value?.startDate}"></tt-date-input>
|
|
39
|
+
<span>to</span>
|
|
40
|
+
<tt-date-input name="end-date" @change="${this._onInput}" .value="${this.value?.endDate}"></tt-date-input>
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.DateRangeInput = DateRangeInput;
|
|
45
|
+
DateRangeInput.styles = (0, lit_1.css) `
|
|
46
|
+
:host {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
padding: var(--space-scale-1) var(--space-scale-1-5);
|
|
50
|
+
gap: var(--space-scale-1);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:user-invalid {
|
|
54
|
+
outline: 1px solid red;
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
DateRangeInput.shadowRootOptions = {
|
|
58
|
+
...lit_1.LitElement.shadowRootOptions,
|
|
59
|
+
delegatesFocus: true,
|
|
60
|
+
};
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, decorators_js_1.property)({ type: Object })
|
|
63
|
+
], DateRangeInput.prototype, "value", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, decorators_js_1.queryAll)('tt-date-input')
|
|
66
|
+
], DateRangeInput.prototype, "dateInputs", void 0);
|
|
67
|
+
//# sourceMappingURL=DateRangeInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangeInput.js","sourceRoot":"","sources":["../../../../src/DateRangeInput/DateRangeInput.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAuD;AACvD,6BAA4C;AAI5C,MAAa,cAAe,SAAQ,gBAAU;IAA9C;;QA+CU,aAAQ,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC;IASJ,CAAC;IAjCQ,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAEM,oBAAoB;QACzB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,QAAQ,CAAC,CAAa;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAmB,CAAC;QACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,KAAK,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAMM,MAAM;QACX,OAAO,IAAA,UAAI,EAAA;kDACmC,IAAI,CAAC,QAAQ,aAAa,IAAI,CAAC,KAAK,EAAE,SAAS;;gDAEjD,IAAI,CAAC,QAAQ,aAAa,IAAI,CAAC,KAAK,EAAE,OAAO;KACxF,CAAC;IACJ,CAAC;;AAzDH,wCA0DC;AAzDQ,qBAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;GAWlB,AAXY,CAWX;AAQK,gCAAiB,GAAG;IACzB,GAAG,gBAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHuB,CAGtB;AARK;IADN,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACF;AAGzB;IADC,IAAA,wBAAQ,EAAC,eAAe,CAAC;kDACI","sourcesContent":["import { property, queryAll } from 'lit/decorators.js';\nimport { css, html, LitElement } from 'lit';\nimport { DateInput } from '@triptease/tt-date-input';\nimport { DateRange } from '@triptease/tt-calendar/date-selection-context.js';\n\nexport class DateRangeInput extends LitElement {\n static styles = css`\n :host {\n display: flex;\n align-items: center;\n padding: var(--space-scale-1) var(--space-scale-1-5);\n gap: var(--space-scale-1);\n }\n\n :user-invalid {\n outline: 1px solid red;\n }\n `;\n\n @property({ type: Object })\n public value?: DateRange;\n\n @queryAll('tt-date-input')\n dateInputs!: Array<DateInput>;\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n public connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('focus', this._onFocus);\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener('focus', this._onFocus);\n }\n\n private _onInput(e: InputEvent) {\n const target = e.target as DateInput;\n const { value, name } = target;\n if (!value) return;\n\n const field = name === 'start-date' ? 'startDate' : 'endDate';\n this.value = { ...this.value, [field]: value };\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n private _onFocus = () => {\n this.dateInputs[0].focus();\n };\n\n public render() {\n return html`\n <tt-date-input name=\"start-date\" @change=\"${this._onInput}\" .value=\"${this.value?.startDate}\"></tt-date-input>\n <span>to</span>\n <tt-date-input name=\"end-date\" @change=\"${this._onInput}\" .value=\"${this.value?.endDate}\"></tt-date-input>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tt-date-range-input': DateRangeInput;\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateRangeInput = void 0;
|
|
4
|
+
const tt_date_input_1 = require("@triptease/tt-date-input");
|
|
5
|
+
const DateRangeInput_js_1 = require("./DateRangeInput.js");
|
|
6
|
+
Object.defineProperty(exports, "DateRangeInput", { enumerable: true, get: function () { return DateRangeInput_js_1.DateRangeInput; } });
|
|
7
|
+
if (typeof window !== 'undefined') {
|
|
8
|
+
if (!window.customElements.get('tt-date-input')) {
|
|
9
|
+
window.customElements.define('tt-date-input', tt_date_input_1.DateInput);
|
|
10
|
+
}
|
|
11
|
+
if (!window.customElements.get('tt-date-range-input')) {
|
|
12
|
+
window.customElements.define('tt-date-range-input', DateRangeInput_js_1.DateRangeInput);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=tt-date-range-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tt-date-range-input.js","sourceRoot":"","sources":["../../../../src/DateRangeInput/tt-date-range-input.ts"],"names":[],"mappings":";;;AAAA,4DAAqD;AACrD,2DAAqD;AAW5C,+FAXA,kCAAc,OAWA;AATvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAS,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,kCAAc,CAAC,CAAC;IACtE,CAAC;AACH,CAAC","sourcesContent":["import { DateInput } from '@triptease/tt-date-input';\nimport { DateRangeInput } from './DateRangeInput.js';\n\nif (typeof window !== 'undefined') {\n if (!window.customElements.get('tt-date-input')) {\n window.customElements.define('tt-date-input', DateInput);\n }\n if (!window.customElements.get('tt-date-range-input')) {\n window.customElements.define('tt-date-range-input', DateRangeInput);\n }\n}\n\nexport { DateRangeInput };\n"]}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PresetButton = exports.Preset = void 0;
|
|
10
|
+
const lit_1 = require("lit");
|
|
11
|
+
const decorators_js_1 = require("lit/decorators.js");
|
|
12
|
+
const luxon_1 = require("luxon");
|
|
13
|
+
const date_selection_context_js_1 = require("@triptease/tt-calendar/date-selection-context.js");
|
|
14
|
+
const styles_js_1 = require("./styles.js");
|
|
15
|
+
var Preset;
|
|
16
|
+
(function (Preset) {
|
|
17
|
+
Preset["ThisWeek"] = "This week";
|
|
18
|
+
Preset["LastWeek"] = "Last week";
|
|
19
|
+
Preset["ThisMonth"] = "This month";
|
|
20
|
+
Preset["LastMonth"] = "Last month";
|
|
21
|
+
Preset["ThisQuarter"] = "This quarter";
|
|
22
|
+
Preset["LastQuarter"] = "Last quarter";
|
|
23
|
+
Preset["YearToDate"] = "Year to date";
|
|
24
|
+
Preset["LastYear"] = "Last year";
|
|
25
|
+
Preset["Next1Month"] = "Next 1 month";
|
|
26
|
+
Preset["Next3Months"] = "Next 3 months";
|
|
27
|
+
Preset["Next6Months"] = "Next 6 months";
|
|
28
|
+
Preset["Next12Months"] = "Next 12 months";
|
|
29
|
+
Preset["AllTime"] = "All time";
|
|
30
|
+
})(Preset || (exports.Preset = Preset = {}));
|
|
31
|
+
const parsePreset = (value) => {
|
|
32
|
+
if (!value)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (Object.values(Preset).includes(value))
|
|
35
|
+
return value;
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
38
|
+
class PresetButton extends lit_1.LitElement {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this._onClick = (event) => {
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
this.dispatchEvent(new date_selection_context_js_1.DateRangeSelectionEvent(this.range));
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
get today() {
|
|
48
|
+
return luxon_1.DateTime.local().startOf('day');
|
|
49
|
+
}
|
|
50
|
+
get range() {
|
|
51
|
+
switch (this.preset) {
|
|
52
|
+
case Preset.ThisWeek:
|
|
53
|
+
return { startDate: this.today.startOf('week').toISODate(), endDate: this.today.endOf('week').toISODate() };
|
|
54
|
+
case Preset.LastWeek:
|
|
55
|
+
return {
|
|
56
|
+
startDate: this.today.startOf('week').minus({ weeks: 1 }).toISODate(),
|
|
57
|
+
endDate: this.today.endOf('week').minus({ weeks: 1 }).toISODate(),
|
|
58
|
+
};
|
|
59
|
+
case Preset.ThisMonth:
|
|
60
|
+
return { startDate: this.today.startOf('month').toISODate(), endDate: this.today.endOf('month').toISODate() };
|
|
61
|
+
case Preset.LastMonth:
|
|
62
|
+
return {
|
|
63
|
+
startDate: this.today.minus({ months: 1 }).startOf('month').toISODate(),
|
|
64
|
+
endDate: this.today.minus({ months: 1 }).endOf('month').toISODate(),
|
|
65
|
+
};
|
|
66
|
+
case Preset.ThisQuarter:
|
|
67
|
+
return {
|
|
68
|
+
startDate: this.today.startOf('quarter').toISODate(),
|
|
69
|
+
endDate: this.today.endOf('quarter').toISODate(),
|
|
70
|
+
};
|
|
71
|
+
case Preset.YearToDate:
|
|
72
|
+
return { startDate: this.today.startOf('year').toISODate(), endDate: this.today.toISODate() };
|
|
73
|
+
case Preset.Next1Month:
|
|
74
|
+
return {
|
|
75
|
+
startDate: this.today.toISODate(),
|
|
76
|
+
endDate: this.today.plus({ months: 1 }).toISODate(),
|
|
77
|
+
};
|
|
78
|
+
case Preset.Next3Months:
|
|
79
|
+
return {
|
|
80
|
+
startDate: this.today.toISODate(),
|
|
81
|
+
endDate: this.today.plus({ months: 3 }).toISODate(),
|
|
82
|
+
};
|
|
83
|
+
case Preset.Next6Months:
|
|
84
|
+
return {
|
|
85
|
+
startDate: this.today.toISODate(),
|
|
86
|
+
endDate: this.today.plus({ months: 6 }).toISODate(),
|
|
87
|
+
};
|
|
88
|
+
case Preset.Next12Months:
|
|
89
|
+
return {
|
|
90
|
+
startDate: this.today.toISODate(),
|
|
91
|
+
endDate: this.today.plus({ months: 12 }).toISODate(),
|
|
92
|
+
};
|
|
93
|
+
case Preset.LastQuarter:
|
|
94
|
+
return {
|
|
95
|
+
startDate: this.today.minus({ quarters: 1 }).startOf('quarter').toISODate(),
|
|
96
|
+
endDate: this.today.minus({ quarters: 1 }).endOf('quarter').toISODate(),
|
|
97
|
+
};
|
|
98
|
+
case Preset.LastYear:
|
|
99
|
+
return {
|
|
100
|
+
startDate: this.today.minus({ years: 1 }).startOf('year').toISODate(),
|
|
101
|
+
endDate: this.today.minus({ years: 1 }).endOf('year').toISODate(),
|
|
102
|
+
};
|
|
103
|
+
case Preset.AllTime:
|
|
104
|
+
return { startDate: undefined, endDate: undefined };
|
|
105
|
+
default:
|
|
106
|
+
return { startDate: this.today.toISODate(), endDate: this.today.plus({ days: 28 }).toISODate() };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
render() {
|
|
110
|
+
return (0, lit_1.html) ` <button @click="${this._onClick}">
|
|
111
|
+
<slot>${this.preset}</slot>
|
|
112
|
+
</button>`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.PresetButton = PresetButton;
|
|
116
|
+
PresetButton.styles = styles_js_1.button;
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, decorators_js_1.property)({ type: Preset, converter: parsePreset })
|
|
119
|
+
], PresetButton.prototype, "preset", void 0);
|
|
120
|
+
//# sourceMappingURL=PresetButton.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SidePanel = void 0;
|
|
10
|
+
const lit_1 = require("lit");
|
|
11
|
+
const decorators_js_1 = require("lit/decorators.js");
|
|
12
|
+
const class_map_js_1 = require("lit/directives/class-map.js");
|
|
13
|
+
const styles_js_1 = require("./styles.js");
|
|
14
|
+
class SidePanel extends lit_1.LitElement {
|
|
15
|
+
contains(other) {
|
|
16
|
+
if (!other)
|
|
17
|
+
return false;
|
|
18
|
+
return other === this || this.slottedElements.some((slotted) => slotted === other || slotted.contains(other));
|
|
19
|
+
}
|
|
20
|
+
render() {
|
|
21
|
+
return (0, lit_1.html) `
|
|
22
|
+
<div
|
|
23
|
+
class="${(0, class_map_js_1.classMap)({
|
|
24
|
+
'side-panel': true,
|
|
25
|
+
empty: this.slottedElements.length === 0,
|
|
26
|
+
})}"
|
|
27
|
+
part="side-panel"
|
|
28
|
+
>
|
|
29
|
+
<slot name="side-preset" @slotchange="${() => this.requestUpdate()}"></slot>
|
|
30
|
+
</div>
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.SidePanel = SidePanel;
|
|
35
|
+
SidePanel.styles = styles_js_1.styles;
|
|
36
|
+
SidePanel.shadowRootOptions = {
|
|
37
|
+
...lit_1.LitElement.shadowRootOptions,
|
|
38
|
+
delegatesFocus: true,
|
|
39
|
+
};
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, decorators_js_1.queryAssignedElements)({ flatten: true, slot: 'side-preset' })
|
|
42
|
+
], SidePanel.prototype, "slottedElements", void 0);
|
|
43
|
+
//# sourceMappingURL=SidePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidePanel.js","sourceRoot":"","sources":["../../../../src/SidePanel/SidePanel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6BAAuC;AACvC,qDAA0D;AAC1D,8DAAuD;AACvD,2CAAqC;AAErC,MAAa,SAAU,SAAQ,gBAAU;IAWhC,QAAQ,CAAC,KAAkB;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,OAAO,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,UAAI,EAAA;;iBAEE,IAAA,uBAAQ,EAAC;YAChB,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;SACzC,CAAC;;;gDAGsC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;KAErE,CAAC;IACJ,CAAC;;AA7BH,8BA8BC;AA7BQ,gBAAM,GAAG,kBAAM,CAAC;AAKhB,2BAAiB,GAAG;IACzB,GAAG,gBAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,CAAC;AALM;IADP,IAAA,qCAAqB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;kDACjB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './styles.js';\n\nexport class SidePanel extends LitElement {\n static styles = styles;\n\n @queryAssignedElements({ flatten: true, slot: 'side-preset' })\n private slottedElements!: Array<HTMLElement>;\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n public contains(other: Node | null): boolean {\n if (!other) return false;\n\n return other === this || this.slottedElements.some((slotted) => slotted === other || slotted.contains(other));\n }\n\n render() {\n return html`\n <div\n class=\"${classMap({\n 'side-panel': true,\n empty: this.slottedElements.length === 0,\n })}\"\n part=\"side-panel\"\n >\n <slot name=\"side-preset\" @slotchange=\"${() => this.requestUpdate()}\"></slot>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.button = exports.styles = void 0;
|
|
4
|
+
const lit_1 = require("lit");
|
|
5
|
+
exports.styles = (0, lit_1.css) `
|
|
6
|
+
.side-panel {
|
|
7
|
+
padding: var(--space-scale-3);
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
gap: var(--space-scale-3);
|
|
11
|
+
height: 100%;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
|
|
14
|
+
/* Hide the panel when it is empty. Should use :has-slotted once support is widespread */
|
|
15
|
+
|
|
16
|
+
&.empty {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
button,
|
|
22
|
+
::slotted(tt-preset-button) {
|
|
23
|
+
appearance: none;
|
|
24
|
+
padding: 0;
|
|
25
|
+
border-width: 0;
|
|
26
|
+
background-color: transparent;
|
|
27
|
+
border-radius: var(--space-scale-1);
|
|
28
|
+
padding-block: 0;
|
|
29
|
+
padding-inline: 0;
|
|
30
|
+
line-height: var(--space-scale-3);
|
|
31
|
+
font-size: var(--font-size-200);
|
|
32
|
+
text-wrap: nowrap;
|
|
33
|
+
|
|
34
|
+
&:hover {
|
|
35
|
+
box-shadow: none;
|
|
36
|
+
color: var(--color-primary-400);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:focus {
|
|
40
|
+
outline: 1px solid var(--color-primary-400);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&[aria-selected='true'] {
|
|
44
|
+
color: var(--color-primary-400);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
slot[name='presets']::slotted(*) {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
exports.button = (0, lit_1.css) `
|
|
53
|
+
button {
|
|
54
|
+
appearance: none;
|
|
55
|
+
padding: 0;
|
|
56
|
+
border-width: 0;
|
|
57
|
+
background-color: transparent;
|
|
58
|
+
border-radius: var(--space-scale-1);
|
|
59
|
+
padding-block: 0;
|
|
60
|
+
padding-inline: 0;
|
|
61
|
+
line-height: var(--space-scale-3);
|
|
62
|
+
font-size: var(--font-size-200);
|
|
63
|
+
text-wrap: nowrap;
|
|
64
|
+
outline-offset: var(--space-scale-0-5);
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
box-shadow: none;
|
|
68
|
+
color: var(--color-primary-400);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&:focus {
|
|
72
|
+
outline: 1px solid var(--color-primary-400);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&[aria-selected='true'] {
|
|
76
|
+
color: var(--color-primary-400);
|
|
77
|
+
font-weight: var(--font-weight-semibold);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
slot[name='presets']::slotted(*) {
|
|
81
|
+
display: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/SidePanel/styles.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAEb,QAAA,MAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CxB,CAAC;AAEW,QAAA,MAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n .side-panel {\n padding: var(--space-scale-3);\n display: flex;\n flex-direction: column;\n gap: var(--space-scale-3);\n height: 100%;\n box-sizing: border-box;\n\n /* Hide the panel when it is empty. Should use :has-slotted once support is widespread */\n\n &.empty {\n display: none;\n }\n }\n\n button,\n ::slotted(tt-preset-button) {\n appearance: none;\n padding: 0;\n border-width: 0;\n background-color: transparent;\n border-radius: var(--space-scale-1);\n padding-block: 0;\n padding-inline: 0;\n line-height: var(--space-scale-3);\n font-size: var(--font-size-200);\n text-wrap: nowrap;\n\n &:hover {\n box-shadow: none;\n color: var(--color-primary-400);\n }\n\n &:focus {\n outline: 1px solid var(--color-primary-400);\n }\n\n &[aria-selected='true'] {\n color: var(--color-primary-400);\n }\n\n slot[name='presets']::slotted(*) {\n display: none;\n }\n }\n`;\n\nexport const button = css`\n button {\n appearance: none;\n padding: 0;\n border-width: 0;\n background-color: transparent;\n border-radius: var(--space-scale-1);\n padding-block: 0;\n padding-inline: 0;\n line-height: var(--space-scale-3);\n font-size: var(--font-size-200);\n text-wrap: nowrap;\n outline-offset: var(--space-scale-0-5);\n\n &:hover {\n box-shadow: none;\n color: var(--color-primary-400);\n }\n\n &:focus {\n outline: 1px solid var(--color-primary-400);\n }\n\n &[aria-selected='true'] {\n color: var(--color-primary-400);\n font-weight: var(--font-weight-semibold);\n }\n\n slot[name='presets']::slotted(*) {\n display: none;\n }\n }\n`;\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Preset = exports.PresetButton = exports.SidePanel = void 0;
|
|
4
|
+
const SidePanel_js_1 = require("./SidePanel.js");
|
|
5
|
+
Object.defineProperty(exports, "SidePanel", { enumerable: true, get: function () { return SidePanel_js_1.SidePanel; } });
|
|
6
|
+
const PresetButton_js_1 = require("./PresetButton.js");
|
|
7
|
+
Object.defineProperty(exports, "Preset", { enumerable: true, get: function () { return PresetButton_js_1.Preset; } });
|
|
8
|
+
Object.defineProperty(exports, "PresetButton", { enumerable: true, get: function () { return PresetButton_js_1.PresetButton; } });
|
|
9
|
+
if (typeof window !== 'undefined') {
|
|
10
|
+
if (!window.customElements.get('tt-side-panel')) {
|
|
11
|
+
window.customElements.define('tt-side-panel', SidePanel_js_1.SidePanel);
|
|
12
|
+
}
|
|
13
|
+
if (!window.customElements.get('tt-preset-button')) {
|
|
14
|
+
window.customElements.define('tt-preset-button', PresetButton_js_1.PresetButton);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=tt-side-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tt-side-panel.js","sourceRoot":"","sources":["../../../../src/SidePanel/tt-side-panel.ts"],"names":[],"mappings":";;;AAAA,iDAA2C;AAalC,0FAbA,wBAAS,OAaA;AAZlB,uDAAyD;AAYvB,uFAZzB,wBAAM,OAYyB;AAApB,6FAZH,8BAAY,OAYG;AAVhC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,wBAAS,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,8BAAY,CAAC,CAAC;IACjE,CAAC;AACH,CAAC","sourcesContent":["import { SidePanel } from './SidePanel.js';\nimport { Preset, PresetButton } from './PresetButton.js';\n\nif (typeof window !== 'undefined') {\n if (!window.customElements.get('tt-side-panel')) {\n window.customElements.define('tt-side-panel', SidePanel);\n }\n\n if (!window.customElements.get('tt-preset-button')) {\n window.customElements.define('tt-preset-button', PresetButton);\n }\n}\n\nexport { SidePanel, PresetButton, Preset };\n"]}
|