@oneluiz/dual-datepicker 3.9.2 → 4.0.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 (47) hide show
  1. package/dual-datepicker.component.d.ts +4 -4
  2. package/esm2022/core/internal.mjs +92 -0
  3. package/esm2022/core/public.mjs +94 -0
  4. package/esm2022/core/testing/date.helpers.mjs +49 -0
  5. package/esm2022/core/testing/fixed-clock.mjs +30 -0
  6. package/esm2022/core/testing/index.mjs +8 -0
  7. package/esm2022/dual-datepicker.component.mjs +34 -32
  8. package/esm2022/public-api.mjs +39 -9
  9. package/fesm2022/oneluiz-dual-datepicker.mjs +629 -975
  10. package/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -1
  11. package/package.json +11 -1
  12. package/public-api.d.ts +39 -4
  13. package/core/built-in-presets.d.ts +0 -98
  14. package/core/calendar-grid/cache.config.d.ts +0 -34
  15. package/core/calendar-grid/calendar-grid.cache.d.ts +0 -39
  16. package/core/calendar-grid/calendar-grid.factory.d.ts +0 -26
  17. package/core/calendar-grid/calendar-grid.types.d.ts +0 -57
  18. package/core/calendar-grid/index.d.ts +0 -56
  19. package/core/calendar-grid/range-highlighter.cache.d.ts +0 -106
  20. package/core/calendar-grid/range-highlighter.d.ts +0 -85
  21. package/core/calendar-grid/range-highlighter.types.d.ts +0 -182
  22. package/core/calendar-grid/virtual-weeks.logic.d.ts +0 -116
  23. package/core/calendar-grid/virtual-weeks.types.d.ts +0 -71
  24. package/core/date-adapter.d.ts +0 -298
  25. package/core/date-clock.d.ts +0 -82
  26. package/core/dual-date-range.store.d.ts +0 -113
  27. package/core/index.d.ts +0 -33
  28. package/core/native-date-adapter.d.ts +0 -152
  29. package/core/preset-providers.d.ts +0 -176
  30. package/core/preset-registry.d.ts +0 -181
  31. package/core/preset.engine.d.ts +0 -124
  32. package/core/range-preset.plugin.d.ts +0 -188
  33. package/core/range.validator.d.ts +0 -37
  34. package/core/system-clock.d.ts +0 -13
  35. package/date-adapter.d.ts +0 -116
  36. package/esm2022/core/calendar-grid/index.mjs +0 -57
  37. package/esm2022/core/index.mjs +0 -37
  38. package/esm2022/date-adapter.mjs +0 -12
  39. package/esm2022/native-date-adapter.mjs +0 -117
  40. package/esm2022/preset-utils.mjs +0 -276
  41. package/native-date-adapter.d.ts +0 -26
  42. package/preset-utils.d.ts +0 -91
  43. package/src/themes/bootstrap.scss +0 -202
  44. package/src/themes/bulma.scss +0 -209
  45. package/src/themes/custom.scss +0 -236
  46. package/src/themes/foundation.scss +0 -201
  47. package/src/themes/tailwind.scss +0 -109
