@dreamcommerce/aurora 3.1.51 → 3.1.52-2

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.
Files changed (104) hide show
  1. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/styled_day_picker.js +1 -1
  2. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js +0 -1
  3. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  4. package/build/cjs/packages/aurora/src/components/date_and_time_picker/date_time_picker.js +16 -27
  5. package/build/cjs/packages/aurora/src/components/date_and_time_picker/date_time_picker.js.map +1 -1
  6. package/build/cjs/packages/aurora/src/components/date_picker/components/date_picker_input.js +43 -11
  7. package/build/cjs/packages/aurora/src/components/date_picker/components/date_picker_input.js.map +1 -1
  8. package/build/cjs/packages/aurora/src/components/date_picker/date_picker.js +93 -13
  9. package/build/cjs/packages/aurora/src/components/date_picker/date_picker.js.map +1 -1
  10. package/build/cjs/packages/aurora/src/components/date_picker/date_picker_utils.js +203 -4
  11. package/build/cjs/packages/aurora/src/components/date_picker/date_picker_utils.js.map +1 -1
  12. package/build/cjs/packages/aurora/src/components/input_mask/hooks/hooks.js +196 -0
  13. package/build/cjs/packages/aurora/src/components/input_mask/hooks/hooks.js.map +1 -0
  14. package/build/cjs/packages/aurora/src/components/input_mask/input-mask-constants.js +14 -0
  15. package/build/cjs/packages/aurora/src/components/input_mask/input-mask-constants.js.map +1 -0
  16. package/build/cjs/packages/aurora/src/components/input_mask/input_mask.js +360 -0
  17. package/build/cjs/packages/aurora/src/components/input_mask/input_mask.js.map +1 -0
  18. package/build/cjs/packages/aurora/src/components/input_mask/utils/defer.js +16 -0
  19. package/build/cjs/packages/aurora/src/components/input_mask/utils/defer.js.map +1 -0
  20. package/build/cjs/packages/aurora/src/components/input_mask/utils/helpers.js +50 -0
  21. package/build/cjs/packages/aurora/src/components/input_mask/utils/helpers.js.map +1 -0
  22. package/build/cjs/packages/aurora/src/components/input_mask/utils/input.js +33 -0
  23. package/build/cjs/packages/aurora/src/components/input_mask/utils/input.js.map +1 -0
  24. package/build/cjs/packages/aurora/src/components/input_mask/utils/mask.js +371 -0
  25. package/build/cjs/packages/aurora/src/components/input_mask/utils/mask.js.map +1 -0
  26. package/build/cjs/packages/aurora/src/components/input_mask/utils/parse-mask.js +94 -0
  27. package/build/cjs/packages/aurora/src/components/input_mask/utils/parse-mask.js.map +1 -0
  28. package/build/cjs/packages/aurora/src/components/input_mask/utils/validate-props.js +37 -0
  29. package/build/cjs/packages/aurora/src/components/input_mask/utils/validate-props.js.map +1 -0
  30. package/build/cjs/packages/aurora/src/components/time_picker/components/time_picker_input.js +30 -10
  31. package/build/cjs/packages/aurora/src/components/time_picker/components/time_picker_input.js.map +1 -1
  32. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js +85 -50
  33. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  34. package/build/cjs/packages/aurora/src/components/time_picker/time_picker_utils.js +62 -1
  35. package/build/cjs/packages/aurora/src/components/time_picker/time_picker_utils.js.map +1 -1
  36. package/build/cjs/packages/aurora/src/index.js +2 -0
  37. package/build/cjs/packages/aurora/src/index.js.map +1 -1
  38. package/build/cjs/packages/aurora/src/translations/en.json.js +5 -1
  39. package/build/cjs/packages/aurora/src/translations/en.json.js.map +1 -1
  40. package/build/cjs/packages/aurora/src/translations/pl.json.js +5 -1
  41. package/build/cjs/packages/aurora/src/translations/pl.json.js.map +1 -1
  42. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/styled_day_picker.js +1 -1
  43. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js +0 -1
  44. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  45. package/build/esm/packages/aurora/src/components/date_and_time_picker/date_time_picker.js +16 -27
  46. package/build/esm/packages/aurora/src/components/date_and_time_picker/date_time_picker.js.map +1 -1
  47. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.d.ts +4 -1
  48. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.js +43 -11
  49. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.js.map +1 -1
  50. package/build/esm/packages/aurora/src/components/date_picker/date_picker.d.ts +1 -1
  51. package/build/esm/packages/aurora/src/components/date_picker/date_picker.js +94 -14
  52. package/build/esm/packages/aurora/src/components/date_picker/date_picker.js.map +1 -1
  53. package/build/esm/packages/aurora/src/components/date_picker/date_picker_types.d.ts +1 -1
  54. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.d.ts +19 -2
  55. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.js +203 -4
  56. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.js.map +1 -1
  57. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.d.ts +10 -0
  58. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.js +190 -0
  59. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.js.map +1 -0
  60. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.d.ts +6 -0
  61. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.js +9 -0
  62. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.js.map +1 -0
  63. package/build/esm/packages/aurora/src/components/input_mask/input_mask.d.ts +4 -0
  64. package/build/esm/packages/aurora/src/components/input_mask/input_mask.js +352 -0
  65. package/build/esm/packages/aurora/src/components/input_mask/input_mask.js.map +1 -0
  66. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.d.ts +39 -0
  67. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.js +2 -0
  68. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.js.map +1 -0
  69. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.d.ts +2 -0
  70. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.js +11 -0
  71. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.js.map +1 -0
  72. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.d.ts +7 -0
  73. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.js +40 -0
  74. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.js.map +1 -0
  75. package/build/esm/packages/aurora/src/components/input_mask/utils/input.d.ts +9 -0
  76. package/build/esm/packages/aurora/src/components/input_mask/utils/input.js +29 -0
  77. package/build/esm/packages/aurora/src/components/input_mask/utils/input.js.map +1 -0
  78. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.d.ts +63 -0
  79. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.js +367 -0
  80. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.js.map +1 -0
  81. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.d.ts +7 -0
  82. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.js +90 -0
  83. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.js.map +1 -0
  84. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.d.ts +4 -0
  85. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.js +31 -0
  86. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.js.map +1 -0
  87. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.d.ts +2 -1
  88. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.js +30 -10
  89. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.js.map +1 -1
  90. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js +87 -52
  91. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  92. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.d.ts +11 -0
  93. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.js +62 -1
  94. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.js.map +1 -1
  95. package/build/esm/packages/aurora/src/index.d.ts +2 -0
  96. package/build/esm/packages/aurora/src/index.js +1 -0
  97. package/build/esm/packages/aurora/src/index.js.map +1 -1
  98. package/build/esm/packages/aurora/src/translations/en.json +5 -1
  99. package/build/esm/packages/aurora/src/translations/en.json.js +5 -1
  100. package/build/esm/packages/aurora/src/translations/en.json.js.map +1 -1
  101. package/build/esm/packages/aurora/src/translations/pl.json +5 -1
  102. package/build/esm/packages/aurora/src/translations/pl.json.js +5 -1
  103. package/build/esm/packages/aurora/src/translations/pl.json.js.map +1 -1
  104. package/package.json +1 -1
