@cloudscape-design/components 3.0.52 → 3.0.55
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/collection-preferences/styles.css.js +19 -19
- package/collection-preferences/styles.scoped.css +20 -21
- package/collection-preferences/styles.selectors.js +19 -19
- package/{internal/components/date-input → date-input}/index.d.ts +1 -1
- package/date-input/index.d.ts.map +1 -0
- package/date-input/index.js +15 -0
- package/date-input/index.js.map +1 -0
- package/date-input/interfaces.d.ts +9 -0
- package/date-input/interfaces.d.ts.map +1 -0
- package/date-input/interfaces.js +4 -0
- package/date-input/interfaces.js.map +1 -0
- package/date-input/internal.d.ts +6 -0
- package/date-input/internal.d.ts.map +1 -0
- package/date-input/internal.js +30 -0
- package/date-input/internal.js.map +1 -0
- package/date-input/styles.css.js +6 -0
- package/date-input/styles.scoped.css +7 -0
- package/date-input/styles.selectors.js +7 -0
- package/date-picker/index.d.ts.map +1 -1
- package/date-picker/index.js +2 -2
- package/date-picker/index.js.map +1 -1
- package/date-range-picker/calendar/index.js +3 -3
- package/date-range-picker/calendar/index.js.map +1 -1
- package/internal/environment.js +1 -1
- package/package.json +1 -1
- package/property-filter/styles.css.js +30 -27
- package/property-filter/styles.scoped.css +59 -34
- package/property-filter/styles.selectors.js +30 -27
- package/property-filter/token-editor.d.ts.map +1 -1
- package/property-filter/token-editor.js +17 -22
- package/property-filter/token-editor.js.map +1 -1
- package/test-utils/dom/date-input/index.d.ts +4 -0
- package/test-utils/dom/date-input/index.js +31 -0
- package/test-utils/dom/date-input/index.js.map +1 -0
- package/test-utils/selectors/date-input/index.d.ts +4 -0
- package/test-utils/selectors/date-input/index.js +31 -0
- package/test-utils/selectors/date-input/index.js.map +1 -0
- package/test-utils/tsconfig.tsbuildinfo +1 -1
- package/internal/components/date-input/index.d.ts.map +0 -1
- package/internal/components/date-input/index.js +0 -28
- package/internal/components/date-input/index.js.map +0 -1
- package/internal/components/date-input/interfaces.d.ts +0 -16
- package/internal/components/date-input/interfaces.d.ts.map +0 -1
- package/internal/components/date-input/interfaces.js +0 -2
- package/internal/components/date-input/interfaces.js.map +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"visible-content": "awsui_visible-
|
|
5
|
-
"visible-content-toggle": "awsui_visible-content-
|
|
6
|
-
"visible-content-groups": "awsui_visible-content-
|
|
7
|
-
"visible-content-group": "awsui_visible-content-
|
|
8
|
-
"visible-content-title": "awsui_visible-content-
|
|
9
|
-
"visible-content-group-label": "awsui_visible-content-group-
|
|
10
|
-
"visible-content-option": "awsui_visible-content-
|
|
11
|
-
"visible-content-option-label": "awsui_visible-content-option-
|
|
12
|
-
"root": "
|
|
13
|
-
"modal-root": "awsui_modal-
|
|
14
|
-
"trigger-button": "awsui_trigger-
|
|
15
|
-
"cancel-button": "awsui_cancel-
|
|
16
|
-
"confirm-button": "awsui_confirm-
|
|
17
|
-
"custom": "
|
|
18
|
-
"second-column-small": "awsui_second-column-
|
|
19
|
-
"wrap-lines": "awsui_wrap-
|
|
20
|
-
"page-size": "awsui_page-
|
|
21
|
-
"page-size-form-field": "awsui_page-size-form-
|
|
22
|
-
"page-size-radio-group": "awsui_page-size-radio-
|
|
4
|
+
"visible-content": "awsui_visible-content_tc96w_1qp7a_185",
|
|
5
|
+
"visible-content-toggle": "awsui_visible-content-toggle_tc96w_1qp7a_186",
|
|
6
|
+
"visible-content-groups": "awsui_visible-content-groups_tc96w_1qp7a_187",
|
|
7
|
+
"visible-content-group": "awsui_visible-content-group_tc96w_1qp7a_187",
|
|
8
|
+
"visible-content-title": "awsui_visible-content-title_tc96w_1qp7a_192",
|
|
9
|
+
"visible-content-group-label": "awsui_visible-content-group-label_tc96w_1qp7a_200",
|
|
10
|
+
"visible-content-option": "awsui_visible-content-option_tc96w_1qp7a_206",
|
|
11
|
+
"visible-content-option-label": "awsui_visible-content-option-label_tc96w_1qp7a_217",
|
|
12
|
+
"root": "awsui_root_tc96w_1qp7a_224",
|
|
13
|
+
"modal-root": "awsui_modal-root_tc96w_1qp7a_225",
|
|
14
|
+
"trigger-button": "awsui_trigger-button_tc96w_1qp7a_226",
|
|
15
|
+
"cancel-button": "awsui_cancel-button_tc96w_1qp7a_227",
|
|
16
|
+
"confirm-button": "awsui_confirm-button_tc96w_1qp7a_228",
|
|
17
|
+
"custom": "awsui_custom_tc96w_1qp7a_229",
|
|
18
|
+
"second-column-small": "awsui_second-column-small_tc96w_1qp7a_233",
|
|
19
|
+
"wrap-lines": "awsui_wrap-lines_tc96w_1qp7a_237",
|
|
20
|
+
"page-size": "awsui_page-size_tc96w_1qp7a_238",
|
|
21
|
+
"page-size-form-field": "awsui_page-size-form-field_tc96w_1qp7a_239",
|
|
22
|
+
"page-size-radio-group": "awsui_page-size-radio-group_tc96w_1qp7a_240"
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -182,14 +182,14 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
182
182
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
183
183
|
SPDX-License-Identifier: Apache-2.0
|
|
184
184
|
*/
|
|
185
|
-
.awsui_visible-
|
|
186
|
-
.awsui_visible-content-
|
|
187
|
-
.awsui_visible-content-
|
|
188
|
-
.awsui_visible-content-
|
|
185
|
+
.awsui_visible-content_tc96w_1qp7a_185:not(#\9),
|
|
186
|
+
.awsui_visible-content-toggle_tc96w_1qp7a_186:not(#\9),
|
|
187
|
+
.awsui_visible-content-groups_tc96w_1qp7a_187:not(#\9),
|
|
188
|
+
.awsui_visible-content-group_tc96w_1qp7a_187:not(#\9) {
|
|
189
189
|
/* used in test-utils */
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
.awsui_visible-content-
|
|
192
|
+
.awsui_visible-content-title_tc96w_1qp7a_192:not(#\9) {
|
|
193
193
|
font-size: var(--font-body-m-size-sregvd, 14px);
|
|
194
194
|
line-height: var(--font-body-m-line-height-i7xxvv, 22px);
|
|
195
195
|
font-weight: var(--font-display-label-weight-m18hjh, 700);
|
|
@@ -197,47 +197,46 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
197
197
|
margin-bottom: var(--space-scaled-l-t03y3z, 20px);
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
.awsui_visible-content-group-
|
|
200
|
+
.awsui_visible-content-group-label_tc96w_1qp7a_200:not(#\9) {
|
|
201
201
|
color: var(--color-text-group-label-w9to2i, #414d5c);
|
|
202
202
|
padding-bottom: var(--space-xs-rsr2qu, 8px);
|
|
203
203
|
border-bottom: var(--border-divider-list-width-hacikr, 1px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
.awsui_visible-content-
|
|
206
|
+
.awsui_visible-content-option_tc96w_1qp7a_206:not(#\9) {
|
|
207
207
|
display: flex;
|
|
208
208
|
flex-wrap: nowrap;
|
|
209
209
|
justify-content: space-between;
|
|
210
210
|
padding: var(--space-xs-rsr2qu, 8px) 0px var(--space-xs-rsr2qu, 8px) var(--space-scaled-l-t03y3z, 20px);
|
|
211
211
|
border-bottom: var(--border-divider-list-width-hacikr, 1px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
|
|
212
212
|
}
|
|
213
|
-
.awsui_visible-content-
|
|
213
|
+
.awsui_visible-content-option_tc96w_1qp7a_206:not(#\9):last-child {
|
|
214
214
|
border-bottom: none;
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
-
.awsui_visible-content-option-
|
|
218
|
-
white-space: nowrap;
|
|
217
|
+
.awsui_visible-content-option-label_tc96w_1qp7a_217:not(#\9) {
|
|
219
218
|
overflow: hidden;
|
|
220
219
|
text-overflow: ellipsis;
|
|
221
220
|
padding-right: var(--space-l-4vl6xu, 20px);
|
|
222
221
|
flex-grow: 1;
|
|
223
222
|
}
|
|
224
223
|
|
|
225
|
-
.
|
|
226
|
-
.awsui_modal-
|
|
227
|
-
.awsui_trigger-
|
|
228
|
-
.awsui_cancel-
|
|
229
|
-
.awsui_confirm-
|
|
230
|
-
.
|
|
224
|
+
.awsui_root_tc96w_1qp7a_224:not(#\9),
|
|
225
|
+
.awsui_modal-root_tc96w_1qp7a_225:not(#\9),
|
|
226
|
+
.awsui_trigger-button_tc96w_1qp7a_226:not(#\9),
|
|
227
|
+
.awsui_cancel-button_tc96w_1qp7a_227:not(#\9),
|
|
228
|
+
.awsui_confirm-button_tc96w_1qp7a_228:not(#\9),
|
|
229
|
+
.awsui_custom_tc96w_1qp7a_229:not(#\9) {
|
|
231
230
|
/* used in test-utils */
|
|
232
231
|
}
|
|
233
232
|
|
|
234
|
-
.awsui_second-column-
|
|
233
|
+
.awsui_second-column-small_tc96w_1qp7a_233:not(#\9) {
|
|
235
234
|
padding-top: calc(2 * var(--space-scaled-l-t03y3z, 20px));
|
|
236
235
|
}
|
|
237
236
|
|
|
238
|
-
.awsui_wrap-
|
|
239
|
-
.awsui_page-
|
|
240
|
-
.awsui_page-size-form-
|
|
241
|
-
.awsui_page-size-radio-
|
|
237
|
+
.awsui_wrap-lines_tc96w_1qp7a_237:not(#\9),
|
|
238
|
+
.awsui_page-size_tc96w_1qp7a_238:not(#\9),
|
|
239
|
+
.awsui_page-size-form-field_tc96w_1qp7a_239:not(#\9),
|
|
240
|
+
.awsui_page-size-radio-group_tc96w_1qp7a_240:not(#\9) {
|
|
242
241
|
/* used in test-utils */
|
|
243
242
|
}
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"visible-content": "awsui_visible-
|
|
6
|
-
"visible-content-toggle": "awsui_visible-content-
|
|
7
|
-
"visible-content-groups": "awsui_visible-content-
|
|
8
|
-
"visible-content-group": "awsui_visible-content-
|
|
9
|
-
"visible-content-title": "awsui_visible-content-
|
|
10
|
-
"visible-content-group-label": "awsui_visible-content-group-
|
|
11
|
-
"visible-content-option": "awsui_visible-content-
|
|
12
|
-
"visible-content-option-label": "awsui_visible-content-option-
|
|
13
|
-
"root": "
|
|
14
|
-
"modal-root": "awsui_modal-
|
|
15
|
-
"trigger-button": "awsui_trigger-
|
|
16
|
-
"cancel-button": "awsui_cancel-
|
|
17
|
-
"confirm-button": "awsui_confirm-
|
|
18
|
-
"custom": "
|
|
19
|
-
"second-column-small": "awsui_second-column-
|
|
20
|
-
"wrap-lines": "awsui_wrap-
|
|
21
|
-
"page-size": "awsui_page-
|
|
22
|
-
"page-size-form-field": "awsui_page-size-form-
|
|
23
|
-
"page-size-radio-group": "awsui_page-size-radio-
|
|
5
|
+
"visible-content": "awsui_visible-content_tc96w_1qp7a_185",
|
|
6
|
+
"visible-content-toggle": "awsui_visible-content-toggle_tc96w_1qp7a_186",
|
|
7
|
+
"visible-content-groups": "awsui_visible-content-groups_tc96w_1qp7a_187",
|
|
8
|
+
"visible-content-group": "awsui_visible-content-group_tc96w_1qp7a_187",
|
|
9
|
+
"visible-content-title": "awsui_visible-content-title_tc96w_1qp7a_192",
|
|
10
|
+
"visible-content-group-label": "awsui_visible-content-group-label_tc96w_1qp7a_200",
|
|
11
|
+
"visible-content-option": "awsui_visible-content-option_tc96w_1qp7a_206",
|
|
12
|
+
"visible-content-option-label": "awsui_visible-content-option-label_tc96w_1qp7a_217",
|
|
13
|
+
"root": "awsui_root_tc96w_1qp7a_224",
|
|
14
|
+
"modal-root": "awsui_modal-root_tc96w_1qp7a_225",
|
|
15
|
+
"trigger-button": "awsui_trigger-button_tc96w_1qp7a_226",
|
|
16
|
+
"cancel-button": "awsui_cancel-button_tc96w_1qp7a_227",
|
|
17
|
+
"confirm-button": "awsui_confirm-button_tc96w_1qp7a_228",
|
|
18
|
+
"custom": "awsui_custom_tc96w_1qp7a_229",
|
|
19
|
+
"second-column-small": "awsui_second-column-small_tc96w_1qp7a_233",
|
|
20
|
+
"wrap-lines": "awsui_wrap-lines_tc96w_1qp7a_237",
|
|
21
|
+
"page-size": "awsui_page-size_tc96w_1qp7a_238",
|
|
22
|
+
"page-size-form-field": "awsui_page-size-form-field_tc96w_1qp7a_239",
|
|
23
|
+
"page-size-radio-group": "awsui_page-size-radio-group_tc96w_1qp7a_240"
|
|
24
24
|
};
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DateInputProps } from './interfaces';
|
|
3
3
|
export { DateInputProps };
|
|
4
|
-
declare const DateInput: React.ForwardRefExoticComponent<DateInputProps & React.RefAttributes<
|
|
4
|
+
declare const DateInput: React.ForwardRefExoticComponent<DateInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
5
5
|
export default DateInput;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/date-input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAc,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,yFAYd,CAAC;AAIF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { __assign, __rest } from "tslib";
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { applyDisplayName } from '../internal/utils/apply-display-name';
|
|
6
|
+
import useBaseComponent from '../internal/hooks/use-base-component';
|
|
7
|
+
import InternalDateInput from './internal';
|
|
8
|
+
var DateInput = React.forwardRef(function (_a, ref) {
|
|
9
|
+
var _b = _a.disableBrowserAutocorrect, disableBrowserAutocorrect = _b === void 0 ? true : _b, props = __rest(_a, ["disableBrowserAutocorrect"]);
|
|
10
|
+
var baseComponentProps = useBaseComponent('DateInput');
|
|
11
|
+
return (React.createElement(InternalDateInput, __assign({}, props, baseComponentProps, { disableBrowserAutocorrect: disableBrowserAutocorrect, ref: ref })));
|
|
12
|
+
});
|
|
13
|
+
applyDisplayName(DateInput, 'DateInput');
|
|
14
|
+
export default DateInput;
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date-input/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,OAAO,KAAc,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,iBAAiB,MAAM,YAAY,CAAC;AAI3C,IAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,UAAC,EAA8D,EAAE,GAA0B;IAAxF,IAAA,iCAAgC,EAAhC,yBAAyB,mBAAG,IAAI,KAAA,EAAK,KAAK,cAA5C,6BAA8C,CAAF;IAC3C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,CACL,oBAAC,iBAAiB,eACZ,KAAK,EACL,kBAAkB,IACtB,yBAAyB,EAAE,yBAAyB,EACpD,GAAG,EAAE,GAAG,IACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEzC,eAAe,SAAS,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref } from 'react';\n\nimport { DateInputProps } from './interfaces';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport InternalDateInput from './internal';\n\nexport { DateInputProps };\n\nconst DateInput = React.forwardRef(\n ({ disableBrowserAutocorrect = true, ...props }: DateInputProps, ref: Ref<HTMLInputElement>) => {\n const baseComponentProps = useBaseComponent('DateInput');\n return (\n <InternalDateInput\n {...props}\n {...baseComponentProps}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n ref={ref}\n />\n );\n }\n);\n\napplyDisplayName(DateInput, 'DateInput');\n\nexport default DateInput;\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseInputProps, InputProps } from '../input/interfaces';
|
|
2
|
+
import { BaseComponentProps } from '../internal/base-component';
|
|
3
|
+
import { FormFieldValidationControlProps } from '../internal/context/form-field-context';
|
|
4
|
+
export interface DateInputProps extends BaseInputProps, FormFieldValidationControlProps, BaseComponentProps {
|
|
5
|
+
}
|
|
6
|
+
export declare namespace DateInputProps {
|
|
7
|
+
type Ref = InputProps.Ref;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/date-input/interfaces.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAEzF,MAAM,WAAW,cAAe,SAAQ,cAAc,EAAE,+BAA+B,EAAE,kBAAkB;CAAG;AAE9G,yBAAiB,cAAc,CAAC;IAC9B,KAAY,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/date-input/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { BaseInputProps, InputProps } from '../input/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { FormFieldValidationControlProps } from '../internal/context/form-field-context';\n\nexport interface DateInputProps extends BaseInputProps, FormFieldValidationControlProps, BaseComponentProps {}\n\nexport namespace DateInputProps {\n export type Ref = InputProps.Ref;\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DateInputProps } from './interfaces';
|
|
3
|
+
import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
|
|
4
|
+
declare const InternalDateInput: React.ForwardRefExoticComponent<DateInputProps & InternalBaseComponentProps & React.RefAttributes<HTMLInputElement>>;
|
|
5
|
+
export default InternalDateInput;
|
|
6
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/date-input/internal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAc,MAAM,OAAO,CAAC;AAQnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAoBlF,QAAA,MAAM,iBAAiB,sHAqBtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { __assign, __rest } from "tslib";
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
import { getDaysInMonth } from 'date-fns';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { fireNonCancelableEvent } from '../internal/events';
|
|
8
|
+
import { displayToIso, isoToDisplay, parseDate } from '../internal/utils/date-time';
|
|
9
|
+
import MaskedInput from '../internal/components/masked-input';
|
|
10
|
+
import styles from './styles.css.js';
|
|
11
|
+
function daysMax(value) {
|
|
12
|
+
// force to first day in month, as new Date('2018-02-30') -> March 2nd 2018
|
|
13
|
+
var baseDate = displayToIso(value).substring(0, 7);
|
|
14
|
+
return getDaysInMonth(parseDate(baseDate));
|
|
15
|
+
}
|
|
16
|
+
var maskArgs = {
|
|
17
|
+
separator: '/',
|
|
18
|
+
inputSeparators: ['-', '.', ' '],
|
|
19
|
+
segments: [
|
|
20
|
+
{ min: 0, max: 9999, "default": 2000, length: 4 },
|
|
21
|
+
{ min: 1, max: 12, length: 2 },
|
|
22
|
+
{ min: 1, max: daysMax, length: 2 },
|
|
23
|
+
]
|
|
24
|
+
};
|
|
25
|
+
var InternalDateInput = React.forwardRef(function (_a, ref) {
|
|
26
|
+
var value = _a.value, onChange = _a.onChange, _b = _a.disableBrowserAutocorrect, disableBrowserAutocorrect = _b === void 0 ? true : _b, _c = _a.__internalRootRef, __internalRootRef = _c === void 0 ? null : _c, props = __rest(_a, ["value", "onChange", "disableBrowserAutocorrect", "__internalRootRef"]);
|
|
27
|
+
return (React.createElement(MaskedInput, __assign({ ref: ref }, props, { value: isoToDisplay(value), onChange: function (event) { return fireNonCancelableEvent(onChange, { value: displayToIso(event.detail.value) }); }, className: clsx(styles.root, props.className), mask: maskArgs, autofix: true, autoComplete: false, disableAutocompleteOnBlur: false, disableBrowserAutocorrect: disableBrowserAutocorrect, __internalRootRef: __internalRootRef })));
|
|
28
|
+
});
|
|
29
|
+
export default InternalDateInput;
|
|
30
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/date-input/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAc,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEpF,OAAO,WAAW,MAAM,qCAAqC,CAAC;AAG9D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAMrC,SAAS,OAAO,CAAC,KAAa;IAC5B,2EAA2E;IAC3E,IAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,IAAM,QAAQ,GAAa;IACzB,SAAS,EAAE,GAAG;IACd,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAChC,QAAQ,EAAE;QACR,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/C,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QAC9B,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;KACpC;CACF,CAAC;AAEF,IAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CACxC,UACE,EAAiH,EACjH,GAA0B;IADxB,IAAA,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,iCAAgC,EAAhC,yBAAyB,mBAAG,IAAI,KAAA,EAAE,yBAAwB,EAAxB,iBAAiB,mBAAG,IAAI,KAAA,EAAK,KAAK,cAAvF,uEAAyF,CAAF;IAGvF,OAAO,CACL,oBAAC,WAAW,aACV,GAAG,EAAE,GAAG,IACJ,KAAK,IACT,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,QAAQ,EAAE,UAAA,KAAK,IAAI,OAAA,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAA7E,CAA6E,EAChG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAC7C,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,KAAK,EACnB,yBAAyB,EAAE,KAAK,EAChC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,IACpC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport clsx from 'clsx';\nimport { getDaysInMonth } from 'date-fns';\nimport React, { Ref } from 'react';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { displayToIso, isoToDisplay, parseDate } from '../internal/utils/date-time';\n\nimport MaskedInput from '../internal/components/masked-input';\nimport { MaskArgs } from '../internal/components/masked-input/utils/mask-format';\n\nimport styles from './styles.css.js';\nimport { DateInputProps } from './interfaces';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\n\ntype InternalDateInputProps = DateInputProps & InternalBaseComponentProps;\n\nfunction daysMax(value: string): number {\n // force to first day in month, as new Date('2018-02-30') -> March 2nd 2018\n const baseDate = displayToIso(value).substring(0, 7);\n return getDaysInMonth(parseDate(baseDate));\n}\n\nconst maskArgs: MaskArgs = {\n separator: '/',\n inputSeparators: ['-', '.', ' '],\n segments: [\n { min: 0, max: 9999, default: 2000, length: 4 },\n { min: 1, max: 12, length: 2 },\n { min: 1, max: daysMax, length: 2 },\n ],\n};\n\nconst InternalDateInput = React.forwardRef(\n (\n { value, onChange, disableBrowserAutocorrect = true, __internalRootRef = null, ...props }: InternalDateInputProps,\n ref: Ref<HTMLInputElement>\n ) => {\n return (\n <MaskedInput\n ref={ref}\n {...props}\n value={isoToDisplay(value)}\n onChange={event => fireNonCancelableEvent(onChange, { value: displayToIso(event.detail.value) })}\n className={clsx(styles.root, props.className)}\n mask={maskArgs}\n autofix={true}\n autoComplete={false}\n disableAutocompleteOnBlur={false}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n __internalRootRef={__internalRootRef}\n />\n );\n }\n);\n\nexport default InternalDateInput;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/date-picker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAsB/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,QAAA,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/date-picker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAsB/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,QAAA,MAAM,UAAU,6FA8Jf,CAAC;AAGF,eAAe,UAAU,CAAC"}
|
package/date-picker/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { memoizedDate } from './calendar/utils/memoized-date';
|
|
|
11
11
|
import { KeyCode } from '../internal/keycode';
|
|
12
12
|
import { fireNonCancelableEvent } from '../internal/events';
|
|
13
13
|
import Dropdown from '../internal/components/dropdown';
|
|
14
|
-
import
|
|
14
|
+
import InternalDateInput from '../date-input/internal';
|
|
15
15
|
import { getBaseProps } from '../internal/base-component';
|
|
16
16
|
import { applyDisplayName } from '../internal/utils/apply-display-name.js';
|
|
17
17
|
import checkControlled from '../internal/hooks/check-controlled';
|
|
@@ -60,7 +60,7 @@ var DatePicker = React.forwardRef(function (_a, ref) {
|
|
|
60
60
|
var memoizedValue = memoizedDate('value', value);
|
|
61
61
|
var DateInputElement = (React.createElement("div", { className: styles['date-picker-trigger'] },
|
|
62
62
|
React.createElement("div", { className: styles['date-picker-input'] },
|
|
63
|
-
React.createElement(
|
|
63
|
+
React.createElement(InternalDateInput, { name: name, invalid: invalid, controlId: controlId, ariaLabelledby: ariaLabelledby, ariaDescribedby: ariaDescribedby, ariaLabel: ariaLabel, ariaRequired: ariaRequired, value: value, disabled: disabled, readOnly: readOnly, onChange: onInputChangeHandler, onBlur: onInputBlurHandler, placeholder: placeholder, ref: internalInputRef, autoFocus: autoFocus })),
|
|
64
64
|
React.createElement("div", null,
|
|
65
65
|
React.createElement(InternalButton, { iconName: "calendar", className: styles['open-calendar-button'], onClick: onButtonClickHandler, ref: buttonRef, ariaLabel: openCalendarAriaLabel &&
|
|
66
66
|
openCalendarAriaLabel(value.length === 10 ? getDateLabel(normalizedLocale, memoizedValue) : null), disabled: disabled || readOnly, formAction: "none" }))));
|
package/date-picker/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date-picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { Ref, useCallback, useRef, useState } from 'react';\nimport styles from './styles.css.js';\nimport { DatePickerProps } from './interfaces';\nimport Calendar from './calendar';\nimport { normalizeLocale } from './calendar/utils/locales';\nimport { getDateLabel } from './calendar/utils/intl';\nimport { memoizedDate } from './calendar/utils/memoized-date';\nimport { InputProps } from '../input/interfaces';\nimport { KeyCode } from '../internal/keycode';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport Dropdown from '../internal/components/dropdown';\nimport DateInput from '../internal/components/date-input';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name.js';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { useFocusTracker } from '../internal/hooks/use-focus-tracker.js';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport FocusLock from '../internal/components/focus-lock';\n\nexport { DatePickerProps };\n\nconst DatePicker = React.forwardRef(\n (\n {\n locale = '',\n startOfWeek,\n isDateEnabled,\n nextMonthAriaLabel,\n previousMonthAriaLabel,\n todayAriaLabel,\n placeholder = '',\n value = '',\n readOnly = false,\n disabled = false,\n onBlur,\n autoFocus = false,\n onChange,\n onFocus,\n name,\n ariaLabel,\n ariaRequired,\n ariaLabelledby,\n ariaDescribedby,\n controlId,\n invalid,\n openCalendarAriaLabel,\n expandToViewport,\n ...rest\n }: DatePickerProps,\n ref: Ref<DatePickerProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('DatePicker');\n checkControlled('DatePicker', 'value', value, 'onChange', onChange);\n\n const baseProps = getBaseProps(rest);\n const [isDropDownOpen, setIsDropDownOpen] = useState<boolean>(false);\n const normalizedLocale = normalizeLocale('DatePicker', locale);\n\n const internalInputRef = useRef<HTMLInputElement>(null);\n const buttonRef = useRef<ButtonProps.Ref>(null);\n useForwardFocus(ref, internalInputRef);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const dropdownId = useUniqueId('calender');\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n useFocusTracker({ rootRef, onBlur, onFocus, viewportId: expandToViewport ? dropdownId : '' });\n\n const onDropdownCloseHandler = useCallback(() => setIsDropDownOpen(false), [setIsDropDownOpen]);\n\n const onButtonClickHandler = () => {\n if (!isDropDownOpen) {\n setIsDropDownOpen(true);\n }\n };\n\n const onWrapperKeyDownHandler = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.keyCode === KeyCode.escape && isDropDownOpen) {\n buttonRef.current?.focus();\n setIsDropDownOpen(false);\n }\n };\n\n const onInputChangeHandler: InputProps['onChange'] = event => {\n fireNonCancelableEvent(onChange, { value: event.detail.value });\n };\n\n const onInputBlurHandler: InputProps['onBlur'] = () => {\n if (!isDropDownOpen) {\n setIsDropDownOpen(false);\n }\n };\n\n const memoizedValue = memoizedDate('value', value);\n\n const DateInputElement = (\n <div className={styles['date-picker-trigger']}>\n <div className={styles['date-picker-input']}>\n <DateInput\n name={name}\n invalid={invalid}\n controlId={controlId}\n ariaLabelledby={ariaLabelledby}\n ariaDescribedby={ariaDescribedby}\n ariaLabel={ariaLabel}\n ariaRequired={ariaRequired}\n value={value}\n autoComplete={false}\n disableBrowserAutocorrect={true}\n disableAutocompleteOnBlur={isDropDownOpen}\n disabled={disabled}\n readOnly={readOnly}\n onChange={onInputChangeHandler}\n onBlur={onInputBlurHandler}\n placeholder={placeholder}\n ref={internalInputRef}\n autoFocus={autoFocus}\n />\n </div>\n <div>\n <InternalButton\n iconName=\"calendar\"\n className={styles['open-calendar-button']}\n onClick={onButtonClickHandler}\n ref={buttonRef}\n ariaLabel={\n openCalendarAriaLabel &&\n openCalendarAriaLabel(value.length === 10 ? getDateLabel(normalizedLocale, memoizedValue!) : null)\n }\n disabled={disabled || readOnly}\n formAction=\"none\"\n />\n </div>\n </div>\n );\n\n baseProps.className = clsx(baseProps.className, styles.root, styles['date-picker-container']);\n\n if (readOnly || disabled) {\n return <div {...baseProps}>{DateInputElement}</div>;\n }\n\n const handleMouseDown = (event: React.MouseEvent) => {\n // prevent currently focused element from losing it\n event.preventDefault();\n };\n\n return (\n <div {...baseProps} ref={mergedRef} onKeyDown={onWrapperKeyDownHandler}>\n <Dropdown\n stretchWidth={true}\n stretchHeight={true}\n open={isDropDownOpen}\n onDropdownClose={onDropdownCloseHandler}\n onMouseDown={handleMouseDown}\n trigger={DateInputElement}\n expandToViewport={expandToViewport}\n scrollable={false}\n dropdownId={dropdownId}\n >\n {isDropDownOpen && (\n <FocusLock autoFocus={true}>\n <Calendar\n value={value}\n onChange={e => {\n fireNonCancelableEvent(onChange, e.detail);\n buttonRef?.current?.focus();\n setIsDropDownOpen(false);\n }}\n locale={normalizedLocale}\n startOfWeek={startOfWeek}\n isDateEnabled={isDateEnabled}\n todayAriaLabel={todayAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n previousMonthAriaLabel={previousMonthAriaLabel}\n />\n </FocusLock>\n )}\n </Dropdown>\n </div>\n );\n }\n);\n\napplyDisplayName(DatePicker, 'DatePicker');\nexport default DatePicker;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date-picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { Ref, useCallback, useRef, useState } from 'react';\nimport styles from './styles.css.js';\nimport { DatePickerProps } from './interfaces';\nimport Calendar from './calendar';\nimport { normalizeLocale } from './calendar/utils/locales';\nimport { getDateLabel } from './calendar/utils/intl';\nimport { memoizedDate } from './calendar/utils/memoized-date';\nimport { InputProps } from '../input/interfaces';\nimport { KeyCode } from '../internal/keycode';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport Dropdown from '../internal/components/dropdown';\nimport InternalDateInput from '../date-input/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name.js';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { useFocusTracker } from '../internal/hooks/use-focus-tracker.js';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport FocusLock from '../internal/components/focus-lock';\n\nexport { DatePickerProps };\n\nconst DatePicker = React.forwardRef(\n (\n {\n locale = '',\n startOfWeek,\n isDateEnabled,\n nextMonthAriaLabel,\n previousMonthAriaLabel,\n todayAriaLabel,\n placeholder = '',\n value = '',\n readOnly = false,\n disabled = false,\n onBlur,\n autoFocus = false,\n onChange,\n onFocus,\n name,\n ariaLabel,\n ariaRequired,\n ariaLabelledby,\n ariaDescribedby,\n controlId,\n invalid,\n openCalendarAriaLabel,\n expandToViewport,\n ...rest\n }: DatePickerProps,\n ref: Ref<DatePickerProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('DatePicker');\n checkControlled('DatePicker', 'value', value, 'onChange', onChange);\n\n const baseProps = getBaseProps(rest);\n const [isDropDownOpen, setIsDropDownOpen] = useState<boolean>(false);\n const normalizedLocale = normalizeLocale('DatePicker', locale);\n\n const internalInputRef = useRef<HTMLInputElement>(null);\n const buttonRef = useRef<ButtonProps.Ref>(null);\n useForwardFocus(ref, internalInputRef);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const dropdownId = useUniqueId('calender');\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n useFocusTracker({ rootRef, onBlur, onFocus, viewportId: expandToViewport ? dropdownId : '' });\n\n const onDropdownCloseHandler = useCallback(() => setIsDropDownOpen(false), [setIsDropDownOpen]);\n\n const onButtonClickHandler = () => {\n if (!isDropDownOpen) {\n setIsDropDownOpen(true);\n }\n };\n\n const onWrapperKeyDownHandler = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.keyCode === KeyCode.escape && isDropDownOpen) {\n buttonRef.current?.focus();\n setIsDropDownOpen(false);\n }\n };\n\n const onInputChangeHandler: InputProps['onChange'] = event => {\n fireNonCancelableEvent(onChange, { value: event.detail.value });\n };\n\n const onInputBlurHandler: InputProps['onBlur'] = () => {\n if (!isDropDownOpen) {\n setIsDropDownOpen(false);\n }\n };\n\n const memoizedValue = memoizedDate('value', value);\n\n const DateInputElement = (\n <div className={styles['date-picker-trigger']}>\n <div className={styles['date-picker-input']}>\n <InternalDateInput\n name={name}\n invalid={invalid}\n controlId={controlId}\n ariaLabelledby={ariaLabelledby}\n ariaDescribedby={ariaDescribedby}\n ariaLabel={ariaLabel}\n ariaRequired={ariaRequired}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n onChange={onInputChangeHandler}\n onBlur={onInputBlurHandler}\n placeholder={placeholder}\n ref={internalInputRef}\n autoFocus={autoFocus}\n />\n </div>\n <div>\n <InternalButton\n iconName=\"calendar\"\n className={styles['open-calendar-button']}\n onClick={onButtonClickHandler}\n ref={buttonRef}\n ariaLabel={\n openCalendarAriaLabel &&\n openCalendarAriaLabel(value.length === 10 ? getDateLabel(normalizedLocale, memoizedValue!) : null)\n }\n disabled={disabled || readOnly}\n formAction=\"none\"\n />\n </div>\n </div>\n );\n\n baseProps.className = clsx(baseProps.className, styles.root, styles['date-picker-container']);\n\n if (readOnly || disabled) {\n return <div {...baseProps}>{DateInputElement}</div>;\n }\n\n const handleMouseDown = (event: React.MouseEvent) => {\n // prevent currently focused element from losing it\n event.preventDefault();\n };\n\n return (\n <div {...baseProps} ref={mergedRef} onKeyDown={onWrapperKeyDownHandler}>\n <Dropdown\n stretchWidth={true}\n stretchHeight={true}\n open={isDropDownOpen}\n onDropdownClose={onDropdownCloseHandler}\n onMouseDown={handleMouseDown}\n trigger={DateInputElement}\n expandToViewport={expandToViewport}\n scrollable={false}\n dropdownId={dropdownId}\n >\n {isDropDownOpen && (\n <FocusLock autoFocus={true}>\n <Calendar\n value={value}\n onChange={e => {\n fireNonCancelableEvent(onChange, e.detail);\n buttonRef?.current?.focus();\n setIsDropDownOpen(false);\n }}\n locale={normalizedLocale}\n startOfWeek={startOfWeek}\n isDateEnabled={isDateEnabled}\n todayAriaLabel={todayAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n previousMonthAriaLabel={previousMonthAriaLabel}\n />\n </FocusLock>\n )}\n </Dropdown>\n </div>\n );\n }\n);\n\napplyDisplayName(DatePicker, 'DatePicker');\nexport default DatePicker;\n"]}
|
|
@@ -8,7 +8,7 @@ import { Grids, selectFocusedDate } from './grids';
|
|
|
8
8
|
import moveFocusHandler from '../../date-picker/calendar/utils/move-focus-handler';
|
|
9
9
|
import InternalSpaceBetween from '../../space-between/internal';
|
|
10
10
|
import InternalFormField from '../../form-field/internal';
|
|
11
|
-
import
|
|
11
|
+
import InternalDateInput from '../../date-input/internal';
|
|
12
12
|
import InternalTimeInput from '../../time-input/internal';
|
|
13
13
|
import clsx from 'clsx';
|
|
14
14
|
import { getBaseDate } from './get-base-date.js';
|
|
@@ -206,14 +206,14 @@ function Calendar(_a, ref) {
|
|
|
206
206
|
React.createElement("div", { className: styles['date-and-time-wrapper'] },
|
|
207
207
|
React.createElement("div", { className: styles['date-and-time-wrapper__date'] },
|
|
208
208
|
React.createElement(InternalFormField, { label: i18nStrings.startDateLabel, stretch: true },
|
|
209
|
-
React.createElement(
|
|
209
|
+
React.createElement(InternalDateInput, { value: startDateString, className: styles['start-date-input'], onChange: onChangeStartDate, placeholder: "YYYY/MM/DD", ariaDescribedby: constrainttextId }))),
|
|
210
210
|
!dateOnly && (React.createElement("div", { className: styles['date-and-time-wrapper__time'] },
|
|
211
211
|
React.createElement(InternalFormField, { label: i18nStrings.startTimeLabel, stretch: true },
|
|
212
212
|
React.createElement(InternalTimeInput, { value: startTimeString, onChange: function (e) { return setStartTimeString(e.detail.value); }, format: timeInputFormat, placeholder: timeInputFormat, className: styles['start-time-input'], ariaDescribedby: constrainttextId }))))),
|
|
213
213
|
React.createElement("div", { className: styles['date-and-time-wrapper'] },
|
|
214
214
|
React.createElement("div", { className: styles['date-and-time-wrapper__date'] },
|
|
215
215
|
React.createElement(InternalFormField, { label: i18nStrings.endDateLabel, stretch: true },
|
|
216
|
-
React.createElement(
|
|
216
|
+
React.createElement(InternalDateInput, { value: endDateString, className: styles['end-date-input'], onChange: onChangeEndDate, placeholder: "YYYY/MM/DD", ariaDescribedby: constrainttextId }))),
|
|
217
217
|
!dateOnly && (React.createElement("div", { className: styles['date-and-time-wrapper__time'] },
|
|
218
218
|
React.createElement(InternalFormField, { label: i18nStrings.endTimeLabel, stretch: true },
|
|
219
219
|
React.createElement(InternalTimeInput, { value: endTimeString, onChange: function (e) { return setEndTimeString(e.detail.value); }, format: timeInputFormat, placeholder: timeInputFormat, className: styles['end-time-input'], ariaDescribedby: constrainttextId })))))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/date-range-picker/calendar/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { addMonths, endOfDay, isBefore, startOfDay, startOfMonth, isAfter, isSameMonth } from 'date-fns';\nimport styles from '../styles.css.js';\nimport { BaseComponentProps } from '../../internal/base-component';\nimport { DateRangePickerProps, Focusable } from '../interfaces';\nimport CalendarHeader from './header';\nimport { Grids, selectFocusedDate } from './grids';\nimport moveFocusHandler from '../../date-picker/calendar/utils/move-focus-handler';\nimport InternalSpaceBetween from '../../space-between/internal';\nimport InternalFormField from '../../form-field/internal';\nimport { InputProps } from '../../input/interfaces';\nimport DateInput from '../../internal/components/date-input';\nimport { TimeInputProps } from '../../time-input/interfaces';\nimport InternalTimeInput from '../../time-input/internal';\nimport clsx from 'clsx';\nimport { getBaseDate } from './get-base-date.js';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { getDateLabel, renderTimeLabel } from '../../date-picker/calendar/utils/intl';\nimport LiveRegion from '../../internal/components/live-region';\nimport { normalizeStartOfWeek } from '../../date-picker/calendar/utils/locales';\nimport { formatDate, formatTime, joinDateTime, parseDate } from '../../internal/utils/date-time';\n\nexport interface DateChangeHandler {\n (detail: Date): void;\n}\n\nexport interface MonthChangeHandler {\n (newMonth: Date): void;\n}\n\nexport type DayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\ninterface HeaderChangeMonthHandler {\n (isPreviousButtonClick?: boolean): void;\n}\n\nexport interface CalendarProps extends BaseComponentProps {\n locale: string;\n startOfWeek: number | undefined;\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n onSelectDateRange: (value: DateRangePickerProps.AbsoluteValue) => void;\n initialStartDate: string | undefined;\n initialEndDate: string | undefined;\n i18nStrings: DateRangePickerProps.I18nStrings;\n dateOnly: boolean;\n timeInputFormat: TimeInputProps.Format;\n isSingleGrid: boolean;\n}\n\nexport default forwardRef(Calendar);\n\nfunction Calendar(\n {\n locale,\n startOfWeek,\n isDateEnabled,\n onSelectDateRange,\n initialEndDate = '',\n initialStartDate = '',\n i18nStrings,\n dateOnly,\n isSingleGrid,\n timeInputFormat,\n }: CalendarProps,\n ref: React.Ref<Focusable>\n) {\n const elementRef = useRef<HTMLDivElement>(null);\n\n const normalizedStartOfWeek = normalizeStartOfWeek(startOfWeek, locale);\n\n useImperativeHandle(ref, () => ({\n focus() {\n if (elementRef.current) {\n const prevButton = elementRef.current.getElementsByClassName(styles['calendar-prev-month-btn'])[0];\n (prevButton as undefined | HTMLButtonElement)?.focus();\n }\n },\n }));\n\n const [initialStartDateString = '', initialStartTimeString = ''] = initialStartDate.split('T');\n const [initialEndDateString = '', initialEndTimeString = ''] = initialEndDate.split('T');\n\n const [startDateString, setStartDateString] = useState(initialStartDateString);\n const [startTimeString, setStartTimeString] = useState(initialStartTimeString);\n\n const [endDateString, setEndDateString] = useState(initialEndDateString);\n const [endTimeString, setEndTimeString] = useState(initialEndTimeString);\n\n const selectedStartDate = parseDate(startDateString, true);\n const selectedEndDate = parseDate(endDateString, true);\n\n const [announcement, setAnnouncement] = useState('');\n\n const [currentMonth, setCurrentMonth] = useState(() => {\n if (startDateString) {\n const startDate = parseDate(startDateString);\n if (isSingleGrid) {\n return startOfMonth(startDate);\n }\n return startOfMonth(addMonths(startDate, 1));\n }\n if (endDateString) {\n return startOfMonth(parseDate(endDateString));\n }\n return startOfMonth(Date.now());\n });\n\n const [focusedDate, setFocusedDate] = useState<Date | null>(() => {\n if (selectedStartDate) {\n if (isSameMonth(selectedStartDate, currentMonth)) {\n return selectedStartDate;\n }\n if (!isSingleGrid && isSameMonth(selectedStartDate, addMonths(currentMonth, -1))) {\n return selectedStartDate;\n }\n }\n return selectFocusedDate(selectedStartDate, currentMonth, isDateEnabled);\n });\n\n useEffect(() => {\n // This effect \"synchronizes\" the local state update back up to the overall DateRangePicker component\n\n const startDate = joinDateTime(startDateString, startTimeString);\n const endDate = joinDateTime(endDateString, endTimeString);\n\n if (startDate !== initialStartDate || endDate !== initialEndDate) {\n onSelectDateRange({\n startDate,\n endDate,\n type: 'absolute',\n });\n }\n }, [\n startDateString,\n startTimeString,\n endDateString,\n endTimeString,\n onSelectDateRange,\n initialStartDate,\n initialEndDate,\n ]);\n\n const onSelectDateHandler = (selectedDate: Date) => {\n // recommended to include the start/end time announced with the selection\n // because the user is not aware of the fact that a start/end time is also set as soon as they select a date\n const announceStart = (startDate: Date) => {\n return (\n i18nStrings.startDateLabel +\n ', ' +\n getDateLabel(locale, startDate) +\n ', ' +\n i18nStrings.startTimeLabel +\n ', ' +\n renderTimeLabel(locale, startDate, timeInputFormat) +\n '. '\n );\n };\n\n const announceEnd = (endDate: Date) => {\n return (\n i18nStrings.endDateLabel +\n ', ' +\n getDateLabel(locale, endDate) +\n ', ' +\n i18nStrings.endTimeLabel +\n ', ' +\n renderTimeLabel(locale, endDate, timeInputFormat) +\n '. '\n );\n };\n\n const announceRange = (startDate: Date, endDate: Date) => {\n if (!i18nStrings.renderSelectedAbsoluteRangeAriaLive) {\n return `${getDateLabel(locale, startDate)} – ${getDateLabel(locale, endDate)}`;\n }\n return i18nStrings.renderSelectedAbsoluteRangeAriaLive(\n getDateLabel(locale, startDate),\n getDateLabel(locale, endDate)\n );\n };\n\n // If both fields are empty, we set the start date\n if (!startDateString && !endDateString) {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n setAnnouncement(announceStart(startDate));\n return;\n }\n\n // If both fields are set, we start new\n if (startDateString && endDateString) {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString('');\n setEndTimeString('');\n setAnnouncement(announceStart(startDate));\n return;\n }\n\n // If only the END date is empty, we fill it (and swap dates if needed)\n if (startDateString && !endDateString) {\n const parsedStartDate = parseDate(startDateString);\n\n if (isBefore(selectedDate, parsedStartDate)) {\n // The user has selected the range backwards, so we swap start and end\n\n const startDate = startOfDay(selectedDate);\n const endDate = endOfDay(parsedStartDate);\n\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceStart(startDate) + announceRange(startDate, endDate));\n } else {\n const endDate = endOfDay(selectedDate);\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceEnd(endDate) + announceRange(parsedStartDate, endDate));\n }\n return;\n }\n\n // If only the START date is empty, we fill it (and swap dates if needed)\n if (!startDateString && endDateString) {\n const existingEndDate = parseDate(endDateString);\n\n if (isAfter(selectedDate, existingEndDate)) {\n // The user has selected the range backwards, so we swap start and end\n\n const startDate = startOfDay(existingEndDate);\n const endDate = endOfDay(selectedDate);\n\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceEnd(endDate) + announceRange(startDate, endDate));\n } else {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n setAnnouncement(announceStart(startDate) + announceRange(startDate, existingEndDate));\n }\n return;\n }\n // All possible conditions are covered above\n };\n\n const onHeaderChangeMonthHandler: HeaderChangeMonthHandler = isPrevious => {\n const newCurrentMonth = addMonths(currentMonth, isPrevious ? -1 : 1);\n setCurrentMonth(newCurrentMonth);\n\n const newBaseDateMonth = isSingleGrid ? newCurrentMonth : addMonths(newCurrentMonth, -1);\n const newBaseDate = getBaseDate(newBaseDateMonth, 1, isDateEnabled);\n setFocusedDate(newBaseDate);\n };\n\n const onChangeStartDate: InputProps['onChange'] = e => {\n setStartDateString(e.detail.value);\n\n if (e.detail.value.length >= 8) {\n const newCurrentMonth = startOfMonth(parseDate(e.detail.value));\n setCurrentMonth(isSingleGrid ? newCurrentMonth : addMonths(newCurrentMonth, 1));\n }\n };\n\n const onChangeEndDate: InputProps['onChange'] = e => {\n setEndDateString(e.detail.value);\n };\n\n let constrainttextId = useUniqueId('awsui-area-date-range-picker');\n constrainttextId = i18nStrings.dateTimeConstraintText ? constrainttextId : '';\n\n return (\n <>\n <InternalSpaceBetween size=\"m\">\n <div\n className={clsx(styles.calendar, {\n [styles['one-grid']]: isSingleGrid,\n })}\n role=\"application\"\n ref={elementRef}\n >\n <CalendarHeader\n baseDate={currentMonth}\n locale={locale}\n onChangeMonth={onHeaderChangeMonthHandler}\n previousMonthLabel={i18nStrings.previousMonthAriaLabel}\n nextMonthLabel={i18nStrings.nextMonthAriaLabel}\n isSingleGrid={isSingleGrid}\n />\n\n <Grids\n isSingleGrid={isSingleGrid}\n locale={locale}\n baseDate={currentMonth}\n focusedDate={focusedDate}\n onFocusedDateChange={setFocusedDate}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDateHandler}\n onChangeMonth={setCurrentMonth}\n startOfWeek={normalizedStartOfWeek}\n todayAriaLabel={i18nStrings.todayAriaLabel}\n selectedStartDate={selectedStartDate}\n selectedEndDate={selectedEndDate}\n handleFocusMove={moveFocusHandler}\n />\n </div>\n <InternalSpaceBetween direction=\"vertical\" size=\"xxs\">\n <InternalSpaceBetween size=\"xs\" direction={isSingleGrid ? 'vertical' : 'horizontal'}>\n <div className={styles['date-and-time-wrapper']}>\n <div className={styles['date-and-time-wrapper__date']}>\n <InternalFormField label={i18nStrings.startDateLabel} stretch={true}>\n <DateInput\n value={startDateString}\n autoComplete={false}\n disableBrowserAutocorrect={true}\n disableAutocompleteOnBlur={false}\n className={styles['start-date-input']}\n onChange={onChangeStartDate}\n placeholder=\"YYYY/MM/DD\"\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n {!dateOnly && (\n <div className={styles['date-and-time-wrapper__time']}>\n <InternalFormField label={i18nStrings.startTimeLabel} stretch={true}>\n <InternalTimeInput\n value={startTimeString}\n onChange={e => setStartTimeString(e.detail.value)}\n format={timeInputFormat}\n placeholder={timeInputFormat}\n className={styles['start-time-input']}\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n )}\n </div>\n\n <div className={styles['date-and-time-wrapper']}>\n <div className={styles['date-and-time-wrapper__date']}>\n <InternalFormField label={i18nStrings.endDateLabel} stretch={true}>\n <DateInput\n value={endDateString}\n autoComplete={false}\n disableBrowserAutocorrect={true}\n disableAutocompleteOnBlur={false}\n className={styles['end-date-input']}\n onChange={onChangeEndDate}\n placeholder=\"YYYY/MM/DD\"\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n {!dateOnly && (\n <div className={styles['date-and-time-wrapper__time']}>\n <InternalFormField label={i18nStrings.endTimeLabel} stretch={true}>\n <InternalTimeInput\n value={endTimeString}\n onChange={e => setEndTimeString(e.detail.value)}\n format={timeInputFormat}\n placeholder={timeInputFormat}\n className={styles['end-time-input']}\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n )}\n </div>\n </InternalSpaceBetween>\n {i18nStrings.dateTimeConstraintText && (\n <div className={styles['date-and-time-constrainttext']} id={constrainttextId}>\n {i18nStrings.dateTimeConstraintText}\n </div>\n )}\n </InternalSpaceBetween>\n </InternalSpaceBetween>\n <LiveRegion>\n <span className={styles['calendar-aria-live']}>{announcement}</span>\n </LiveRegion>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/date-range-picker/calendar/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { addMonths, endOfDay, isBefore, startOfDay, startOfMonth, isAfter, isSameMonth } from 'date-fns';\nimport styles from '../styles.css.js';\nimport { BaseComponentProps } from '../../internal/base-component';\nimport { DateRangePickerProps, Focusable } from '../interfaces';\nimport CalendarHeader from './header';\nimport { Grids, selectFocusedDate } from './grids';\nimport moveFocusHandler from '../../date-picker/calendar/utils/move-focus-handler';\nimport InternalSpaceBetween from '../../space-between/internal';\nimport InternalFormField from '../../form-field/internal';\nimport { InputProps } from '../../input/interfaces';\nimport InternalDateInput from '../../date-input/internal';\nimport { TimeInputProps } from '../../time-input/interfaces';\nimport InternalTimeInput from '../../time-input/internal';\nimport clsx from 'clsx';\nimport { getBaseDate } from './get-base-date.js';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { getDateLabel, renderTimeLabel } from '../../date-picker/calendar/utils/intl';\nimport LiveRegion from '../../internal/components/live-region';\nimport { normalizeStartOfWeek } from '../../date-picker/calendar/utils/locales';\nimport { formatDate, formatTime, joinDateTime, parseDate } from '../../internal/utils/date-time';\n\nexport interface DateChangeHandler {\n (detail: Date): void;\n}\n\nexport interface MonthChangeHandler {\n (newMonth: Date): void;\n}\n\nexport type DayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\ninterface HeaderChangeMonthHandler {\n (isPreviousButtonClick?: boolean): void;\n}\n\nexport interface CalendarProps extends BaseComponentProps {\n locale: string;\n startOfWeek: number | undefined;\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n onSelectDateRange: (value: DateRangePickerProps.AbsoluteValue) => void;\n initialStartDate: string | undefined;\n initialEndDate: string | undefined;\n i18nStrings: DateRangePickerProps.I18nStrings;\n dateOnly: boolean;\n timeInputFormat: TimeInputProps.Format;\n isSingleGrid: boolean;\n}\n\nexport default forwardRef(Calendar);\n\nfunction Calendar(\n {\n locale,\n startOfWeek,\n isDateEnabled,\n onSelectDateRange,\n initialEndDate = '',\n initialStartDate = '',\n i18nStrings,\n dateOnly,\n isSingleGrid,\n timeInputFormat,\n }: CalendarProps,\n ref: React.Ref<Focusable>\n) {\n const elementRef = useRef<HTMLDivElement>(null);\n\n const normalizedStartOfWeek = normalizeStartOfWeek(startOfWeek, locale);\n\n useImperativeHandle(ref, () => ({\n focus() {\n if (elementRef.current) {\n const prevButton = elementRef.current.getElementsByClassName(styles['calendar-prev-month-btn'])[0];\n (prevButton as undefined | HTMLButtonElement)?.focus();\n }\n },\n }));\n\n const [initialStartDateString = '', initialStartTimeString = ''] = initialStartDate.split('T');\n const [initialEndDateString = '', initialEndTimeString = ''] = initialEndDate.split('T');\n\n const [startDateString, setStartDateString] = useState(initialStartDateString);\n const [startTimeString, setStartTimeString] = useState(initialStartTimeString);\n\n const [endDateString, setEndDateString] = useState(initialEndDateString);\n const [endTimeString, setEndTimeString] = useState(initialEndTimeString);\n\n const selectedStartDate = parseDate(startDateString, true);\n const selectedEndDate = parseDate(endDateString, true);\n\n const [announcement, setAnnouncement] = useState('');\n\n const [currentMonth, setCurrentMonth] = useState(() => {\n if (startDateString) {\n const startDate = parseDate(startDateString);\n if (isSingleGrid) {\n return startOfMonth(startDate);\n }\n return startOfMonth(addMonths(startDate, 1));\n }\n if (endDateString) {\n return startOfMonth(parseDate(endDateString));\n }\n return startOfMonth(Date.now());\n });\n\n const [focusedDate, setFocusedDate] = useState<Date | null>(() => {\n if (selectedStartDate) {\n if (isSameMonth(selectedStartDate, currentMonth)) {\n return selectedStartDate;\n }\n if (!isSingleGrid && isSameMonth(selectedStartDate, addMonths(currentMonth, -1))) {\n return selectedStartDate;\n }\n }\n return selectFocusedDate(selectedStartDate, currentMonth, isDateEnabled);\n });\n\n useEffect(() => {\n // This effect \"synchronizes\" the local state update back up to the overall DateRangePicker component\n\n const startDate = joinDateTime(startDateString, startTimeString);\n const endDate = joinDateTime(endDateString, endTimeString);\n\n if (startDate !== initialStartDate || endDate !== initialEndDate) {\n onSelectDateRange({\n startDate,\n endDate,\n type: 'absolute',\n });\n }\n }, [\n startDateString,\n startTimeString,\n endDateString,\n endTimeString,\n onSelectDateRange,\n initialStartDate,\n initialEndDate,\n ]);\n\n const onSelectDateHandler = (selectedDate: Date) => {\n // recommended to include the start/end time announced with the selection\n // because the user is not aware of the fact that a start/end time is also set as soon as they select a date\n const announceStart = (startDate: Date) => {\n return (\n i18nStrings.startDateLabel +\n ', ' +\n getDateLabel(locale, startDate) +\n ', ' +\n i18nStrings.startTimeLabel +\n ', ' +\n renderTimeLabel(locale, startDate, timeInputFormat) +\n '. '\n );\n };\n\n const announceEnd = (endDate: Date) => {\n return (\n i18nStrings.endDateLabel +\n ', ' +\n getDateLabel(locale, endDate) +\n ', ' +\n i18nStrings.endTimeLabel +\n ', ' +\n renderTimeLabel(locale, endDate, timeInputFormat) +\n '. '\n );\n };\n\n const announceRange = (startDate: Date, endDate: Date) => {\n if (!i18nStrings.renderSelectedAbsoluteRangeAriaLive) {\n return `${getDateLabel(locale, startDate)} – ${getDateLabel(locale, endDate)}`;\n }\n return i18nStrings.renderSelectedAbsoluteRangeAriaLive(\n getDateLabel(locale, startDate),\n getDateLabel(locale, endDate)\n );\n };\n\n // If both fields are empty, we set the start date\n if (!startDateString && !endDateString) {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n setAnnouncement(announceStart(startDate));\n return;\n }\n\n // If both fields are set, we start new\n if (startDateString && endDateString) {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString('');\n setEndTimeString('');\n setAnnouncement(announceStart(startDate));\n return;\n }\n\n // If only the END date is empty, we fill it (and swap dates if needed)\n if (startDateString && !endDateString) {\n const parsedStartDate = parseDate(startDateString);\n\n if (isBefore(selectedDate, parsedStartDate)) {\n // The user has selected the range backwards, so we swap start and end\n\n const startDate = startOfDay(selectedDate);\n const endDate = endOfDay(parsedStartDate);\n\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceStart(startDate) + announceRange(startDate, endDate));\n } else {\n const endDate = endOfDay(selectedDate);\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceEnd(endDate) + announceRange(parsedStartDate, endDate));\n }\n return;\n }\n\n // If only the START date is empty, we fill it (and swap dates if needed)\n if (!startDateString && endDateString) {\n const existingEndDate = parseDate(endDateString);\n\n if (isAfter(selectedDate, existingEndDate)) {\n // The user has selected the range backwards, so we swap start and end\n\n const startDate = startOfDay(existingEndDate);\n const endDate = endOfDay(selectedDate);\n\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n\n setEndDateString(formatDate(endDate));\n setEndTimeString(formatTime(endDate));\n setAnnouncement(announceEnd(endDate) + announceRange(startDate, endDate));\n } else {\n const startDate = startOfDay(selectedDate);\n setStartDateString(formatDate(startDate));\n setStartTimeString(formatTime(startDate));\n setAnnouncement(announceStart(startDate) + announceRange(startDate, existingEndDate));\n }\n return;\n }\n // All possible conditions are covered above\n };\n\n const onHeaderChangeMonthHandler: HeaderChangeMonthHandler = isPrevious => {\n const newCurrentMonth = addMonths(currentMonth, isPrevious ? -1 : 1);\n setCurrentMonth(newCurrentMonth);\n\n const newBaseDateMonth = isSingleGrid ? newCurrentMonth : addMonths(newCurrentMonth, -1);\n const newBaseDate = getBaseDate(newBaseDateMonth, 1, isDateEnabled);\n setFocusedDate(newBaseDate);\n };\n\n const onChangeStartDate: InputProps['onChange'] = e => {\n setStartDateString(e.detail.value);\n\n if (e.detail.value.length >= 8) {\n const newCurrentMonth = startOfMonth(parseDate(e.detail.value));\n setCurrentMonth(isSingleGrid ? newCurrentMonth : addMonths(newCurrentMonth, 1));\n }\n };\n\n const onChangeEndDate: InputProps['onChange'] = e => {\n setEndDateString(e.detail.value);\n };\n\n let constrainttextId = useUniqueId('awsui-area-date-range-picker');\n constrainttextId = i18nStrings.dateTimeConstraintText ? constrainttextId : '';\n\n return (\n <>\n <InternalSpaceBetween size=\"m\">\n <div\n className={clsx(styles.calendar, {\n [styles['one-grid']]: isSingleGrid,\n })}\n role=\"application\"\n ref={elementRef}\n >\n <CalendarHeader\n baseDate={currentMonth}\n locale={locale}\n onChangeMonth={onHeaderChangeMonthHandler}\n previousMonthLabel={i18nStrings.previousMonthAriaLabel}\n nextMonthLabel={i18nStrings.nextMonthAriaLabel}\n isSingleGrid={isSingleGrid}\n />\n\n <Grids\n isSingleGrid={isSingleGrid}\n locale={locale}\n baseDate={currentMonth}\n focusedDate={focusedDate}\n onFocusedDateChange={setFocusedDate}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDateHandler}\n onChangeMonth={setCurrentMonth}\n startOfWeek={normalizedStartOfWeek}\n todayAriaLabel={i18nStrings.todayAriaLabel}\n selectedStartDate={selectedStartDate}\n selectedEndDate={selectedEndDate}\n handleFocusMove={moveFocusHandler}\n />\n </div>\n <InternalSpaceBetween direction=\"vertical\" size=\"xxs\">\n <InternalSpaceBetween size=\"xs\" direction={isSingleGrid ? 'vertical' : 'horizontal'}>\n <div className={styles['date-and-time-wrapper']}>\n <div className={styles['date-and-time-wrapper__date']}>\n <InternalFormField label={i18nStrings.startDateLabel} stretch={true}>\n <InternalDateInput\n value={startDateString}\n className={styles['start-date-input']}\n onChange={onChangeStartDate}\n placeholder=\"YYYY/MM/DD\"\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n {!dateOnly && (\n <div className={styles['date-and-time-wrapper__time']}>\n <InternalFormField label={i18nStrings.startTimeLabel} stretch={true}>\n <InternalTimeInput\n value={startTimeString}\n onChange={e => setStartTimeString(e.detail.value)}\n format={timeInputFormat}\n placeholder={timeInputFormat}\n className={styles['start-time-input']}\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n )}\n </div>\n\n <div className={styles['date-and-time-wrapper']}>\n <div className={styles['date-and-time-wrapper__date']}>\n <InternalFormField label={i18nStrings.endDateLabel} stretch={true}>\n <InternalDateInput\n value={endDateString}\n className={styles['end-date-input']}\n onChange={onChangeEndDate}\n placeholder=\"YYYY/MM/DD\"\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n {!dateOnly && (\n <div className={styles['date-and-time-wrapper__time']}>\n <InternalFormField label={i18nStrings.endTimeLabel} stretch={true}>\n <InternalTimeInput\n value={endTimeString}\n onChange={e => setEndTimeString(e.detail.value)}\n format={timeInputFormat}\n placeholder={timeInputFormat}\n className={styles['end-time-input']}\n ariaDescribedby={constrainttextId}\n />\n </InternalFormField>\n </div>\n )}\n </div>\n </InternalSpaceBetween>\n {i18nStrings.dateTimeConstraintText && (\n <div className={styles['date-and-time-constrainttext']} id={constrainttextId}>\n {i18nStrings.dateTimeConstraintText}\n </div>\n )}\n </InternalSpaceBetween>\n </InternalSpaceBetween>\n <LiveRegion>\n <span className={styles['calendar-aria-live']}>{announcement}</span>\n </LiveRegion>\n </>\n );\n}\n"]}
|
package/internal/environment.js
CHANGED