node_modules ignore

This commit is contained in:
2025-05-08 23:43:47 +02:00
parent e19d52f172
commit 4574544c9f
65041 changed files with 10593536 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
'use strict';
const appendSearchParamsToUrl = ({ url, params })=>{
if (url === undefined || typeof params !== 'object') {
return url;
}
const urlObj = new URL(url, window.strapi.backendURL);
Object.entries(params).forEach(([key, value])=>{
if (value !== undefined && value !== null) {
urlObj.searchParams.append(key, value);
}
});
return urlObj.toString();
};
exports.appendSearchParamsToUrl = appendSearchParamsToUrl;
//# sourceMappingURL=appendSearchParamsToUrl.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"appendSearchParamsToUrl.js","sources":["../../../admin/src/utils/appendSearchParamsToUrl.ts"],"sourcesContent":["interface AppendSearchParamsToUrlProps {\n url?: string;\n params?: Record<string, string | null | undefined> | string;\n}\n\nconst appendSearchParamsToUrl = ({ url, params }: AppendSearchParamsToUrlProps) => {\n if (url === undefined || typeof params !== 'object') {\n return url;\n }\n\n const urlObj = new URL(url, window.strapi.backendURL);\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n urlObj.searchParams.append(key, value);\n }\n });\n\n return urlObj.toString();\n};\n\nexport { appendSearchParamsToUrl };\n"],"names":["appendSearchParamsToUrl","url","params","undefined","urlObj","URL","window","strapi","backendURL","Object","entries","forEach","key","value","searchParams","append","toString"],"mappings":";;AAKA,MAAMA,0BAA0B,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAgC,GAAA;AAC5E,IAAA,IAAID,GAAQE,KAAAA,SAAAA,IAAa,OAAOD,MAAAA,KAAW,QAAU,EAAA;QACnD,OAAOD,GAAAA;AACT;AAEA,IAAA,MAAMG,SAAS,IAAIC,GAAAA,CAAIJ,KAAKK,MAAOC,CAAAA,MAAM,CAACC,UAAU,CAAA;IAEpDC,MAAOC,CAAAA,OAAO,CAACR,MAAQS,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAM,CAAA,GAAA;QAC1C,IAAIA,KAAAA,KAAUV,SAAaU,IAAAA,KAAAA,KAAU,IAAM,EAAA;AACzCT,YAAAA,MAAAA,CAAOU,YAAY,CAACC,MAAM,CAACH,GAAKC,EAAAA,KAAAA,CAAAA;AAClC;AACF,KAAA,CAAA;AAEA,IAAA,OAAOT,OAAOY,QAAQ,EAAA;AACxB;;;;"}

View File

@@ -0,0 +1,15 @@
const appendSearchParamsToUrl = ({ url, params })=>{
if (url === undefined || typeof params !== 'object') {
return url;
}
const urlObj = new URL(url, window.strapi.backendURL);
Object.entries(params).forEach(([key, value])=>{
if (value !== undefined && value !== null) {
urlObj.searchParams.append(key, value);
}
});
return urlObj.toString();
};
export { appendSearchParamsToUrl };
//# sourceMappingURL=appendSearchParamsToUrl.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"appendSearchParamsToUrl.mjs","sources":["../../../admin/src/utils/appendSearchParamsToUrl.ts"],"sourcesContent":["interface AppendSearchParamsToUrlProps {\n url?: string;\n params?: Record<string, string | null | undefined> | string;\n}\n\nconst appendSearchParamsToUrl = ({ url, params }: AppendSearchParamsToUrlProps) => {\n if (url === undefined || typeof params !== 'object') {\n return url;\n }\n\n const urlObj = new URL(url, window.strapi.backendURL);\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n urlObj.searchParams.append(key, value);\n }\n });\n\n return urlObj.toString();\n};\n\nexport { appendSearchParamsToUrl };\n"],"names":["appendSearchParamsToUrl","url","params","undefined","urlObj","URL","window","strapi","backendURL","Object","entries","forEach","key","value","searchParams","append","toString"],"mappings":"AAKA,MAAMA,0BAA0B,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAgC,GAAA;AAC5E,IAAA,IAAID,GAAQE,KAAAA,SAAAA,IAAa,OAAOD,MAAAA,KAAW,QAAU,EAAA;QACnD,OAAOD,GAAAA;AACT;AAEA,IAAA,MAAMG,SAAS,IAAIC,GAAAA,CAAIJ,KAAKK,MAAOC,CAAAA,MAAM,CAACC,UAAU,CAAA;IAEpDC,MAAOC,CAAAA,OAAO,CAACR,MAAQS,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAM,CAAA,GAAA;QAC1C,IAAIA,KAAAA,KAAUV,SAAaU,IAAAA,KAAAA,KAAU,IAAM,EAAA;AACzCT,YAAAA,MAAAA,CAAOU,YAAY,CAACC,MAAM,CAACH,GAAKC,EAAAA,KAAAA,CAAAA;AAClC;AACF,KAAA,CAAA;AAEA,IAAA,OAAOT,OAAOY,QAAQ,EAAA;AACxB;;;;"}

View File

@@ -0,0 +1,18 @@
'use strict';
const containsMimeTypeFilter = (query)=>{
const filters = query?.filters?.$and;
if (!filters) {
return false;
}
const result = filters.find((filter)=>{
return Object.keys(filter).includes('mime');
});
return !!result;
};
const containsAssetFilter = (query)=>{
return containsMimeTypeFilter(query);
};
exports.containsAssetFilter = containsAssetFilter;
//# sourceMappingURL=containsAssetFilter.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"containsAssetFilter.js","sources":["../../../admin/src/utils/containsAssetFilter.ts"],"sourcesContent":["import type { Query } from '../../../shared/contracts/files';\n\nconst containsMimeTypeFilter = (query: Query | null) => {\n const filters = query?.filters?.$and;\n\n if (!filters) {\n return false;\n }\n\n const result = filters.find((filter) => {\n return Object.keys(filter).includes('mime');\n });\n\n return !!result;\n};\n\nexport const containsAssetFilter = (query: Query | null) => {\n return containsMimeTypeFilter(query);\n};\n"],"names":["containsMimeTypeFilter","query","filters","$and","result","find","filter","Object","keys","includes","containsAssetFilter"],"mappings":";;AAEA,MAAMA,yBAAyB,CAACC,KAAAA,GAAAA;IAC9B,MAAMC,OAAAA,GAAUD,OAAOC,OAASC,EAAAA,IAAAA;AAEhC,IAAA,IAAI,CAACD,OAAS,EAAA;QACZ,OAAO,KAAA;AACT;AAEA,IAAA,MAAME,MAASF,GAAAA,OAAAA,CAAQG,IAAI,CAAC,CAACC,MAAAA,GAAAA;AAC3B,QAAA,OAAOC,MAAOC,CAAAA,IAAI,CAACF,MAAAA,CAAAA,CAAQG,QAAQ,CAAC,MAAA,CAAA;AACtC,KAAA,CAAA;AAEA,IAAA,OAAO,CAAC,CAACL,MAAAA;AACX,CAAA;AAEO,MAAMM,sBAAsB,CAACT,KAAAA,GAAAA;AAClC,IAAA,OAAOD,sBAAuBC,CAAAA,KAAAA,CAAAA;AAChC;;;;"}

View File

@@ -0,0 +1,16 @@
const containsMimeTypeFilter = (query)=>{
const filters = query?.filters?.$and;
if (!filters) {
return false;
}
const result = filters.find((filter)=>{
return Object.keys(filter).includes('mime');
});
return !!result;
};
const containsAssetFilter = (query)=>{
return containsMimeTypeFilter(query);
};
export { containsAssetFilter };
//# sourceMappingURL=containsAssetFilter.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"containsAssetFilter.mjs","sources":["../../../admin/src/utils/containsAssetFilter.ts"],"sourcesContent":["import type { Query } from '../../../shared/contracts/files';\n\nconst containsMimeTypeFilter = (query: Query | null) => {\n const filters = query?.filters?.$and;\n\n if (!filters) {\n return false;\n }\n\n const result = filters.find((filter) => {\n return Object.keys(filter).includes('mime');\n });\n\n return !!result;\n};\n\nexport const containsAssetFilter = (query: Query | null) => {\n return containsMimeTypeFilter(query);\n};\n"],"names":["containsMimeTypeFilter","query","filters","$and","result","find","filter","Object","keys","includes","containsAssetFilter"],"mappings":"AAEA,MAAMA,yBAAyB,CAACC,KAAAA,GAAAA;IAC9B,MAAMC,OAAAA,GAAUD,OAAOC,OAASC,EAAAA,IAAAA;AAEhC,IAAA,IAAI,CAACD,OAAS,EAAA;QACZ,OAAO,KAAA;AACT;AAEA,IAAA,MAAME,MAASF,GAAAA,OAAAA,CAAQG,IAAI,CAAC,CAACC,MAAAA,GAAAA;AAC3B,QAAA,OAAOC,MAAOC,CAAAA,IAAI,CAACF,MAAAA,CAAAA,CAAQG,QAAQ,CAAC,MAAA,CAAA;AACtC,KAAA,CAAA;AAEA,IAAA,OAAO,CAAC,CAACL,MAAAA;AACX,CAAA;AAEO,MAAMM,sBAAsB,CAACT,KAAAA,GAAAA;AAClC,IAAA,OAAOD,sBAAuBC,CAAAA,KAAAA,CAAAA;AAChC;;;;"}

View File

@@ -0,0 +1,14 @@
'use strict';
var prefixFileUrlWithBackendUrl = require('./prefixFileUrlWithBackendUrl.js');
const createAssetUrl = (asset, forThumbnail = true)=>{
if (asset.isLocal) {
return asset.url;
}
const assetUrl = forThumbnail ? asset?.formats?.thumbnail?.url || asset.url : asset.url;
return prefixFileUrlWithBackendUrl.prefixFileUrlWithBackendUrl(assetUrl);
};
exports.createAssetUrl = createAssetUrl;
//# sourceMappingURL=createAssetUrl.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createAssetUrl.js","sources":["../../../admin/src/utils/createAssetUrl.ts"],"sourcesContent":["import { prefixFileUrlWithBackendUrl } from './prefixFileUrlWithBackendUrl';\n\nimport type { File } from '../../../shared/contracts/files';\n\nexport const createAssetUrl = (asset: File, forThumbnail = true) => {\n if (asset.isLocal) {\n return asset.url;\n }\n\n const assetUrl = forThumbnail ? asset?.formats?.thumbnail?.url || asset.url : asset.url;\n\n return prefixFileUrlWithBackendUrl(assetUrl);\n};\n"],"names":["createAssetUrl","asset","forThumbnail","isLocal","url","assetUrl","formats","thumbnail","prefixFileUrlWithBackendUrl"],"mappings":";;;;AAIaA,MAAAA,cAAAA,GAAiB,CAACC,KAAAA,EAAaC,eAAe,IAAI,GAAA;IAC7D,IAAID,KAAAA,CAAME,OAAO,EAAE;AACjB,QAAA,OAAOF,MAAMG,GAAG;AAClB;IAEA,MAAMC,QAAAA,GAAWH,YAAeD,GAAAA,KAAAA,EAAOK,OAASC,EAAAA,SAAAA,EAAWH,OAAOH,KAAMG,CAAAA,GAAG,GAAGH,KAAAA,CAAMG,GAAG;AAEvF,IAAA,OAAOI,uDAA4BH,CAAAA,QAAAA,CAAAA;AACrC;;;;"}

View File

@@ -0,0 +1,12 @@
import { prefixFileUrlWithBackendUrl } from './prefixFileUrlWithBackendUrl.mjs';
const createAssetUrl = (asset, forThumbnail = true)=>{
if (asset.isLocal) {
return asset.url;
}
const assetUrl = forThumbnail ? asset?.formats?.thumbnail?.url || asset.url : asset.url;
return prefixFileUrlWithBackendUrl(assetUrl);
};
export { createAssetUrl };
//# sourceMappingURL=createAssetUrl.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createAssetUrl.mjs","sources":["../../../admin/src/utils/createAssetUrl.ts"],"sourcesContent":["import { prefixFileUrlWithBackendUrl } from './prefixFileUrlWithBackendUrl';\n\nimport type { File } from '../../../shared/contracts/files';\n\nexport const createAssetUrl = (asset: File, forThumbnail = true) => {\n if (asset.isLocal) {\n return asset.url;\n }\n\n const assetUrl = forThumbnail ? asset?.formats?.thumbnail?.url || asset.url : asset.url;\n\n return prefixFileUrlWithBackendUrl(assetUrl);\n};\n"],"names":["createAssetUrl","asset","forThumbnail","isLocal","url","assetUrl","formats","thumbnail","prefixFileUrlWithBackendUrl"],"mappings":";;AAIaA,MAAAA,cAAAA,GAAiB,CAACC,KAAAA,EAAaC,eAAe,IAAI,GAAA;IAC7D,IAAID,KAAAA,CAAME,OAAO,EAAE;AACjB,QAAA,OAAOF,MAAMG,GAAG;AAClB;IAEA,MAAMC,QAAAA,GAAWH,YAAeD,GAAAA,KAAAA,EAAOK,OAASC,EAAAA,SAAAA,EAAWH,OAAOH,KAAMG,CAAAA,GAAG,GAAGH,KAAAA,CAAMG,GAAG;AAEvF,IAAA,OAAOI,2BAA4BH,CAAAA,QAAAA,CAAAA;AACrC;;;;"}

View File

@@ -0,0 +1,52 @@
'use strict';
const displayedFilters = [
{
name: 'createdAt',
fieldSchema: {
type: 'date'
},
metadatas: {
label: 'createdAt'
}
},
{
name: 'updatedAt',
fieldSchema: {
type: 'date'
},
metadatas: {
label: 'updatedAt'
}
},
{
name: 'mime',
fieldSchema: {
type: 'enumeration',
options: [
{
label: 'audio',
value: 'audio'
},
{
label: 'file',
value: 'file'
},
{
label: 'image',
value: 'image'
},
{
label: 'video',
value: 'video'
}
]
},
metadatas: {
label: 'type'
}
}
];
exports.displayedFilters = displayedFilters;
//# sourceMappingURL=displayedFilters.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"displayedFilters.js","sources":["../../../admin/src/utils/displayedFilters.ts"],"sourcesContent":["export const displayedFilters = [\n {\n name: 'createdAt',\n fieldSchema: {\n type: 'date',\n },\n metadatas: { label: 'createdAt' },\n },\n {\n name: 'updatedAt',\n fieldSchema: {\n type: 'date',\n },\n metadatas: { label: 'updatedAt' },\n },\n {\n name: 'mime',\n fieldSchema: {\n type: 'enumeration',\n options: [\n { label: 'audio', value: 'audio' },\n { label: 'file', value: 'file' },\n { label: 'image', value: 'image' },\n { label: 'video', value: 'video' },\n ],\n },\n metadatas: { label: 'type' },\n },\n];\n"],"names":["displayedFilters","name","fieldSchema","type","metadatas","label","options","value"],"mappings":";;MAAaA,gBAAmB,GAAA;AAC9B,IAAA;QACEC,IAAM,EAAA,WAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA;AACR,SAAA;QACAC,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAY;AAClC,KAAA;AACA,IAAA;QACEJ,IAAM,EAAA,WAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA;AACR,SAAA;QACAC,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAY;AAClC,KAAA;AACA,IAAA;QACEJ,IAAM,EAAA,MAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA,aAAA;YACNG,OAAS,EAAA;AACP,gBAAA;oBAAED,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ,iBAAA;AACjC,gBAAA;oBAAEF,KAAO,EAAA,MAAA;oBAAQE,KAAO,EAAA;AAAO,iBAAA;AAC/B,gBAAA;oBAAEF,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ,iBAAA;AACjC,gBAAA;oBAAEF,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ;AAClC;AACH,SAAA;QACAH,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAO;AAC7B;;;;;"}

View File

@@ -0,0 +1,50 @@
const displayedFilters = [
{
name: 'createdAt',
fieldSchema: {
type: 'date'
},
metadatas: {
label: 'createdAt'
}
},
{
name: 'updatedAt',
fieldSchema: {
type: 'date'
},
metadatas: {
label: 'updatedAt'
}
},
{
name: 'mime',
fieldSchema: {
type: 'enumeration',
options: [
{
label: 'audio',
value: 'audio'
},
{
label: 'file',
value: 'file'
},
{
label: 'image',
value: 'image'
},
{
label: 'video',
value: 'video'
}
]
},
metadatas: {
label: 'type'
}
}
];
export { displayedFilters };
//# sourceMappingURL=displayedFilters.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"displayedFilters.mjs","sources":["../../../admin/src/utils/displayedFilters.ts"],"sourcesContent":["export const displayedFilters = [\n {\n name: 'createdAt',\n fieldSchema: {\n type: 'date',\n },\n metadatas: { label: 'createdAt' },\n },\n {\n name: 'updatedAt',\n fieldSchema: {\n type: 'date',\n },\n metadatas: { label: 'updatedAt' },\n },\n {\n name: 'mime',\n fieldSchema: {\n type: 'enumeration',\n options: [\n { label: 'audio', value: 'audio' },\n { label: 'file', value: 'file' },\n { label: 'image', value: 'image' },\n { label: 'video', value: 'video' },\n ],\n },\n metadatas: { label: 'type' },\n },\n];\n"],"names":["displayedFilters","name","fieldSchema","type","metadatas","label","options","value"],"mappings":"MAAaA,gBAAmB,GAAA;AAC9B,IAAA;QACEC,IAAM,EAAA,WAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA;AACR,SAAA;QACAC,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAY;AAClC,KAAA;AACA,IAAA;QACEJ,IAAM,EAAA,WAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA;AACR,SAAA;QACAC,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAY;AAClC,KAAA;AACA,IAAA;QACEJ,IAAM,EAAA,MAAA;QACNC,WAAa,EAAA;YACXC,IAAM,EAAA,aAAA;YACNG,OAAS,EAAA;AACP,gBAAA;oBAAED,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ,iBAAA;AACjC,gBAAA;oBAAEF,KAAO,EAAA,MAAA;oBAAQE,KAAO,EAAA;AAAO,iBAAA;AAC/B,gBAAA;oBAAEF,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ,iBAAA;AACjC,gBAAA;oBAAEF,KAAO,EAAA,OAAA;oBAASE,KAAO,EAAA;AAAQ;AAClC;AACH,SAAA;QACAH,SAAW,EAAA;YAAEC,KAAO,EAAA;AAAO;AAC7B;;;;;"}

