nxt-pick-datetime 22.0.0 → 22.1.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.
- package/assets/picker.scss +674 -675
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs +202 -235
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs +348 -384
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime.mjs +5170 -4330
- package/fesm2022/nxt-pick-datetime.mjs.map +1 -1
- package/package.json +2 -2
- package/types/nxt-pick-datetime-moment-adapter.d.ts +12 -15
- package/types/nxt-pick-datetime-native-adapter.d.ts +2 -5
- package/types/nxt-pick-datetime.d.ts +1603 -1182
|
@@ -1,245 +1,212 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import {
|
|
3
|
-
import moment from
|
|
4
|
-
import { DateTimeAdapter, NXT_DATE_TIME_FORMATS } from
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
providedIn: 'root',
|
|
9
|
-
factory: NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { Injectable, InjectionToken, LOCALE_ID, inject } from "@angular/core";
|
|
3
|
+
import moment from "moment";
|
|
4
|
+
import { DateTimeAdapter, NXT_DATE_TIME_FORMATS } from "nxt-pick-datetime";
|
|
5
|
+
const NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken("NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS", {
|
|
6
|
+
providedIn: "root",
|
|
7
|
+
factory: NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY
|
|
10
8
|
});
|
|
11
|
-
/** @internal */
|
|
12
9
|
function NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {
|
|
13
|
-
|
|
14
|
-
useUtc: false
|
|
15
|
-
};
|
|
10
|
+
return { useUtc: false };
|
|
16
11
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Creates an array and fills it with values.
|
|
19
|
-
*
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
12
|
function range(length, valueFunction) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
return valuesArray;
|
|
28
|
-
}
|
|
29
|
-
class MomentDateTimeAdapter extends DateTimeAdapter {
|
|
30
|
-
constructor() {
|
|
31
|
-
const dateTimeLocale = inject(LOCALE_ID, { optional: true });
|
|
32
|
-
super();
|
|
33
|
-
this.options = inject(NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS, { optional: true });
|
|
34
|
-
this._localeData = {};
|
|
35
|
-
this.setLocale(dateTimeLocale || moment.locale());
|
|
36
|
-
}
|
|
37
|
-
setLocale(locale) {
|
|
38
|
-
super.setLocale(locale);
|
|
39
|
-
const momentLocaleData = moment.localeData(locale);
|
|
40
|
-
this._localeData = {
|
|
41
|
-
longMonths: momentLocaleData.months(),
|
|
42
|
-
shortMonths: momentLocaleData.monthsShort(),
|
|
43
|
-
longDaysOfWeek: momentLocaleData.weekdays(),
|
|
44
|
-
shortDaysOfWeek: momentLocaleData.weekdaysShort(),
|
|
45
|
-
narrowDaysOfWeek: momentLocaleData.weekdaysMin(),
|
|
46
|
-
dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D'))
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
getYear(date) {
|
|
50
|
-
return this.clone(date).year();
|
|
51
|
-
}
|
|
52
|
-
getMonth(date) {
|
|
53
|
-
return this.clone(date).month();
|
|
54
|
-
}
|
|
55
|
-
getDay(date) {
|
|
56
|
-
return this.clone(date).day();
|
|
57
|
-
}
|
|
58
|
-
getDate(date) {
|
|
59
|
-
return this.clone(date).date();
|
|
60
|
-
}
|
|
61
|
-
getHours(date) {
|
|
62
|
-
return this.clone(date).hours();
|
|
63
|
-
}
|
|
64
|
-
getMinutes(date) {
|
|
65
|
-
return this.clone(date).minutes();
|
|
66
|
-
}
|
|
67
|
-
getSeconds(date) {
|
|
68
|
-
return this.clone(date).seconds();
|
|
69
|
-
}
|
|
70
|
-
getTime(date) {
|
|
71
|
-
return this.clone(date).valueOf();
|
|
72
|
-
}
|
|
73
|
-
getNumDaysInMonth(date) {
|
|
74
|
-
return this.clone(date).daysInMonth();
|
|
75
|
-
}
|
|
76
|
-
differenceInCalendarDays(dateLeft, dateRight) {
|
|
77
|
-
return this.clone(dateLeft).diff(dateRight, 'days');
|
|
78
|
-
}
|
|
79
|
-
getYearName(date) {
|
|
80
|
-
return this.clone(date).format('YYYY');
|
|
81
|
-
}
|
|
82
|
-
getMonthNames(style) {
|
|
83
|
-
return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths;
|
|
84
|
-
}
|
|
85
|
-
getDayOfWeekNames(style) {
|
|
86
|
-
if (style === 'long') {
|
|
87
|
-
return this._localeData.longDaysOfWeek;
|
|
88
|
-
}
|
|
89
|
-
if (style === 'short') {
|
|
90
|
-
return this._localeData.shortDaysOfWeek;
|
|
91
|
-
}
|
|
92
|
-
return this._localeData.narrowDaysOfWeek;
|
|
93
|
-
}
|
|
94
|
-
getDateNames() {
|
|
95
|
-
return this._localeData.dates;
|
|
96
|
-
}
|
|
97
|
-
toIso8601(date) {
|
|
98
|
-
return this.clone(date).format();
|
|
99
|
-
}
|
|
100
|
-
isEqual(dateLeft, dateRight) {
|
|
101
|
-
if (dateLeft && dateRight) {
|
|
102
|
-
return this.clone(dateLeft).isSame(this.clone(dateRight));
|
|
103
|
-
}
|
|
104
|
-
return dateLeft === dateRight;
|
|
105
|
-
}
|
|
106
|
-
isSameDay(dateLeft, dateRight) {
|
|
107
|
-
if (dateLeft && dateRight) {
|
|
108
|
-
return this.clone(dateLeft).isSame(this.clone(dateRight), 'day');
|
|
109
|
-
}
|
|
110
|
-
return dateLeft === dateRight;
|
|
111
|
-
}
|
|
112
|
-
isValid(date) {
|
|
113
|
-
return this.clone(date).isValid();
|
|
114
|
-
}
|
|
115
|
-
invalid() {
|
|
116
|
-
return moment.invalid();
|
|
117
|
-
}
|
|
118
|
-
isDateInstance(obj) {
|
|
119
|
-
return moment.isMoment(obj);
|
|
120
|
-
}
|
|
121
|
-
addCalendarYears(date, amount) {
|
|
122
|
-
return this.clone(date).add({ years: amount });
|
|
123
|
-
}
|
|
124
|
-
addCalendarMonths(date, amount) {
|
|
125
|
-
return this.clone(date).add({ months: amount });
|
|
126
|
-
}
|
|
127
|
-
addCalendarDays(date, amount) {
|
|
128
|
-
return this.clone(date).add({ days: amount });
|
|
129
|
-
}
|
|
130
|
-
setHours(date, amount) {
|
|
131
|
-
return this.clone(date).hours(amount);
|
|
132
|
-
}
|
|
133
|
-
setMinutes(date, amount) {
|
|
134
|
-
return this.clone(date).minutes(amount);
|
|
135
|
-
}
|
|
136
|
-
setSeconds(date, amount) {
|
|
137
|
-
return this.clone(date).seconds(amount);
|
|
138
|
-
}
|
|
139
|
-
createDate(year, month, date, hours = 0, minutes = 0, seconds = 0) {
|
|
140
|
-
if (month < 0 || month > 11) {
|
|
141
|
-
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
142
|
-
}
|
|
143
|
-
if (date < 1) {
|
|
144
|
-
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
145
|
-
}
|
|
146
|
-
if (hours < 0 || hours > 23) {
|
|
147
|
-
throw Error(`Invalid hours "${hours}". Hours has to be between 0 and 23.`);
|
|
148
|
-
}
|
|
149
|
-
if (minutes < 0 || minutes > 59) {
|
|
150
|
-
throw Error(`Invalid minutes "${minutes}". Minutes has to between 0 and 59.`);
|
|
151
|
-
}
|
|
152
|
-
if (seconds < 0 || seconds > 59) {
|
|
153
|
-
throw Error(`Invalid seconds "${seconds}". Seconds has to be between 0 and 59.`);
|
|
154
|
-
}
|
|
155
|
-
const result = this.createMoment({ year, month, date, hours, minutes, seconds }).locale(this.locale());
|
|
156
|
-
// If the result isn't valid, the date must have been out of bounds for this month.
|
|
157
|
-
if (!result.isValid()) {
|
|
158
|
-
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
159
|
-
}
|
|
160
|
-
return result;
|
|
161
|
-
}
|
|
162
|
-
clone(date) {
|
|
163
|
-
return this.createMoment(date).clone().locale(this.locale());
|
|
164
|
-
}
|
|
165
|
-
now() {
|
|
166
|
-
return this.createMoment().locale(this.locale());
|
|
167
|
-
}
|
|
168
|
-
format(date, displayFormat) {
|
|
169
|
-
date = this.clone(date);
|
|
170
|
-
if (!this.isValid(date)) {
|
|
171
|
-
throw Error('MomentDateTimeAdapter: Cannot format invalid date.');
|
|
172
|
-
}
|
|
173
|
-
return date.format(displayFormat);
|
|
174
|
-
}
|
|
175
|
-
parse(value, parseFormat) {
|
|
176
|
-
if (value && typeof value === 'string') {
|
|
177
|
-
return this.createMoment(value, parseFormat, this.locale());
|
|
178
|
-
}
|
|
179
|
-
return value ? this.createMoment(value).locale(this.locale()) : undefined;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Returns the given value if given a valid Moment or undefined. Deserializes valid ISO 8601 strings
|
|
183
|
-
* (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty
|
|
184
|
-
* string into undefined. Returns an invalid date for all other values.
|
|
185
|
-
*/
|
|
186
|
-
deserialize(value) {
|
|
187
|
-
let date;
|
|
188
|
-
if (value instanceof Date) {
|
|
189
|
-
date = this.createMoment(value);
|
|
190
|
-
}
|
|
191
|
-
if (typeof value === 'string') {
|
|
192
|
-
if (!value) {
|
|
193
|
-
return undefined;
|
|
194
|
-
}
|
|
195
|
-
date = this.createMoment(value, moment.ISO_8601).locale(this.locale());
|
|
196
|
-
}
|
|
197
|
-
if (date && this.isValid(date)) {
|
|
198
|
-
return date;
|
|
199
|
-
}
|
|
200
|
-
return super.deserialize(value);
|
|
201
|
-
}
|
|
202
|
-
/** Creates a Moment instance while respecting the current UTC settings */
|
|
203
|
-
createMoment(...args) {
|
|
204
|
-
return (this.options && this.options.useUtc) ? moment.utc(...args) : moment(...args);
|
|
205
|
-
}
|
|
206
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MomentDateTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
207
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MomentDateTimeAdapter }); }
|
|
13
|
+
const valuesArray = Array(length);
|
|
14
|
+
for (let i = 0; i < length; i++) valuesArray[i] = valueFunction(i);
|
|
15
|
+
return valuesArray;
|
|
208
16
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
17
|
+
var MomentDateTimeAdapter = class MomentDateTimeAdapter extends DateTimeAdapter {
|
|
18
|
+
constructor() {
|
|
19
|
+
const dateTimeLocale = inject(LOCALE_ID, { optional: true });
|
|
20
|
+
super();
|
|
21
|
+
this.options = inject(NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS, { optional: true });
|
|
22
|
+
this._localeData = {};
|
|
23
|
+
this.setLocale(dateTimeLocale || moment.locale());
|
|
24
|
+
}
|
|
25
|
+
setLocale(locale) {
|
|
26
|
+
super.setLocale(locale);
|
|
27
|
+
const momentLocaleData = moment.localeData(locale);
|
|
28
|
+
this._localeData = {
|
|
29
|
+
longMonths: momentLocaleData.months(),
|
|
30
|
+
shortMonths: momentLocaleData.monthsShort(),
|
|
31
|
+
longDaysOfWeek: momentLocaleData.weekdays(),
|
|
32
|
+
shortDaysOfWeek: momentLocaleData.weekdaysShort(),
|
|
33
|
+
narrowDaysOfWeek: momentLocaleData.weekdaysMin(),
|
|
34
|
+
dates: range(31, (i) => this.createDate(2017, 0, i + 1).format("D"))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
getYear(date) {
|
|
38
|
+
return this.clone(date).year();
|
|
39
|
+
}
|
|
40
|
+
getMonth(date) {
|
|
41
|
+
return this.clone(date).month();
|
|
42
|
+
}
|
|
43
|
+
getDay(date) {
|
|
44
|
+
return this.clone(date).day();
|
|
45
|
+
}
|
|
46
|
+
getDate(date) {
|
|
47
|
+
return this.clone(date).date();
|
|
48
|
+
}
|
|
49
|
+
getHours(date) {
|
|
50
|
+
return this.clone(date).hours();
|
|
51
|
+
}
|
|
52
|
+
getMinutes(date) {
|
|
53
|
+
return this.clone(date).minutes();
|
|
54
|
+
}
|
|
55
|
+
getSeconds(date) {
|
|
56
|
+
return this.clone(date).seconds();
|
|
57
|
+
}
|
|
58
|
+
getTime(date) {
|
|
59
|
+
return this.clone(date).valueOf();
|
|
60
|
+
}
|
|
61
|
+
getNumDaysInMonth(date) {
|
|
62
|
+
return this.clone(date).daysInMonth();
|
|
63
|
+
}
|
|
64
|
+
differenceInCalendarDays(dateLeft, dateRight) {
|
|
65
|
+
return this.clone(dateLeft).diff(dateRight, "days");
|
|
66
|
+
}
|
|
67
|
+
getYearName(date) {
|
|
68
|
+
return this.clone(date).format("YYYY");
|
|
69
|
+
}
|
|
70
|
+
getMonthNames(style) {
|
|
71
|
+
return style === "long" ? this._localeData.longMonths : this._localeData.shortMonths;
|
|
72
|
+
}
|
|
73
|
+
getDayOfWeekNames(style) {
|
|
74
|
+
if (style === "long") return this._localeData.longDaysOfWeek;
|
|
75
|
+
if (style === "short") return this._localeData.shortDaysOfWeek;
|
|
76
|
+
return this._localeData.narrowDaysOfWeek;
|
|
77
|
+
}
|
|
78
|
+
getDateNames() {
|
|
79
|
+
return this._localeData.dates;
|
|
80
|
+
}
|
|
81
|
+
toIso8601(date) {
|
|
82
|
+
return this.clone(date).format();
|
|
83
|
+
}
|
|
84
|
+
isEqual(dateLeft, dateRight) {
|
|
85
|
+
if (dateLeft && dateRight) return this.clone(dateLeft).isSame(this.clone(dateRight));
|
|
86
|
+
return dateLeft === dateRight;
|
|
87
|
+
}
|
|
88
|
+
isSameDay(dateLeft, dateRight) {
|
|
89
|
+
if (dateLeft && dateRight) return this.clone(dateLeft).isSame(this.clone(dateRight), "day");
|
|
90
|
+
return dateLeft === dateRight;
|
|
91
|
+
}
|
|
92
|
+
isValid(date) {
|
|
93
|
+
return this.clone(date).isValid();
|
|
94
|
+
}
|
|
95
|
+
invalid() {
|
|
96
|
+
return moment.invalid();
|
|
97
|
+
}
|
|
98
|
+
isDateInstance(obj) {
|
|
99
|
+
return moment.isMoment(obj);
|
|
100
|
+
}
|
|
101
|
+
addCalendarYears(date, amount) {
|
|
102
|
+
return this.clone(date).add({ years: amount });
|
|
103
|
+
}
|
|
104
|
+
addCalendarMonths(date, amount) {
|
|
105
|
+
return this.clone(date).add({ months: amount });
|
|
106
|
+
}
|
|
107
|
+
addCalendarDays(date, amount) {
|
|
108
|
+
return this.clone(date).add({ days: amount });
|
|
109
|
+
}
|
|
110
|
+
setHours(date, amount) {
|
|
111
|
+
return this.clone(date).hours(amount);
|
|
112
|
+
}
|
|
113
|
+
setMinutes(date, amount) {
|
|
114
|
+
return this.clone(date).minutes(amount);
|
|
115
|
+
}
|
|
116
|
+
setSeconds(date, amount) {
|
|
117
|
+
return this.clone(date).seconds(amount);
|
|
118
|
+
}
|
|
119
|
+
createDate(year, month, date, hours = 0, minutes = 0, seconds = 0) {
|
|
120
|
+
if (month < 0 || month > 11) throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
|
121
|
+
if (date < 1) throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
|
122
|
+
if (hours < 0 || hours > 23) throw Error(`Invalid hours "${hours}". Hours has to be between 0 and 23.`);
|
|
123
|
+
if (minutes < 0 || minutes > 59) throw Error(`Invalid minutes "${minutes}". Minutes has to between 0 and 59.`);
|
|
124
|
+
if (seconds < 0 || seconds > 59) throw Error(`Invalid seconds "${seconds}". Seconds has to be between 0 and 59.`);
|
|
125
|
+
const result = this.createMoment({
|
|
126
|
+
year,
|
|
127
|
+
month,
|
|
128
|
+
date,
|
|
129
|
+
hours,
|
|
130
|
+
minutes,
|
|
131
|
+
seconds
|
|
132
|
+
}).locale(this.locale());
|
|
133
|
+
if (!result.isValid()) throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
clone(date) {
|
|
137
|
+
return this.createMoment(date).clone().locale(this.locale());
|
|
138
|
+
}
|
|
139
|
+
now() {
|
|
140
|
+
return this.createMoment().locale(this.locale());
|
|
141
|
+
}
|
|
142
|
+
format(date, displayFormat) {
|
|
143
|
+
date = this.clone(date);
|
|
144
|
+
if (!this.isValid(date)) throw Error("MomentDateTimeAdapter: Cannot format invalid date.");
|
|
145
|
+
return date.format(displayFormat);
|
|
146
|
+
}
|
|
147
|
+
parse(value, parseFormat) {
|
|
148
|
+
if (value && typeof value === "string") return this.createMoment(value, parseFormat, this.locale());
|
|
149
|
+
return value ? this.createMoment(value).locale(this.locale()) : void 0;
|
|
150
|
+
}
|
|
151
|
+
deserialize(value) {
|
|
152
|
+
let date;
|
|
153
|
+
if (value instanceof Date) date = this.createMoment(value);
|
|
154
|
+
if (typeof value === "string") {
|
|
155
|
+
if (!value) return;
|
|
156
|
+
date = this.createMoment(value, moment.ISO_8601).locale(this.locale());
|
|
157
|
+
}
|
|
158
|
+
if (date && this.isValid(date)) return date;
|
|
159
|
+
return super.deserialize(value);
|
|
160
|
+
}
|
|
161
|
+
createMoment(...args) {
|
|
162
|
+
return this.options && this.options.useUtc ? moment.utc(...args) : moment(...args);
|
|
163
|
+
}
|
|
164
|
+
static {
|
|
165
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
166
|
+
minVersion: "12.0.0",
|
|
167
|
+
version: "22.2.5",
|
|
168
|
+
ngImport: i0,
|
|
169
|
+
type: MomentDateTimeAdapter,
|
|
170
|
+
deps: [],
|
|
171
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
static {
|
|
175
|
+
this.ɵprov = i0.ɵɵngDeclareInjectable({
|
|
176
|
+
minVersion: "12.0.0",
|
|
177
|
+
version: "22.2.5",
|
|
178
|
+
ngImport: i0,
|
|
179
|
+
type: MomentDateTimeAdapter
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
184
|
+
minVersion: "12.0.0",
|
|
185
|
+
version: "22.2.5",
|
|
186
|
+
ngImport: i0,
|
|
187
|
+
type: MomentDateTimeAdapter,
|
|
188
|
+
decorators: [{ type: Injectable }],
|
|
189
|
+
ctorParameters: () => []
|
|
190
|
+
});
|
|
216
191
|
const NXT_MOMENT_DATE_TIME_FORMATS = {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
192
|
+
parseInput: "l LT",
|
|
193
|
+
fullPickerInput: "l LT",
|
|
194
|
+
datePickerInput: "l",
|
|
195
|
+
timePickerInput: "LT",
|
|
196
|
+
monthYearLabel: "MMM YYYY",
|
|
197
|
+
dateA11yLabel: "LL",
|
|
198
|
+
monthYearA11yLabel: "MMMM YYYY"
|
|
224
199
|
};
|
|
225
|
-
|
|
226
200
|
function provideMomentDateTimeAdapter() {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
useValue: NXT_MOMENT_DATE_TIME_FORMATS
|
|
236
|
-
}
|
|
237
|
-
];
|
|
201
|
+
return [{
|
|
202
|
+
provide: DateTimeAdapter,
|
|
203
|
+
useClass: MomentDateTimeAdapter,
|
|
204
|
+
deps: [LOCALE_ID, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS]
|
|
205
|
+
}, {
|
|
206
|
+
provide: NXT_DATE_TIME_FORMATS,
|
|
207
|
+
useValue: NXT_MOMENT_DATE_TIME_FORMATS
|
|
208
|
+
}];
|
|
238
209
|
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Generated bundle index. Do not edit.
|
|
242
|
-
*/
|
|
243
|
-
|
|
244
210
|
export { NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS, provideMomentDateTimeAdapter };
|
|
245
|
-
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=nxt-pick-datetime-moment-adapter.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nxt-pick-datetime-moment-adapter.mjs","sources":["../../../packages/pick-datetime/moment-adapter/src/date-time-adapter.class.ts","../../../packages/pick-datetime/moment-adapter/src/date-time-format.class.ts","../../../packages/pick-datetime/moment-adapter/src/public-api.ts","../../../packages/pick-datetime/moment-adapter/src/nxt-pick-datetime-moment-adapter.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken, LOCALE_ID } from '@angular/core'\r\nimport moment, { Moment } from 'moment'\r\nimport { DateTimeAdapter } from 'nxt-pick-datetime'\r\n\r\n/** Configurable options for {@see MomentDateAdapter} */\r\nexport interface MomentDateTimeAdapterOptions {\r\n /**\r\n * Turns the use of utc dates on or off.\r\n * Changing this will change how the DateTimePicker output value.\r\n * {@default false}\r\n */\r\n useUtc: boolean\r\n}\r\n\r\n/** InjectionToken for moment date adapter to configure options */\r\nexport const NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken<MomentDateTimeAdapterOptions>('NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY\r\n})\r\n\r\n/** @internal */\r\nexport function NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): MomentDateTimeAdapterOptions {\r\n return {\r\n useUtc: false\r\n }\r\n}\r\n\r\n/**\r\n * Creates an array and fills it with values.\r\n *\r\n * @internal\r\n */\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length)\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i)\r\n }\r\n return valuesArray\r\n}\r\n\r\n@Injectable()\r\nexport class MomentDateTimeAdapter extends DateTimeAdapter<Moment> {\r\n private readonly options = inject(NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS, { optional: true })\r\n\r\n private _localeData: {\r\n longMonths: string[]\r\n shortMonths: string[]\r\n longDaysOfWeek: string[]\r\n shortDaysOfWeek: string[]\r\n narrowDaysOfWeek: string[]\r\n dates: string[]\r\n } = {} as any\r\n\r\n constructor() {\r\n const dateTimeLocale = inject(LOCALE_ID, { optional: true })\r\n\r\n super()\r\n this.setLocale(dateTimeLocale || moment.locale())\r\n }\r\n\r\n override setLocale(locale: string) {\r\n super.setLocale(locale)\r\n\r\n const momentLocaleData = moment.localeData(locale)\r\n this._localeData = {\r\n longMonths: momentLocaleData.months(),\r\n shortMonths: momentLocaleData.monthsShort(),\r\n longDaysOfWeek: momentLocaleData.weekdays(),\r\n shortDaysOfWeek: momentLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\r\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D'))\r\n }\r\n }\r\n\r\n getYear(date: Moment): number {\r\n return this.clone(date).year()\r\n }\r\n\r\n getMonth(date: Moment): number {\r\n return this.clone(date).month()\r\n }\r\n\r\n getDay(date: Moment): number {\r\n return this.clone(date).day()\r\n }\r\n\r\n getDate(date: Moment): number {\r\n return this.clone(date).date()\r\n }\r\n\r\n getHours(date: Moment): number {\r\n return this.clone(date).hours()\r\n }\r\n\r\n getMinutes(date: Moment): number {\r\n return this.clone(date).minutes()\r\n }\r\n\r\n getSeconds(date: Moment): number {\r\n return this.clone(date).seconds()\r\n }\r\n\r\n getTime(date: Moment): number {\r\n return this.clone(date).valueOf()\r\n }\r\n\r\n getNumDaysInMonth(date: Moment): number {\r\n return this.clone(date).daysInMonth()\r\n }\r\n\r\n differenceInCalendarDays(dateLeft: Moment, dateRight: Moment): number {\r\n return this.clone(dateLeft).diff(dateRight, 'days')\r\n }\r\n\r\n getYearName(date: Moment): string {\r\n return this.clone(date).format('YYYY')\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style === 'long') {\r\n return this._localeData.longDaysOfWeek\r\n }\r\n if (style === 'short') {\r\n return this._localeData.shortDaysOfWeek\r\n }\r\n return this._localeData.narrowDaysOfWeek\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._localeData.dates\r\n }\r\n\r\n toIso8601(date: Moment): string {\r\n return this.clone(date).format()\r\n }\r\n\r\n isEqual(dateLeft: Moment, dateRight: Moment): boolean {\r\n\r\n if (dateLeft && dateRight) {\r\n return this.clone(dateLeft).isSame(this.clone(dateRight))\r\n }\r\n\r\n return dateLeft === dateRight\r\n }\r\n\r\n isSameDay(dateLeft: Moment, dateRight: Moment): boolean {\r\n\r\n if (dateLeft && dateRight) {\r\n return this.clone(dateLeft).isSame(this.clone(dateRight), 'day')\r\n }\r\n\r\n return dateLeft === dateRight\r\n }\r\n\r\n isValid(date: Moment): boolean {\r\n return this.clone(date).isValid()\r\n }\r\n\r\n invalid(): Moment {\r\n return moment.invalid()\r\n }\r\n\r\n isDateInstance(obj: any): boolean {\r\n return moment.isMoment(obj)\r\n }\r\n\r\n addCalendarYears(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ years: amount })\r\n }\r\n\r\n addCalendarMonths(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ months: amount })\r\n }\r\n\r\n addCalendarDays(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ days: amount })\r\n }\r\n\r\n setHours(date: Moment, amount: number): Moment {\r\n return this.clone(date).hours(amount)\r\n }\r\n\r\n setMinutes(date: Moment, amount: number): Moment {\r\n return this.clone(date).minutes(amount)\r\n }\r\n\r\n setSeconds(date: Moment, amount: number): Moment {\r\n return this.clone(date).seconds(amount)\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment\r\n createDate(year: number, month: number, date: number, hours: number = 0, minutes: number = 0, seconds: number = 0): Moment {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`)\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`)\r\n }\r\n\r\n if (hours < 0 || hours > 23) {\r\n throw Error(`Invalid hours \"${hours}\". Hours has to be between 0 and 23.`)\r\n }\r\n\r\n if (minutes < 0 || minutes > 59) {\r\n throw Error(`Invalid minutes \"${minutes}\". Minutes has to between 0 and 59.`)\r\n }\r\n\r\n if (seconds < 0 || seconds > 59) {\r\n throw Error(`Invalid seconds \"${seconds}\". Seconds has to be between 0 and 59.`)\r\n }\r\n\r\n const result = this.createMoment({ year, month, date, hours, minutes, seconds }).locale(this.locale())\r\n\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`)\r\n }\r\n\r\n return result\r\n }\r\n\r\n clone(date: Moment): Moment {\r\n return this.createMoment(date).clone().locale(this.locale())\r\n }\r\n\r\n now(): Moment {\r\n return this.createMoment().locale(this.locale())\r\n }\r\n\r\n format(date: Moment, displayFormat: any): string {\r\n date = this.clone(date)\r\n if (!this.isValid(date)) {\r\n throw Error('MomentDateTimeAdapter: Cannot format invalid date.')\r\n }\r\n return date.format(displayFormat)\r\n }\r\n\r\n parse(value: any, parseFormat: any): Moment | undefined {\r\n if (value && typeof value === 'string') {\r\n return this.createMoment(value, parseFormat, this.locale())\r\n }\r\n return value ? this.createMoment(value).locale(this.locale()) : undefined\r\n }\r\n\r\n /**\r\n * Returns the given value if given a valid Moment or undefined. Deserializes valid ISO 8601 strings\r\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\r\n * string into undefined. Returns an invalid date for all other values.\r\n */\r\n override deserialize(value: any): Moment | undefined {\r\n let date\r\n if (value instanceof Date) {\r\n date = this.createMoment(value)\r\n }\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return undefined\r\n }\r\n date = this.createMoment(value, moment.ISO_8601).locale(this.locale())\r\n }\r\n if (date && this.isValid(date)) {\r\n return date\r\n }\r\n return super.deserialize(value)\r\n }\r\n\r\n /** Creates a Moment instance while respecting the current UTC settings */\r\n private createMoment(...args: any[]): Moment {\r\n return (this.options && this.options.useUtc) ? moment.utc(...args) : moment(...args)\r\n }\r\n}\r\n","import { DateTimeFormats } from 'nxt-pick-datetime'\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const NXT_MOMENT_DATE_TIME_FORMATS: DateTimeFormats = {\r\n parseInput: 'l LT',\r\n fullPickerInput: 'l LT',\r\n datePickerInput: 'l',\r\n timePickerInput: 'LT',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n}\r\n","export { MomentDateTimeAdapterOptions, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from './date-time-adapter.class'\nimport { LOCALE_ID, Provider } from '@angular/core'\nimport { DateTimeAdapter, NXT_DATE_TIME_FORMATS } from 'nxt-pick-datetime'\nimport { MomentDateTimeAdapter, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from './date-time-adapter.class'\nimport { NXT_MOMENT_DATE_TIME_FORMATS } from './date-time-format.class'\n\nexport function provideMomentDateTimeAdapter(): Provider[] {\n return [\n {\n provide: DateTimeAdapter,\n useClass: MomentDateTimeAdapter,\n deps: [LOCALE_ID, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS]\n },\n {\n provide: NXT_DATE_TIME_FORMATS,\n useValue: NXT_MOMENT_DATE_TIME_FORMATS\n }\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nxt-pick-datetime-moment-adapter.mjs","names":[],"sources":["../../../packages/pick-datetime/moment-adapter/src/date-time-adapter.class.ts","../../../packages/pick-datetime/moment-adapter/src/date-time-format.class.ts","../../../packages/pick-datetime/moment-adapter/src/public-api.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken, LOCALE_ID } from '@angular/core'\r\nimport moment, { Moment } from 'moment'\r\nimport { DateTimeAdapter } from 'nxt-pick-datetime'\r\n\r\n/** Configurable options for {@see MomentDateAdapter} */\r\nexport interface MomentDateTimeAdapterOptions {\r\n /**\r\n * Turns the use of utc dates on or off.\r\n * Changing this will change how the DateTimePicker output value.\r\n * {@default false}\r\n */\r\n useUtc: boolean\r\n}\r\n\r\n/** InjectionToken for moment date adapter to configure options */\r\nexport const NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken<MomentDateTimeAdapterOptions>('NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY\r\n})\r\n\r\n/** @internal */\r\nexport function NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): MomentDateTimeAdapterOptions {\r\n return {\r\n useUtc: false\r\n }\r\n}\r\n\r\n/**\r\n * Creates an array and fills it with values.\r\n *\r\n * @internal\r\n */\r\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length)\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i)\r\n }\r\n return valuesArray\r\n}\r\n\r\n@Injectable()\r\nexport class MomentDateTimeAdapter extends DateTimeAdapter<Moment> {\r\n private readonly options = inject(NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS, { optional: true })\r\n\r\n private _localeData: {\r\n longMonths: string[]\r\n shortMonths: string[]\r\n longDaysOfWeek: string[]\r\n shortDaysOfWeek: string[]\r\n narrowDaysOfWeek: string[]\r\n dates: string[]\r\n } = {} as any\r\n\r\n constructor() {\r\n const dateTimeLocale = inject(LOCALE_ID, { optional: true })\r\n\r\n super()\r\n this.setLocale(dateTimeLocale || moment.locale())\r\n }\r\n\r\n override setLocale(locale: string) {\r\n super.setLocale(locale)\r\n\r\n const momentLocaleData = moment.localeData(locale)\r\n this._localeData = {\r\n longMonths: momentLocaleData.months(),\r\n shortMonths: momentLocaleData.monthsShort(),\r\n longDaysOfWeek: momentLocaleData.weekdays(),\r\n shortDaysOfWeek: momentLocaleData.weekdaysShort(),\r\n narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\r\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D'))\r\n }\r\n }\r\n\r\n getYear(date: Moment): number {\r\n return this.clone(date).year()\r\n }\r\n\r\n getMonth(date: Moment): number {\r\n return this.clone(date).month()\r\n }\r\n\r\n getDay(date: Moment): number {\r\n return this.clone(date).day()\r\n }\r\n\r\n getDate(date: Moment): number {\r\n return this.clone(date).date()\r\n }\r\n\r\n getHours(date: Moment): number {\r\n return this.clone(date).hours()\r\n }\r\n\r\n getMinutes(date: Moment): number {\r\n return this.clone(date).minutes()\r\n }\r\n\r\n getSeconds(date: Moment): number {\r\n return this.clone(date).seconds()\r\n }\r\n\r\n getTime(date: Moment): number {\r\n return this.clone(date).valueOf()\r\n }\r\n\r\n getNumDaysInMonth(date: Moment): number {\r\n return this.clone(date).daysInMonth()\r\n }\r\n\r\n differenceInCalendarDays(dateLeft: Moment, dateRight: Moment): number {\r\n return this.clone(dateLeft).diff(dateRight, 'days')\r\n }\r\n\r\n getYearName(date: Moment): string {\r\n return this.clone(date).format('YYYY')\r\n }\r\n\r\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n return style === 'long' ? this._localeData.longMonths : this._localeData.shortMonths\r\n }\r\n\r\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style === 'long') {\r\n return this._localeData.longDaysOfWeek\r\n }\r\n if (style === 'short') {\r\n return this._localeData.shortDaysOfWeek\r\n }\r\n return this._localeData.narrowDaysOfWeek\r\n }\r\n\r\n getDateNames(): string[] {\r\n return this._localeData.dates\r\n }\r\n\r\n toIso8601(date: Moment): string {\r\n return this.clone(date).format()\r\n }\r\n\r\n isEqual(dateLeft: Moment, dateRight: Moment): boolean {\r\n\r\n if (dateLeft && dateRight) {\r\n return this.clone(dateLeft).isSame(this.clone(dateRight))\r\n }\r\n\r\n return dateLeft === dateRight\r\n }\r\n\r\n isSameDay(dateLeft: Moment, dateRight: Moment): boolean {\r\n\r\n if (dateLeft && dateRight) {\r\n return this.clone(dateLeft).isSame(this.clone(dateRight), 'day')\r\n }\r\n\r\n return dateLeft === dateRight\r\n }\r\n\r\n isValid(date: Moment): boolean {\r\n return this.clone(date).isValid()\r\n }\r\n\r\n invalid(): Moment {\r\n return moment.invalid()\r\n }\r\n\r\n isDateInstance(obj: any): boolean {\r\n return moment.isMoment(obj)\r\n }\r\n\r\n addCalendarYears(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ years: amount })\r\n }\r\n\r\n addCalendarMonths(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ months: amount })\r\n }\r\n\r\n addCalendarDays(date: Moment, amount: number): Moment {\r\n return this.clone(date).add({ days: amount })\r\n }\r\n\r\n setHours(date: Moment, amount: number): Moment {\r\n return this.clone(date).hours(amount)\r\n }\r\n\r\n setMinutes(date: Moment, amount: number): Moment {\r\n return this.clone(date).minutes(amount)\r\n }\r\n\r\n setSeconds(date: Moment, amount: number): Moment {\r\n return this.clone(date).seconds(amount)\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment\r\n createDate(year: number, month: number, date: number, hours: number = 0, minutes: number = 0, seconds: number = 0): Moment {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`)\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`)\r\n }\r\n\r\n if (hours < 0 || hours > 23) {\r\n throw Error(`Invalid hours \"${hours}\". Hours has to be between 0 and 23.`)\r\n }\r\n\r\n if (minutes < 0 || minutes > 59) {\r\n throw Error(`Invalid minutes \"${minutes}\". Minutes has to between 0 and 59.`)\r\n }\r\n\r\n if (seconds < 0 || seconds > 59) {\r\n throw Error(`Invalid seconds \"${seconds}\". Seconds has to be between 0 and 59.`)\r\n }\r\n\r\n const result = this.createMoment({ year, month, date, hours, minutes, seconds }).locale(this.locale())\r\n\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`)\r\n }\r\n\r\n return result\r\n }\r\n\r\n clone(date: Moment): Moment {\r\n return this.createMoment(date).clone().locale(this.locale())\r\n }\r\n\r\n now(): Moment {\r\n return this.createMoment().locale(this.locale())\r\n }\r\n\r\n format(date: Moment, displayFormat: any): string {\r\n date = this.clone(date)\r\n if (!this.isValid(date)) {\r\n throw Error('MomentDateTimeAdapter: Cannot format invalid date.')\r\n }\r\n return date.format(displayFormat)\r\n }\r\n\r\n parse(value: any, parseFormat: any): Moment | undefined {\r\n if (value && typeof value === 'string') {\r\n return this.createMoment(value, parseFormat, this.locale())\r\n }\r\n return value ? this.createMoment(value).locale(this.locale()) : undefined\r\n }\r\n\r\n /**\r\n * Returns the given value if given a valid Moment or undefined. Deserializes valid ISO 8601 strings\r\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\r\n * string into undefined. Returns an invalid date for all other values.\r\n */\r\n override deserialize(value: any): Moment | undefined {\r\n let date\r\n if (value instanceof Date) {\r\n date = this.createMoment(value)\r\n }\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return undefined\r\n }\r\n date = this.createMoment(value, moment.ISO_8601).locale(this.locale())\r\n }\r\n if (date && this.isValid(date)) {\r\n return date\r\n }\r\n return super.deserialize(value)\r\n }\r\n\r\n /** Creates a Moment instance while respecting the current UTC settings */\r\n private createMoment(...args: any[]): Moment {\r\n return (this.options && this.options.useUtc) ? moment.utc(...args) : moment(...args)\r\n }\r\n}\r\n","import { DateTimeFormats } from 'nxt-pick-datetime'\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const NXT_MOMENT_DATE_TIME_FORMATS: DateTimeFormats = {\r\n parseInput: 'l LT',\r\n fullPickerInput: 'l LT',\r\n datePickerInput: 'l',\r\n timePickerInput: 'LT',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n}\r\n","export { MomentDateTimeAdapterOptions, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from './date-time-adapter.class'\nimport { LOCALE_ID, Provider } from '@angular/core'\nimport { DateTimeAdapter, NXT_DATE_TIME_FORMATS } from 'nxt-pick-datetime'\nimport { MomentDateTimeAdapter, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from './date-time-adapter.class'\nimport { NXT_MOMENT_DATE_TIME_FORMATS } from './date-time-format.class'\n\nexport function provideMomentDateTimeAdapter(): Provider[] {\n return [\n {\n provide: DateTimeAdapter,\n useClass: MomentDateTimeAdapter,\n deps: [LOCALE_ID, NXT_MOMENT_DATE_TIME_ADAPTER_OPTIONS]\n },\n {\n provide: NXT_DATE_TIME_FORMATS,\n useValue: NXT_MOMENT_DATE_TIME_FORMATS\n }\n ]\n}\n"],"mappings":"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"}
|