@progress/kendo-angular-dateinputs 14.0.0-develop.7 → 14.0.0-develop.9
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/dateinput/dateinput.component.d.ts +93 -57
- package/datepicker/datepicker.component.d.ts +38 -1
- package/datetimepicker/datetimepicker.component.d.ts +38 -1
- package/esm2020/dateinput/dateinput.component.mjs +240 -821
- package/esm2020/datepicker/datepicker.component.mjs +63 -2
- package/esm2020/datetimepicker/datetimepicker.component.mjs +71 -3
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/timepicker/timepicker.component.mjs +53 -2
- package/fesm2015/progress-kendo-angular-dateinputs.mjs +425 -827
- package/fesm2020/progress-kendo-angular-dateinputs.mjs +426 -827
- package/package.json +13 -12
- package/timepicker/timepicker.component.d.ts +32 -1
|
@@ -12,7 +12,7 @@ import * as i8 from '@progress/kendo-angular-common';
|
|
|
12
12
|
import { isDocumentAvailable, guid, Keys as Keys$1, hasObservers, KendoInput, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
13
13
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
14
14
|
import * as i1 from '@progress/kendo-angular-intl';
|
|
15
|
-
import { IntlModule } from '@progress/kendo-angular-intl';
|
|
15
|
+
import { localeData, IntlModule } from '@progress/kendo-angular-intl';
|
|
16
16
|
import { Subject, Subscription, ReplaySubject, Observable, combineLatest, of, interval, animationFrameScheduler, fromEvent, EMPTY, from, BehaviorSubject, merge } from 'rxjs';
|
|
17
17
|
import * as i7 from '@angular/common';
|
|
18
18
|
import { CommonModule } from '@angular/common';
|
|
@@ -20,6 +20,7 @@ import { chevronRightIcon, chevronLeftIcon, caretAltUpIcon, caretAltDownIcon, ca
|
|
|
20
20
|
import * as i10 from '@progress/kendo-angular-buttons';
|
|
21
21
|
import { ButtonModule } from '@progress/kendo-angular-buttons';
|
|
22
22
|
import { map, scan, takeWhile, debounceTime, tap, filter } from 'rxjs/operators';
|
|
23
|
+
import { DateInput } from '@progress/kendo-dateinputs-common';
|
|
23
24
|
import * as i7$1 from '@progress/kendo-angular-icons';
|
|
24
25
|
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
25
26
|
import * as i1$2 from '@progress/kendo-angular-popup';
|
|
@@ -36,8 +37,8 @@ const packageMetadata = {
|
|
|
36
37
|
name: '@progress/kendo-angular-dateinputs',
|
|
37
38
|
productName: 'Kendo UI for Angular',
|
|
38
39
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
39
|
-
publishDate:
|
|
40
|
-
version: '14.0.0-develop.
|
|
40
|
+
publishDate: 1696584725,
|
|
41
|
+
version: '14.0.0-develop.9',
|
|
41
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
42
43
|
};
|
|
43
44
|
|
|
@@ -7033,424 +7034,37 @@ let nextId = 0;
|
|
|
7033
7034
|
const MIN_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-min';
|
|
7034
7035
|
const MAX_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-max';
|
|
7035
7036
|
const VALUE_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/#toc-using-with-json';
|
|
7036
|
-
const DATE_PART_REGEXP = /year|month|<day>/;
|
|
7037
|
-
const TIME_PART_REGEXP = /hour|minute|second|millisecond/;
|
|
7038
|
-
const SHORT_PATTERN_LENGTH_REGEXP = /d|M|H|h|m|s/;
|
|
7039
7037
|
const TWO_DIGIT_YEAR_MAX$2 = 68;
|
|
7040
|
-
const PREVIOUS_CENTURY_BASE = 1900;
|
|
7041
|
-
const CURRENT_CENTURY_BASE = 2000;
|
|
7042
7038
|
const DEFAULT_FORMAT$1 = 'd';
|
|
7043
|
-
const
|
|
7044
|
-
const
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
this.
|
|
7054
|
-
this.
|
|
7055
|
-
this.
|
|
7056
|
-
this.
|
|
7057
|
-
this.
|
|
7058
|
-
this.
|
|
7059
|
-
this.
|
|
7060
|
-
this.
|
|
7061
|
-
this.
|
|
7062
|
-
this.
|
|
7063
|
-
this.
|
|
7064
|
-
this.
|
|
7065
|
-
this.
|
|
7066
|
-
this.
|
|
7067
|
-
this.
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
"a": "a",
|
|
7073
|
-
"d": "d",
|
|
7074
|
-
"h": "h",
|
|
7075
|
-
"m": "m",
|
|
7076
|
-
"s": "s",
|
|
7077
|
-
"S": "S",
|
|
7078
|
-
"y": "y"
|
|
7079
|
-
};
|
|
7080
|
-
validatePackage(packageMetadata);
|
|
7081
|
-
this.monthNames = this.allFormatedMonths();
|
|
7082
|
-
this.dayPeriods = this.allDayPeriods();
|
|
7083
|
-
if (!value) {
|
|
7084
|
-
this.value = getDate(new Date());
|
|
7085
|
-
const sampleFormat = this.dateFormatString(this.value, this.format).symbols;
|
|
7086
|
-
for (let i = 0; i < sampleFormat.length; i++) {
|
|
7087
|
-
this.setExisting(sampleFormat[i], false);
|
|
7088
|
-
}
|
|
7089
|
-
}
|
|
7090
|
-
else {
|
|
7091
|
-
this.value = cloneDate(value);
|
|
7092
|
-
}
|
|
7093
|
-
}
|
|
7094
|
-
hasValue() {
|
|
7095
|
-
const pred = (a, p) => a || p.type !== 'literal' && p.type !== 'dayperiod' && this.getExisting(p.pattern[0]);
|
|
7096
|
-
return this.intl.splitDateFormat(this.format).reduce(pred, false);
|
|
7097
|
-
}
|
|
7098
|
-
shouldNormalizeCentury() {
|
|
7099
|
-
return this.intl.splitDateFormat(this.format).some(part => part.pattern === 'yy');
|
|
7100
|
-
}
|
|
7101
|
-
getDateObject() {
|
|
7102
|
-
for (let i = 0; i < this.knownParts.length; i++) {
|
|
7103
|
-
if (!this.getExisting(this.knownParts[i])) {
|
|
7104
|
-
return null;
|
|
7105
|
-
}
|
|
7106
|
-
}
|
|
7107
|
-
return cloneDate(this.value);
|
|
7108
|
-
}
|
|
7109
|
-
getTextAndFormat(format) {
|
|
7110
|
-
return this.merge(this.intl.formatDate(this.value, format), this.dateFormatString(this.value, format));
|
|
7111
|
-
}
|
|
7112
|
-
getExisting(symbol) {
|
|
7113
|
-
switch (symbol) {
|
|
7114
|
-
case "y": return this.year;
|
|
7115
|
-
case "M":
|
|
7116
|
-
case "L": return this.month;
|
|
7117
|
-
case "d": return this.date;
|
|
7118
|
-
case "E": return this.date && this.month && this.year;
|
|
7119
|
-
case "h":
|
|
7120
|
-
case "H": return this.hours;
|
|
7121
|
-
case "m": return this.minutes;
|
|
7122
|
-
case "s": return this.seconds;
|
|
7123
|
-
case "S": return this.milliseconds;
|
|
7124
|
-
default: return true;
|
|
7125
|
-
}
|
|
7126
|
-
}
|
|
7127
|
-
setExisting(symbol, value) {
|
|
7128
|
-
switch (symbol) {
|
|
7129
|
-
case "y":
|
|
7130
|
-
this.year = value;
|
|
7131
|
-
if (value === false) {
|
|
7132
|
-
this.value.setFullYear(2000);
|
|
7133
|
-
}
|
|
7134
|
-
break; //allow 2/29 dates
|
|
7135
|
-
case "M":
|
|
7136
|
-
this.month = value;
|
|
7137
|
-
if (value === false) {
|
|
7138
|
-
this.value.setMonth(0);
|
|
7139
|
-
}
|
|
7140
|
-
break; //make sure you can type 31 at day part
|
|
7141
|
-
case "d":
|
|
7142
|
-
this.date = value;
|
|
7143
|
-
break;
|
|
7144
|
-
case "h":
|
|
7145
|
-
case "H":
|
|
7146
|
-
this.hours = value;
|
|
7147
|
-
break;
|
|
7148
|
-
case "m":
|
|
7149
|
-
this.minutes = value;
|
|
7150
|
-
break;
|
|
7151
|
-
case "s":
|
|
7152
|
-
this.seconds = value;
|
|
7153
|
-
break;
|
|
7154
|
-
case "S":
|
|
7155
|
-
this.milliseconds = value;
|
|
7156
|
-
break;
|
|
7157
|
-
default: return;
|
|
7158
|
-
}
|
|
7159
|
-
}
|
|
7160
|
-
modifyPart(symbol, offset) {
|
|
7161
|
-
let newValue = cloneDate(this.value);
|
|
7162
|
-
switch (symbol) {
|
|
7163
|
-
case "y":
|
|
7164
|
-
newValue.setFullYear(newValue.getFullYear() + offset);
|
|
7165
|
-
break;
|
|
7166
|
-
case "M":
|
|
7167
|
-
newValue = addMonths(this.value, offset);
|
|
7168
|
-
break;
|
|
7169
|
-
case "d":
|
|
7170
|
-
case "E":
|
|
7171
|
-
newValue.setDate(newValue.getDate() + offset);
|
|
7172
|
-
break;
|
|
7173
|
-
case "h":
|
|
7174
|
-
case "H":
|
|
7175
|
-
newValue.setHours(newValue.getHours() + offset);
|
|
7176
|
-
break;
|
|
7177
|
-
case "m":
|
|
7178
|
-
newValue.setMinutes(newValue.getMinutes() + offset);
|
|
7179
|
-
break;
|
|
7180
|
-
case "s":
|
|
7181
|
-
newValue.setSeconds(newValue.getSeconds() + offset);
|
|
7182
|
-
break;
|
|
7183
|
-
case "S":
|
|
7184
|
-
newValue.setMilliseconds(newValue.getMilliseconds() + offset);
|
|
7185
|
-
break;
|
|
7186
|
-
case "a":
|
|
7187
|
-
newValue.setHours(newValue.getHours() + (12 * offset));
|
|
7188
|
-
break;
|
|
7189
|
-
default: break;
|
|
7190
|
-
}
|
|
7191
|
-
if (this.shouldNormalizeCentury()) {
|
|
7192
|
-
newValue = this.normalizeCentury(newValue);
|
|
7193
|
-
}
|
|
7194
|
-
if (newValue.getFullYear() > 0) {
|
|
7195
|
-
this.setExisting(symbol, true);
|
|
7196
|
-
this.value = newValue;
|
|
7197
|
-
}
|
|
7198
|
-
}
|
|
7199
|
-
parsePart(symbol, currentChar, resetSegmentValue) {
|
|
7200
|
-
if (!currentChar) {
|
|
7201
|
-
this.resetLeadingZero();
|
|
7202
|
-
this.setExisting(symbol, false);
|
|
7203
|
-
return { value: null, switchToNext: false };
|
|
7204
|
-
}
|
|
7205
|
-
const baseDate = this.intl.formatDate(this.value, this.format);
|
|
7206
|
-
const dateParts = this.dateFormatString(this.value, this.format);
|
|
7207
|
-
const baseFormat = dateParts.symbols;
|
|
7208
|
-
let replaced = false;
|
|
7209
|
-
let prefix = "";
|
|
7210
|
-
let current = "";
|
|
7211
|
-
let suffix = "";
|
|
7212
|
-
for (let i = 0; i < baseDate.length; i++) {
|
|
7213
|
-
if (baseFormat[i] === symbol) {
|
|
7214
|
-
current += this.getExisting(symbol) ? baseDate[i] : "0";
|
|
7215
|
-
replaced = true;
|
|
7216
|
-
}
|
|
7217
|
-
else if (!replaced) {
|
|
7218
|
-
prefix += baseDate[i];
|
|
7219
|
-
}
|
|
7220
|
-
else {
|
|
7221
|
-
suffix += baseDate[i];
|
|
7222
|
-
}
|
|
7223
|
-
}
|
|
7224
|
-
const currentMaxLength = current.length - 3;
|
|
7225
|
-
let parsedDate = null;
|
|
7226
|
-
const month = this.matchMonth(currentChar);
|
|
7227
|
-
const dayPeriod = this.matchDayPeriod(currentChar, symbol);
|
|
7228
|
-
const isZeroCurrentChar = currentChar === '0';
|
|
7229
|
-
const leadingZero = (this.leadingZero || {})[symbol] || 0;
|
|
7230
|
-
if (isZeroCurrentChar) {
|
|
7231
|
-
const valueNumber = parseInt(resetSegmentValue ? currentChar : current + currentChar, 10);
|
|
7232
|
-
if (valueNumber === 0 && !this.isAbbrMonth(dateParts.partMap, symbol)) {
|
|
7233
|
-
this.incrementLeadingZero(symbol);
|
|
7234
|
-
}
|
|
7235
|
-
}
|
|
7236
|
-
else {
|
|
7237
|
-
this.resetLeadingZero();
|
|
7238
|
-
}
|
|
7239
|
-
for (let i = Math.max(0, currentMaxLength); i <= current.length; i++) {
|
|
7240
|
-
let middle = resetSegmentValue ? currentChar : (current.substring(i) + currentChar);
|
|
7241
|
-
if (symbol === "S" && resetSegmentValue) {
|
|
7242
|
-
// The "S" parser in intl parses "1" as 100ms in order to handle ISOString dates correctly, so to get 1ms, we need to pass "001"
|
|
7243
|
-
const padding = msPaddingFromFormat(baseFormat);
|
|
7244
|
-
middle = padding + middle;
|
|
7245
|
-
}
|
|
7246
|
-
const middleNumber = parseInt(middle, 10);
|
|
7247
|
-
parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);
|
|
7248
|
-
if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {
|
|
7249
|
-
if (symbol === 'M' && !month) {
|
|
7250
|
-
const monthNumber = middleNumber - 1;
|
|
7251
|
-
if (monthNumber > -1 && monthNumber < 12) {
|
|
7252
|
-
parsedDate = cloneDate(this.value);
|
|
7253
|
-
parsedDate.setMonth(monthNumber);
|
|
7254
|
-
if (parsedDate.getMonth() !== monthNumber) {
|
|
7255
|
-
parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));
|
|
7256
|
-
}
|
|
7257
|
-
}
|
|
7258
|
-
}
|
|
7259
|
-
if (symbol === 'y') {
|
|
7260
|
-
parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);
|
|
7261
|
-
if (this.date && parsedDate.getDate() !== this.value.getDate()) {
|
|
7262
|
-
parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));
|
|
7263
|
-
}
|
|
7264
|
-
}
|
|
7265
|
-
}
|
|
7266
|
-
if (parsedDate) {
|
|
7267
|
-
//move to next segment if the part will overflow with next char
|
|
7268
|
-
//when start from empty date (01, then 010), padded zeros should be trimmed
|
|
7269
|
-
const patternValue = this.partPattern(dateParts.partMap, symbol).pattern;
|
|
7270
|
-
const peekDate = this.intl.parseDate(`${prefix}${this.peek(middle, patternValue)}${suffix}`, this.format);
|
|
7271
|
-
const patternLength = this.patternLength(patternValue) || patternValue.length;
|
|
7272
|
-
const patternSatisfied = (leadingZero + (unpadZero(middle) || currentChar).length) >= patternLength;
|
|
7273
|
-
const switchToNext = peekDate === null || patternSatisfied;
|
|
7274
|
-
if (this.shouldNormalizeCentury()) {
|
|
7275
|
-
parsedDate = this.normalizeCentury(parsedDate);
|
|
7276
|
-
}
|
|
7277
|
-
this.value = parsedDate;
|
|
7278
|
-
this.setExisting(symbol, true);
|
|
7279
|
-
return { value: this.value, switchToNext: switchToNext };
|
|
7280
|
-
}
|
|
7281
|
-
}
|
|
7282
|
-
if (month) {
|
|
7283
|
-
parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);
|
|
7284
|
-
if (parsedDate) {
|
|
7285
|
-
this.value = parsedDate;
|
|
7286
|
-
this.setExisting(symbol, true);
|
|
7287
|
-
return { value: this.value, switchToNext: false };
|
|
7288
|
-
}
|
|
7289
|
-
}
|
|
7290
|
-
if (dayPeriod) {
|
|
7291
|
-
parsedDate = this.intl.parseDate(prefix + dayPeriod + suffix, this.format);
|
|
7292
|
-
if (parsedDate) {
|
|
7293
|
-
this.value = parsedDate;
|
|
7294
|
-
return { value: this.value, switchToNext: true };
|
|
7295
|
-
}
|
|
7296
|
-
}
|
|
7297
|
-
if (isZeroCurrentChar) {
|
|
7298
|
-
this.setExisting(symbol, false);
|
|
7299
|
-
}
|
|
7300
|
-
return { value: null, switchToNext: false };
|
|
7301
|
-
}
|
|
7302
|
-
resetLeadingZero() {
|
|
7303
|
-
const hasLeadingZero = this.leadingZero !== null;
|
|
7304
|
-
this.setLeadingZero(null);
|
|
7305
|
-
return hasLeadingZero;
|
|
7306
|
-
}
|
|
7307
|
-
setLeadingZero(leadingZero) {
|
|
7308
|
-
this.leadingZero = leadingZero;
|
|
7309
|
-
}
|
|
7310
|
-
normalizeCentury(date) {
|
|
7311
|
-
if (!isPresent(date)) {
|
|
7312
|
-
return date;
|
|
7313
|
-
}
|
|
7314
|
-
const twoDigitYear = cropTwoDigitYear(date);
|
|
7315
|
-
const centuryBase = this.getNormalizedCenturyBase(twoDigitYear);
|
|
7316
|
-
const normalizedDate = setYears(date, centuryBase + twoDigitYear);
|
|
7317
|
-
return normalizedDate;
|
|
7318
|
-
}
|
|
7319
|
-
incrementLeadingZero(symbol) {
|
|
7320
|
-
const leadingZero = this.leadingZero || {};
|
|
7321
|
-
leadingZero[symbol] = (leadingZero[symbol] || 0) + 1;
|
|
7322
|
-
this.leadingZero = leadingZero;
|
|
7323
|
-
}
|
|
7324
|
-
isAbbrMonth(parts, symbol) {
|
|
7325
|
-
const pattern = this.partPattern(parts, symbol);
|
|
7326
|
-
return pattern.type === 'month' && pattern.names;
|
|
7327
|
-
}
|
|
7328
|
-
partPattern(parts, symbol) {
|
|
7329
|
-
return parts.filter((part) => part.pattern.indexOf(symbol) !== -1)[0];
|
|
7330
|
-
}
|
|
7331
|
-
peek(value, pattern) {
|
|
7332
|
-
const peekValue = unpadZero(value) + '0';
|
|
7333
|
-
return padZero(pattern.length - peekValue.length) + peekValue;
|
|
7334
|
-
}
|
|
7335
|
-
matchMonth(typedChar) {
|
|
7336
|
-
this.typedMonthPart += typedChar.toLowerCase();
|
|
7337
|
-
if (!this.monthNames) {
|
|
7338
|
-
return "";
|
|
7339
|
-
}
|
|
7340
|
-
while (this.typedMonthPart.length > 0) {
|
|
7341
|
-
for (let i = 0; i < this.monthNames.length; i++) {
|
|
7342
|
-
if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {
|
|
7343
|
-
return this.monthNames[i];
|
|
7344
|
-
}
|
|
7345
|
-
}
|
|
7346
|
-
const monthAsNum = parseInt(this.typedMonthPart, 10);
|
|
7347
|
-
if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart /*ensure they exact match*/) {
|
|
7348
|
-
return this.monthNames[monthAsNum - 1];
|
|
7349
|
-
}
|
|
7350
|
-
this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);
|
|
7351
|
-
}
|
|
7352
|
-
return "";
|
|
7353
|
-
}
|
|
7354
|
-
matchDayPeriod(typedChar, symbol) {
|
|
7355
|
-
const lowerChart = String(typedChar).toLowerCase();
|
|
7356
|
-
if (symbol === 'a' && this.dayPeriods) {
|
|
7357
|
-
if (this.dayPeriods.am.toLowerCase().startsWith(lowerChart)) {
|
|
7358
|
-
return this.dayPeriods.am;
|
|
7359
|
-
}
|
|
7360
|
-
else if (this.dayPeriods.pm.toLowerCase().startsWith(lowerChart)) {
|
|
7361
|
-
return this.dayPeriods.pm;
|
|
7362
|
-
}
|
|
7363
|
-
}
|
|
7364
|
-
return '';
|
|
7365
|
-
}
|
|
7366
|
-
allFormatedMonths() {
|
|
7367
|
-
const dateFormatParts = this.intl.splitDateFormat(this.format);
|
|
7368
|
-
for (let i = 0; i < dateFormatParts.length; i++) {
|
|
7369
|
-
if (dateFormatParts[i].type === "month" && dateFormatParts[i].names) {
|
|
7370
|
-
return this.intl.dateFormatNames(dateFormatParts[i].names);
|
|
7371
|
-
}
|
|
7372
|
-
}
|
|
7373
|
-
return null;
|
|
7374
|
-
}
|
|
7375
|
-
allDayPeriods() {
|
|
7376
|
-
const dateFormatParts = this.intl.splitDateFormat(this.format);
|
|
7377
|
-
for (let i = 0; i < dateFormatParts.length; i++) {
|
|
7378
|
-
if (dateFormatParts[i].type === "dayperiod" && dateFormatParts[i].names) {
|
|
7379
|
-
return this.intl.dateFormatNames(dateFormatParts[i].names);
|
|
7380
|
-
}
|
|
7381
|
-
}
|
|
7382
|
-
return null;
|
|
7383
|
-
}
|
|
7384
|
-
patternLength(pattern) {
|
|
7385
|
-
if (pattern[0] === 'y') {
|
|
7386
|
-
return 4;
|
|
7387
|
-
}
|
|
7388
|
-
if (SHORT_PATTERN_LENGTH_REGEXP.test(pattern)) {
|
|
7389
|
-
return 2;
|
|
7390
|
-
}
|
|
7391
|
-
return 0;
|
|
7392
|
-
}
|
|
7393
|
-
//TODO: REMOVE!
|
|
7394
|
-
dateFormatString(date, format) {
|
|
7395
|
-
const dateFormatParts = this.intl.splitDateFormat(format);
|
|
7396
|
-
const parts = [];
|
|
7397
|
-
const partMap = [];
|
|
7398
|
-
for (let i = 0; i < dateFormatParts.length; i++) {
|
|
7399
|
-
let partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;
|
|
7400
|
-
while (partLength > 0) {
|
|
7401
|
-
parts.push(this.symbols[dateFormatParts[i].pattern[0]] || "_");
|
|
7402
|
-
partMap.push(dateFormatParts[i]);
|
|
7403
|
-
partLength--;
|
|
7404
|
-
}
|
|
7405
|
-
}
|
|
7406
|
-
const returnValue = new Mask();
|
|
7407
|
-
returnValue.symbols = parts.join("");
|
|
7408
|
-
returnValue.partMap = partMap;
|
|
7409
|
-
return returnValue;
|
|
7410
|
-
}
|
|
7411
|
-
merge(text, mask) {
|
|
7412
|
-
// Important: right to left.
|
|
7413
|
-
let resultText = "";
|
|
7414
|
-
let resultFormat = "";
|
|
7415
|
-
const format = mask.symbols;
|
|
7416
|
-
for (let r = format.length - 1; r >= 0; r--) {
|
|
7417
|
-
if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {
|
|
7418
|
-
resultText = text[r] + resultText;
|
|
7419
|
-
resultFormat = format[r] + resultFormat;
|
|
7420
|
-
}
|
|
7421
|
-
else {
|
|
7422
|
-
const currentSymbol = format[r];
|
|
7423
|
-
while (r >= 0 && currentSymbol === format[r]) {
|
|
7424
|
-
r--;
|
|
7425
|
-
}
|
|
7426
|
-
r++;
|
|
7427
|
-
if (this.leadingZero && this.leadingZero[currentSymbol]) {
|
|
7428
|
-
resultText = '0' + resultText;
|
|
7429
|
-
}
|
|
7430
|
-
else {
|
|
7431
|
-
resultText = this.dateFieldName(mask.partMap[r]) + resultText;
|
|
7432
|
-
}
|
|
7433
|
-
while (resultFormat.length < resultText.length) {
|
|
7434
|
-
resultFormat = format[r] + resultFormat;
|
|
7435
|
-
}
|
|
7436
|
-
}
|
|
7437
|
-
}
|
|
7438
|
-
return [resultText, resultFormat];
|
|
7439
|
-
}
|
|
7440
|
-
dateFieldName(part) {
|
|
7441
|
-
const formatPlaceholder = this.formatPlaceholder || 'wide';
|
|
7442
|
-
if (formatPlaceholder[part.type]) {
|
|
7443
|
-
return formatPlaceholder[part.type];
|
|
7444
|
-
}
|
|
7445
|
-
if (formatPlaceholder === 'formatPattern') {
|
|
7446
|
-
return part.pattern;
|
|
7447
|
-
}
|
|
7448
|
-
return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));
|
|
7449
|
-
}
|
|
7450
|
-
getNormalizedCenturyBase(twoDigitYear) {
|
|
7451
|
-
return twoDigitYear > this.twoDigitYearMax ?
|
|
7452
|
-
PREVIOUS_CENTURY_BASE :
|
|
7453
|
-
CURRENT_CENTURY_BASE;
|
|
7039
|
+
const DEFAULT_FORMAT_PLACEHOLDER = 'wide';
|
|
7040
|
+
const DATE_PART_REGEXP = /year|month|<day>/;
|
|
7041
|
+
const TIME_PART_REGEXP = /hour|minute|second|millisecond/;
|
|
7042
|
+
/**
|
|
7043
|
+
* @hidden
|
|
7044
|
+
* Need to overrite `dateFormatNames` parameters order and provide `cldr` object
|
|
7045
|
+
* required by the kendo-dateinputs-common package
|
|
7046
|
+
*/
|
|
7047
|
+
class DateInputIntl {
|
|
7048
|
+
constructor(service) {
|
|
7049
|
+
this.service = service;
|
|
7050
|
+
this.cldr = {};
|
|
7051
|
+
this.localeId = service['localeId'];
|
|
7052
|
+
this.format = service.format;
|
|
7053
|
+
this.toString = service.toString;
|
|
7054
|
+
this.formatDate = service.formatDate;
|
|
7055
|
+
this.parseDate = service.parseDate;
|
|
7056
|
+
this.parseNumber = service.parseNumber;
|
|
7057
|
+
this.formatNumber = service.formatNumber;
|
|
7058
|
+
this.splitDateFormat = service.splitDateFormat;
|
|
7059
|
+
this.numberSymbols = service.numberSymbols;
|
|
7060
|
+
this.firstDay = service.firstDay;
|
|
7061
|
+
this.weekendRange = service.weekendRange;
|
|
7062
|
+
this.dateFieldName = service.dateFieldName;
|
|
7063
|
+
this.dateFormatNames = (localeId, options) => this.service.dateFormatNames(options, localeId || this.localeId);
|
|
7064
|
+
const _localeData = localeData(this.localeId);
|
|
7065
|
+
// Setting the `cldr` object from here could be avoided if the logic in the common package is revisited to
|
|
7066
|
+
// directly relies on the `localeId` being set as part of the options => TBD and validated for all suites
|
|
7067
|
+
this.cldr[_localeData.name] = _localeData;
|
|
7454
7068
|
}
|
|
7455
7069
|
}
|
|
7456
7070
|
/**
|
|
@@ -7546,16 +7160,50 @@ class DateInputComponent {
|
|
|
7546
7160
|
* }
|
|
7547
7161
|
* ```
|
|
7548
7162
|
*/
|
|
7549
|
-
this.steps = {
|
|
7163
|
+
this.steps = {
|
|
7164
|
+
// Default values are needed until fix in common package: https://github.com/telerik/kendo-dateinputs-common/issues/26
|
|
7165
|
+
second: 1,
|
|
7166
|
+
minute: 1,
|
|
7167
|
+
hour: 1,
|
|
7168
|
+
day: 1,
|
|
7169
|
+
month: 1,
|
|
7170
|
+
year: 1
|
|
7171
|
+
};
|
|
7550
7172
|
/**
|
|
7551
7173
|
* Determines whether the built-in min or max validators are to be enforced when a form is being validated.
|
|
7552
7174
|
*/
|
|
7553
7175
|
this.rangeValidation = true;
|
|
7554
7176
|
/**
|
|
7555
7177
|
* @hidden
|
|
7556
|
-
*
|
|
7178
|
+
*
|
|
7179
|
+
* Determines whether to auto correct invalid segments automatically.
|
|
7180
|
+
* TODO: To be fixed in common package before enabling: https://github.com/telerik/kendo-dateinputs-common/issues/24
|
|
7181
|
+
*
|
|
7182
|
+
* @default true
|
|
7183
|
+
*/
|
|
7184
|
+
this.autoCorrectParts = true;
|
|
7185
|
+
/**
|
|
7186
|
+
* Determines whether to automatically move to the next segment after the user completes the current one.
|
|
7187
|
+
*
|
|
7188
|
+
* @default true
|
|
7189
|
+
*/
|
|
7190
|
+
this.autoSwitchParts = true;
|
|
7191
|
+
/**
|
|
7192
|
+
* A string array representing custom keys, which will move the focus to the next date format segment.
|
|
7193
|
+
*/
|
|
7194
|
+
this.autoSwitchKeys = [];
|
|
7195
|
+
/**
|
|
7196
|
+
* Determines if the users should see a blinking caret inside the Date Input when possible.
|
|
7197
|
+
*
|
|
7198
|
+
* @default false
|
|
7557
7199
|
*/
|
|
7558
|
-
this.
|
|
7200
|
+
this.allowCaretMode = false;
|
|
7201
|
+
/**
|
|
7202
|
+
* When enabled, the DateInput will autofill the rest of the date to the current date when the component loses focus.
|
|
7203
|
+
*
|
|
7204
|
+
* @default false
|
|
7205
|
+
*/
|
|
7206
|
+
this.autoFill = false;
|
|
7559
7207
|
/**
|
|
7560
7208
|
* Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
|
|
7561
7209
|
*/
|
|
@@ -7568,6 +7216,12 @@ class DateInputComponent {
|
|
|
7568
7216
|
* will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
|
|
7569
7217
|
*/
|
|
7570
7218
|
this.twoDigitYearMax = TWO_DIGIT_YEAR_MAX$2;
|
|
7219
|
+
/**
|
|
7220
|
+
* Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
|
|
7221
|
+
*
|
|
7222
|
+
* @default true
|
|
7223
|
+
*/
|
|
7224
|
+
this.enableMouseWheel = true;
|
|
7571
7225
|
/**
|
|
7572
7226
|
* Specifies whether the **Up** and **Down** spin buttons will be rendered.
|
|
7573
7227
|
* For more information, refer to the article on
|
|
@@ -7644,18 +7298,16 @@ class DateInputComponent {
|
|
|
7644
7298
|
* @hidden
|
|
7645
7299
|
*/
|
|
7646
7300
|
this.isDateIncomplete = false;
|
|
7647
|
-
this.currentValue = "";
|
|
7648
7301
|
this.currentFormat = "";
|
|
7649
|
-
this.backspace = false;
|
|
7650
|
-
this.resetSegmentValue = true;
|
|
7651
7302
|
this.minValidator = noop$2;
|
|
7652
7303
|
this.maxValidator = noop$2;
|
|
7653
7304
|
this.incompleteValidator = noop$2;
|
|
7654
7305
|
this._value = null;
|
|
7655
7306
|
this._active = false;
|
|
7656
7307
|
this._focusableId = `dateinput-${nextId++}`;
|
|
7308
|
+
this._formatPlaceholder = DEFAULT_FORMAT_PLACEHOLDER;
|
|
7657
7309
|
this.kendoDate = null;
|
|
7658
|
-
this.
|
|
7310
|
+
this.kendoDateObject = null;
|
|
7659
7311
|
this.domEvents = [];
|
|
7660
7312
|
this.onControlChange = noop$2;
|
|
7661
7313
|
this.onControlTouched = noop$2;
|
|
@@ -7664,8 +7316,7 @@ class DateInputComponent {
|
|
|
7664
7316
|
this._rounded = DEFAULT_ROUNDED;
|
|
7665
7317
|
this._fillMode = DEFAULT_FILL_MODE;
|
|
7666
7318
|
this.subs = new Subscription();
|
|
7667
|
-
|
|
7668
|
-
this.updateFormatSections();
|
|
7319
|
+
validatePackage(packageMetadata);
|
|
7669
7320
|
if (this.pickerService) {
|
|
7670
7321
|
this.pickerService.input = this;
|
|
7671
7322
|
}
|
|
@@ -7702,6 +7353,58 @@ class DateInputComponent {
|
|
|
7702
7353
|
get tabIndex() {
|
|
7703
7354
|
return this.tabindex;
|
|
7704
7355
|
}
|
|
7356
|
+
/**
|
|
7357
|
+
* Defines the descriptions of the format sections in the input field.
|
|
7358
|
+
* For more information, refer to the article on
|
|
7359
|
+
* [placeholders]({% slug placeholders_dateinput %}).
|
|
7360
|
+
*
|
|
7361
|
+
* @example
|
|
7362
|
+
* ```ts
|
|
7363
|
+
* _@Component({
|
|
7364
|
+
* selector: 'my-app',
|
|
7365
|
+
* template: `
|
|
7366
|
+
* <div class="row example-wrapper" [style.min-height.px]="450">
|
|
7367
|
+
* <div class="col-xs-12 col-md-6 example-col">
|
|
7368
|
+
* <p>Full-length format description:</p>
|
|
7369
|
+
* <kendo-dateinput formatPlaceholder="wide"></kendo-dateinput>
|
|
7370
|
+
* </div>
|
|
7371
|
+
*
|
|
7372
|
+
* <div class="col-xs-12 col-md-6 example-col">
|
|
7373
|
+
* <p>Narrow-length format description:</p>
|
|
7374
|
+
* <kendo-dateinput formatPlaceholder="narrow"></kendo-dateinput>
|
|
7375
|
+
* </div>
|
|
7376
|
+
*
|
|
7377
|
+
* <div class="col-xs-12 col-md-6 example-col">
|
|
7378
|
+
* <p>Short-length format description:</p>
|
|
7379
|
+
* <kendo-dateinput formatPlaceholder="short"></kendo-dateinput>
|
|
7380
|
+
* </div>
|
|
7381
|
+
*
|
|
7382
|
+
* <div class="col-xs-12 col-md-6 example-col">
|
|
7383
|
+
* <p>Display defined format:</p>
|
|
7384
|
+
* <kendo-dateinput format="MM/dd/yyyy" formatPlaceholder="formatPattern"></kendo-dateinput>
|
|
7385
|
+
* </div>
|
|
7386
|
+
*
|
|
7387
|
+
* <div class="col-xs-12 col-md-6 example-col">
|
|
7388
|
+
* <p>Custom defined format descriptions</p>
|
|
7389
|
+
* <kendo-dateinput format="G"
|
|
7390
|
+
* [formatPlaceholder]="{
|
|
7391
|
+
* year: 'y', month: 'M', day: 'd',
|
|
7392
|
+
* hour: 'h', minute: 'm', second: 's'
|
|
7393
|
+
* }"
|
|
7394
|
+
* ></kendo-dateinput>
|
|
7395
|
+
* </div>
|
|
7396
|
+
* </div>
|
|
7397
|
+
* `
|
|
7398
|
+
* })
|
|
7399
|
+
* export class AppComponent { }
|
|
7400
|
+
* ```
|
|
7401
|
+
*/
|
|
7402
|
+
set formatPlaceholder(format) {
|
|
7403
|
+
this._formatPlaceholder = format ? format : DEFAULT_FORMAT_PLACEHOLDER;
|
|
7404
|
+
}
|
|
7405
|
+
get formatPlaceholder() {
|
|
7406
|
+
return this._formatPlaceholder;
|
|
7407
|
+
}
|
|
7705
7408
|
/**
|
|
7706
7409
|
* Specifies the value of the DateInput component.
|
|
7707
7410
|
*
|
|
@@ -7709,9 +7412,6 @@ class DateInputComponent {
|
|
|
7709
7412
|
*/
|
|
7710
7413
|
set value(value) {
|
|
7711
7414
|
this.verifyValue(value);
|
|
7712
|
-
if (this.autoCorrect && !isInRange(value, this.min, this.max)) {
|
|
7713
|
-
return;
|
|
7714
|
-
}
|
|
7715
7415
|
this._value = cloneDate(value);
|
|
7716
7416
|
this.valueUpdate.emit(cloneDate(value));
|
|
7717
7417
|
}
|
|
@@ -7823,34 +7523,39 @@ class DateInputComponent {
|
|
|
7823
7523
|
const ngControl = this.injector.get(NgControl, null);
|
|
7824
7524
|
return ngControl?.control || null;
|
|
7825
7525
|
}
|
|
7826
|
-
get
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
return this.format.displayFormat;
|
|
7846
|
-
}
|
|
7526
|
+
get options() {
|
|
7527
|
+
return {
|
|
7528
|
+
format: this.format,
|
|
7529
|
+
steps: this.steps,
|
|
7530
|
+
readonly: this.readonly,
|
|
7531
|
+
formatPlaceholder: this.formatPlaceholder,
|
|
7532
|
+
placeholder: this.placeholder,
|
|
7533
|
+
autoCorrectParts: this.autoCorrectParts,
|
|
7534
|
+
autoSwitchParts: this.autoSwitchParts,
|
|
7535
|
+
selectPreviousSegmentOnBackspace: true,
|
|
7536
|
+
autoSwitchKeys: this.autoSwitchKeys,
|
|
7537
|
+
twoDigitYearMax: this.twoDigitYearMax,
|
|
7538
|
+
enableMouseWheel: this.enableMouseWheel,
|
|
7539
|
+
selectNearestSegmentOnFocus: false,
|
|
7540
|
+
allowCaretMode: this.allowCaretMode,
|
|
7541
|
+
autoFill: this.autoFill,
|
|
7542
|
+
value: this.value,
|
|
7543
|
+
intlService: new DateInputIntl(this.intl)
|
|
7544
|
+
};
|
|
7847
7545
|
}
|
|
7848
7546
|
/**
|
|
7849
7547
|
* @hidden
|
|
7850
7548
|
* Used by the TextBoxContainer to determine if the component is empty
|
|
7851
7549
|
*/
|
|
7852
7550
|
isEmpty() {
|
|
7853
|
-
|
|
7551
|
+
const currentValue = this.dateInput.nativeElement.value;
|
|
7552
|
+
return !currentValue || !String(currentValue).trim();
|
|
7553
|
+
}
|
|
7554
|
+
/**
|
|
7555
|
+
* @hidden
|
|
7556
|
+
*/
|
|
7557
|
+
handleDragAndDrop(args) {
|
|
7558
|
+
args.preventDefault();
|
|
7854
7559
|
}
|
|
7855
7560
|
/**
|
|
7856
7561
|
* @hidden
|
|
@@ -7862,15 +7567,16 @@ class DateInputComponent {
|
|
|
7862
7567
|
* @hidden
|
|
7863
7568
|
*/
|
|
7864
7569
|
ngOnInit() {
|
|
7865
|
-
|
|
7866
|
-
|
|
7570
|
+
if (this.kendoDate) {
|
|
7571
|
+
this.kendoDate.destroy();
|
|
7572
|
+
}
|
|
7573
|
+
this.kendoDate = this.initKendoDate();
|
|
7574
|
+
this.kendoDateObject = this.kendoDate.dateObject;
|
|
7575
|
+
this.updateFormatSections();
|
|
7867
7576
|
this.subs.add(this.intl.changes.subscribe(this.intlChange.bind(this)));
|
|
7868
7577
|
this.ngControl = this.injector.get(NgControl, null);
|
|
7869
7578
|
if (this.wrapper) {
|
|
7870
7579
|
this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
|
|
7871
|
-
this.ngZone.runOutsideAngular(() => {
|
|
7872
|
-
this.bindEvents();
|
|
7873
|
-
});
|
|
7874
7580
|
}
|
|
7875
7581
|
}
|
|
7876
7582
|
/**
|
|
@@ -7884,14 +7590,37 @@ class DateInputComponent {
|
|
|
7884
7590
|
this.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : noop$2;
|
|
7885
7591
|
this.onValidatorChange();
|
|
7886
7592
|
}
|
|
7887
|
-
|
|
7888
|
-
|
|
7593
|
+
const isEqualToKendoDate = this.kendoDate && isEqual(this.value, this.kendoDate.value);
|
|
7594
|
+
if (changes['format'] || !isEqualToKendoDate || changes['placeholder']) {
|
|
7595
|
+
if (!this.kendoDate) {
|
|
7596
|
+
return;
|
|
7597
|
+
}
|
|
7598
|
+
;
|
|
7599
|
+
this.kendoDate?.setOptions(this.options, true);
|
|
7889
7600
|
this.updateFormatSections();
|
|
7890
7601
|
}
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7602
|
+
}
|
|
7603
|
+
updateFormatSections() {
|
|
7604
|
+
this.formatSections = this.intl.splitDateFormat(this.kendoDate.inputFormat)
|
|
7605
|
+
.reduce(({ date, time }, p) => {
|
|
7606
|
+
return {
|
|
7607
|
+
date: date || DATE_PART_REGEXP.test(p.type),
|
|
7608
|
+
time: time || TIME_PART_REGEXP.test(p.type)
|
|
7609
|
+
};
|
|
7610
|
+
}, { date: false, time: false });
|
|
7611
|
+
}
|
|
7612
|
+
updateIncompleteValidationStatus() {
|
|
7613
|
+
const previousValue = this.isDateIncomplete;
|
|
7614
|
+
this.isDateIncomplete = this.kendoDateObject.hasValue() && this.value === null;
|
|
7615
|
+
if (previousValue === this.isDateIncomplete || !this.incompleteDateValidation) {
|
|
7616
|
+
return;
|
|
7617
|
+
}
|
|
7618
|
+
if (isPresent(this.ngControl) && !isPresent(this.pickerService)) {
|
|
7619
|
+
this.cdr.markForCheck();
|
|
7620
|
+
this.ngZone.run(() => this.onValidatorChange());
|
|
7621
|
+
}
|
|
7622
|
+
else if (isPresent(this.pickerService)) {
|
|
7623
|
+
this.pickerService.dateCompletenessChange.emit();
|
|
7895
7624
|
}
|
|
7896
7625
|
}
|
|
7897
7626
|
ngAfterViewInit() {
|
|
@@ -7947,15 +7676,16 @@ class DateInputComponent {
|
|
|
7947
7676
|
*/
|
|
7948
7677
|
writeValue(value) {
|
|
7949
7678
|
this.verifyValue(value);
|
|
7950
|
-
this.kendoDate = this.getKendoDate(value);
|
|
7951
7679
|
this.value = cloneDate(value);
|
|
7952
|
-
this.
|
|
7680
|
+
this.kendoDate?.setOptions(this.options, true);
|
|
7681
|
+
this.kendoDateObject?.setValue(this.value);
|
|
7682
|
+
this.kendoDate?.refreshElementValue();
|
|
7953
7683
|
}
|
|
7954
7684
|
/**
|
|
7955
7685
|
* @hidden
|
|
7956
7686
|
*/
|
|
7957
7687
|
triggerChange() {
|
|
7958
|
-
const value = this.kendoDate.
|
|
7688
|
+
const value = this.kendoDate.value;
|
|
7959
7689
|
if (+value !== +this.value) {
|
|
7960
7690
|
this.value = cloneDate(value);
|
|
7961
7691
|
this.notify();
|
|
@@ -7998,11 +7728,7 @@ class DateInputComponent {
|
|
|
7998
7728
|
* ```
|
|
7999
7729
|
*/
|
|
8000
7730
|
focus() {
|
|
8001
|
-
|
|
8002
|
-
if (input) {
|
|
8003
|
-
input.focus();
|
|
8004
|
-
this.selectDateSegment(this.currentFormat[0]);
|
|
8005
|
-
}
|
|
7731
|
+
this.kendoDate && this.kendoDate.focus();
|
|
8006
7732
|
}
|
|
8007
7733
|
/**
|
|
8008
7734
|
* Blurs the DateInput component.
|
|
@@ -8018,220 +7744,53 @@ class DateInputComponent {
|
|
|
8018
7744
|
*/
|
|
8019
7745
|
handleButtonClick(offset) {
|
|
8020
7746
|
this.arrowDirection = Arrow.None;
|
|
8021
|
-
this.
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
}
|
|
8034
|
-
this.kendoDate.modifyPart(symbol, offset * step);
|
|
8035
|
-
this.putDateInRange();
|
|
8036
|
-
this.updateElementValue(this.isActive);
|
|
8037
|
-
this.triggerChange();
|
|
8038
|
-
this.selectDateSegment(symbol);
|
|
8039
|
-
this.updateIncompleteValidationStatus();
|
|
8040
|
-
}
|
|
8041
|
-
/**
|
|
8042
|
-
* @hidden
|
|
8043
|
-
*/
|
|
8044
|
-
switchDateSegment(offset) {
|
|
8045
|
-
const caret = this.caret();
|
|
8046
|
-
if (this.kendoDate.resetLeadingZero()) {
|
|
8047
|
-
this.updateElementValue(this.isActive);
|
|
8048
|
-
}
|
|
8049
|
-
if (caret[0] < caret[1] && this.currentFormat[caret[0]] !== this.currentFormat[caret[1] - 1]) {
|
|
8050
|
-
this.selectNearestSegment(offset > 0 ? caret[0] : caret[1] - 1);
|
|
8051
|
-
this.resetSegmentValue = true;
|
|
8052
|
-
return true;
|
|
8053
|
-
}
|
|
8054
|
-
const previousFormatSymbol = this.currentFormat[caret[0]];
|
|
8055
|
-
let a = caret[0] + offset;
|
|
8056
|
-
while (a > 0 && a < this.currentFormat.length) {
|
|
8057
|
-
if (this.currentFormat[a] !== previousFormatSymbol &&
|
|
8058
|
-
this.currentFormat[a] !== "_") {
|
|
8059
|
-
break;
|
|
7747
|
+
this.kendoDate.focus();
|
|
7748
|
+
this.kendoDate.modifyDateSegmentValue(offset);
|
|
7749
|
+
}
|
|
7750
|
+
initKendoDate() {
|
|
7751
|
+
const kendoDate = new DateInput(this.dateInput.nativeElement, {
|
|
7752
|
+
...this.options,
|
|
7753
|
+
events: {
|
|
7754
|
+
valueChange: this.onWidgetValueChange.bind(this),
|
|
7755
|
+
inputEnd: this.onWidgetInputEnd.bind(this),
|
|
7756
|
+
focusEnd: this.onWidgetFocus.bind(this),
|
|
7757
|
+
blurEnd: this.onWidgetBlur.bind(this),
|
|
7758
|
+
keydown: this.onWidgetKeyDown.bind(this),
|
|
8060
7759
|
}
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
if (this.currentFormat[a] === "_") {
|
|
8064
|
-
//there is not known symbol found
|
|
8065
|
-
return false;
|
|
8066
|
-
}
|
|
8067
|
-
let b = a;
|
|
8068
|
-
while (b >= 0 && b < this.currentFormat.length) {
|
|
8069
|
-
if (this.currentFormat[b] !== this.currentFormat[a]) {
|
|
8070
|
-
break;
|
|
8071
|
-
}
|
|
8072
|
-
b += offset;
|
|
8073
|
-
}
|
|
8074
|
-
if (a > b && (b + 1 !== caret[0] || a + 1 !== caret[1])) {
|
|
8075
|
-
this.caret(b + 1, a + 1);
|
|
8076
|
-
this.resetSegmentValue = true;
|
|
8077
|
-
return true;
|
|
8078
|
-
}
|
|
8079
|
-
else if (a < b && (a !== caret[0] || b !== caret[1])) {
|
|
8080
|
-
this.caret(a, b);
|
|
8081
|
-
this.resetSegmentValue = true;
|
|
8082
|
-
return true;
|
|
8083
|
-
}
|
|
8084
|
-
return false;
|
|
8085
|
-
}
|
|
8086
|
-
/**
|
|
8087
|
-
* @hidden
|
|
8088
|
-
*/
|
|
8089
|
-
selectDateSegment(symbol) {
|
|
8090
|
-
let begin = -1;
|
|
8091
|
-
let end = 0;
|
|
8092
|
-
for (let i = 0; i < this.currentFormat.length; i++) {
|
|
8093
|
-
if (this.currentFormat[i] === symbol) {
|
|
8094
|
-
end = i + 1;
|
|
8095
|
-
if (begin === -1) {
|
|
8096
|
-
begin = i;
|
|
8097
|
-
}
|
|
8098
|
-
}
|
|
8099
|
-
}
|
|
8100
|
-
if (begin < 0) {
|
|
8101
|
-
begin = 0;
|
|
8102
|
-
}
|
|
8103
|
-
this.caret(0, 0);
|
|
8104
|
-
this.caret(begin, end);
|
|
7760
|
+
});
|
|
7761
|
+
return kendoDate;
|
|
8105
7762
|
}
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
*/
|
|
8109
|
-
handleClick() {
|
|
8110
|
-
this.hasMousedown = false;
|
|
8111
|
-
if (this.isActive) {
|
|
8112
|
-
const selectionPresent = this.inputElement.selectionStart !== this.inputElement.selectionEnd;
|
|
8113
|
-
const placeholderToggled = isPresent(this.placeholder) && !this.kendoDate.hasValue() && !this.focusedPriorToMousedown;
|
|
8114
|
-
// focus first segment if the user hasn't selected something during mousedown and if the placeholder was just toggled
|
|
8115
|
-
const selectFirstSegment = !selectionPresent && placeholderToggled;
|
|
8116
|
-
const index = selectFirstSegment ? 0 : this.caret()[0];
|
|
8117
|
-
this.selectNearestSegment(index);
|
|
8118
|
-
}
|
|
7763
|
+
onWidgetValueChange() {
|
|
7764
|
+
this.triggerChange();
|
|
8119
7765
|
}
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
*/
|
|
8123
|
-
handleDragAndDrop(args) {
|
|
8124
|
-
args.preventDefault();
|
|
7766
|
+
onWidgetKeyDown() {
|
|
7767
|
+
this.kendoDateObject = this.kendoDate.dateObject;
|
|
8125
7768
|
}
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
*/
|
|
8129
|
-
handleMousedown() {
|
|
8130
|
-
this.hasMousedown = true;
|
|
8131
|
-
this.focusedPriorToMousedown = this.isActive;
|
|
7769
|
+
onWidgetInputEnd() {
|
|
7770
|
+
this.updateIncompleteValidationStatus();
|
|
8132
7771
|
}
|
|
8133
|
-
|
|
8134
|
-
* @hidden
|
|
8135
|
-
*/
|
|
8136
|
-
handleFocus(args) {
|
|
8137
|
-
this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
|
|
7772
|
+
onWidgetFocus({ event: FocuseEvent }) {
|
|
8138
7773
|
this.isActive = true;
|
|
8139
|
-
this.updateElementValue();
|
|
8140
|
-
if (!this.hasMousedown) {
|
|
8141
|
-
this.caret(0, this.inputValue.length);
|
|
8142
|
-
}
|
|
8143
|
-
this.hasMousedown = false;
|
|
8144
7774
|
if (hasObservers(this.onFocus)) {
|
|
8145
7775
|
this.ngZone.run(() => {
|
|
8146
|
-
this.emitFocus(
|
|
7776
|
+
this.emitFocus(event);
|
|
8147
7777
|
});
|
|
8148
7778
|
}
|
|
8149
7779
|
else {
|
|
8150
|
-
this.emitFocus(
|
|
7780
|
+
this.emitFocus(event);
|
|
8151
7781
|
}
|
|
8152
7782
|
}
|
|
8153
|
-
|
|
8154
|
-
* @hidden
|
|
8155
|
-
*/
|
|
8156
|
-
handleBlur(args) {
|
|
7783
|
+
onWidgetBlur({ event: FocuseEvent }) {
|
|
8157
7784
|
this.isActive = false;
|
|
8158
|
-
this.resetSegmentValue = true;
|
|
8159
|
-
this.kendoDate.resetLeadingZero();
|
|
8160
|
-
this.updateElementValue();
|
|
8161
7785
|
if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.ngControl)) {
|
|
8162
7786
|
this.ngZone.run(() => {
|
|
8163
7787
|
this.onControlTouched();
|
|
8164
|
-
this.emitBlur(
|
|
7788
|
+
this.emitBlur(event);
|
|
8165
7789
|
this.cdr.markForCheck();
|
|
8166
7790
|
});
|
|
8167
7791
|
}
|
|
8168
7792
|
else {
|
|
8169
|
-
this.emitBlur(
|
|
8170
|
-
}
|
|
8171
|
-
}
|
|
8172
|
-
getKendoDate(value) {
|
|
8173
|
-
const { leadingZero } = (this.kendoDate || {}) || null;
|
|
8174
|
-
const kendoDate = new KendoDate(this.intl, this.formatPlaceholder, this.inputFormat, value, this.twoDigitYearMax);
|
|
8175
|
-
kendoDate.setLeadingZero(this.isActive ? leadingZero : null);
|
|
8176
|
-
return kendoDate;
|
|
8177
|
-
}
|
|
8178
|
-
dateSymbolMap() {
|
|
8179
|
-
const reducer = (map, part) => {
|
|
8180
|
-
map[part.pattern[0]] = part.type;
|
|
8181
|
-
return map;
|
|
8182
|
-
};
|
|
8183
|
-
return this.intl.splitDateFormat(this.inputFormat).reduce(reducer, {});
|
|
8184
|
-
}
|
|
8185
|
-
updateElementValue(isActive) {
|
|
8186
|
-
const start = this.caret()[0]; //XXX: get caret position before input is updated
|
|
8187
|
-
const format = this.isActive ? this.inputFormat : this.displayFormat;
|
|
8188
|
-
const texts = this.kendoDate.getTextAndFormat(format);
|
|
8189
|
-
const showPlaceholder = !this.isActive && isPresent(this.placeholder) && !this.kendoDate.hasValue();
|
|
8190
|
-
const input = this.inputElement;
|
|
8191
|
-
this.currentFormat = texts[1];
|
|
8192
|
-
this.currentValue = !showPlaceholder ? texts[0] : '';
|
|
8193
|
-
this.renderer.setProperty(input, "value", this.currentValue);
|
|
8194
|
-
if (input.placeholder !== this.placeholder) {
|
|
8195
|
-
this.renderer.setProperty(input, "placeholder", this.placeholder);
|
|
8196
|
-
}
|
|
8197
|
-
if (isActive) {
|
|
8198
|
-
this.selectNearestSegment(start);
|
|
8199
|
-
}
|
|
8200
|
-
}
|
|
8201
|
-
caret(start, end = start) {
|
|
8202
|
-
const isPosition = start !== undefined;
|
|
8203
|
-
let returnValue = [start, start];
|
|
8204
|
-
const element = this.inputElement;
|
|
8205
|
-
if (isPosition && (this.disabled || this.readonly)) {
|
|
8206
|
-
return undefined;
|
|
8207
|
-
}
|
|
8208
|
-
try {
|
|
8209
|
-
if (element.selectionStart !== undefined) {
|
|
8210
|
-
if (isPosition) {
|
|
8211
|
-
if (isDocumentAvailable() && document.activeElement !== element) {
|
|
8212
|
-
element.focus();
|
|
8213
|
-
}
|
|
8214
|
-
element.setSelectionRange(start, end);
|
|
8215
|
-
}
|
|
8216
|
-
returnValue = [element.selectionStart, element.selectionEnd];
|
|
8217
|
-
}
|
|
8218
|
-
}
|
|
8219
|
-
catch (e) {
|
|
8220
|
-
returnValue = [];
|
|
8221
|
-
}
|
|
8222
|
-
return returnValue;
|
|
8223
|
-
}
|
|
8224
|
-
selectNearestSegment(index) {
|
|
8225
|
-
// Finds the nearest (in both directions) known part.
|
|
8226
|
-
for (let i = index, j = index - 1; i < this.currentFormat.length || j >= 0; i++, j--) {
|
|
8227
|
-
if (i < this.currentFormat.length && this.currentFormat[i] !== "_") {
|
|
8228
|
-
this.selectDateSegment(this.currentFormat[i]);
|
|
8229
|
-
return;
|
|
8230
|
-
}
|
|
8231
|
-
if (j >= 0 && this.currentFormat[j] !== "_") {
|
|
8232
|
-
this.selectDateSegment(this.currentFormat[j]);
|
|
8233
|
-
return;
|
|
8234
|
-
}
|
|
7793
|
+
this.emitBlur(event);
|
|
8235
7794
|
}
|
|
8236
7795
|
}
|
|
8237
7796
|
verifyRange() {
|
|
@@ -8250,135 +7809,9 @@ class DateInputComponent {
|
|
|
8250
7809
|
throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$3} for possible resolution.`);
|
|
8251
7810
|
}
|
|
8252
7811
|
}
|
|
8253
|
-
putDateInRange() {
|
|
8254
|
-
const currentDate = this.kendoDate.getDateObject();
|
|
8255
|
-
const candidate = dateInRange(currentDate, this.min, this.max);
|
|
8256
|
-
if (this.autoCorrect && !isEqual(currentDate, candidate)) {
|
|
8257
|
-
this.kendoDate = this.getKendoDate(candidate);
|
|
8258
|
-
}
|
|
8259
|
-
}
|
|
8260
|
-
updateFormatSections() {
|
|
8261
|
-
this.formatSections = this.intl.splitDateFormat(this.inputFormat)
|
|
8262
|
-
.reduce(({ date, time }, p) => {
|
|
8263
|
-
return {
|
|
8264
|
-
date: date || DATE_PART_REGEXP.test(p.type),
|
|
8265
|
-
time: time || TIME_PART_REGEXP.test(p.type)
|
|
8266
|
-
};
|
|
8267
|
-
}, { date: false, time: false });
|
|
8268
|
-
}
|
|
8269
7812
|
intlChange() {
|
|
7813
|
+
this.kendoDate.setOptions(this.options, true);
|
|
8270
7814
|
this.updateFormatSections();
|
|
8271
|
-
this.kendoDate = this.getKendoDate(this.value);
|
|
8272
|
-
this.updateElementValue(this.isActive);
|
|
8273
|
-
}
|
|
8274
|
-
updateOnPaste() {
|
|
8275
|
-
let value = this.intl.parseDate(this.inputValue, this.inputFormat) || this.value;
|
|
8276
|
-
if (isPresent(value) && this.kendoDate.shouldNormalizeCentury()) {
|
|
8277
|
-
value = this.kendoDate.normalizeCentury(value);
|
|
8278
|
-
}
|
|
8279
|
-
const notify = +value !== +this.value;
|
|
8280
|
-
this.writeValue(value);
|
|
8281
|
-
if (notify) {
|
|
8282
|
-
this.notify();
|
|
8283
|
-
}
|
|
8284
|
-
}
|
|
8285
|
-
bindEvents() {
|
|
8286
|
-
const element = this.wrapper.nativeElement;
|
|
8287
|
-
const mousewheelHandler = this.handleMouseWheel.bind(this);
|
|
8288
|
-
this.domEvents.push(this.renderer.listen(element, 'DOMMouseScroll', mousewheelHandler), this.renderer.listen(element, 'mousewheel', mousewheelHandler), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)), this.renderer.listen(element, 'paste', this.handlePaste.bind(this)), this.renderer.listen(element, 'input', this.handleInput.bind(this)));
|
|
8289
|
-
}
|
|
8290
|
-
handleMouseWheel(event) {
|
|
8291
|
-
if (this.disabled || this.readonly || !this.isActive) {
|
|
8292
|
-
return;
|
|
8293
|
-
}
|
|
8294
|
-
event = window.event || event;
|
|
8295
|
-
if (event.shiftKey) {
|
|
8296
|
-
this.switchDateSegment((event.wheelDelta || -event.detail) > 0 ? -1 : 1);
|
|
8297
|
-
}
|
|
8298
|
-
else {
|
|
8299
|
-
this.modifyDateSegmentValue((event.wheelDelta || -event.detail) > 0 ? 1 : -1);
|
|
8300
|
-
}
|
|
8301
|
-
event.returnValue = false;
|
|
8302
|
-
if (event.preventDefault) {
|
|
8303
|
-
event.preventDefault();
|
|
8304
|
-
}
|
|
8305
|
-
if (event.stopPropagation) {
|
|
8306
|
-
event.stopPropagation();
|
|
8307
|
-
}
|
|
8308
|
-
}
|
|
8309
|
-
handlePaste() {
|
|
8310
|
-
this.paste = true;
|
|
8311
|
-
}
|
|
8312
|
-
handleKeydown(event) {
|
|
8313
|
-
if (this.disabled || this.readonly || event.altKey || event.ctrlKey || event.metaKey) {
|
|
8314
|
-
return;
|
|
8315
|
-
}
|
|
8316
|
-
if (event.keyCode === Keys$1.Backspace) {
|
|
8317
|
-
this.backspace = true;
|
|
8318
|
-
return;
|
|
8319
|
-
}
|
|
8320
|
-
switch (event.keyCode) {
|
|
8321
|
-
case Keys$1.ArrowDown:
|
|
8322
|
-
this.modifyDateSegmentValue(-1);
|
|
8323
|
-
break;
|
|
8324
|
-
case Keys$1.ArrowUp:
|
|
8325
|
-
this.modifyDateSegmentValue(1);
|
|
8326
|
-
break;
|
|
8327
|
-
case Keys$1.ArrowRight:
|
|
8328
|
-
this.switchDateSegment(1);
|
|
8329
|
-
break;
|
|
8330
|
-
case Keys$1.ArrowLeft:
|
|
8331
|
-
this.switchDateSegment(-1);
|
|
8332
|
-
break;
|
|
8333
|
-
case Keys$1.Home:
|
|
8334
|
-
this.selectNearestSegment(0);
|
|
8335
|
-
break;
|
|
8336
|
-
case Keys$1.End:
|
|
8337
|
-
this.selectNearestSegment(this.inputValue.length);
|
|
8338
|
-
break;
|
|
8339
|
-
default:
|
|
8340
|
-
return; //skip the preventDefault if we didn't handled the keyCode
|
|
8341
|
-
}
|
|
8342
|
-
event.preventDefault();
|
|
8343
|
-
}
|
|
8344
|
-
handleInput() {
|
|
8345
|
-
if (this.disabled || this.readonly) {
|
|
8346
|
-
return;
|
|
8347
|
-
}
|
|
8348
|
-
if (this.paste) {
|
|
8349
|
-
this.updateOnPaste();
|
|
8350
|
-
this.paste = false;
|
|
8351
|
-
return;
|
|
8352
|
-
}
|
|
8353
|
-
const diff = approximateStringMatching(this.currentValue, this.currentFormat, this.inputValue, this.caret()[0]);
|
|
8354
|
-
const navigationOnly = (diff.length === 1 && diff[0][1] === "_");
|
|
8355
|
-
let switchPart = false;
|
|
8356
|
-
if (!navigationOnly) {
|
|
8357
|
-
let parsedPart;
|
|
8358
|
-
for (let i = 0; i < diff.length; i++) {
|
|
8359
|
-
parsedPart = this.kendoDate.parsePart(diff[i][0], diff[i][1], this.resetSegmentValue);
|
|
8360
|
-
switchPart = parsedPart.switchToNext;
|
|
8361
|
-
}
|
|
8362
|
-
const candidate = this.kendoDate.getDateObject();
|
|
8363
|
-
if (this.value && candidate && !this.formatSections['date']) {
|
|
8364
|
-
this.kendoDate = this.getKendoDate(setTime(this.value, candidate));
|
|
8365
|
-
}
|
|
8366
|
-
}
|
|
8367
|
-
this.resetSegmentValue = false;
|
|
8368
|
-
this.putDateInRange();
|
|
8369
|
-
this.updateElementValue(this.isActive);
|
|
8370
|
-
this.triggerChange();
|
|
8371
|
-
this.updateIncompleteValidationStatus();
|
|
8372
|
-
if (diff.length && diff[0][0] !== "_") {
|
|
8373
|
-
this.selectDateSegment(diff[0][0]);
|
|
8374
|
-
}
|
|
8375
|
-
if (switchPart || navigationOnly) {
|
|
8376
|
-
this.switchDateSegment(1);
|
|
8377
|
-
}
|
|
8378
|
-
if (this.backspace) {
|
|
8379
|
-
this.switchDateSegment(-1);
|
|
8380
|
-
}
|
|
8381
|
-
this.backspace = false;
|
|
8382
7815
|
}
|
|
8383
7816
|
emitFocus(args) {
|
|
8384
7817
|
this.onFocus.emit();
|
|
@@ -8392,20 +7825,6 @@ class DateInputComponent {
|
|
|
8392
7825
|
this.pickerService.onBlur.emit(args);
|
|
8393
7826
|
}
|
|
8394
7827
|
}
|
|
8395
|
-
updateIncompleteValidationStatus() {
|
|
8396
|
-
const previousValue = this.isDateIncomplete;
|
|
8397
|
-
this.isDateIncomplete = this.kendoDate.hasValue() && this.value === null;
|
|
8398
|
-
if (previousValue === this.isDateIncomplete || !this.incompleteDateValidation) {
|
|
8399
|
-
return;
|
|
8400
|
-
}
|
|
8401
|
-
if (isPresent(this.ngControl) && !isPresent(this.pickerService)) {
|
|
8402
|
-
this.cdr.markForCheck();
|
|
8403
|
-
this.ngZone.run(() => this.onValidatorChange());
|
|
8404
|
-
}
|
|
8405
|
-
else if (isPresent(this.pickerService)) {
|
|
8406
|
-
this.pickerService.dateCompletenessChange.emit();
|
|
8407
|
-
}
|
|
8408
|
-
}
|
|
8409
7828
|
setSpinnerFill(spinner, fill, oldFill) {
|
|
8410
7829
|
if (oldFill !== 'none') {
|
|
8411
7830
|
this.renderer.removeClass(spinner, `k-button-${oldFill}`);
|
|
@@ -8431,7 +7850,7 @@ class DateInputComponent {
|
|
|
8431
7850
|
}
|
|
8432
7851
|
}
|
|
8433
7852
|
DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IntlService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i1$1.LocalizationService }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
8434
|
-
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateInputComponent, selector: "kendo-dateinput", inputs: { focusableId: "focusableId", pickerType: "pickerType", disabled: "disabled", readonly: "readonly", title: "title", tabindex: "tabindex", role: "role", ariaReadOnly: "ariaReadOnly", tabIndex: "tabIndex", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", max: "max", min: "min", rangeValidation: "rangeValidation",
|
|
7853
|
+
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateInputComponent, selector: "kendo-dateinput", inputs: { focusableId: "focusableId", pickerType: "pickerType", disabled: "disabled", readonly: "readonly", title: "title", tabindex: "tabindex", role: "role", ariaReadOnly: "ariaReadOnly", tabIndex: "tabIndex", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", max: "max", min: "min", rangeValidation: "rangeValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", allowCaretMode: "allowCaretMode", autoFill: "autoFill", incompleteDateValidation: "incompleteDateValidation", twoDigitYearMax: "twoDigitYearMax", enableMouseWheel: "enableMouseWheel", value: "value", spinners: "spinners", isPopupOpen: "isPopupOpen", hasPopup: "hasPopup", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", valueUpdate: "valueUpdate", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-input": "this.wrapperClass", "class.k-dateinput": "this.wrapperClass", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
8435
7854
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
8436
7855
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
8437
7856
|
{ provide: L10N_PREFIX, useValue: 'kendo.dateinput' },
|
|
@@ -8464,13 +7883,8 @@ DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
8464
7883
|
[attr.aria-expanded]="isPopupOpen"
|
|
8465
7884
|
[attr.aria-haspopup]="hasPopup"
|
|
8466
7885
|
[kendoEventsOutsideAngular]="{
|
|
8467
|
-
click: handleClick,
|
|
8468
|
-
focus: handleFocus,
|
|
8469
|
-
mousedown: handleMousedown,
|
|
8470
|
-
touchstart: handleMousedown,
|
|
8471
7886
|
dragstart: handleDragAndDrop,
|
|
8472
|
-
drop: handleDragAndDrop
|
|
8473
|
-
blur: handleBlur
|
|
7887
|
+
drop: handleDragAndDrop
|
|
8474
7888
|
}"
|
|
8475
7889
|
[scope]="this"
|
|
8476
7890
|
/>
|
|
@@ -8553,13 +7967,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8553
7967
|
[attr.aria-expanded]="isPopupOpen"
|
|
8554
7968
|
[attr.aria-haspopup]="hasPopup"
|
|
8555
7969
|
[kendoEventsOutsideAngular]="{
|
|
8556
|
-
click: handleClick,
|
|
8557
|
-
focus: handleFocus,
|
|
8558
|
-
mousedown: handleMousedown,
|
|
8559
|
-
touchstart: handleMousedown,
|
|
8560
7970
|
dragstart: handleDragAndDrop,
|
|
8561
|
-
drop: handleDragAndDrop
|
|
8562
|
-
blur: handleBlur
|
|
7971
|
+
drop: handleDragAndDrop
|
|
8563
7972
|
}"
|
|
8564
7973
|
[scope]="this"
|
|
8565
7974
|
/>
|
|
@@ -8637,12 +8046,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8637
8046
|
type: Input
|
|
8638
8047
|
}], rangeValidation: [{
|
|
8639
8048
|
type: Input
|
|
8640
|
-
}],
|
|
8049
|
+
}], autoCorrectParts: [{
|
|
8050
|
+
type: Input
|
|
8051
|
+
}], autoSwitchParts: [{
|
|
8052
|
+
type: Input
|
|
8053
|
+
}], autoSwitchKeys: [{
|
|
8054
|
+
type: Input
|
|
8055
|
+
}], allowCaretMode: [{
|
|
8056
|
+
type: Input
|
|
8057
|
+
}], autoFill: [{
|
|
8641
8058
|
type: Input
|
|
8642
8059
|
}], incompleteDateValidation: [{
|
|
8643
8060
|
type: Input
|
|
8644
8061
|
}], twoDigitYearMax: [{
|
|
8645
8062
|
type: Input
|
|
8063
|
+
}], enableMouseWheel: [{
|
|
8064
|
+
type: Input
|
|
8646
8065
|
}], value: [{
|
|
8647
8066
|
type: Input
|
|
8648
8067
|
}], spinners: [{
|
|
@@ -8914,6 +8333,43 @@ class DatePickerComponent {
|
|
|
8914
8333
|
* Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
|
|
8915
8334
|
*/
|
|
8916
8335
|
this.incompleteDateValidation = false;
|
|
8336
|
+
/**
|
|
8337
|
+
* @hidden
|
|
8338
|
+
*
|
|
8339
|
+
* Determines whether to auto correct invalid segments automatically.
|
|
8340
|
+
* TODO: To be fixed in common package before enabling: https://github.com/telerik/kendo-dateinputs-common/issues/24
|
|
8341
|
+
*
|
|
8342
|
+
* @default true
|
|
8343
|
+
*/
|
|
8344
|
+
this.autoCorrectParts = true;
|
|
8345
|
+
/**
|
|
8346
|
+
* Determines whether to automatically move to the next segment after the user completes the current one.
|
|
8347
|
+
*
|
|
8348
|
+
* @default true
|
|
8349
|
+
*/
|
|
8350
|
+
this.autoSwitchParts = true;
|
|
8351
|
+
/**
|
|
8352
|
+
* A string array representing custom keys, which will move the focus to the next date format segment.
|
|
8353
|
+
*/
|
|
8354
|
+
this.autoSwitchKeys = [];
|
|
8355
|
+
/**
|
|
8356
|
+
* Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
|
|
8357
|
+
*
|
|
8358
|
+
* @default true
|
|
8359
|
+
*/
|
|
8360
|
+
this.enableMouseWheel = true;
|
|
8361
|
+
/**
|
|
8362
|
+
* Determines if the users should see a blinking caret inside the Date Input when possible.
|
|
8363
|
+
*
|
|
8364
|
+
* @default false
|
|
8365
|
+
*/
|
|
8366
|
+
this.allowCaretMode = false;
|
|
8367
|
+
/**
|
|
8368
|
+
* When enabled, the DatePicker will autofill the rest of the date to the current date when the component loses focus.
|
|
8369
|
+
*
|
|
8370
|
+
* @default false
|
|
8371
|
+
*/
|
|
8372
|
+
this.autoFill = false;
|
|
8917
8373
|
/**
|
|
8918
8374
|
* Specifies the focused date of the Calendar component
|
|
8919
8375
|
* ([see example]({% slug calendar_type_datepicker %}#toc-focused-dates)).
|
|
@@ -9811,7 +9267,7 @@ class DatePickerComponent {
|
|
|
9811
9267
|
}
|
|
9812
9268
|
}
|
|
9813
9269
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.NgZone }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i1$2.PopupService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: PickerService }, { token: DisabledDatesService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
9814
|
-
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DatePickerComponent, selector: "kendo-datepicker", inputs: { focusableId: "focusableId", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], activeView: "activeView", bottomView: "bottomView", topView: "topView", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", popupSettings: "popupSettings", navigation: "navigation", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", focusedDate: "focusedDate", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", title: "title", subtitle: "subtitle", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", weekNumber: "weekNumber", size: "size", rounded: "rounded", fillMode: "fillMode", adaptiveMode: "adaptiveMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-datepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
9270
|
+
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DatePickerComponent, selector: "kendo-datepicker", inputs: { focusableId: "focusableId", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], activeView: "activeView", bottomView: "bottomView", topView: "topView", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", popupSettings: "popupSettings", navigation: "navigation", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", enableMouseWheel: "enableMouseWheel", allowCaretMode: "allowCaretMode", autoFill: "autoFill", focusedDate: "focusedDate", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", title: "title", subtitle: "subtitle", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", weekNumber: "weekNumber", size: "size", rounded: "rounded", fillMode: "fillMode", adaptiveMode: "adaptiveMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-datepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
9815
9271
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatePickerComponent), multi: true },
|
|
9816
9272
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DatePickerComponent), multi: true },
|
|
9817
9273
|
{ provide: KendoInput, useExisting: forwardRef(() => DatePickerComponent) },
|
|
@@ -9859,6 +9315,12 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
9859
9315
|
[min]="min"
|
|
9860
9316
|
[max]="max"
|
|
9861
9317
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
9318
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
9319
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
9320
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
9321
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
9322
|
+
[allowCaretMode]="allowCaretMode"
|
|
9323
|
+
[autoFill]="autoFill"
|
|
9862
9324
|
fillMode="none"
|
|
9863
9325
|
rounded="none"
|
|
9864
9326
|
size="none"
|
|
@@ -9972,7 +9434,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
9972
9434
|
</kendo-calendar-messages>
|
|
9973
9435
|
</kendo-calendar>
|
|
9974
9436
|
</ng-template>
|
|
9975
|
-
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "
|
|
9437
|
+
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9976
9438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
9977
9439
|
type: Component,
|
|
9978
9440
|
args: [{
|
|
@@ -10028,6 +9490,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10028
9490
|
[min]="min"
|
|
10029
9491
|
[max]="max"
|
|
10030
9492
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
9493
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
9494
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
9495
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
9496
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
9497
|
+
[allowCaretMode]="allowCaretMode"
|
|
9498
|
+
[autoFill]="autoFill"
|
|
10031
9499
|
fillMode="none"
|
|
10032
9500
|
rounded="none"
|
|
10033
9501
|
size="none"
|
|
@@ -10236,6 +9704,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10236
9704
|
type: Input
|
|
10237
9705
|
}], incompleteDateValidation: [{
|
|
10238
9706
|
type: Input
|
|
9707
|
+
}], autoCorrectParts: [{
|
|
9708
|
+
type: Input
|
|
9709
|
+
}], autoSwitchParts: [{
|
|
9710
|
+
type: Input
|
|
9711
|
+
}], autoSwitchKeys: [{
|
|
9712
|
+
type: Input
|
|
9713
|
+
}], enableMouseWheel: [{
|
|
9714
|
+
type: Input
|
|
9715
|
+
}], allowCaretMode: [{
|
|
9716
|
+
type: Input
|
|
9717
|
+
}], autoFill: [{
|
|
9718
|
+
type: Input
|
|
10239
9719
|
}], focusedDate: [{
|
|
10240
9720
|
type: Input
|
|
10241
9721
|
}], value: [{
|
|
@@ -12221,6 +11701,37 @@ class TimePickerComponent {
|
|
|
12221
11701
|
* Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
|
|
12222
11702
|
*/
|
|
12223
11703
|
this.incompleteDateValidation = false;
|
|
11704
|
+
/**
|
|
11705
|
+
* @hidden
|
|
11706
|
+
*
|
|
11707
|
+
* Determines whether to auto correct invalid segments automatically.
|
|
11708
|
+
* TODO: To be fixed in common package before enabling: https://github.com/telerik/kendo-dateinputs-common/issues/24
|
|
11709
|
+
*
|
|
11710
|
+
* @default true
|
|
11711
|
+
*/
|
|
11712
|
+
this.autoCorrectParts = true;
|
|
11713
|
+
/**
|
|
11714
|
+
* Determines whether to automatically move to the next segment after the user completes the current one.
|
|
11715
|
+
*
|
|
11716
|
+
* @default true
|
|
11717
|
+
*/
|
|
11718
|
+
this.autoSwitchParts = true;
|
|
11719
|
+
/**
|
|
11720
|
+
* A string array representing custom keys, which will move the focus to the next date format segment.
|
|
11721
|
+
*/
|
|
11722
|
+
this.autoSwitchKeys = [];
|
|
11723
|
+
/**
|
|
11724
|
+
* Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
|
|
11725
|
+
*
|
|
11726
|
+
* @default true
|
|
11727
|
+
*/
|
|
11728
|
+
this.enableMouseWheel = true;
|
|
11729
|
+
/**
|
|
11730
|
+
* Determines if the users should see a blinking caret inside the Date Input when possible.
|
|
11731
|
+
*
|
|
11732
|
+
* @default false
|
|
11733
|
+
*/
|
|
11734
|
+
this.allowCaretMode = false;
|
|
12224
11735
|
/**
|
|
12225
11736
|
* Determines whether to display the **Cancel** button in the popup.
|
|
12226
11737
|
*/
|
|
@@ -13070,7 +12581,7 @@ class TimePickerComponent {
|
|
|
13070
12581
|
}
|
|
13071
12582
|
}
|
|
13072
12583
|
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimePickerComponent, deps: [{ token: BusViewService }, { token: i0.NgZone }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i1$2.PopupService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: PickerService }, { token: i1.IntlService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
13073
|
-
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimePickerComponent, selector: "kendo-timepicker", inputs: { focusableId: "focusableId", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", cancelButton: "cancelButton", nowButton: "nowButton", steps: "steps", popupSettings: "popupSettings", tabindex: "tabindex", tabIndex: "tabIndex", title: "title", subtitle: "subtitle", rangeValidation: "rangeValidation", adaptiveMode: "adaptiveMode", value: "value", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-timepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
12584
|
+
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TimePickerComponent, selector: "kendo-timepicker", inputs: { focusableId: "focusableId", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", enableMouseWheel: "enableMouseWheel", allowCaretMode: "allowCaretMode", cancelButton: "cancelButton", nowButton: "nowButton", steps: "steps", popupSettings: "popupSettings", tabindex: "tabindex", tabIndex: "tabIndex", title: "title", subtitle: "subtitle", rangeValidation: "rangeValidation", adaptiveMode: "adaptiveMode", value: "value", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-timepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
13074
12585
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimePickerComponent), multi: true },
|
|
13075
12586
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => TimePickerComponent), multi: true },
|
|
13076
12587
|
{ provide: KendoInput, useExisting: forwardRef(() => TimePickerComponent) },
|
|
@@ -13136,6 +12647,11 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13136
12647
|
[min]="normalizeTime(min)"
|
|
13137
12648
|
[max]="normalizeTime(max)"
|
|
13138
12649
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
12650
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
12651
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
12652
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
12653
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
12654
|
+
[allowCaretMode]="allowCaretMode"
|
|
13139
12655
|
[fillMode]="fillMode"
|
|
13140
12656
|
[rounded]="rounded"
|
|
13141
12657
|
[size]="size"
|
|
@@ -13265,7 +12781,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13265
12781
|
</kendo-timeselector-messages>
|
|
13266
12782
|
</kendo-timeselector>
|
|
13267
12783
|
</ng-template>
|
|
13268
|
-
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "
|
|
12784
|
+
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13269
12785
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
13270
12786
|
type: Component,
|
|
13271
12787
|
args: [{
|
|
@@ -13339,6 +12855,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13339
12855
|
[min]="normalizeTime(min)"
|
|
13340
12856
|
[max]="normalizeTime(max)"
|
|
13341
12857
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
12858
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
12859
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
12860
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
12861
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
12862
|
+
[allowCaretMode]="allowCaretMode"
|
|
13342
12863
|
[fillMode]="fillMode"
|
|
13343
12864
|
[rounded]="rounded"
|
|
13344
12865
|
[size]="size"
|
|
@@ -13507,6 +13028,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13507
13028
|
type: Input
|
|
13508
13029
|
}], incompleteDateValidation: [{
|
|
13509
13030
|
type: Input
|
|
13031
|
+
}], autoCorrectParts: [{
|
|
13032
|
+
type: Input
|
|
13033
|
+
}], autoSwitchParts: [{
|
|
13034
|
+
type: Input
|
|
13035
|
+
}], autoSwitchKeys: [{
|
|
13036
|
+
type: Input
|
|
13037
|
+
}], enableMouseWheel: [{
|
|
13038
|
+
type: Input
|
|
13039
|
+
}], allowCaretMode: [{
|
|
13040
|
+
type: Input
|
|
13510
13041
|
}], cancelButton: [{
|
|
13511
13042
|
type: Input
|
|
13512
13043
|
}], nowButton: [{
|
|
@@ -13719,7 +13250,14 @@ class DateTimePickerComponent {
|
|
|
13719
13250
|
* Configures the incremental steps of the DateInput and the popup component of the TimePicker
|
|
13720
13251
|
* ([see example]({% slug incrementalsteps_datetimepicker %})).
|
|
13721
13252
|
*/
|
|
13722
|
-
this.steps = {
|
|
13253
|
+
this.steps = {
|
|
13254
|
+
second: 1,
|
|
13255
|
+
minute: 1,
|
|
13256
|
+
hour: 1,
|
|
13257
|
+
day: 1,
|
|
13258
|
+
month: 1,
|
|
13259
|
+
year: 1
|
|
13260
|
+
};
|
|
13723
13261
|
/**
|
|
13724
13262
|
* Specifies the Calendar type.
|
|
13725
13263
|
*
|
|
@@ -13758,6 +13296,43 @@ class DateTimePickerComponent {
|
|
|
13758
13296
|
* Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.
|
|
13759
13297
|
*/
|
|
13760
13298
|
this.incompleteDateValidation = false;
|
|
13299
|
+
/**
|
|
13300
|
+
* @hidden
|
|
13301
|
+
*
|
|
13302
|
+
* Determines whether to auto correct invalid segments automatically.
|
|
13303
|
+
* TODO: To be fixed in common package before enabling: https://github.com/telerik/kendo-dateinputs-common/issues/24
|
|
13304
|
+
*
|
|
13305
|
+
* @default true
|
|
13306
|
+
*/
|
|
13307
|
+
this.autoCorrectParts = true;
|
|
13308
|
+
/**
|
|
13309
|
+
* Determines whether to automatically move to the next segment after the user completes the current one.
|
|
13310
|
+
*
|
|
13311
|
+
* @default true
|
|
13312
|
+
*/
|
|
13313
|
+
this.autoSwitchParts = true;
|
|
13314
|
+
/**
|
|
13315
|
+
* A string array representing custom keys, which will move the focus to the next date format segment.
|
|
13316
|
+
*/
|
|
13317
|
+
this.autoSwitchKeys = [];
|
|
13318
|
+
/**
|
|
13319
|
+
* Indicates whether the mouse scroll can be used to increase/decrease the time segments values.
|
|
13320
|
+
*
|
|
13321
|
+
* @default true
|
|
13322
|
+
*/
|
|
13323
|
+
this.enableMouseWheel = true;
|
|
13324
|
+
/**
|
|
13325
|
+
* Determines if the users should see a blinking caret inside the Date Input when possible.
|
|
13326
|
+
*
|
|
13327
|
+
* @default false
|
|
13328
|
+
*/
|
|
13329
|
+
this.allowCaretMode = false;
|
|
13330
|
+
/**
|
|
13331
|
+
* When enabled, the DateTimePicker will autofill the rest of the date to the current date when the component loses focus.
|
|
13332
|
+
*
|
|
13333
|
+
* @default false
|
|
13334
|
+
*/
|
|
13335
|
+
this.autoFill = false;
|
|
13761
13336
|
/**
|
|
13762
13337
|
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
13763
13338
|
*/
|
|
@@ -14810,7 +14385,7 @@ class DateTimePickerComponent {
|
|
|
14810
14385
|
}
|
|
14811
14386
|
}
|
|
14812
14387
|
DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i1$2.PopupService }, { token: i1.IntlService }, { token: i0.ChangeDetectorRef }, { token: PickerService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }, { token: i1$1.LocalizationService }, { token: DisabledDatesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
14813
|
-
DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: { focusableId: "focusableId", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", title: "title", subtitle: "subtitle", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", adaptiveMode: "adaptiveMode", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
14388
|
+
DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: { focusableId: "focusableId", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", title: "title", subtitle: "subtitle", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", autoCorrectParts: "autoCorrectParts", autoSwitchParts: "autoSwitchParts", autoSwitchKeys: "autoSwitchKeys", enableMouseWheel: "enableMouseWheel", allowCaretMode: "allowCaretMode", autoFill: "autoFill", adaptiveMode: "adaptiveMode", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
14814
14389
|
PickerService,
|
|
14815
14390
|
LocalizationService,
|
|
14816
14391
|
DisabledDatesService,
|
|
@@ -14891,6 +14466,12 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14891
14466
|
[min]="min"
|
|
14892
14467
|
[max]="max"
|
|
14893
14468
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
14469
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
14470
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
14471
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
14472
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
14473
|
+
[allowCaretMode]="allowCaretMode"
|
|
14474
|
+
[autoFill]="autoFill"
|
|
14894
14475
|
[formatPlaceholder]="formatPlaceholder"
|
|
14895
14476
|
[placeholder]="placeholder"
|
|
14896
14477
|
[disabled]="disabled"
|
|
@@ -15170,7 +14751,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
15170
14751
|
</div>
|
|
15171
14752
|
</div>
|
|
15172
14753
|
</ng-template>
|
|
15173
|
-
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "
|
|
14754
|
+
`, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15174
14755
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
15175
14756
|
type: Component,
|
|
15176
14757
|
args: [{
|
|
@@ -15259,6 +14840,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15259
14840
|
[min]="min"
|
|
15260
14841
|
[max]="max"
|
|
15261
14842
|
[incompleteDateValidation]="incompleteDateValidation"
|
|
14843
|
+
[autoCorrectParts]="autoCorrectParts"
|
|
14844
|
+
[autoSwitchParts]="autoSwitchParts"
|
|
14845
|
+
[autoSwitchKeys]="autoSwitchKeys"
|
|
14846
|
+
[enableMouseWheel]="enableMouseWheel"
|
|
14847
|
+
[allowCaretMode]="allowCaretMode"
|
|
14848
|
+
[autoFill]="autoFill"
|
|
15262
14849
|
[formatPlaceholder]="formatPlaceholder"
|
|
15263
14850
|
[placeholder]="placeholder"
|
|
15264
14851
|
[disabled]="disabled"
|
|
@@ -15605,6 +15192,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15605
15192
|
type: Input
|
|
15606
15193
|
}], incompleteDateValidation: [{
|
|
15607
15194
|
type: Input
|
|
15195
|
+
}], autoCorrectParts: [{
|
|
15196
|
+
type: Input
|
|
15197
|
+
}], autoSwitchParts: [{
|
|
15198
|
+
type: Input
|
|
15199
|
+
}], autoSwitchKeys: [{
|
|
15200
|
+
type: Input
|
|
15201
|
+
}], enableMouseWheel: [{
|
|
15202
|
+
type: Input
|
|
15203
|
+
}], allowCaretMode: [{
|
|
15204
|
+
type: Input
|
|
15205
|
+
}], autoFill: [{
|
|
15206
|
+
type: Input
|
|
15608
15207
|
}], adaptiveMode: [{
|
|
15609
15208
|
type: Input
|
|
15610
15209
|
}], valueChange: [{
|