@elliemae/ds-date-picker 3.0.0-next.2 → 3.0.0-next.6
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/dist/cjs/DSDatePicker.js +248 -0
- package/dist/cjs/DSDatePicker.js.map +7 -0
- package/dist/cjs/components/DSDatePickerImpl.js +274 -0
- package/dist/cjs/components/DSDatePickerImpl.js.map +7 -0
- package/dist/cjs/components/DatePickerController/DatePickerController.js +335 -0
- package/dist/cjs/components/DatePickerController/DatePickerController.js.map +7 -0
- package/dist/cjs/components/DatePickerDay/DatePickerDay.js +49 -0
- package/dist/cjs/components/DatePickerDay/DatePickerDay.js.map +7 -0
- package/dist/cjs/components/DatePickerDropdown.js +102 -0
- package/dist/cjs/components/DatePickerDropdown.js.map +7 -0
- package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js +74 -0
- package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js.map +7 -0
- package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js +63 -0
- package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js.map +7 -0
- package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js +112 -0
- package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js.map +7 -0
- package/dist/cjs/components/DatePickerRange/DatePickerRange.js +126 -0
- package/dist/cjs/components/DatePickerRange/DatePickerRange.js.map +7 -0
- package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +138 -0
- package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +7 -0
- package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +61 -0
- package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +7 -0
- package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +117 -0
- package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js.map +7 -0
- package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +80 -0
- package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +7 -0
- package/dist/cjs/components/index.js +53 -0
- package/dist/cjs/components/index.js.map +7 -0
- package/dist/cjs/defaultPhrases.js +246 -0
- package/dist/cjs/defaultPhrases.js.map +7 -0
- package/dist/cjs/index.js +38 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/esm/DSDatePicker.js +232 -0
- package/dist/esm/DSDatePicker.js.map +7 -0
- package/dist/esm/components/DSDatePickerImpl.js +245 -0
- package/dist/esm/components/DSDatePickerImpl.js.map +7 -0
- package/dist/esm/components/DatePickerController/DatePickerController.js +308 -0
- package/dist/esm/components/DatePickerController/DatePickerController.js.map +7 -0
- package/dist/esm/components/DatePickerDay/DatePickerDay.js +20 -0
- package/dist/esm/components/DatePickerDay/DatePickerDay.js.map +7 -0
- package/dist/esm/components/DatePickerDropdown.js +75 -0
- package/dist/esm/components/DatePickerDropdown.js.map +7 -0
- package/dist/esm/components/DatePickerHeader/DatePickerHeader.js +45 -0
- package/dist/esm/components/DatePickerHeader/DatePickerHeader.js.map +7 -0
- package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js +37 -0
- package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js.map +7 -0
- package/dist/esm/components/DatePickerPicker/DatePickerPicker.js +84 -0
- package/dist/esm/components/DatePickerPicker/DatePickerPicker.js.map +7 -0
- package/dist/esm/components/DatePickerRange/DatePickerRange.js +99 -0
- package/dist/esm/components/DatePickerRange/DatePickerRange.js.map +7 -0
- package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +109 -0
- package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +7 -0
- package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +32 -0
- package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +7 -0
- package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +89 -0
- package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js.map +7 -0
- package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +51 -0
- package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +7 -0
- package/dist/esm/components/index.js +24 -0
- package/dist/esm/components/index.js.map +7 -0
- package/{esm → dist/esm}/defaultPhrases.js +48 -80
- package/dist/esm/defaultPhrases.js.map +7 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +7 -0
- package/package.json +63 -55
- package/cjs/DSDatePicker.js +0 -233
- package/cjs/components/DSDatePickerImpl.js +0 -354
- package/cjs/components/DatePickerController/DatePickerController.js +0 -360
- package/cjs/components/DatePickerDay/DatePickerDay.js +0 -24
- package/cjs/components/DatePickerDropdown.js +0 -65
- package/cjs/components/DatePickerHeader/DatePickerHeader.js +0 -56
- package/cjs/components/DatePickerNavigation/DatePickerNavigation.js +0 -32
- package/cjs/components/DatePickerPicker/DatePickerPicker.js +0 -74
- package/cjs/components/DatePickerRange/DatePickerRange.js +0 -119
- package/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -144
- package/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -46
- package/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -85
- package/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -59
- package/cjs/components/index.js +0 -27
- package/cjs/defaultPhrases.js +0 -261
- package/cjs/index.js +0 -35
- package/esm/DSDatePicker.js +0 -211
- package/esm/components/DSDatePickerImpl.js +0 -346
- package/esm/components/DatePickerController/DatePickerController.js +0 -350
- package/esm/components/DatePickerDay/DatePickerDay.js +0 -18
- package/esm/components/DatePickerDropdown.js +0 -57
- package/esm/components/DatePickerHeader/DatePickerHeader.js +0 -49
- package/esm/components/DatePickerNavigation/DatePickerNavigation.js +0 -25
- package/esm/components/DatePickerPicker/DatePickerPicker.js +0 -60
- package/esm/components/DatePickerRange/DatePickerRange.js +0 -111
- package/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -137
- package/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -38
- package/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -77
- package/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -53
- package/esm/components/index.js +0 -10
- package/esm/index.js +0 -13
- package/types/components/DSDatePickerImpl.d.ts +0 -20
- package/types/components/DatePickerController/DatePickerController.d.ts +0 -80
- package/types/components/DatePickerDay/DatePickerDay.d.ts +0 -13
- package/types/components/DatePickerDropdown.d.ts +0 -41
- package/types/components/DatePickerHeader/DatePickerHeader.d.ts +0 -15
- package/types/components/DatePickerNavigation/DatePickerNavigation.d.ts +0 -19
- package/types/components/DatePickerPicker/DatePickerPicker.d.ts +0 -48
- package/types/components/DatePickerRange/DatePickerRange.d.ts +0 -9
- package/types/components/DatePickerRangeHeader/DatePickerRangeHeader.d.ts +0 -23
- package/types/components/DatePickerRangeHeader/tests/DatePickerRangeHeader.test.d.ts +0 -1
- package/types/components/DatePickerRenderMonth/DatePickerRenderMonth.d.ts +0 -5
- package/types/components/DatePickerSingleDate/DatePickerSingleDate.d.ts +0 -11
- package/types/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.d.ts +0 -16
- package/types/components/index.d.ts +0 -10
- package/types/components/tests/DatePickerHeader.test.d.ts +0 -1
- package/types/components/tests/DatePickerRange.test.d.ts +0 -1
- package/types/components/tests/DatePickerRangeHeader.test.d.ts +0 -1
- package/types/components/tests/DatePickerSelectedDate.test.d.ts +0 -1
- package/types/components/tests/DatePickerSingleDate.test.d.ts +0 -1
- package/types/components/tests/SingleRangeDateSwitcher.test.d.ts +0 -1
- package/types/defaultPhrases.d.ts +0 -225
- package/types/index.d.ts +0 -3
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var DatePickerNavigation_exports = {};
|
|
29
|
+
__export(DatePickerNavigation_exports, {
|
|
30
|
+
DatePickerNavigation: () => Navigation,
|
|
31
|
+
default: () => DatePickerNavigation_default
|
|
32
|
+
});
|
|
33
|
+
var React = __toESM(require("react"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_prop_types = __toESM(require("prop-types"));
|
|
36
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
37
|
+
var import_ds_icon = require("@elliemae/ds-icon");
|
|
38
|
+
var import_prop_types2 = require("@elliemae/ds-shared/prop-types");
|
|
39
|
+
const Navigation = ({
|
|
40
|
+
className = "date-picker-navigation",
|
|
41
|
+
icon: Icon = import_ds_icons.ChevronRight,
|
|
42
|
+
color = import_ds_icon.DSIconColors.NEUTRAL,
|
|
43
|
+
size = import_ds_icon.DSIconSizes.S,
|
|
44
|
+
innerRef
|
|
45
|
+
}) => /* @__PURE__ */ import_react.default.createElement("div", {
|
|
46
|
+
tabIndex: 0,
|
|
47
|
+
"data-testid": "date-picker-nav"
|
|
48
|
+
}, /* @__PURE__ */ import_react.default.createElement(Icon, {
|
|
49
|
+
className,
|
|
50
|
+
color,
|
|
51
|
+
innerRef,
|
|
52
|
+
size
|
|
53
|
+
}));
|
|
54
|
+
Navigation.propTypes = {
|
|
55
|
+
className: "date-picker-navigation",
|
|
56
|
+
icon: import_prop_types.default.element,
|
|
57
|
+
color: import_prop_types.default.oneOf(import_prop_types2.iconColors),
|
|
58
|
+
size: import_prop_types.default.oneOf(import_prop_types2.iconSizes),
|
|
59
|
+
innerRef: import_prop_types.default.any
|
|
60
|
+
};
|
|
61
|
+
var DatePickerNavigation_default = Navigation;
|
|
62
|
+
module.exports = __toCommonJS(DatePickerNavigation_exports);
|
|
63
|
+
//# sourceMappingURL=DatePickerNavigation.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePickerNavigation/DatePickerNavigation.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ChevronRight } from '@elliemae/ds-icons';\nimport { DSIconColors, DSIconSizes } from '@elliemae/ds-icon';\nimport {\n iconSizes,\n iconColors,\n} from '@elliemae/ds-shared/prop-types';\n\nconst Navigation = ({\n className = 'date-picker-navigation',\n icon: Icon = ChevronRight,\n color = DSIconColors.NEUTRAL,\n size = DSIconSizes.S,\n innerRef,\n}) => (\n <div tabIndex={0} data-testid=\"date-picker-nav\">\n <Icon className={className} color={color} innerRef={innerRef} size={size} />\n </div>\n);\nNavigation.propTypes = {\n className: 'date-picker-navigation',\n icon: PropTypes.element,\n color: PropTypes.oneOf(iconColors),\n size: PropTypes.oneOf(iconSizes),\n innerRef: PropTypes.any,\n};\n\nexport { Navigation as DatePickerNavigation };\nexport default Navigation;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAsB;AACtB,sBAA6B;AAC7B,qBAA0C;AAC1C,yBAGO;AAEP,MAAM,aAAa,CAAC;AAAA,EAClB,YAAY;AAAA,EACZ,MAAM,OAAO;AAAA,EACb,QAAQ,4BAAa;AAAA,EACrB,OAAO,2BAAY;AAAA,EACnB;AAAA,MAEA,mDAAC,OAAD;AAAA,EAAK,UAAU;AAAA,EAAG,eAAY;AAAA,GAC5B,mDAAC,MAAD;AAAA,EAAM;AAAA,EAAsB;AAAA,EAAc;AAAA,EAAoB;AAAA;AAGlE,WAAW,YAAY;AAAA,EACrB,WAAW;AAAA,EACX,MAAM,0BAAU;AAAA,EAChB,OAAO,0BAAU,MAAM;AAAA,EACvB,MAAM,0BAAU,MAAM;AAAA,EACtB,UAAU,0BAAU;AAAA;AAItB,IAAO,+BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
10
|
+
var __objRest = (source, exclude) => {
|
|
11
|
+
var target = {};
|
|
12
|
+
for (var prop in source)
|
|
13
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
14
|
+
target[prop] = source[prop];
|
|
15
|
+
if (source != null && __getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
17
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
18
|
+
target[prop] = source[prop];
|
|
19
|
+
}
|
|
20
|
+
return target;
|
|
21
|
+
};
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
27
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(module2))
|
|
29
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
30
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return target;
|
|
33
|
+
};
|
|
34
|
+
var __toESM = (module2, isNodeMode) => {
|
|
35
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
36
|
+
};
|
|
37
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
38
|
+
return (module2, temp) => {
|
|
39
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
40
|
+
};
|
|
41
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
42
|
+
var DatePickerPicker_exports = {};
|
|
43
|
+
__export(DatePickerPicker_exports, {
|
|
44
|
+
DatePickerPicker: () => Picker,
|
|
45
|
+
Picker: () => Picker,
|
|
46
|
+
PickerPropsTypes: () => PickerPropsTypes,
|
|
47
|
+
default: () => DatePickerPicker_default
|
|
48
|
+
});
|
|
49
|
+
var React = __toESM(require("react"));
|
|
50
|
+
var import_react = __toESM(require("react"));
|
|
51
|
+
var import_prop_types = __toESM(require("prop-types"));
|
|
52
|
+
var import_ds_icon = require("@elliemae/ds-icon");
|
|
53
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
54
|
+
var import_ds_button = require("@elliemae/ds-button");
|
|
55
|
+
var import_prop_types2 = require("@elliemae/ds-shared/prop-types");
|
|
56
|
+
const Picker = (_a) => {
|
|
57
|
+
var _b = _a, {
|
|
58
|
+
className = "date-picker-icon",
|
|
59
|
+
disabled = false,
|
|
60
|
+
icon = /* @__PURE__ */ import_react.default.createElement(import_ds_icons.DatePicker, null),
|
|
61
|
+
size = import_ds_icon.DSIconSizes.M,
|
|
62
|
+
buttonActionType = "secondary",
|
|
63
|
+
onClick = () => null,
|
|
64
|
+
onBlur = () => null,
|
|
65
|
+
readOnly = false,
|
|
66
|
+
tabIndex = 0,
|
|
67
|
+
innerRef
|
|
68
|
+
} = _b, rest = __objRest(_b, [
|
|
69
|
+
"className",
|
|
70
|
+
"disabled",
|
|
71
|
+
"icon",
|
|
72
|
+
"size",
|
|
73
|
+
"buttonActionType",
|
|
74
|
+
"onClick",
|
|
75
|
+
"onBlur",
|
|
76
|
+
"readOnly",
|
|
77
|
+
"tabIndex",
|
|
78
|
+
"innerRef"
|
|
79
|
+
]);
|
|
80
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_button.DSButton, {
|
|
81
|
+
innerRef,
|
|
82
|
+
"aria-label": rest["aria-label"] || "Date Picker Button",
|
|
83
|
+
buttonType: buttonActionType,
|
|
84
|
+
className,
|
|
85
|
+
color: !disabled ? import_ds_icon.DSIconColors.PRIMARY : import_ds_icon.DSIconColors.NEUTRAL,
|
|
86
|
+
disabled,
|
|
87
|
+
icon,
|
|
88
|
+
onBlur,
|
|
89
|
+
onClick,
|
|
90
|
+
readOnly,
|
|
91
|
+
size,
|
|
92
|
+
tabIndex,
|
|
93
|
+
"data-testid": "btn-date-picker"
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const PickerPropsTypes = {
|
|
97
|
+
innerRef: import_prop_types.default.oneOfType([import_prop_types.default.func, import_prop_types.default.shape({ current: import_prop_types.default.any })]),
|
|
98
|
+
className: import_prop_types.default.string,
|
|
99
|
+
disabled: import_prop_types.default.bool,
|
|
100
|
+
icon: import_prop_types.default.element,
|
|
101
|
+
size: import_prop_types.default.oneOf(import_prop_types2.iconSizes),
|
|
102
|
+
buttonActionType: import_prop_types.default.oneOf(import_ds_button.buttonTypes),
|
|
103
|
+
onClick: import_prop_types.default.func,
|
|
104
|
+
onFocus: import_prop_types.default.func,
|
|
105
|
+
onBlur: import_prop_types.default.func,
|
|
106
|
+
readOnly: import_prop_types.default.bool,
|
|
107
|
+
tabIndex: import_prop_types.default.number
|
|
108
|
+
};
|
|
109
|
+
Picker.propTypes = PickerPropsTypes;
|
|
110
|
+
var DatePickerPicker_default = Picker;
|
|
111
|
+
module.exports = __toCommonJS(DatePickerPicker_exports);
|
|
112
|
+
//# sourceMappingURL=DatePickerPicker.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePickerPicker/DatePickerPicker.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DSIconColors, DSIconSizes } from '@elliemae/ds-icon';\nimport { DatePicker } from '@elliemae/ds-icons';\nimport { DSButton, buttonTypes } from '@elliemae/ds-button';\nimport { iconSizes } from '@elliemae/ds-shared/prop-types';\n\nexport const Picker = ({\n className = 'date-picker-icon',\n disabled = false,\n icon = <DatePicker />,\n size = DSIconSizes.M,\n buttonActionType = 'secondary',\n onClick = () => null,\n onBlur = () => null,\n readOnly = false,\n tabIndex = 0,\n innerRef,\n ...rest\n}) => (\n <DSButton\n innerRef={innerRef}\n aria-label={rest['aria-label'] || 'Date Picker Button'}\n buttonType={buttonActionType}\n className={className}\n color={!disabled ? DSIconColors.PRIMARY : DSIconColors.NEUTRAL}\n disabled={disabled}\n icon={icon}\n onBlur={onBlur}\n onClick={onClick}\n readOnly={readOnly}\n size={size}\n tabIndex={tabIndex}\n data-testid=\"btn-date-picker\"\n />\n);\n\nexport const PickerPropsTypes = {\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n icon: PropTypes.element,\n size: PropTypes.oneOf(iconSizes),\n buttonActionType: PropTypes.oneOf(buttonTypes),\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool,\n tabIndex: PropTypes.number,\n};\n\nPicker.propTypes = PickerPropsTypes;\n\nexport { Picker as DatePickerPicker };\nexport default Picker;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAsB;AACtB,qBAA0C;AAC1C,sBAA2B;AAC3B,uBAAsC;AACtC,yBAA0B;AAEnB,MAAM,SAAS,CAAC,OAYpB;AAZoB,eACrB;AAAA,gBAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO,mDAAC,4BAAD;AAAA,IACP,OAAO,2BAAY;AAAA,IACnB,mBAAmB;AAAA,IACnB,UAAU,MAAM;AAAA,IAChB,SAAS,MAAM;AAAA,IACf,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,MAVqB,IAWlB,iBAXkB,IAWlB;AAAA,IAVH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,4DAAC,2BAAD;AAAA,IACE;AAAA,IACA,cAAY,KAAK,iBAAiB;AAAA,IAClC,YAAY;AAAA,IACZ;AAAA,IACA,OAAO,CAAC,WAAW,4BAAa,UAAU,4BAAa;AAAA,IACvD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAY;AAAA;AAAA;AAIT,MAAM,mBAAmB;AAAA,EAC9B,UAAU,0BAAU,UAAU,CAAC,0BAAU,MAAM,0BAAU,MAAM,EAAE,SAAS,0BAAU;AAAA,EACpF,WAAW,0BAAU;AAAA,EACrB,UAAU,0BAAU;AAAA,EACpB,MAAM,0BAAU;AAAA,EAChB,MAAM,0BAAU,MAAM;AAAA,EACtB,kBAAkB,0BAAU,MAAM;AAAA,EAClC,SAAS,0BAAU;AAAA,EACnB,SAAS,0BAAU;AAAA,EACnB,QAAQ,0BAAU;AAAA,EAClB,UAAU,0BAAU;AAAA,EACpB,UAAU,0BAAU;AAAA;AAGtB,OAAO,YAAY;AAGnB,IAAO,2BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __export = (target, all) => {
|
|
26
|
+
for (var name in all)
|
|
27
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
28
|
+
};
|
|
29
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
30
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
31
|
+
for (let key of __getOwnPropNames(module2))
|
|
32
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
33
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __toESM = (module2, isNodeMode) => {
|
|
38
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
39
|
+
};
|
|
40
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
41
|
+
return (module2, temp) => {
|
|
42
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
43
|
+
};
|
|
44
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
45
|
+
var DatePickerRange_exports = {};
|
|
46
|
+
__export(DatePickerRange_exports, {
|
|
47
|
+
DatePickerRangeDate: () => DatePickerRangeDate,
|
|
48
|
+
default: () => DatePickerRange_default
|
|
49
|
+
});
|
|
50
|
+
var React = __toESM(require("react"));
|
|
51
|
+
var import_react = __toESM(require("react"));
|
|
52
|
+
var import_react_dates = require("react-dates");
|
|
53
|
+
var import_moment = __toESM(require("moment"));
|
|
54
|
+
var import_ds_classnames = require("@elliemae/ds-classnames");
|
|
55
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
56
|
+
var import_DatePickerDay = require("../DatePickerDay/DatePickerDay");
|
|
57
|
+
var import_DatePickerNavigation = require("../DatePickerNavigation/DatePickerNavigation");
|
|
58
|
+
var import_DatePickerRangeHeader = require("../DatePickerRangeHeader/DatePickerRangeHeader");
|
|
59
|
+
const blockname = "date-range";
|
|
60
|
+
const Wrapper = (0, import_ds_classnames.aggregatedClasses)("div")(blockname, "wrapper");
|
|
61
|
+
const { classNameElement, classNameBlock } = (0, import_ds_classnames.convertPropToCssClassName)("datepicker");
|
|
62
|
+
const START_DATE = "startDate";
|
|
63
|
+
const END_DATE = "endDate";
|
|
64
|
+
const DatePickerRangeDate = ({ dateStart, dateEnd, displayFormatDay = "D", showHeader = true, otherProps }) => {
|
|
65
|
+
const [selectedDateStart, setSelectedDateStart] = (0, import_react.useState)(dateStart);
|
|
66
|
+
const [selectedDateEnd, setSelectedDateEnd] = (0, import_react.useState)(dateEnd);
|
|
67
|
+
const [focusedInput, setFocusedInput] = (0, import_react.useState)(START_DATE);
|
|
68
|
+
const datePickerRef = (0, import_react.useRef)();
|
|
69
|
+
const handleFocusChange = () => {
|
|
70
|
+
setFocusedInput(focusedInput === START_DATE ? END_DATE : START_DATE);
|
|
71
|
+
};
|
|
72
|
+
const handleDatesChange = ({ startDate, endDate }) => {
|
|
73
|
+
setSelectedDateStart(startDate);
|
|
74
|
+
setSelectedDateEnd(endDate);
|
|
75
|
+
};
|
|
76
|
+
const handleStartInputChange = (newDate) => {
|
|
77
|
+
setSelectedDateStart(newDate);
|
|
78
|
+
};
|
|
79
|
+
const handleEndInputChange = (newDate) => {
|
|
80
|
+
setSelectedDateEnd(newDate);
|
|
81
|
+
};
|
|
82
|
+
const getSafeDateStartValue = () => {
|
|
83
|
+
if (selectedDateStart) {
|
|
84
|
+
return (0, import_moment.default)(selectedDateStart);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const getSafeDateEndValue = () => {
|
|
88
|
+
if (selectedDateEnd) {
|
|
89
|
+
return (0, import_moment.default)(selectedDateEnd);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const safeStartDate = getSafeDateStartValue();
|
|
93
|
+
const safeEndDate = getSafeDateEndValue();
|
|
94
|
+
return /* @__PURE__ */ import_react.default.createElement(Wrapper, null, showHeader && /* @__PURE__ */ import_react.default.createElement(import_DatePickerRangeHeader.DatePickerRangeHeader, {
|
|
95
|
+
onEndInputChange: handleEndInputChange,
|
|
96
|
+
onStartInputChange: handleStartInputChange,
|
|
97
|
+
selectedEndDate: safeEndDate,
|
|
98
|
+
selectedStartDate: safeStartDate
|
|
99
|
+
}), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
100
|
+
ref: datePickerRef,
|
|
101
|
+
className: classNameBlock("wrapper-day-picker-single-date-controller")
|
|
102
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_dates.DayPickerRangeController, __spreadProps(__spreadValues({}, otherProps), {
|
|
103
|
+
enableOutsideDays: true,
|
|
104
|
+
endDate: safeEndDate,
|
|
105
|
+
focused: true,
|
|
106
|
+
focusedInput,
|
|
107
|
+
hideKeyboardShortcutsPanel: true,
|
|
108
|
+
navNext: /* @__PURE__ */ import_react.default.createElement(import_DatePickerNavigation.DatePickerNavigation, {
|
|
109
|
+
className: classNameElement("navigation-next")
|
|
110
|
+
}),
|
|
111
|
+
navPrev: /* @__PURE__ */ import_react.default.createElement(import_DatePickerNavigation.DatePickerNavigation, {
|
|
112
|
+
className: classNameElement("navigation-prev"),
|
|
113
|
+
icon: import_ds_icons.ChevronLeft
|
|
114
|
+
}),
|
|
115
|
+
onDatesChange: handleDatesChange,
|
|
116
|
+
onFocusChange: handleFocusChange,
|
|
117
|
+
renderDayContents: (date) => /* @__PURE__ */ import_react.default.createElement(import_DatePickerDay.DatePickerDay, {
|
|
118
|
+
className: classNameElement("day-contents"),
|
|
119
|
+
date: date.format(displayFormatDay)
|
|
120
|
+
}),
|
|
121
|
+
startDate: safeStartDate
|
|
122
|
+
}))));
|
|
123
|
+
};
|
|
124
|
+
var DatePickerRange_default = DatePickerRangeDate;
|
|
125
|
+
module.exports = __toCommonJS(DatePickerRange_exports);
|
|
126
|
+
//# sourceMappingURL=DatePickerRange.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePickerRange/DatePickerRange.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/prop-types */\n/* eslint-disable consistent-return */\nimport React, { useState, useRef } from 'react';\nimport { DayPickerRangeController } from 'react-dates';\nimport moment from 'moment';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { ChevronLeft } from '@elliemae/ds-icons';\nimport { DatePickerDay } from '../DatePickerDay/DatePickerDay';\nimport { DatePickerNavigation } from '../DatePickerNavigation/DatePickerNavigation';\nimport { DatePickerRangeHeader } from '../DatePickerRangeHeader/DatePickerRangeHeader';\n\nconst blockname = 'date-range';\nconst Wrapper = aggregatedClasses('div')(blockname, 'wrapper');\n\nconst { classNameElement, classNameBlock } = convertPropToCssClassName('datepicker');\n\nconst START_DATE = 'startDate';\nconst END_DATE = 'endDate';\n\nconst DatePickerRangeDate = ({ dateStart, dateEnd, displayFormatDay = 'D', showHeader = true, otherProps }) => {\n const [selectedDateStart, setSelectedDateStart] = useState(dateStart);\n const [selectedDateEnd, setSelectedDateEnd] = useState(dateEnd);\n const [focusedInput, setFocusedInput] = useState(START_DATE);\n const datePickerRef = useRef();\n\n const handleFocusChange = () => {\n setFocusedInput(focusedInput === START_DATE ? END_DATE : START_DATE);\n };\n\n const handleDatesChange = ({ startDate, endDate }) => {\n setSelectedDateStart(startDate);\n setSelectedDateEnd(endDate);\n };\n\n const handleStartInputChange = (newDate) => {\n setSelectedDateStart(newDate);\n };\n\n const handleEndInputChange = (newDate) => {\n setSelectedDateEnd(newDate);\n };\n\n const getSafeDateStartValue = () => {\n if (selectedDateStart) {\n return moment(selectedDateStart);\n }\n };\n\n const getSafeDateEndValue = () => {\n if (selectedDateEnd) {\n return moment(selectedDateEnd);\n }\n };\n\n const safeStartDate = getSafeDateStartValue();\n const safeEndDate = getSafeDateEndValue();\n\n return (\n <Wrapper>\n {showHeader && (\n <DatePickerRangeHeader\n onEndInputChange={handleEndInputChange}\n onStartInputChange={handleStartInputChange}\n selectedEndDate={safeEndDate}\n selectedStartDate={safeStartDate}\n />\n )}\n <div ref={datePickerRef} className={classNameBlock('wrapper-day-picker-single-date-controller')}>\n <DayPickerRangeController\n {...otherProps}\n enableOutsideDays\n endDate={safeEndDate}\n focused\n focusedInput={focusedInput}\n hideKeyboardShortcutsPanel\n navNext={<DatePickerNavigation className={classNameElement('navigation-next')} />}\n navPrev={<DatePickerNavigation className={classNameElement('navigation-prev')} icon={ChevronLeft} />}\n onDatesChange={handleDatesChange}\n onFocusChange={handleFocusChange}\n renderDayContents={(date) => (\n <DatePickerDay className={classNameElement('day-contents')} date={date.format(displayFormatDay)} />\n )}\n startDate={safeStartDate}\n />\n </div>\n </Wrapper>\n );\n};\n\nexport { DatePickerRangeDate };\nexport default DatePickerRangeDate;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAwC;AACxC,yBAAyC;AACzC,oBAAmB;AACnB,2BAA6D;AAC7D,sBAA4B;AAC5B,2BAA8B;AAC9B,kCAAqC;AACrC,mCAAsC;AAEtC,MAAM,YAAY;AAClB,MAAM,UAAU,4CAAkB,OAAO,WAAW;AAEpD,MAAM,EAAE,kBAAkB,mBAAmB,oDAA0B;AAEvE,MAAM,aAAa;AACnB,MAAM,WAAW;AAEjB,MAAM,sBAAsB,CAAC,EAAE,WAAW,SAAS,mBAAmB,KAAK,aAAa,MAAM,iBAAiB;AAC7G,QAAM,CAAC,mBAAmB,wBAAwB,2BAAS;AAC3D,QAAM,CAAC,iBAAiB,sBAAsB,2BAAS;AACvD,QAAM,CAAC,cAAc,mBAAmB,2BAAS;AACjD,QAAM,gBAAgB;AAEtB,QAAM,oBAAoB,MAAM;AAC9B,oBAAgB,iBAAiB,aAAa,WAAW;AAAA;AAG3D,QAAM,oBAAoB,CAAC,EAAE,WAAW,cAAc;AACpD,yBAAqB;AACrB,uBAAmB;AAAA;AAGrB,QAAM,yBAAyB,CAAC,YAAY;AAC1C,yBAAqB;AAAA;AAGvB,QAAM,uBAAuB,CAAC,YAAY;AACxC,uBAAmB;AAAA;AAGrB,QAAM,wBAAwB,MAAM;AAClC,QAAI,mBAAmB;AACrB,aAAO,2BAAO;AAAA;AAAA;AAIlB,QAAM,sBAAsB,MAAM;AAChC,QAAI,iBAAiB;AACnB,aAAO,2BAAO;AAAA;AAAA;AAIlB,QAAM,gBAAgB;AACtB,QAAM,cAAc;AAEpB,SACE,mDAAC,SAAD,MACG,cACC,mDAAC,oDAAD;AAAA,IACE,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,MAGvB,mDAAC,OAAD;AAAA,IAAK,KAAK;AAAA,IAAe,WAAW,eAAe;AAAA,KACjD,mDAAC,6CAAD,iCACM,aADN;AAAA,IAEE,mBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,SAAO;AAAA,IACP;AAAA,IACA,4BAA0B;AAAA,IAC1B,SAAS,mDAAC,kDAAD;AAAA,MAAsB,WAAW,iBAAiB;AAAA;AAAA,IAC3D,SAAS,mDAAC,kDAAD;AAAA,MAAsB,WAAW,iBAAiB;AAAA,MAAoB,MAAM;AAAA;AAAA,IACrF,eAAe;AAAA,IACf,eAAe;AAAA,IACf,mBAAmB,CAAC,SAClB,mDAAC,oCAAD;AAAA,MAAe,WAAW,iBAAiB;AAAA,MAAiB,MAAM,KAAK,OAAO;AAAA;AAAA,IAEhF,WAAW;AAAA;AAAA;AAQrB,IAAO,0BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var DatePickerRangeHeader_exports = {};
|
|
29
|
+
__export(DatePickerRangeHeader_exports, {
|
|
30
|
+
DatePickerRangeHeader: () => DatePickerRangeHeader,
|
|
31
|
+
default: () => DatePickerRangeHeader_default
|
|
32
|
+
});
|
|
33
|
+
var React = __toESM(require("react"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_prop_types = __toESM(require("prop-types"));
|
|
36
|
+
var import_moment = __toESM(require("moment"));
|
|
37
|
+
var import_ds_form = require("@elliemae/ds-form");
|
|
38
|
+
var import_ds_classnames = require("@elliemae/ds-classnames");
|
|
39
|
+
const blockname = "date-range-picker";
|
|
40
|
+
const DATE_FORMAT = "MMDDYYYY";
|
|
41
|
+
const MAGIC_NUMBER = 999;
|
|
42
|
+
const Header = (0, import_ds_classnames.aggregatedClasses)("div")(blockname, "header", ({ invalidDate }) => ({ invalidDate }));
|
|
43
|
+
const DatePickerRangeHeader = ({
|
|
44
|
+
onStartInputChange = () => null,
|
|
45
|
+
onEndInputChange = () => null,
|
|
46
|
+
onFocusChange = () => null,
|
|
47
|
+
selectedStartDate,
|
|
48
|
+
selectedEndDate,
|
|
49
|
+
handleDatesChange,
|
|
50
|
+
autoJumpOnEdit = true
|
|
51
|
+
}) => {
|
|
52
|
+
const [startValue, setStartValue] = (0, import_react.useState)(selectedStartDate);
|
|
53
|
+
const [endValue, setEndValue] = (0, import_react.useState)(selectedEndDate);
|
|
54
|
+
const startInputRef = (0, import_react.useRef)();
|
|
55
|
+
const endInputRef = (0, import_react.useRef)();
|
|
56
|
+
(0, import_react.useEffect)(() => {
|
|
57
|
+
if (selectedStartDate) {
|
|
58
|
+
setStartValue(selectedStartDate.format(DATE_FORMAT));
|
|
59
|
+
}
|
|
60
|
+
if (selectedEndDate) {
|
|
61
|
+
setEndValue(selectedEndDate.format(DATE_FORMAT));
|
|
62
|
+
}
|
|
63
|
+
}, [selectedStartDate, selectedEndDate]);
|
|
64
|
+
const isValidRangeDate = (start, end) => {
|
|
65
|
+
let isValidRange = false;
|
|
66
|
+
if (start && end) {
|
|
67
|
+
const momentStart = (0, import_moment.default)(start, DATE_FORMAT);
|
|
68
|
+
const momentEnd = (0, import_moment.default)(end, DATE_FORMAT);
|
|
69
|
+
isValidRange = momentStart.isBefore(momentEnd);
|
|
70
|
+
}
|
|
71
|
+
return isValidRange;
|
|
72
|
+
};
|
|
73
|
+
const handleOnFocus = (inputType) => onFocusChange(inputType);
|
|
74
|
+
const handleOnChangeStart = (newStartValue) => {
|
|
75
|
+
const y = newStartValue.substring(4);
|
|
76
|
+
const momentValue = (0, import_moment.default)(newStartValue, DATE_FORMAT);
|
|
77
|
+
if (newStartValue && newStartValue.length === DATE_FORMAT.length) {
|
|
78
|
+
onStartInputChange(momentValue);
|
|
79
|
+
}
|
|
80
|
+
setStartValue(newStartValue);
|
|
81
|
+
if (autoJumpOnEdit && parseInt(y, 10) > MAGIC_NUMBER && endInputRef?.current?.firstChild?.focus) {
|
|
82
|
+
endInputRef.current.firstChild.focus();
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const handleOnChangeEnd = (newEndValue) => {
|
|
86
|
+
const momentValue = (0, import_moment.default)(newEndValue, DATE_FORMAT);
|
|
87
|
+
if (isValidRangeDate(startValue, newEndValue) && newEndValue && newEndValue.length === DATE_FORMAT.length) {
|
|
88
|
+
onEndInputChange(momentValue);
|
|
89
|
+
}
|
|
90
|
+
setEndValue(newEndValue);
|
|
91
|
+
};
|
|
92
|
+
const handleOnKeyDownStart = (e) => {
|
|
93
|
+
const isValid = isValidRangeDate(startValue, endValue);
|
|
94
|
+
const momentStart = (0, import_moment.default)(startValue, DATE_FORMAT);
|
|
95
|
+
const momentEnd = (0, import_moment.default)(endValue, DATE_FORMAT);
|
|
96
|
+
if (e.key === "Enter" && startValue) {
|
|
97
|
+
onStartInputChange(momentStart);
|
|
98
|
+
if (isValid)
|
|
99
|
+
handleDatesChange({ startDate: momentStart, endDate: momentEnd });
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const handleOnKeyDownEnd = (e) => {
|
|
103
|
+
const isValid = isValidRangeDate(startValue, endValue);
|
|
104
|
+
const momentStart = (0, import_moment.default)(startValue, DATE_FORMAT);
|
|
105
|
+
const momentEnd = (0, import_moment.default)(endValue, DATE_FORMAT);
|
|
106
|
+
if (e.key === "Enter" && isValid) {
|
|
107
|
+
handleDatesChange({ startDate: momentStart, endDate: momentEnd });
|
|
108
|
+
onEndInputChange(momentEnd);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return /* @__PURE__ */ import_react.default.createElement(Header, null, /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSInputGroup, null, /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSDateInputV2, {
|
|
112
|
+
containerProps: { "data-testid": "start-date" },
|
|
113
|
+
innerRef: startInputRef,
|
|
114
|
+
onChange: handleOnChangeStart,
|
|
115
|
+
onFocus: () => handleOnFocus("startDate"),
|
|
116
|
+
onKeyDown: handleOnKeyDownStart,
|
|
117
|
+
value: startValue
|
|
118
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSDateInputV2, {
|
|
119
|
+
containerProps: { "data-testid": "end-date" },
|
|
120
|
+
innerRef: endInputRef,
|
|
121
|
+
onChange: handleOnChangeEnd,
|
|
122
|
+
onFocus: () => handleOnFocus("endDate"),
|
|
123
|
+
onKeyDown: handleOnKeyDownEnd,
|
|
124
|
+
value: endValue
|
|
125
|
+
})));
|
|
126
|
+
};
|
|
127
|
+
DatePickerRangeHeader.propTypes = {
|
|
128
|
+
onStartInputChange: import_prop_types.default.func,
|
|
129
|
+
onEndInputChange: import_prop_types.default.func,
|
|
130
|
+
onFocusChange: import_prop_types.default.func,
|
|
131
|
+
selectedStartDate: import_prop_types.default.any,
|
|
132
|
+
selectedEndDate: import_prop_types.default.any,
|
|
133
|
+
handleDatesChange: import_prop_types.default.func,
|
|
134
|
+
autoJumpOnEdit: import_prop_types.default.bool
|
|
135
|
+
};
|
|
136
|
+
var DatePickerRangeHeader_default = DatePickerRangeHeader;
|
|
137
|
+
module.exports = __toCommonJS(DatePickerRangeHeader_exports);
|
|
138
|
+
//# sourceMappingURL=DatePickerRangeHeader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePickerRangeHeader/DatePickerRangeHeader.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable consistent-return */\n/* eslint-disable no-unused-expressions */\nimport React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { DSDateInputV2, DSInputGroup } from '@elliemae/ds-form';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nconst blockname = 'date-range-picker';\n\nconst DATE_FORMAT = 'MMDDYYYY';\n\n// When year is greater than 999 it means the user finished writing\n// the year for the range, because they must type 4 numbers for the year\n// to be higher than 999\nconst MAGIC_NUMBER = 999;\n\nconst Header = aggregatedClasses('div')(blockname, 'header', ({ invalidDate }) => ({ invalidDate }));\n\nconst DatePickerRangeHeader = ({\n onStartInputChange = () => null,\n onEndInputChange = () => null,\n onFocusChange = () => null,\n selectedStartDate,\n selectedEndDate,\n handleDatesChange,\n autoJumpOnEdit = true,\n}) => {\n const [startValue, setStartValue] = useState(selectedStartDate);\n const [endValue, setEndValue] = useState(selectedEndDate);\n const startInputRef = useRef();\n const endInputRef = useRef();\n\n useEffect(() => {\n if (selectedStartDate) {\n setStartValue(selectedStartDate.format(DATE_FORMAT));\n }\n if (selectedEndDate) {\n setEndValue(selectedEndDate.format(DATE_FORMAT));\n }\n }, [selectedStartDate, selectedEndDate]);\n\n const isValidRangeDate = (start, end) => {\n let isValidRange = false;\n if (start && end) {\n const momentStart = moment(start, DATE_FORMAT);\n const momentEnd = moment(end, DATE_FORMAT);\n isValidRange = momentStart.isBefore(momentEnd);\n }\n return isValidRange;\n };\n\n const handleOnFocus = (inputType) => onFocusChange(inputType);\n\n const handleOnChangeStart = (newStartValue) => {\n const y = newStartValue.substring(4);\n const momentValue = moment(newStartValue, DATE_FORMAT);\n if (newStartValue && newStartValue.length === DATE_FORMAT.length) {\n onStartInputChange(momentValue);\n }\n\n setStartValue(newStartValue);\n if (autoJumpOnEdit && parseInt(y, 10) > MAGIC_NUMBER && endInputRef?.current?.firstChild?.focus) {\n endInputRef.current.firstChild.focus();\n }\n };\n\n const handleOnChangeEnd = (newEndValue) => {\n const momentValue = moment(newEndValue, DATE_FORMAT);\n if (isValidRangeDate(startValue, newEndValue) && newEndValue && newEndValue.length === DATE_FORMAT.length) {\n onEndInputChange(momentValue);\n }\n setEndValue(newEndValue);\n };\n\n const handleOnKeyDownStart = (e) => {\n const isValid = isValidRangeDate(startValue, endValue);\n const momentStart = moment(startValue, DATE_FORMAT);\n const momentEnd = moment(endValue, DATE_FORMAT);\n if (e.key === 'Enter' && startValue) {\n onStartInputChange(momentStart);\n if (isValid) handleDatesChange({ startDate: momentStart, endDate: momentEnd });\n }\n };\n\n const handleOnKeyDownEnd = (e) => {\n const isValid = isValidRangeDate(startValue, endValue);\n const momentStart = moment(startValue, DATE_FORMAT);\n const momentEnd = moment(endValue, DATE_FORMAT);\n if (e.key === 'Enter' && isValid) {\n handleDatesChange({ startDate: momentStart, endDate: momentEnd });\n onEndInputChange(momentEnd);\n }\n };\n\n return (\n <Header>\n <DSInputGroup>\n <DSDateInputV2\n containerProps={{ 'data-testid': 'start-date' }}\n innerRef={startInputRef}\n onChange={handleOnChangeStart}\n onFocus={() => handleOnFocus('startDate')}\n onKeyDown={handleOnKeyDownStart}\n value={startValue}\n />\n <DSDateInputV2\n containerProps={{ 'data-testid': 'end-date' }}\n innerRef={endInputRef}\n onChange={handleOnChangeEnd}\n onFocus={() => handleOnFocus('endDate')}\n onKeyDown={handleOnKeyDownEnd}\n value={endValue}\n />\n </DSInputGroup>\n </Header>\n );\n};\n\nDatePickerRangeHeader.propTypes = {\n onStartInputChange: PropTypes.func,\n onEndInputChange: PropTypes.func,\n onFocusChange: PropTypes.func,\n selectedStartDate: PropTypes.any,\n selectedEndDate: PropTypes.any,\n handleDatesChange: PropTypes.func,\n autoJumpOnEdit: PropTypes.bool,\n};\n\nexport { DatePickerRangeHeader };\nexport default DatePickerRangeHeader;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,mBAAmD;AACnD,wBAAsB;AACtB,oBAAmB;AACnB,qBAA4C;AAC5C,2BAAkC;AAElC,MAAM,YAAY;AAElB,MAAM,cAAc;AAKpB,MAAM,eAAe;AAErB,MAAM,SAAS,4CAAkB,OAAO,WAAW,UAAU,CAAC,EAAE,kBAAmB,GAAE;AAErF,MAAM,wBAAwB,CAAC;AAAA,EAC7B,qBAAqB,MAAM;AAAA,EAC3B,mBAAmB,MAAM;AAAA,EACzB,gBAAgB,MAAM;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,MACb;AACJ,QAAM,CAAC,YAAY,iBAAiB,2BAAS;AAC7C,QAAM,CAAC,UAAU,eAAe,2BAAS;AACzC,QAAM,gBAAgB;AACtB,QAAM,cAAc;AAEpB,8BAAU,MAAM;AACd,QAAI,mBAAmB;AACrB,oBAAc,kBAAkB,OAAO;AAAA;AAEzC,QAAI,iBAAiB;AACnB,kBAAY,gBAAgB,OAAO;AAAA;AAAA,KAEpC,CAAC,mBAAmB;AAEvB,QAAM,mBAAmB,CAAC,OAAO,QAAQ;AACvC,QAAI,eAAe;AACnB,QAAI,SAAS,KAAK;AAChB,YAAM,cAAc,2BAAO,OAAO;AAClC,YAAM,YAAY,2BAAO,KAAK;AAC9B,qBAAe,YAAY,SAAS;AAAA;AAEtC,WAAO;AAAA;AAGT,QAAM,gBAAgB,CAAC,cAAc,cAAc;AAEnD,QAAM,sBAAsB,CAAC,kBAAkB;AAC7C,UAAM,IAAI,cAAc,UAAU;AAClC,UAAM,cAAc,2BAAO,eAAe;AAC1C,QAAI,iBAAiB,cAAc,WAAW,YAAY,QAAQ;AAChE,yBAAmB;AAAA;AAGrB,kBAAc;AACd,QAAI,kBAAkB,SAAS,GAAG,MAAM,gBAAgB,aAAa,SAAS,YAAY,OAAO;AAC/F,kBAAY,QAAQ,WAAW;AAAA;AAAA;AAInC,QAAM,oBAAoB,CAAC,gBAAgB;AACzC,UAAM,cAAc,2BAAO,aAAa;AACxC,QAAI,iBAAiB,YAAY,gBAAgB,eAAe,YAAY,WAAW,YAAY,QAAQ;AACzG,uBAAiB;AAAA;AAEnB,gBAAY;AAAA;AAGd,QAAM,uBAAuB,CAAC,MAAM;AAClC,UAAM,UAAU,iBAAiB,YAAY;AAC7C,UAAM,cAAc,2BAAO,YAAY;AACvC,UAAM,YAAY,2BAAO,UAAU;AACnC,QAAI,EAAE,QAAQ,WAAW,YAAY;AACnC,yBAAmB;AACnB,UAAI;AAAS,0BAAkB,EAAE,WAAW,aAAa,SAAS;AAAA;AAAA;AAItE,QAAM,qBAAqB,CAAC,MAAM;AAChC,UAAM,UAAU,iBAAiB,YAAY;AAC7C,UAAM,cAAc,2BAAO,YAAY;AACvC,UAAM,YAAY,2BAAO,UAAU;AACnC,QAAI,EAAE,QAAQ,WAAW,SAAS;AAChC,wBAAkB,EAAE,WAAW,aAAa,SAAS;AACrD,uBAAiB;AAAA;AAAA;AAIrB,SACE,mDAAC,QAAD,MACE,mDAAC,6BAAD,MACE,mDAAC,8BAAD;AAAA,IACE,gBAAgB,EAAE,eAAe;AAAA,IACjC,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS,MAAM,cAAc;AAAA,IAC7B,WAAW;AAAA,IACX,OAAO;AAAA,MAET,mDAAC,8BAAD;AAAA,IACE,gBAAgB,EAAE,eAAe;AAAA,IACjC,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS,MAAM,cAAc;AAAA,IAC7B,WAAW;AAAA,IACX,OAAO;AAAA;AAAA;AAOjB,sBAAsB,YAAY;AAAA,EAChC,oBAAoB,0BAAU;AAAA,EAC9B,kBAAkB,0BAAU;AAAA,EAC5B,eAAe,0BAAU;AAAA,EACzB,mBAAmB,0BAAU;AAAA,EAC7B,iBAAiB,0BAAU;AAAA,EAC3B,mBAAmB,0BAAU;AAAA,EAC7B,gBAAgB,0BAAU;AAAA;AAI5B,IAAO,gCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var DatePickerRenderMonth_exports = {};
|
|
29
|
+
__export(DatePickerRenderMonth_exports, {
|
|
30
|
+
renderMonthElement: () => renderMonthElement
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
var import_react = __toESM(require("react"));
|
|
34
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
35
|
+
var import_ds_grid = require("@elliemae/ds-grid");
|
|
36
|
+
const renderMonthElement = ({ month, onYearSelect }) => /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
|
|
37
|
+
height: "20px",
|
|
38
|
+
cols: ["auto", 1, "auto"],
|
|
39
|
+
alignItems: "flex-end",
|
|
40
|
+
mr: "10px"
|
|
41
|
+
}, /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
42
|
+
role: "button",
|
|
43
|
+
tabIndex: "0",
|
|
44
|
+
"data-testid": "date-picker-prev-year-arrow",
|
|
45
|
+
onClick: () => onYearSelect(month, month.year() - 1)
|
|
46
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronDoubleLeft, {
|
|
47
|
+
width: 13.6,
|
|
48
|
+
height: 13.6
|
|
49
|
+
}))), /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
|
|
50
|
+
"data-testid": "date-picker-header"
|
|
51
|
+
}, /* @__PURE__ */ import_react.default.createElement("strong", null, month.format("MMMM YYYY"))), /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
52
|
+
role: "button",
|
|
53
|
+
tabIndex: "0",
|
|
54
|
+
"data-testid": "date-picker-next-year-arrow",
|
|
55
|
+
onClick: () => onYearSelect(month, month.year() + 1)
|
|
56
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronDoubleRight, {
|
|
57
|
+
width: 13.6,
|
|
58
|
+
height: 13.6
|
|
59
|
+
}))));
|
|
60
|
+
module.exports = __toCommonJS(DatePickerRenderMonth_exports);
|
|
61
|
+
//# sourceMappingURL=DatePickerRenderMonth.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePickerRenderMonth/DatePickerRenderMonth.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { ChevronDoubleLeft, ChevronDoubleRight } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\n\nexport const renderMonthElement = ({ month, onYearSelect }) => (\n <Grid height=\"20px\" cols={['auto', 1, 'auto']} alignItems=\"flex-end\" mr=\"10px\">\n <div>\n <div\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"date-picker-prev-year-arrow\"\n onClick={() => onYearSelect(month, month.year() - 1)}\n >\n <ChevronDoubleLeft width={13.6} height={13.6} />\n </div>\n </div>\n <Grid data-testid=\"date-picker-header\">\n <strong>{month.format('MMMM YYYY')}</strong>\n </Grid>\n <div>\n <div\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"date-picker-next-year-arrow\"\n onClick={() => onYearSelect(month, month.year() + 1)}\n >\n <ChevronDoubleRight width={13.6} height={13.6} />\n </div>\n </div>\n </Grid>\n);\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,sBAAsD;AACtD,qBAAqB;AAEd,MAAM,qBAAqB,CAAC,EAAE,OAAO,mBAC1C,mDAAC,qBAAD;AAAA,EAAM,QAAO;AAAA,EAAO,MAAM,CAAC,QAAQ,GAAG;AAAA,EAAS,YAAW;AAAA,EAAW,IAAG;AAAA,GACtE,mDAAC,OAAD,MACE,mDAAC,OAAD;AAAA,EACE,MAAK;AAAA,EACL,UAAS;AAAA,EACT,eAAY;AAAA,EACZ,SAAS,MAAM,aAAa,OAAO,MAAM,SAAS;AAAA,GAElD,mDAAC,mCAAD;AAAA,EAAmB,OAAO;AAAA,EAAM,QAAQ;AAAA,MAG5C,mDAAC,qBAAD;AAAA,EAAM,eAAY;AAAA,GAChB,mDAAC,UAAD,MAAS,MAAM,OAAO,gBAExB,mDAAC,OAAD,MACE,mDAAC,OAAD;AAAA,EACE,MAAK;AAAA,EACL,UAAS;AAAA,EACT,eAAY;AAAA,EACZ,SAAS,MAAM,aAAa,OAAO,MAAM,SAAS;AAAA,GAElD,mDAAC,oCAAD;AAAA,EAAoB,OAAO;AAAA,EAAM,QAAQ;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|