fuse-importer 0.0.6-testing → 0.0.7-testing

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.
@@ -44,7 +44,7 @@ var ImporterDropzone = function () {
44
44
  var _a = useUploaderContext(), setIsUploading = _a.setIsUploading, setFileName = _a.setFileName;
45
45
  var setUploadedData = useImporterContext().setUploadedData;
46
46
  var validHeadersCount = function (headersLength) {
47
- var headersCountLimit = 60;
47
+ var headersCountLimit = 70;
48
48
  if (headersLength > headersCountLimit) {
49
49
  addToast("File cannot contain more than ".concat(headersCountLimit, " columns"), "error");
50
50
  return false;
@@ -81,7 +81,12 @@ var stringFieldTransformations = {
81
81
  };
82
82
  var datesDateTimesAndTimesTransformations = {
83
83
  autoformat: function (fieldValue, _, fieldOptions) {
84
- var JSDate = new Date(fieldValue);
84
+ var cleanFieldValue = fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.replace(/"/g, "");
85
+ var normalizedFieldValue = cleanFieldValue === null || cleanFieldValue === void 0 ? void 0 : cleanFieldValue.replace(/-/g, "/");
86
+ var isUnixTimestamp = /^\d+$/.test(normalizedFieldValue);
87
+ var JSDate = isUnixTimestamp
88
+ ? new Date(Number(normalizedFieldValue))
89
+ : new Date(normalizedFieldValue);
85
90
  var pattern = fieldOptions === null || fieldOptions === void 0 ? void 0 : fieldOptions.pattern;
86
91
  var defaultObj = {
87
92
  transformationWasNeeded: false,
@@ -1,5 +1,5 @@
1
1
  import { Field, FieldValidation, Record } from "../../../../types";
2
- export type FieldValidator = (field: Field, fieldValue: any, validation?: FieldValidation, data?: Record[]) => null | string;
2
+ export type FieldValidator = (field: Field, fieldValue: any, validation?: FieldValidation, data?: Record[], customErrorMessage?: string) => null | string;
3
3
  export type FieldValidations = Partial<{
4
4
  [key: string]: FieldValidator;
5
5
  }>;
@@ -85,7 +85,12 @@ export var fieldValidations = {
85
85
  if (!isNullOrUndefined(field.pattern) &&
86
86
  !isNullOrUndefined(fieldValue) &&
87
87
  !DateTime.fromFormat(fieldValue, field.pattern).isValid) {
88
- return "".concat(field.label, " must match the pattern ").concat(field.pattern);
88
+ var randomDate = DateTime.fromISO("1990-01-15T14:35:55.150");
89
+ var transformedValue = randomDate === null || randomDate === void 0 ? void 0 : randomDate.toFormat(field.pattern);
90
+ var defaultMessage = "".concat(field.label, " must match the pattern ").concat(field.pattern);
91
+ return transformedValue
92
+ ? "Must be formatted as \"".concat(field.pattern, "\" (e.g. ").concat(transformedValue, ")")
93
+ : defaultMessage;
89
94
  }
90
95
  },
91
96
  unique_case_sensitive: function (field, fieldValue, validator, data) {
@@ -13,7 +13,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
13
13
  import { colors, Div, Modal, Button } from "../";
14
14
  export var ConfirmationModal = function (_a) {
15
15
  var isOpen = _a.isOpen, handleClose = _a.handleClose, onSubmit = _a.onSubmit, title = _a.title, description = _a.description, buttonText = _a.buttonText, _b = _a.icon, icon = _b === void 0 ? null : _b, _c = _a.hasCancelButton, hasCancelButton = _c === void 0 ? true : _c;
16
- var headerUI = (_jsxs(Div, { children: [icon && (_jsx(Div, __assign({ centered: true, mb: 20 }, { children: icon }))), _jsx(Div, __assign({ mb: 12 }, { children: _jsx(Div, __assign({ h5: true, dflex: true, centered: true }, { children: title })) }))] }));
16
+ var headerUI = (_jsxs(Div, { children: [icon && (_jsx(Div, __assign({ centered: true, mb: 20 }, { children: icon }))), _jsx(Div, __assign({ mb: 16 }, { children: _jsx(Div, __assign({ h5: true, dflex: true, centered: true }, { children: title })) }))] }));
17
17
  var bodyUI = (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ c: colors.gray800, body1: true, flexColumn: true, centered: true }, { children: description })), _jsxs(Div, __assign({ mt: 40, dflex: true, centered: true }, { children: [hasCancelButton && (_jsx(Button, __assign({ variant: "secondary", mr: 16, w: 104, onClick: handleClose }, { children: "Cancel" }))), _jsx(Button, __assign({ w: 135, onClick: onSubmit }, { children: buttonText }))] }))] }));
18
18
  return (_jsx(_Fragment, { children: _jsx(Modal, __assign({ isOpen: isOpen, onClose: handleClose }, { children: _jsxs(Div, __assign({ p: "48px 56px" }, { children: [headerUI, bodyUI] })) })) }));
19
19
  };
@@ -19,12 +19,12 @@ import { Div } from "../styled/utils";
19
19
  import { closeIcon } from "./icons";
20
20
  export var ModalContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"], ["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"])));
21
21
  export var ModalBackdrop = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"], ["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"])));
22
- export var ModalWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"], ["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"])), function (props) { return props.theme.colors.white; });
22
+ export var ModalWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n padding: 32px 56px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"], ["\n background: ", ";\n padding: 32px 56px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"])), function (props) { return props.theme.colors.white; });
23
23
  export var ModalCloseIcon = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"], ["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"])));
24
24
  export var Modal = function (_a) {
25
25
  var _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, _c = _a.onClose, onClose = _c === void 0 ? null : _c, children = _a.children, _d = _a.withCloseIcon, withCloseIcon = _d === void 0 ? true : _d, _e = _a.withBackdropClose, withBackdropClose = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f, testId = _a.testId;
26
26
  function renderModal() {
27
- return (_jsxs(Div, __assign({ className: className, "data-testid": testId }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -5, mr: -5, w: "25px", h: "25px", onClick: onClose }, { children: closeIcon })) })), children] }) })] })));
27
+ return (_jsxs(Div, __assign({ className: className, "data-testid": testId }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -10, mr: -20, w: "25px", h: "25px", onClick: onClose }, { children: closeIcon })) })), children] }) })] })));
28
28
  }
