@scaleflex/widget-common 0.0.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 (125) hide show
  1. package/CHANGELOG.md +8056 -0
  2. package/LICENSE +21 -0
  3. package/README.md +58 -0
  4. package/dist/style.css +952 -0
  5. package/dist/style.min.css +1 -0
  6. package/lib/ApprovalStatus/ApprovalStatus.styled.js +21 -0
  7. package/lib/ApprovalStatus/index.js +104 -0
  8. package/lib/AssetPreview.js +53 -0
  9. package/lib/AutoSuggest.js +166 -0
  10. package/lib/Avatar/Avatar.styled.js +25 -0
  11. package/lib/Avatar/index.js +83 -0
  12. package/lib/AvatarWithStatus/AvatarWithStatus.styled.js +12 -0
  13. package/lib/AvatarWithStatus/index.js +30 -0
  14. package/lib/BackButton.js +46 -0
  15. package/lib/BackdropOverlay.js +77 -0
  16. package/lib/BadgeButton.js +35 -0
  17. package/lib/BaseButton.js +36 -0
  18. package/lib/Button.js +29 -0
  19. package/lib/Carousel/Carousel.styled.js +19 -0
  20. package/lib/Carousel/index.js +136 -0
  21. package/lib/Checkbox.js +55 -0
  22. package/lib/CloseButton.js +46 -0
  23. package/lib/ColorPicker/ColorPicker.styled.js +29 -0
  24. package/lib/ColorPicker/index.js +117 -0
  25. package/lib/ColorPickerModal/ColorPickerModal.styled.js +17 -0
  26. package/lib/ColorPickerModal/index.js +103 -0
  27. package/lib/DatePicker/MyDatePicker.js +350 -0
  28. package/lib/DatePicker/index.js +1 -0
  29. package/lib/DatePicker/index.scss +254 -0
  30. package/lib/DropFilesWindow.js +45 -0
  31. package/lib/FilterItem/FilterItem.styled.js +42 -0
  32. package/lib/FilterItem/index.js +48 -0
  33. package/lib/FilterPopup/FilterPopup.styled.js +16 -0
  34. package/lib/FilterPopup/index.js +85 -0
  35. package/lib/FormControl.js +25 -0
  36. package/lib/FormGroup.js +18 -0
  37. package/lib/FormHelperText.js +29 -0
  38. package/lib/IconLabeledButton.js +32 -0
  39. package/lib/Image/Image.styled.js +16 -0
  40. package/lib/Image/index.js +95 -0
  41. package/lib/ImagePreview/ImagePreview.styled.js +19 -0
  42. package/lib/ImagePreview/index.js +198 -0
  43. package/lib/InputAndLabel.js +77 -0
  44. package/lib/InputGroupTime.js +6 -0
  45. package/lib/InputLabel.js +18 -0
  46. package/lib/ItemButtonOverlay/ItemButtonOverlay.styled.js +33 -0
  47. package/lib/ItemButtonOverlay/index.js +23 -0
  48. package/lib/ItemHoverTopOptions.js +58 -0
  49. package/lib/LoaderView/LoaderView.styled.js +37 -0
  50. package/lib/LoaderView/index.js +32 -0
  51. package/lib/MetaData/FilterMetadataFields.js +115 -0
  52. package/lib/MetaData/FilterMetadataFields.styled.js +16 -0
  53. package/lib/MetaData/MetaDataField.js +246 -0
  54. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldBooleanType.js +36 -0
  55. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldDateType.js +53 -0
  56. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldMultiSelectType.js +71 -0
  57. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldNumericType.js +45 -0
  58. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldSelectType.js +69 -0
  59. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldTagsType.js +143 -0
  60. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldTextType.js +42 -0
  61. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldTextareaType.js +72 -0
  62. package/lib/MetaData/MetaDataFieldTypes/MetaDataFieldTypes.styled.js +57 -0
  63. package/lib/MetaData/MetaDataFieldTypes/MetadataAttachmentsFieldType/AttachmentsAssetsMetadataAccordion.styled.js +95 -0
  64. package/lib/MetaData/MetaDataFieldTypes/MetadataAttachmentsFieldType/MetadataAttachmentsAction.js +188 -0
  65. package/lib/MetaData/MetaDataFieldTypes/MetadataAttachmentsFieldType/MetadataAttachmentsFieldType.constants.js +48 -0
  66. package/lib/MetaData/MetaDataFieldTypes/MetadataAttachmentsFieldType/MetadataAttachmentsInfo.js +93 -0
  67. package/lib/MetaData/MetaDataFieldTypes/MetadataAttachmentsFieldType/index.js +116 -0
  68. package/lib/MetaData/MetaDataFieldTypes/MetadataFieldUriType.js +71 -0
  69. package/lib/MetaData/MetaDataFieldTypes/MetadataGeoPointField/MetadataGeoPointField.styled.js +8 -0
  70. package/lib/MetaData/MetaDataFieldTypes/MetadataGeoPointField/constants.js +10 -0
  71. package/lib/MetaData/MetaDataFieldTypes/MetadataGeoPointField/index.js +135 -0
  72. package/lib/MetaData/MetaDataFieldTypes/index.js +9 -0
  73. package/lib/MetaData/MetaDataFieldTypes.hooks.js +53 -0
  74. package/lib/OverlayCard/OverlayCard.styled.js +8 -0
  75. package/lib/OverlayCard/index.js +28 -0
  76. package/lib/PoweredBy.js +12 -0
  77. package/lib/Radiobox.js +63 -0
  78. package/lib/RegionalVariantsFilters/RegionalVariantFilters.styled.js +17 -0
  79. package/lib/RegionalVariantsFilters/index.js +160 -0
  80. package/lib/SVGUrlToElement.js +73 -0
  81. package/lib/SearchGroup/SearchGroup.styled.js +93 -0
  82. package/lib/SearchGroup/index.js +293 -0
  83. package/lib/Spinner.js +40 -0
  84. package/lib/SuggestedSelectInput/SuggestedSelectInput.styled.js +57 -0
  85. package/lib/SuggestedSelectInput/index.js +238 -0
  86. package/lib/SuggestedTagsInput/SuggestedTagsInput.js +295 -0
  87. package/lib/SuggestedTagsInput/SuggestedTagsInput.styled.js +83 -0
  88. package/lib/SuggestedTagsInput/SuggestedTagsInput.utils.js +15 -0
  89. package/lib/SuggestedTagsInput/SuggestedTagsInputSkeleton.js +14 -0
  90. package/lib/Tabs.js +62 -0
  91. package/lib/ToggleButton/ToggleButton.styled.js +16 -0
  92. package/lib/ToggleButton/index.js +16 -0
  93. package/lib/Transitions/SlideTransition.js +24 -0
  94. package/lib/Transitions/TransitionWrapper.js +83 -0
  95. package/lib/Transitions/Transitions.styled.js +8 -0
  96. package/lib/Transitions/index.js +2 -0
  97. package/lib/Transitions/transitions.scss +49 -0
  98. package/lib/Typography/Typography.js +47 -0
  99. package/lib/Typography/Typography.mixin.js +46 -0
  100. package/lib/Typography/Typography.styled.js +18 -0
  101. package/lib/Typography/index.js +3 -0
  102. package/lib/Typography/types/index.js +1 -0
  103. package/lib/Typography/types/variant.js +9 -0
  104. package/lib/UploadFileFloatyLabel/UploadFileFloatyLabel.mixin.js +23 -0
  105. package/lib/UploadFileFloatyLabel/UploadFileFloatyLabel.styled.js +24 -0
  106. package/lib/UploadFileFloatyLabel/index.js +12 -0
  107. package/lib/UsersAutocomplete/Tag.js +25 -0
  108. package/lib/UsersAutocomplete/Tag.styled.js +35 -0
  109. package/lib/UsersAutocomplete/UsersAutocomplete.styled.js +94 -0
  110. package/lib/UsersAutocomplete/index.js +303 -0
  111. package/lib/VirtualGrid/VirtualGrid.styled.js +33 -0
  112. package/lib/VirtualGrid/VirtualGrid.utils.js +38 -0
  113. package/lib/VirtualGrid/VirtualGridItem.js +15 -0
  114. package/lib/VirtualGrid/index.js +248 -0
  115. package/lib/VirtualList/VirtualListItem.js +14 -0
  116. package/lib/VirtualList/index.js +105 -0
  117. package/lib/hooks/index.js +4 -0
  118. package/lib/hooks/useDebounce.js +24 -0
  119. package/lib/hooks/useInputWithLocaleNumber.js +115 -0
  120. package/lib/hooks/useIsUnMountedRef.js +12 -0
  121. package/lib/hooks/useKeyboardNavigation.js +60 -0
  122. package/lib/hooks/useUpdateEffect.js +19 -0
  123. package/lib/index.js +36 -0
  124. package/lib/style.scss +1079 -0
  125. package/package.json +32 -0
