FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
ameliabooking
/
v3
/
src
/
assets
/
js
/
common
Edit File: image.js
let usedColors = [] let colors = [ '1788FB', '4BBEC6', 'FBC22D', 'FA3C52', 'D696B8', '689BCA', '26CC2B', 'FD7E35', 'E38587', '774DFB', '31CDF3', '6AB76C', 'FD5FA1', 'A697C5' ] function usePictureLoad (baseUrls, entity, isPerson) { if (entity !== null) { let name = isPerson === true ? entity.firstName + ' ' + entity.lastName : entity.name if (typeof name !== 'undefined') { entity.pictureThumbPath = entity.pictureThumbPath || imageFromText(baseUrls, name) return entity.pictureThumbPath } } } function getNameInitials (name) { return name.split(' ').map((s) => s.charAt(0)).join('').toUpperCase().substring(0, 3).replace(/[^\w\s]/g, '') } function imageFromText (baseUrls, name, entity = {}, error = false) { let initials = getNameInitials(name) let colorIndex = Math.floor(Math.random() * colors.length) let colorHex = colors[colorIndex] usedColors.push(colors[colorIndex]) colors.splice(colorIndex, 1) if (colors.length === 0) { colors = usedColors usedColors = [] } if (error) { if (entity.firstName) { return baseUrls.wpAmeliaPluginURL + 'public/img/default-employee.svg' } if (entity.latitude) { return baseUrls.wpAmeliaPluginURL + 'public/img/default-location.svg' } return baseUrls.wpAmeliaPluginURL + 'public/img/default-service.svg' } // Make canvas const canvas = document.createElement('canvas'); canvas.width = 100; canvas.height = 100; const ctx = canvas.getContext('2d'); // Draw background color ctx.fillStyle = `#${colorHex}` // Background color ctx.fillRect(0, 0, canvas.width, canvas.height); // Draw initials text ctx.font = '40px Arial'; ctx.fillStyle = '#ffffff'; // Text color ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText(initials, canvas.width / 2, canvas.height / 2); // Convert canvas to data URL (as image source) return canvas.toDataURL('image/png'); } export { usePictureLoad, getNameInitials }
Save
Back