package/preset-utils.d.ts DELETED
@@ -1,91 +0,0 @@
1
- import { PresetConfig, PresetRange } from './dual-datepicker.component';
2
- /**
3
- * Get the start of today
4
- */
5
- export declare function getToday(): PresetRange;
6
- /**
7
- * Get yesterday's date range
8
- */
9
- export declare function getYesterday(): PresetRange;
10
- /**
11
- * Get last N days (including today)
12
- */
13
- export declare function getLastNDays(days: number): PresetRange;
14
- /**
15
- * Get this week (Monday to Sunday)
16
- */
17
- export declare function getThisWeek(): PresetRange;
18
- /**
19
- * Get last week (Monday to Sunday)
20
- */
21
- export declare function getLastWeek(): PresetRange;
22
- /**
23
- * Get this month (1st to last day)
24
- */
25
- export declare function getThisMonth(): PresetRange;
26
- /**
27
- * Get last month (1st to last day)
28
- */
29
- export declare function getLastMonth(): PresetRange;
30
- /**
31
- * Get month to date (1st of current month to today)
32
- */
33
- export declare function getMonthToDate(): PresetRange;
34
- /**
35
- * Get this quarter (Q1, Q2, Q3, or Q4)
36
- */
37
- export declare function getThisQuarter(): PresetRange;
38
- /**
39
- * Get last quarter
40
- */
41
- export declare function getLastQuarter(): PresetRange;
42
- /**
43
- * Get quarter to date (start of current quarter to today)
44
- */
45
- export declare function getQuarterToDate(): PresetRange;
46
- /**
47
- * Get this year (January 1 to December 31)
48
- */
49
- export declare function getThisYear(): PresetRange;
50
- /**
51
- * Get last year
52
- */
53
- export declare function getLastYear(): PresetRange;
54
- /**
55
- * Get year to date (January 1 to today)
56
- */
57
- export declare function getYearToDate(): PresetRange;
58
- /**
59
- * Get last N months (including current partial month)
60
- */
61
- export declare function getLastNMonths(months: number): PresetRange;
62
- /**
63
- * Get last N years
64
- */
65
- export declare function getLastNYears(years: number): PresetRange;
66
- /**
67
- * Pre-built preset configurations for common use cases
68
- * Import and use these directly in your component
69
- */
70
- export declare const CommonPresets: {
71
- /**
72
- * Dashboard presets - Perfect for analytics dashboards
73
- */
74
- dashboard: PresetConfig[];
75
- /**
76
- * Reporting presets - Perfect for business reporting
77
- */
78
- reporting: PresetConfig[];
79
- /**
80
- * Financial presets - Perfect for ERP and accounting systems
81
- */
82
- financial: PresetConfig[];
83
- /**
84
- * Analytics presets - Perfect for BI and data analysis
85
- */
86
- analytics: PresetConfig[];
87
- /**
88
- * Simple presets - Basic common ranges
89
- */
90
- simple: PresetConfig[];
91
- };
@@ -1,202 +0,0 @@
1
- /**
2
- * Bootstrap Theme for ng-dual-datepicker
3
- *
4
- * Import this file in your styles.scss to apply Bootstrap styling:
5
- * @import '@oneluiz/dual-datepicker/themes/bootstrap';
6
- *
7
- * Make sure you have Bootstrap CSS already loaded in your project.
8
- */
9
-
10
- .datepicker-wrapper.theme-bootstrap {
11
-
12
- .datepicker-input {
13
- display: block;
14
- width: 100%;
15
- padding: 0.375rem 0.75rem;
16
- font-size: 1rem;
17
- font-weight: 400;
18
- line-height: 1.5;
19
- color: #212529;
20
- background-color: #fff;
21
- background-clip: padding-box;
22
- border: 1px solid #dee2e6;
23
- border-radius: 0.375rem;
24
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
25
- cursor: pointer;
26
-
27
- &:hover {
28
- border-color: #86b7fe;
29
- }
30
-
31
- &:focus {
32
- color: #212529;
33
- background-color: #fff;
34
- border-color: #86b7fe;
35
- outline: 0;
36
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
37
- }
38
-
39
- &::placeholder {
40
- color: #6c757d;
41
- opacity: 1;
42
- }
43
-
44
- &:disabled,
45
- &[readonly] {
46
- background-color: #e9ecef;
47
- opacity: 1;
48
- }
49
- }
50
-
51
- .date-picker-dropdown {
52
- background: #fff;
53
- border: 1px solid #dee2e6;
54
- border-radius: 0.375rem;
55
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
56
- }
57
-
58
- .date-picker-presets {
59
- button {
60
- background-color: #fff;
61
- border: 1px solid #dee2e6;
62
- color: #0d6efd;
63
- padding: 0.375rem 0.75rem;
64
- border-radius: 0.375rem;
65
- font-size: 0.875rem;
66
- font-weight: 500;
67
- cursor: pointer;
68
- transition: all 0.15s ease-in-out;
69
-
70
- &:hover {
71
- background-color: #0d6efd;
72
- border-color: #0d6efd;
73
- color: #fff;
74
- }
75
-
76
- &:active,
77
- &:focus {
78
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
79
- }
80
- }
81
-
82
- .btn-close-calendar {
83
- background-color: #fff;
84
- border: 1px solid #dee2e6;
85
- color: #dc3545;
86
-
87
- &:hover {
88
- background-color: #dc3545;
89
- border-color: #dc3545;
90
- color: #fff;
91
- }
92
- }
93
- }
94
-
95
- .date-picker-header {
96
- button {
97
- background-color: #fff;
98
- border: 1px solid #dee2e6;
99
- color: #212529;
100
- border-radius: 0.375rem;
101
- padding: 0.25rem 0.5rem;
102
-
103
- &:hover {
104
- background-color: #e9ecef;
105
- border-color: #dee2e6;
106
- }
107
- }
108
- }
109
-
110
- .day {
111
- color: #212529;
112
- border-radius: 0.375rem;
113
-
114
- &:hover:not(.disabled):not(.selected):not(.in-range) {
115
- background-color: #e9ecef;
116
- }
117
-
118
- &.selected {
119
- background-color: #0d6efd;
120
- color: #fff;
121
- font-weight: 600;
122
- }
123
-
124
- &.in-range {
125
- background-color: rgba(13, 110, 253, 0.1);
126
- color: #0d6efd;
127
- }
128
-
129
- &.today {
130
- border: 2px solid #0d6efd;
131
- font-weight: 600;
132
- }
133
-
134
- &.disabled {
135
- color: #6c757d;
136
- background-color: transparent;
137
- cursor: not-allowed;
138
- opacity: 0.5;
139
- }
140
- }
141
-
142
- .selected-ranges {
143
- .range-tag {
144
- background-color: #0d6efd;
145
- color: #fff;
146
- border: none;
147
- border-radius: 0.375rem;
148
- padding: 0.25rem 0.75rem;
149
- font-size: 0.875rem;
150
- }
151
-
152
- .btn-remove {
153
- background-color: transparent;
154
- border: none;
155
- color: #fff;
156
-
157
- &:hover {
158
- color: #dc3545;
159
- }
160
- }
161
- }
162
-
163
- .date-picker-footer {
164
- border-top: 1px solid #dee2e6;
165
-
166
- .btn-clear,
167
- .btn-cancel {
168
- background-color: #fff;
169
- border: 1px solid #dee2e6;
170
- color: #6c757d;
171
- padding: 0.375rem 0.75rem;
172
- border-radius: 0.375rem;
173
-
174
- &:hover {
175
- background-color: #e9ecef;
176
- border-color: #dee2e6;
177
- color: #495057;
178
- }
179
- }
180
-
181
- .btn-apply {
182
- background-color: #0d6efd;
183
- border: 1px solid #0d6efd;
184
- color: #fff;
185
- padding: 0.375rem 0.75rem;
186
- border-radius: 0.375rem;
187
- font-weight: 500;
188
-
189
- &:hover {
190
- background-color: #0b5ed7;
191
- border-color: #0a58ca;
192
- }
193
-
194
- &:disabled {
195
- background-color: #6c757d;
196
- border-color: #6c757d;
197
- opacity: 0.65;
198
- cursor: not-allowed;
199
- }
200
- }
201
- }
202
- }
@@ -1,209 +0,0 @@
1
- /**
2
- * Bulma Theme for ng-dual-datepicker
3
- *
4
- * Import this file in your styles.scss to apply Bulma styling:
5
- * @import '@oneluiz/dual-datepicker/themes/bulma';
6
- *
7
- * Make sure you have Bulma CSS already loaded in your project.
8
- */
9
-
10
- .datepicker-wrapper.theme-bulma {
11
-
12
- .datepicker-input {
13
- display: block;
14
- width: 100%;
15
- padding: calc(0.5em - 1px) calc(0.75em - 1px);
16
- font-size: 1rem;
17
- line-height: 1.5;
18
- color: #363636;
19
- background-color: #fff;
20
- border: 1px solid #dbdbdb;
21
- border-radius: 4px;
22
- box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
23
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
24
- cursor: pointer;
25
-
26
- &:hover {
27
- border-color: #b5b5b5;
28
- }
29
-
30
- &:focus {
31
- border-color: #3273dc;
32
- box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
33
- outline: 0;
34
- }
35
-
36
- &::placeholder {
37
- color: #b5b5b5;
38
- }
39
-
40
- &:disabled,
41
- &[readonly] {
42
- background-color: #f5f5f5;
43
- border-color: #f5f5f5;
44
- box-shadow: none;
45
- color: #7a7a7a;
46
- opacity: 1;
47
- }
48
- }
49
-
50
- .date-picker-dropdown {
51
- background: #fff;
52
- border: 1px solid #dbdbdb;
53
- border-radius: 6px;
54
- box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
55
- }
56
-
57
- .date-picker-presets {
58
- button {
59
- background-color: #fff;
60
- border: 1px solid #dbdbdb;
61
- color: #3273dc;
62
- padding: calc(0.5em - 1px) 1em;
63
- border-radius: 4px;
64
- font-size: 0.875rem;
65
- font-weight: 600;
66
- cursor: pointer;
67
- transition: all 0.15s ease-in-out;
68
-
69
- &:hover {
70
- background-color: #3273dc;
71
- border-color: #3273dc;
72
- color: #fff;
73
- }
74
-
75
- &:active,
76
- &:focus {
77
- box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
78
- outline: 0;
79
- }
80
- }
81
-
82
- .btn-close-calendar {
83
- background-color: #fff;
84
- border: 1px solid #dbdbdb;
85
- color: #f14668;
86
-
87
- &:hover {
88
- background-color: #f14668;
89
- border-color: #f14668;
90
- color: #fff;
91
- }
92
- }
93
- }
94
-
95
- .date-picker-header {
96
- button {
97
- background-color: #fff;
98
- border: 1px solid #dbdbdb;
99
- color: #363636;
100
- border-radius: 4px;
101
- padding: 0.25em 0.5em;
102
-
103
- &:hover {
104
- background-color: #f5f5f5;
105
- border-color: #b5b5b5;
106
- }
107
-
108
- &:focus {
109
- border-color: #3273dc;
110
- box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
111
- }
112
- }
113
- }
114
-
115
- .day {
116
- color: #363636;
117
- border-radius: 4px;
118
-
119
- &:hover:not(.disabled):not(.selected):not(.in-range) {
120
- background-color: #f5f5f5;
121
- }
122
-
123
- &.selected {
124
- background-color: #3273dc;
125
- color: #fff;
126
- font-weight: 600;
127
- }
128
-
129
- &.in-range {
130
- background-color: rgba(50, 115, 220, 0.1);
131
- color: #3273dc;
132
- }
133
-
134
- &.today {
135
- border: 2px solid #3273dc;
136
- font-weight: 600;
137
- }
138
-
139
- &.disabled {
140
- color: #b5b5b5;
141
- background-color: transparent;
142
- cursor: not-allowed;
143
- opacity: 0.5;
144
- }
145
- }
146
-
147
- .selected-ranges {
148
- .range-tag {
149
- background-color: #3273dc;
150
- color: #fff;
151
- border: none;
152
- border-radius: 4px;
153
- padding: 0.25em 0.75em;
154
- font-size: 0.875rem;
155
- }
156
-
157
- .btn-remove {
158
- background-color: transparent;
159
- border: none;
160
- color: #fff;
161
-
162
- &:hover {
163
- color: #f14668;
164
- }
165
- }
166
- }
167
-
168
- .date-picker-footer {
169
- border-top: 1px solid #dbdbdb;
170
-
171
- .btn-clear,
172
- .btn-cancel {
173
- background-color: #fff;
174
- border: 1px solid #dbdbdb;
175
- color: #7a7a7a;
176
- padding: calc(0.5em - 1px) 1em;
177
- border-radius: 4px;
178
-
179
- &:hover {
180
- background-color: #f5f5f5;
181
- border-color: #b5b5b5;
182
- color: #363636;
183
- }
184
- }
185
-
186
- .btn-apply {
187
- background-color: #3273dc;
188
- border: 1px solid transparent;
189
- color: #fff;
190
- padding: calc(0.5em - 1px) 1em;
191
- border-radius: 4px;
192
- font-weight: 600;
193
-
194
- &:hover {
195
- background-color: #2366d1;
196
- }
197
-
198
- &:focus {
199
- box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
200
- }
201
-
202
- &:disabled {
203
- background-color: #7a7a7a;
204
- opacity: 0.5;
205
- cursor: not-allowed;
206
- }
207
- }
208
- }
209
- }