View File

@@ -0,0 +1,13 @@
'use strict';
const downloadFile = async (url, fileName)=>{
const fileBlob = await fetch(url).then((res)=>res.blob());
const urlDownload = window.URL.createObjectURL(fileBlob);
const link = document.createElement('a');
link.href = urlDownload;
link.setAttribute('download', fileName);
link.click();
};
exports.downloadFile = downloadFile;
//# sourceMappingURL=downloadFile.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"downloadFile.js","sources":["../../../admin/src/utils/downloadFile.ts"],"sourcesContent":["export const downloadFile = async (url: string, fileName: string) => {\n const fileBlob = await fetch(url).then((res) => res.blob());\n const urlDownload = window.URL.createObjectURL(fileBlob);\n const link = document.createElement('a');\n\n link.href = urlDownload;\n link.setAttribute('download', fileName);\n link.click();\n};\n"],"names":["downloadFile","url","fileName","fileBlob","fetch","then","res","blob","urlDownload","window","URL","createObjectURL","link","document","createElement","href","setAttribute","click"],"mappings":";;AAAO,MAAMA,YAAe,GAAA,OAAOC,GAAaC,EAAAA,QAAAA,GAAAA;IAC9C,MAAMC,QAAAA,GAAW,MAAMC,KAAMH,CAAAA,GAAAA,CAAAA,CAAKI,IAAI,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,EAAA,CAAA;AACxD,IAAA,MAAMC,WAAcC,GAAAA,MAAAA,CAAOC,GAAG,CAACC,eAAe,CAACR,QAAAA,CAAAA;IAC/C,MAAMS,IAAAA,GAAOC,QAASC,CAAAA,aAAa,CAAC,GAAA,CAAA;AAEpCF,IAAAA,IAAAA,CAAKG,IAAI,GAAGP,WAAAA;IACZI,IAAKI,CAAAA,YAAY,CAAC,UAAYd,EAAAA,QAAAA,CAAAA;AAC9BU,IAAAA,IAAAA,CAAKK,KAAK,EAAA;AACZ;;;;"}

View File

@@ -0,0 +1,11 @@
const downloadFile = async (url, fileName)=>{
const fileBlob = await fetch(url).then((res)=>res.blob());
const urlDownload = window.URL.createObjectURL(fileBlob);
const link = document.createElement('a');
link.href = urlDownload;
link.setAttribute('download', fileName);
link.click();
};
export { downloadFile };
//# sourceMappingURL=downloadFile.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"downloadFile.mjs","sources":["../../../admin/src/utils/downloadFile.ts"],"sourcesContent":["export const downloadFile = async (url: string, fileName: string) => {\n const fileBlob = await fetch(url).then((res) => res.blob());\n const urlDownload = window.URL.createObjectURL(fileBlob);\n const link = document.createElement('a');\n\n link.href = urlDownload;\n link.setAttribute('download', fileName);\n link.click();\n};\n"],"names":["downloadFile","url","fileName","fileBlob","fetch","then","res","blob","urlDownload","window","URL","createObjectURL","link","document","createElement","href","setAttribute","click"],"mappings":"AAAO,MAAMA,YAAe,GAAA,OAAOC,GAAaC,EAAAA,QAAAA,GAAAA;IAC9C,MAAMC,QAAAA,GAAW,MAAMC,KAAMH,CAAAA,GAAAA,CAAAA,CAAKI,IAAI,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,EAAA,CAAA;AACxD,IAAA,MAAMC,WAAcC,GAAAA,MAAAA,CAAOC,GAAG,CAACC,eAAe,CAACR,QAAAA,CAAAA;IAC/C,MAAMS,IAAAA,GAAOC,QAASC,CAAAA,aAAa,CAAC,GAAA,CAAA;AAEpCF,IAAAA,IAAAA,CAAKG,IAAI,GAAGP,WAAAA;IACZI,IAAKI,CAAAA,YAAY,CAAC,UAAYd,EAAAA,QAAAA,CAAAA;AAC9BU,IAAAA,IAAAA,CAAKK,KAAK,EAAA;AACZ;;;;"}

View File

@@ -0,0 +1,17 @@
'use strict';
function findRecursiveFolderByValue(data, value) {
let result;
function iter(a) {
if (a.value === value) {
result = a;
return true;
}
return Array.isArray(a.children) && a.children.some(iter);
}
data.some(iter);
return result;
}
exports.findRecursiveFolderByValue = findRecursiveFolderByValue;
//# sourceMappingURL=findRecursiveFolderByValue.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"findRecursiveFolderByValue.js","sources":["../../../admin/src/utils/findRecursiveFolderByValue.ts"],"sourcesContent":["import type { FolderNode } from '../../../shared/contracts/folders';\n\ninterface FolderStructureValue extends Omit<FolderNode, 'children'> {\n value?: string | number | null;\n children?: FolderStructureValue[];\n label?: string;\n}\n\ntype Value = number | null | { value: number | null };\n\nexport function findRecursiveFolderByValue(\n data: FolderStructureValue[],\n value: Value\n): FolderStructureValue | undefined {\n let result: FolderStructureValue | undefined;\n\n function iter(a: FolderStructureValue) {\n if (a.value === value) {\n result = a;\n\n return true;\n }\n\n return Array.isArray(a.children) && a.children.some(iter);\n }\n\n data.some(iter);\n\n return result;\n}\n"],"names":["findRecursiveFolderByValue","data","value","result","iter","a","Array","isArray","children","some"],"mappings":";;AAUO,SAASA,0BAAAA,CACdC,IAA4B,EAC5BC,KAAY,EAAA;IAEZ,IAAIC,MAAAA;AAEJ,IAAA,SAASC,KAAKC,CAAuB,EAAA;QACnC,IAAIA,CAAAA,CAAEH,KAAK,KAAKA,KAAO,EAAA;YACrBC,MAASE,GAAAA,CAAAA;YAET,OAAO,IAAA;AACT;QAEA,OAAOC,KAAAA,CAAMC,OAAO,CAACF,CAAEG,CAAAA,QAAQ,KAAKH,CAAEG,CAAAA,QAAQ,CAACC,IAAI,CAACL,IAAAA,CAAAA;AACtD;AAEAH,IAAAA,IAAAA,CAAKQ,IAAI,CAACL,IAAAA,CAAAA;IAEV,OAAOD,MAAAA;AACT;;;;"}

View File

@@ -0,0 +1,15 @@
function findRecursiveFolderByValue(data, value) {
let result;
function iter(a) {
if (a.value === value) {
result = a;
return true;
}
return Array.isArray(a.children) && a.children.some(iter);
}
data.some(iter);
return result;
}
export { findRecursiveFolderByValue };
//# sourceMappingURL=findRecursiveFolderByValue.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"findRecursiveFolderByValue.mjs","sources":["../../../admin/src/utils/findRecursiveFolderByValue.ts"],"sourcesContent":["import type { FolderNode } from '../../../shared/contracts/folders';\n\ninterface FolderStructureValue extends Omit<FolderNode, 'children'> {\n value?: string | number | null;\n children?: FolderStructureValue[];\n label?: string;\n}\n\ntype Value = number | null | { value: number | null };\n\nexport function findRecursiveFolderByValue(\n data: FolderStructureValue[],\n value: Value\n): FolderStructureValue | undefined {\n let result: FolderStructureValue | undefined;\n\n function iter(a: FolderStructureValue) {\n if (a.value === value) {\n result = a;\n\n return true;\n }\n\n return Array.isArray(a.children) && a.children.some(iter);\n }\n\n data.some(iter);\n\n return result;\n}\n"],"names":["findRecursiveFolderByValue","data","value","result","iter","a","Array","isArray","children","some"],"mappings":"AAUO,SAASA,0BAAAA,CACdC,IAA4B,EAC5BC,KAAY,EAAA;IAEZ,IAAIC,MAAAA;AAEJ,IAAA,SAASC,KAAKC,CAAuB,EAAA;QACnC,IAAIA,CAAAA,CAAEH,KAAK,KAAKA,KAAO,EAAA;YACrBC,MAASE,GAAAA,CAAAA;YAET,OAAO,IAAA;AACT;QAEA,OAAOC,KAAAA,CAAMC,OAAO,CAACF,CAAEG,CAAAA,QAAQ,KAAKH,CAAEG,CAAAA,QAAQ,CAACC,IAAI,CAACL,IAAAA,CAAAA;AACtD;AAEAH,IAAAA,IAAAA,CAAKQ,IAAI,CAACL,IAAAA,CAAAA;IAEV,OAAOD,MAAAA;AACT;;;;"}

View File

@@ -0,0 +1,17 @@
'use strict';
var byteSize = require('byte-size');
function formatBytes(receivedBytes, decimals = 0) {
const realBytes = typeof receivedBytes === 'string' ? Number(receivedBytes) : receivedBytes;
const { value, unit } = byteSize(realBytes * 1000, {
precision: decimals
});
if (!unit) {
return '0B';
}
return `${value}${unit.toUpperCase()}`;
}
exports.formatBytes = formatBytes;
//# sourceMappingURL=formatBytes.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"formatBytes.js","sources":["../../../admin/src/utils/formatBytes.ts"],"sourcesContent":["import byteSize from 'byte-size';\n\nexport function formatBytes(receivedBytes: number | string, decimals = 0) {\n const realBytes = typeof receivedBytes === 'string' ? Number(receivedBytes) : receivedBytes;\n const { value, unit } = byteSize(realBytes * 1000, { precision: decimals });\n\n if (!unit) {\n return '0B';\n }\n\n return `${value}${unit.toUpperCase()}`;\n}\n"],"names":["formatBytes","receivedBytes","decimals","realBytes","Number","value","unit","byteSize","precision","toUpperCase"],"mappings":";;;;AAEO,SAASA,WAAAA,CAAYC,aAA8B,EAAEC,WAAW,CAAC,EAAA;AACtE,IAAA,MAAMC,SAAY,GAAA,OAAOF,aAAkB,KAAA,QAAA,GAAWG,OAAOH,aAAiBA,CAAAA,GAAAA,aAAAA;IAC9E,MAAM,EAAEI,KAAK,EAAEC,IAAI,EAAE,GAAGC,QAAAA,CAASJ,YAAY,IAAM,EAAA;QAAEK,SAAWN,EAAAA;AAAS,KAAA,CAAA;AAEzE,IAAA,IAAI,CAACI,IAAM,EAAA;QACT,OAAO,IAAA;AACT;AAEA,IAAA,OAAO,CAAC,EAAED,KAAAA,CAAM,EAAEC,IAAKG,CAAAA,WAAW,GAAG,CAAC;AACxC;;;;"}

View File

@@ -0,0 +1,15 @@
import byteSize from 'byte-size';
function formatBytes(receivedBytes, decimals = 0) {
const realBytes = typeof receivedBytes === 'string' ? Number(receivedBytes) : receivedBytes;
const { value, unit } = byteSize(realBytes * 1000, {
precision: decimals
});
if (!unit) {
return '0B';
}
return `${value}${unit.toUpperCase()}`;
}
export { formatBytes };
//# sourceMappingURL=formatBytes.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"formatBytes.mjs","sources":["../../../admin/src/utils/formatBytes.ts"],"sourcesContent":["import byteSize from 'byte-size';\n\nexport function formatBytes(receivedBytes: number | string, decimals = 0) {\n const realBytes = typeof receivedBytes === 'string' ? Number(receivedBytes) : receivedBytes;\n const { value, unit } = byteSize(realBytes * 1000, { precision: decimals });\n\n if (!unit) {\n return '0B';\n }\n\n return `${value}${unit.toUpperCase()}`;\n}\n"],"names":["formatBytes","receivedBytes","decimals","realBytes","Number","value","unit","byteSize","precision","toUpperCase"],"mappings":";;AAEO,SAASA,WAAAA,CAAYC,aAA8B,EAAEC,WAAW,CAAC,EAAA;AACtE,IAAA,MAAMC,SAAY,GAAA,OAAOF,aAAkB,KAAA,QAAA,GAAWG,OAAOH,aAAiBA,CAAAA,GAAAA,aAAAA;IAC9E,MAAM,EAAEI,KAAK,EAAEC,IAAI,EAAE,GAAGC,QAAAA,CAASJ,YAAY,IAAM,EAAA;QAAEK,SAAWN,EAAAA;AAAS,KAAA,CAAA;AAEzE,IAAA,IAAI,CAACI,IAAM,EAAA;QACT,OAAO,IAAA;AACT;AAEA,IAAA,OAAO,CAAC,EAAED,KAAAA,CAAM,EAAEC,IAAKG,CAAAA,WAAW,GAAG,CAAC;AACxC;;;;"}

View File

@@ -0,0 +1,15 @@
'use strict';
var dateFns = require('date-fns');
const zeroPad = (num)=>String(num).padStart(2, '0');
const formatDuration = (durationInSecond)=>{
const duration = dateFns.intervalToDuration({
start: 0,
end: durationInSecond * 1000
});
return `${zeroPad(duration.hours)}:${zeroPad(duration.minutes)}:${zeroPad(duration.seconds)}`;
};
exports.formatDuration = formatDuration;
//# sourceMappingURL=formatDuration.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"formatDuration.js","sources":["../../../admin/src/utils/formatDuration.ts"],"sourcesContent":["import { intervalToDuration } from 'date-fns';\n\nconst zeroPad = (num?: number) => String(num).padStart(2, '0');\n\nexport const formatDuration = (durationInSecond: number) => {\n const duration = intervalToDuration({ start: 0, end: durationInSecond * 1000 });\n\n return `${zeroPad(duration.hours)}:${zeroPad(duration.minutes)}:${zeroPad(duration.seconds)}`;\n};\n"],"names":["zeroPad","num","String","padStart","formatDuration","durationInSecond","duration","intervalToDuration","start","end","hours","minutes","seconds"],"mappings":";;;;AAEA,MAAMA,UAAU,CAACC,GAAAA,GAAiBC,OAAOD,GAAKE,CAAAA,CAAAA,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA;AAEnD,MAAMC,iBAAiB,CAACC,gBAAAA,GAAAA;AAC7B,IAAA,MAAMC,WAAWC,0BAAmB,CAAA;QAAEC,KAAO,EAAA,CAAA;AAAGC,QAAAA,GAAAA,EAAKJ,gBAAmB,GAAA;AAAK,KAAA,CAAA;AAE7E,IAAA,OAAO,CAAC,EAAEL,OAAAA,CAAQM,SAASI,KAAK,CAAA,CAAE,CAAC,EAAEV,OAAAA,CAAQM,QAASK,CAAAA,OAAO,EAAE,CAAC,EAAEX,QAAQM,QAASM,CAAAA,OAAO,EAAE,CAAC;AAC/F;;;;"}

View File

@@ -0,0 +1,13 @@
import { intervalToDuration } from 'date-fns';
const zeroPad = (num)=>String(num).padStart(2, '0');
const formatDuration = (durationInSecond)=>{
const duration = intervalToDuration({
start: 0,
end: durationInSecond * 1000
});
return `${zeroPad(duration.hours)}:${zeroPad(duration.minutes)}:${zeroPad(duration.seconds)}`;
};
export { formatDuration };
//# sourceMappingURL=formatDuration.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"formatDuration.mjs","sources":["../../../admin/src/utils/formatDuration.ts"],"sourcesContent":["import { intervalToDuration } from 'date-fns';\n\nconst zeroPad = (num?: number) => String(num).padStart(2, '0');\n\nexport const formatDuration = (durationInSecond: number) => {\n const duration = intervalToDuration({ start: 0, end: durationInSecond * 1000 });\n\n return `${zeroPad(duration.hours)}:${zeroPad(duration.minutes)}:${zeroPad(duration.seconds)}`;\n};\n"],"names":["zeroPad","num","String","padStart","formatDuration","durationInSecond","duration","intervalToDuration","start","end","hours","minutes","seconds"],"mappings":";;AAEA,MAAMA,UAAU,CAACC,GAAAA,GAAiBC,OAAOD,GAAKE,CAAAA,CAAAA,QAAQ,CAAC,CAAG,EAAA,GAAA,CAAA;AAEnD,MAAMC,iBAAiB,CAACC,gBAAAA,GAAAA;AAC7B,IAAA,MAAMC,WAAWC,kBAAmB,CAAA;QAAEC,KAAO,EAAA,CAAA;AAAGC,QAAAA,GAAAA,EAAKJ,gBAAmB,GAAA;AAAK,KAAA,CAAA;AAE7E,IAAA,OAAO,CAAC,EAAEL,OAAAA,CAAQM,SAASI,KAAK,CAAA,CAAE,CAAC,EAAEV,OAAAA,CAAQM,QAASK,CAAAA,OAAO,EAAE,CAAC,EAAEX,QAAQM,QAASM,CAAAA,OAAO,EAAE,CAAC;AAC/F;;;;"}

