@dreamcommerce/aurora 3.1.5 → 3.1.7-1

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 (59) hide show
  1. package/build/cjs/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +9 -10
  2. package/build/cjs/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
  3. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js +5 -3
  4. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js.map +1 -1
  5. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_input.js +6 -10
  6. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_input.js.map +1 -1
  7. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview.js +1 -1
  8. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js +3 -9
  9. package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js.map +1 -1
  10. package/build/cjs/packages/aurora/src/components/image_picker/components/uploaded_image_picker_item.js +4 -16
  11. package/build/cjs/packages/aurora/src/components/image_picker/components/uploaded_image_picker_item.js.map +1 -1
  12. package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js +26 -18
  13. package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
  14. package/build/cjs/packages/aurora/src/components/image_picker/image_picker_delete_button.js +36 -0
  15. package/build/cjs/packages/aurora/src/components/image_picker/image_picker_delete_button.js.map +1 -0
  16. package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js +36 -52
  17. package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
  18. package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +54 -20
  19. package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
  20. package/build/cjs/packages/aurora/src/translations/en.json.js +1 -0
  21. package/build/cjs/packages/aurora/src/translations/en.json.js.map +1 -1
  22. package/build/cjs/packages/aurora/src/translations/pl.json.js +1 -0
  23. package/build/cjs/packages/aurora/src/translations/pl.json.js.map +1 -1
  24. package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.d.ts +1 -1
  25. package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +10 -11
  26. package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
  27. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.d.ts +5 -1
  28. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js +5 -3
  29. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js.map +1 -1
  30. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.d.ts +1 -3
  31. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.js +6 -10
  32. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.js.map +1 -1
  33. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview.js +1 -1
  34. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js +3 -9
  35. package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js.map +1 -1
  36. package/build/esm/packages/aurora/src/components/image_picker/components/uploaded_image_picker_item.js +4 -16
  37. package/build/esm/packages/aurora/src/components/image_picker/components/uploaded_image_picker_item.js.map +1 -1
  38. package/build/esm/packages/aurora/src/components/image_picker/image_picker.d.ts +1 -1
  39. package/build/esm/packages/aurora/src/components/image_picker/image_picker.js +27 -19
  40. package/build/esm/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
  41. package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.d.ts +4 -0
  42. package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.js +28 -0
  43. package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.js.map +1 -0
  44. package/build/esm/packages/aurora/src/components/image_picker/image_picker_types.d.ts +3 -11
  45. package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.d.ts +1 -1
  46. package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js +38 -54
  47. package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
  48. package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.d.ts +1 -1
  49. package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +55 -21
  50. package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
  51. package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker_types.d.ts +1 -0
  52. package/build/esm/packages/aurora/src/translations/en.json +1 -0
  53. package/build/esm/packages/aurora/src/translations/en.json.js +1 -0
  54. package/build/esm/packages/aurora/src/translations/en.json.js.map +1 -1
  55. package/build/esm/packages/aurora/src/translations/pl.json +1 -0
  56. package/build/esm/packages/aurora/src/translations/pl.json.js +1 -0
  57. package/build/esm/packages/aurora/src/translations/pl.json.js.map +1 -1
  58. package/build/index.css +1 -1
  59. package/package.json +1 -1
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var _rollupPluginBabelHelpers = require('../../../../../../_virtual/_rollupPluginBabelHelpers.js');
7
6
  var control = require('../../control/control.js');
8
7
  var helper_text = require('../../helper_text/helper_text.js');
9
8
  var label = require('../../label/label.js');
@@ -13,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
13
12
 
14
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
14
 
