@auth0/quantum-product 2.5.7 → 2.5.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/date-picker/date-picker-classes.d.ts +10 -0
- package/date-picker/date-picker-classes.js +21 -0
- package/date-picker/date-picker-context.d.ts +10 -0
- package/date-picker/date-picker-context.js +36 -0
- package/date-picker/date-picker-popover.d.ts +4 -0
- package/date-picker/date-picker-popover.js +458 -0
- package/date-picker/date-picker-state.d.ts +24 -0
- package/date-picker/date-picker-state.js +95 -0
- package/date-picker/date-picker-types.d.ts +43 -0
- package/date-picker/date-picker-types.js +2 -0
- package/date-picker/date-picker-utils.d.ts +47 -0
- package/date-picker/date-picker-utils.js +165 -0
- package/date-picker/date-picker.d.ts +9 -0
- package/date-picker/date-picker.js +164 -0
- package/date-picker/index.d.ts +11 -0
- package/date-picker/index.js +17 -0
- package/esm/date-picker/date-picker-classes.js +16 -0
- package/esm/date-picker/date-picker-context.js +9 -0
- package/esm/date-picker/date-picker-popover.js +429 -0
- package/esm/date-picker/date-picker-state.js +66 -0
- package/esm/date-picker/date-picker-types.js +1 -0
- package/esm/date-picker/date-picker-utils.js +153 -0
- package/esm/date-picker/date-picker.js +135 -0
- package/esm/date-picker/index.js +5 -0
- package/esm/icon/index.js +3 -1
- package/esm/icon-button/icon-button.js +14 -3
- package/esm/index.js +1 -0
- package/esm/stepper/step-label/step-label.js +19 -3
- package/icon/index.d.ts +2 -0
- package/icon/index.js +8 -6
- package/icon-button/icon-button.d.ts +3 -0
- package/icon-button/icon-button.js +14 -3
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +3 -2
- package/stepper/step-label/step-label.js +18 -2
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IPopoverProps } from '../popover';
|
|
3
|
+
import { DatePickerClasses, DatePickerPopoverClasses } from './date-picker-classes';
|
|
4
|
+
export interface DateOption {
|
|
5
|
+
text: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IDatePickerBaseProps {
|
|
9
|
+
value?: string;
|
|
10
|
+
onChange?: (value: string) => void;
|
|
11
|
+
dateFormat?: string;
|
|
12
|
+
timeFormat?: string;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
fullWidth?: boolean;
|
|
16
|
+
size?: 'small' | 'medium';
|
|
17
|
+
readOnly?: boolean;
|
|
18
|
+
required?: boolean;
|
|
19
|
+
error?: boolean;
|
|
20
|
+
helperText?: React.ReactNode;
|
|
21
|
+
options?: DateOption[];
|
|
22
|
+
isRangeSelection?: boolean;
|
|
23
|
+
showTwoMonths?: boolean;
|
|
24
|
+
showTimeInput?: boolean;
|
|
25
|
+
allowTimestampPasting?: boolean;
|
|
26
|
+
timestampUnit?: 'ms' | 's';
|
|
27
|
+
classes?: Partial<DatePickerClasses>;
|
|
28
|
+
}
|
|
29
|
+
export interface IDatePickerPopoverProps {
|
|
30
|
+
anchorEl: HTMLElement | null;
|
|
31
|
+
open: boolean;
|
|
32
|
+
onClose: () => void;
|
|
33
|
+
onDateSelect: (date: string, shouldClose?: boolean) => void;
|
|
34
|
+
options?: DateOption[];
|
|
35
|
+
value?: string;
|
|
36
|
+
dateFormat?: string;
|
|
37
|
+
timeFormat?: string;
|
|
38
|
+
PopoverProps?: Partial<IPopoverProps>;
|
|
39
|
+
showTwoMonths?: boolean;
|
|
40
|
+
isRangeSelection?: boolean;
|
|
41
|
+
showTimeInput?: boolean;
|
|
42
|
+
classes?: Partial<DatePickerPopoverClasses>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a date object using the specified format string
|
|
3
|
+
*/
|
|
4
|
+
export declare const formatDate: (date: Date, formatString: string) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Parses a date string using the specified format
|
|
7
|
+
*/
|
|
8
|
+
export declare const parseDate: (dateString: string, formatString: string, referenceDate?: Date) => Date | null;
|
|
9
|
+
/**
|
|
10
|
+
* Try to parse a date string using multiple formats
|
|
11
|
+
*/
|
|
12
|
+
export declare const tryParseDate: (dateString: string, formatStrings: string[], referenceDate?: Date) => Date | null;
|
|
13
|
+
/**
|
|
14
|
+
* Handles parsing a timestamp (number) into a Date
|
|
15
|
+
*/
|
|
16
|
+
export declare const parseTimestamp: (timestamp: number, unit?: 'ms' | 's') => Date | null;
|
|
17
|
+
/**
|
|
18
|
+
* Parses a date range string (format: "start - end")
|
|
19
|
+
*/
|
|
20
|
+
export declare const parseDateRange: (rangeString: string, dateFormat: string, timeFormat?: string) => {
|
|
21
|
+
from: Date | null;
|
|
22
|
+
to: Date | null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Format a date range as a string
|
|
26
|
+
*/
|
|
27
|
+
export declare const formatDateRange: (from: Date | null, to: Date | null, dateFormat: string, timeFormat?: string) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Extract time components from a date
|
|
30
|
+
*/
|
|
31
|
+
export declare const extractTimeComponents: (date: Date) => {
|
|
32
|
+
hours: string;
|
|
33
|
+
minutes: string;
|
|
34
|
+
seconds: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Apply time components to a date
|
|
38
|
+
*/
|
|
39
|
+
export declare const applyTimeToDate: (date: Date, time: {
|
|
40
|
+
hours: string;
|
|
41
|
+
minutes: string;
|
|
42
|
+
seconds: string;
|
|
43
|
+
}) => Date;
|
|
44
|
+
/**
|
|
45
|
+
* Safely parses a value that might be a timestamp or a date string
|
|
46
|
+
*/
|
|
47
|
+
export declare const parseSmartDate: (value: string, dateFormat: string, timeFormat?: string) => Date | null;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.parseSmartDate = exports.applyTimeToDate = exports.extractTimeComponents = exports.formatDateRange = exports.parseDateRange = exports.parseTimestamp = exports.tryParseDate = exports.parseDate = exports.formatDate = void 0;
|
|
31
|
+
var date_fns_1 = require("date-fns");
|
|
32
|
+
/**
|
|
33
|
+
* Formats a date object using the specified format string
|
|
34
|
+
*/
|
|
35
|
+
var formatDate = function (date, formatString) {
|
|
36
|
+
return (0, date_fns_1.format)(date, formatString);
|
|
37
|
+
};
|
|
38
|
+
exports.formatDate = formatDate;
|
|
39
|
+
/**
|
|
40
|
+
* Parses a date string using the specified format
|
|
41
|
+
*/
|
|
42
|
+
var parseDate = function (dateString, formatString, referenceDate) {
|
|
43
|
+
if (referenceDate === void 0) { referenceDate = new Date(); }
|
|
44
|
+
try {
|
|
45
|
+
var parsed = (0, date_fns_1.parse)(dateString, formatString, referenceDate);
|
|
46
|
+
return (0, date_fns_1.isValid)(parsed) ? parsed : null;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.parseDate = parseDate;
|
|
53
|
+
/**
|
|
54
|
+
* Try to parse a date string using multiple formats
|
|
55
|
+
*/
|
|
56
|
+
var tryParseDate = function (dateString, formatStrings, referenceDate) {
|
|
57
|
+
var e_1, _a;
|
|
58
|
+
if (referenceDate === void 0) { referenceDate = new Date(); }
|
|
59
|
+
try {
|
|
60
|
+
for (var formatStrings_1 = __values(formatStrings), formatStrings_1_1 = formatStrings_1.next(); !formatStrings_1_1.done; formatStrings_1_1 = formatStrings_1.next()) {
|
|
61
|
+
var formatString = formatStrings_1_1.value;
|
|
62
|
+
var parsed = (0, exports.parseDate)(dateString, formatString, referenceDate);
|
|
63
|
+
if (parsed) {
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
69
|
+
finally {
|
|
70
|
+
try {
|
|
71
|
+
if (formatStrings_1_1 && !formatStrings_1_1.done && (_a = formatStrings_1.return)) _a.call(formatStrings_1);
|
|
72
|
+
}
|
|
73
|
+
finally { if (e_1) throw e_1.error; }
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
};
|
|
77
|
+
exports.tryParseDate = tryParseDate;
|
|
78
|
+
/**
|
|
79
|
+
* Handles parsing a timestamp (number) into a Date
|
|
80
|
+
*/
|
|
81
|
+
var parseTimestamp = function (timestamp, unit) {
|
|
82
|
+
if (unit === void 0) { unit = 'ms'; }
|
|
83
|
+
try {
|
|
84
|
+
var date = new Date(unit === 's' ? timestamp * 1000 : timestamp);
|
|
85
|
+
return (0, date_fns_1.isValid)(date) ? date : null;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.parseTimestamp = parseTimestamp;
|
|
92
|
+
/**
|
|
93
|
+
* Parses a date range string (format: "start - end")
|
|
94
|
+
*/
|
|
95
|
+
var parseDateRange = function (rangeString, dateFormat, timeFormat) {
|
|
96
|
+
if (!rangeString.includes('-')) {
|
|
97
|
+
return { from: null, to: null };
|
|
98
|
+
}
|
|
99
|
+
var _a = __read(rangeString.split('-').map(function (s) { return s.trim(); }), 2), fromStr = _a[0], toStr = _a[1];
|
|
100
|
+
var fullFormat = timeFormat ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
101
|
+
var from = (0, exports.parseDate)(fromStr, fullFormat);
|
|
102
|
+
var to = (0, exports.parseDate)(toStr, fullFormat);
|
|
103
|
+
if (!from) {
|
|
104
|
+
from = (0, exports.parseDate)(fromStr, dateFormat);
|
|
105
|
+
}
|
|
106
|
+
if (!to) {
|
|
107
|
+
to = (0, exports.parseDate)(toStr, dateFormat);
|
|
108
|
+
}
|
|
109
|
+
return { from: from, to: to };
|
|
110
|
+
};
|
|
111
|
+
exports.parseDateRange = parseDateRange;
|
|
112
|
+
/**
|
|
113
|
+
* Format a date range as a string
|
|
114
|
+
*/
|
|
115
|
+
var formatDateRange = function (from, to, dateFormat, timeFormat) {
|
|
116
|
+
if (!from)
|
|
117
|
+
return '';
|
|
118
|
+
var formatString = timeFormat ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
119
|
+
if (!to) {
|
|
120
|
+
return (0, exports.formatDate)(from, formatString);
|
|
121
|
+
}
|
|
122
|
+
return "".concat((0, exports.formatDate)(from, formatString), " - ").concat((0, exports.formatDate)(to, formatString));
|
|
123
|
+
};
|
|
124
|
+
exports.formatDateRange = formatDateRange;
|
|
125
|
+
/**
|
|
126
|
+
* Extract time components from a date
|
|
127
|
+
*/
|
|
128
|
+
var extractTimeComponents = function (date) {
|
|
129
|
+
return {
|
|
130
|
+
hours: (0, exports.formatDate)(date, 'HH'),
|
|
131
|
+
minutes: (0, exports.formatDate)(date, 'mm'),
|
|
132
|
+
seconds: (0, exports.formatDate)(date, 'ss'),
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
exports.extractTimeComponents = extractTimeComponents;
|
|
136
|
+
/**
|
|
137
|
+
* Apply time components to a date
|
|
138
|
+
*/
|
|
139
|
+
var applyTimeToDate = function (date, time) {
|
|
140
|
+
var newDate = new Date(date);
|
|
141
|
+
newDate.setHours(parseInt(time.hours, 10) || 0);
|
|
142
|
+
newDate.setMinutes(parseInt(time.minutes, 10) || 0);
|
|
143
|
+
newDate.setSeconds(parseInt(time.seconds, 10) || 0);
|
|
144
|
+
return newDate;
|
|
145
|
+
};
|
|
146
|
+
exports.applyTimeToDate = applyTimeToDate;
|
|
147
|
+
/**
|
|
148
|
+
* Safely parses a value that might be a timestamp or a date string
|
|
149
|
+
*/
|
|
150
|
+
var parseSmartDate = function (value, dateFormat, timeFormat) {
|
|
151
|
+
var timestamp = parseInt(value, 10);
|
|
152
|
+
if (!isNaN(timestamp)) {
|
|
153
|
+
var date = (0, exports.parseTimestamp)(timestamp);
|
|
154
|
+
if (date)
|
|
155
|
+
return date;
|
|
156
|
+
}
|
|
157
|
+
if (timeFormat) {
|
|
158
|
+
var fullFormat = "".concat(dateFormat, " ").concat(timeFormat);
|
|
159
|
+
var date = (0, exports.parseDate)(value, fullFormat);
|
|
160
|
+
if (date)
|
|
161
|
+
return date;
|
|
162
|
+
}
|
|
163
|
+
return (0, exports.parseDate)(value, dateFormat);
|
|
164
|
+
};
|
|
165
|
+
exports.parseSmartDate = parseSmartDate;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ITextFieldProps } from '../text-field';
|
|
3
|
+
import { IDatePickerStateValue } from './date-picker-state';
|
|
4
|
+
import { IDatePickerBaseProps } from './date-picker-types';
|
|
5
|
+
export interface IDatePickerProps extends IDatePickerBaseProps {
|
|
6
|
+
TextFieldProps?: Partial<ITextFieldProps>;
|
|
7
|
+
state?: IDatePickerStateValue;
|
|
8
|
+
}
|
|
9
|
+
export declare const DatePicker: React.ForwardRefExoticComponent<IDatePickerProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
47
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
48
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
49
|
+
if (!m) return o;
|
|
50
|
+
var i = m.call(o), r, ar = [], e;
|
|
51
|
+
try {
|
|
52
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
53
|
+
}
|
|
54
|
+
catch (error) { e = { error: error }; }
|
|
55
|
+
finally {
|
|
56
|
+
try {
|
|
57
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
58
|
+
}
|
|
59
|
+
finally { if (e) throw e.error; }
|
|
60
|
+
}
|
|
61
|
+
return ar;
|
|
62
|
+
};
|
|
63
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
64
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
65
|
+
};
|
|
66
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
+
exports.DatePicker = void 0;
|
|
68
|
+
var React = __importStar(require("react"));
|
|
69
|
+
var icon_1 = require("../icon");
|
|
70
|
+
var styled_1 = require("../styled");
|
|
71
|
+
var classes_1 = require("../styles/classes");
|
|
72
|
+
var text_field_1 = require("../text-field");
|
|
73
|
+
var clsx_1 = __importDefault(require("../utils/clsx"));
|
|
74
|
+
var date_picker_classes_1 = require("./date-picker-classes");
|
|
75
|
+
var date_picker_context_1 = require("./date-picker-context");
|
|
76
|
+
var date_picker_popover_1 = require("./date-picker-popover");
|
|
77
|
+
var date_picker_state_1 = require("./date-picker-state");
|
|
78
|
+
var date_picker_utils_1 = require("./date-picker-utils");
|
|
79
|
+
var Root = (0, styled_1.styled)('div', { name: date_picker_classes_1.datePickerComponentName, slot: 'Root' })({
|
|
80
|
+
position: 'relative',
|
|
81
|
+
width: '100%',
|
|
82
|
+
});
|
|
83
|
+
exports.DatePicker = React.forwardRef(function (props, ref) {
|
|
84
|
+
var value = props.value, onChange = props.onChange, _a = props.dateFormat, dateFormat = _a === void 0 ? 'MM/dd/yyyy' : _a, _b = props.timeFormat, timeFormat = _b === void 0 ? 'HH:mm:ss' : _b, _c = props.placeholder, placeholder = _c === void 0 ? dateFormat + (props.showTimeInput ? ' ' + timeFormat : '') : _c, _d = props.disabled, disabled = _d === void 0 ? false : _d, _e = props.fullWidth, fullWidth = _e === void 0 ? false : _e, _f = props.size, size = _f === void 0 ? 'medium' : _f, _g = props.readOnly, readOnly = _g === void 0 ? false : _g, _h = props.required, required = _h === void 0 ? false : _h, _j = props.error, error = _j === void 0 ? false : _j, helperText = props.helperText, options = props.options, _k = props.isRangeSelection, isRangeSelection = _k === void 0 ? false : _k, _l = props.showTwoMonths, showTwoMonths = _l === void 0 ? false : _l, _m = props.showTimeInput, showTimeInput = _m === void 0 ? false : _m, _o = props.allowTimestampPasting, allowTimestampPasting = _o === void 0 ? false : _o, _p = props.timestampUnit, timestampUnit = _p === void 0 ? 'ms' : _p, _q = props.TextFieldProps, TextFieldProps = _q === void 0 ? {} : _q, propClasses = props.classes, externalState = props.state, rootProps = __rest(props, ["value", "onChange", "dateFormat", "timeFormat", "placeholder", "disabled", "fullWidth", "size", "readOnly", "required", "error", "helperText", "options", "isRangeSelection", "showTwoMonths", "showTimeInput", "allowTimestampPasting", "timestampUnit", "TextFieldProps", "classes", "state"]);
|
|
85
|
+
var classes = (0, classes_1.useMergedClasses)(date_picker_classes_1.datePickerClasses, date_picker_classes_1.getDatePickerUtilityClass, propClasses);
|
|
86
|
+
var internalState = (0, date_picker_state_1.useDatePickerState)();
|
|
87
|
+
var _r = externalState || internalState, triggerProps = _r.triggerProps, popoverProps = _r.popoverProps;
|
|
88
|
+
var _s = __read(React.useState(value || ''), 2), displayValue = _s[0], setDisplayValue = _s[1];
|
|
89
|
+
var inputRef = React.useRef(null);
|
|
90
|
+
React.useEffect(function () {
|
|
91
|
+
setDisplayValue(value || '');
|
|
92
|
+
}, [value]);
|
|
93
|
+
var handleDateSelect = function (newValue, shouldClose) {
|
|
94
|
+
if (shouldClose === void 0) { shouldClose = true; }
|
|
95
|
+
setDisplayValue(newValue);
|
|
96
|
+
if (onChange) {
|
|
97
|
+
onChange(newValue);
|
|
98
|
+
}
|
|
99
|
+
if (shouldClose) {
|
|
100
|
+
popoverProps.onClose();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var handlePaste = function (event) {
|
|
104
|
+
if (!allowTimestampPasting)
|
|
105
|
+
return;
|
|
106
|
+
var pastedText = event.clipboardData.getData('text');
|
|
107
|
+
var timestamp = parseInt(pastedText, 10);
|
|
108
|
+
if (!isNaN(timestamp)) {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
var date = (0, date_picker_utils_1.parseTimestamp)(timestamp, timestampUnit);
|
|
111
|
+
if (date) {
|
|
112
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
113
|
+
var formattedDate = (0, date_picker_utils_1.formatDate)(date, formatString);
|
|
114
|
+
setDisplayValue(formattedDate);
|
|
115
|
+
if (onChange) {
|
|
116
|
+
onChange(formattedDate);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
var handleInputChange = function (event) {
|
|
122
|
+
var newValue = event.target.value;
|
|
123
|
+
setDisplayValue(newValue);
|
|
124
|
+
if (newValue === '') {
|
|
125
|
+
if (onChange) {
|
|
126
|
+
onChange('');
|
|
127
|
+
}
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (isRangeSelection) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
134
|
+
var date = (0, date_picker_utils_1.parseDate)(newValue, formatString);
|
|
135
|
+
if (date) {
|
|
136
|
+
var formattedDate = (0, date_picker_utils_1.formatDate)(date, formatString);
|
|
137
|
+
if (onChange) {
|
|
138
|
+
onChange(formattedDate);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
var ownerState = {
|
|
143
|
+
size: size,
|
|
144
|
+
isRangeSelection: isRangeSelection,
|
|
145
|
+
showTimeInput: showTimeInput,
|
|
146
|
+
};
|
|
147
|
+
return (React.createElement(date_picker_context_1.DatePickerContext.Provider, { value: {
|
|
148
|
+
dateFormat: dateFormat,
|
|
149
|
+
timeFormat: timeFormat,
|
|
150
|
+
onSelectDate: handleDateSelect,
|
|
151
|
+
isRangeSelection: isRangeSelection,
|
|
152
|
+
showTimeInput: showTimeInput,
|
|
153
|
+
} },
|
|
154
|
+
React.createElement(Root, __assign({ ref: ref, className: (0, clsx_1.default)(classes.root), ownerState: ownerState }, rootProps),
|
|
155
|
+
React.createElement(text_field_1.TextField, __assign({ value: displayValue, onChange: handleInputChange, onPaste: handlePaste, placeholder: placeholder, disabled: disabled, fullWidth: fullWidth, size: size, readOnly: readOnly, required: required, error: error, helperText: helperText, inputRef: inputRef, endAdornment: React.createElement(icon_1.CalendarIcon, null), className: classes.input }, triggerProps, { onClick: function (e) {
|
|
156
|
+
if (!disabled && !readOnly) {
|
|
157
|
+
triggerProps.onClick(e);
|
|
158
|
+
}
|
|
159
|
+
if (TextFieldProps.onClick) {
|
|
160
|
+
TextFieldProps.onClick(e);
|
|
161
|
+
}
|
|
162
|
+
} }, TextFieldProps)),
|
|
163
|
+
React.createElement(date_picker_popover_1.DatePickerPopover, __assign({}, popoverProps, { onDateSelect: handleDateSelect, options: options, value: displayValue, dateFormat: dateFormat, timeFormat: timeFormat, showTwoMonths: showTwoMonths, isRangeSelection: isRangeSelection, showTimeInput: showTimeInput })))));
|
|
164
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { DatePicker } from './date-picker';
|
|
2
|
+
export type { IDatePickerProps } from './date-picker';
|
|
3
|
+
export { DatePickerPopover } from './date-picker-popover';
|
|
4
|
+
export type { IDatePickerPopoverProps } from './date-picker-types';
|
|
5
|
+
export { DatePickerContext, useDatePickerContext } from './date-picker-context';
|
|
6
|
+
export type { IDatePickerContextValue } from './date-picker-context';
|
|
7
|
+
export { DatePickerStateProvider, useDatePickerState, useDatePickerStateContext } from './date-picker-state';
|
|
8
|
+
export type { IDatePickerStateProps, IDatePickerStateValue, IDatePickerTriggerProps } from './date-picker-state';
|
|
9
|
+
export { datePickerClasses, datePickerPopoverClasses } from './date-picker-classes';
|
|
10
|
+
export type { DatePickerClasses, DatePickerPopoverClasses } from './date-picker-classes';
|
|
11
|
+
export type { DateOption, IDatePickerBaseProps } from './date-picker-types';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.datePickerPopoverClasses = exports.datePickerClasses = exports.useDatePickerStateContext = exports.useDatePickerState = exports.DatePickerStateProvider = exports.useDatePickerContext = exports.DatePickerContext = exports.DatePickerPopover = exports.DatePicker = void 0;
|
|
4
|
+
var date_picker_1 = require("./date-picker");
|
|
5
|
+
Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return date_picker_1.DatePicker; } });
|
|
6
|
+
var date_picker_popover_1 = require("./date-picker-popover");
|
|
7
|
+
Object.defineProperty(exports, "DatePickerPopover", { enumerable: true, get: function () { return date_picker_popover_1.DatePickerPopover; } });
|
|
8
|
+
var date_picker_context_1 = require("./date-picker-context");
|
|
9
|
+
Object.defineProperty(exports, "DatePickerContext", { enumerable: true, get: function () { return date_picker_context_1.DatePickerContext; } });
|
|
10
|
+
Object.defineProperty(exports, "useDatePickerContext", { enumerable: true, get: function () { return date_picker_context_1.useDatePickerContext; } });
|
|
11
|
+
var date_picker_state_1 = require("./date-picker-state");
|
|
12
|
+
Object.defineProperty(exports, "DatePickerStateProvider", { enumerable: true, get: function () { return date_picker_state_1.DatePickerStateProvider; } });
|
|
13
|
+
Object.defineProperty(exports, "useDatePickerState", { enumerable: true, get: function () { return date_picker_state_1.useDatePickerState; } });
|
|
14
|
+
Object.defineProperty(exports, "useDatePickerStateContext", { enumerable: true, get: function () { return date_picker_state_1.useDatePickerStateContext; } });
|
|
15
|
+
var date_picker_classes_1 = require("./date-picker-classes");
|
|
16
|
+
Object.defineProperty(exports, "datePickerClasses", { enumerable: true, get: function () { return date_picker_classes_1.datePickerClasses; } });
|
|
17
|
+
Object.defineProperty(exports, "datePickerPopoverClasses", { enumerable: true, get: function () { return date_picker_classes_1.datePickerPopoverClasses; } });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { generateUtilityClass, generateUtilityClasses } from '../styles/classes';
|
|
2
|
+
export var datePickerComponentName = 'QuantumDatePicker';
|
|
3
|
+
export var datePickerPopoverComponentName = 'QuantumDatePickerPopover';
|
|
4
|
+
export function getDatePickerUtilityClass(slot) {
|
|
5
|
+
return generateUtilityClass(datePickerComponentName, slot);
|
|
6
|
+
}
|
|
7
|
+
export function getDatePickerPopoverUtilityClass(slot) {
|
|
8
|
+
return generateUtilityClass(datePickerPopoverComponentName, slot);
|
|
9
|
+
}
|
|
10
|
+
export var datePickerClasses = generateUtilityClasses(datePickerComponentName, ['root', 'input']);
|
|
11
|
+
export var datePickerPopoverClasses = generateUtilityClasses(datePickerPopoverComponentName, [
|
|
12
|
+
'root',
|
|
13
|
+
'content',
|
|
14
|
+
'calendarWrapper',
|
|
15
|
+
'buttonContainer',
|
|
16
|
+
]);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export var DatePickerContext = React.createContext({
|
|
3
|
+
dateFormat: 'MM/dd/yyyy',
|
|
4
|
+
timeFormat: 'HH:mm:ss',
|
|
5
|
+
onSelectDate: function () { return undefined; },
|
|
6
|
+
isRangeSelection: false,
|
|
7
|
+
showTimeInput: false,
|
|
8
|
+
});
|
|
9
|
+
export var useDatePickerContext = function () { return React.useContext(DatePickerContext); };
|