@scaleflex/widget-utils 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 (227) hide show
  1. package/CHANGELOG.md +7100 -0
  2. package/LICENSE +21 -0
  3. package/README.md +58 -0
  4. package/lib/AbortController.js +20 -0
  5. package/lib/BlurHash/base83.js +10 -0
  6. package/lib/BlurHash/decode.js +80 -0
  7. package/lib/BlurHash/error.js +28 -0
  8. package/lib/BlurHash/utils.js +22 -0
  9. package/lib/CustomDate.js +157 -0
  10. package/lib/EventTracker.js +42 -0
  11. package/lib/FOCUSABLE_ELEMENTS.js +1 -0
  12. package/lib/LinkHelper.js +153 -0
  13. package/lib/NetworkError.js +30 -0
  14. package/lib/ProgressTimeout.js +45 -0
  15. package/lib/RateLimitedQueue.js +197 -0
  16. package/lib/RequestError.js +36 -0
  17. package/lib/Timeframes/getDateRange.js +45 -0
  18. package/lib/TranslationMissingKeysConsoleHelper.js +113 -0
  19. package/lib/Translator.js +200 -0
  20. package/lib/addUrlParams.js +27 -0
  21. package/lib/adjustUpdatedFolders.js +22 -0
  22. package/lib/asyncTimeout.js +6 -0
  23. package/lib/audioMimeTypes.js +3 -0
  24. package/lib/blobToDataURI.js +13 -0
  25. package/lib/callIfFunction.js +10 -0
  26. package/lib/canEditVideo.js +9 -0
  27. package/lib/canvasToBlob.js +18 -0
  28. package/lib/capitalizeFirstLetter.js +4 -0
  29. package/lib/checkConnection.js +4 -0
  30. package/lib/checkFileOrFolderNameValidation.js +4 -0
  31. package/lib/checkIfPngSvgGIF.js +3 -0
  32. package/lib/checkImageIfPngJpegOrWebpOrAvif.js +5 -0
  33. package/lib/checkItemsSupportExportWithReason.js +41 -0
  34. package/lib/checkPermissions.js +26 -0
  35. package/lib/cloudimageSupportedInputMimeTypes.js +2 -0
  36. package/lib/clsx.js +14 -0
  37. package/lib/constants.js +570 -0
  38. package/lib/convertBytesToMb.js +5 -0
  39. package/lib/convertGbToBytes.js +4 -0
  40. package/lib/convertVideoFileTypeToSupported.js +17 -0
  41. package/lib/copyText.js +25 -0
  42. package/lib/createFolderVirtualPath.js +14 -0
  43. package/lib/createThunk.js +349 -0
  44. package/lib/customEncodeURIComponent.js +47 -0
  45. package/lib/dataURItoBlob.js +33 -0
  46. package/lib/dataURItoFile.js +4 -0
  47. package/lib/dateStrToClearDateTime.js +20 -0
  48. package/lib/debounce.js +14 -0
  49. package/lib/deepEqual.js +23 -0
  50. package/lib/deepMerge.js +56 -0
  51. package/lib/deserializeFunction.js +5 -0
  52. package/lib/documentMimeTypes.js +2 -0
  53. package/lib/downloadFromBlob.js +16 -0
  54. package/lib/emitSocketProgress.js +18 -0
  55. package/lib/escapeRegExp.js +4 -0
  56. package/lib/extractFileDataNoBlob.js +12 -0
  57. package/lib/fetchWithNetworkError.js +14 -0
  58. package/lib/fieldsQueriesGetters.js +46 -0
  59. package/lib/findAllDOMElements.js +18 -0
  60. package/lib/findAllRegexMatchesInString.js +16 -0
  61. package/lib/findDOMElement.js +17 -0
  62. package/lib/findIndex.js +9 -0
  63. package/lib/formatDuration.js +22 -0
  64. package/lib/formatNumbers.js +32 -0
  65. package/lib/formatResolution.js +17 -0
  66. package/lib/formatSeconds.js +14 -0
  67. package/lib/generateFileId.js +53 -0
  68. package/lib/generateI18nKeyFromString.js +11 -0
  69. package/lib/generatePsdThumbnail/adaptHexBoundries.js +9 -0
  70. package/lib/generatePsdThumbnail/bufferToHex.js +12 -0
  71. package/lib/generatePsdThumbnail/generatePsdThumbnail.js +36 -0
  72. package/lib/generatePsdThumbnail/generatePsdThumbnailBytes.js +8 -0
  73. package/lib/generatePsdThumbnail/generatePsdThumbnailHex.js +4 -0
  74. package/lib/generateSelectInputPlaceholder.js +24 -0
  75. package/lib/getActionErrorState.js +17 -0
  76. package/lib/getArraysMutualObjects.js +12 -0
  77. package/lib/getBytesRemaining.js +9 -0
  78. package/lib/getClientTimezone.js +5 -0
  79. package/lib/getCloudimagePrefixedUrl.js +23 -0
  80. package/lib/getDateDaysFromNow.js +17 -0
  81. package/lib/getDateMinusDay.js +5 -0
  82. package/lib/getDateString.js +20 -0
  83. package/lib/getDaysLeft.js +9 -0
  84. package/lib/getDecodedUriComponent.js +10 -0
  85. package/lib/getDownloadSpeed.js +7 -0
  86. package/lib/getDroppedFiles/index.js +24 -0
  87. package/lib/getDroppedFiles/utils/fallbackApi.js +7 -0
  88. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js +36 -0
  89. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getRelativePath.js +16 -0
  90. package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js +57 -0
  91. package/lib/getEncodedWrappedUrl.js +7 -0
  92. package/lib/getFileAssetsTokenUrl.js +14 -0
  93. package/lib/getFileCdnLink.js +6 -0
  94. package/lib/getFileDefaultIcon.js +14 -0
  95. package/lib/getFileDetails.js +81 -0
  96. package/lib/getFileExtension.js +32 -0
  97. package/lib/getFileLink.js +17 -0
  98. package/lib/getFileNameAndExtension.js +22 -0
  99. package/lib/getFileType.js +23 -0
  100. package/lib/getFileTypeExtension.js +22 -0
  101. package/lib/getFilterFileFormatIcon.js +6 -0
  102. package/lib/getFolderDetails.js +30 -0
  103. package/lib/getFormattedPreviewUrl.js +79 -0
  104. package/lib/getHoursAndMinutes.js +9 -0
  105. package/lib/getImageEditUrl.js +36 -0
  106. package/lib/getImgFileDimensions.js +25 -0
  107. package/lib/getItemIcon.js +112 -0
  108. package/lib/getItemPath.js +10 -0
  109. package/lib/getItemPreviewWidthHeight.js +10 -0
  110. package/lib/getItemsSizeInBytes.js +12 -0
  111. package/lib/getJsonParsedValue.js +11 -0
  112. package/lib/getLinkWithNewParams.js +13 -0
  113. package/lib/getMetadataMultiSelectQuery.js +66 -0
  114. package/lib/getNormalizedItems.js +55 -0
  115. package/lib/getObjectsMutualProperties.js +32 -0
  116. package/lib/getRandomNumber.js +12 -0
  117. package/lib/getSocketHost.js +7 -0
  118. package/lib/getSpeed.js +8 -0
  119. package/lib/getTime.js +18 -0
  120. package/lib/getTimeStamp.js +18 -0
  121. package/lib/handleError.js +13 -0
  122. package/lib/handlePressEnter.js +9 -0
  123. package/lib/handlePromise.js +39 -0
  124. package/lib/hasProperty.js +3 -0
  125. package/lib/hexToRgb.js +15 -0
  126. package/lib/htmlSanitizer.js +6 -0
  127. package/lib/humanReadableDate.js +45 -0
  128. package/lib/humanReadableDateWithTranslations.js +29 -0
  129. package/lib/i18n.client.js +54 -0
  130. package/lib/ignoreEvent.js +10 -0
  131. package/lib/index.js +0 -0
  132. package/lib/injectVirtualPathToFolders.js +24 -0
  133. package/lib/isAi.js +7 -0
  134. package/lib/isArchive.js +12 -0
  135. package/lib/isAudio.js +9 -0
  136. package/lib/isAudioAndSupportsPlayback.js +10 -0
  137. package/lib/isCloudimageFastPreviewSupported.js +16 -0
  138. package/lib/isDOMElement.js +9 -0
  139. package/lib/isDocument.js +10 -0
  140. package/lib/isDragDropSupported.js +20 -0
  141. package/lib/isEmptyObject.js +4 -0
  142. package/lib/isEps.js +8 -0
  143. package/lib/isFile.js +5 -0
  144. package/lib/isFileSupportedByCloudimage.js +14 -0
  145. package/lib/isFolder.js +4 -0
  146. package/lib/isFontFile.js +9 -0
  147. package/lib/isFunction.js +4 -0
  148. package/lib/isImage.js +11 -0
  149. package/lib/isJpg.js +8 -0
  150. package/lib/isMobileDevice.js +12 -0
  151. package/lib/isNetworkError.js +7 -0
  152. package/lib/isNumber.js +4 -0
  153. package/lib/isObjectType.js +5 -0
  154. package/lib/isObjectURL.js +10 -0
  155. package/lib/isOpenedFromAdobe.js +3 -0
  156. package/lib/isOtf.js +10 -0
  157. package/lib/isPdf.js +9 -0
  158. package/lib/isPhotoshopFile.js +8 -0
  159. package/lib/isPreviewSupported.js +12 -0
  160. package/lib/isPromise.js +5 -0
  161. package/lib/isPsd.js +8 -0
  162. package/lib/isScriptFile.js +12 -0
  163. package/lib/isSupportedVideo.js +8 -0
  164. package/lib/isSvg.js +5 -0
  165. package/lib/isTextFile.js +8 -0
  166. package/lib/isThumbnailCloudimgSupported.js +13 -0
  167. package/lib/isThumbnailLocallySupported.js +9 -0
  168. package/lib/isTiff.js +8 -0
  169. package/lib/isTransparencySupported.js +12 -0
  170. package/lib/isTtf.js +11 -0
  171. package/lib/isUploadableFile.js +7 -0
  172. package/lib/isUrl.js +5 -0
  173. package/lib/isValidUri.js +18 -0
  174. package/lib/isVideo.js +8 -0
  175. package/lib/isVideoResourceIntensive.js +9 -0
  176. package/lib/literalDateFromDateObj.js +6 -0
  177. package/lib/logErrorIfDevEnv.js +7 -0
  178. package/lib/lowercaseFirstLetter.js +4 -0
  179. package/lib/mapArrayByStep.js +12 -0
  180. package/lib/metadata/checkFieldValidation.js +51 -0
  181. package/lib/metadata/generateItemMetadataState.js +63 -0
  182. package/lib/metadata/generateMetadataDefaultState.js +30 -0
  183. package/lib/metadata/getFileCustomMetadataGroups.js +23 -0
  184. package/lib/metadata/getGeoPointValidationErrors.js +32 -0
  185. package/lib/metadata/getMetaAttachmentFields.js +9 -0
  186. package/lib/metadata/getMetadataEmptyAssets.js +28 -0
  187. package/lib/metadata/getMetadataFieldGeoPointValue.js +42 -0
  188. package/lib/metadata/getMetadataFieldVariantValue.js +31 -0
  189. package/lib/metadata/getMetadataGroups.js +16 -0
  190. package/lib/metadata/getRequiredMetadataFields.js +13 -0
  191. package/lib/metadata/isM0LegacyMetaVersion.js +5 -0
  192. package/lib/metadata/isM1EdgyMetaVersion.js +5 -0
  193. package/lib/metadata/mapMetaAttachmentsObjsToUuids.js +21 -0
  194. package/lib/metadata/updateValidationErrors.js +59 -0
  195. package/lib/metadata/validateItemMetadata.js +70 -0
  196. package/lib/mimeTypes.js +60 -0
  197. package/lib/nanoid.js +18 -0
  198. package/lib/openLink.js +3 -0
  199. package/lib/openLinkInNewTab.js +12 -0
  200. package/lib/prettyETA.js +15 -0
  201. package/lib/prettyFileSize.js +7 -0
  202. package/lib/preventDefault.js +4 -0
  203. package/lib/provideSvgStrWithCurrColor.js +10 -0
  204. package/lib/recursiveFnCall.js +26 -0
  205. package/lib/removeAllUrlParams.js +4 -0
  206. package/lib/removeDuplicatesFromArray.js +20 -0
  207. package/lib/removeEmptyFolders.js +8 -0
  208. package/lib/removeFileExtension.js +4 -0
  209. package/lib/removeUrlParamsWithRegex.js +14 -0
  210. package/lib/reorder.js +15 -0
  211. package/lib/requestFile.js +36 -0
  212. package/lib/rgbToHex.js +4 -0
  213. package/lib/secondsToTime.js +10 -0
  214. package/lib/serializeFunction.js +4 -0
  215. package/lib/settle.js +19 -0
  216. package/lib/sortEntitiesByName.js +18 -0
  217. package/lib/splitCamelCase.js +4 -0
  218. package/lib/splitPathToPathsAndNames.js +25 -0
  219. package/lib/stopPropagation.js +4 -0
  220. package/lib/styledComponentsMixins/truncate.mixin.js +8 -0
  221. package/lib/timeZones.js +1 -0
  222. package/lib/toArray.js +6 -0
  223. package/lib/toLowerCase.js +5 -0
  224. package/lib/toggleElementFullscreen.js +27 -0
  225. package/lib/visibility.js +39 -0
  226. package/package.json +25 -0
  227. package/types/index.d.ts +279 -0