@@ -51,7 +51,7 @@ var StyledDayPicker = function StyledDayPicker(_ref) {
51
51
  weekdays: 'aurora-text-subtle-light aurora-text-xs aurora-font-normal aurora-capitalize',
52
52
  weekday: 'aurora-font-normal',
53
53
  // Day cells
54
- day: 'aurora-h-8 aurora-w-8 aurora-rounded-4 focus-visible:aurora-outline-none focus-visible:aurora-ring-2 focus-visible:aurora-ring-primary aurora-cursor-pointer hover:aurora-bg-hover active:aurora-bg-active',
54
+ day: 'aurora-h-8 aurora-w-8 aurora-rounded-4 aurora-p-0 focus-visible:aurora-outline-none focus-visible:aurora-ring-2 focus-visible:aurora-ring-primary aurora-cursor-pointer hover:aurora-bg-hover active:aurora-bg-active',
55
55
  day_button: 'aurora-w-full aurora-h-full',
56
56
  selected: 'aurora-bg-inverse aurora-text-inverse hover:aurora-bg-inverse aurora-day-selected',
57
57
  today: 'aurora-bg-primary-subtle [&.aurora-day-selected:not(.aurora-day-range-middle)]:!aurora-bg-inverse [&.aurora-day-selected:not(.aurora-day-range-middle)]:!aurora-text-inverse',
@@ -44,7 +44,6 @@ var ColorPickerPure = /*#__PURE__*/React__default['default'].forwardRef(function
44
44
  setIsColorPickerOpened(false);
45
45
  };
46
46
  return /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
47
- modal: true,
48
47
  open: isColorPickerOpened,
49
48
  onOpenChange: function onOpenChange(value) {
50
49
  return !value && handleClosePopover();
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qFAAyF;AAC7G,sBAAsB,iFAAqF;AAC3G,qBAAqB,uFAA2F;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qFAAyF;AAC7G,sBAAsB,iFAAqF;AAC3G,qBAAqB,uFAA2F;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -38,45 +38,34 @@ var DateTimePicker = function DateTimePicker(_ref) {
38
38
  _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
39
39
  internalTime = _useState4[0],
40
40
  setInternalTime = _useState4[1];
41
- var dateRef = React.useRef(parsedValue.date);
42
- var timeRef = React.useRef(parsedValue.time);
43
- var lastValueRef = React.useRef(value);
41
+ var isInternalChangeRef = React.useRef(false);
42
+ // Sync with external value changes (but not internal ones)
44
43
  React.useEffect(function () {
45
- if (value !== lastValueRef.current) {
46
- lastValueRef.current = value;
44
+ if (!isInternalChangeRef.current) {
47
45
  setInternalDate(parsedValue.date);
48
46
  setInternalTime(parsedValue.time);
49
- dateRef.current = parsedValue.date;
50
- timeRef.current = parsedValue.time;
51
47
  }
52
- }, [value, parsedValue]);
53
- var handleDateChange = React.useCallback(function (date) {
54
- dateRef.current = date;
55
- setInternalDate(date);
56
- var currentTime = timeRef.current;
57
- if (date && currentTime) {
58
- var formattedValue = date_time_picker_utils.DateTimePickerUtils.formatDateTimeToString(date, currentTime);
59
- lastValueRef.current = formattedValue;
48
+ isInternalChangeRef.current = false;
49
+ }, [parsedValue.date, parsedValue.time]);
50
+ var emitChange = React.useCallback(function (date, time) {
51
+ if (date && time) {
52
+ var formattedValue = date_time_picker_utils.DateTimePickerUtils.formatDateTimeToString(date, time);
53
+ isInternalChangeRef.current = true;
60
54
  onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
61
55
  } else {
62
- lastValueRef.current = '';
56
+ isInternalChangeRef.current = true;
63
57
  onChange === null || onChange === void 0 ? void 0 : onChange('');
64
58
  }
65
59
  }, [onChange]);
60
+ var handleDateChange = React.useCallback(function (date) {
61
+ setInternalDate(date);
62
+ emitChange(date, internalTime);
63
+ }, [internalTime, emitChange]);
66
64
  var handleTimeChange = React.useCallback(function (time) {
67
65
  var timeValue = time || undefined;
68
- timeRef.current = timeValue;
69
66
  setInternalTime(timeValue);
70
- var currentDate = dateRef.current;
71
- if (currentDate && timeValue) {
72
- var formattedValue = date_time_picker_utils.DateTimePickerUtils.formatDateTimeToString(currentDate, timeValue);
73
- lastValueRef.current = formattedValue;
74
- onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
75
- } else {
76
- lastValueRef.current = '';
77
- onChange === null || onChange === void 0 ? void 0 : onChange('');
78
- }
79
- }, [onChange]);
67
+ emitChange(internalDate, timeValue);
68
+ }, [internalDate, emitChange]);
80
69
  return /*#__PURE__*/React__default['default'].createElement(stack.Stack, {
81
70
  direction: "row",
82
71
  spacing: "3",
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,8 +3,13 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var useTranslation = require('../../../../../../external/react-i18next/dist/es/useTranslation.js');
7
+ var _rollupPluginBabelHelpers = require('../../../../../../_virtual/_rollupPluginBabelHelpers.js');
8
+ var popover_trigger = require('../../popover/components/popover_trigger.js');
6
9
  var input = require('../../input/input.js');
10
+ var input_mask = require('../../input_mask/input_mask.js');
7
11
  var calendar_event_fill = require('../../../assets/icons/calendar_event_fill.js');
12
+ var date_picker_utils = require('../date_picker_utils.js');
8
13
 
9
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
15
 
@@ -15,22 +20,49 @@ var DatePickerInput = function DatePickerInput(_ref) {
15
20
  value = _ref.value,
16
21
  placeholder = _ref.placeholder,
17
22
  disabled = _ref.disabled,
18
- errors = _ref.errors;
19
- return /*#__PURE__*/React__default['default'].createElement(input.Input, {
23
+ errors = _ref.errors,
24
+ onChange = _ref.onChange,
25
+ _ref$mode = _ref.mode,
26
+ mode = _ref$mode === void 0 ? 'single' : _ref$mode;
27
+ var _useTranslation = useTranslation.useTranslation(),
28
+ _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
29
+ t = _useTranslation2[0];
30
+ var mask = mode === 'range' ? 'dD.mM.yY99 - dD.mM.yY99' : 'dD.mM.yY99';
31
+ var defaultPlaceholder = mode === 'range' ? t('dd.mm.yyyy - dd.mm.yyyy') : t('dd.mm.yyyy');
32
+ var formatChars = {
33
+ d: /[0-3]/,
34
+ D: /[0-9]/,
35
+ m: /[0-1]/,
36
+ M: /[0-9]/,
37
+ y: /[1-2]/,
38
+ Y: /[09]/
39
+ };
40
+ var handleBeforeMaskedStateChange = function handleBeforeMaskedStateChange(_ref2) {
41
+ var currentState = _ref2.currentState,
42
+ nextState = _ref2.nextState;
43
+ return date_picker_utils.DatePickerUtils.validateDateMask(nextState, currentState, mode);
44
+ };
45
+ return /*#__PURE__*/React__default['default'].createElement(input_mask.InputMask, {
46
+ mask: mask,
47
+ maskPlaceholder: "_",
48
+ formatChars: formatChars,
49
+ value: value || '',
50
+ onChange: onChange,
51
+ disabled: disabled,
52
+ beforeMaskedStateChange: handleBeforeMaskedStateChange
53
+ }, /*#__PURE__*/React__default['default'].createElement(input.Input, {
20
54
  id: id,
21
- value: value,
22
55
  errors: errors,
23
- readOnly: true,
24
- disabled: disabled,
25
- placeholder: placeholder,
26
- hasCursorPointer: true,
27
- postElement: /*#__PURE__*/React__default['default'].createElement("div", {
28
- className: "aurora-flex aurora-h-full aurora-items-center aurora-cursor-pointer aurora-border-0 aurora-bg-transparent aurora-p-1 aurora-rounded-4 focus:aurora-outline-primary-hover"
56
+ placeholder: placeholder || defaultPlaceholder,
57
+ postElement: /*#__PURE__*/React__default['default'].createElement(popover_trigger.PopoverTrigger, {
58
+ disabled: disabled
59
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
60
+ className: "aurora-flex aurora-h-full aurora-items-center aurora-cursor-pointer aurora-border-0 aurora-bg-transparent aurora-px-1 aurora-py-2 aurora-rounded-4 focus:aurora-outline-primary-hover"
29
61
  }, /*#__PURE__*/React__default['default'].createElement(calendar_event_fill.CalendarEventFillIcon, {
30
62
  size: 14,
31
63
  className: "aurora-text"
32
- }))
33
- });
64
+ })))
65
+ }));
34
66
  };
35
67
 
36
68
  exports.DatePickerInput = DatePickerInput;
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,19 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var useTranslation = require('../../../../../external/react-i18next/dist/es/useTranslation.js');
6
7
  var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBabelHelpers.js');
7
- var cn = require('../../utilities/cn.js');
8
+ var error_list = require('../error_list/error_list.js');
8
9
  var popover = require('../popover/popover.js');
9
- var popover_trigger = require('../popover/components/popover_trigger.js');
10
+ var date_picker_utils = require('./date_picker_utils.js');
10
11
  var date_picker_input = require('./components/date_picker_input.js');
11
12
  var date_picker_content = require('./components/date_picker_content.js');
12
- var date_picker_utils = require('./date_picker_utils.js');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
16
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
 
18
- var _excluded = ["id", "mode", "placeholder", "disabled", "errors", "value", "onChange", "disabledDays"];
18
+ var _excluded = ["id", "mode", "placeholder", "disabled", "errors", "value", "onChange", "disabledDays", "startMonth", "endMonth"];
19
19
  var DatePicker = function DatePicker(_ref) {
20
20
  var id = _ref.id,
21
21
  _ref$mode = _ref.mode,
@@ -26,42 +26,122 @@ var DatePicker = function DatePicker(_ref) {
26
26
  value = _ref.value,
27
27
  onChange = _ref.onChange,
28
28
  disabledDays = _ref.disabledDays,
29
+ startMonth = _ref.startMonth,
30
+ endMonth = _ref.endMonth,
29
31
  dayPickerProps = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
32
+ var _useTranslation = useTranslation.useTranslation(),
33
+ _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
34
+ t = _useTranslation2[0];
30
35
  var _useState = React.useState(false),
31
36
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
32
37
  open = _useState2[0],
33
38
  setOpen = _useState2[1];
39
+ var _useState3 = React.useState(''),
40
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
41
+ inputValue = _useState4[0],
42
+ setInputValue = _useState4[1];
43
+ var _useState5 = React.useState(undefined),
44
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
45
+ internalValidationErrors = _useState6[0],
46
+ setInternalValidationErrors = _useState6[1];
34
47
  var selectedDates = React.useMemo(function () {
35
48
  return value;
36
49
  }, [value]);
37
50
  var displayValue = React.useMemo(function () {
38
- if (!selectedDates) return '';
51
+ if (!selectedDates) return inputValue;
39
52
  return date_picker_utils.DatePickerUtils.inputFormatValue(selectedDates, mode);
53
+ }, [selectedDates, mode, inputValue]);
54
+ var defaultMonth = React.useMemo(function () {
55
+ if (!selectedDates) return undefined;
56
+ if (mode === 'single' && selectedDates instanceof Date) {
57
+ return selectedDates;
58
+ }
59
+ if (mode === 'range' && selectedDates && _rollupPluginBabelHelpers['typeof'](selectedDates) === 'object' && 'from' in selectedDates) {
60
+ return selectedDates.from;
61
+ }
62
+ return undefined;
40
63
  }, [selectedDates, mode]);
64
+ var inputErrors = React.useMemo(function () {
65
+ if (internalValidationErrors && errors) {
66
+ return Array.isArray(errors) ? [].concat(_rollupPluginBabelHelpers.toConsumableArray(errors), [internalValidationErrors]) : [errors, internalValidationErrors];
67
+ }
68
+ if (internalValidationErrors) return internalValidationErrors;
69
+ return errors;
70
+ }, [internalValidationErrors, errors]);
41
71
  var handleDateSelect = function handleDateSelect(selected) {
42
72
  onChange === null || onChange === void 0 ? void 0 : onChange(selected);
73
+ setInputValue('');
74
+ setInternalValidationErrors(undefined);
43
75
  if (mode === 'single' && selected) {
44
76
  setOpen(false);
45
77
  }
46
78
  };
47
- return /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
79
+ var handleInputChange = function handleInputChange(event) {
80
+ var typedValue = event.target.value;
81
+ setInputValue(typedValue);
82
+ if (typedValue.includes('_') || !typedValue) {
83
+ setInternalValidationErrors(undefined);
84
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
85
+ return;
86
+ }
87
+ if (mode === 'single') {
88
+ var parsedDate = date_picker_utils.DatePickerUtils.parseStringToDate(typedValue);
89
+ if (!parsedDate) {
90
+ setInternalValidationErrors(t("This date isn't available. Choose another one."));
91
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
92
+ return;
93
+ }
94
+ var isInRange = date_picker_utils.DatePickerUtils.isDateInRange(parsedDate, startMonth, endMonth);
95
+ var isDisabled = date_picker_utils.DatePickerUtils.isDateDisabled(parsedDate, disabledDays);
96
+ if (!isInRange) {
97
+ var formattedStart = startMonth ? date_picker_utils.DatePickerUtils.formatDate(startMonth) : '';
98
+ var lastDayOfEndMonth = endMonth ? new Date(endMonth.getFullYear(), endMonth.getMonth() + 1, 0) : null;
99
+ var formattedEnd = lastDayOfEndMonth ? date_picker_utils.DatePickerUtils.formatDate(lastDayOfEndMonth) : '';
100
+ var rangeMessage = t('Choose a date between {{start}}–{{end}}', {
101
+ start: formattedStart,
102
+ end: formattedEnd
103
+ });
104
+ setInternalValidationErrors(rangeMessage);
105
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
106
+ } else if (isDisabled) {
107
+ setInternalValidationErrors(t("This date isn't available. Choose another one."));
108
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
109
+ } else {
110
+ setInternalValidationErrors(undefined);
111
+ onChange === null || onChange === void 0 ? void 0 : onChange(parsedDate);
112
+ }
113
+ }
114
+ if (mode === 'range') {
115
+ var parsedRange = date_picker_utils.DatePickerUtils.parseStringToDateRange(typedValue);
116
+ if (parsedRange) {
117
+ onChange === null || onChange === void 0 ? void 0 : onChange(parsedRange);
118
+ } else {
119
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
120
+ }
121
+ }
122
+ };
123
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
48
124
  open: open,
49
125
  onOpenChange: setOpen
50
- }, /*#__PURE__*/React__default['default'].createElement(popover_trigger.PopoverTrigger, {
51
- className: cn.cn('aurora-w-full', disabled && 'aurora-cursor-not-allowed'),
52
- disabled: disabled
53
126
  }, /*#__PURE__*/React__default['default'].createElement(date_picker_input.DatePickerInput, {
54
127
  id: id,
128
+ mode: mode,
55
129
  value: displayValue,
56
130
  placeholder: placeholder,
57
131
  disabled: disabled,
58
- errors: errors
59
- })), /*#__PURE__*/React__default['default'].createElement(date_picker_content.DatePickerContent, _rollupPluginBabelHelpers.objectSpread2({
132
+ errors: inputErrors,
133
+ onChange: handleInputChange
134
+ }), /*#__PURE__*/React__default['default'].createElement(date_picker_content.DatePickerContent, _rollupPluginBabelHelpers.objectSpread2({
60
135
  mode: mode,
61
136
  selected: selectedDates,
62
137
  onSelect: handleDateSelect,
63
- disabled: disabledDays
64
- }, dayPickerProps)));
138
+ disabled: disabledDays,
139
+ defaultMonth: defaultMonth,
140
+ startMonth: startMonth,
141
+ endMonth: endMonth
142
+ }, dayPickerProps))), internalValidationErrors ? /*#__PURE__*/React__default['default'].createElement(error_list.ErrorList, {
143
+ errors: internalValidationErrors
144
+ }) : null);
65
145
  };