View File

@@ -0,0 +1,26 @@
'use strict';
var normalizeAPIError = require('./normalizeAPIError.js');
/**
*
* Returns a normalized error message
*
*/ function getAPIInnerErrors(error, { getTrad }) {
const normalizedError = normalizeAPIError.normalizeAPIError(error, getTrad);
if (normalizedError && 'errors' in normalizedError) {
return normalizedError.errors.reduce((acc, error)=>{
if ('path' in error.values) {
acc[error.values.path] = {
id: error.id,
defaultMessage: error.defaultMessage
};
}
return acc;
}, {});
}
return normalizedError?.defaultMessage;
}
exports.getAPIInnerErrors = getAPIInnerErrors;
//# sourceMappingURL=getAPIInnerErrors.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getAPIInnerErrors.js","sources":["../../../admin/src/utils/getAPIInnerErrors.ts"],"sourcesContent":["import { normalizeAPIError } from './normalizeAPIError';\n\nimport type { FetchError } from '@strapi/admin/strapi-admin';\nimport type { MessageDescriptor } from 'react-intl';\n\ntype GetAPIInnerErrorsReturn = {\n [key: string]: MessageDescriptor;\n};\n\n/**\n *\n * Returns a normalized error message\n *\n */\nexport function getAPIInnerErrors(\n error: FetchError,\n { getTrad }: { getTrad: (key: string) => string }\n) {\n const normalizedError = normalizeAPIError(error, getTrad);\n\n if (normalizedError && 'errors' in normalizedError) {\n return normalizedError.errors.reduce<GetAPIInnerErrorsReturn>((acc, error) => {\n if ('path' in error.values) {\n acc[error.values.path] = {\n id: error.id,\n defaultMessage: error.defaultMessage,\n };\n }\n\n return acc;\n }, {});\n }\n\n return normalizedError?.defaultMessage;\n}\n"],"names":["getAPIInnerErrors","error","getTrad","normalizedError","normalizeAPIError","errors","reduce","acc","values","path","id","defaultMessage"],"mappings":";;;;AASA;;;;AAIC,IACM,SAASA,iBAAAA,CACdC,KAAiB,EACjB,EAAEC,OAAO,EAAwC,EAAA;IAEjD,MAAMC,eAAAA,GAAkBC,oCAAkBH,KAAOC,EAAAA,OAAAA,CAAAA;IAEjD,IAAIC,eAAAA,IAAmB,YAAYA,eAAiB,EAAA;AAClD,QAAA,OAAOA,gBAAgBE,MAAM,CAACC,MAAM,CAA0B,CAACC,GAAKN,EAAAA,KAAAA,GAAAA;YAClE,IAAI,MAAA,IAAUA,KAAMO,CAAAA,MAAM,EAAE;AAC1BD,gBAAAA,GAAG,CAACN,KAAMO,CAAAA,MAAM,CAACC,IAAI,CAAC,GAAG;AACvBC,oBAAAA,EAAAA,EAAIT,MAAMS,EAAE;AACZC,oBAAAA,cAAAA,EAAgBV,MAAMU;AACxB,iBAAA;AACF;YAEA,OAAOJ,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;AAEA,IAAA,OAAOJ,eAAiBQ,EAAAA,cAAAA;AAC1B;;;;"}

View File

@@ -0,0 +1,24 @@
import { normalizeAPIError } from './normalizeAPIError.mjs';
/**
*
* Returns a normalized error message
*
*/ function getAPIInnerErrors(error, { getTrad }) {
const normalizedError = normalizeAPIError(error, getTrad);
if (normalizedError && 'errors' in normalizedError) {
return normalizedError.errors.reduce((acc, error)=>{
if ('path' in error.values) {
acc[error.values.path] = {
id: error.id,
defaultMessage: error.defaultMessage
};
}
return acc;
}, {});
}
return normalizedError?.defaultMessage;
}
export { getAPIInnerErrors };
//# sourceMappingURL=getAPIInnerErrors.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getAPIInnerErrors.mjs","sources":["../../../admin/src/utils/getAPIInnerErrors.ts"],"sourcesContent":["import { normalizeAPIError } from './normalizeAPIError';\n\nimport type { FetchError } from '@strapi/admin/strapi-admin';\nimport type { MessageDescriptor } from 'react-intl';\n\ntype GetAPIInnerErrorsReturn = {\n [key: string]: MessageDescriptor;\n};\n\n/**\n *\n * Returns a normalized error message\n *\n */\nexport function getAPIInnerErrors(\n error: FetchError,\n { getTrad }: { getTrad: (key: string) => string }\n) {\n const normalizedError = normalizeAPIError(error, getTrad);\n\n if (normalizedError && 'errors' in normalizedError) {\n return normalizedError.errors.reduce<GetAPIInnerErrorsReturn>((acc, error) => {\n if ('path' in error.values) {\n acc[error.values.path] = {\n id: error.id,\n defaultMessage: error.defaultMessage,\n };\n }\n\n return acc;\n }, {});\n }\n\n return normalizedError?.defaultMessage;\n}\n"],"names":["getAPIInnerErrors","error","getTrad","normalizedError","normalizeAPIError","errors","reduce","acc","values","path","id","defaultMessage"],"mappings":";;AASA;;;;AAIC,IACM,SAASA,iBAAAA,CACdC,KAAiB,EACjB,EAAEC,OAAO,EAAwC,EAAA;IAEjD,MAAMC,eAAAA,GAAkBC,kBAAkBH,KAAOC,EAAAA,OAAAA,CAAAA;IAEjD,IAAIC,eAAAA,IAAmB,YAAYA,eAAiB,EAAA;AAClD,QAAA,OAAOA,gBAAgBE,MAAM,CAACC,MAAM,CAA0B,CAACC,GAAKN,EAAAA,KAAAA,GAAAA;YAClE,IAAI,MAAA,IAAUA,KAAMO,CAAAA,MAAM,EAAE;AAC1BD,gBAAAA,GAAG,CAACN,KAAMO,CAAAA,MAAM,CAACC,IAAI,CAAC,GAAG;AACvBC,oBAAAA,EAAAA,EAAIT,MAAMS,EAAE;AACZC,oBAAAA,cAAAA,EAAgBV,MAAMU;AACxB,iBAAA;AACF;YAEA,OAAOJ,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;AAEA,IAAA,OAAOJ,eAAiBQ,EAAAA,cAAAA;AAC1B;;;;"}

View File

@@ -0,0 +1,25 @@
'use strict';
var toSingularTypes = require('./toSingularTypes.js');
const getAllowedFiles = (pluralTypes, files)=>{
const singularTypes = toSingularTypes.toSingularTypes(pluralTypes);
const allowedFiles = files.filter((file)=>{
const fileType = file?.mime?.split('/')[0];
if (!fileType) {
return false;
}
if (singularTypes.includes('file') && ![
'video',
'image',
'audio'
].includes(fileType)) {
return true;
}
return singularTypes.includes(fileType);
});
return allowedFiles;
};
exports.getAllowedFiles = getAllowedFiles;
//# sourceMappingURL=getAllowedFiles.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getAllowedFiles.js","sources":["../../../admin/src/utils/getAllowedFiles.ts"],"sourcesContent":["import { toSingularTypes } from './toSingularTypes';\n\nimport type { File } from '../../../shared/contracts/files';\n/**\n * Returns the files that can be added to the media field\n * @param {Object[]} pluralTypes Array of string (allowedTypes)\n * @param {Object[]} files Array of files\n * @returns Object[]\n */\n\nexport interface AllowedFiles extends File {\n documentId: string;\n isSelectable: boolean;\n locale: string | null;\n type: string;\n}\n\nexport const getAllowedFiles = (pluralTypes: string[], files: AllowedFiles[]) => {\n const singularTypes = toSingularTypes(pluralTypes);\n\n const allowedFiles = files.filter((file) => {\n const fileType = file?.mime?.split('/')[0];\n\n if (!fileType) {\n return false;\n }\n\n if (singularTypes.includes('file') && !['video', 'image', 'audio'].includes(fileType)) {\n return true;\n }\n\n return singularTypes.includes(fileType);\n });\n\n return allowedFiles;\n};\n"],"names":["getAllowedFiles","pluralTypes","files","singularTypes","toSingularTypes","allowedFiles","filter","file","fileType","mime","split","includes"],"mappings":";;;;AAiBO,MAAMA,eAAkB,GAAA,CAACC,WAAuBC,EAAAA,KAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,+BAAgBH,CAAAA,WAAAA,CAAAA;AAEtC,IAAA,MAAMI,YAAeH,GAAAA,KAAAA,CAAMI,MAAM,CAAC,CAACC,IAAAA,GAAAA;AACjC,QAAA,MAAMC,WAAWD,IAAME,EAAAA,IAAAA,EAAMC,KAAM,CAAA,GAAA,CAAI,CAAC,CAAE,CAAA;AAE1C,QAAA,IAAI,CAACF,QAAU,EAAA;YACb,OAAO,KAAA;AACT;AAEA,QAAA,IAAIL,aAAcQ,CAAAA,QAAQ,CAAC,MAAA,CAAA,IAAW,CAAC;AAAC,YAAA,OAAA;AAAS,YAAA,OAAA;AAAS,YAAA;SAAQ,CAACA,QAAQ,CAACH,QAAW,CAAA,EAAA;YACrF,OAAO,IAAA;AACT;QAEA,OAAOL,aAAAA,CAAcQ,QAAQ,CAACH,QAAAA,CAAAA;AAChC,KAAA,CAAA;IAEA,OAAOH,YAAAA;AACT;;;;"}

View File

@@ -0,0 +1,23 @@
import { toSingularTypes } from './toSingularTypes.mjs';
const getAllowedFiles = (pluralTypes, files)=>{
const singularTypes = toSingularTypes(pluralTypes);
const allowedFiles = files.filter((file)=>{
const fileType = file?.mime?.split('/')[0];
if (!fileType) {
return false;
}
if (singularTypes.includes('file') && ![
'video',
'image',
'audio'
].includes(fileType)) {
return true;
}
return singularTypes.includes(fileType);
});
return allowedFiles;
};
export { getAllowedFiles };
//# sourceMappingURL=getAllowedFiles.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getAllowedFiles.mjs","sources":["../../../admin/src/utils/getAllowedFiles.ts"],"sourcesContent":["import { toSingularTypes } from './toSingularTypes';\n\nimport type { File } from '../../../shared/contracts/files';\n/**\n * Returns the files that can be added to the media field\n * @param {Object[]} pluralTypes Array of string (allowedTypes)\n * @param {Object[]} files Array of files\n * @returns Object[]\n */\n\nexport interface AllowedFiles extends File {\n documentId: string;\n isSelectable: boolean;\n locale: string | null;\n type: string;\n}\n\nexport const getAllowedFiles = (pluralTypes: string[], files: AllowedFiles[]) => {\n const singularTypes = toSingularTypes(pluralTypes);\n\n const allowedFiles = files.filter((file) => {\n const fileType = file?.mime?.split('/')[0];\n\n if (!fileType) {\n return false;\n }\n\n if (singularTypes.includes('file') && !['video', 'image', 'audio'].includes(fileType)) {\n return true;\n }\n\n return singularTypes.includes(fileType);\n });\n\n return allowedFiles;\n};\n"],"names":["getAllowedFiles","pluralTypes","files","singularTypes","toSingularTypes","allowedFiles","filter","file","fileType","mime","split","includes"],"mappings":";;AAiBO,MAAMA,eAAkB,GAAA,CAACC,WAAuBC,EAAAA,KAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,eAAgBH,CAAAA,WAAAA,CAAAA;AAEtC,IAAA,MAAMI,YAAeH,GAAAA,KAAAA,CAAMI,MAAM,CAAC,CAACC,IAAAA,GAAAA;AACjC,QAAA,MAAMC,WAAWD,IAAME,EAAAA,IAAAA,EAAMC,KAAM,CAAA,GAAA,CAAI,CAAC,CAAE,CAAA;AAE1C,QAAA,IAAI,CAACF,QAAU,EAAA;YACb,OAAO,KAAA;AACT;AAEA,QAAA,IAAIL,aAAcQ,CAAAA,QAAQ,CAAC,MAAA,CAAA,IAAW,CAAC;AAAC,YAAA,OAAA;AAAS,YAAA,OAAA;AAAS,YAAA;SAAQ,CAACA,QAAQ,CAACH,QAAW,CAAA,EAAA;YACrF,OAAO,IAAA;AACT;QAEA,OAAOL,aAAAA,CAAcQ,QAAQ,CAACH,QAAAA,CAAAA;AAChC,KAAA,CAAA;IAEA,OAAOH,YAAAA;AACT;;;;"}

View File

@@ -0,0 +1,36 @@
'use strict';
var getTrad = require('./getTrad.js');
const getBreadcrumbDataCM = (folder)=>{
const data = [
{
id: null,
label: {
id: getTrad.getTrad('plugin.name'),
defaultMessage: 'Media Library'
}
}
];
if (folder?.parent?.parent) {
data.push([]);
}
if (folder?.parent) {
data.push({
id: folder.parent.id,
label: folder.parent.name,
path: folder.parent.path
});
}
if (folder) {
data.push({
id: folder.id,
label: folder.name,
path: folder.path
});
}
return data;
};
exports.getBreadcrumbDataCM = getBreadcrumbDataCM;
//# sourceMappingURL=getBreadcrumbDataCM.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getBreadcrumbDataCM.js","sources":["../../../admin/src/utils/getBreadcrumbDataCM.ts"],"sourcesContent":["import { getTrad } from './getTrad';\n\nimport type { Folder } from '../../../shared/contracts/folders';\nimport type { MessageDescriptor } from 'react-intl';\n\nexport interface BreadcrumbDataFolder extends Omit<Folder, 'children' | 'files' | 'parent'> {\n parent?: BreadcrumbDataFolder;\n children?: {\n count: number;\n };\n files?: {\n count: number;\n };\n}\n\ninterface BreadcrumbItem {\n id?: number | null;\n label?: MessageDescriptor | string;\n path?: string;\n}\n\ntype BreadcrumbData = BreadcrumbItem | [];\n\nexport const getBreadcrumbDataCM = (folder: BreadcrumbDataFolder | null) => {\n const data: BreadcrumbData[] = [\n {\n id: null,\n label: { id: getTrad('plugin.name'), defaultMessage: 'Media Library' },\n },\n ];\n\n if (folder?.parent?.parent) {\n data.push([]);\n }\n\n if (folder?.parent) {\n data.push({\n id: folder.parent.id,\n label: folder.parent.name,\n path: folder.parent.path,\n });\n }\n\n if (folder) {\n data.push({\n id: folder.id,\n label: folder.name,\n path: folder.path,\n });\n }\n\n return data;\n};\n"],"names":["getBreadcrumbDataCM","folder","data","id","label","getTrad","defaultMessage","parent","push","name","path"],"mappings":";;;;AAuBO,MAAMA,sBAAsB,CAACC,MAAAA,GAAAA;AAClC,IAAA,MAAMC,IAAyB,GAAA;AAC7B,QAAA;YACEC,EAAI,EAAA,IAAA;YACJC,KAAO,EAAA;AAAED,gBAAAA,EAAAA,EAAIE,eAAQ,CAAA,aAAA,CAAA;gBAAgBC,cAAgB,EAAA;AAAgB;AACvE;AACD,KAAA;IAED,IAAIL,MAAAA,EAAQM,QAAQA,MAAQ,EAAA;QAC1BL,IAAKM,CAAAA,IAAI,CAAC,EAAE,CAAA;AACd;AAEA,IAAA,IAAIP,QAAQM,MAAQ,EAAA;AAClBL,QAAAA,IAAAA,CAAKM,IAAI,CAAC;YACRL,EAAIF,EAAAA,MAAAA,CAAOM,MAAM,CAACJ,EAAE;YACpBC,KAAOH,EAAAA,MAAAA,CAAOM,MAAM,CAACE,IAAI;YACzBC,IAAMT,EAAAA,MAAAA,CAAOM,MAAM,CAACG;AACtB,SAAA,CAAA;AACF;AAEA,IAAA,IAAIT,MAAQ,EAAA;AACVC,QAAAA,IAAAA,CAAKM,IAAI,CAAC;AACRL,YAAAA,EAAAA,EAAIF,OAAOE,EAAE;AACbC,YAAAA,KAAAA,EAAOH,OAAOQ,IAAI;AAClBC,YAAAA,IAAAA,EAAMT,OAAOS;AACf,SAAA,CAAA;AACF;IAEA,OAAOR,IAAAA;AACT;;;;"}

View File