16
- var XhrImagePickerControl = function XhrImagePickerControl(_ref) {
15
+ var XhrImagePickerControl = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
17
16
  var url = _ref.url,
18
17
  label$1 = _ref.label,
19
18
  required = _ref.required,
@@ -29,17 +28,15 @@ var XhrImagePickerControl = function XhrImagePickerControl(_ref) {
29
28
  onUploaded = _ref.onUploaded,
30
29
  helperText = _ref.helperText,
31
30
  onImageSizeUpdated = _ref.onImageSizeUpdated,
32
- ImageEditor = _ref.ImageEditor;
33
- var _useState = React.useState(errors),
34
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
35
- setErrors = _useState2[1];
31
+ ImageEditor = _ref.ImageEditor,
32
+ onError = _ref.onError;
36
33
  var handleControlError = function handleControlError(errors) {
37
- setErrors(errors);
34
+ onError === null || onError === void 0 ? void 0 : onError(errors);
38
35
  };
39
36
  var handleControlChange = function handleControlChange(file) {
40
37
  var fileList = file.fileList,
41
38
  fileAsDataUrl = file.fileAsDataUrl;
42
- setErrors(null);
39
+ onError === null || onError === void 0 ? void 0 : onError([]);
43
40
  onChange === null || onChange === void 0 ? void 0 : onChange({
44
41
  fileList: fileList,
45
42
  fileAsDataUrl: fileAsDataUrl
@@ -64,9 +61,11 @@ var XhrImagePickerControl = function XhrImagePickerControl(_ref) {
64
61
  errors: errors,
65
62
  onUploaded: onUploaded,
66
63
  onImageSizeUpdated: onImageSizeUpdated,
67
- ImageEditor: ImageEditor
64
+ ImageEditor: ImageEditor,
65
+ ref: ref
68
66
  }), helperText ? /*#__PURE__*/React__default['default'].createElement(helper_text.HelperText, null, helperText) : null);
69
- };
67
+ });
68
+ XhrImagePickerControl.displayName = 'XhrImagePickerControl';
70
69
 
71
70
  exports.XhrImagePickerControl = XhrImagePickerControl;
72
71
  //# sourceMappingURL=xhr_image_picker_control.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;AACA;AACA;AACA;AACA;AACA;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;"}
@@ -11,14 +11,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
13
 