66
146
 
67
147
  exports.DatePicker = DatePicker;
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -6,6 +6,21 @@ var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBa
6
6
  require('react-day-picker');
7
7
 
8
8
  var _DatePickerUtils;
9
+ var MASK_POSITIONS = {
10
+ SINGLE: {
11
+ DAY: 0,
12
+ MONTH: 3,
13
+ YEAR: 6
14
+ },
15
+ RANGE: {
16
+ DAY_START: 0,
17
+ MONTH_START: 3,
18
+ YEAR_START: 6,
19
+ DAY_END: 13,
20
+ MONTH_END: 16,
21
+ YEAR_END: 19
22
+ }
23
+ };
9
24
  var DatePickerUtils = /*#__PURE__*/_rollupPluginBabelHelpers.createClass(function DatePickerUtils() {
10
25
  _rollupPluginBabelHelpers.classCallCheck(this, DatePickerUtils);
11
26
  });
@@ -23,10 +38,6 @@ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "inputFormatValue", fu
23
38
  if (mode === 'single') {
24
39
  return _DatePickerUtils.formatDate(selected);
25
40
  }
26
- if (mode === 'multiple') {
27
- var dates = selected;
28
- return dates.length > 0 ? dates.map(_DatePickerUtils.formatDate).join(', ') : '';
29
- }
30
41
  if (mode === 'range') {
31
42
  var range = selected;
32
43
  if (range.from && range.to) {
@@ -38,6 +49,194 @@ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "inputFormatValue", fu
38
49
  }
39
50
  return '';
40
51
  });