@@ -0,0 +1,188 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
4
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
5
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ import { useRef, useState } from 'react';
12
+ import { useDispatch } from 'react-redux';
13
+ import { MenuItemLabel, TooltipV2 } from '@scaleflex/ui/core';
14
+ import { More, MoreVertical } from '@scaleflex/icons';
15
+ import { Spinner } from '../../..';
16
+ import { ATTACHMENT_ACTIONS } from './MetadataAttachmentsFieldType.constants';
17
+ import Styled from './AttachmentsAssetsMetadataAccordion.styled';
18
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
19
+ var MetadataAttachmentsAction = function MetadataAttachmentsAction(_ref) {
20
+ var i18n = _ref.i18n,
21
+ i18nArray = _ref.i18nArray,
22
+ src = _ref.src,
23
+ info = _ref.info,
24
+ fileWindowUpdated = _ref.fileWindowUpdated,
25
+ file = _ref.file,
26
+ isEditing = _ref.isEditing,
27
+ onChange = _ref.onChange,
28
+ fetchFileByUuid = _ref.fetchFileByUuid,
29
+ fieldKey = _ref.fieldKey,
30
+ filedValue = _ref.filedValue,
31
+ downloadOneFile = _ref.downloadOneFile,
32
+ copyCdnLink = _ref.copyCdnLink,
33
+ locateFile = _ref.locateFile,
34
+ deleteModal = _ref.deleteModal,
35
+ triggerDownloadConsentModal = _ref.triggerDownloadConsentModal;
36
+ var dispatch = useDispatch();
37
+ var buttonRef = useRef(null);
38
+ var _useState = useState(null),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ anchorEl = _useState2[0],
41
+ setAnchorEl = _useState2[1];
42
+ var _useState3 = useState(false),
43
+ _useState4 = _slicedToArray(_useState3, 2),
44
+ loading = _useState4[0],
45
+ setLoading = _useState4[1];
46
+ var _useState5 = useState([]),
47
+ _useState6 = _slicedToArray(_useState5, 2),
48
+ noPermissionFilesUuids = _useState6[0],
49
+ setNoPermissionFilesUuids = _useState6[1];
50
+ var _useState7 = useState({}),
51
+ _useState8 = _slicedToArray(_useState7, 2),
52
+ attachedFile = _useState8[0],
53
+ setAttachedFile = _useState8[1];
54
+ var noActionsPermission = noPermissionFilesUuids.includes(file.uuid);
55
+ var triggerFileLocating = function triggerFileLocating() {
56
+ locateFile({
57
+ uuid: file.uuid,
58
+ onSuccess: function onSuccess() {
59
+ return dispatch(fileWindowUpdated(file.uuid));
60
+ }
61
+ });
62
+ };
63
+ var openMenu = function openMenu() {
64
+ return setAnchorEl(buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current);
65
+ };
66
+ var closeMenu = function closeMenu() {
67
+ return setAnchorEl(null);
68
+ };
69
+ var toggleMenu = function toggleMenu() {
70
+ var isValidFile = (attachedFile === null || attachedFile === void 0 ? void 0 : attachedFile.uuid) === file.uuid;
71
+ if (!anchorEl && !isValidFile) {
72
+ fetchFile();
73
+ } else if (!anchorEl && isValidFile) {
74
+ openMenu();
75
+ } else {
76
+ closeMenu();
77
+ }
78
+ };
79
+ var fetchFile = function fetchFile() {
80
+ setLoading(true);
81
+ dispatch(fetchFileByUuid({
82
+ uuid: file.uuid
83
+ })).throwRejection().then(function (res) {
84
+ setAttachedFile(res);
85
+ setLoading(false);
86
+ if (res !== null && res !== void 0 && res.uuid) openMenu();
87
+ })["catch"](handleFetchError);
88
+ };
89
+ var handleFetchError = function handleFetchError(error) {
90
+ setLoading(false);
91
+ if (error.state === 404 || error.status === 403) {
92
+ setNoPermissionFilesUuids(function (prev) {
93
+ return [].concat(_toConsumableArray(prev), [file.uuid]);
94
+ });
95
+ }
96
+ };
97
+ var download = function download() {
98
+ triggerDownloadConsentModal(function () {
99
+ return dispatch(downloadOneFile({
100
+ file: attachedFile
101
+ }));
102
+ });
103
+ };
104
+ var onRemoveAsset = function onRemoveAsset() {
105
+ deleteModal({
106
+ title: i18n('explorerAssetsAttachmentRemoveLabel'),
107
+ onSuccessText: 'Asset removed',
108
+ content: i18nArray('explorerAssetsAttachmentRemoveContent', {
109
+ fileName: /*#__PURE__*/_jsxs(Styled.DeleteModalFileName, {
110
+ children: ["\u201C", file.name, "\u201D"]
111
+ }, "delete-file-name")
112
+ }),
113
+ onConfirm: function onConfirm() {
114
+ var nextValue = filedValue.filter(function (item) {
115
+ return item.uuid !== file.uuid;
116
+ });
117
+ onChange(nextValue, fieldKey);
118
+ }
119
+ });
120
+ };
121
+ var onClickMenuItem = function onClickMenuItem(onClick) {
122
+ var url = attachedFile.url;
123
+ var nextSrc = url.cdn || url.permalink || src;
124
+ onClick({
125
+ attachedFile: attachedFile,
126
+ src: nextSrc,
127
+ copyCdnLink: copyCdnLink,
128
+ info: info,
129
+ file: file,
130
+ i18n: i18n,
131
+ triggerFileLocating: triggerFileLocating,
132
+ download: download,
133
+ onRemoveAsset: onRemoveAsset
134
+ });
135
+ setAnchorEl(null);
136
+ };
137
+ var renderMenuItems = function renderMenuItems(_ref2) {
138
+ var i18Str = _ref2.i18Str,
139
+ _onClick = _ref2.onClick,
140
+ Icon = _ref2.Icon,
141
+ hideOption = _ref2.hideOption,
142
+ _ref2$danger = _ref2.danger,
143
+ danger = _ref2$danger === void 0 ? false : _ref2$danger;
144
+ if (typeof hideOption === 'function' && hideOption({
145
+ isEditing: isEditing
146
+ })) return;
147
+ return /*#__PURE__*/_jsxs(Styled.MenuItem, {
148
+ onClick: function onClick() {
149
+ return onClickMenuItem(_onClick);
150
+ },
151
+ danger: danger,
152
+ children: [/*#__PURE__*/_jsx(Styled.MenuItemIcon, {
153
+ children: /*#__PURE__*/_jsx(Icon, {
154
+ size: 14
155
+ })
156
+ }), /*#__PURE__*/_jsx(MenuItemLabel, {
157
+ children: i18n(i18Str)
158
+ })]
159
+ }, i18Str);
160
+ };
161
+ return /*#__PURE__*/_jsxs(_Fragment, {
162
+ children: [/*#__PURE__*/_jsx(Styled.Menu, {
163
+ anchorEl: anchorEl,
164
+ open: Boolean(anchorEl),
165
+ onClose: toggleMenu,
166
+ children: ATTACHMENT_ACTIONS.map(renderMenuItems)
167
+ }), noActionsPermission ? /*#__PURE__*/_jsx(TooltipV2, {
168
+ title: i18n('metaAttachmentPermissionInfo'),
169
+ position: "right",
170
+ size: "md",
171
+ children: /*#__PURE__*/_jsx("div", {
172
+ children: /*#__PURE__*/_jsx(Styled.IconButton, {
173
+ disabled: true,
174
+ color: "basic",
175
+ children: /*#__PURE__*/_jsx(MoreVertical, {})
176
+ })
177
+ })
178
+ }) : /*#__PURE__*/_jsx(Styled.IconButton, {
179
+ color: "basic",
180
+ onClick: toggleMenu,
181
+ ref: buttonRef,
182
+ children: loading ? /*#__PURE__*/_jsx(Spinner, {
183
+ noMargin: true
184
+ }) : /*#__PURE__*/_jsx(More, {})
185
+ })]
186
+ });
187
+ };
188
+ export default MetadataAttachmentsAction;
@@ -0,0 +1,48 @@
1
+ import openLink from '@scaleflex/widget-utils/lib/openLink';
2
+ import { OpenLink, Hub, Link, Download, Remove } from '@scaleflex/icons';
3
+ export var ATTACHMENT_ACTIONS = [{
4
+ i18Str: 'explorerAssetsAttachmentOpenInNewTabLabel',
5
+ Icon: OpenLink,
6
+ onClick: function onClick(_ref) {
7
+ var src = _ref.src;
8
+ openLink(src);
9
+ },
10
+ hideOption: function hideOption() {}
11
+ }, {
12
+ i18Str: 'explorerAssetsAttachmentOpenInHubLabel',
13
+ Icon: Hub,
14
+ onClick: function onClick(_ref2) {
15
+ var triggerFileLocating = _ref2.triggerFileLocating;
16
+ triggerFileLocating();
17
+ },
18
+ hideOption: function hideOption() {}
19
+ }, {
20
+ i18Str: 'explorerAssetsAttachmentCdnLinkLabel',
21
+ Icon: Link,
22
+ onClick: function onClick(_ref3) {
23
+ var copyCdnLink = _ref3.copyCdnLink,
24
+ attachedFile = _ref3.attachedFile;
25
+ copyCdnLink(attachedFile);
26
+ },
27
+ hideOption: function hideOption() {}
28
+ }, {
29
+ i18Str: 'mutualizedDownloadButton',
30
+ Icon: Download,
31
+ onClick: function onClick(_ref4) {
32
+ var download = _ref4.download;
33
+ download();
34
+ },
35
+ hideOption: function hideOption() {}
36
+ }, {
37
+ i18Str: 'explorerAssetsAttachmentRemoveLabel',
38
+ Icon: Remove,
39
+ onClick: function onClick(_ref5) {
40
+ var onRemoveAsset = _ref5.onRemoveAsset;
41
+ onRemoveAsset();
42
+ },
43
+ hideOption: function hideOption(_ref6) {
44
+ var isEditing = _ref6.isEditing;
45
+ return !isEditing;
46
+ },
47
+ danger: true
48
+ }];
@@ -0,0 +1,93 @@
1
+ import { ImagePreview } from '@scaleflex/widget-common';
2
+ import { EllipsedText } from '@scaleflex/ui/core';
3
+ import getItemIcon from '@scaleflex/widget-utils/lib/getItemIcon';
4
+ import getFileExtension from '@scaleflex/widget-utils/lib/getFileExtension';
5
+ import isTransparencySupported from '@scaleflex/widget-utils/lib/isTransparencySupported';
6
+ import MetadataAttachmentsAction from './MetadataAttachmentsAction';
7
+ import Styled from './AttachmentsAssetsMetadataAccordion.styled';
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
+ var MetadataAttachmentsInfo = function MetadataAttachmentsInfo(_ref) {
10
+ var _ref$filedValue = _ref.filedValue,
11
+ filedValue = _ref$filedValue === void 0 ? [] : _ref$filedValue,
12
+ i18n = _ref.i18n,
13
+ i18nArray = _ref.i18nArray,
14
+ isEditing = _ref.isEditing,
15
+ downloadOneFile = _ref.downloadOneFile,
16
+ onChange = _ref.onChange,
17
+ fieldKey = _ref.fieldKey,
18
+ explorerInfo = _ref.info,
19
+ fetchFileByUuid = _ref.fetchFileByUuid,
20
+ copyCdnLink = _ref.copyCdnLink,
21
+ locateFile = _ref.locateFile,
22
+ deleteModal = _ref.deleteModal,
23
+ triggerDownloadConsentModal = _ref.triggerDownloadConsentModal,
24
+ fileWindowUpdated = _ref.fileWindowUpdated;
25
+ var renderFileSize = function renderFileSize(fileSize, info) {
26
+ var imageWidth = info === null || info === void 0 ? void 0 : info.img_w;
27
+ var imageHeight = info === null || info === void 0 ? void 0 : info.img_h;
28
+ var formattedSize = fileSize === null || fileSize === void 0 ? void 0 : fileSize.pretty;
29
+ return /*#__PURE__*/_jsxs(Styled.FileSizeWrapper, {
30
+ children: [formattedSize && /*#__PURE__*/_jsx(Styled.Label, {
31
+ children: formattedSize
32
+ }), !!imageWidth && !!imageHeight && /*#__PURE__*/_jsxs(_Fragment, {
33
+ children: [/*#__PURE__*/_jsx(Styled.Label, {
34
+ children: "\u2022"
35
+ }), /*#__PURE__*/_jsxs(Styled.Label, {
36
+ children: [imageWidth, /*#__PURE__*/_jsx(Styled.Multiplier, {
37
+ children: "x"
38
+ }), imageHeight]
39
+ })]
40
+ })]
41
+ });
42
+ };
43
+ return /*#__PURE__*/_jsx(Styled.AssetsInfoWrapper, {
44
+ children: filedValue.map(function (file) {
45
+ var _file$info, _file$info2, _file$url;
46
+ return /*#__PURE__*/_jsxs(Styled.AssetsInfoContent, {
47
+ children: [/*#__PURE__*/_jsx(Styled.ImageWrapper, {
48
+ children: /*#__PURE__*/_jsx(ImagePreview, {
49
+ file: file,
50
+ size: file.size,
51
+ srcUrl: getItemIcon({
52
+ fileOrFolder: file
53
+ }),
54
+ thumbnailUrl: file === null || file === void 0 ? void 0 : (_file$info = file.info) === null || _file$info === void 0 ? void 0 : _file$info.thumbnail,
55
+ previewUrl: file === null || file === void 0 ? void 0 : (_file$info2 = file.info) === null || _file$info2 === void 0 ? void 0 : _file$info2.preview,
56
+ isFileDetailsPreview: true,
57
+ extension: getFileExtension(file),
58
+ isTransparencySupported: isTransparencySupported(file),
59
+ defaultIconWidth: 130,
60
+ defaultIconHeight: 130,
61
+ defaultIconMargin: 10,
62
+ isSmallSizePreview: true
63
+ })
64
+ }), /*#__PURE__*/_jsxs(Styled.AssetsInfo, {
65
+ children: [/*#__PURE__*/_jsx(EllipsedText, {
66
+ maxLinesCount: 1,
67
+ children: /*#__PURE__*/_jsx(Styled.AssetsInfoTitle, {
68
+ children: file.name
69
+ })
70
+ }), renderFileSize(file.size, file.info)]
71
+ }), /*#__PURE__*/_jsx(MetadataAttachmentsAction, {
72
+ i18n: i18n,
73
+ i18nArray: i18nArray,
74
+ src: ((_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.cdn) || (file === null || file === void 0 ? void 0 : file.thumbnail),
75
+ info: explorerInfo,
76
+ file: file,
77
+ isEditing: isEditing,
78
+ onChange: onChange,
79
+ filedValue: filedValue,
80
+ fieldKey: fieldKey,
81
+ locateFile: locateFile,
82
+ deleteModal: deleteModal,
83
+ downloadOneFile: downloadOneFile,
84
+ triggerDownloadConsentModal: triggerDownloadConsentModal,
85
+ fileWindowUpdated: fileWindowUpdated,
86
+ fetchFileByUuid: fetchFileByUuid,
87
+ copyCdnLink: copyCdnLink
88
+ })]
89
+ }, file.uuid);
90
+ })
91
+ });
92
+ };
93
+ export default MetadataAttachmentsInfo;
@@ -0,0 +1,116 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
4
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
5
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ import { useState } from 'react';
12
+ import { Button } from '@scaleflex/ui/core';
13
+ import { PlusOutline } from '@scaleflex/icons';
14
+ import { useCore } from '@scaleflex/widget-core/lib/hooks';
15
+ import MetadataAttachmentsInfo from './MetadataAttachmentsInfo';
16
+ import Styled from './AttachmentsAssetsMetadataAccordion.styled';
17
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ var MAX_ATTACHMENTS = 5;
19
+ var MetadataAttachmentsFieldType = function MetadataAttachmentsFieldType(_ref) {
20
+ var field = _ref.field,
21
+ i18n = _ref.i18n,
22
+ isEditing = _ref.isEditing,
23
+ i18nArray = _ref.i18nArray,
24
+ smallerFont = _ref.smallerFont,
25
+ onChange = _ref.onChange,
26
+ editedDetails = _ref.editedDetails,
27
+ meta = _ref.meta,
28
+ fileWindowUpdated = _ref.fileWindowUpdated,
29
+ openAssetPicker = _ref.openAssetPicker,
30
+ info = _ref.info,
31
+ downloadOneFile = _ref.downloadOneFile,
32
+ originalFile = _ref.originalFile,
33
+ copyCdnLink = _ref.copyCdnLink,
34
+ locateFile = _ref.locateFile,
35
+ deleteModal = _ref.deleteModal,
36
+ triggerDownloadConsentModal = _ref.triggerDownloadConsentModal,
37
+ fetchFileByUuid = _ref.fetchFileByUuid,
38
+ assetsPickerExploreViewComponent = _ref.assetsPickerExploreViewComponent;
39
+ var _useCore = useCore(),
40
+ _useCore$opts = _useCore.opts,
41
+ securityTemplateId = _useCore$opts.securityTemplateId,
42
+ container = _useCore$opts.container;
43
+ var _useState = useState(false),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ isExpanded = _useState2[0],
46
+ setIsExpanded = _useState2[1];
47
+ var key = field.key,
48
+ title = field.title;
49
+ var filedValue = editedDetails[key] || meta[key] || [];
50
+ var showAddButton = isEditing && (!filedValue || filedValue.length < 5);
51
+ var handleImportFile = function handleImportFile(files) {
52
+ var nextFiles = files.map(function (_ref2) {
53
+ var file = _ref2.file;
54
+ return file;
55
+ });
56
+ var values = [].concat(_toConsumableArray(filedValue), _toConsumableArray(nextFiles));
57
+ if (!isExpanded) {
58
+ setIsExpanded(true);
59
+ }
60
+ onChange(values, key);
61
+ };
62
+ var handleAddButton = function handleAddButton() {
63
+ var selectedFilesUuids = filedValue.map(function (_ref3) {
64
+ var uuid = _ref3.uuid;
65
+ return uuid;
66
+ });
67
+ openAssetPicker({
68
+ onImport: function onImport(files) {
69
+ return handleImportFile(files);
70
+ },
71
+ multiSelect: true,
72
+ maxCountOfSelectedFiles: MAX_ATTACHMENTS - filedValue.length,
73
+ mutedFilesUuids: [originalFile.uuid].concat(_toConsumableArray(selectedFilesUuids)),
74
+ securityTemplateId: securityTemplateId,
75
+ container: container,
76
+ ExploreViewComponent: assetsPickerExploreViewComponent
77
+ });
78
+ };
79
+ return /*#__PURE__*/_jsxs(Styled.ContentWrapper, {
80
+ children: [/*#__PURE__*/_jsx(Styled.InnerAccordion, {
81
+ label: "".concat(title, " (").concat((filedValue === null || filedValue === void 0 ? void 0 : filedValue.length) || 0, "/5)"),
82
+ expanded: !!(filedValue !== null && filedValue !== void 0 && filedValue.length) && isExpanded,
83
+ onClick: function onClick() {
84
+ return setIsExpanded(!isExpanded);
85
+ },
86
+ noAccordionContent: !(filedValue !== null && filedValue !== void 0 && filedValue.length),
87
+ smallerFont: smallerFont,
88
+ children: /*#__PURE__*/_jsx(MetadataAttachmentsInfo, {
89
+ filedValue: filedValue,
90
+ i18n: i18n,
91
+ i18nArray: i18nArray,
92
+ isEditing: isEditing,
93
+ onChange: onChange,
94
+ fieldKey: key,
95
+ info: info,
96
+ fetchFileByUuid: fetchFileByUuid,
97
+ locateFile: locateFile,
98
+ deleteModal: deleteModal,
99
+ downloadOneFile: downloadOneFile,
100
+ triggerDownloadConsentModal: triggerDownloadConsentModal,
101
+ fileWindowUpdated: fileWindowUpdated,
102
+ copyCdnLink: copyCdnLink
103
+ })
104
+ }), showAddButton && /*#__PURE__*/_jsx(Styled.AddBtnWrapper, {
105
+ children: /*#__PURE__*/_jsx(Button, {
106
+ color: "link-primary",
107
+ startIcon: /*#__PURE__*/_jsx(PlusOutline, {}),
108
+ size: "sm",
109
+ onClick: handleAddButton,
110
+ "data-testid": "add-attachment-link",
111
+ children: i18n('explorerAddAttachmentLabel')
112
+ })
113
+ })]
114
+ });
115
+ };
116
+ export default MetadataAttachmentsFieldType;
@@ -0,0 +1,71 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["value", "onChange", "inputRef", "style", "size", "i18n", "uriFilterOptions", "onBlur"];
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
9
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
10
+ import { Select, MenuItem, InputGroup } from '@scaleflex/ui/core';
11
+ import isValidUri from '@scaleflex/widget-utils/lib/isValidUri';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export default (function (_ref) {
14
+ var _ref$value = _ref.value,
15
+ value = _ref$value === void 0 ? '' : _ref$value,
16
+ _onChange = _ref.onChange,
17
+ inputRef = _ref.inputRef,
18
+ style = _ref.style,
19
+ _ref$size = _ref.size,
20
+ size = _ref$size === void 0 ? 'md' : _ref$size,
21
+ i18n = _ref.i18n,
22
+ _ref$uriFilterOptions = _ref.uriFilterOptions,
23
+ uriFilterOptions = _ref$uriFilterOptions === void 0 ? [] : _ref$uriFilterOptions,
24
+ onBlur = _ref.onBlur,
25
+ rest = _objectWithoutProperties(_ref, _excluded);
26
+ var error = value && !isValidUri(value);
27
+ var onBlurHandler = function onBlurHandler() {
28
+ if (typeof onBlur === 'function' && !error) {
29
+ onBlur();
30
+ }
31
+ };
32
+
33
+ // TODO: refactor should be split in 2 components
34
+ if (uriFilterOptions.length > 0) {
35
+ return /*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({}, rest), {}, {
36
+ ref: inputRef,
37
+ value: value,
38
+ onChange: function onChange(value) {
39
+ return _onChange(value);
40
+ },
41
+ style: style,
42
+ size: size,
43
+ fullWidth: true,
44
+ children: uriFilterOptions.map(function (_ref2) {
45
+ var i18nStr = _ref2.i18nStr,
46
+ value = _ref2.value;
47
+ return /*#__PURE__*/_jsx(MenuItem, {
48
+ value: value,
49
+ children: i18n(i18nStr) || i18nStr
50
+ }, i18nStr);
51
+ })
52
+ }));
53
+ }
54
+ return /*#__PURE__*/_jsx(InputGroup, _objectSpread(_objectSpread({}, rest), {}, {
55
+ onChange: function onChange(_ref3) {
56
+ var currentTarget = _ref3.currentTarget;
57
+ return _onChange(currentTarget.value);
58
+ },
59
+ value: value,
60
+ ref: inputRef,
61
+ onBlur: onBlurHandler,
62
+ style: _objectSpread({
63
+ marginBottom: 0,
64
+ minWidth: 30
65
+ }, style),
66
+ size: size,
67
+ hint: error && i18n('explorerUriValidationError'),
68
+ error: error,
69
+ fullWidth: true
70
+ }));
71
+ });
@@ -0,0 +1,8 @@
1
+ var _templateObject;
2
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
+ import styled from 'styled-components';
4
+ var InputWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: flex-start;\n gap: 12px;\n width: 100%;\n\n .SfxInputGroup-root{\n width: 100%;\n }\n"])));
5
+ var Styled = {
6
+ InputWrapper: InputWrapper
7
+ };
8
+ export default Styled;
@@ -0,0 +1,10 @@
1
+ export var REMOVE_PARENTHESES_REGEX = /[()]/g;
2
+ export var MIN_LONGITUDE = -180;
3
+ export var MAX_LONGITUDE = 180;
4
+ export var MIN_LATITUDE = -90;
5
+ export var MAX_LATITUDE = 90;
6
+ export var GEO_POINT_FIELDS = {
7
+ LONGITUDE: 'longitude',
8
+ LATITUDE: 'latitude',
9
+ DISTANCE: 'distance'
10
+ };