UNPKG

suranadira-core

Version:

Strokes, Elements, Words and Phases of Suranadira

349 lines (341 loc) 8.43 kB
/** * Suranadira Words. * * @module * @exports (default) suranadiraWords * @exports getWordID * @exports getCompositionByWordID * @exports countWords * * @link suranadira-core/words.suranadira.js * @file A list of Suranadira Words and helper functions. * @memberof suranadira-core * * @author Armands Strazds <strazds@gmal.com> * @since 0.0.1 */ /** * suranadiraWords, an object list defining the structure of the Suranadira Words. * * Syntax: * @property {Array} values, an array of truth values * @property {Array} elements, an array of arrays: ["element", offset] * * @since 0.0.1 * @access public * */ const suranadiraWords = { 0: { values: [0, 0, 0, 0], elements: [["M", 0], ["M", 0], ["M", 0], ["M", 0]] }, 1: { values: [0, 0, 0, 0], elements: [["AI", 0], ["M", 0], ["M", 0], ["M", 0]] }, 2: { values: [0, 0, 0, 0], elements: [["Z", 0], ["IA", 0], ["M", 0], ["M", 0]] }, 3: { values: [1, 0, 0, 0], elements: [["J", 1], ["AI", 0], ["M", 0], ["M", 0]] }, 4: { values: [1, 0, 0, 0], elements: [["IV", 0], ["IA", 0], ["M", 0], ["M", 0]] }, 5: { values: [1, 0, 0, 0], elements: [["I", 0], ["IA", 0], ["M", 0], ["M", 0]] }, 6: { values: [1, 0, 0, 0], elements: [["I", 0], ["S", 0], ["AI", 0], ["M", 0]] }, 7: { values: [0, 1, 0, 0], elements: [["M", 0], ["IV", 0], ["IA", 0], ["M", 0]] }, 8: { values: [0, 1, 0, 0], elements: [["AI", 0], ["IV", 0], ["IA", 0], ["M", 0]] }, 9: { values: [0, 1, 0, 0], elements: [["Z", 0], ["I", 0], ["IA", 0], ["M", 0]] }, 10: { values: [1, 1, 0, 0], elements: [["J", 1], ["I", 1], ["AI", 0], ["M", 0]] }, 11: { values: [1, 1, 0, 0], elements: [["VI", 0], ["I", 1], ["AI", 0], ["M", 0]] }, 12: { values: [1, 1, 0, 0], elements: [["VI", 0], ["I", 1], ["Z", 0], ["IA", 0]] }, 13: { values: [1, 1, 0, 0], elements: [["I", 1], ["I", 1], ["Z", 0], ["IA", 0]] }, 14: { values: [0, 0, 1, 0], elements: [["M", 0], ["M", 0], ["VI", 0], ["AI", 0]] }, 15: { values: [0, 0, 1, 0], elements: [["AI", 0], ["M", 0], ["VI", 0], ["AI", 0]] }, 16: { values: [0, 0, 1, 0], elements: [["Z", 0], ["IA", 0], ["VI", 0], ["AI", 0]] }, 17: { values: [1, 0, 1, 0], elements: [["J", 0], ["AI", -1], ["IV", 1], ["IA", 1]] }, 18: { values: [1, 0, 1, 0], elements: [["IV", 0], ["IA", 0], ["VI", 0], ["AI", 0]] }, 19: { values: [1, 0, 1, 0], elements: [["I", 0], ["IA", 0], ["VI", 0], ["AI", 0]] }, 20: { values: [1, 0, 1, 0], elements: [["I", 0], ["S", 0], ["I", 1], ["AI", 0]] }, 21: { values: [0, 1, 1, 0], elements: [["M", 0], ["IV", 0], ["I", 0], ["IA", 0]] }, 22: { values: [0, 1, 1, 0], elements: [["AI", 0], ["IV", 0], ["I", 0], ["S", 0]] }, 23: { values: [0, 1, 1, 0], elements: [["Z", 0], ["I", 0], ["I", 0], ["S", 0]] }, 24: { values: [1, 1, 1, 0], elements: [["IV", 0], ["I", 0], ["I", 0], ["S", 0]] }, 25: { values: [1, 1, 1, 0], elements: [["I", 0], ["I", 0], ["I", 0], ["S", 0]] }, 26: { values: [0, 0, 0, 1], elements: [["M", 0], ["M", 0], ["M", 0], ["IV", 0]] }, 27: { values: [0, 0, 0, 1], elements: [["AI", 0], ["M", 0], ["M", 0], ["IV", 0]] }, 28: { values: [0, 0, 0, 1], elements: [["Z", 0], ["IA", 0], ["M", 0], ["IV", 0]] }, 29: { values: [1, 0, 0, 1], elements: [["J", 1], ["AI", 0], ["M", 0], ["VI", 0]] }, 30: { values: [1, 0, 0, 1], elements: [["IV", 0], ["IA", 0], ["M", 0], ["IV", 0]] }, 31: { values: [1, 0, 0, 1], elements: [["I", 0], ["IA", 0], ["M", 0], ["IV", 0]] }, 32: { values: [1, 0, 0, 1], elements: [["I", 0], ["S", 0], ["AI", 0], ["IV", 0]] }, 33: { values: [0, 1, 0, 1], elements: [["M", 0], ["VI", 0], ["AI", 0], ["IV", 0]] }, 34: { values: [0, 1, 0, 1], elements: [["AI", -1], ["IV", -1], ["AI", 1], ["IV", 1]] }, 35: { values: [0, 1, 0, 1], elements: [["Z", 0.5], ["I", 0.5], ["AI", -0.5], ["IV", -0.5]] }, 36: { values: [1, 1, 0, 1], elements: [["J", 1], ["I", 1], ["AI", 0], ["IV", 0]] }, 37: { values: [1, 1, 0, 1], elements: [["VI", 0], ["I", 1], ["AI", 0], ["IV", 0]] }, 38: { values: [1, 1, 0, 1], elements: [["VI", 0], ["I", 1], ["Z", 0], ["I", 0]] }, 39: { values: [1, 1, 0, 1], elements: [["I", 1], ["I", 1], ["Z", 0], ["I", 0]] }, 40: { values: [0, 0, 1, 1], elements: [["M", 0], ["M", 0], ["VI", 0], ["I", 1]] }, 41: { values: [0, 0, 1, 1], elements: [["AI", 0], ["M", 0], ["VI", 0], ["I", 1]] }, 42: { values: [0, 0, 1, 1], elements: [["Z", 0], ["IA", 0], ["VI", 0], ["I", 1]] }, 43: { values: [1, 0, 1, 1], elements: [["J", 0], ["AI", -1], ["IV", 1], ["I", 1]] }, 44: { values: [1, 0, 1, 1], elements: [["IV", 0], ["IA", 0], ["VI", 0], ["I", 1]] }, 45: { values: [1, 0, 1, 1], elements: [["I", 0], ["IA", 0], ["VI", 0], ["I", 1]] }, 46: { values: [1, 0, 1, 1], elements: [["I", 0], ["S", 0], ["I", 1], ["I", 1]] }, 47: { values: [0, 1, 1, 1], elements: [["M", 0], ["IV", 0], ["I", 0], ["I", 0]] }, 48: { values: [0, 1, 1, 1], elements: [["AI", 0], ["IV", 0], ["I", 0], ["I", 0]] }, 49: { values: [0, 1, 1, 1], elements: [["Z", 0], ["I", 0], ["I", 0], ["I", 0]] }, 50: { values: [1, 1, 1, 1], elements: [["VI", 0], ["I", 1], ["I", 1], ["I", 1]] }, 51: { values: [1, 1, 1, 1], elements: [["I", 0.5], ["I", 0.5], ["I", 0.5], ["I", 0.5]] }, 52: { values: [0, 0, 0, 0], elements: [["H", 0], ["H", 0], ["H", 0], ["H", 0]] }, 53: { values: [1, 0, 0, 0], elements: [["J", 0], ["IA", 0], ["M", 0], ["M", 0]] }, 54: { values: [0, 1, 0, 0], elements: [["H", 0], ["V", 0], ["A", 0], ["H", 0]] }, 55: { values: [1, 1, 0, 0], elements: [["J", 0.5], ["I", 0.5], ["W", 0.5], ["H", -0.5]] }, 56: { values: [0, 0, 1, 0], elements: [["H", 1], ["H", 1], ["J", 1], ["AI", 0]] }, 57: { values: [1, 0, 1, 0], elements: [["J", 0], ["IA", 0], ["VI", 0], ["AI", 0]] }, 58: { values: [0, 1, 1, 0], elements: [["H", 0], ["V", 0], ["i", 0], ["A", 0]] }, 59: { values: [1, 1, 1, 0], elements: [["J", 0], ["I", 0], ["I", 0], ["S", 0]] }, 60: { values: [0, 0, 0, 1], elements: [["H", 0], ["H", 0], ["H", 0], ["V", 0]] }, 61: { values: [1, 0, 0, 1], elements: [["J", 0], ["IA", 0], ["M", 0], ["IV", 0]] }, 62: { values: [0, 1, 0, 1], elements: [["H", -1], ["V", -1], ["AI", 0], ["IV", 0]] }, 63: { values: [1, 1, 0, 1], elements: [["J", 1], ["I", 1], ["W", 1], ["J", 0]] }, 64: { values: [0, 0, 1, 1], elements: [["H", 0.5], ["H", 0.5], ["J", 0.5], ["I", 0.5]] }, 65: { values: [1, 0, 1, 1], elements: [["J", 0], ["IA", 0], ["VI", 0], ["I", 1]] }, 66: { values: [0, 1, 1, 1], elements: [["H", 0], ["V", 0], ["i", 0], ["i", 0]] }, 67: { values: [1, 1, 1, 1], elements: [["J", 0.5], ["I", 0.5], ["I", 0.5], ["I", 0.5]] } }; /** * Get Word ID by Composition of Elements * * @param {Array} elements */ export const getWordID = elements => { let words = suranadiraWords; let c = JSON.stringify(elements); let a = []; for (let word in words) { for (let n = 0; n < elements.length; n++) { a.push(words[word].elements[n][0]); } if (c === JSON.stringify(a)) { return word; } a = []; } }; /** * Get Composition of Elements by Word ID * * @param {Number} wordID */ export const getCompositionByWordID = wordID => { let cmp = suranadiraWords[wordID]; cmp = cmp.elements.map(el => el[0]); return cmp; }; /** * Get the Words count */ export const countWords = () => 68; const defaultExport = { suranadiraWords, getWordID, getCompositionByWordID, countWords }; export default defaultExport;