2017-03-18 10:21:18 +01:00
|
|
|
"use strict";
|
|
|
|
|
2016-12-18 16:53:28 +01:00
|
|
|
// Generates a string from "color-1" to "color-32" based on an input string
|
2019-11-16 18:24:03 +01:00
|
|
|
export default (str) => {
|
2018-01-11 12:33:36 +01:00
|
|
|
let hash = 0;
|
2018-02-20 08:28:04 +01:00
|
|
|
|
2018-01-11 12:33:36 +01:00
|
|
|
for (let i = 0; i < str.length; i++) {
|
2016-12-18 16:53:28 +01:00
|
|
|
hash += str.charCodeAt(i);
|
2016-05-12 08:15:02 +02:00
|
|
|
}
|
2016-12-18 16:53:28 +01:00
|
|
|
|
2018-07-03 11:51:10 +02:00
|
|
|
/*
|
|
|
|
Modulo 32 lets us be case insensitive for ascii
|
|
|
|
due to A being ascii 65 (100 0001)
|
|
|
|
while a being ascii 97 (110 0001)
|
|
|
|
*/
|
2019-07-17 11:33:59 +02:00
|
|
|
return "color-" + (1 + (hash % 32));
|
2016-12-18 16:53:28 +01:00
|
|
|
};
|