@@ -0,0 +1,34 @@
import { getTrad } from './getTrad.mjs';
const getBreadcrumbDataCM = (folder)=>{
const data = [
{
id: null,
label: {
id: getTrad('plugin.name'),
defaultMessage: 'Media Library'
}
}
];
if (folder?.parent?.parent) {
data.push([]);
}
if (folder?.parent) {
data.push({
id: folder.parent.id,
label: folder.parent.name,
path: folder.parent.path
});
}
if (folder) {
data.push({
id: folder.id,
label: folder.name,
path: folder.path
});
}
return data;
};
export { getBreadcrumbDataCM };
//# sourceMappingURL=getBreadcrumbDataCM.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getBreadcrumbDataCM.mjs","sources":["../../../admin/src/utils/getBreadcrumbDataCM.ts"],"sourcesContent":["import { getTrad } from './getTrad';\n\nimport type { Folder } from '../../../shared/contracts/folders';\nimport type { MessageDescriptor } from 'react-intl';\n\nexport interface BreadcrumbDataFolder extends Omit<Folder, 'children' | 'files' | 'parent'> {\n parent?: BreadcrumbDataFolder;\n children?: {\n count: number;\n };\n files?: {\n count: number;\n };\n}\n\ninterface BreadcrumbItem {\n id?: number | null;\n label?: MessageDescriptor | string;\n path?: string;\n}\n\ntype BreadcrumbData = BreadcrumbItem | [];\n\nexport const getBreadcrumbDataCM = (folder: BreadcrumbDataFolder | null) => {\n const data: BreadcrumbData[] = [\n {\n id: null,\n label: { id: getTrad('plugin.name'), defaultMessage: 'Media Library' },\n },\n ];\n\n if (folder?.parent?.parent) {\n data.push([]);\n }\n\n if (folder?.parent) {\n data.push({\n id: folder.parent.id,\n label: folder.parent.name,\n path: folder.parent.path,\n });\n }\n\n if (folder) {\n data.push({\n id: folder.id,\n label: folder.name,\n path: folder.path,\n });\n }\n\n return data;\n};\n"],"names":["getBreadcrumbDataCM","folder","data","id","label","getTrad","defaultMessage","parent","push","name","path"],"mappings":";;AAuBO,MAAMA,sBAAsB,CAACC,MAAAA,GAAAA;AAClC,IAAA,MAAMC,IAAyB,GAAA;AAC7B,QAAA;YACEC,EAAI,EAAA,IAAA;YACJC,KAAO,EAAA;AAAED,gBAAAA,EAAAA,EAAIE,OAAQ,CAAA,aAAA,CAAA;gBAAgBC,cAAgB,EAAA;AAAgB;AACvE;AACD,KAAA;IAED,IAAIL,MAAAA,EAAQM,QAAQA,MAAQ,EAAA;QAC1BL,IAAKM,CAAAA,IAAI,CAAC,EAAE,CAAA;AACd;AAEA,IAAA,IAAIP,QAAQM,MAAQ,EAAA;AAClBL,QAAAA,IAAAA,CAAKM,IAAI,CAAC;YACRL,EAAIF,EAAAA,MAAAA,CAAOM,MAAM,CAACJ,EAAE;YACpBC,KAAOH,EAAAA,MAAAA,CAAOM,MAAM,CAACE,IAAI;YACzBC,IAAMT,EAAAA,MAAAA,CAAOM,MAAM,CAACG;AACtB,SAAA,CAAA;AACF;AAEA,IAAA,IAAIT,MAAQ,EAAA;AACVC,QAAAA,IAAAA,CAAKM,IAAI,CAAC;AACRL,YAAAA,EAAAA,EAAIF,OAAOE,EAAE;AACbC,YAAAA,KAAAA,EAAOH,OAAOQ,IAAI;AAClBC,YAAAA,IAAAA,EAAMT,OAAOS;AACf,SAAA,CAAA;AACF;IAEA,OAAOR,IAAAA;AACT;;;;"}

View File

@@ -0,0 +1,40 @@
'use strict';
var getFolderURL = require('./getFolderURL.js');
var getTrad = require('./getTrad.js');
const getBreadcrumbDataML = (folder, { pathname, query })=>{
const data = [
{
id: null,
label: {
id: getTrad.getTrad('plugin.name'),
defaultMessage: 'Media Library'
},
href: folder ? getFolderURL.getFolderURL(pathname, query || {}) : undefined
}
];
if (folder?.parent && typeof folder?.parent !== 'number' && folder?.parent?.parent) {
data.push([]);
}
if (folder?.parent && typeof folder.parent !== 'number') {
data.push({
id: folder.parent.id,
label: folder.parent.name,
href: getFolderURL.getFolderURL(pathname, query || {}, {
folder: folder.parent.id?.toString(),
folderPath: folder.parent.path
})
});
}
if (folder) {
data.push({
id: folder.id,
label: folder.name
});
}
return data;
};
exports.getBreadcrumbDataML = getBreadcrumbDataML;
//# sourceMappingURL=getBreadcrumbDataML.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getBreadcrumbDataML.js","sources":["../../../admin/src/utils/getBreadcrumbDataML.ts"],"sourcesContent":["import { getFolderURL } from './getFolderURL';\nimport { getTrad } from './getTrad';\n\nimport type { Query } from '../../../shared/contracts/files';\nimport type { Folder } from '../../../shared/contracts/folders';\nimport type { MessageDescriptor } from 'react-intl';\n\ninterface GetBreadcrumbDataMLProps {\n folder: Folder;\n options: {\n pathname: string;\n query?: Query;\n };\n}\n\ninterface GetBreadcrumbDataMLReturn {\n id: number | null;\n label: string | MessageDescriptor;\n href?: string;\n}\n\ntype BreadcrumbData = GetBreadcrumbDataMLReturn | [];\n\nexport const getBreadcrumbDataML = (\n folder: GetBreadcrumbDataMLProps['folder'] | null,\n { pathname, query }: GetBreadcrumbDataMLProps['options']\n) => {\n const data: BreadcrumbData[] = [\n {\n id: null,\n label: { id: getTrad('plugin.name'), defaultMessage: 'Media Library' },\n href: folder ? getFolderURL(pathname, query || {}) : undefined,\n },\n ];\n\n if (folder?.parent && typeof folder?.parent !== 'number' && folder?.parent?.parent) {\n data.push([]);\n }\n\n if (folder?.parent && typeof folder.parent !== 'number') {\n data.push({\n id: folder.parent.id,\n label: folder.parent.name,\n href: getFolderURL(pathname, query || {}, {\n folder: folder.parent.id?.toString(),\n folderPath: folder.parent.path,\n }),\n });\n }\n\n if (folder) {\n data.push({\n id: folder.id,\n label: folder.name,\n });\n }\n\n return data;\n};\n"],"names":["getBreadcrumbDataML","folder","pathname","query","data","id","label","getTrad","defaultMessage","href","getFolderURL","undefined","parent","push","name","toString","folderPath","path"],"mappings":";;;;;AAuBO,MAAMA,sBAAsB,CACjCC,MAAAA,EACA,EAAEC,QAAQ,EAAEC,KAAK,EAAuC,GAAA;AAExD,IAAA,MAAMC,IAAyB,GAAA;AAC7B,QAAA;YACEC,EAAI,EAAA,IAAA;YACJC,KAAO,EAAA;AAAED,gBAAAA,EAAAA,EAAIE,eAAQ,CAAA,aAAA,CAAA;gBAAgBC,cAAgB,EAAA;AAAgB,aAAA;AACrEC,YAAAA,IAAAA,EAAMR,MAASS,GAAAA,yBAAAA,CAAaR,QAAUC,EAAAA,KAAAA,IAAS,EAAMQ,CAAAA,GAAAA;AACvD;AACD,KAAA;IAED,IAAIV,MAAAA,EAAQW,UAAU,OAAOX,MAAAA,EAAQW,WAAW,QAAYX,IAAAA,MAAAA,EAAQW,QAAQA,MAAQ,EAAA;QAClFR,IAAKS,CAAAA,IAAI,CAAC,EAAE,CAAA;AACd;AAEA,IAAA,IAAIZ,QAAQW,MAAU,IAAA,OAAOX,MAAOW,CAAAA,MAAM,KAAK,QAAU,EAAA;AACvDR,QAAAA,IAAAA,CAAKS,IAAI,CAAC;YACRR,EAAIJ,EAAAA,MAAAA,CAAOW,MAAM,CAACP,EAAE;YACpBC,KAAOL,EAAAA,MAAAA,CAAOW,MAAM,CAACE,IAAI;AACzBL,YAAAA,IAAAA,EAAMC,yBAAaR,CAAAA,QAAAA,EAAUC,KAAS,IAAA,EAAI,EAAA;AACxCF,gBAAAA,MAAAA,EAAQA,MAAOW,CAAAA,MAAM,CAACP,EAAE,EAAEU,QAAAA,EAAAA;gBAC1BC,UAAYf,EAAAA,MAAAA,CAAOW,MAAM,CAACK;AAC5B,aAAA;AACF,SAAA,CAAA;AACF;AAEA,IAAA,IAAIhB,MAAQ,EAAA;AACVG,QAAAA,IAAAA,CAAKS,IAAI,CAAC;AACRR,YAAAA,EAAAA,EAAIJ,OAAOI,EAAE;AACbC,YAAAA,KAAAA,EAAOL,OAAOa;AAChB,SAAA,CAAA;AACF;IAEA,OAAOV,IAAAA;AACT;;;;"}

View File

@@ -0,0 +1,38 @@
import { getFolderURL } from './getFolderURL.mjs';
import { getTrad } from './getTrad.mjs';
const getBreadcrumbDataML = (folder, { pathname, query })=>{
const data = [
{
id: null,
label: {
id: getTrad('plugin.name'),
defaultMessage: 'Media Library'
},
href: folder ? getFolderURL(pathname, query || {}) : undefined
}
];
if (folder?.parent && typeof folder?.parent !== 'number' && folder?.parent?.parent) {
data.push([]);
}
if (folder?.parent && typeof folder.parent !== 'number') {
data.push({
id: folder.parent.id,
label: folder.parent.name,
href: getFolderURL(pathname, query || {}, {
folder: folder.parent.id?.toString(),
folderPath: folder.parent.path
})
});
}
if (folder) {
data.push({
id: folder.id,
label: folder.name
});
}
return data;
};
export { getBreadcrumbDataML };
//# sourceMappingURL=getBreadcrumbDataML.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getBreadcrumbDataML.mjs","sources":["../../../admin/src/utils/getBreadcrumbDataML.ts"],"sourcesContent":["import { getFolderURL } from './getFolderURL';\nimport { getTrad } from './getTrad';\n\nimport type { Query } from '../../../shared/contracts/files';\nimport type { Folder } from '../../../shared/contracts/folders';\nimport type { MessageDescriptor } from 'react-intl';\n\ninterface GetBreadcrumbDataMLProps {\n folder: Folder;\n options: {\n pathname: string;\n query?: Query;\n };\n}\n\ninterface GetBreadcrumbDataMLReturn {\n id: number | null;\n label: string | MessageDescriptor;\n href?: string;\n}\n\ntype BreadcrumbData = GetBreadcrumbDataMLReturn | [];\n\nexport const getBreadcrumbDataML = (\n folder: GetBreadcrumbDataMLProps['folder'] | null,\n { pathname, query }: GetBreadcrumbDataMLProps['options']\n) => {\n const data: BreadcrumbData[] = [\n {\n id: null,\n label: { id: getTrad('plugin.name'), defaultMessage: 'Media Library' },\n href: folder ? getFolderURL(pathname, query || {}) : undefined,\n },\n ];\n\n if (folder?.parent && typeof folder?.parent !== 'number' && folder?.parent?.parent) {\n data.push([]);\n }\n\n if (folder?.parent && typeof folder.parent !== 'number') {\n data.push({\n id: folder.parent.id,\n label: folder.parent.name,\n href: getFolderURL(pathname, query || {}, {\n folder: folder.parent.id?.toString(),\n folderPath: folder.parent.path,\n }),\n });\n }\n\n if (folder) {\n data.push({\n id: folder.id,\n label: folder.name,\n });\n }\n\n return data;\n};\n"],"names":["getBreadcrumbDataML","folder","pathname","query","data","id","label","getTrad","defaultMessage","href","getFolderURL","undefined","parent","push","name","toString","folderPath","path"],"mappings":";;;AAuBO,MAAMA,sBAAsB,CACjCC,MAAAA,EACA,EAAEC,QAAQ,EAAEC,KAAK,EAAuC,GAAA;AAExD,IAAA,MAAMC,IAAyB,GAAA;AAC7B,QAAA;YACEC,EAAI,EAAA,IAAA;YACJC,KAAO,EAAA;AAAED,gBAAAA,EAAAA,EAAIE,OAAQ,CAAA,aAAA,CAAA;gBAAgBC,cAAgB,EAAA;AAAgB,aAAA;AACrEC,YAAAA,IAAAA,EAAMR,MAASS,GAAAA,YAAAA,CAAaR,QAAUC,EAAAA,KAAAA,IAAS,EAAMQ,CAAAA,GAAAA;AACvD;AACD,KAAA;IAED,IAAIV,MAAAA,EAAQW,UAAU,OAAOX,MAAAA,EAAQW,WAAW,QAAYX,IAAAA,MAAAA,EAAQW,QAAQA,MAAQ,EAAA;QAClFR,IAAKS,CAAAA,IAAI,CAAC,EAAE,CAAA;AACd;AAEA,IAAA,IAAIZ,QAAQW,MAAU,IAAA,OAAOX,MAAOW,CAAAA,MAAM,KAAK,QAAU,EAAA;AACvDR,QAAAA,IAAAA,CAAKS,IAAI,CAAC;YACRR,EAAIJ,EAAAA,MAAAA,CAAOW,MAAM,CAACP,EAAE;YACpBC,KAAOL,EAAAA,MAAAA,CAAOW,MAAM,CAACE,IAAI;AACzBL,YAAAA,IAAAA,EAAMC,YAAaR,CAAAA,QAAAA,EAAUC,KAAS,IAAA,EAAI,EAAA;AACxCF,gBAAAA,MAAAA,EAAQA,MAAOW,CAAAA,MAAM,CAACP,EAAE,EAAEU,QAAAA,EAAAA;gBAC1BC,UAAYf,EAAAA,MAAAA,CAAOW,MAAM,CAACK;AAC5B,aAAA;AACF,SAAA,CAAA;AACF;AAEA,IAAA,IAAIhB,MAAQ,EAAA;AACVG,QAAAA,IAAAA,CAAKS,IAAI,CAAC;AACRR,YAAAA,EAAAA,EAAIJ,OAAOI,EAAE;AACbC,YAAAA,KAAAA,EAAOL,OAAOa;AAChB,SAAA,CAAA;AACF;IAEA,OAAOV,IAAAA;AACT;;;;"}

View File

@@ -0,0 +1,6 @@
'use strict';
const getFileExtension = (ext)=>ext && ext[0] === '.' ? ext.substring(1) : ext;
exports.getFileExtension = getFileExtension;
//# sourceMappingURL=getFileExtension.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFileExtension.js","sources":["../../../admin/src/utils/getFileExtension.ts"],"sourcesContent":["export const getFileExtension = (ext?: string | null) =>\n ext && ext[0] === '.' ? ext.substring(1) : ext;\n"],"names":["getFileExtension","ext","substring"],"mappings":";;AAAaA,MAAAA,gBAAAA,GAAmB,CAACC,GAAAA,GAC/BA,OAAOA,GAAG,CAAC,CAAE,CAAA,KAAK,GAAMA,GAAAA,GAAAA,CAAIC,SAAS,CAAC,KAAKD;;;;"}

View File

@@ -0,0 +1,4 @@
const getFileExtension = (ext)=>ext && ext[0] === '.' ? ext.substring(1) : ext;
export { getFileExtension };
//# sourceMappingURL=getFileExtension.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFileExtension.mjs","sources":["../../../admin/src/utils/getFileExtension.ts"],"sourcesContent":["export const getFileExtension = (ext?: string | null) =>\n ext && ext[0] === '.' ? ext.substring(1) : ext;\n"],"names":["getFileExtension","ext","substring"],"mappings":"AAAaA,MAAAA,gBAAAA,GAAmB,CAACC,GAAAA,GAC/BA,OAAOA,GAAG,CAAC,CAAE,CAAA,KAAK,GAAMA,GAAAA,GAAAA,CAAIC,SAAS,CAAC,KAAKD;;;;"}

View File