29
29
  return _jsx(_Fragment, { children: isOpen && renderModal() });
30
30
  };
@@ -14,7 +14,7 @@ var __assign = (this && this.__assign) || function () {
14
14
  return __assign.apply(this, arguments);
15
15
  };
16
16
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
- import { useEffect, useMemo } from "react";
17
+ import { useEffect, useMemo, useRef } from "react";
18
18
  import { useTranslation } from "react-i18next";
19
19
  import styled from "styled-components";
20
20
  import { useSpreadsheetContext } from "../../../Importer";
@@ -42,6 +42,7 @@ var Tooltip = function (_a) {
42
42
  export var TransformedRecordsCount = function () {
43
43
  var _a = useSpreadsheetContext(), data = _a.data, isTransformTooltipOpened = _a.isTransformTooltipOpened, setIsTransformTooltipOpened = _a.setIsTransformTooltipOpened;
44
44
  var t = useTranslation("review").t;
45
+ var tooltipWasAlreadyOpened = useRef(false);
45
46
  var transformedRecordsCount = useMemo(function () {
46
47
  var _a;
47
48
  var counter = 0;
@@ -55,13 +56,16 @@ export var TransformedRecordsCount = function () {
55
56
  return counter;
56
57
  }, [data]);
57
58
  useEffect(function () {
59
+ if (tooltipWasAlreadyOpened.current)
60
+ return;
58
61
  if (transformedRecordsCount > 0 && !isTransformTooltipOpened) {
59
62
  setIsTransformTooltipOpened(true);
63
+ tooltipWasAlreadyOpened.current = true;
60
64
  }
61
65
  }, [transformedRecordsCount]);
62
66
  var handleCloseTooltip = function () {
63
67
  setIsTransformTooltipOpened(false);
64
68
  };
65
- return (_jsx(_Fragment, { children: transformedRecordsCount ? (_jsxs(RecordsCountContainer, { children: [_jsxs(Counter, __assign({ body1: true }, { children: [_jsxs(Div, __assign({ bold: true, mr: 4, "data-cy": "transformations-counter" }, { children: [formatToLocaleString(transformedRecordsCount), " "] })), t("table_actions.transformed_records.auto_corrections_done")] })), isTransformTooltipOpened && (_jsx(Tooltip, { recordsCount: transformedRecordsCount, onClose: handleCloseTooltip }))] })) : null }));
69
+ return (_jsx(_Fragment, { children: isTransformTooltipOpened && transformedRecordsCount ? (_jsxs(RecordsCountContainer, { children: [_jsxs(Counter, __assign({ body1: true }, { children: [_jsxs(Div, __assign({ bold: true, mr: 4, "data-cy": "transformations-counter" }, { children: [formatToLocaleString(transformedRecordsCount), " "] })), t("table_actions.transformed_records.auto_corrections_done")] })), isTransformTooltipOpened && (_jsx(Tooltip, { recordsCount: transformedRecordsCount, onClose: handleCloseTooltip }))] })) : null }));
66
70
  };
67
71
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const CustomScrollbarsVirtualList: import("react").ForwardRefExoticComponent<Pick<any, string | number | symbol> & import("react").RefAttributes<unknown>>;
@@ -0,0 +1,34 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ var __assign = (this && this.__assign) || function () {
6
+ __assign = Object.assign || function(t) {
7
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
8
+ s = arguments[i];
9
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10
+ t[p] = s[p];
11
+ }
12
+ return t;
13
+ };
14
+ return __assign.apply(this, arguments);
15
+ };
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ import { forwardRef, useCallback } from "react";
18
+ import { Scrollbars } from "react-custom-scrollbars";
19
+ import styled from "styled-components";
20
+ var StyledScrollbars = styled(Scrollbars)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n scrollbar-width: thin;\n scrollbar-color: #b1b1b2 transparent;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: #b1b1b2;\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n > div:first-of-type {\n margin-bottom: 0 !important;\n }\n"], ["\n scrollbar-width: thin;\n scrollbar-color: #b1b1b2 transparent;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: #b1b1b2;\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n > div:first-of-type {\n margin-bottom: 0 !important;\n }\n"])));
21
+ var CustomScrollbars = function (_a) {
22
+ var onScroll = _a.onScroll, forwardedRef = _a.forwardedRef, style = _a.style, children = _a.children;
23
+ var refSetter = useCallback(function (scrollbarsRef) {
24
+ if (scrollbarsRef) {
25
+ forwardedRef(scrollbarsRef.view);
26
+ }
27
+ else {
28
+ forwardedRef(null);
29
+ }
30
+ }, []);
31
+ return (_jsx(StyledScrollbars, __assign({ renderTrackHorizontal: function (props) { return (_jsx("div", __assign({}, props, { style: { display: "none" }, className: "track-horizontal" }))); }, ref: refSetter, style: style, onScroll: onScroll }, { children: children })));
32
+ };
33
+ export var CustomScrollbarsVirtualList = forwardRef(function (props, ref) { return (_jsx(CustomScrollbars, __assign({}, props, { forwardedRef: ref }))); });
34
+ var templateObject_1;
@@ -222,27 +222,283 @@ export var availableColumnTypes = Object.keys(validationsByColumnType);
222
222
  export var datePatterns = [
223
223
  {
224
224
  value: "MM/dd/yyyy",
225
- label: "MM/dd/yyyy",
225
+ label: "MM/dd/yyyy (e.g. 08/31/2023)",
226
+ },
227
+ {
228
+ value: "yyyy-MM-dd",
229
+ label: "yyyy-MM-dd (e.g. 2023-08-31",
230
+ },
231
+ {
232
+ value: "dd/MM/yyyy",
233
+ label: "dd/MM/yyyy (e.g. 31/08/2023",
234
+ },
235
+ {
236
+ value: "MM-dd-yyyy",
237
+ label: "MM-dd-yyyy (e.g. 08-31-2023)",
238
+ },
239
+ {
240
+ value: "yyyy/MM/dd",
241
+ label: "yyyy/MM/dd (e.g. 2023/08/31)",
242
+ },
243
+ {
244
+ value: "dd-MMMM-yyyy",
245
+ label: "dd-MMMM-yyyy (e.g. 31-August-2023)",
246
+ },
247
+ {
248
+ value: "MMMM dd, yyyy",
249
+ label: "MMMM dd, yyyy (e.g. August 31, 2023)",
250
+ },
251
+ {
252
+ value: "dd/MM/yy",
253
+ label: "dd/MM/yy (e.g. 31/08/23)",
254
+ },
255
+ {
256
+ value: "MMMM dd, yy",
257
+ label: "MMMM dd, yy (e.g. August 31, 23)",
258
+ },
259
+ {
260
+ value: "yy/MM/dd",
261
+ label: "yy/MM/dd (e.g. 23/08/31)",
262
+ },
263
+ {
264
+ value: "EEEE MMMM yyyy",
265
+ label: "Day MMMM Year (e.g. Tuesday August 2023)",
266
+ },
267
+ {
268
+ value: "EEEE dd MMMM yyyy",
269
+ label: "Day Day-of-Month Month Year (e.g. Tuesday 08 August 2023)",
270
+ },
271
+ {
272
+ value: "MM-dd-yy",
273
+ label: "MM-dd-yy (e.g. 01-15-90)",
274
+ },
275
+ {
276
+ value: "M-dd-yy",
277
+ label: "M-dd-yy (e.g. 1-15-90)",
278
+ },
279
+ {
280
+ value: "dd-MM-yy",
281
+ label: "dd-MM-yy (e.g. 15-01-90)",
282
+ },
283
+ {
284
+ value: "dd-MM-yyyy",
285
+ label: "dd-MM-yyyy (e.g. 15-01-1990)",
286
+ },
287
+ {
288
+ value: "dd-M-yy",
289
+ label: "dd-M-yy (e.g. 15-1-90)",
290
+ },
291
+ {
292
+ value: "MM/dd/yy",
293
+ label: "MM/dd/yy (e.g. 01/15/90)",
294
+ },
295
+ {
296
+ value: "M/dd/yy",
297
+ label: "M/dd/yy (e.g. 1/15/90)",
298
+ },
299
+ {
300
+ value: "MM.dd.yy",
301
+ label: "MM.dd.yy (e.g. 01.15.90)",
302
+ },
303
+ {
304
+ value: "M.dd.yy",
305
+ label: "M.dd.yy (e.g. 1.15.90)",
306
+ },
307
+ {
308
+ value: "MMM-dd-yy",
309
+ label: "MMM-dd-yy (e.g. Jan-15-90)",
310
+ },
311
+ {
312
+ value: "MMMM-dd-yy",
313
+ label: "MMMM-dd-yy (e.g. January-15-90)",
314
+ },
315
+ {
316
+ value: "dd-MMM-yy",
317
+ label: "dd-MMM-yy (e.g. 15-Jan-90)",
318
+ },
319
+ {
320
+ value: "yyyy-M-dd",
321
+ label: "yyyy-M-dd (e.g. 1990-1-15)",
322
+ },
323
+ {
324
+ value: "M-dd-yyyy",
325
+ label: "M-dd-yyyy (e.g. 1-15-1990)",
326
+ },
327
+ {
328
+ value: "M/dd/yyyy",
329
+ label: "M/dd/yyyy (e.g. 1/15/1990)",
330
+ },
331
+ {
332
+ value: "dd/M/yyyy",
333
+ label: "dd/M/yyyy (e.g. 15/1/1990)",
334
+ },
335
+ {
336
+ value: "yyyy/M/dd",
337
+ label: "yyyy/M/dd (e.g. 1990/1/15)",
338
+ },
339
+ {
340
+ value: "dd.MM.yyyy",
341
+ label: "dd.MM.yyyy (e.g. 15.01.1990)",
342
+ },
343
+ {
344
+ value: "dd.M.yyyy",
345
+ label: "dd.M.yyyy (e.g. 15.1.1990)",
346
+ },
347
+ {
348
+ value: "yyyy.MM.dd",
349
+ label: "yyyy.MM.dd (e.g. 1990.01.15)",
350
+ },
351
+ {
352
+ value: "yyyy.M.dd",
353
+ label: "yyyy.M.dd (e.g. 1990.1.15)",
354
+ },
355
+ {
356
+ value: "MMM. dd, yyyy",
357
+ label: "MMM. dd, yyyy (e.g. Jan. 15, 1990)",
358
+ },
359
+ {
360
+ value: "dd MMM. yyyy",
361
+ label: "dd MMM. yyyy(e.g. 15 Jan. 1990)",
362
+ },
363
+ {
364
+ value: "dd. MMM. yyyy",
365
+ label: "dd. MMM. yyyy (e.g. 15. Jan. 1990)",
366
+ },
367
+ {
368
+ value: "EEE, MMM dd, yyyy",
369
+ label: "EEE, MMM dd, yyyy (e.g. Mon, Jan 15, 1990)",
226
370
  },
227
371
  ];
228
372
  export var dateTimePatterns = [
229
373
  {
230
374
  value: "MM/dd/yyyy HH:mm",
231
- label: "MM/dd/yyyy HH:mm",
375
+ label: "MM/dd/yyyy HH:mm (e.g. 08/31/2023 12:30)",
232
376
  },
233
377
  {
234
378
  value: "MM/dd/yyyy HH:mm:ss",
235
- label: "MM/dd/yyyy HH:mm:ss",
379
+ label: "MM/dd/yyyy HH:mm:ss (e.g. 08/31/2023 12:30:45)",
380
+ },
381
+ {
382
+ value: "MM/dd/yyyy HH:mm:ss.SSS",
383
+ label: "MM/dd/yyyy HH:mm:ss.SSS (e.g. 08/31/2023 12:30:45.500)",
384
+ },
385
+ {
386
+ value: "MM/dd/yyyy h:mm a",
387
+ label: "MM/dd/yyyy h:mm a (e.g. 08/31/2023 1:30 PM)",
388
+ },
389
+ {
390
+ value: "MM/dd/yyyy h:mm:ss a",
391
+ label: "MM/dd/yyyy h:mm:ss a (e.g. 08/31/2023 1:30:45 PM)",
392
+ },
393
+ {
394
+ value: "MMM dd HH:mm:ss yyyy",
395
+ label: "MMM dd HH:mm:ss yyyy (e.g. Jan 15 00:34:59 1990)",
396
+ },
397
+ {
398
+ value: "dd MMM HH:mm:ss yyyy",
399
+ label: "dd MMM HH:mm:ss yyyy (e.g. 15 Jan 00:34:59 1990)",
400
+ },
401
+ {
402
+ value: "MM/dd/yyyy h:mm:ss.SSS a",
403
+ label: "MM/dd/yyyy h:mm:ss.SSS a (e.g. 08/31/2023 1:30:45.500 PM)",
404
+ },
405
+ {
406
+ value: "MMMM dd, yyyy HH:mm",
407
+ label: "MMMM dd, yyyy HH:mm (e.g. August 31, 2023 12:30)",
408
+ },
409
+ {
410
+ value: "MMMM dd, yyyy HH:mm:ss",
411
+ label: "MMMM dd, yyyy HH:mm:ss (e.g. August 31, 2023 12:30:45)",
412
+ },
413
+ {
414
+ value: "MMMM dd, yyyy h:mm a",
415
+ label: "MMMM dd, yyyy h:mm a (e.g. August 31, 2023 1:30 PM)",
416
+ },
417
+ {
418
+ value: "MMMM dd, yyyy h:mm:ss a",
419
+ label: "MMMM dd, yyyy h:mm:ss a (e.g. August 31, 2023 1:30:45 PM)",
420
+ },
421
+ {
422
+ value: "MMMM dd, yyyy h:mm:ss.SSS a",
423
+ label: "MMMM dd, yyyy h:mm:ss.SSS a (e.g. August 31, 2023 1:30:45.500 PM)",
424
+ },
425
+ {
426
+ value: "MM-dd-yy HH:mm",
427
+ label: "MM-dd-yy HH:mm (e.g. 01-15-90 10:10)",
428
+ },
429
+ {
430
+ value: "dd-MM-yyyy HH:mm",
431
+ label: "dd-MM-yyyy HH:mm (e.g. 15-01-1990 10:10)",
432
+ },
433
+ {
434
+ value: "dd/MM/yyyy HH:mm",
435
+ label: "dd/MM/yyyy HH:mm (e.g. 15/01/1990 10:10)",
436
+ },
437
+ {
438
+ value: "dd-MM-yyyy h:mm a",
439
+ label: "dd-MM-yyyy h:mm a (e.g. 15-01-1990 10:10 AM)",
440
+ },
441
+ {
442
+ value: "dd/MM/yyyy h:mm a",
443
+ label: "dd/MM/yyyy h:mm a (e.g. 15/01/1990 10:10 AM)",
444
+ },
445
+ {
446
+ value: "MM/dd/yy HH:mm",
447
+ label: "MM/dd/yy HH:mm (e.g. 01/15/90 10:10)",
448
+ },
449
+ {
450
+ value: "MM/dd/yy HH:mm:ss",
451
+ label: "MM/dd/yy HH:mm:ss (e.g. 01/15/90 10:10:14)",
452
+ },
453
+ {
454
+ value: "MM/dd/yy h:mm:ss a",
455
+ label: "MM/dd/yy h:mm:ss a (e.g. 01/15/90 5:10:14 AM)",
456
+ },
457
+ {
458
+ value: "yyyy/MM/dd HH:mm",
459
+ label: "yyyy/MM/dd HH:mm (e.g. 1990/01/15 10:10)",
460
+ },
461
+ {
462
+ value: "MM-dd-yyyy HH:mm",
463
+ label: "MM-dd-yyyy HH:mm (e.g. 01-15-1990 10:10)",
464
+ },
465
+ {
466
+ value: "yyyy-MM-dd HH:mm",
467
+ label: "yyyy-MM-dd HH:mm (e.g. 1990-01-15 10:10)",
468
+ },
469
+ {
470
+ value: "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
471
+ label: "ISO 8601 (e.g. 1990-01-15T00:34:55.020+09:30)",
472
+ },
473
+ {
474
+ value: "yyyy-MM-dd'T'HH:mm:ss.SSS",
475
+ label: "ISO 8601 without timezone offset (e.g. 1990-01-15T00:34:55.020)",
476
+ },
477
+ {
478
+ value: "yyyy-MM-dd'T'HH:mmZ",
479
+ label: "yyyy-MM-dd'T'HH:mm+offset (e.g. 1990-01-15T10:10+09:30)",
480
+ },
481
+ {
482
+ value: "yyyy-MM-dd'T'HH:mm",
483
+ label: "yyyy-MM-dd'T'HH:mm (e.g. 1990-01-15T10:10)",
236
484
  },
237
485
  ];
238
486
  export var timePatterns = [
239
487
  {
240
488
  value: "HH:mm",
241
- label: "HH:mm",
489
+ label: "HH:mm (e.g. 12:30)",
242
490
  },
243
491
  {
244
492
  value: "HH:mm:ss",
245
- label: "HH:mm:ss",
493
+ label: "HH:mm:ss (e.g. 12:30:45)",
494
+ },
495
+ {
496
+ value: "hh:mm a",
497
+ label: "hh:mm a (e.g. 01:30 PM)",
498
+ },
499
+ {
500
+ value: "hh:mm:ss a",
501
+ label: "hh:mm:ss a (e.g. 01:30:45 PM)",
246
502
  },
247
503
  ];
248
504
  export var allowedPatterns = {