@scaleflex/widget-utils 4.4.0 → 4.5.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 (176) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/AbortController.js +20 -0
  3. package/lib/BlurHash/base83.js +10 -0
  4. package/lib/BlurHash/decode.js +80 -0
  5. package/lib/BlurHash/error.js +28 -0
  6. package/lib/BlurHash/utils.js +22 -0
  7. package/lib/CustomDate.js +157 -0
  8. package/lib/EventTracker.js +42 -0
  9. package/lib/FOCUSABLE_ELEMENTS.js +1 -0
  10. package/lib/LinkHelper.js +153 -0
  11. package/lib/NetworkError.js +30 -0
  12. package/lib/ProgressTimeout.js +45 -0
  13. package/lib/RateLimitedQueue.js +197 -0
  14. package/lib/RequestError.js +36 -0
  15. package/lib/Timeframes/getDateRange.js +45 -0
  16. package/lib/TranslationMissingKeysConsoleHelper.js +113 -0
  17. package/lib/Translator.js +200 -0
  18. package/lib/addUrlParams.js +27 -0
  19. package/lib/adjustUpdatedFolders.js +22 -0
  20. package/lib/asyncTimeout.js +6 -0
  21. package/lib/audioMimeTypes.js +3 -0
  22. package/lib/blobToDataURI.js +13 -0
  23. package/lib/callIfFunction.js +10 -0
  24. package/lib/canEditVideo.js +9 -0
  25. package/lib/canvasToBlob.js +18 -0
  26. package/lib/capitalizeFirstLetter.js +4 -0
  27. package/lib/checkConnection.js +4 -0
  28. package/lib/checkFileOrFolderNameValidation.js +4 -0
  29. package/lib/checkIfPngSvgGIF.js +3 -0
  30. package/lib/checkImageIfPngJpegOrWebpOrAvif.js +5 -0
  31. package/lib/checkItemsSupportExportWithReason.js +41 -0
  32. package/lib/checkPermissions.js +26 -0
  33. package/lib/cloudimageSupportedInputMimeTypes.js +2 -0
  34. package/lib/clsx.js +14 -0
  35. package/lib/constants.js +572 -0
  36. package/lib/convertBytesToMb.js +5 -0
  37. package/lib/convertGbToBytes.js +4 -0
  38. package/lib/convertVideoFileTypeToSupported.js +17 -0
  39. package/lib/copyText.js +25 -0
  40. package/lib/createFolderVirtualPath.js +14 -0
  41. package/lib/createThunk.js +349 -0
  42. package/lib/customEncodeURIComponent.js +47 -0
  43. package/lib/dataURItoBlob.js +33 -0
  44. package/lib/dataURItoFile.js +4 -0
  45. package/lib/dateStrToClearDateTime.js +20 -0
  46. package/lib/debounce.js +14 -0
  47. package/lib/deepEqual.js +23 -0
  48. package/lib/deepMerge.js +56 -0
  49. package/lib/deserializeFunction.js +5 -0
  50. package/lib/documentMimeTypes.js +2 -0
  51. package/lib/downloadFromBlob.js +16 -0
  52. package/lib/emitSocketProgress.js +18 -0
  53. package/lib/escapeRegExp.js +4 -0
  54. package/lib/extractFileDataNoBlob.js +12 -0
  55. package/lib/fetchWithNetworkError.js +14 -0
  56. package/lib/fieldsQueriesGetters.js +46 -0
  57. package/lib/findAllDOMElements.js +18 -0
  58. package/lib/findAllRegexMatchesInString.js +16 -0
  59. package/lib/findDOMElement.js +17 -0
  60. package/lib/findIndex.js +9 -0
  61. package/lib/formatDuration.js +22 -0
  62. package/lib/formatNumbers.js +32 -0
  63. package/lib/formatResolution.js +17 -0
  64. package/lib/formatSeconds.js +14 -0
  65. package/lib/generateFileId.js +53 -0
  66. package/lib/generateI18nKeyFromString.js +11 -0
  67. package/lib/generatePsdThumbnail/adaptHexBoundries.js +9 -0
  68. package/lib/generatePsdThumbnail/bufferToHex.js +12 -0
  69. package/lib/generatePsdThumbnail/generatePsdThumbnail.js +36 -0
  70. package/lib/generatePsdThumbnail/generatePsdThumbnailBytes.js +8 -0
  71. package/lib/generatePsdThumbnail/generatePsdThumbnailHex.js +4 -0
  72. package/lib/generateSelectInputPlaceholder.js +24 -0
  73. package/lib/getActionErrorState.js +17 -0
  74. package/lib/getArraysMutualObjects.js +12 -0
  75. package/lib/getBytesRemaining.js +9 -0
  76. package/lib/getClientTimezone.js +5 -0
  77. package/lib/getCloudimagePrefixedUrl.js +23 -0
  78. package/lib/getDateDaysFromNow.js +17 -0
  79. package/lib/getDateMinusDay.js +5 -0
  80. package/lib/getDateString.js +20 -0
  81. package/lib/getDaysLeft.js +9 -0
  82. package/lib/getDecodedUriComponent.js +10 -0
  83. package/lib/getDownloadSpeed.js +7 -0
  84. package/lib/getDroppedFiles/index.js +24 -0
  85. package/lib/getDroppedFiles/utils/fallbackApi.js +7 -0
  86. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js +36 -0
  87. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getRelativePath.js +16 -0
  88. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js +57 -0
  89. package/lib/getEncodedWrappedUrl.js +7 -0
  90. package/lib/getFileAssetsTokenUrl.js +14 -0
  91. package/lib/getFileCdnLink.js +6 -0
  92. package/lib/getFileDefaultIcon.js +14 -0
  93. package/lib/getFileDetails.js +81 -0
  94. package/lib/getFileExtension.js +32 -0
  95. package/lib/getFileLink.js +17 -0
  96. package/lib/getFileNameAndExtension.js +22 -0
  97. package/lib/getFileType.js +23 -0
  98. package/lib/getFileTypeExtension.js +22 -0
  99. package/lib/getFilterFileFormatIcon.js +6 -0
  100. package/lib/getFolderDetails.js +30 -0
  101. package/lib/getFormattedPreviewUrl.js +79 -0
  102. package/lib/getHoursAndMinutes.js +9 -0
  103. package/lib/getImageEditUrl.js +36 -0
  104. package/lib/getImgFileDimensions.js +25 -0
  105. package/lib/getItemIcon.js +112 -0
  106. package/lib/getItemPath.js +10 -0
  107. package/lib/getItemPreviewWidthHeight.js +10 -0
  108. package/lib/getItemsSizeInBytes.js +12 -0
  109. package/lib/getJsonParsedValue.js +11 -0
  110. package/lib/getLinkWithNewParams.js +13 -0
  111. package/lib/getMetadataMultiSelectQuery.js +66 -0
  112. package/lib/getNormalizedItems.js +55 -0
  113. package/lib/getObjectsMutualProperties.js +32 -0
  114. package/lib/getRandomNumber.js +12 -0
  115. package/lib/getSocketHost.js +7 -0
  116. package/lib/getSpeed.js +8 -0
  117. package/lib/getTime.js +18 -0
  118. package/lib/getTimeStamp.js +18 -0
  119. package/lib/handleError.js +13 -0
  120. package/lib/handlePressEnter.js +9 -0
  121. package/lib/handlePromise.js +39 -0
  122. package/lib/hasProperty.js +3 -0
  123. package/lib/hexToRgb.js +15 -0
  124. package/lib/htmlSanitizer.js +6 -0
  125. package/lib/humanReadableDate.js +45 -0
  126. package/lib/humanReadableDateWithTranslations.js +29 -0
  127. package/lib/i18n.client.js +54 -0
  128. package/lib/ignoreEvent.js +10 -0
  129. package/lib/index.js +0 -0
  130. package/lib/injectVirtualPathToFolders.js +24 -0
  131. package/lib/isAi.js +7 -0
  132. package/lib/isArchive.js +12 -0
  133. package/lib/isAudio.js +9 -0
  134. package/lib/isAudioAndSupportsPlayback.js +10 -0
  135. package/lib/isCloudimageFastPreviewSupported.js +16 -0
  136. package/lib/isDOMElement.js +9 -0
  137. package/lib/isDocument.js +10 -0
  138. package/lib/isDragDropSupported.js +20 -0
  139. package/lib/isEmptyObject.js +4 -0
  140. package/lib/isEps.js +8 -0
  141. package/lib/isFile.js +5 -0
  142. package/lib/isFileSupportedByCloudimage.js +14 -0
  143. package/lib/isFolder.js +4 -0
  144. package/lib/isFontFile.js +9 -0
  145. package/lib/isFunction.js +4 -0
  146. package/lib/isImage.js +11 -0
  147. package/lib/isJpg.js +8 -0
  148. package/lib/isMobileDevice.js +12 -0
  149. package/lib/isNetworkError.js +7 -0
  150. package/lib/isNumber.js +4 -0
  151. package/lib/isObjectType.js +5 -0
  152. package/lib/isObjectURL.js +10 -0
  153. package/lib/isOpenedFromAdobe.js +3 -0
  154. package/lib/isOtf.js +10 -0
  155. package/lib/isPdf.js +9 -0
  156. package/lib/isPhotoshopFile.js +8 -0
  157. package/lib/isPreviewSupported.js +12 -0
  158. package/lib/isPromise.js +5 -0
  159. package/lib/metadata/checkFieldValidation.js +51 -0
  160. package/lib/metadata/generateItemMetadataState.js +63 -0
  161. package/lib/metadata/generateMetadataDefaultState.js +30 -0
  162. package/lib/metadata/getFileCustomMetadataGroups.js +23 -0
  163. package/lib/metadata/getGeoPointValidationErrors.js +32 -0
  164. package/lib/metadata/getMetaAttachmentFields.js +9 -0
  165. package/lib/metadata/getMetadataEmptyAssets.js +28 -0
  166. package/lib/metadata/getMetadataFieldGeoPointValue.js +42 -0
  167. package/lib/metadata/getMetadataFieldVariantValue.js +31 -0
  168. package/lib/metadata/getMetadataGroups.js +16 -0
  169. package/lib/metadata/getRequiredMetadataFields.js +13 -0
  170. package/lib/metadata/isM0LegacyMetaVersion.js +5 -0
  171. package/lib/metadata/isM1EdgyMetaVersion.js +5 -0
  172. package/lib/metadata/mapMetaAttachmentsObjsToUuids.js +21 -0
  173. package/lib/metadata/updateValidationErrors.js +59 -0
  174. package/lib/metadata/validateItemMetadata.js +70 -0
  175. package/lib/styledComponentsMixins/truncate.mixin.js +8 -0
  176. package/package.json +3 -3
@@ -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.4.0",
6
+ "version": "4.5.1",
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.4.0",
19
+ "@scaleflex/widget-icons": "^4.5.1",
20
20
  "abortcontroller-polyfill": "^1.4.0",
21
21
  "dompurify": "^3.1.6",
22
22
  "lodash.throttle": "^4.1.1"
23
23
  },
24
- "gitHead": "04b8ec545c4f10be89f5a44eed954acf8433360c"
24
+ "gitHead": "b211f9961ad30d3eaa01138f34e190ad5d38fb91"
25
25
  }