@@ -0,0 +1,26 @@
'use strict';
var flattenTree = require('../components/SelectTree/utils/flattenTree.js');
const getFolderParents = (folders, currentFolderId)=>{
const parents = [];
const flatFolders = flattenTree.flattenTree(folders);
const currentFolder = flatFolders.find((folder)=>folder.value === currentFolderId);
if (!currentFolder) {
return [];
}
let { parent } = currentFolder;
while(parent !== undefined){
// eslint-disable-next-line no-loop-func
const parentToStore = flatFolders.find(({ value })=>value === parent);
parents.push({
id: parentToStore?.value,
label: parentToStore?.label
});
parent = parentToStore?.parent;
}
return parents.reverse();
};
exports.getFolderParents = getFolderParents;
//# sourceMappingURL=getFolderParents.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFolderParents.js","sources":["../../../admin/src/utils/getFolderParents.ts"],"sourcesContent":["import { flattenTree } from '../components/SelectTree/utils/flattenTree';\n\nimport type { FolderNode } from '../../../shared/contracts/folders';\n\ninterface FolderStructureValue extends Omit<FolderNode, 'children'> {\n value: string | number | null;\n children?: FolderStructureValue[];\n}\n\ntype Parents = { id?: number | string | null; label?: string; path?: string }[];\n\nexport const getFolderParents = (folders: FolderStructureValue[], currentFolderId: number) => {\n const parents: Parents = [];\n const flatFolders = flattenTree(folders);\n const currentFolder = flatFolders.find((folder) => folder.value === currentFolderId);\n\n if (!currentFolder) {\n return [];\n }\n\n let { parent } = currentFolder;\n\n while (parent !== undefined) {\n // eslint-disable-next-line no-loop-func\n const parentToStore = flatFolders.find(({ value }) => value === parent);\n parents.push({ id: parentToStore?.value, label: parentToStore?.label });\n parent = parentToStore?.parent;\n }\n\n return parents.reverse();\n};\n"],"names":["getFolderParents","folders","currentFolderId","parents","flatFolders","flattenTree","currentFolder","find","folder","value","parent","undefined","parentToStore","push","id","label","reverse"],"mappings":";;;;AAWO,MAAMA,gBAAmB,GAAA,CAACC,OAAiCC,EAAAA,eAAAA,GAAAA;AAChE,IAAA,MAAMC,UAAmB,EAAE;AAC3B,IAAA,MAAMC,cAAcC,uBAAYJ,CAAAA,OAAAA,CAAAA;IAChC,MAAMK,aAAAA,GAAgBF,YAAYG,IAAI,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,KAAK,KAAKP,eAAAA,CAAAA;AAEpE,IAAA,IAAI,CAACI,aAAe,EAAA;AAClB,QAAA,OAAO,EAAE;AACX;IAEA,IAAI,EAAEI,MAAM,EAAE,GAAGJ,aAAAA;AAEjB,IAAA,MAAOI,WAAWC,SAAW,CAAA;;QAE3B,MAAMC,aAAAA,GAAgBR,YAAYG,IAAI,CAAC,CAAC,EAAEE,KAAK,EAAE,GAAKA,KAAUC,KAAAA,MAAAA,CAAAA;AAChEP,QAAAA,OAAAA,CAAQU,IAAI,CAAC;AAAEC,YAAAA,EAAAA,EAAIF,aAAeH,EAAAA,KAAAA;AAAOM,YAAAA,KAAAA,EAAOH,aAAeG,EAAAA;AAAM,SAAA,CAAA;AACrEL,QAAAA,MAAAA,GAASE,aAAeF,EAAAA,MAAAA;AAC1B;AAEA,IAAA,OAAOP,QAAQa,OAAO,EAAA;AACxB;;;;"}

View File

@@ -0,0 +1,24 @@
import { flattenTree } from '../components/SelectTree/utils/flattenTree.mjs';
const getFolderParents = (folders, currentFolderId)=>{
const parents = [];
const flatFolders = flattenTree(folders);
const currentFolder = flatFolders.find((folder)=>folder.value === currentFolderId);
if (!currentFolder) {
return [];
}
let { parent } = currentFolder;
while(parent !== undefined){
// eslint-disable-next-line no-loop-func
const parentToStore = flatFolders.find(({ value })=>value === parent);
parents.push({
id: parentToStore?.value,
label: parentToStore?.label
});
parent = parentToStore?.parent;
}
return parents.reverse();
};
export { getFolderParents };
//# sourceMappingURL=getFolderParents.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFolderParents.mjs","sources":["../../../admin/src/utils/getFolderParents.ts"],"sourcesContent":["import { flattenTree } from '../components/SelectTree/utils/flattenTree';\n\nimport type { FolderNode } from '../../../shared/contracts/folders';\n\ninterface FolderStructureValue extends Omit<FolderNode, 'children'> {\n value: string | number | null;\n children?: FolderStructureValue[];\n}\n\ntype Parents = { id?: number | string | null; label?: string; path?: string }[];\n\nexport const getFolderParents = (folders: FolderStructureValue[], currentFolderId: number) => {\n const parents: Parents = [];\n const flatFolders = flattenTree(folders);\n const currentFolder = flatFolders.find((folder) => folder.value === currentFolderId);\n\n if (!currentFolder) {\n return [];\n }\n\n let { parent } = currentFolder;\n\n while (parent !== undefined) {\n // eslint-disable-next-line no-loop-func\n const parentToStore = flatFolders.find(({ value }) => value === parent);\n parents.push({ id: parentToStore?.value, label: parentToStore?.label });\n parent = parentToStore?.parent;\n }\n\n return parents.reverse();\n};\n"],"names":["getFolderParents","folders","currentFolderId","parents","flatFolders","flattenTree","currentFolder","find","folder","value","parent","undefined","parentToStore","push","id","label","reverse"],"mappings":";;AAWO,MAAMA,gBAAmB,GAAA,CAACC,OAAiCC,EAAAA,eAAAA,GAAAA;AAChE,IAAA,MAAMC,UAAmB,EAAE;AAC3B,IAAA,MAAMC,cAAcC,WAAYJ,CAAAA,OAAAA,CAAAA;IAChC,MAAMK,aAAAA,GAAgBF,YAAYG,IAAI,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,KAAK,KAAKP,eAAAA,CAAAA;AAEpE,IAAA,IAAI,CAACI,aAAe,EAAA;AAClB,QAAA,OAAO,EAAE;AACX;IAEA,IAAI,EAAEI,MAAM,EAAE,GAAGJ,aAAAA;AAEjB,IAAA,MAAOI,WAAWC,SAAW,CAAA;;QAE3B,MAAMC,aAAAA,GAAgBR,YAAYG,IAAI,CAAC,CAAC,EAAEE,KAAK,EAAE,GAAKA,KAAUC,KAAAA,MAAAA,CAAAA;AAChEP,QAAAA,OAAAA,CAAQU,IAAI,CAAC;AAAEC,YAAAA,EAAAA,EAAIF,aAAeH,EAAAA,KAAAA;AAAOM,YAAAA,KAAAA,EAAOH,aAAeG,EAAAA;AAAM,SAAA,CAAA;AACrEL,QAAAA,MAAAA,GAASE,aAAeF,EAAAA,MAAAA;AAC1B;AAEA,IAAA,OAAOP,QAAQa,OAAO,EAAA;AACxB;;;;"}

View File

@@ -0,0 +1,20 @@
'use strict';
var qs = require('qs');
const getFolderURL = (pathname, currentQuery, { folder, folderPath } = {})=>{
const { _q, ...queryParamsWithoutQ } = currentQuery;
const queryParamsString = qs.stringify({
...queryParamsWithoutQ,
folder,
folderPath
}, {
encode: false
});
// Search query will always fetch the same results
// we remove it here to allow navigating in a folder and see the result of this navigation
return `${pathname}${queryParamsString ? `?${queryParamsString}` : ''}`;
};
exports.getFolderURL = getFolderURL;
//# sourceMappingURL=getFolderURL.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFolderURL.js","sources":["../../../admin/src/utils/getFolderURL.ts"],"sourcesContent":["import { stringify } from 'qs';\n\nimport type { Query } from '../../../shared/contracts/files';\n\nexport const getFolderURL = (\n pathname: string,\n currentQuery: Query,\n { folder, folderPath }: { folder?: string; folderPath?: string } = {}\n) => {\n const { _q, ...queryParamsWithoutQ } = currentQuery;\n const queryParamsString = stringify(\n {\n ...queryParamsWithoutQ,\n folder,\n folderPath,\n },\n { encode: false }\n );\n\n // Search query will always fetch the same results\n // we remove it here to allow navigating in a folder and see the result of this navigation\n return `${pathname}${queryParamsString ? `?${queryParamsString}` : ''}`;\n};\n"],"names":["getFolderURL","pathname","currentQuery","folder","folderPath","_q","queryParamsWithoutQ","queryParamsString","stringify","encode"],"mappings":";;;;AAIaA,MAAAA,YAAAA,GAAe,CAC1BC,QAAAA,EACAC,YACA,EAAA,EAAEC,MAAM,EAAEC,UAAU,EAA4C,GAAG,EAAE,GAAA;AAErE,IAAA,MAAM,EAAEC,EAAE,EAAE,GAAGC,qBAAqB,GAAGJ,YAAAA;AACvC,IAAA,MAAMK,oBAAoBC,YACxB,CAAA;AACE,QAAA,GAAGF,mBAAmB;AACtBH,QAAAA,MAAAA;AACAC,QAAAA;KAEF,EAAA;QAAEK,MAAQ,EAAA;AAAM,KAAA,CAAA;;;AAKlB,IAAA,OAAO,CAAC,EAAER,QAAS,CAAA,EAAEM,iBAAoB,GAAA,CAAC,CAAC,EAAEA,iBAAkB,CAAA,CAAC,GAAG,EAAA,CAAG,CAAC;AACzE;;;;"}

View File

@@ -0,0 +1,18 @@
import { stringify } from 'qs';
const getFolderURL = (pathname, currentQuery, { folder, folderPath } = {})=>{
const { _q, ...queryParamsWithoutQ } = currentQuery;
const queryParamsString = stringify({
...queryParamsWithoutQ,
folder,
folderPath
}, {
encode: false
});
// Search query will always fetch the same results
// we remove it here to allow navigating in a folder and see the result of this navigation
return `${pathname}${queryParamsString ? `?${queryParamsString}` : ''}`;
};
export { getFolderURL };
//# sourceMappingURL=getFolderURL.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getFolderURL.mjs","sources":["../../../admin/src/utils/getFolderURL.ts"],"sourcesContent":["import { stringify } from 'qs';\n\nimport type { Query } from '../../../shared/contracts/files';\n\nexport const getFolderURL = (\n pathname: string,\n currentQuery: Query,\n { folder, folderPath }: { folder?: string; folderPath?: string } = {}\n) => {\n const { _q, ...queryParamsWithoutQ } = currentQuery;\n const queryParamsString = stringify(\n {\n ...queryParamsWithoutQ,\n folder,\n folderPath,\n },\n { encode: false }\n );\n\n // Search query will always fetch the same results\n // we remove it here to allow navigating in a folder and see the result of this navigation\n return `${pathname}${queryParamsString ? `?${queryParamsString}` : ''}`;\n};\n"],"names":["getFolderURL","pathname","currentQuery","folder","folderPath","_q","queryParamsWithoutQ","queryParamsString","stringify","encode"],"mappings":";;AAIaA,MAAAA,YAAAA,GAAe,CAC1BC,QAAAA,EACAC,YACA,EAAA,EAAEC,MAAM,EAAEC,UAAU,EAA4C,GAAG,EAAE,GAAA;AAErE,IAAA,MAAM,EAAEC,EAAE,EAAE,GAAGC,qBAAqB,GAAGJ,YAAAA;AACvC,IAAA,MAAMK,oBAAoBC,SACxB,CAAA;AACE,QAAA,GAAGF,mBAAmB;AACtBH,QAAAA,MAAAA;AACAC,QAAAA;KAEF,EAAA;QAAEK,MAAQ,EAAA;AAAM,KAAA,CAAA;;;AAKlB,IAAA,OAAO,CAAC,EAAER,QAAS,CAAA,EAAEM,iBAAoB,GAAA,CAAC,CAAC,EAAEA,iBAAkB,CAAA,CAAC,GAAG,EAAA,CAAG,CAAC;AACzE;;;;"}

View File

@@ -0,0 +1,8 @@
'use strict';
var pluginId = require('../pluginId.js');
const getTrad = (id)=>`${pluginId.pluginId}.${id}`;
exports.getTrad = getTrad;
//# sourceMappingURL=getTrad.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getTrad.js","sources":["../../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["getTrad","id","pluginId"],"mappings":";;;;AAEO,MAAMA,OAAU,GAAA,CAACC,EAAe,GAAA,CAAC,EAAEC,iBAAAA,CAAS,CAAC,EAAED,EAAG,CAAA;;;;"}

View File

@@ -0,0 +1,6 @@
import { pluginId } from '../pluginId.mjs';
const getTrad = (id)=>`${pluginId}.${id}`;
export { getTrad };
//# sourceMappingURL=getTrad.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"getTrad.mjs","sources":["../../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["getTrad","id","pluginId"],"mappings":";;AAEO,MAAMA,OAAU,GAAA,CAACC,EAAe,GAAA,CAAC,EAAEC,QAAAA,CAAS,CAAC,EAAED,EAAG,CAAA;;;;"}

View File

@@ -0,0 +1,16 @@
'use strict';
const move = (array, oldIndex, newIndex)=>{
if (newIndex >= array.length) {
newIndex = array.length - 1;
}
array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);
return array;
};
const moveElement = (array, index, offset)=>{
const newIndex = index + offset;
return move(array, index, newIndex);
};
exports.moveElement = moveElement;
//# sourceMappingURL=moveElement.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"moveElement.js","sources":["../../../admin/src/utils/moveElement.ts"],"sourcesContent":["const move = <T = number>(array: T[], oldIndex: number, newIndex: number) => {\n if (newIndex >= array.length) {\n newIndex = array.length - 1;\n }\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n\n return array;\n};\n\nexport const moveElement = <T = number>(array: T[], index: number, offset: number) => {\n const newIndex = index + offset;\n\n return move(array, index, newIndex);\n};\n"],"names":["move","array","oldIndex","newIndex","length","splice","moveElement","index","offset"],"mappings":";;AAAA,MAAMA,IAAAA,GAAO,CAAaC,KAAAA,EAAYC,QAAkBC,EAAAA,QAAAA,GAAAA;IACtD,IAAIA,QAAAA,IAAYF,KAAMG,CAAAA,MAAM,EAAE;QAC5BD,QAAWF,GAAAA,KAAAA,CAAMG,MAAM,GAAG,CAAA;AAC5B;IACAH,KAAMI,CAAAA,MAAM,CAACF,QAAAA,EAAU,CAAGF,EAAAA,KAAAA,CAAMI,MAAM,CAACH,QAAAA,EAAU,CAAE,CAAA,CAAC,CAAE,CAAA,CAAA;IAEtD,OAAOD,KAAAA;AACT,CAAA;AAEaK,MAAAA,WAAAA,GAAc,CAAaL,KAAAA,EAAYM,KAAeC,EAAAA,MAAAA,GAAAA;AACjE,IAAA,MAAML,WAAWI,KAAQC,GAAAA,MAAAA;IAEzB,OAAOR,IAAAA,CAAKC,OAAOM,KAAOJ,EAAAA,QAAAA,CAAAA;AAC5B;;;;"}

View File

@@ -0,0 +1,14 @@
const move = (array, oldIndex, newIndex)=>{
if (newIndex >= array.length) {
newIndex = array.length - 1;
}
array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);
return array;
};
const moveElement = (array, index, offset)=>{
const newIndex = index + offset;
return move(array, index, newIndex);
};
export { moveElement };
//# sourceMappingURL=moveElement.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"moveElement.mjs","sources":["../../../admin/src/utils/moveElement.ts"],"sourcesContent":["const move = <T = number>(array: T[], oldIndex: number, newIndex: number) => {\n if (newIndex >= array.length) {\n newIndex = array.length - 1;\n }\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n\n return array;\n};\n\nexport const moveElement = <T = number>(array: T[], index: number, offset: number) => {\n const newIndex = index + offset;\n\n return move(array, index, newIndex);\n};\n"],"names":["move","array","oldIndex","newIndex","length","splice","moveElement","index","offset"],"mappings":"AAAA,MAAMA,IAAAA,GAAO,CAAaC,KAAAA,EAAYC,QAAkBC,EAAAA,QAAAA,GAAAA;IACtD,IAAIA,QAAAA,IAAYF,KAAMG,CAAAA,MAAM,EAAE;QAC5BD,QAAWF,GAAAA,KAAAA,CAAMG,MAAM,GAAG,CAAA;AAC5B;IACAH,KAAMI,CAAAA,MAAM,CAACF,QAAAA,EAAU,CAAGF,EAAAA,KAAAA,CAAMI,MAAM,CAACH,QAAAA,EAAU,CAAE,CAAA,CAAC,CAAE,CAAA,CAAA;IAEtD,OAAOD,KAAAA;AACT,CAAA;AAEaK,MAAAA,WAAAA,GAAc,CAAaL,KAAAA,EAAYM,KAAeC,EAAAA,MAAAA,GAAAA;AACjE,IAAA,MAAML,WAAWI,KAAQC,GAAAA,MAAAA;IAEzB,OAAOR,IAAAA,CAAKC,OAAOM,KAAOJ,EAAAA,QAAAA,CAAAA;AAC5B;;;;"}

View File

