UNPKG

@lazy-cjk/jp-table-comparison

Version:
111 lines 3.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fixPlusTable = fixPlusTable; exports._jpTableCmparisonBuildPre = _jpTableCmparisonBuildPre; exports._jpTableCmparisonBuild = _jpTableCmparisonBuild; exports.addNew = addNew; const array_hyper_unique_1 = require("array-hyper-unique"); const zero_width_1 = require("zero-width"); function fixPlusTable(table) { return table .map(row => { return row .map(s => { if (typeof s === 'string') { return (0, zero_width_1.trimWithZeroWidth)(s); } return s; }); }); } function _jpTableCmparisonBuildPre(table, options) { var _a, _b; const skip = (_a = options === null || options === void 0 ? void 0 : options.skip) !== null && _a !== void 0 ? _a : []; const skip_00 = (_b = options === null || options === void 0 ? void 0 : options.skip_00) !== null && _b !== void 0 ? _b : []; let { TABLE = [], PLUS_TABLE, PLUS_TABLE_SAFE } = table; PLUS_TABLE = fixPlusTable(PLUS_TABLE); PLUS_TABLE_SAFE = fixPlusTable(PLUS_TABLE_SAFE); PLUS_TABLE.forEach(function ([jp, zht, zhs]) { addNew(TABLE, jp, zht, zhs); }); TABLE = (0, array_hyper_unique_1.array_unique)(TABLE.concat(table.teachKanjiComparison.filter(function (row) { if (skip_00.includes(row[0][0])) { return false; } return true; }))); TABLE = TABLE.filter(function (v) { let [jp, zht, zhs] = v; if ((jp[0] == zht[0] && jp[0] == zhs[0]) || (skip.includes(jp[0]) || skip.includes(zht[0]) || skip.includes(zhs[0]))) { return false; } return true; }); const TABLE_SAFE = []; PLUS_TABLE_SAFE.forEach(function ([jp, zht, zhs]) { addNew(TABLE, jp, zht, zhs); addNew(TABLE_SAFE, jp, zht, zhs); }); return { TABLE, TABLE_SAFE, PLUS_TABLE, PLUS_TABLE_SAFE, }; } function _jpTableCmparisonBuild(table, options) { let { TABLE, TABLE_SAFE, PLUS_TABLE, PLUS_TABLE_SAFE, } = _jpTableCmparisonBuildPre(table, options); let cache = []; for (let i in TABLE) { if (cache.includes(i)) { continue; } let [jp, zht, zhs] = TABLE[i]; let _do = true; let j; for (j in TABLE) { if (j == i) { continue; } let [jp2, zht2, zhs2] = TABLE[j]; if (zht.includes(zht2[0])) { _do = false; break; } if (zhs.includes(zhs2[0])) { _do = false; break; } } if (!_do) { cache.push(i); cache.push(j); //console.log(jp, zht, zhs); } else { TABLE_SAFE.push(TABLE[i]); } } (0, array_hyper_unique_1.array_unique_overwrite)(TABLE); (0, array_hyper_unique_1.array_unique_overwrite)(TABLE_SAFE); (0, array_hyper_unique_1.array_unique_overwrite)(PLUS_TABLE); (0, array_hyper_unique_1.array_unique_overwrite)(PLUS_TABLE_SAFE); return { TABLE, TABLE_SAFE, PLUS_TABLE, PLUS_TABLE_SAFE, }; } function addNew(table, jp, zht, zhs) { jp = Array.isArray(jp) ? jp : [jp]; zht = Array.isArray(zht) ? zht : [zht]; zhs = Array.isArray(zhs) ? zhs : [zhs]; table.push([ jp, zht, zhs, ]); return table; } //# sourceMappingURL=core.js.map