kwikui
Version:
KwikID's UI Component Library in Angular
72 lines • 9.95 kB
JavaScript
import { checkObjectKeyExists, isBoolean, isImage, isObject, isPdf, isVideo } from "kwikid-toolkit";
import { EKwikUILabelValuePairType } from "./label-value-pair.definitions";
export const formatData = (data) => {
const formattedData = [];
for (const key in data) {
if (checkObjectKeyExists(data, key)) {
if (!isObject(data[key])) {
formattedData.push({
key,
value: data[key]
});
}
else if (checkObjectKeyExists(data[key], "key")) {
formattedData.push(data[key]);
}
}
}
return formattedData;
};
export const assignTypeToValue = (value) => {
const stringifiedValue = value.toString();
return isBoolean(value)
? EKwikUILabelValuePairType.BOOLEAN
: isObject(value)
? EKwikUILabelValuePairType.OBJECT
: isVideo(stringifiedValue)
? EKwikUILabelValuePairType.VIDEO
: isPdf(stringifiedValue)
? EKwikUILabelValuePairType.PDF
: isValidBase64Image(stringifiedValue) || isImage(stringifiedValue)
? EKwikUILabelValuePairType.IMAGE
: isValidDocumentUrl(stringifiedValue)
? EKwikUILabelValuePairType.DOC
: "";
};
// TOOLKIT
export const fixImageFormat = (image) => {
image = image.toString();
if (!(image === null || image === void 0 ? void 0 : image.startsWith("data:image")) && isValidBase64Image(image)) {
image = `data:image/png;base64,${image}`;
}
return image;
};
// TOOLKIT
export const isValidBase64Image = (url) => {
if (url.startsWith("data:image/")) {
const base64Index = url.indexOf(";base64,");
let slicedBase64String = "";
if (base64Index !== -1) {
slicedBase64String = url.slice(base64Index);
}
}
const imageTypes = ["PNG", "JPG", "JPEG", "BMP", "GIF", "SVG"];
let binaryValue = "";
try {
binaryValue = atob(url);
}
catch (error) {
// console.log("Not a valid Base64 input: ", error);
}
return !!imageTypes.some((format) => binaryValue.includes(format));
};
export const isValidDocumentUrl = (url) => {
// Array of document formats
const documentFormats = ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf"];
// Get the file extension from the URL
const urlParts = url.split(".");
const extension = urlParts[urlParts.length - 1].toLowerCase();
// Check if the extension exists in the documentFormats array
return documentFormats.includes(extension);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtdmFsdWUtcGFpci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lrdWkvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS9sYWJlbC12YWx1ZS1wYWlyL2xhYmVsLXZhbHVlLXBhaXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE9BQU8sRUFDUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBTyxFQUFFO0lBQzNDLE1BQU0sYUFBYSxHQUFvQyxFQUFFLENBQUM7SUFFMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDdEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDakIsR0FBRztvQkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDL0I7U0FDRjtLQUNGO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFVLEVBQVUsRUFBRTtJQUN0RCxN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LGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGlzQm9vbGVhbixcbiAgaXNJbWFnZSxcbiAgaXNPYmplY3QsXG4gIGlzUGRmLFxuICBpc1ZpZGVvXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRUt3aWtVSUxhYmVsVmFsdWVQYWlyVHlwZSB9IGZyb20gXCIuL2xhYmVsLXZhbHVlLXBhaXIuZGVmaW5pdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGEgPSAoZGF0YTogYW55KTogYW55ID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkRGF0YTogQXJyYXk8eyBrZXk6IGFueTsgdmFsdWU6IGFueSB9PiA9IFtdO1xuXG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZGF0YSwga2V5KSkge1xuICAgICAgaWYgKCFpc09iamVjdChkYXRhW2tleV0pKSB7XG4gICAgICAgIGZvcm1hdHRlZERhdGEucHVzaCh7XG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHZhbHVlOiBkYXRhW2tleV1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGRhdGFba2V5XSwgXCJrZXlcIikpIHtcbiAgICAgICAgZm9ybWF0dGVkRGF0YS5wdXNoKGRhdGFba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtYXR0ZWREYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGFzc2lnblR5cGVUb1ZhbHVlID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzdHJpbmdpZmllZFZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSlcbiAgICA/IEVLd2lrVUlMYWJlbFZhbHVlUGFpclR5cGUuQk9PTEVBTlxuICAgIDogaXNPYmplY3QodmFsdWUpXG4gICAgICA/IEVLd2lrVUlMYWJlbFZhbHVlUGFpclR5cGUuT0JKRUNUXG4gICAgICA6IGlzVmlkZW8oc3RyaW5naWZpZWRWYWx1ZSlcbiAgICAgICAgPyBFS3dpa1VJTGFiZWxWYWx1ZVBhaXJUeXBlLlZJREVPXG4gICAgICAgIDogaXNQZGYoc3RyaW5naWZpZWRWYWx1ZSlcbiAgICAgICAgICA/IEVLd2lrVUlMYWJlbFZhbHVlUGFpclR5cGUuUERGXG4gICAgICAgICAgOiBpc1ZhbGlkQmFzZTY0SW1hZ2Uoc3RyaW5naWZpZWRWYWx1ZSkgfHwgaXNJbWFnZShzdHJpbmdpZmllZFZhbHVlKVxuICAgICAgICAgICAgPyBFS3dpa1VJTGFiZWxWYWx1ZVBhaXJUeXBlLklNQUdFXG4gICAgICAgICAgICA6IGlzVmFsaWREb2N1bWVudFVybChzdHJpbmdpZmllZFZhbHVlKVxuICAgICAgICAgICAgICA/IEVLd2lrVUlMYWJlbFZhbHVlUGFpclR5cGUuRE9DXG4gICAgICAgICAgICAgIDogXCJcIjtcbn07XG5cbi8vIFRPT0xLSVRcbmV4cG9ydCBjb25zdCBmaXhJbWFnZUZvcm1hdCA9IChpbWFnZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaW1hZ2UgPSBpbWFnZS50b1N0cmluZygpO1xuICBpZiAoIWltYWdlPy5zdGFydHNXaXRoKFwiZGF0YTppbWFnZVwiKSAmJiBpc1ZhbGlkQmFzZTY0SW1hZ2UoaW1hZ2UpKSB7XG4gICAgaW1hZ2UgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LCR7aW1hZ2V9YDtcbiAgfVxuICByZXR1cm4gaW1hZ2U7XG59O1xuXG4vLyBUT09MS0lUXG5leHBvcnQgY29uc3QgaXNWYWxpZEJhc2U2NEltYWdlID0gKHVybDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICh1cmwuc3RhcnRzV2l0aChcImRhdGE6aW1hZ2UvXCIpKSB7XG4gICAgY29uc3QgYmFzZTY0SW5kZXggPSB1cmwuaW5kZXhPZihcIjtiYXNlNjQsXCIpO1xuICAgIGxldCBzbGljZWRCYXNlNjRTdHJpbmcgPSBcIlwiO1xuICAgIGlmIChiYXNlNjRJbmRleCAhPT0gLTEpIHtcbiAgICAgIHNsaWNlZEJhc2U2NFN0cmluZyA9IHVybC5zbGljZShiYXNlNjRJbmRleCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGltYWdlVHlwZXMgPSBbXCJQTkdcIiwgXCJKUEdcIiwgXCJKUEVHXCIsIFwiQk1QXCIsIFwiR0lGXCIsIFwiU1ZHXCJdO1xuICBsZXQgYmluYXJ5VmFsdWUgPSBcIlwiO1xuICB0cnkge1xuICAgIGJpbmFyeVZhbHVlID0gYXRvYih1cmwpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGNvbnNvbGUubG9nKFwiTm90IGEgdmFsaWQgQmFzZTY0IGlucHV0OiBcIiwgZXJyb3IpO1xuICB9XG4gIHJldHVybiAhIWltYWdlVHlwZXMuc29tZSgoZm9ybWF0KSA9PiBiaW5hcnlWYWx1ZS5pbmNsdWRlcyhmb3JtYXQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkRG9jdW1lbnRVcmwgPSAodXJsOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgLy8gQXJyYXkgb2YgZG9jdW1lbnQgZm9ybWF0c1xuICBjb25zdCBkb2N1bWVudEZvcm1hdHMgPSBbXCJkb2NcIiwgXCJkb2N4XCIsIFwieGxzXCIsIFwieGxzeFwiLCBcInBwdFwiLCBcInBwdHhcIiwgXCJwZGZcIl07XG5cbiAgLy8gR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBmcm9tIHRoZSBVUkxcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoXCIuXCIpO1xuICBjb25zdCBleHRlbnNpb24gPSB1cmxQYXJ0c1t1cmxQYXJ0cy5sZW5ndGggLSAxXS50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIENoZWNrIGlmIHRoZSBleHRlbnNpb24gZXhpc3RzIGluIHRoZSBkb2N1bWVudEZvcm1hdHMgYXJyYXlcbiAgcmV0dXJuIGRvY3VtZW50Rm9ybWF0cy5pbmNsdWRlcyhleHRlbnNpb24pO1xufTtcbiJdfQ==