@@ -0,0 +1,55 @@
'use strict';
function getPrefixedId(message, callback) {
const prefixedMessage = `apiError.${message}`;
// if a prefix function has been passed in it is used to
// prefix the id, e.g. to allow an error message to be
// set only for a localization namespace
if (typeof callback === 'function') {
return callback(prefixedMessage);
}
return prefixedMessage;
}
function normalizeError(error, { name, intlMessagePrefixCallback }) {
const { message } = error;
const normalizedError = {
id: getPrefixedId(message, intlMessagePrefixCallback),
defaultMessage: message,
name: error.name ?? name,
values: {}
};
if ('path' in error) {
normalizedError.values = {
path: error.path.join('.')
};
}
return normalizedError;
}
const validateErrorIsYupValidationError = (err)=>typeof err.details === 'object' && err.details !== null && 'errors' in err.details;
/**
* Normalize the format of `ResponseError`
* in places where the hook `useAPIErrorHandler` can not called
* (e.g. outside of a React component).
*/ function normalizeAPIError(apiError, intlMessagePrefixCallback) {
const error = apiError.response?.data.error;
if (error) {
// some errors carry multiple errors (such as ValidationError)
if (validateErrorIsYupValidationError(error)) {
return {
name: error.name,
message: error?.message || null,
errors: error.details.errors.map((err)=>normalizeError(err, {
name: error.name,
intlMessagePrefixCallback
}))
};
}
return normalizeError(error, {
intlMessagePrefixCallback
});
}
return null;
}
exports.normalizeAPIError = normalizeAPIError;
//# sourceMappingURL=normalizeAPIError.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"normalizeAPIError.js","sources":["../../../admin/src/utils/normalizeAPIError.ts"],"sourcesContent":["import type { FetchError } from '@strapi/admin/strapi-admin';\nimport type { errors } from '@strapi/utils';\n\ntype ApiError = InstanceType<(typeof errors)[keyof typeof errors]>;\n\ninterface NormalizeErrorOptions {\n name?: string;\n intlMessagePrefixCallback?: (id: string) => string;\n}\n\ninterface NormalizeErrorReturn {\n id: string;\n defaultMessage: string;\n name?: string;\n values: Record<'path', string> | Record<string, never>;\n}\n\ninterface YupFormattedError {\n path: string[];\n message: string;\n name: string;\n value: string;\n}\n\nfunction getPrefixedId(message: string, callback?: (prefixedMessage: string) => string) {\n const prefixedMessage = `apiError.${message}`;\n\n // if a prefix function has been passed in it is used to\n // prefix the id, e.g. to allow an error message to be\n // set only for a localization namespace\n if (typeof callback === 'function') {\n return callback(prefixedMessage);\n }\n\n return prefixedMessage;\n}\n\nfunction normalizeError(\n error: ApiError | YupFormattedError,\n { name, intlMessagePrefixCallback }: NormalizeErrorOptions\n): NormalizeErrorReturn {\n const { message } = error;\n\n const normalizedError = {\n id: getPrefixedId(message, intlMessagePrefixCallback),\n defaultMessage: message,\n name: error.name ?? name,\n values: {},\n };\n\n if ('path' in error) {\n normalizedError.values = { path: error.path.join('.') };\n }\n\n return normalizedError;\n}\n\nconst validateErrorIsYupValidationError = (\n err: ApiError\n): err is errors.YupValidationError & { details: { errors: YupFormattedError[] } } =>\n typeof err.details === 'object' && err.details !== null && 'errors' in err.details;\n\n/**\n * Normalize the format of `ResponseError`\n * in places where the hook `useAPIErrorHandler` can not called\n * (e.g. outside of a React component).\n */\nexport function normalizeAPIError(\n apiError: FetchError,\n intlMessagePrefixCallback?: NormalizeErrorOptions['intlMessagePrefixCallback']\n):\n | NormalizeErrorReturn\n | { name: string; message: string | null; errors: NormalizeErrorReturn[] }\n | null {\n const error = apiError.response?.data.error;\n\n if (error) {\n // some errors carry multiple errors (such as ValidationError)\n if (validateErrorIsYupValidationError(error)) {\n return {\n name: error.name,\n message: error?.message || null,\n errors: error.details.errors.map((err) =>\n normalizeError(err, { name: error.name, intlMessagePrefixCallback })\n ),\n };\n }\n\n return normalizeError(error, { intlMessagePrefixCallback });\n }\n\n return null;\n}\n"],"names":["getPrefixedId","message","callback","prefixedMessage","normalizeError","error","name","intlMessagePrefixCallback","normalizedError","id","defaultMessage","values","path","join","validateErrorIsYupValidationError","err","details","normalizeAPIError","apiError","response","data","errors","map"],"mappings":";;AAwBA,SAASA,aAAAA,CAAcC,OAAe,EAAEC,QAA8C,EAAA;AACpF,IAAA,MAAMC,eAAkB,GAAA,CAAC,SAAS,EAAEF,QAAQ,CAAC;;;;IAK7C,IAAI,OAAOC,aAAa,UAAY,EAAA;AAClC,QAAA,OAAOA,QAASC,CAAAA,eAAAA,CAAAA;AAClB;IAEA,OAAOA,eAAAA;AACT;AAEA,SAASC,eACPC,KAAmC,EACnC,EAAEC,IAAI,EAAEC,yBAAyB,EAAyB,EAAA;IAE1D,MAAM,EAAEN,OAAO,EAAE,GAAGI,KAAAA;AAEpB,IAAA,MAAMG,eAAkB,GAAA;AACtBC,QAAAA,EAAAA,EAAIT,cAAcC,OAASM,EAAAA,yBAAAA,CAAAA;QAC3BG,cAAgBT,EAAAA,OAAAA;QAChBK,IAAMD,EAAAA,KAAAA,CAAMC,IAAI,IAAIA,IAAAA;AACpBK,QAAAA,MAAAA,EAAQ;AACV,KAAA;AAEA,IAAA,IAAI,UAAUN,KAAO,EAAA;AACnBG,QAAAA,eAAAA,CAAgBG,MAAM,GAAG;AAAEC,YAAAA,IAAAA,EAAMP,KAAMO,CAAAA,IAAI,CAACC,IAAI,CAAC,GAAA;AAAK,SAAA;AACxD;IAEA,OAAOL,eAAAA;AACT;AAEA,MAAMM,iCAAoC,GAAA,CACxCC,GAEA,GAAA,OAAOA,IAAIC,OAAO,KAAK,QAAYD,IAAAA,GAAAA,CAAIC,OAAO,KAAK,IAAQ,IAAA,QAAA,IAAYD,IAAIC,OAAO;AAEpF;;;;AAIC,IACM,SAASC,iBACdC,CAAAA,QAAoB,EACpBX,yBAA8E,EAAA;AAK9E,IAAA,MAAMF,KAAQa,GAAAA,QAAAA,CAASC,QAAQ,EAAEC,IAAKf,CAAAA,KAAAA;AAEtC,IAAA,IAAIA,KAAO,EAAA;;AAET,QAAA,IAAIS,kCAAkCT,KAAQ,CAAA,EAAA;YAC5C,OAAO;AACLC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBL,gBAAAA,OAAAA,EAASI,OAAOJ,OAAW,IAAA,IAAA;gBAC3BoB,MAAQhB,EAAAA,KAAAA,CAAMW,OAAO,CAACK,MAAM,CAACC,GAAG,CAAC,CAACP,GAChCX,GAAAA,cAAAA,CAAeW,GAAK,EAAA;AAAET,wBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAAEC,wBAAAA;AAA0B,qBAAA,CAAA;AAEtE,aAAA;AACF;AAEA,QAAA,OAAOH,eAAeC,KAAO,EAAA;AAAEE,YAAAA;AAA0B,SAAA,CAAA;AAC3D;IAEA,OAAO,IAAA;AACT;;;;"}

View File

@@ -0,0 +1,53 @@
function getPrefixedId(message, callback) {
const prefixedMessage = `apiError.${message}`;
// if a prefix function has been passed in it is used to
// prefix the id, e.g. to allow an error message to be
// set only for a localization namespace
if (typeof callback === 'function') {
return callback(prefixedMessage);
}
return prefixedMessage;
}
function normalizeError(error, { name, intlMessagePrefixCallback }) {
const { message } = error;
const normalizedError = {
id: getPrefixedId(message, intlMessagePrefixCallback),
defaultMessage: message,
name: error.name ?? name,
values: {}
};
if ('path' in error) {
normalizedError.values = {
path: error.path.join('.')
};
}
return normalizedError;
}
const validateErrorIsYupValidationError = (err)=>typeof err.details === 'object' && err.details !== null && 'errors' in err.details;
/**
* Normalize the format of `ResponseError`
* in places where the hook `useAPIErrorHandler` can not called
* (e.g. outside of a React component).
*/ function normalizeAPIError(apiError, intlMessagePrefixCallback) {
const error = apiError.response?.data.error;
if (error) {
// some errors carry multiple errors (such as ValidationError)
if (validateErrorIsYupValidationError(error)) {
return {
name: error.name,
message: error?.message || null,
errors: error.details.errors.map((err)=>normalizeError(err, {
name: error.name,
intlMessagePrefixCallback
}))
};
}
return normalizeError(error, {
intlMessagePrefixCallback
});
}
return null;
}
export { normalizeAPIError };
//# sourceMappingURL=normalizeAPIError.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"normalizeAPIError.mjs","sources":["../../../admin/src/utils/normalizeAPIError.ts"],"sourcesContent":["import type { FetchError } from '@strapi/admin/strapi-admin';\nimport type { errors } from '@strapi/utils';\n\ntype ApiError = InstanceType<(typeof errors)[keyof typeof errors]>;\n\ninterface NormalizeErrorOptions {\n name?: string;\n intlMessagePrefixCallback?: (id: string) => string;\n}\n\ninterface NormalizeErrorReturn {\n id: string;\n defaultMessage: string;\n name?: string;\n values: Record<'path', string> | Record<string, never>;\n}\n\ninterface YupFormattedError {\n path: string[];\n message: string;\n name: string;\n value: string;\n}\n\nfunction getPrefixedId(message: string, callback?: (prefixedMessage: string) => string) {\n const prefixedMessage = `apiError.${message}`;\n\n // if a prefix function has been passed in it is used to\n // prefix the id, e.g. to allow an error message to be\n // set only for a localization namespace\n if (typeof callback === 'function') {\n return callback(prefixedMessage);\n }\n\n return prefixedMessage;\n}\n\nfunction normalizeError(\n error: ApiError | YupFormattedError,\n { name, intlMessagePrefixCallback }: NormalizeErrorOptions\n): NormalizeErrorReturn {\n const { message } = error;\n\n const normalizedError = {\n id: getPrefixedId(message, intlMessagePrefixCallback),\n defaultMessage: message,\n name: error.name ?? name,\n values: {},\n };\n\n if ('path' in error) {\n normalizedError.values = { path: error.path.join('.') };\n }\n\n return normalizedError;\n}\n\nconst validateErrorIsYupValidationError = (\n err: ApiError\n): err is errors.YupValidationError & { details: { errors: YupFormattedError[] } } =>\n typeof err.details === 'object' && err.details !== null && 'errors' in err.details;\n\n/**\n * Normalize the format of `ResponseError`\n * in places where the hook `useAPIErrorHandler` can not called\n * (e.g. outside of a React component).\n */\nexport function normalizeAPIError(\n apiError: FetchError,\n intlMessagePrefixCallback?: NormalizeErrorOptions['intlMessagePrefixCallback']\n):\n | NormalizeErrorReturn\n | { name: string; message: string | null; errors: NormalizeErrorReturn[] }\n | null {\n const error = apiError.response?.data.error;\n\n if (error) {\n // some errors carry multiple errors (such as ValidationError)\n if (validateErrorIsYupValidationError(error)) {\n return {\n name: error.name,\n message: error?.message || null,\n errors: error.details.errors.map((err) =>\n normalizeError(err, { name: error.name, intlMessagePrefixCallback })\n ),\n };\n }\n\n return normalizeError(error, { intlMessagePrefixCallback });\n }\n\n return null;\n}\n"],"names":["getPrefixedId","message","callback","prefixedMessage","normalizeError","error","name","intlMessagePrefixCallback","normalizedError","id","defaultMessage","values","path","join","validateErrorIsYupValidationError","err","details","normalizeAPIError","apiError","response","data","errors","map"],"mappings":"AAwBA,SAASA,aAAAA,CAAcC,OAAe,EAAEC,QAA8C,EAAA;AACpF,IAAA,MAAMC,eAAkB,GAAA,CAAC,SAAS,EAAEF,QAAQ,CAAC;;;;IAK7C,IAAI,OAAOC,aAAa,UAAY,EAAA;AAClC,QAAA,OAAOA,QAASC,CAAAA,eAAAA,CAAAA;AAClB;IAEA,OAAOA,eAAAA;AACT;AAEA,SAASC,eACPC,KAAmC,EACnC,EAAEC,IAAI,EAAEC,yBAAyB,EAAyB,EAAA;IAE1D,MAAM,EAAEN,OAAO,EAAE,GAAGI,KAAAA;AAEpB,IAAA,MAAMG,eAAkB,GAAA;AACtBC,QAAAA,EAAAA,EAAIT,cAAcC,OAASM,EAAAA,yBAAAA,CAAAA;QAC3BG,cAAgBT,EAAAA,OAAAA;QAChBK,IAAMD,EAAAA,KAAAA,CAAMC,IAAI,IAAIA,IAAAA;AACpBK,QAAAA,MAAAA,EAAQ;AACV,KAAA;AAEA,IAAA,IAAI,UAAUN,KAAO,EAAA;AACnBG,QAAAA,eAAAA,CAAgBG,MAAM,GAAG;AAAEC,YAAAA,IAAAA,EAAMP,KAAMO,CAAAA,IAAI,CAACC,IAAI,CAAC,GAAA;AAAK,SAAA;AACxD;IAEA,OAAOL,eAAAA;AACT;AAEA,MAAMM,iCAAoC,GAAA,CACxCC,GAEA,GAAA,OAAOA,IAAIC,OAAO,KAAK,QAAYD,IAAAA,GAAAA,CAAIC,OAAO,KAAK,IAAQ,IAAA,QAAA,IAAYD,IAAIC,OAAO;AAEpF;;;;AAIC,IACM,SAASC,iBACdC,CAAAA,QAAoB,EACpBX,yBAA8E,EAAA;AAK9E,IAAA,MAAMF,KAAQa,GAAAA,QAAAA,CAASC,QAAQ,EAAEC,IAAKf,CAAAA,KAAAA;AAEtC,IAAA,IAAIA,KAAO,EAAA;;AAET,QAAA,IAAIS,kCAAkCT,KAAQ,CAAA,EAAA;YAC5C,OAAO;AACLC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBL,gBAAAA,OAAAA,EAASI,OAAOJ,OAAW,IAAA,IAAA;gBAC3BoB,MAAQhB,EAAAA,KAAAA,CAAMW,OAAO,CAACK,MAAM,CAACC,GAAG,CAAC,CAACP,GAChCX,GAAAA,cAAAA,CAAeW,GAAK,EAAA;AAAET,wBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAAEC,wBAAAA;AAA0B,qBAAA,CAAA;AAEtE,aAAA;AACF;AAEA,QAAA,OAAOH,eAAeC,KAAO,EAAA;AAAEE,YAAAA;AAA0B,SAAA,CAAA;AAC3D;IAEA,OAAO,IAAA;AACT;;;;"}

View File

@@ -0,0 +1,8 @@
'use strict';
const prefixFileUrlWithBackendUrl = (fileURL)=>{
return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;
};
exports.prefixFileUrlWithBackendUrl = prefixFileUrlWithBackendUrl;
//# sourceMappingURL=prefixFileUrlWithBackendUrl.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"prefixFileUrlWithBackendUrl.js","sources":["../../../admin/src/utils/prefixFileUrlWithBackendUrl.ts"],"sourcesContent":["export const prefixFileUrlWithBackendUrl = (fileURL?: string) => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL"],"mappings":";;AAAO,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AAC1C,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAQC,CAAAA,UAAU,CAAC,GAAO,CAAA,GAAA,CAAC,EAAEC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAC,EAAEJ,OAAAA,CAAQ,CAAC,GAAGA,OAAAA;AAC1F;;;;"}

View File

@@ -0,0 +1,6 @@
const prefixFileUrlWithBackendUrl = (fileURL)=>{
return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;
};
export { prefixFileUrlWithBackendUrl };
//# sourceMappingURL=prefixFileUrlWithBackendUrl.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"prefixFileUrlWithBackendUrl.mjs","sources":["../../../admin/src/utils/prefixFileUrlWithBackendUrl.ts"],"sourcesContent":["export const prefixFileUrlWithBackendUrl = (fileURL?: string) => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n"],"names":["prefixFileUrlWithBackendUrl","fileURL","startsWith","window","strapi","backendURL"],"mappings":"AAAO,MAAMA,8BAA8B,CAACC,OAAAA,GAAAA;AAC1C,IAAA,OAAO,CAAC,CAACA,OAAAA,IAAWA,OAAQC,CAAAA,UAAU,CAAC,GAAO,CAAA,GAAA,CAAC,EAAEC,MAAAA,CAAOC,MAAM,CAACC,UAAU,CAAC,EAAEJ,OAAAA,CAAQ,CAAC,GAAGA,OAAAA;AAC1F;;;;"}

View File

@@ -0,0 +1,14 @@
'use strict';
const prefixPluginTranslations = (trad, pluginId)=>{
if (!pluginId) {
throw new TypeError("pluginId can't be empty");
}
return Object.keys(trad).reduce((acc, current)=>{
acc[`${pluginId}.${current}`] = trad[current];
return acc;
}, {});
};
exports.prefixPluginTranslations = prefixPluginTranslations;
//# sourceMappingURL=prefixPluginTranslations.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"prefixPluginTranslations.js","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type Translations = {\n [key: string]: string;\n};\n\nexport const prefixPluginTranslations = (trad: Translations, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc: Translations, current: string) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n"],"names":["prefixPluginTranslations","trad","pluginId","TypeError","Object","keys","reduce","acc","current"],"mappings":";;AAIO,MAAMA,wBAA2B,GAAA,CAACC,IAAoBC,EAAAA,QAAAA,GAAAA;AAC3D,IAAA,IAAI,CAACA,QAAU,EAAA;AACb,QAAA,MAAM,IAAIC,SAAU,CAAA,yBAAA,CAAA;AACtB;AAEA,IAAA,OAAOC,OAAOC,IAAI,CAACJ,MAAMK,MAAM,CAAC,CAACC,GAAmBC,EAAAA,OAAAA,GAAAA;AAClDD,QAAAA,GAAG,CAAC,CAAC,EAAEL,QAAAA,CAAS,CAAC,EAAEM,OAAQ,CAAA,CAAC,CAAC,GAAGP,IAAI,CAACO,OAAQ,CAAA;QAE7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}

View File

