@scaleflex/widget-utils 4.8.11 → 4.8.12

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 (119) hide show
  1. package/lib/AbortController.js +20 -0
  2. package/lib/BlurHash/base83.js +10 -0
  3. package/lib/BlurHash/decode.js +80 -0
  4. package/lib/BlurHash/error.js +28 -0
  5. package/lib/BlurHash/utils.js +22 -0
  6. package/lib/CustomDate.js +157 -0
  7. package/lib/EventTracker.js +42 -0
  8. package/lib/FOCUSABLE_ELEMENTS.js +1 -0
  9. package/lib/Timeframes/getDateRange.js +45 -0
  10. package/lib/addUrlParams.js +27 -0
  11. package/lib/adjustUpdatedFolders.js +22 -0
  12. package/lib/asyncTimeout.js +6 -0
  13. package/lib/audioMimeTypes.js +3 -0
  14. package/lib/blobToDataURI.js +13 -0
  15. package/lib/callIfFunction.js +10 -0
  16. package/lib/canEditVideo.js +9 -0
  17. package/lib/canvasToBlob.js +18 -0
  18. package/lib/capitalizeFirstLetter.js +4 -0
  19. package/lib/checkConnection.js +4 -0
  20. package/lib/checkFileOrFolderNameValidation.js +4 -0
  21. package/lib/checkIfPngSvgGIF.js +3 -0
  22. package/lib/checkImageIfPngJpegOrWebpOrAvif.js +5 -0
  23. package/lib/checkItemsSupportExportWithReason.js +41 -0
  24. package/lib/checkPermissions.js +26 -0
  25. package/lib/cloudimageSupportedInputMimeTypes.js +2 -0
  26. package/lib/clsx.js +14 -0
  27. package/lib/constants.js +572 -0
  28. package/lib/convertBytesToMb.js +5 -0
  29. package/lib/convertGbToBytes.js +4 -0
  30. package/lib/convertVideoFileTypeToSupported.js +17 -0
  31. package/lib/copyText.js +25 -0
  32. package/lib/createFolderVirtualPath.js +14 -0
  33. package/lib/createThunk.js +350 -0
  34. package/lib/customEncodeURIComponent.js +47 -0
  35. package/lib/dataURItoBlob.js +33 -0
  36. package/lib/dataURItoFile.js +4 -0
  37. package/lib/dateStrToClearDateTime.js +20 -0
  38. package/lib/debounce.js +14 -0
  39. package/lib/deepEqual.js +23 -0
  40. package/lib/deepMerge.js +56 -0
  41. package/lib/deserializeFunction.js +23 -0
  42. package/lib/documentMimeTypes.js +2 -0
  43. package/lib/downloadFromBlob.js +16 -0
  44. package/lib/emitSocketProgress.js +18 -0
  45. package/lib/escapeRegExp.js +4 -0
  46. package/lib/extractFileDataNoBlob.js +12 -0
  47. package/lib/fetchWithNetworkError.js +14 -0
  48. package/lib/fieldsQueriesGetters.js +46 -0
  49. package/lib/findAllDOMElements.js +18 -0
  50. package/lib/findAllRegexMatchesInString.js +16 -0
  51. package/lib/findDOMElement.js +17 -0
  52. package/lib/findIndex.js +9 -0
  53. package/lib/formatDuration.js +22 -0
  54. package/lib/formatNumbers.js +32 -0
  55. package/lib/formatResolution.js +17 -0
  56. package/lib/formatSeconds.js +14 -0
  57. package/lib/generateFileId.js +53 -0
  58. package/lib/generateI18nKeyFromString.js +11 -0
  59. package/lib/generatePsdThumbnail/adaptHexBoundries.js +9 -0
  60. package/lib/generatePsdThumbnail/bufferToHex.js +12 -0
  61. package/lib/generatePsdThumbnail/generatePsdThumbnail.js +36 -0
  62. package/lib/generatePsdThumbnail/generatePsdThumbnailBytes.js +8 -0
  63. package/lib/generatePsdThumbnail/generatePsdThumbnailHex.js +4 -0
  64. package/lib/generateSelectInputPlaceholder.js +24 -0
  65. package/lib/getActionErrorState.js +17 -0
  66. package/lib/getArraysMutualObjects.js +12 -0
  67. package/lib/getBytesRemaining.js +9 -0
  68. package/lib/getClientTimezone.js +5 -0
  69. package/lib/getCloudimagePrefixedUrl.js +23 -0
  70. package/lib/getDateDaysFromNow.js +17 -0
  71. package/lib/getDateMinusDay.js +5 -0
  72. package/lib/getDateString.js +20 -0
  73. package/lib/getDaysLeft.js +9 -0
  74. package/lib/getDecodedUriComponent.js +10 -0
  75. package/lib/getDownloadSpeed.js +7 -0
  76. package/lib/getDroppedFiles/index.js +24 -0
  77. package/lib/getDroppedFiles/utils/fallbackApi.js +7 -0
  78. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js +36 -0
  79. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getRelativePath.js +16 -0
  80. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js +57 -0
  81. package/lib/getEncodedWrappedUrl.js +7 -0
  82. package/lib/getFileAssetsTokenUrl.js +14 -0
  83. package/lib/getFileCdnLink.js +6 -0
  84. package/lib/getFileDefaultIcon.js +14 -0
  85. package/lib/getFileDetails.js +81 -0
  86. package/lib/getFileExtension.js +32 -0
  87. package/lib/getFileLink.js +17 -0
  88. package/lib/getFileNameAndExtension.js +22 -0
  89. package/lib/getFileType.js +23 -0
  90. package/lib/getFileTypeExtension.js +22 -0
  91. package/lib/getFilterFileFormatIcon.js +6 -0
  92. package/lib/getFolderDetails.js +30 -0
  93. package/lib/getFormattedPreviewUrl.js +79 -0
  94. package/lib/getHoursAndMinutes.js +9 -0
  95. package/lib/getImageEditUrl.js +36 -0
  96. package/lib/getImgFileDimensions.js +25 -0
  97. package/lib/getItemIcon.js +112 -0
  98. package/lib/getItemPath.js +10 -0
  99. package/lib/getItemPreviewWidthHeight.js +10 -0
  100. package/lib/getItemsSizeInBytes.js +12 -0
  101. package/lib/getJsonParsedValue.js +11 -0
  102. package/lib/metadata/checkFieldValidation.js +51 -0
  103. package/lib/metadata/generateItemMetadataState.js +63 -0
  104. package/lib/metadata/generateMetadataDefaultState.js +30 -0
  105. package/lib/metadata/getFileCustomMetadataGroups.js +23 -0
  106. package/lib/metadata/getGeoPointValidationErrors.js +32 -0
  107. package/lib/metadata/getMetaAttachmentFields.js +9 -0
  108. package/lib/metadata/getMetadataEmptyAssets.js +28 -0
  109. package/lib/metadata/getMetadataFieldGeoPointValue.js +42 -0
  110. package/lib/metadata/getMetadataFieldVariantValue.js +31 -0
  111. package/lib/metadata/getMetadataGroups.js +16 -0
  112. package/lib/metadata/getRequiredMetadataFields.js +13 -0
  113. package/lib/metadata/isM0LegacyMetaVersion.js +5 -0
  114. package/lib/metadata/isM1EdgyMetaVersion.js +5 -0
  115. package/lib/metadata/mapMetaAttachmentsObjsToUuids.js +21 -0
  116. package/lib/metadata/updateValidationErrors.js +59 -0
  117. package/lib/metadata/validateItemMetadata.js +70 -0
  118. package/lib/styledComponentsMixins/truncate.mixin.js +8 -0
  119. package/package.json +3 -3