14
- var ImagePickerDragOverPlaceholder = function ImagePickerDragOverPlaceholder() {
14
+ var ImagePickerDragOverPlaceholder = function ImagePickerDragOverPlaceholder(_ref) {
15
+ var onDropFile = _ref.onDropFile;
15
16
  var _useTranslation = useTranslation.useTranslation(),
16
17
  _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
17
18
  t = _useTranslation2[0];
18
19
  return /*#__PURE__*/React__default['default'].createElement("div", {
19
- className: cn.cn('aurora-absolute aurora-inset-0 aurora-bg-neutral-0 aurora-border-2 aurora-border-primary aurora-rounded-8 aurora-z-20 aurora-pointer-events-none aurora-w-full aurora-h-full')
20
+ onDrop: onDropFile,
21
+ className: cn.cn('aurora-absolute aurora-inset-0 aurora-bg-neutral-0 aurora-border-2 aurora-border-primary aurora-rounded-8 aurora-z-20 aurora-w-full aurora-h-full')
20
22
  }, /*#__PURE__*/React__default['default'].createElement("div", {
21
- className: "aurora-w-full aurora-h-full aurora-bg-primary-transparent aurora-flex aurora-items-center aurora-justify-center"
23
+ className: "aurora-w-full aurora-h-full aurora-bg-primary-transparent aurora-flex aurora-items-center aurora-justify-center aurora-pointer-events-none"
22
24
  }, /*#__PURE__*/React__default['default'].createElement("span", {
23
25
  className: "aurora-text-xs aurora-text-interactive"
24
26
  }, "".concat(t('Drop file here')))));
@@ -1 +1 @@
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;"}
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;"}
@@ -15,22 +15,18 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
15
 
16
16
  var ImagePickerInput = function ImagePickerInput(_ref) {
17
17
  var id = _ref.id,
18
- onDropFile = _ref.onDropFile,
19
- onDragOver = _ref.onDragOver,
20
- onDragLeave = _ref.onDragLeave,
21
18
  allowedExtensionsLabel = _ref.allowedExtensionsLabel,
22
19
  allowedExtensions = _ref.allowedExtensions,
23
- isDragOver = _ref.isDragOver;
20
+ isDragOver = _ref.isDragOver,
21
+ onDropFile = _ref.onDropFile;
24
22
  var _useTranslation = useTranslation.useTranslation(),
25
23
  _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
26
24
  t = _useTranslation2[0];
27
- return /*#__PURE__*/React__default['default'].createElement("label", {
28
- htmlFor: id,
29
- onDrop: onDropFile,
30
- onDragOver: onDragOver,
31
- onDragLeave: onDragLeave,
25
+ return /*#__PURE__*/React__default['default'].createElement("div", {
32
26
  className: "aurora-relative aurora-flex aurora-items-center aurora-justify-center aurora-w-full aurora-h-full aurora-cursor-pointer aurora-p-1 aurora-pb-2 aurora-group/imagePickerInput"
33
- }, isDragOver && /*#__PURE__*/React__default['default'].createElement(image_picker_drag_over_placeholder.ImagePickerDragOverPlaceholder, null), /*#__PURE__*/React__default['default'].createElement("div", {
27
+ }, isDragOver && /*#__PURE__*/React__default['default'].createElement(image_picker_drag_over_placeholder.ImagePickerDragOverPlaceholder, {
28
+ onDropFile: onDropFile
29
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
34
30
  className: cn.cn('aurora-flex aurora-flex-col aurora-items-center aurora-w-full aurora-h-full aurora-pt-4 aurora-pb-3 aurora-px-1')
35
31
  }, /*#__PURE__*/React__default['default'].createElement(upload_icon.UploadLineIcon, {
36
32
  className: "aurora-w-5 aurora-h-5 aurora-fill-subtle group-hover/imagePickerInput:aurora-fill-primary aurora-mb-2"
@@ -1 +1 @@
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;"}
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;"}
@@ -13,7 +13,7 @@ var ImagePickerPreview = function ImagePickerPreview(_ref) {
13
13
  onError = _ref.onError,
14
14
  onLoad = _ref.onLoad;
15
15
  return /*#__PURE__*/React__default['default'].createElement("div", {
16
- className: 'aurora-rounded-4 aurora-w-full aurora-h-full aurora-min-h-16 aurora-flex aurora-justify-center aurora-items-center'
16
+ className: "aurora-rounded-4 aurora-w-full aurora-h-full aurora-min-h-16 aurora-flex aurora-justify-center aurora-items-center"
17
17
  }, /*#__PURE__*/React__default['default'].createElement("img", {
18
18
  className: "aurora-rounded-4 aurora-w-full aurora-h-full aurora-object-contain",
19
19
  alt: file.fileName,
@@ -10,15 +10,9 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
10
 
11
11
  var ImagePickerPreviewContainer = function ImagePickerPreviewContainer(_ref) {
12
12
  var classname = _ref.classname,
13
- children = _ref.children,
14
- onDragLeave = _ref.onDragLeave,
15
- onDragOver = _ref.onDragOver,
16
- onDropFile = _ref.onDropFile;
17
- return /*#__PURE__*/React__default['default'].createElement("label", {
18
- className: classname,
19
- onDragLeave: onDragLeave,
20
- onDragOver: onDragOver,
21
- onDrop: onDropFile
13
+ children = _ref.children;
14
+ return /*#__PURE__*/React__default['default'].createElement("div", {
15
+ className: classname
22
16
  }, children);
23
17
  };
24
18
 
@@ -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;"}
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;"}
@@ -3,10 +3,8 @@
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 delete_bin_icon = require('../../../assets/icons/delete_bin_icon.js');
9
6
  var utilities = require('@dreamcommerce/utilities');
7
+ var image_picker_delete_button = require('../image_picker_delete_button.js');
10
8
 
11
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
10
 
@@ -17,9 +15,6 @@ var UploadedImagePickerItem = function UploadedImagePickerItem(_ref) {
17
15
  onFileDelete = _ref.onFileDelete,
18
16
  isValid = _ref.isValid,
19
17
  file = _ref.file;
20
- var _useTranslation = useTranslation.useTranslation(),
21
- _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
22
- t = _useTranslation2[0];
23
18
  var imageName = utilities.FileUtils.getFileName(file.fileName);
24
19
  var imageExtension = utilities.FileUtils.getFileExtension(file.fileName);
25
20
  var imageWidth = imageSize && imageSize.width;
@@ -28,16 +23,9 @@ var UploadedImagePickerItem = function UploadedImagePickerItem(_ref) {
28
23
  className: "aurora-flex aurora-justify-between aurora-items-center aurora-pt-2 aurora-px-1 aurora-gap-1"
29
24
  }, /*#__PURE__*/React__default['default'].createElement("div", {
30
25
  className: "aurora-text-xs aurora-text-subtle aurora-overflow-hidden aurora-text-ellipsis"
31
- }, isValid && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, imageName, ".".concat(imageExtension, " (").concat(imageWidth, "x").concat(imageHeight, "px)")))), /*#__PURE__*/React__default['default'].createElement("button", {
32
- "data-test-id": "image-picker-remove-button",
33
- onClick: onFileDelete,
34
- className: "aurora-flex aurora-items-center aurora-gap-1 aurora-border aurora-border-danger aurora-rounded-full aurora-px-3 aurora-py-[6px]",
35
- type: "button"
36
- }, /*#__PURE__*/React__default['default'].createElement(delete_bin_icon.DeleteBinLineIcon, {
37
- className: "aurora-w-4 aurora-h-4 aurora-fill-danger"
38
- }), /*#__PURE__*/React__default['default'].createElement("span", {
39
- className: "aurora-text-xs aurora-text-danger aurora-font-semibold"
40
- }, "".concat(t('Remove')))));
26
+ }, isValid && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, imageName, "".concat(imageExtension ? '.' : '').concat(imageExtension, " (").concat(imageWidth, "x").concat(imageHeight, "px)")))), /*#__PURE__*/React__default['default'].createElement(image_picker_delete_button.ImagePickerDeleteButton, {
27
+ onFileDelete: onFileDelete
28
+ }));
41
29
  };
42
30
 
43
31
  exports.UploadedImagePickerItem = UploadedImagePickerItem;
@@ -1 +1 @@
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;"}
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;"}
@@ -12,6 +12,7 @@ var image_picker_drag_over_placeholder = require('./components/image_picker_drag
12
12
  var image_picker_input = require('./components/image_picker_input.js');
13
13
  var image_picker_preview = require('./components/image_picker_preview.js');
14
14
  var image_picker_preview_container = require('./components/image_picker_preview_container.js');
15
+ var image_picker_delete_button = require('./image_picker_delete_button.js');
15
16
  var uploaded_image_picker_item = require('./components/uploaded_image_picker_item.js');
16
17
  var image_picker_utils = require('./image_picker_utils.js');
17
18
  var use_image_picker = require('./use_image_picker.js');
@@ -20,11 +21,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
20
21
 
21
22
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
23
 
23
- var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
24
+ var ImagePicker = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (_ref, ref) {
24
25
  var id = _ref.id,
25
26
  onChange = _ref.onChange,
26
27
  onError = _ref.onError,
27
- initialErrors = _ref.errors,
28
+ errors = _ref.errors,
28
29
  _ref$allowedExtension = _ref.allowedExtensions,
29
30
  allowedExtensions = _ref$allowedExtension === void 0 ? [image_picker_constants.IMAGE_PICKER_EXTENSIONS.WEBP, image_picker_constants.IMAGE_PICKER_EXTENSIONS.JPG, image_picker_constants.IMAGE_PICKER_EXTENSIONS.PNG, image_picker_constants.IMAGE_PICKER_EXTENSIONS.GIF, image_picker_constants.IMAGE_PICKER_EXTENSIONS.SVG, image_picker_constants.IMAGE_PICKER_EXTENSIONS.JPEG] : _ref$allowedExtension,
30
31
  allowedExtensionsLabel = _ref.allowedExtensionsLabel,
@@ -48,7 +49,6 @@ var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
48
49
  initialFile: initialFile,
49
50
  onChange: handleOnChange,
50
51
  allowedExtensions: allowedExtensions,
51
- initialErrors: initialErrors,
52
52
  onError: onError,
53
53
  inputRef: inputRef
54
54
  }),
@@ -60,7 +60,6 @@ var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
60
60
  onPreviewError = _useImagePicker.onPreviewError,
61
61
  changeFile = _useImagePicker.changeFile,
62
62
  file = _useImagePicker.file,
63
- errors = _useImagePicker.errors,
64
63
  isPreview = _useImagePicker.isPreview,
65
64
  isDragOver = _useImagePicker.isDragOver;
66
65
  var _useState = React.useState(undefined),
@@ -120,19 +119,25 @@ var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
120
119
  };
121
120
  return /*#__PURE__*/React__default['default'].createElement("div", {
122
121
  className: "aurora-mb-1"
123
- }, /*#__PURE__*/React__default['default'].createElement("div", {
124
- className: cn.cn('aurora-rounded-8 aurora-relative hover:aurora-border-active', {
122
+ }, /*#__PURE__*/React__default['default'].createElement("button", {
123
+ className: cn.cn('aurora-block aurora-w-full aurora-rounded-8 aurora-relative hover:aurora-border-active focus-visible:aurora-border-active focus-visible:aurora-outline-none', {
125
124
  'aurora-border aurora-border-dashed': !(errors && errors.length > 0 && !isDragOver),
126
- 'aurora-border-2 aurora-border-danger aurora-border-solid hover:aurora-border-danger': errors && errors.length > 0,
127
- 'aurora-border-none': isDragOver
128
- })
125
+ 'aurora-border-2 aurora-border-danger aurora-border-solid hover:aurora-border-danger focus-visible:aurora-border-danger': errors && errors.length > 0,
126
+ 'aurora-border-transparent hover:aurora-border-transparent focus-visible:aurora-border-transparent': isDragOver
127
+ }),
128
+ onClick: function onClick() {
129
+ var _inputRef$current;
130
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
131
+ },
132
+ ref: ref,
133
+ type: 'button'
134
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
135
+ onDragOver: onDragOver,
136
+ onDragLeave: onDragLeave
129
137
  }, file && !(errors !== null && errors !== void 0 && errors.length) ? isPreview ? (/*#__PURE__*/React__default['default'].createElement("div", {
130
138
  className: "aurora-p-1 aurora-relative"
131
139
  }, /*#__PURE__*/React__default['default'].createElement(image_picker_preview_container.ImagePickerPreviewContainer, {
132
- classname: "aurora-relative aurora-flex aurora-flex-col",
133
- onDragLeave: onDragLeave,
134
- onDragOver: onDragOver,
135
- onDropFile: onDropFile
140
+ classname: "aurora-relative aurora-flex aurora-flex-col"
136
141
  }, topButtons && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, topButtons), /*#__PURE__*/React__default['default'].createElement("label", {
137
142
  htmlFor: id,
138
143
  className: "aurora-relative"
@@ -144,9 +149,11 @@ var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
144
149
  file: file,
145
150
  isValid: !(errors !== null && errors !== void 0 && errors.length),
146
151
  onFileDelete: handleOnFileDelete
147
- })), isDragOver && /*#__PURE__*/React__default['default'].createElement(image_picker_drag_over_placeholder.ImagePickerDragOverPlaceholder, null))) : (/*#__PURE__*/React__default['default'].createElement("div", null, "".concat(t('No preview')))) : (/*#__PURE__*/React__default['default'].createElement(image_picker_input.ImagePickerInput, {
148
- onDragLeave: onDragLeave,
149
- onDragOver: onDragOver,
152
+ })), isDragOver && /*#__PURE__*/React__default['default'].createElement(image_picker_drag_over_placeholder.ImagePickerDragOverPlaceholder, {
153
+ onDropFile: onDropFile
154
+ }))) : (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", null, "".concat(t('No preview'))), /*#__PURE__*/React__default['default'].createElement(image_picker_delete_button.ImagePickerDeleteButton, {
155
+ onFileDelete: onFileDelete
156
+ }))) : (/*#__PURE__*/React__default['default'].createElement(image_picker_input.ImagePickerInput, {
150
157
  isDragOver: isDragOver,
151
158
  allowedExtensions: allowedExtensions,
152
159
  allowedExtensionsLabel: allowedExtensionsLabel,
@@ -160,13 +167,14 @@ var ImagePicker = /*#__PURE__*/React.memo(function (_ref) {
160
167
  type: "file",
161
168
  name: name,
162
169
  accept: acceptFiles
163
- })), errors && /*#__PURE__*/React__default['default'].createElement(error_list.ErrorList, {
170
+ }))), errors && /*#__PURE__*/React__default['default'].createElement(error_list.ErrorList, {
164
171
  errors: errors
165
172
  }));
166
- }, function (prev, curr) {
173
+ }), function (prev, curr) {
167
174
  var _prev$initialFile, _curr$initialFile, _prev$initialFile2, _curr$initialFile2;
168
175
  return ((_prev$initialFile = prev.initialFile) === null || _prev$initialFile === void 0 ? void 0 : _prev$initialFile.fileUrl) === ((_curr$initialFile = curr.initialFile) === null || _curr$initialFile === void 0 ? void 0 : _curr$initialFile.fileUrl) && ((_prev$initialFile2 = prev.initialFile) === null || _prev$initialFile2 === void 0 ? void 0 : _prev$initialFile2.fileName) === ((_curr$initialFile2 = curr.initialFile) === null || _curr$initialFile2 === void 0 ? void 0 : _curr$initialFile2.fileName) && prev.errors === curr.errors && prev.editedImageResult === curr.editedImageResult && prev.topButtons === curr.topButtons;
169
176
  });