@@ -0,0 +1,12 @@
const prefixPluginTranslations = (trad, pluginId)=>{
if (!pluginId) {
throw new TypeError("pluginId can't be empty");
}
return Object.keys(trad).reduce((acc, current)=>{
acc[`${pluginId}.${current}`] = trad[current];
return acc;
}, {});
};
export { prefixPluginTranslations };
//# sourceMappingURL=prefixPluginTranslations.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"prefixPluginTranslations.mjs","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type Translations = {\n [key: string]: string;\n};\n\nexport const prefixPluginTranslations = (trad: Translations, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc: Translations, current: string) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n"],"names":["prefixPluginTranslations","trad","pluginId","TypeError","Object","keys","reduce","acc","current"],"mappings":"AAIO,MAAMA,wBAA2B,GAAA,CAACC,IAAoBC,EAAAA,QAAAA,GAAAA;AAC3D,IAAA,IAAI,CAACA,QAAU,EAAA;AACb,QAAA,MAAM,IAAIC,SAAU,CAAA,yBAAA,CAAA;AACtB;AAEA,IAAA,OAAOC,OAAOC,IAAI,CAACJ,MAAMK,MAAM,CAAC,CAACC,GAAmBC,EAAAA,OAAAA,GAAAA;AAClDD,QAAAA,GAAG,CAAC,CAAC,EAAEL,QAAAA,CAAS,CAAC,EAAEM,OAAQ,CAAA,CAAC,CAAC,GAAGP,IAAI,CAACO,OAAQ,CAAA;QAE7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}

View File

@@ -0,0 +1,21 @@
'use strict';
var typeFromMime = require('./typeFromMime.js');
const rawFileToAsset = (rawFile, assetSource)=>{
return {
size: rawFile.size / 1000,
createdAt: new Date(rawFile.lastModified).toISOString(),
name: rawFile.name,
source: assetSource,
type: typeFromMime.typeFromMime(rawFile.type),
url: URL.createObjectURL(rawFile),
ext: rawFile.name.split('.').pop(),
mime: rawFile.type,
rawFile,
isLocal: true
};
};
exports.rawFileToAsset = rawFileToAsset;
//# sourceMappingURL=rawFileToAsset.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"rawFileToAsset.js","sources":["../../../admin/src/utils/rawFileToAsset.ts"],"sourcesContent":["import { AssetSource } from '../constants';\n\nimport { typeFromMime } from './typeFromMime';\n\nimport type { RawFile } from '../../../shared/contracts/files';\n\nexport const rawFileToAsset = (rawFile: RawFile, assetSource: AssetSource) => {\n return {\n size: rawFile.size / 1000,\n createdAt: new Date(rawFile.lastModified).toISOString(),\n name: rawFile.name,\n source: assetSource,\n type: typeFromMime(rawFile.type),\n url: URL.createObjectURL(rawFile),\n ext: rawFile.name.split('.').pop(),\n mime: rawFile.type,\n rawFile,\n isLocal: true,\n };\n};\n"],"names":["rawFileToAsset","rawFile","assetSource","size","createdAt","Date","lastModified","toISOString","name","source","type","typeFromMime","url","URL","createObjectURL","ext","split","pop","mime","isLocal"],"mappings":";;;;AAMO,MAAMA,cAAiB,GAAA,CAACC,OAAkBC,EAAAA,WAAAA,GAAAA;IAC/C,OAAO;QACLC,IAAMF,EAAAA,OAAAA,CAAQE,IAAI,GAAG,IAAA;AACrBC,QAAAA,SAAAA,EAAW,IAAIC,IAAAA,CAAKJ,OAAQK,CAAAA,YAAY,EAAEC,WAAW,EAAA;AACrDC,QAAAA,IAAAA,EAAMP,QAAQO,IAAI;QAClBC,MAAQP,EAAAA,WAAAA;QACRQ,IAAMC,EAAAA,yBAAAA,CAAaV,QAAQS,IAAI,CAAA;QAC/BE,GAAKC,EAAAA,GAAAA,CAAIC,eAAe,CAACb,OAAAA,CAAAA;AACzBc,QAAAA,GAAAA,EAAKd,QAAQO,IAAI,CAACQ,KAAK,CAAC,KAAKC,GAAG,EAAA;AAChCC,QAAAA,IAAAA,EAAMjB,QAAQS,IAAI;AAClBT,QAAAA,OAAAA;QACAkB,OAAS,EAAA;AACX,KAAA;AACF;;;;"}

View File

@@ -0,0 +1,19 @@
import { typeFromMime } from './typeFromMime.mjs';
const rawFileToAsset = (rawFile, assetSource)=>{
return {
size: rawFile.size / 1000,
createdAt: new Date(rawFile.lastModified).toISOString(),
name: rawFile.name,
source: assetSource,
type: typeFromMime(rawFile.type),
url: URL.createObjectURL(rawFile),
ext: rawFile.name.split('.').pop(),
mime: rawFile.type,
rawFile,
isLocal: true
};
};
export { rawFileToAsset };
//# sourceMappingURL=rawFileToAsset.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"rawFileToAsset.mjs","sources":["../../../admin/src/utils/rawFileToAsset.ts"],"sourcesContent":["import { AssetSource } from '../constants';\n\nimport { typeFromMime } from './typeFromMime';\n\nimport type { RawFile } from '../../../shared/contracts/files';\n\nexport const rawFileToAsset = (rawFile: RawFile, assetSource: AssetSource) => {\n return {\n size: rawFile.size / 1000,\n createdAt: new Date(rawFile.lastModified).toISOString(),\n name: rawFile.name,\n source: assetSource,\n type: typeFromMime(rawFile.type),\n url: URL.createObjectURL(rawFile),\n ext: rawFile.name.split('.').pop(),\n mime: rawFile.type,\n rawFile,\n isLocal: true,\n };\n};\n"],"names":["rawFileToAsset","rawFile","assetSource","size","createdAt","Date","lastModified","toISOString","name","source","type","typeFromMime","url","URL","createObjectURL","ext","split","pop","mime","isLocal"],"mappings":";;AAMO,MAAMA,cAAiB,GAAA,CAACC,OAAkBC,EAAAA,WAAAA,GAAAA;IAC/C,OAAO;QACLC,IAAMF,EAAAA,OAAAA,CAAQE,IAAI,GAAG,IAAA;AACrBC,QAAAA,SAAAA,EAAW,IAAIC,IAAAA,CAAKJ,OAAQK,CAAAA,YAAY,EAAEC,WAAW,EAAA;AACrDC,QAAAA,IAAAA,EAAMP,QAAQO,IAAI;QAClBC,MAAQP,EAAAA,WAAAA;QACRQ,IAAMC,EAAAA,YAAAA,CAAaV,QAAQS,IAAI,CAAA;QAC/BE,GAAKC,EAAAA,GAAAA,CAAIC,eAAe,CAACb,OAAAA,CAAAA;AACzBc,QAAAA,GAAAA,EAAKd,QAAQO,IAAI,CAACQ,KAAK,CAAC,KAAKC,GAAG,EAAA;AAChCC,QAAAA,IAAAA,EAAMjB,QAAQS,IAAI;AAClBT,QAAAA,OAAAA;QACAkB,OAAS,EAAA;AACX,KAAA;AACF;;;;"}

View File

@@ -0,0 +1,11 @@
'use strict';
const toSingularTypes = (types)=>{
if (!types) {
return [];
}
return types.map((type)=>type.substring(0, type.length - 1));
};
exports.toSingularTypes = toSingularTypes;
//# sourceMappingURL=toSingularTypes.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"toSingularTypes.js","sources":["../../../admin/src/utils/toSingularTypes.ts"],"sourcesContent":["export const toSingularTypes = (types?: string[]) => {\n if (!types) {\n return [];\n }\n\n return types.map((type) => type.substring(0, type.length - 1));\n};\n"],"names":["toSingularTypes","types","map","type","substring","length"],"mappings":";;AAAO,MAAMA,kBAAkB,CAACC,KAAAA,GAAAA;AAC9B,IAAA,IAAI,CAACA,KAAO,EAAA;AACV,QAAA,OAAO,EAAE;AACX;IAEA,OAAOA,KAAAA,CAAMC,GAAG,CAAC,CAACC,IAAAA,GAASA,IAAKC,CAAAA,SAAS,CAAC,CAAA,EAAGD,IAAKE,CAAAA,MAAM,GAAG,CAAA,CAAA,CAAA;AAC7D;;;;"}

View File

@@ -0,0 +1,9 @@
const toSingularTypes = (types)=>{
if (!types) {
return [];
}
return types.map((type)=>type.substring(0, type.length - 1));
};
export { toSingularTypes };
//# sourceMappingURL=toSingularTypes.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"toSingularTypes.mjs","sources":["../../../admin/src/utils/toSingularTypes.ts"],"sourcesContent":["export const toSingularTypes = (types?: string[]) => {\n if (!types) {\n return [];\n }\n\n return types.map((type) => type.substring(0, type.length - 1));\n};\n"],"names":["toSingularTypes","types","map","type","substring","length"],"mappings":"AAAO,MAAMA,kBAAkB,CAACC,KAAAA,GAAAA;AAC9B,IAAA,IAAI,CAACA,KAAO,EAAA;AACV,QAAA,OAAO,EAAE;AACX;IAEA,OAAOA,KAAAA,CAAMC,GAAG,CAAC,CAACC,IAAAA,GAASA,IAAKC,CAAAA,SAAS,CAAC,CAAA,EAAGD,IAAKE,CAAAA,MAAM,GAAG,CAAA,CAAA,CAAA;AAC7D;;;;"}

View File

@@ -0,0 +1,19 @@
'use strict';
var constants = require('../constants.js');
const typeFromMime = (mime)=>{
if (mime.includes(constants.AssetType.Image)) {
return constants.AssetType.Image;
}
if (mime.includes(constants.AssetType.Video)) {
return constants.AssetType.Video;
}
if (mime.includes(constants.AssetType.Audio)) {
return constants.AssetType.Audio;
}
return constants.AssetType.Document;
};
exports.typeFromMime = typeFromMime;
//# sourceMappingURL=typeFromMime.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"typeFromMime.js","sources":["../../../admin/src/utils/typeFromMime.ts"],"sourcesContent":["import { AssetType } from '../constants';\n\nexport const typeFromMime = (mime: string) => {\n if (mime.includes(AssetType.Image)) {\n return AssetType.Image;\n }\n if (mime.includes(AssetType.Video)) {\n return AssetType.Video;\n }\n if (mime.includes(AssetType.Audio)) {\n return AssetType.Audio;\n }\n\n return AssetType.Document;\n};\n"],"names":["typeFromMime","mime","includes","AssetType","Image","Video","Audio","Document"],"mappings":";;;;AAEO,MAAMA,eAAe,CAACC,IAAAA,GAAAA;AAC3B,IAAA,IAAIA,IAAKC,CAAAA,QAAQ,CAACC,mBAAAA,CAAUC,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOD,oBAAUC,KAAK;AACxB;AACA,IAAA,IAAIH,IAAKC,CAAAA,QAAQ,CAACC,mBAAAA,CAAUE,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOF,oBAAUE,KAAK;AACxB;AACA,IAAA,IAAIJ,IAAKC,CAAAA,QAAQ,CAACC,mBAAAA,CAAUG,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOH,oBAAUG,KAAK;AACxB;AAEA,IAAA,OAAOH,oBAAUI,QAAQ;AAC3B;;;;"}

View File

@@ -0,0 +1,17 @@
import { AssetType } from '../constants.mjs';
const typeFromMime = (mime)=>{
if (mime.includes(AssetType.Image)) {
return AssetType.Image;
}
if (mime.includes(AssetType.Video)) {
return AssetType.Video;
}
if (mime.includes(AssetType.Audio)) {
return AssetType.Audio;
}
return AssetType.Document;
};
export { typeFromMime };
//# sourceMappingURL=typeFromMime.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"typeFromMime.mjs","sources":["../../../admin/src/utils/typeFromMime.ts"],"sourcesContent":["import { AssetType } from '../constants';\n\nexport const typeFromMime = (mime: string) => {\n if (mime.includes(AssetType.Image)) {\n return AssetType.Image;\n }\n if (mime.includes(AssetType.Video)) {\n return AssetType.Video;\n }\n if (mime.includes(AssetType.Audio)) {\n return AssetType.Audio;\n }\n\n return AssetType.Document;\n};\n"],"names":["typeFromMime","mime","includes","AssetType","Image","Video","Audio","Document"],"mappings":";;AAEO,MAAMA,eAAe,CAACC,IAAAA,GAAAA;AAC3B,IAAA,IAAIA,IAAKC,CAAAA,QAAQ,CAACC,SAAAA,CAAUC,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOD,UAAUC,KAAK;AACxB;AACA,IAAA,IAAIH,IAAKC,CAAAA,QAAQ,CAACC,SAAAA,CAAUE,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOF,UAAUE,KAAK;AACxB;AACA,IAAA,IAAIJ,IAAKC,CAAAA,QAAQ,CAACC,SAAAA,CAAUG,KAAK,CAAG,EAAA;AAClC,QAAA,OAAOH,UAAUG,KAAK;AACxB;AAEA,IAAA,OAAOH,UAAUI,QAAQ;AAC3B;;;;"}

View File

