UNPKG

@playbooks/ui

Version:

An interface library for Playbooks.

145 lines (144 loc) 6.25 kB
"use strict"; 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;