@@ -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,60 @@
1
+ // ___Why not add the mime-types package?
2
+ // It's 19.7kB gzipped, and we only need mime types for well-known extensions (for file previews).
3
+ // ___Where to take new extensions from?
4
+ // https://github.com/jshttp/mime-db/blob/master/db.json
5
+
6
+ export default {
7
+ md: 'text/markdown',
8
+ markdown: 'text/markdown',
9
+ mp4: 'video/mp4',
10
+ mp3: 'audio/mp3',
11
+ svg: 'image/svg+xml',
12
+ jpg: 'image/jpeg',
13
+ png: 'image/png',
14
+ gif: 'image/gif',
15
+ heic: 'image/heic',
16
+ heif: 'image/heif',
17
+ tiff: 'image/tiff',
18
+ yaml: 'text/yaml',
19
+ yml: 'text/yaml',
20
+ csv: 'text/csv',
21
+ tsv: 'text/tab-separated-values',
22
+ tab: 'text/tab-separated-values',
23
+ avi: 'video/x-msvideo',
24
+ mks: 'video/x-matroska',
25
+ mkv: 'video/x-matroska',
26
+ mov: 'video/quicktime',
27
+ doc: 'application/msword',
28
+ docm: 'application/vnd.ms-word.document.macroenabled.12',
29
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
30
+ dot: 'application/msword',
31
+ dotm: 'application/vnd.ms-word.template.macroenabled.12',
32
+ dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
33
+ xla: 'application/vnd.ms-excel',
34
+ xlam: 'application/vnd.ms-excel.addin.macroenabled.12',
35
+ xlc: 'application/vnd.ms-excel',
36
+ xlf: 'application/x-xliff+xml',
37
+ xlm: 'application/vnd.ms-excel',
38
+ xls: 'application/vnd.ms-excel',
39
+ xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
40
+ xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',
41
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
42
+ xlt: 'application/vnd.ms-excel',
43
+ xltm: 'application/vnd.ms-excel.template.macroenabled.12',
44
+ xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
45
+ xlw: 'application/vnd.ms-excel',
46
+ txt: 'text/plain',
47
+ text: 'text/plain',
48
+ conf: 'text/plain',
49
+ log: 'text/plain',
50
+ eps: 'image/x-eps',
51
+ pdf: 'application/pdf',
52
+ postScript: 'application/postscript',
53
+ psd: 'image/vnd.adobe.photoshop',
54
+ psb: 'image/vnd.adobe.photoshop',
55
+ ttf: 'font/ttf',
56
+ xttf: 'application/x-font-ttf',
57
+ sfnt: 'application/font-sfnt',
58
+ otf: 'application/vnd.ms-opentype',
59
+ fdt: 'text/xml+sfxtemplate'
60
+ };
package/lib/nanoid.js ADDED
@@ -0,0 +1,18 @@
1
+ /* Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js
2
+ * & https://github.com/reduxjs/redux-toolkit/blob/master/packages/toolkit/src/nanoid.ts
3
+ * This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped
4
+ * optimize the gzip compression for this alphabet.
5
+ */
6
+ var urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';
7
+ var nanoid = function nanoid() {
8
+ var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21;
9
+ var id = '';
10
+ // A compact alternative for `for (var i = 0; i < step; i++)`.
11
+ var i = size;
12
+ while (i--) {
13
+ // `| 0` is more compact and faster than `Math.floor()`.
14
+ id += urlAlphabet[Math.random() * 64 | 0];
15
+ }
16
+ return id;
17
+ };
18
+ export default nanoid;
@@ -0,0 +1,3 @@
1
+ export default (function (url) {
2
+ window.open(url, '_blank');
3
+ });
@@ -0,0 +1,12 @@
1
+ export var openLinkInNewTab = function openLinkInNewTab(href) {
2
+ if (href) {
3
+ var tmpLinkElement = document.createElement('a');
4
+ tmpLinkElement.href = href;
5
+ tmpLinkElement.setAttribute('target', '_blank');
6
+ tmpLinkElement.setAttribute('rel', 'noopener noreferrer');
7
+ tmpLinkElement.style = 'position: absolute; z-index: -1111;';
8
+ document.body.appendChild(tmpLinkElement);
9
+ tmpLinkElement.click();
10
+ document.body.removeChild(tmpLinkElement);
11
+ }
12
+ };
@@ -0,0 +1,15 @@
1
+ import secondsToTime from './secondsToTime';
2
+ export default function prettyETA(seconds) {
3
+ if (!seconds) return seconds;
4
+ var time = secondsToTime(seconds);
5
+
6
+ // Only display hours and minutes if they are greater than 0 but always
7
+ // display minutes if hours is being displayed
8
+ // Display a leading zero if the there is a preceding unit: 1m 05s, but 5s
9
+ var hoursStr = time.hours ? time.hours + 'h ' : '';
10
+ var minutesVal = time.hours ? ('0' + time.minutes).substr(-2) : time.minutes;
11
+ var minutesStr = minutesVal ? minutesVal + 'm' : '';
12
+ var secondsVal = minutesVal ? ('0' + time.seconds).substr(-2) : time.seconds;
13
+ var secondsStr = time.hours ? '' : minutesVal ? ' ' + secondsVal + 's' : secondsVal + 's';
14
+ return "".concat(hoursStr).concat(minutesStr).concat(secondsStr);
15
+ }
@@ -0,0 +1,7 @@
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 prettierBytes from '@transloadit/prettier-bytes';
3
+ var prettyFileSize = function prettyFileSize() {
4
+ var fileSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
5
+ return fileSize && ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.pretty) || (fileSize === null || fileSize === void 0 ? void 0 : fileSize.total_recursive_pretty) || prettierBytes(fileSize && _typeof(fileSize) === 'object' ? fileSize.bytes || fileSize.total_recursive_bytes : fileSize));
6
+ };
7
+ export default prettyFileSize;
@@ -0,0 +1,4 @@
1
+ var preventDefault = function preventDefault(event) {
2
+ event.preventDefault();
3
+ };
4
+ export default preventDefault;
@@ -0,0 +1,10 @@
1
+ var provideSvgStrWithCurrColor = function provideSvgStrWithCurrColor(svgString) {
2
+ var preparedSvgString = svgString.replaceAll(/(<\?xml.*?>|<!--.*-->)[\r\n]?/gi, '');
3
+ var startOfSvgTagIndex = preparedSvgString.indexOf('<svg');
4
+ // we are checking start of the tag first for making sure we would catch the first end after the svg opening to avoid issues.
5
+ var endOfSvgTagIndex = startOfSvgTagIndex + preparedSvgString.substr(startOfSvgTagIndex).indexOf('>');
6
+ var svgTagWithPreparedColor = "".concat(preparedSvgString.substr(0, endOfSvgTagIndex).replace(/\s*(?:fill|stroke|color)[:=]\s*['"]?.*['"; }]/i, '').trim(), " color=\"currentColor\" fill=\"currentColor\"");
7
+ var restOfSvgElementPreparedColor = preparedSvgString.substr(endOfSvgTagIndex, preparedSvgString.length).replaceAll(/(\s*(?:fill|stroke|color)[:=]\s*['"]?)#?\b(?!\s*?none).+?([\r\n'";})])/gi, '$1currentColor$2').replaceAll(/(\n\t|\n|\t)/g, ' ');
8
+ return svgTagWithPreparedColor + restOfSvgElementPreparedColor;
9
+ };
10
+ export default provideSvgStrWithCurrColor;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Run fn recursively with intervals until fn is defined.
3
+ */
4
+ var recursiveFnCall = function recursiveFnCall() {
5
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
6
+ _ref$delay = _ref.delay,
7
+ delay = _ref$delay === void 0 ? 500 : _ref$delay,
8
+ getFn = _ref.getFn,
9
+ _ref$maxAttempts = _ref.maxAttempts,
10
+ maxAttempts = _ref$maxAttempts === void 0 ? 20 : _ref$maxAttempts;
11
+ var timeoutCount = 0;
12
+ var _recursiveTimeout = function recursiveTimeout() {
13
+ var _delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : delay;
14
+ setTimeout(function () {
15
+ timeoutCount++;
16
+ var fn = getFn();
17
+ if (typeof fn === 'function') {
18
+ fn();
19
+ } else if (timeoutCount <= maxAttempts) {
20
+ _recursiveTimeout();
21
+ }
22
+ }, _delay);
23
+ };
24
+ _recursiveTimeout(0);
25
+ };
26
+ export default recursiveFnCall;
@@ -0,0 +1,4 @@
1
+ var removeAllUrlParams = function removeAllUrlParams(url) {
2
+ return url.replace(/\?.*$/, '');
3
+ };
4
+ export default removeAllUrlParams;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Removes duplicate objects from an array based on a specified unique property.
3
+ *
4
+ * This function iterates through the array and uses a Set to keep track of the unique values
5
+ * of the specified property. If a duplicate value is found, the object is filtered out.
6
+ *
7
+ * @param {Array<Object>} array - The array of objects to be filtered.
8
+ * @param {string} uniqueProperty - The property name to check for uniqueness.
9
+ * @returns {Array<Object>} A new array with duplicate objects removed.
10
+ */
11
+
12
+ var removeDuplicatesFromArray = function removeDuplicatesFromArray(array, uniqueProperty) {
13
+ var seenSet = new Set();
14
+ return array.filter(function (item) {
15
+ var duplicate = seenSet.has(item[uniqueProperty]);
16
+ seenSet.add(item[uniqueProperty]);
17
+ return !duplicate;
18
+ });
19
+ };
20
+ export default removeDuplicatesFromArray;
@@ -0,0 +1,8 @@
1
+ var removeEmptyFolders = function removeEmptyFolders(folders) {
2
+ return folders.filter(function (_ref) {
3
+ var files = _ref.files,
4
+ folders = _ref.folders;
5
+ return (files === null || files === void 0 ? void 0 : files.length) > 0 || (folders === null || folders === void 0 ? void 0 : folders.length) > 0;
6
+ });
7
+ };
8
+ export default removeEmptyFolders;
@@ -0,0 +1,4 @@
1
+ export var removeFileExtension = function removeFileExtension() {
2
+ var fileName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
3
+ return fileName.replace(/\.[^/.]+$/, '');
4
+ };
@@ -0,0 +1,14 @@
1
+ var removeUrlParamsWithRegex = function removeUrlParamsWithRegex() {
2
+ var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
3
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
4
+ if (!Array.isArray(params) || params.length === 0) return url;
5
+ var updatedUrl = url;
6
+ params.forEach(function (param) {
7
+ var regex = new RegExp("[?&]".concat(param, "=[^&]*(&|$)"));
8
+ updatedUrl = updatedUrl.replace(regex, function (_, p1) {
9
+ return p1 === '&' ? '?' : '';
10
+ });
11
+ });
12
+ return updatedUrl.replace(/[?&]$/, '');
13
+ };
14
+ export default removeUrlParamsWithRegex;
package/lib/reorder.js ADDED
@@ -0,0 +1,15 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ 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."); }
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 _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; }
5
+ 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; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ var reorder = function reorder(list, startIndex, endIndex) {
8
+ var result = Array.from(list);
9
+ var _result$splice = result.splice(startIndex, 1),
10
+ _result$splice2 = _slicedToArray(_result$splice, 1),
11
+ removed = _result$splice2[0];
12
+ result.splice(endIndex, 0, removed);
13
+ return result;
14
+ };
15
+ export default reorder;
@@ -0,0 +1,36 @@
1
+ import RequestError from '@scaleflex/widget-utils/lib/RequestError';
2
+ var requestFile = function requestFile(url, options) {
3
+ return new Promise(function (resolve, reject) {
4
+ var xhr = new XMLHttpRequest();
5
+ xhr.open('GET', url);
6
+ xhr.responseType = 'blob';
7
+ if (options !== null && options !== void 0 && options.headers) {
8
+ Object.keys(options.headers).map(function (headerName) {
9
+ return xhr.setRequestHeader(headerName, options.headers[headerName]);
10
+ });
11
+ }
12
+ xhr.onload = function () {
13
+ if (xhr.status === 200) {
14
+ resolve(xhr.response);
15
+ } else {
16
+ reject(new Error("Request error (".concat(xhr.status, ")")));
17
+ }
18
+ };
19
+ xhr.onerror = function () {
20
+ return reject(new RequestError({
21
+ code: xhr.status,
22
+ message: 'Check your internet connection'
23
+ }));
24
+ };
25
+ if (options !== null && options !== void 0 && options.onProgress) {
26
+ xhr.onprogress = function (e) {
27
+ options.onProgress(e.loaded, e.total);
28
+ };
29
+ }
30
+ if (options !== null && options !== void 0 && options.cancel) {
31
+ options.cancel(xhr);
32
+ }
33
+ xhr.send();
34
+ });
35
+ };
36
+ export default requestFile;
@@ -0,0 +1,4 @@
1
+ var rgbToHex = function rgbToHex(r, g, b) {
2
+ return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
3
+ };
4
+ export default rgbToHex;
@@ -0,0 +1,10 @@
1
+ export default function secondsToTime(rawSeconds) {
2
+ var hours = Math.floor(rawSeconds / 3600) % 24;
3
+ var minutes = Math.floor(rawSeconds / 60) % 60;
4
+ var seconds = Math.floor(rawSeconds % 60);
5
+ return {
6
+ hours: hours,
7
+ minutes: minutes,
8
+ seconds: seconds
9
+ };
10
+ }
@@ -0,0 +1,4 @@
1
+ var serializeFunction = function serializeFunction(fn) {
2
+ return fn.toString();
3
+ };
4
+ export default serializeFunction;
package/lib/settle.js ADDED
@@ -0,0 +1,19 @@
1
+ export default function settle(promises) {
2
+ var resolutions = [];
3
+ var rejections = [];
4
+ function resolved(value) {
5
+ resolutions.push(value);
6
+ }
7
+ function rejected(error) {
8
+ rejections.push(error);
9
+ }
10
+ var wait = Promise.all(promises.map(function (promise) {
11
+ return promise.then(resolved, rejected);
12
+ }));
13
+ return wait.then(function () {
14
+ return {
15
+ successful: resolutions,
16
+ failed: rejections
17
+ };
18
+ });
19
+ }