@@ -0,0 +1,72 @@
'use strict';
var strapiAdmin = require('@strapi/admin/strapi-admin');
var yup = require('yup');
var getTrad = require('./getTrad.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
const urlSchema = yup__namespace.object().shape({
urls: yup__namespace.string().test({
name: 'isUrlValid',
// eslint-disable-next-line no-template-curly-in-string
message: '${path}',
test (values = '') {
const urls = values.split(/\r?\n/);
if (urls.length === 0) {
return this.createError({
path: this.path,
message: strapiAdmin.translatedErrors.min.id
});
}
if (urls.length > 20) {
return this.createError({
path: this.path,
message: strapiAdmin.translatedErrors.max.id
});
}
const filtered = urls.filter((val)=>{
try {
// eslint-disable-next-line no-new
new URL(val);
return false;
} catch (err) {
// invalid url
return true;
}
});
const filteredLength = filtered.length;
if (filteredLength === 0) {
return true;
}
const errorMessage = filteredLength > 1 ? 'form.upload-url.error.url.invalids' : 'form.upload-url.error.url.invalid';
return this.createError({
path: this.path,
message: getTrad.getTrad(errorMessage),
params: {
number: filtered.length
}
});
}
})
});
exports.urlSchema = urlSchema;
//# sourceMappingURL=urlYupSchema.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlYupSchema.js","sources":["../../../admin/src/utils/urlYupSchema.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nimport { getTrad } from './getTrad';\n\nexport const urlSchema = yup.object().shape({\n urls: yup.string().test({\n name: 'isUrlValid',\n // eslint-disable-next-line no-template-curly-in-string\n message: '${path}',\n test(values = '') {\n const urls = values.split(/\\r?\\n/);\n\n if (urls.length === 0) {\n return this.createError({\n path: this.path,\n message: errorsTrads.min.id,\n });\n }\n\n if (urls.length > 20) {\n return this.createError({\n path: this.path,\n message: errorsTrads.max.id,\n });\n }\n\n const filtered = urls.filter((val) => {\n try {\n // eslint-disable-next-line no-new\n new URL(val);\n\n return false;\n } catch (err) {\n // invalid url\n return true;\n }\n });\n\n const filteredLength = filtered.length;\n\n if (filteredLength === 0) {\n return true;\n }\n\n const errorMessage =\n filteredLength > 1\n ? 'form.upload-url.error.url.invalids'\n : 'form.upload-url.error.url.invalid';\n\n return this.createError({\n path: this.path,\n message: getTrad(errorMessage),\n params: { number: filtered.length },\n });\n },\n }),\n});\n"],"names":["urlSchema","yup","object","shape","urls","string","test","name","message","values","split","length","createError","path","errorsTrads","min","id","max","filtered","filter","val","URL","err","filteredLength","errorMessage","getTrad","params","number"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAKaA,SAAYC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAC1CC,IAAAA,IAAAA,EAAMH,cAAII,CAAAA,MAAM,EAAGC,CAAAA,IAAI,CAAC;QACtBC,IAAM,EAAA,YAAA;;QAENC,OAAS,EAAA,SAAA;AACTF,QAAAA,IAAAA,CAAAA,CAAKG,SAAS,EAAE,EAAA;YACd,MAAML,IAAAA,GAAOK,MAAOC,CAAAA,KAAK,CAAC,OAAA,CAAA;YAE1B,IAAIN,IAAAA,CAAKO,MAAM,KAAK,CAAG,EAAA;gBACrB,OAAO,IAAI,CAACC,WAAW,CAAC;oBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;oBACfL,OAASM,EAAAA,4BAAAA,CAAYC,GAAG,CAACC;AAC3B,iBAAA,CAAA;AACF;YAEA,IAAIZ,IAAAA,CAAKO,MAAM,GAAG,EAAI,EAAA;gBACpB,OAAO,IAAI,CAACC,WAAW,CAAC;oBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;oBACfL,OAASM,EAAAA,4BAAAA,CAAYG,GAAG,CAACD;AAC3B,iBAAA,CAAA;AACF;AAEA,YAAA,MAAME,QAAWd,GAAAA,IAAAA,CAAKe,MAAM,CAAC,CAACC,GAAAA,GAAAA;gBAC5B,IAAI;;AAEF,oBAAA,IAAIC,GAAID,CAAAA,GAAAA,CAAAA;oBAER,OAAO,KAAA;AACT,iBAAA,CAAE,OAAOE,GAAK,EAAA;;oBAEZ,OAAO,IAAA;AACT;AACF,aAAA,CAAA;YAEA,MAAMC,cAAAA,GAAiBL,SAASP,MAAM;AAEtC,YAAA,IAAIY,mBAAmB,CAAG,EAAA;gBACxB,OAAO,IAAA;AACT;YAEA,MAAMC,YAAAA,GACJD,cAAiB,GAAA,CAAA,GACb,oCACA,GAAA,mCAAA;YAEN,OAAO,IAAI,CAACX,WAAW,CAAC;gBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;AACfL,gBAAAA,OAAAA,EAASiB,eAAQD,CAAAA,YAAAA,CAAAA;gBACjBE,MAAQ,EAAA;AAAEC,oBAAAA,MAAAA,EAAQT,SAASP;AAAO;AACpC,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAG;;;;"}

View File

@@ -0,0 +1,51 @@
import { translatedErrors } from '@strapi/admin/strapi-admin';
import * as yup from 'yup';
import { getTrad } from './getTrad.mjs';
const urlSchema = yup.object().shape({
urls: yup.string().test({
name: 'isUrlValid',
// eslint-disable-next-line no-template-curly-in-string
message: '${path}',
test (values = '') {
const urls = values.split(/\r?\n/);
if (urls.length === 0) {
return this.createError({
path: this.path,
message: translatedErrors.min.id
});
}
if (urls.length > 20) {
return this.createError({
path: this.path,
message: translatedErrors.max.id
});
}
const filtered = urls.filter((val)=>{
try {
// eslint-disable-next-line no-new
new URL(val);
return false;
} catch (err) {
// invalid url
return true;
}
});
const filteredLength = filtered.length;
if (filteredLength === 0) {
return true;
}
const errorMessage = filteredLength > 1 ? 'form.upload-url.error.url.invalids' : 'form.upload-url.error.url.invalid';
return this.createError({
path: this.path,
message: getTrad(errorMessage),
params: {
number: filtered.length
}
});
}
})
});
export { urlSchema };
//# sourceMappingURL=urlYupSchema.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlYupSchema.mjs","sources":["../../../admin/src/utils/urlYupSchema.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nimport { getTrad } from './getTrad';\n\nexport const urlSchema = yup.object().shape({\n urls: yup.string().test({\n name: 'isUrlValid',\n // eslint-disable-next-line no-template-curly-in-string\n message: '${path}',\n test(values = '') {\n const urls = values.split(/\\r?\\n/);\n\n if (urls.length === 0) {\n return this.createError({\n path: this.path,\n message: errorsTrads.min.id,\n });\n }\n\n if (urls.length > 20) {\n return this.createError({\n path: this.path,\n message: errorsTrads.max.id,\n });\n }\n\n const filtered = urls.filter((val) => {\n try {\n // eslint-disable-next-line no-new\n new URL(val);\n\n return false;\n } catch (err) {\n // invalid url\n return true;\n }\n });\n\n const filteredLength = filtered.length;\n\n if (filteredLength === 0) {\n return true;\n }\n\n const errorMessage =\n filteredLength > 1\n ? 'form.upload-url.error.url.invalids'\n : 'form.upload-url.error.url.invalid';\n\n return this.createError({\n path: this.path,\n message: getTrad(errorMessage),\n params: { number: filtered.length },\n });\n },\n }),\n});\n"],"names":["urlSchema","yup","object","shape","urls","string","test","name","message","values","split","length","createError","path","errorsTrads","min","id","max","filtered","filter","val","URL","err","filteredLength","errorMessage","getTrad","params","number"],"mappings":";;;;MAKaA,SAAYC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAC1CC,IAAAA,IAAAA,EAAMH,GAAII,CAAAA,MAAM,EAAGC,CAAAA,IAAI,CAAC;QACtBC,IAAM,EAAA,YAAA;;QAENC,OAAS,EAAA,SAAA;AACTF,QAAAA,IAAAA,CAAAA,CAAKG,SAAS,EAAE,EAAA;YACd,MAAML,IAAAA,GAAOK,MAAOC,CAAAA,KAAK,CAAC,OAAA,CAAA;YAE1B,IAAIN,IAAAA,CAAKO,MAAM,KAAK,CAAG,EAAA;gBACrB,OAAO,IAAI,CAACC,WAAW,CAAC;oBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;oBACfL,OAASM,EAAAA,gBAAAA,CAAYC,GAAG,CAACC;AAC3B,iBAAA,CAAA;AACF;YAEA,IAAIZ,IAAAA,CAAKO,MAAM,GAAG,EAAI,EAAA;gBACpB,OAAO,IAAI,CAACC,WAAW,CAAC;oBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;oBACfL,OAASM,EAAAA,gBAAAA,CAAYG,GAAG,CAACD;AAC3B,iBAAA,CAAA;AACF;AAEA,YAAA,MAAME,QAAWd,GAAAA,IAAAA,CAAKe,MAAM,CAAC,CAACC,GAAAA,GAAAA;gBAC5B,IAAI;;AAEF,oBAAA,IAAIC,GAAID,CAAAA,GAAAA,CAAAA;oBAER,OAAO,KAAA;AACT,iBAAA,CAAE,OAAOE,GAAK,EAAA;;oBAEZ,OAAO,IAAA;AACT;AACF,aAAA,CAAA;YAEA,MAAMC,cAAAA,GAAiBL,SAASP,MAAM;AAEtC,YAAA,IAAIY,mBAAmB,CAAG,EAAA;gBACxB,OAAO,IAAA;AACT;YAEA,MAAMC,YAAAA,GACJD,cAAiB,GAAA,CAAA,GACb,oCACA,GAAA,mCAAA;YAEN,OAAO,IAAI,CAACX,WAAW,CAAC;gBACtBC,IAAM,EAAA,IAAI,CAACA,IAAI;AACfL,gBAAAA,OAAAA,EAASiB,OAAQD,CAAAA,YAAAA,CAAAA;gBACjBE,MAAQ,EAAA;AAAEC,oBAAAA,MAAAA,EAAQT,SAASP;AAAO;AACpC,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAG;;;;"}

View File

@@ -0,0 +1,39 @@
'use strict';
var constants = require('../constants.js');
var typeFromMime = require('./typeFromMime.js');
function getFilenameFromURL(url) {
return new URL(url).pathname.split('/').pop();
}
const urlsToAssets = async (urls)=>{
const assetPromises = urls.map((url)=>fetch(url).then(async (res)=>{
const blob = await res.blob();
const loadedFile = new File([
blob
], getFilenameFromURL(res.url), {
type: res.headers.get('content-type') || undefined
});
return {
name: loadedFile.name,
url: res.url,
mime: res.headers.get('content-type'),
rawFile: loadedFile
};
}));
// Retrieve the assets metadata
const assetsResults = await Promise.all(assetPromises);
const assets = assetsResults.map((fullFilledAsset)=>({
source: constants.AssetSource.Url,
name: fullFilledAsset.name,
type: typeFromMime.typeFromMime(fullFilledAsset.mime),
url: fullFilledAsset.url,
ext: fullFilledAsset.url.split('.').pop(),
mime: fullFilledAsset.mime ? fullFilledAsset.mime : undefined,
rawFile: fullFilledAsset.rawFile
}));
return assets;
};
exports.urlsToAssets = urlsToAssets;
//# sourceMappingURL=urlsToAssets.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlsToAssets.js","sources":["../../../admin/src/utils/urlsToAssets.ts"],"sourcesContent":["import { AssetSource } from '../constants';\n\nimport { typeFromMime } from './typeFromMime';\n\nfunction getFilenameFromURL(url: string) {\n return new URL(url).pathname.split('/').pop();\n}\n\nexport const urlsToAssets = async (urls: string[]) => {\n const assetPromises = urls.map((url) =>\n fetch(url).then(async (res) => {\n const blob = await res.blob();\n\n const loadedFile = new File([blob], getFilenameFromURL(res.url)!, {\n type: res.headers.get('content-type') || undefined,\n });\n\n return {\n name: loadedFile.name,\n url: res.url,\n mime: res.headers.get('content-type'),\n rawFile: loadedFile,\n };\n })\n );\n // Retrieve the assets metadata\n const assetsResults = await Promise.all(assetPromises);\n\n const assets = assetsResults.map((fullFilledAsset) => ({\n source: AssetSource.Url,\n name: fullFilledAsset.name,\n type: typeFromMime(fullFilledAsset.mime!),\n url: fullFilledAsset.url,\n ext: fullFilledAsset.url.split('.').pop(),\n mime: fullFilledAsset.mime ? fullFilledAsset.mime : undefined,\n rawFile: fullFilledAsset.rawFile,\n }));\n\n return assets;\n};\n"],"names":["getFilenameFromURL","url","URL","pathname","split","pop","urlsToAssets","urls","assetPromises","map","fetch","then","res","blob","loadedFile","File","type","headers","get","undefined","name","mime","rawFile","assetsResults","Promise","all","assets","fullFilledAsset","source","AssetSource","Url","typeFromMime","ext"],"mappings":";;;;;AAIA,SAASA,mBAAmBC,GAAW,EAAA;IACrC,OAAO,IAAIC,IAAID,GAAKE,CAAAA,CAAAA,QAAQ,CAACC,KAAK,CAAC,KAAKC,GAAG,EAAA;AAC7C;AAEO,MAAMC,eAAe,OAAOC,IAAAA,GAAAA;IACjC,MAAMC,aAAAA,GAAgBD,IAAKE,CAAAA,GAAG,CAAC,CAACR,MAC9BS,KAAMT,CAAAA,GAAAA,CAAAA,CAAKU,IAAI,CAAC,OAAOC,GAAAA,GAAAA;YACrB,MAAMC,IAAAA,GAAO,MAAMD,GAAAA,CAAIC,IAAI,EAAA;YAE3B,MAAMC,UAAAA,GAAa,IAAIC,IAAK,CAAA;AAACF,gBAAAA;aAAK,EAAEb,kBAAAA,CAAmBY,GAAIX,CAAAA,GAAG,CAAI,EAAA;AAChEe,gBAAAA,IAAAA,EAAMJ,GAAIK,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAmBC,CAAAA,IAAAA;AAC3C,aAAA,CAAA;YAEA,OAAO;AACLC,gBAAAA,IAAAA,EAAMN,WAAWM,IAAI;AACrBnB,gBAAAA,GAAAA,EAAKW,IAAIX,GAAG;AACZoB,gBAAAA,IAAAA,EAAMT,GAAIK,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAA,CAAA;gBACtBI,OAASR,EAAAA;AACX,aAAA;AACF,SAAA,CAAA,CAAA;;AAGF,IAAA,MAAMS,aAAgB,GAAA,MAAMC,OAAQC,CAAAA,GAAG,CAACjB,aAAAA,CAAAA;AAExC,IAAA,MAAMkB,SAASH,aAAcd,CAAAA,GAAG,CAAC,CAACkB,mBAAqB;AACrDC,YAAAA,MAAAA,EAAQC,sBAAYC,GAAG;AACvBV,YAAAA,IAAAA,EAAMO,gBAAgBP,IAAI;YAC1BJ,IAAMe,EAAAA,yBAAAA,CAAaJ,gBAAgBN,IAAI,CAAA;AACvCpB,YAAAA,GAAAA,EAAK0B,gBAAgB1B,GAAG;AACxB+B,YAAAA,GAAAA,EAAKL,gBAAgB1B,GAAG,CAACG,KAAK,CAAC,KAAKC,GAAG,EAAA;AACvCgB,YAAAA,IAAAA,EAAMM,eAAgBN,CAAAA,IAAI,GAAGM,eAAAA,CAAgBN,IAAI,GAAGF,SAAAA;AACpDG,YAAAA,OAAAA,EAASK,gBAAgBL;SAC3B,CAAA,CAAA;IAEA,OAAOI,MAAAA;AACT;;;;"}

View File

@@ -0,0 +1,37 @@
import { AssetSource } from '../constants.mjs';
import { typeFromMime } from './typeFromMime.mjs';
function getFilenameFromURL(url) {
return new URL(url).pathname.split('/').pop();
}
const urlsToAssets = async (urls)=>{
const assetPromises = urls.map((url)=>fetch(url).then(async (res)=>{
const blob = await res.blob();
const loadedFile = new File([
blob
], getFilenameFromURL(res.url), {
type: res.headers.get('content-type') || undefined
});
return {
name: loadedFile.name,
url: res.url,
mime: res.headers.get('content-type'),
rawFile: loadedFile
};
}));
// Retrieve the assets metadata
const assetsResults = await Promise.all(assetPromises);
const assets = assetsResults.map((fullFilledAsset)=>({
source: AssetSource.Url,
name: fullFilledAsset.name,
type: typeFromMime(fullFilledAsset.mime),
url: fullFilledAsset.url,
ext: fullFilledAsset.url.split('.').pop(),
mime: fullFilledAsset.mime ? fullFilledAsset.mime : undefined,
rawFile: fullFilledAsset.rawFile
}));
return assets;
};
export { urlsToAssets };
//# sourceMappingURL=urlsToAssets.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"urlsToAssets.mjs","sources":["../../../admin/src/utils/urlsToAssets.ts"],"sourcesContent":["import { AssetSource } from '../constants';\n\nimport { typeFromMime } from './typeFromMime';\n\nfunction getFilenameFromURL(url: string) {\n return new URL(url).pathname.split('/').pop();\n}\n\nexport const urlsToAssets = async (urls: string[]) => {\n const assetPromises = urls.map((url) =>\n fetch(url).then(async (res) => {\n const blob = await res.blob();\n\n const loadedFile = new File([blob], getFilenameFromURL(res.url)!, {\n type: res.headers.get('content-type') || undefined,\n });\n\n return {\n name: loadedFile.name,\n url: res.url,\n mime: res.headers.get('content-type'),\n rawFile: loadedFile,\n };\n })\n );\n // Retrieve the assets metadata\n const assetsResults = await Promise.all(assetPromises);\n\n const assets = assetsResults.map((fullFilledAsset) => ({\n source: AssetSource.Url,\n name: fullFilledAsset.name,\n type: typeFromMime(fullFilledAsset.mime!),\n url: fullFilledAsset.url,\n ext: fullFilledAsset.url.split('.').pop(),\n mime: fullFilledAsset.mime ? fullFilledAsset.mime : undefined,\n rawFile: fullFilledAsset.rawFile,\n }));\n\n return assets;\n};\n"],"names":["getFilenameFromURL","url","URL","pathname","split","pop","urlsToAssets","urls","assetPromises","map","fetch","then","res","blob","loadedFile","File","type","headers","get","undefined","name","mime","rawFile","assetsResults","Promise","all","assets","fullFilledAsset","source","AssetSource","Url","typeFromMime","ext"],"mappings":";;;AAIA,SAASA,mBAAmBC,GAAW,EAAA;IACrC,OAAO,IAAIC,IAAID,GAAKE,CAAAA,CAAAA,QAAQ,CAACC,KAAK,CAAC,KAAKC,GAAG,EAAA;AAC7C;AAEO,MAAMC,eAAe,OAAOC,IAAAA,GAAAA;IACjC,MAAMC,aAAAA,GAAgBD,IAAKE,CAAAA,GAAG,CAAC,CAACR,MAC9BS,KAAMT,CAAAA,GAAAA,CAAAA,CAAKU,IAAI,CAAC,OAAOC,GAAAA,GAAAA;YACrB,MAAMC,IAAAA,GAAO,MAAMD,GAAAA,CAAIC,IAAI,EAAA;YAE3B,MAAMC,UAAAA,GAAa,IAAIC,IAAK,CAAA;AAACF,gBAAAA;aAAK,EAAEb,kBAAAA,CAAmBY,GAAIX,CAAAA,GAAG,CAAI,EAAA;AAChEe,gBAAAA,IAAAA,EAAMJ,GAAIK,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAmBC,CAAAA,IAAAA;AAC3C,aAAA,CAAA;YAEA,OAAO;AACLC,gBAAAA,IAAAA,EAAMN,WAAWM,IAAI;AACrBnB,gBAAAA,GAAAA,EAAKW,IAAIX,GAAG;AACZoB,gBAAAA,IAAAA,EAAMT,GAAIK,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAA,CAAA;gBACtBI,OAASR,EAAAA;AACX,aAAA;AACF,SAAA,CAAA,CAAA;;AAGF,IAAA,MAAMS,aAAgB,GAAA,MAAMC,OAAQC,CAAAA,GAAG,CAACjB,aAAAA,CAAAA;AAExC,IAAA,MAAMkB,SAASH,aAAcd,CAAAA,GAAG,CAAC,CAACkB,mBAAqB;AACrDC,YAAAA,MAAAA,EAAQC,YAAYC,GAAG;AACvBV,YAAAA,IAAAA,EAAMO,gBAAgBP,IAAI;YAC1BJ,IAAMe,EAAAA,YAAAA,CAAaJ,gBAAgBN,IAAI,CAAA;AACvCpB,YAAAA,GAAAA,EAAK0B,gBAAgB1B,GAAG;AACxB+B,YAAAA,GAAAA,EAAKL,gBAAgB1B,GAAG,CAACG,KAAK,CAAC,KAAKC,GAAG,EAAA;AACvCgB,YAAAA,IAAAA,EAAMM,eAAgBN,CAAAA,IAAI,GAAGM,eAAAA,CAAgBN,IAAI,GAAGF,SAAAA;AACpDG,YAAAA,OAAAA,EAASK,gBAAgBL;SAC3B,CAAA,CAAA;IAEA,OAAOI,MAAAA;AACT;;;;"}