@@ -0,0 +1,10 @@
1
+ import { LAYOUTS_IDS } from './constants';
2
+ var getItemPreviewWidthAndHeight = function getItemPreviewWidthAndHeight(viewLayout) {
3
+ var isListView = viewLayout === LAYOUTS_IDS.LIST;
4
+ var baseWidth = isListView ? 100 : 200;
5
+ var baseHeight = isListView ? 70 : 150;
6
+ var width = parseInt(baseWidth * devicePixelRatio);
7
+ var height = parseInt(baseHeight * devicePixelRatio);
8
+ return [width, height];
9
+ };
10
+ export default getItemPreviewWidthAndHeight;
@@ -0,0 +1,12 @@
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 getItemsSizeInBytes = function getItemsSizeInBytes() {
3
+ var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
4
+ return items.reduce(function (totalItemsSize) {
5
+ var _currentItem$size, _currentItem$size2;
6
+ var currentItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7
+ var itemSize = ((_currentItem$size = currentItem.size) === null || _currentItem$size === void 0 ? void 0 : _currentItem$size.total_recursive_bytes) || ((_currentItem$size2 = currentItem.size) === null || _currentItem$size2 === void 0 ? void 0 : _currentItem$size2.bytes) || currentItem.total_recursive_bytes || _typeof(currentItem.size) !== 'object' && currentItem.size || 0;
8
+ totalItemsSize += Number(itemSize);
9
+ return totalItemsSize;
10
+ }, 0);
11
+ };
12
+ export default getItemsSizeInBytes;
@@ -0,0 +1,11 @@
1
+ // if the value is a possible (JSON string) then we need to parse it to JS object, if not and it's a real string or other type then return it.
2
+ var getJsonParsedValue = function getJsonParsedValue(value) {
3
+ var parsedValue = value;
4
+ if (typeof parsedValue === 'string') {
5
+ try {
6
+ parsedValue = JSON.parse(parsedValue);
7
+ } catch (e) {}
8
+ }
9
+ return parsedValue;
10
+ };
11
+ export default getJsonParsedValue;
@@ -0,0 +1,51 @@
1
+ import getGeoPointValidationErrors from './getGeoPointValidationErrors';
2
+ import isValidUri from '../isValidUri';
3
+
4
+ /**
5
+ * Check is metadata field value valid
6
+ * @param {(string|number|array)} value
7
+ * @param {string} [fieldValidation]
8
+ * @param {boolean} [required]
9
+ * @returns {(boolean|string)} - If TRUE field is valid, if FALSE or message field is not valid.
10
+ * @param {boolean} [canEdit=true]
11
+ */
12
+ function checkFieldValidation(_ref) {
13
+ var fieldValue = _ref.fieldValue,
14
+ fieldValidation = _ref.fieldValidation,
15
+ isFieldRequired = _ref.isFieldRequired,
16
+ _ref$editable = _ref.editable,
17
+ editable = _ref$editable === void 0 ? true : _ref$editable,
18
+ i18n = _ref.i18n,
19
+ fieldType = _ref.fieldType;
20
+ if (isFieldRequired && editable && (!fieldValue || Array.isArray(fieldValue) && !fieldValue.length)) {
21
+ return typeof i18n === 'function' ? i18n('mutualizedFieldRequired') : 'Field is required!';
22
+ }
23
+
24
+ /**
25
+ * When field is required but current user can't edit the field, we have to set that current value is valid to unlock other fields save.
26
+ */
27
+ if (isFieldRequired && !editable) {
28
+ return true;
29
+ }
30
+ if (fieldType === 'attachment-uri' && !isValidUri(fieldValue) && fieldValue) {
31
+ return false;
32
+ }
33
+ if (fieldType === 'geopoint' && Object.keys(getGeoPointValidationErrors({
34
+ geoPoint: fieldValue
35
+ })).length > 0 && fieldValue) {
36
+ return false;
37
+ }
38
+ if (!fieldValidation) {
39
+ // If no fieldValidation rules return TRUE (field valid)
40
+ return true;
41
+ }
42
+ if (typeof fieldValidation !== 'string') {
43
+ console.warn('Metadata field validation: support string only!', {
44
+ fieldValue: fieldValue,
45
+ fieldValidation: fieldValidation
46
+ });
47
+ return true;
48
+ }
49
+ return new RegExp(fieldValidation).test(fieldValue) ? true : "String \"".concat(fieldValue, "\" not match regexp ").concat(fieldValidation);
50
+ }
51
+ export default checkFieldValidation;
@@ -0,0 +1,63 @@
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
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ 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); }
7
+ import generateMetadataDefaultState from '@scaleflex/widget-utils/lib/metadata/generateMetadataDefaultState';
8
+
9
+ /**
10
+ * @param {object[]} metaDataGroups
11
+ * @param {object} item - File or folder
12
+ * @param {object[]} metaRegionalGroups
13
+ * @returns {object} - Item metadata state
14
+ */
15
+ export function generateItemMetadataState(metaDataGroups, item, metaRegionalGroups) {
16
+ var defaultState = generateMetadataDefaultState(metaDataGroups, metaRegionalGroups);
17
+ var itemMetadataState = _objectSpread(_objectSpread({}, defaultState), JSON.parse(JSON.stringify(item.meta || {})));
18
+
19
+ /**
20
+ * Sometimes we have cases when field had simple value like string (ex: {title: "My title"}) and then
21
+ * field config was changed and now we have regional_variants. Now {title: {en: "Eng title", fr: "title"}}
22
+ */
23
+ (metaDataGroups || []).forEach(function (group) {
24
+ ((group || {}).fields || []).forEach(function (field) {
25
+ var _metaRegionalGroups$f;
26
+ var fieldRegionalVariants = metaRegionalGroups === null || metaRegionalGroups === void 0 ? void 0 : (_metaRegionalGroups$f = metaRegionalGroups.find(function (group) {
27
+ return group.uuid === (field === null || field === void 0 ? void 0 : field.regional_variants_group_uuid);
28
+ })) === null || _metaRegionalGroups$f === void 0 ? void 0 : _metaRegionalGroups$f.variants;
29
+ var fieldHasRegionalVars = (fieldRegionalVariants || []).length > 0;
30
+ var isStateValueObject = _typeof(itemMetadataState[field.key]) === 'object' && !Array.isArray(itemMetadataState[field.key]) && itemMetadataState[field.key] !== null;
31
+ if (fieldHasRegionalVars && !isStateValueObject || !fieldHasRegionalVars && isStateValueObject) {
32
+ itemMetadataState[field.key] = defaultState[field.key];
33
+ }
34
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'tags' && fieldHasRegionalVars) {
35
+ // Fix bug https://sfx.li/6AGcWPsVyfZakK (also we need 2 fixed: BE and @scaleflex/ui)
36
+ itemMetadataState[field.key] = itemMetadataState[field.key] || {};
37
+ fieldRegionalVariants.forEach(function (regVar) {
38
+ var _itemMetadataState$fi;
39
+ var value = (_itemMetadataState$fi = itemMetadataState[field.key]) === null || _itemMetadataState$fi === void 0 ? void 0 : _itemMetadataState$fi[regVar === null || regVar === void 0 ? void 0 : regVar.api_value];
40
+ itemMetadataState[field.key][regVar === null || regVar === void 0 ? void 0 : regVar.api_value] = adaptStringifiedArray(value);
41
+ });
42
+ }
43
+ });
44
+ });
45
+ return itemMetadataState;
46
+ }
47
+ function adaptStringifiedArray(value) {
48
+ if (value) {
49
+ if (Array.isArray(value)) {
50
+ return value;
51
+ } else if (typeof value === 'string') {
52
+ try {
53
+ var arrayVal = JSON.parse(value);
54
+ if (arrayVal && Array.isArray(arrayVal)) {
55
+ return arrayVal;
56
+ }
57
+ } catch (error) {
58
+ console.warn("Meta tag field has not valid value, must be an array but we receive \"".concat(value, "\""));
59
+ }
60
+ }
61
+ }
62
+ return [];
63
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @param {{fields: object}[]} metabaseGroups
3
+ * @param {object[]} metaRegionalGroups
4
+ * @returns {object}
5
+ */
6
+ function generateMetadataDefaultState(metabaseGroups, metaRegionalGroups) {
7
+ var defaultMetadata = {};
8
+ (metabaseGroups || []).forEach(function (group) {
9
+ ((group || {}).fields || []).filter(function (field) {
10
+ return field.key;
11
+ }).forEach(function (field) {
12
+ var _metaRegionalGroups$f;
13
+ var value = typeof field.default_value !== 'undefined' ? field.default_value : ['tags', 'multi-select'].indexOf(field.type) > -1 ? [] : null;
14
+ var fieldRegionalVariants = metaRegionalGroups === null || metaRegionalGroups === void 0 ? void 0 : (_metaRegionalGroups$f = metaRegionalGroups.find(function (group) {
15
+ return group.uuid === (field === null || field === void 0 ? void 0 : field.regional_variants_group_uuid);
16
+ })) === null || _metaRegionalGroups$f === void 0 ? void 0 : _metaRegionalGroups$f.variants;
17
+ if (fieldRegionalVariants && Array.isArray(fieldRegionalVariants)) {
18
+ defaultMetadata[field.key] = defaultMetadata[field.key] || {};
19
+ fieldRegionalVariants.forEach(function (_ref) {
20
+ var regionalVariantKey = _ref.api_value;
21
+ defaultMetadata[field.key][regionalVariantKey] = value;
22
+ });
23
+ } else {
24
+ defaultMetadata[field.key] = value;
25
+ }
26
+ });
27
+ });
28
+ return defaultMetadata;
29
+ }
30
+ export default generateMetadataDefaultState;
@@ -0,0 +1,23 @@
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 _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; } }
4
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
5
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
6
+ 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; }
7
+ import { METADATA_MODEL_TYPE_IDS } from '../constants';
8
+ var getFileCustomMetadataGroup = function getFileCustomMetadataGroup(metadataModel) {
9
+ var _metadataModel$filter;
10
+ var customMetadataGroups = [];
11
+ metadataModel === null || metadataModel === void 0 ? void 0 : (_metadataModel$filter = metadataModel.filter(function (_ref) {
12
+ var appliesTo = _ref.applies_to;
13
+ return appliesTo === METADATA_MODEL_TYPE_IDS.FILES;
14
+ })) === null || _metadataModel$filter === void 0 ? void 0 : _metadataModel$filter.forEach(function (_ref2) {
15
+ var _ref3;
16
+ var groups = _ref2.groups;
17
+ customMetadataGroups.push.apply(customMetadataGroups, _toConsumableArray((_ref3 = groups || []) === null || _ref3 === void 0 ? void 0 : _ref3.filter(function (group) {
18
+ return !group.isRoot;
19
+ })));
20
+ });
21
+ return customMetadataGroups;
22
+ };
23
+ export default getFileCustomMetadataGroup;
@@ -0,0 +1,32 @@
1
+ import { MAX_LONGITUDE, MIN_LONGITUDE, MAX_LATITUDE, MIN_LATITUDE } from '@scaleflex/widget-common/lib/MetaData/MetaDataFieldTypes/MetadataGeoPointField/constants';
2
+ import getMetadataFieldGeoPointValue from './getMetadataFieldGeoPointValue';
3
+ var getGeoPointValidationErrors = function getGeoPointValidationErrors(_ref) {
4
+ var _ref$geoPoint = _ref.geoPoint,
5
+ geoPoint = _ref$geoPoint === void 0 ? '' : _ref$geoPoint,
6
+ _ref$showDistanceFiel = _ref.showDistanceField,
7
+ showDistanceField = _ref$showDistanceFiel === void 0 ? false : _ref$showDistanceFiel;
8
+ if (!geoPoint || typeof geoPoint !== 'string') return {};
9
+ var baseGeoPoint = geoPoint.replace('~', '');
10
+ var errors = {};
11
+ var _ref2 = getMetadataFieldGeoPointValue(baseGeoPoint, showDistanceField) || {},
12
+ longitude = _ref2.longitude,
13
+ latitude = _ref2.latitude,
14
+ distance = _ref2.distance;
15
+ if (!longitude && !latitude) {
16
+ return errors;
17
+ }
18
+ var longitudeNum = Number(longitude);
19
+ var latitudeNum = Number(latitude);
20
+ var isLongitudeValid = longitudeNum >= MIN_LONGITUDE && longitudeNum <= MAX_LONGITUDE;
21
+ var isLatitudeValid = latitudeNum >= MIN_LATITUDE && latitudeNum <= MAX_LATITUDE;
22
+ if (showDistanceField && !distance) errors.distance = 'metadataDistanceGeoPointFieldError';
23
+ if (!isLongitudeValid) errors.longitude = 'metadataLongitudeGeoPointLimitFieldError';
24
+ if (!isLatitudeValid) errors.latitude = 'metadataLatitudeGeoPointLimitFieldError';
25
+ if (!longitude || !latitude) {
26
+ if (!longitude) errors.longitude = 'metadataLongitudeGeoPointFieldError';
27
+ if (!latitude) errors.latitude = 'metadataLatitudeGeoPointFieldError';
28
+ return errors;
29
+ }
30
+ return errors;
31
+ };
32
+ export default getGeoPointValidationErrors;
@@ -0,0 +1,9 @@
1
+ var getMetaAttachmentFields = function getMetaAttachmentFields(customMetadataGroups) {
2
+ return customMetadataGroups.reduce(function (acc, curr) {
3
+ var filteredFields = curr.fields.filter(function (field) {
4
+ return field.type === 'attachments-assets';
5
+ });
6
+ return acc.concat(filteredFields);
7
+ }, []);
8
+ };
9
+ export default getMetaAttachmentFields;
@@ -0,0 +1,28 @@
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 isAssetHasMetadataValue = function isAssetHasMetadataValue(value) {
3
+ return Array.isArray(value) && value.length || _typeof(value) === 'object' && Object.keys(value || {}).length || typeof value === 'string' && value.length;
4
+ };
5
+ var getEmptyAssets = function getEmptyAssets(requiredMetadataFields, assets) {
6
+ return assets.filter(function (_ref) {
7
+ var _ref$meta = _ref.meta,
8
+ meta = _ref$meta === void 0 ? {} : _ref$meta;
9
+ return requiredMetadataFields.some(function (_ref2) {
10
+ var key = _ref2.key;
11
+ return !isAssetHasMetadataValue(meta[key]);
12
+ });
13
+ });
14
+ };
15
+ var getMetadataEmptyAssets = function getMetadataEmptyAssets(requiredMetadataFields, assets) {
16
+ return requiredMetadataFields.reduce(function (acc, curr) {
17
+ var assetsHaveEmptyMetadata = assets.filter(function (_ref3) {
18
+ var _ref3$meta = _ref3.meta,
19
+ meta = _ref3$meta === void 0 ? {} : _ref3$meta;
20
+ return !isAssetHasMetadataValue(meta[curr.key]);
21
+ });
22
+ if (assetsHaveEmptyMetadata.length) {
23
+ acc[curr.key] = assetsHaveEmptyMetadata;
24
+ }
25
+ return acc;
26
+ }, {});
27
+ };
28
+ export { getEmptyAssets, isAssetHasMetadataValue, getMetadataEmptyAssets };
@@ -0,0 +1,42 @@
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
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ 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."); }
4
+ 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; } }
5
+ 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; }
6
+ 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; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ 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; }
9
+ 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; }
10
+ 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; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
+ 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); }
13
+ import { REMOVE_PARENTHESES_REGEX } from '@scaleflex/widget-common/lib/MetaData/MetaDataFieldTypes/MetadataGeoPointField/constants';
14
+ var getMetadataFieldGeoPointValue = function getMetadataFieldGeoPointValue(value) {
15
+ var showDistanceField = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
16
+ if (!value) return _objectSpread({
17
+ latitude: '',
18
+ longitude: ''
19
+ }, showDistanceField && {
20
+ distance: ''
21
+ });
22
+ var _value$split = value.split('..'),
23
+ _value$split2 = _slicedToArray(_value$split, 2),
24
+ geoPart = _value$split2[0],
25
+ _value$split2$ = _value$split2[1],
26
+ distance = _value$split2$ === void 0 ? '' : _value$split2$;
27
+ var _geoPart$replace$spli = geoPart.replace(REMOVE_PARENTHESES_REGEX, '').split(','),
28
+ _geoPart$replace$spli2 = _slicedToArray(_geoPart$replace$spli, 2),
29
+ _geoPart$replace$spli3 = _geoPart$replace$spli2[0],
30
+ latitude = _geoPart$replace$spli3 === void 0 ? '' : _geoPart$replace$spli3,
31
+ _geoPart$replace$spli4 = _geoPart$replace$spli2[1],
32
+ longitude = _geoPart$replace$spli4 === void 0 ? '' : _geoPart$replace$spli4;
33
+ return showDistanceField ? {
34
+ latitude: latitude,
35
+ longitude: longitude,
36
+ distance: distance
37
+ } : {
38
+ latitude: latitude,
39
+ longitude: longitude
40
+ };
41
+ };
42
+ export default getMetadataFieldGeoPointValue;
@@ -0,0 +1,31 @@
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
+ import getJsonParsedValue from '@scaleflex/widget-utils/lib/getJsonParsedValue';
3
+ var checkFieldVariantValue = function checkFieldVariantValue(value, possibleValues) {
4
+ var _possibleValues$filte, _possibleValues$find;
5
+ return Array.isArray(value) ? possibleValues === null || possibleValues === void 0 ? void 0 : (_possibleValues$filte = possibleValues.filter(function (element) {
6
+ return value.includes(element === null || element === void 0 ? void 0 : element.internal_unique_value);
7
+ })) === null || _possibleValues$filte === void 0 ? void 0 : _possibleValues$filte.map(function (selectedVal) {
8
+ return selectedVal === null || selectedVal === void 0 ? void 0 : selectedVal.label;
9
+ }) : possibleValues === null || possibleValues === void 0 ? void 0 : (_possibleValues$find = possibleValues.find(function (possibleValue) {
10
+ return (possibleValue === null || possibleValue === void 0 ? void 0 : possibleValue.internal_unique_value) === value;
11
+ })) === null || _possibleValues$find === void 0 ? void 0 : _possibleValues$find.label;
12
+ };
13
+ var getMetadataFieldVariantValue = function getMetadataFieldVariantValue(_ref) {
14
+ var value = _ref.value,
15
+ possibleValues = _ref.possibleValues,
16
+ regionalVariantsGroupUuid = _ref.regionalVariantsGroupUuid,
17
+ _ref$metaRegionalFilt = _ref.metaRegionalFilters,
18
+ metaRegionalFilters = _ref$metaRegionalFilt === void 0 ? {} : _ref$metaRegionalFilt,
19
+ _ref$joinArrayValues = _ref.joinArrayValues,
20
+ joinArrayValues = _ref$joinArrayValues === void 0 ? false : _ref$joinArrayValues;
21
+ var parsedValue = getJsonParsedValue(value);
22
+ if (regionalVariantsGroupUuid) {
23
+ return parsedValue[metaRegionalFilters === null || metaRegionalFilters === void 0 ? void 0 : metaRegionalFilters[regionalVariantsGroupUuid]] || (_typeof(parsedValue) === 'object' ? '' : parsedValue);
24
+ }
25
+ if (possibleValues && possibleValues.length > 0) {
26
+ var fieldVariantValue = checkFieldVariantValue(value, possibleValues);
27
+ return joinArrayValues && Array.isArray(fieldVariantValue) ? fieldVariantValue.join(', ') : fieldVariantValue;
28
+ }
29
+ return (value === null || value === void 0 ? void 0 : value.constructor) === Object ? JSON.stringify(value) : value;
30
+ };
31
+ export default getMetadataFieldVariantValue;
@@ -0,0 +1,16 @@
1
+ import { METADATA_MODEL_TYPE_IDS } from '@scaleflex/widget-utils/lib/constants';
2
+ var getMetadataGroups = function getMetadataGroups(metadataModel) {
3
+ var metaModelType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : METADATA_MODEL_TYPE_IDS.FILES;
4
+ var isRootOnly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
5
+ var model = (metadataModel || []).find(function (model) {
6
+ return model.applies_to === metaModelType;
7
+ }) || {};
8
+ var groups = ((model === null || model === void 0 ? void 0 : model.groups) || []).filter(function (group) {
9
+ return group && (group.fields || []).length > 0;
10
+ });
11
+ return isRootOnly ? groups.filter(function (_ref) {
12
+ var isRoot = _ref.isRoot;
13
+ return isRoot;
14
+ }) : groups;
15
+ };
16
+ export default getMetadataGroups;
@@ -0,0 +1,13 @@
1
+ var getRequiredMetadataFields = function getRequiredMetadataFields() {
2
+ var metadataGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3
+ return metadataGroups.reduce(function (acc, curr) {
4
+ var fields = curr.fields || [];
5
+ fields.forEach(function (field) {
6
+ if (field.required) {
7
+ acc.push(field);
8
+ }
9
+ });
10
+ return acc;
11
+ }, []);
12
+ };
13
+ export default getRequiredMetadataFields;
@@ -0,0 +1,5 @@
1
+ import { METADATA_VERSIONS } from '../constants';
2
+ var isM0LegacyMetaVersion = function isM0LegacyMetaVersion(metadataVersion) {
3
+ return metadataVersion === METADATA_VERSIONS.M0_LEGACY;
4
+ };
5
+ export default isM0LegacyMetaVersion;
@@ -0,0 +1,5 @@
1
+ import { METADATA_VERSIONS } from '../constants';
2
+ var isM1EdgyMetaVersion = function isM1EdgyMetaVersion(metadataVersion) {
3
+ return metadataVersion === METADATA_VERSIONS.M1_EDGY;
4
+ };
5
+ export default isM1EdgyMetaVersion;
@@ -0,0 +1,21 @@
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
+ import getMetaAttachmentFields from './getMetaAttachmentFields';
3
+ var mapMetaAttachmentsObjsToUuids = function mapMetaAttachmentsObjsToUuids(_ref) {
4
+ var meta = _ref.meta,
5
+ _ref$customMetadataGr = _ref.customMetadataGroups,
6
+ customMetadataGroups = _ref$customMetadataGr === void 0 ? [] : _ref$customMetadataGr;
7
+ var attachmentsAssetsFields = getMetaAttachmentFields(customMetadataGroups);
8
+ attachmentsAssetsFields.forEach(function (_ref2) {
9
+ var key = _ref2.key;
10
+ var attachmentAssetsValue = meta[key] || [];
11
+ var attachmentAssetsArray = attachmentAssetsValue.map(function (item) {
12
+ if (_typeof(item) === 'object') {
13
+ return item.uuid;
14
+ }
15
+ return item;
16
+ });
17
+ meta[key] = attachmentAssetsArray;
18
+ });
19
+ return meta;
20
+ };
21
+ export default mapMetaAttachmentsObjsToUuids;
@@ -0,0 +1,59 @@
1
+ import checkFieldValidation from './checkFieldValidation';
2
+
3
+ /**
4
+ * @param {object} errors
5
+ * @param {string} key
6
+ * @param {string} [regionalVariantFieldKey]
7
+ * @param {any} fieldValue
8
+ * @param {regexp} [fieldValidation]
9
+ * @param {boolean} [isFieldRequired]
10
+ * @param {(boolean|string[])} [canEdit=true]
11
+ */
12
+ function updateValidationErrors(_ref) {
13
+ var errors = _ref.errors,
14
+ key = _ref.key,
15
+ regionalVariantFieldKey = _ref.regionalVariantFieldKey,
16
+ fieldValue = _ref.fieldValue,
17
+ fieldValidation = _ref.fieldValidation,
18
+ isFieldRequired = _ref.isFieldRequired,
19
+ _ref$canEdit = _ref.canEdit,
20
+ canEdit = _ref$canEdit === void 0 ? true : _ref$canEdit,
21
+ i18n = _ref.i18n,
22
+ fieldType = _ref.fieldType;
23
+ var errorsClone = JSON.parse(JSON.stringify(errors || {}));
24
+ var editable = canEdit === true || regionalVariantFieldKey && Array.isArray(canEdit) && canEdit.indexOf(regionalVariantFieldKey) > -1;
25
+ var isValid = checkFieldValidation({
26
+ fieldValue: fieldValue,
27
+ fieldValidation: fieldValidation,
28
+ isFieldRequired: isFieldRequired,
29
+ editable: editable,
30
+ i18n: i18n,
31
+ fieldType: fieldType
32
+ });
33
+ if (isValid === true) {
34
+ // Valid, remove error
35
+ if (regionalVariantFieldKey) {
36
+ if (errorsClone[key] && Object.prototype.hasOwnProperty.call(errorsClone[key], regionalVariantFieldKey)) {
37
+ delete errorsClone[key][regionalVariantFieldKey];
38
+ if (!Object.keys(errorsClone[key]).length) {
39
+ // Object empty, need to remove
40
+ delete errorsClone[key];
41
+ }
42
+ }
43
+ } else {
44
+ if (Object.prototype.hasOwnProperty.call(errorsClone, key)) {
45
+ delete errorsClone[key];
46
+ }
47
+ }
48
+ } else {
49
+ // Not valid, add error
50
+ if (regionalVariantFieldKey) {
51
+ errorsClone[key] = errorsClone[key] || {};
52
+ errorsClone[key][regionalVariantFieldKey] = isValid || true;
53
+ } else {
54
+ errorsClone[key] = isValid || true;
55
+ }
56
+ }
57
+ return errorsClone;
58
+ }
59
+ export default updateValidationErrors;
@@ -0,0 +1,70 @@
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
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ 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); }
7
+ import getMetadataGroups from './getMetadataGroups';
8
+ import updateValidationErrors from './updateValidationErrors';
9
+ import { METADATA_MODEL_TYPE_IDS } from '../constants';
10
+ import { checkFileOrFolderNameValidation } from '../checkFileOrFolderNameValidation';
11
+ var validateItemMetadata = function validateItemMetadata(_ref) {
12
+ var metadata = _ref.metadata,
13
+ itemMeta = _ref.itemMeta,
14
+ itemMetadataErrors = _ref.itemMetadataErrors,
15
+ i18n = _ref.i18n,
16
+ fileName = _ref.fileName;
17
+ var model = metadata.model,
18
+ regionalGroups = metadata.regionalGroups,
19
+ _metadata$modelType = metadata.modelType,
20
+ modelType = _metadata$modelType === void 0 ? METADATA_MODEL_TYPE_IDS.FILES : _metadata$modelType;
21
+ var metaDataGroups = getMetadataGroups(model, modelType);
22
+ var errors = _objectSpread({}, itemMetadataErrors || {});
23
+ (metaDataGroups || []).forEach(function (group) {
24
+ (group.fields || []).forEach(function (fieldItem) {
25
+ var _regionalGroups$find;
26
+ var fieldRegionalVariants = regionalGroups === null || regionalGroups === void 0 ? void 0 : (_regionalGroups$find = regionalGroups.find(function (group) {
27
+ return group.uuid === (fieldItem === null || fieldItem === void 0 ? void 0 : fieldItem.regional_variants_group_uuid);
28
+ })) === null || _regionalGroups$find === void 0 ? void 0 : _regionalGroups$find.variants;
29
+ var commonProps = {
30
+ errors: errors,
31
+ key: fieldItem.key,
32
+ fieldValidation: fieldItem.validation,
33
+ canEdit: fieldItem.can_edit,
34
+ i18n: i18n
35
+ };
36
+ if (fieldRegionalVariants && Array.isArray(fieldRegionalVariants)) {
37
+ fieldRegionalVariants.forEach(function (_ref2, index) {
38
+ var _itemMeta$fieldItem$k;
39
+ var regionalVariantKey = _ref2.api_value;
40
+ // When field is required and has reg variants, for example ["en", "fr", "de"] we should check only first variant "en" and skip "fr" and "de"
41
+ var shouldCheckIsRequired = index === 0;
42
+ errors = updateValidationErrors(_objectSpread(_objectSpread({}, commonProps), {}, {
43
+ regionalVariantFieldKey: regionalVariantKey,
44
+ fieldValue: itemMeta === null || itemMeta === void 0 ? void 0 : (_itemMeta$fieldItem$k = itemMeta[fieldItem.key]) === null || _itemMeta$fieldItem$k === void 0 ? void 0 : _itemMeta$fieldItem$k[regionalVariantKey],
45
+ isFieldRequired: shouldCheckIsRequired ? fieldItem.required : false
46
+ }));
47
+ });
48
+ } else {
49
+ errors = updateValidationErrors(_objectSpread(_objectSpread({}, commonProps), {}, {
50
+ fieldValue: itemMeta === null || itemMeta === void 0 ? void 0 : itemMeta[fieldItem.key],
51
+ isFieldRequired: fieldItem.required,
52
+ fieldType: fieldItem.type
53
+ }));
54
+ }
55
+ });
56
+ });
57
+ var allErrors = errors;
58
+ if (fileName) {
59
+ if (checkFileOrFolderNameValidation(fileName)) {
60
+ allErrors = _objectSpread({
61
+ name: i18n('explorerFileRenameInvalidNameDesc')
62
+ }, allErrors);
63
+ }
64
+ }
65
+ return {
66
+ isValid: Object.keys(errors).length === 0,
67
+ errors: allErrors
68
+ };
69
+ };
70
+ export default validateItemMetadata;
@@ -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 { css } from 'styled-components';
4
+ var truncateMixin = function truncateMixin() {
5
+ var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '100%';
6
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n ", "\n"])), typeof width === 'string' && width ? "width: ".concat(width, ";") : '');
7
+ };
8
+ export default truncateMixin;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Shared utility functions for filerobot modules",
4
4
  "main": "lib/index.js",
5
5
  "types": "types/index.d.ts",
6
- "version": "4.8.11",
6
+ "version": "4.8.12",
7
7
  "files": [
8
8
  "/dist",
9
9
  "/lib",
@@ -16,10 +16,10 @@
16
16
  "dependencies": {
17
17
  "@scaleflex/icons": "^3.0.0-beta.11",
18
18
  "@scaleflex/ui": "^3.0.0-beta.11",
19
- "@scaleflex/widget-icons": "^4.8.11",
19
+ "@scaleflex/widget-icons": "^4.8.12",
20
20
  "abortcontroller-polyfill": "^1.4.0",
21
21
  "dompurify": "^3.1.6",
22
22
  "lodash.throttle": "^4.1.1"
23
23
  },
24
- "gitHead": "4e66456d033b9d9829c3c76a8c29b020dcacae2e"
24
+ "gitHead": "c8eaaf5f9228b824d45de4027640e7eb5517fbb8"
25
25
  }