177
+ ImagePicker.displayName = 'ImagePicker';
170
178
 
171
179
  exports.ImagePicker = ImagePicker;
172
180
  //# sourceMappingURL=image_picker.js.map
@@ -1 +1 @@
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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
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 delete_bin_icon = require('../../assets/icons/delete_bin_icon.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+
14
+ var ImagePickerDeleteButton = function ImagePickerDeleteButton(_ref) {
15
+ var onFileDelete = _ref.onFileDelete;
16
+ var _useTranslation = useTranslation.useTranslation(),
17
+ _useTranslation2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslation, 1),
18
+ t = _useTranslation2[0];
19
+ return /*#__PURE__*/React__default['default'].createElement("button", {
20
+ "data-test-id": "image-picker-remove-button",
21
+ onClick: function onClick(e) {
22
+ e.stopPropagation();
23
+ e.preventDefault();
24
+ onFileDelete();
25
+ },
26
+ className: "aurora-flex aurora-items-center aurora-gap-1 aurora-border aurora-border-danger aurora-rounded-full aurora-px-3 aurora-py-[6px]",
27
+ type: "button"
28
+ }, /*#__PURE__*/React__default['default'].createElement(delete_bin_icon.DeleteBinLineIcon, {
29
+ className: "aurora-w-4 aurora-h-4 aurora-fill-danger"
30
+ }), /*#__PURE__*/React__default['default'].createElement("span", {
31
+ className: "aurora-text-xs aurora-text-danger aurora-font-semibold"
32
+ }, "".concat(t('Remove'))));
33
+ };
34
+
35
+ exports.ImagePickerDeleteButton = ImagePickerDeleteButton;
36
+ //# sourceMappingURL=image_picker_delete_button.js.map
@@ -0,0 +1 @@
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;"}
@@ -12,35 +12,24 @@ var useImagePicker = function useImagePicker(_ref) {
12
12
  initialFile = _ref.initialFile,
13
13
  allowedExtensions = _ref.allowedExtensions,
14
14
  inputRef = _ref.inputRef,
15
- initialErrors = _ref.initialErrors,
16
15
  onError = _ref.onError;
17
- var _useState = React.useState(null),
16
+ var fileListRef = React.useRef(null);
17
+ var _useState = React.useState(initialFile),
18
18
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
19
- fileList = _useState2[0],
20
- setFileList = _useState2[1];
21
- var _useState3 = React.useState(initialFile),
19
+ file = _useState2[0],
20
+ setFile = _useState2[1];
21
+ var _useState3 = React.useState(false),
22
22
  _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
23
- file = _useState4[0],
24
- setFile = _useState4[1];
25
- var _useState5 = React.useState(null),
23
+ isDragOver = _useState4[0],
24
+ setDragOver = _useState4[1];
25
+ var _useState5 = React.useState(true),
26
26
  _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
27
- fileAsDataUrl = _useState6[0],
28
- setFileAsDataUrl = _useState6[1];
29
- var _useState7 = React.useState([]),
30
- _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
31
- errors = _useState8[0],
32
- setErrors = _useState8[1];
33
- var _useState9 = React.useState(false),
34
- _useState10 = _rollupPluginBabelHelpers.slicedToArray(_useState9, 2),
35
- isDragOver = _useState10[0],
36
- setDragOver = _useState10[1];
37
- var _useState11 = React.useState(true),
38
- _useState12 = _rollupPluginBabelHelpers.slicedToArray(_useState11, 2),
39
- isPreview = _useState12[0],
40
- setPreview = _useState12[1];
27
+ isPreview = _useState6[0],
28
+ setPreview = _useState6[1];
41
29
  var reader = React.useRef(new FileReader());
30
+ var dragTimeoutRef = React.useRef(null);
42
31
  React.useEffect(function () {
43
- reader.current && getDataUrlFromFile(reader.current.result);
32
+ reader.current.result && getDataUrlFromFile(reader.current.result);
44
33
  reader.current.addEventListener('load', function () {
45
34
  return getDataUrlFromFile(reader.current.result);
46
35
  }, false);
@@ -53,23 +42,15 @@ var useImagePicker = function useImagePicker(_ref) {
53
42
  React.useEffect(function () {
54
43
  setFile(initialFile);
55
44
  }, [initialFile]);
56
- React.useEffect(function () {
57
- initialErrors && setErrors(initialErrors);
58
- }, [initialErrors]);
59
- React.useEffect(function () {
60
- fileAsDataUrl && (onChange === null || onChange === void 0 ? void 0 : onChange({
61
- fileList: fileList,
62
- fileAsDataUrl: fileAsDataUrl
63
- }));
64
- }, [fileAsDataUrl]);
65
45
  var onDropFile = function onDropFile(event) {
66
- setErrors([]);
46
+ onError === null || onError === void 0 ? void 0 : onError([]);
67
47
  event.stopPropagation();
68
48
  event.preventDefault();
49
+ setDragOver(false);
69
50
  var files = event.dataTransfer.files;
70
51
  if (!files.length) return;
71
- validateFileExtension(allowedExtensions, files[0].type);
72
- setDragOver(false);
52
+ var isValid = validateFileExtension(allowedExtensions, files[0].type);
53
+ if (!isValid) return;
73
54
  updateFile(files);
74
55
  };
75
56
  var validateFileExtension = function validateFileExtension(allowedExtensions, mimeType) {
@@ -77,24 +58,21 @@ var useImagePicker = function useImagePicker(_ref) {
77
58
  var isValid = allowedExtensions.reduce(function (acc, extension) {
78
59
  return acc ? acc : image_picker_constants.MIME_TYPE_TO_FILE_EXTENSIONS[mimeType] === extension;
79
60
  }, false);
80
- if (isValid) {
81
- setErrors([]);
82
- return isValid;
61
+ if (!isValid) {
62
+ onError === null || onError === void 0 ? void 0 : onError([i18n.i18n.t(image_picker_constants.IMAGE_PICKER_ERROR.invalidFileFormat)]);
83
63
  }
84
- setErrors([].concat(_rollupPluginBabelHelpers.toConsumableArray(errors), [i18n.i18n.t(image_picker_constants.IMAGE_PICKER_ERROR.invalidFileFormat)]));
85
- onError === null || onError === void 0 ? void 0 : onError(errors);
86
64
  return isValid;
87
65
  };
88
66
  var onFileChange = function onFileChange(event) {
89
67
  changeFile(event.target.files);
90
68
  };
91
69
  var changeFile = function changeFile(files) {
92
- setErrors([]);
70
+ onError === null || onError === void 0 ? void 0 : onError([]);
93
71
  updateFile(files);
94
72
  };
95
73
  var updateFile = function updateFile(files) {
96
74
  if (files !== null && files !== void 0 && files.length) {
97
- setFileList(files);
75
+ fileListRef.current = files;
98
76
  reader.current.readAsDataURL(files[0]);
99
77
  setFile({
100
78
  fileName: files === null || files === void 0 ? void 0 : files[0].name,
@@ -113,26 +91,33 @@ var useImagePicker = function useImagePicker(_ref) {
113
91
  setPreview(true);
114
92
  };
115
93
  var getDataUrlFromFile = function getDataUrlFromFile(fileReaderResult) {
116
- setFileAsDataUrl(fileReaderResult);
94
+ onChange === null || onChange === void 0 ? void 0 : onChange({
95
+ fileList: fileListRef.current,
96
+ fileAsDataUrl: fileReaderResult
97
+ });
117
98
  };
118
99
  var onDragOver = function onDragOver(event) {
100
+ var dt = event.dataTransfer;
101
+ if (!dt.types || !(dt.types.indexOf ? dt.types.indexOf('Files') != -1 : dt.types.includes('Files'))) {
102
+ return;
103
+ }
119
104
  event.stopPropagation();
120
105
  event.preventDefault();
121
106
  event.dataTransfer.dropEffect = 'copy';
122
- if (!isDragOver) {
123
- setDragOver(true);
124
- }
107
+ setDragOver(true);
108
+ dragTimeoutRef.current && window.clearTimeout(dragTimeoutRef.current);
125
109
  };
126
- var onDragLeave = function onDragLeave() {
127
- setDragOver(false);
110
+ var onDragLeave = function onDragLeave(event) {
111
+ dragTimeoutRef.current = setTimeout(function () {
112
+ setDragOver(false);
113
+ dragTimeoutRef.current = null;
114
+ }, 25);
128
115
  };
129
116
  var onFileDelete = function onFileDelete() {
130
117
  inputRef.current.value = '';
131
- setFileList(null);
118
+ fileListRef.current = null;
132
119
  setFile(undefined);
133
- setFileAsDataUrl(null);
134
120
  setPreview(true);
135
- setErrors([]);
136
121
  onChange === null || onChange === void 0 ? void 0 : onChange({
137
122
  fileList: null,
138
123
  fileAsDataUrl: null
@@ -150,7 +135,6 @@ var useImagePicker = function useImagePicker(_ref) {
150
135
  onPreviewError: onPreviewError,
151
136
  changeFile: changeFile,
152
137
  file: file,
153
- errors: errors,
154
138
  isPreview: isPreview,
155
139
  isDragOver: isDragOver
156
140
  };
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;"}