@playbooks/ui
Version:
An interface library for Playbooks.
145 lines (144 loc) • 6.25 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const transforms = require("./transforms-Ca9m4pGF.cjs");
const addOrRemoveItem = (array = [], record) => {
return array.includes(record) ? array.filter((a) => a !== record) : array.concat(record);
};
const moveAndSort = (array, record, dragIndex, hoverIndex, key = "id") => {
const pre = dragIndex < hoverIndex ? array.slice(0, hoverIndex + 1) : array.slice(0, hoverIndex);
const post = dragIndex < hoverIndex ? array.slice(hoverIndex + 1) : array.slice(hoverIndex);
const formatted = [...pre.filter((v) => v[key] !== record[key]), record, ...post.filter((v) => v[key] !== record[key])];
return formatted.map((v, i) => ({ ...v, order: i }));
};
const removeAndSort = (array, index) => {
const pre = array.slice(0, index);
const post = array.slice(index + 1);
const formatted = [...pre, ...post];
return formatted.map((v, i) => ({ ...v, order: i }));
};
const updateAndSort = (array, record, index) => {
const pre = array.slice(0, index);
const post = array.slice(index + 1, array.length);
const formatted = index >= 0 ? [...pre, record, ...post] : array.concat(record);
return formatted.map((v, i) => ({ ...v, order: i }));
};
const findRecordAndReplace = (array = [], selectedRecord, newRecord, keyName) => {
const index = array.findIndex((v) => v[keyName] === selectedRecord[keyName]);
const pre = array.slice(0, index);
const formattedRecord = { ...array[index], ...newRecord };
const post = array.slice(index + 1, array.length);
return [...pre, formattedRecord, ...post];
};
const performDownload = async (response, fileName) => {
const blob = await response.blob();
const newBlob = new Blob([blob]);
const blobUrl = window.URL.createObjectURL(newBlob);
const link = document.createElement("a");
link.href = blobUrl;
link.setAttribute("download", fileName);
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
window.URL.revokeObjectURL(blobUrl);
};
const clearInput = (element) => {
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
nativeInputValueSetter.call(element, "");
const inputEvent = new Event("input", { bubbles: true });
element.dispatchEvent(inputEvent);
};
const avg = (array = []) => {
return array.reduce((a, b) => a + b, 0) / array.length;
};
const max = (array = []) => {
return Math.max(...array);
};
const min = (array = []) => {
return Math.min(...array);
};
const sum = (array = []) => {
return array.reduce((a, b) => a + b, 0);
};
const nonAlphaNumericRegex = /[^a-zA-Z0-9- ]/g;
const alphaNumericRegex = /^([a-zA-Z]|[0-9]|-)+$/g;
const httpRegex = /(?:https?):\/\/(\w+:?\w*)/g;
const nonAlphaNumericRegexString = "[^a-zA-Z0-9- ]";
const alphaNumericRegexString = "^([a-zA-Z]|[0-9]|-)+$";
const httpRegexString = "^https?://";
exports.camelToDash = transforms.camelToDash;
exports.camelToString = transforms.camelToString;
exports.camelToUnderscore = transforms.camelToUnderscore;
exports.capitalize = transforms.capitalize;
exports.chunkArray = transforms.chunkArray;
exports.computeBytes = transforms.computeBytes;
exports.computeProps = transforms.computeProps;
exports.computeTailwind = transforms.computeTailwind;
exports.dashToCamel = transforms.dashToCamel;
exports.dashToCapital = transforms.dashToCapital;
exports.dashToString = transforms.dashToString;
exports.dashToUnderscore = transforms.dashToUnderscore;
exports.dayjs = transforms.dayjs;
exports.deCapitalize = transforms.deCapitalize;
exports.displayBytes = transforms.displayBytes;
exports.env = transforms.env;
exports.formatDate = transforms.formatDate;
exports.formatError = transforms.formatError;
exports.formatErrors = transforms.formatErrors;
exports.formatTimestamp = transforms.formatTimestamp;
exports.formattedError = transforms.formattedError;
exports.fromCents = transforms.fromCents;
exports.fromUnix = transforms.fromUnix;
exports.getPlural = transforms.getPlural;
exports.getRandomInt = transforms.getRandomInt;
exports.getSeconds = transforms.getSeconds;
exports.getSingular = transforms.getSingular;
exports.getUUID = transforms.getUUID;
exports.isArray = transforms.isArray;
exports.isDate = transforms.isDate;
exports.isEmpty = transforms.isEmpty;
exports.isFunction = transforms.isFunction;
exports.isObject = transforms.isObject;
exports.isString = transforms.isString;
exports.listBuilder = transforms.listBuilder;
exports.logger = transforms.logger;
exports.mapChildren = transforms.mapChildren;
exports.parseBoolean = transforms.parseBoolean;
exports.phoneToString = transforms.phoneToString;
exports.shuffleArray = transforms.shuffleArray;
exports.sleep = transforms.sleep;
exports.stringToUnderscore = transforms.stringToUnderscore;
exports.stripHtmlEntities = transforms.stripHtmlEntities;
exports.timeElapsed = transforms.timeElapsed;
exports.toCents = transforms.toCents;
exports.toCurrency = transforms.toCurrency;
exports.toDate = transforms.toDate;
exports.toEndOfTime = transforms.toEndOfTime;
exports.toJson = transforms.toJson;
exports.toNumber = transforms.toNumber;
exports.toPercent = transforms.toPercent;
exports.toPhone = transforms.toPhone;
exports.toShortNumber = transforms.toShortNumber;
exports.toStartOfTime = transforms.toStartOfTime;
exports.toTimezone = transforms.toTimezone;
exports.toUnix = transforms.toUnix;
exports.toYear = transforms.toYear;
exports.truncate = transforms.truncate;
exports.underscoreToString = transforms.underscoreToString;
exports.zonedDayjs = transforms.zonedDayjs;
exports.addOrRemoveItem = addOrRemoveItem;
exports.alphaNumericRegex = alphaNumericRegex;
exports.alphaNumericRegexString = alphaNumericRegexString;
exports.avg = avg;
exports.clearInput = clearInput;
exports.findRecordAndReplace = findRecordAndReplace;
exports.httpRegex = httpRegex;
exports.httpRegexString = httpRegexString;
exports.max = max;
exports.min = min;
exports.moveAndSort = moveAndSort;
exports.nonAlphaNumericRegex = nonAlphaNumericRegex;
exports.nonAlphaNumericRegexString = nonAlphaNumericRegexString;
exports.performDownload = performDownload;
exports.removeAndSort = removeAndSort;
exports.sum = sum;
exports.updateAndSort = updateAndSort;