52
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "parseStringToDate", function (dateString) {
53
+ if (!dateString || dateString.includes('_')) {
54
+ return null;
55
+ }
56
+ var parts = dateString.split('.');
57
+ if (parts.length !== 3) {
58
+ return null;
59
+ }
60
+ var day = parseInt(parts[0], 10);
61
+ var month = parseInt(parts[1], 10);
62
+ var year = parseInt(parts[2], 10);
63
+ if (isNaN(day) || isNaN(month) || isNaN(year)) {
64
+ return null;
65
+ }
66
+ if (month < 1 || month > 12 || day < 1 || day > 31 || year < 1000) {
67
+ return null;
68
+ }
69
+ var date = new Date(year, month - 1, day);
70
+ if (date.getDate() !== day || date.getMonth() !== month - 1 || date.getFullYear() !== year) {
71
+ return null;
72
+ }
73
+ return date;
74
+ });
75
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "parseStringToDateRange", function (rangeString) {
76
+ if (!rangeString || rangeString.includes('_')) {
77
+ return null;
78
+ }
79
+ var parts = rangeString.split(' - ');
80
+ if (parts.length !== 2) {
81
+ return null;
82
+ }
83
+ var fromDate = _DatePickerUtils.parseStringToDate(parts[0].trim());
84
+ var toDate = _DatePickerUtils.parseStringToDate(parts[1].trim());
85
+ if (!fromDate || !toDate) {
86
+ return null;
87
+ }
88
+ if (fromDate > toDate) {
89
+ return null;
90
+ }
91
+ return {
92
+ from: fromDate,
93
+ to: toDate
94
+ };
95
+ });
96
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "replaceCharWithPlaceholder", function (value, position) {
97
+ return value.substring(0, position) + '_' + value.substring(position + 1);
98
+ });
99
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "validateTwoDigitValue", function (value, startPos, firstDigit, maxSecondDigit) {
100
+ if (value.length < startPos + 2) return {
101
+ valid: true,
102
+ keepFirst: false
103
+ };
104
+ var first = value[startPos];
105
+ var second = value[startPos + 1];
106
+ if (second === '_') return {
107
+ valid: true,
108
+ keepFirst: false
109
+ };
110
+ if (first === '0' && second === '0') {
111
+ return {
112
+ valid: false,
113
+ keepFirst: false
114
+ };
115
+ }
116
+ if (first === firstDigit && parseInt(second) > maxSecondDigit) {
117
+ return {
118
+ valid: false,
119
+ keepFirst: true
120
+ };
121
+ }
122
+ return {
123
+ valid: true,
124
+ keepFirst: false
125
+ };
126
+ });
127
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "validateDayAtPosition", function (value, dayStartPos) {
128
+ return _DatePickerUtils.validateTwoDigitValue(value, dayStartPos, '3', 1);
129
+ });
130
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "validateMonthAtPosition", function (value, monthStartPos) {
131
+ return _DatePickerUtils.validateTwoDigitValue(value, monthStartPos, '1', 2);
132
+ });
133
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "validateYearAtPosition", function (value, yearStartPos) {
134
+ if (value.length < yearStartPos + 2) return {
135
+ valid: true,
136
+ keepFirst: false
137
+ };
138
+ var first = value[yearStartPos];
139
+ var second = value[yearStartPos + 1];
140
+ if (second === '_') return {
141
+ valid: true,
142
+ keepFirst: false
143
+ };
144
+ if (first === '1' && second !== '9') {
145
+ return {
146
+ valid: false,
147
+ keepFirst: true
148
+ };
149
+ }
150
+ if (first === '2' && second !== '0') {
151
+ return {
152
+ valid: false,
153
+ keepFirst: true
154
+ };
155
+ }
156
+ return {
157
+ valid: true,
158
+ keepFirst: false
159
+ };
160
+ });
161
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "handleInvalidInput", function (validation, value, currentValue, position, currentSelection, fallbackSelection) {
162
+ if (validation.keepFirst) {
163
+ var newValue = _DatePickerUtils.replaceCharWithPlaceholder(value, position + 1);
164
+ return {
165
+ value: newValue,
166
+ selection: {
167
+ start: position + 1,
168
+ end: position + 1
169
+ }
170
+ };
171
+ }
172
+ return {
173
+ value: currentValue,
174
+ selection: currentSelection || fallbackSelection || {
175
+ start: null,
176
+ end: null
177
+ }
178
+ };
179
+ });
180
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "validateDateMask", function (nextState, currentState) {
181
+ var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'single';
182
+ var value = nextState.value,
183
+ selection = nextState.selection;
184
+ var currentValue = (currentState === null || currentState === void 0 ? void 0 : currentState.value) || '';
185
+ var dayValidation = _DatePickerUtils.validateDayAtPosition(value, MASK_POSITIONS.SINGLE.DAY);
186
+ if (!dayValidation.valid) {
187
+ return _DatePickerUtils.handleInvalidInput(dayValidation, value, currentValue, MASK_POSITIONS.SINGLE.DAY, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
188
+ }
189
+ var monthValidation = _DatePickerUtils.validateMonthAtPosition(value, MASK_POSITIONS.SINGLE.MONTH);
190
+ if (!monthValidation.valid) {
191
+ return _DatePickerUtils.handleInvalidInput(monthValidation, value, currentValue, MASK_POSITIONS.SINGLE.MONTH, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
192
+ }
193
+ var yearValidation = _DatePickerUtils.validateYearAtPosition(value, MASK_POSITIONS.SINGLE.YEAR);
194
+ if (!yearValidation.valid) {
195
+ return _DatePickerUtils.handleInvalidInput(yearValidation, value, currentValue, MASK_POSITIONS.SINGLE.YEAR, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
196
+ }
197
+ if (mode === 'range') {
198
+ var dayValidation2 = _DatePickerUtils.validateDayAtPosition(value, MASK_POSITIONS.RANGE.DAY_END);
199
+ if (!dayValidation2.valid) {
200
+ return _DatePickerUtils.handleInvalidInput(dayValidation2, value, currentValue, MASK_POSITIONS.RANGE.DAY_END, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
201
+ }
202
+ var monthValidation2 = _DatePickerUtils.validateMonthAtPosition(value, MASK_POSITIONS.RANGE.MONTH_END);
203
+ if (!monthValidation2.valid) {
204
+ return _DatePickerUtils.handleInvalidInput(monthValidation2, value, currentValue, MASK_POSITIONS.RANGE.MONTH_END, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
205
+ }
206
+ var yearValidation2 = _DatePickerUtils.validateYearAtPosition(value, MASK_POSITIONS.RANGE.YEAR_END);
207
+ if (!yearValidation2.valid) {
208
+ return _DatePickerUtils.handleInvalidInput(yearValidation2, value, currentValue, MASK_POSITIONS.RANGE.YEAR_END, currentState === null || currentState === void 0 ? void 0 : currentState.selection, selection);
209
+ }
210
+ }
211
+ return nextState;
212
+ });
213
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "isDateInRange", function (date, startMonth, endMonth) {
214
+ if (!startMonth && !endMonth) return true;
215
+ if (startMonth) {
216
+ var minDate = new Date(startMonth.getFullYear(), startMonth.getMonth(), 1);
217
+ if (date < minDate) return false;
218
+ }
219
+ if (endMonth) {
220
+ var maxDate = new Date(endMonth.getFullYear(), endMonth.getMonth() + 1, 0);
221
+ if (date > maxDate) return false;
222
+ }
223
+ return true;
224
+ });
225
+ _rollupPluginBabelHelpers.defineProperty(DatePickerUtils, "isDateDisabled", function (date, disabledDays) {
226
+ if (!disabledDays) return false;
227
+ if (Array.isArray(disabledDays)) {
228
+ return disabledDays.some(function (disabledDate) {
229
+ if (disabledDate instanceof Date) {
230
+ return disabledDate.getFullYear() === date.getFullYear() && disabledDate.getMonth() === date.getMonth() && disabledDate.getDate() === date.getDate();
231
+ }
232
+ return false;
233
+ });
234
+ }
235
+ if (typeof disabledDays === 'function') {
236
+ return disabledDays(date);
237
+ }
238
+ return false;
239
+ });
41
240
 
42
241
  exports.DatePickerUtils = DatePickerUtils;
43
242
  //# sourceMappingURL=date_picker_utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}