@scaleflex/widget-utils 4.4.0 → 4.5.0
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.
- package/CHANGELOG.md +8 -0
- package/lib/AbortController.js +20 -0
- package/lib/BlurHash/base83.js +10 -0
- package/lib/BlurHash/decode.js +80 -0
- package/lib/BlurHash/error.js +28 -0
- package/lib/BlurHash/utils.js +22 -0
- package/lib/CustomDate.js +157 -0
- package/lib/EventTracker.js +42 -0
- package/lib/FOCUSABLE_ELEMENTS.js +1 -0
- package/lib/LinkHelper.js +153 -0
- package/lib/NetworkError.js +30 -0
- package/lib/ProgressTimeout.js +45 -0
- package/lib/RateLimitedQueue.js +197 -0
- package/lib/RequestError.js +36 -0
- package/lib/Timeframes/getDateRange.js +45 -0
- package/lib/TranslationMissingKeysConsoleHelper.js +113 -0
- package/lib/Translator.js +200 -0
- package/lib/addUrlParams.js +27 -0
- package/lib/adjustUpdatedFolders.js +22 -0
- package/lib/asyncTimeout.js +6 -0
- package/lib/audioMimeTypes.js +3 -0
- package/lib/blobToDataURI.js +13 -0
- package/lib/callIfFunction.js +10 -0
- package/lib/canEditVideo.js +9 -0
- package/lib/canvasToBlob.js +18 -0
- package/lib/capitalizeFirstLetter.js +4 -0
- package/lib/checkConnection.js +4 -0
- package/lib/checkFileOrFolderNameValidation.js +4 -0
- package/lib/checkIfPngSvgGIF.js +3 -0
- package/lib/checkImageIfPngJpegOrWebpOrAvif.js +5 -0
- package/lib/checkItemsSupportExportWithReason.js +41 -0
- package/lib/checkPermissions.js +26 -0
- package/lib/cloudimageSupportedInputMimeTypes.js +2 -0
- package/lib/clsx.js +14 -0
- package/lib/constants.js +570 -0
- package/lib/convertBytesToMb.js +5 -0
- package/lib/convertGbToBytes.js +4 -0
- package/lib/convertVideoFileTypeToSupported.js +17 -0
- package/lib/copyText.js +25 -0
- package/lib/createFolderVirtualPath.js +14 -0
- package/lib/createThunk.js +349 -0
- package/lib/customEncodeURIComponent.js +47 -0
- package/lib/dataURItoBlob.js +33 -0
- package/lib/dataURItoFile.js +4 -0
- package/lib/dateStrToClearDateTime.js +20 -0
- package/lib/debounce.js +14 -0
- package/lib/deepEqual.js +23 -0
- package/lib/deepMerge.js +56 -0
- package/lib/deserializeFunction.js +5 -0
- package/lib/documentMimeTypes.js +2 -0
- package/lib/downloadFromBlob.js +16 -0
- package/lib/emitSocketProgress.js +18 -0
- package/lib/escapeRegExp.js +4 -0
- package/lib/extractFileDataNoBlob.js +12 -0
- package/lib/fetchWithNetworkError.js +14 -0
- package/lib/fieldsQueriesGetters.js +46 -0
- package/lib/findAllDOMElements.js +18 -0
- package/lib/findAllRegexMatchesInString.js +16 -0
- package/lib/findDOMElement.js +17 -0
- package/lib/findIndex.js +9 -0
- package/lib/formatDuration.js +22 -0
- package/lib/formatNumbers.js +32 -0
- package/lib/formatResolution.js +17 -0
- package/lib/formatSeconds.js +14 -0
- package/lib/generateFileId.js +53 -0
- package/lib/generateI18nKeyFromString.js +11 -0
- package/lib/generatePsdThumbnail/adaptHexBoundries.js +9 -0
- package/lib/generatePsdThumbnail/bufferToHex.js +12 -0
- package/lib/generatePsdThumbnail/generatePsdThumbnail.js +36 -0
- package/lib/generatePsdThumbnail/generatePsdThumbnailBytes.js +8 -0
- package/lib/generatePsdThumbnail/generatePsdThumbnailHex.js +4 -0
- package/lib/generateSelectInputPlaceholder.js +24 -0
- package/lib/getActionErrorState.js +17 -0
- package/lib/getArraysMutualObjects.js +12 -0
- package/lib/getBytesRemaining.js +9 -0
- package/lib/getClientTimezone.js +5 -0
- package/lib/getCloudimagePrefixedUrl.js +23 -0
- package/lib/getDateDaysFromNow.js +17 -0
- package/lib/getDateMinusDay.js +5 -0
- package/lib/getDateString.js +20 -0
- package/lib/getDaysLeft.js +9 -0
- package/lib/getDecodedUriComponent.js +10 -0
- package/lib/getDownloadSpeed.js +7 -0
- package/lib/getDroppedFiles/index.js +24 -0
- package/lib/getDroppedFiles/utils/fallbackApi.js +7 -0
- package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js +36 -0
- package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getRelativePath.js +16 -0
- package/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js +57 -0
- package/lib/getEncodedWrappedUrl.js +7 -0
- package/lib/getFileAssetsTokenUrl.js +14 -0
- package/lib/getFileCdnLink.js +6 -0
- package/lib/getFileDefaultIcon.js +14 -0
- package/lib/getFileDetails.js +81 -0
- package/lib/getFileExtension.js +32 -0
- package/lib/getFileLink.js +17 -0
- package/lib/getFileNameAndExtension.js +22 -0
- package/lib/getFileType.js +23 -0
- package/lib/getFileTypeExtension.js +22 -0
- package/lib/getFilterFileFormatIcon.js +6 -0
- package/lib/getFolderDetails.js +30 -0
- package/lib/getFormattedPreviewUrl.js +79 -0
- package/lib/getHoursAndMinutes.js +9 -0
- package/lib/getImageEditUrl.js +36 -0
- package/lib/getImgFileDimensions.js +25 -0
- package/lib/getItemIcon.js +112 -0
- package/lib/getItemPath.js +10 -0
- package/lib/getItemPreviewWidthHeight.js +10 -0
- package/lib/getItemsSizeInBytes.js +12 -0
- package/lib/getJsonParsedValue.js +11 -0
- package/lib/getLinkWithNewParams.js +13 -0
- package/lib/getMetadataMultiSelectQuery.js +66 -0
- package/lib/getNormalizedItems.js +55 -0
- package/lib/getObjectsMutualProperties.js +32 -0
- package/lib/getRandomNumber.js +12 -0
- package/lib/getSocketHost.js +7 -0
- package/lib/getSpeed.js +8 -0
- package/lib/getTime.js +18 -0
- package/lib/getTimeStamp.js +18 -0
- package/lib/handleError.js +13 -0
- package/lib/handlePressEnter.js +9 -0
- package/lib/handlePromise.js +39 -0
- package/lib/hasProperty.js +3 -0
- package/lib/hexToRgb.js +15 -0
- package/lib/htmlSanitizer.js +6 -0
- package/lib/humanReadableDate.js +45 -0
- package/lib/humanReadableDateWithTranslations.js +29 -0
- package/lib/i18n.client.js +54 -0
- package/lib/ignoreEvent.js +10 -0
- package/lib/index.js +0 -0
- package/lib/injectVirtualPathToFolders.js +24 -0
- package/lib/isAi.js +7 -0
- package/lib/isArchive.js +12 -0
- package/lib/isAudio.js +9 -0
- package/lib/isAudioAndSupportsPlayback.js +10 -0
- package/lib/isCloudimageFastPreviewSupported.js +16 -0
- package/lib/isDOMElement.js +9 -0
- package/lib/isDocument.js +10 -0
- package/lib/isDragDropSupported.js +20 -0
- package/lib/isEmptyObject.js +4 -0
- package/lib/isEps.js +8 -0
- package/lib/isFile.js +5 -0
- package/lib/isFileSupportedByCloudimage.js +14 -0
- package/lib/isFolder.js +4 -0
- package/lib/isFontFile.js +9 -0
- package/lib/isFunction.js +4 -0
- package/lib/isImage.js +11 -0
- package/lib/isJpg.js +8 -0
- package/lib/isMobileDevice.js +12 -0
- package/lib/isNetworkError.js +7 -0
- package/lib/isNumber.js +4 -0
- package/lib/isObjectType.js +5 -0
- package/lib/isObjectURL.js +10 -0
- package/lib/isOpenedFromAdobe.js +3 -0
- package/lib/isOtf.js +10 -0
- package/lib/isPdf.js +9 -0
- package/lib/isPhotoshopFile.js +8 -0
- package/lib/isPreviewSupported.js +12 -0
- package/lib/isPromise.js +5 -0
- package/lib/metadata/checkFieldValidation.js +51 -0
- package/lib/metadata/generateItemMetadataState.js +63 -0
- package/lib/metadata/generateMetadataDefaultState.js +30 -0
- package/lib/metadata/getFileCustomMetadataGroups.js +23 -0
- package/lib/metadata/getGeoPointValidationErrors.js +32 -0
- package/lib/metadata/getMetaAttachmentFields.js +9 -0
- package/lib/metadata/getMetadataEmptyAssets.js +28 -0
- package/lib/metadata/getMetadataFieldGeoPointValue.js +42 -0
- package/lib/metadata/getMetadataFieldVariantValue.js +31 -0
- package/lib/metadata/getMetadataGroups.js +16 -0
- package/lib/metadata/getRequiredMetadataFields.js +13 -0
- package/lib/metadata/isM0LegacyMetaVersion.js +5 -0
- package/lib/metadata/isM1EdgyMetaVersion.js +5 -0
- package/lib/metadata/mapMetaAttachmentsObjsToUuids.js +21 -0
- package/lib/metadata/updateValidationErrors.js +59 -0
- package/lib/metadata/validateItemMetadata.js +70 -0
- package/lib/styledComponentsMixins/truncate.mixin.js +8 -0
- package/package.json +3 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).
|
|
3
|
+
* @property {HTMLElement} htmlElement
|
|
4
|
+
* @returns {boolean}
|
|
5
|
+
*/
|
|
6
|
+
export default function isDragDropSupported(htmlElement) {
|
|
7
|
+
var element = htmlElement || document.createElement('div');
|
|
8
|
+
if (element !== document) {
|
|
9
|
+
if (!('draggable' in element) || !('ondragstart' in element && 'ondrop' in element)) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (!('FormData' in window)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (!('FileReader' in window)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
package/lib/isEps.js
ADDED
package/lib/isFile.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import cloudimageSupportedInputMimiTypes from './cloudimageSupportedInputMimeTypes';
|
|
2
|
+
import getFileType from './getFileType';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Check if the selected item type is supported input for cloudimage
|
|
6
|
+
*
|
|
7
|
+
* @param {object} item
|
|
8
|
+
* @returns {Boolean}
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var isFileSupportedByCloudimage = function isFileSupportedByCloudimage(file) {
|
|
12
|
+
return cloudimageSupportedInputMimiTypes.includes(getFileType(file));
|
|
13
|
+
};
|
|
14
|
+
export default isFileSupportedByCloudimage;
|
package/lib/isFolder.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import mimeTypes from './mimeTypes';
|
|
2
|
+
import getFileType from './getFileType';
|
|
3
|
+
var isFontFile = function isFontFile() {
|
|
4
|
+
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5
|
+
if (!file) return false;
|
|
6
|
+
var fileType = getFileType(file).toLowerCase();
|
|
7
|
+
return fileType.toLowerCase().includes('font') || fileType === mimeTypes.otf || fileType === mimeTypes.ttf || fileType === mimeTypes.xttf || fileType === mimeTypes.sfnt;
|
|
8
|
+
};
|
|
9
|
+
export default isFontFile;
|
package/lib/isImage.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import getFileType from './getFileType';
|
|
2
|
+
export default function isImage() {
|
|
3
|
+
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4
|
+
if (!file) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// More determined logic as some mimeTypes like photoshop has (image/vnd.photoshop...)
|
|
9
|
+
// which shouldn't be treated as image in that case.
|
|
10
|
+
return /^image\/(jpeg|jpg|png|gif|apng|avif|heif|heic|svg\+xml|svg|webp|x-icon|bmp|x-ms-bmp|tiff|vnd\.microsoft\.icon)$/.test(getFileType(file).toLowerCase());
|
|
11
|
+
}
|
package/lib/isJpg.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if current device reports itself as “mobile”.
|
|
3
|
+
* Very simple, not very reliable.
|
|
4
|
+
*
|
|
5
|
+
* @returns {boolean}
|
|
6
|
+
*/
|
|
7
|
+
export default function isMobileDevice() {
|
|
8
|
+
if (typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.match(/Mobi/)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
package/lib/isNumber.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
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 isObjectType = function isObjectType(variable) {
|
|
3
|
+
return _typeof(variable) === 'object' && !Array.isArray(variable) && variable !== null;
|
|
4
|
+
};
|
|
5
|
+
export default isObjectType;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a URL string is an object URL from `URL.createObjectURL`.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} url
|
|
5
|
+
* @returns {boolean}
|
|
6
|
+
*/
|
|
7
|
+
export default function isObjectURL() {
|
|
8
|
+
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
9
|
+
return url.indexOf('blob:') === 0;
|
|
10
|
+
}
|
package/lib/isOtf.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import mimeTypes from './mimeTypes';
|
|
2
|
+
import getFileType from './getFileType';
|
|
3
|
+
var isOtf = function isOtf(file) {
|
|
4
|
+
if (!file) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
var fileType = getFileType(file).toLowerCase();
|
|
8
|
+
return fileType === mimeTypes.otf || file.name.includes('.otf');
|
|
9
|
+
};
|
|
10
|
+
export default isOtf;
|
package/lib/isPdf.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import getFileType from './getFileType';
|
|
2
|
+
import mimeTypes from './mimeTypes';
|
|
3
|
+
var PDF_MIME_TYPES = [mimeTypes.pdf, mimeTypes.postScript];
|
|
4
|
+
export default function isPdf(file) {
|
|
5
|
+
if (!file) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return PDF_MIME_TYPES.includes(getFileType(file).toLowerCase());
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import isImage from './isImage';
|
|
2
|
+
import isPdf from './isPdf';
|
|
3
|
+
import isOpenedFromAdobe from './isOpenedFromAdobe';
|
|
4
|
+
import isSupportedVideo from './isSupportedVideo';
|
|
5
|
+
import isFontFile from './isFontFile';
|
|
6
|
+
export default function isPreviewSupported(file) {
|
|
7
|
+
// Checking if we could show a preview for this item or not
|
|
8
|
+
if (isImage(file) || isPdf(file) && !isOpenedFromAdobe() || isSupportedVideo(file) && !isOpenedFromAdobe() || isFontFile(file)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
package/lib/isPromise.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
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 isPromise = function isPromise(obj) {
|
|
3
|
+
return obj && (obj instanceof Promise || (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function' && typeof obj["catch"] === 'function');
|
|
4
|
+
};
|
|
5
|
+
export default isPromise;
|
|
@@ -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,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;
|