UNPKG

timered-counter

Version:

Make the value change more vivid and natural

81 lines 3.04 kB
import { isArray, isFunction, merge } from 'remeda'; export function extractGroupOption(option, getterOptions) { return (isFunction(option) ? option(getterOptions) : option); } export function extractPartOption(option, getterOptions) { const groupOption = extractGroupOption(option, getterOptions); const { data } = getterOptions; const result = []; for (let i = 0; i < data.length; i += 1) { const value = isArray(groupOption) ? groupOption[i] : groupOption; result.push(value); } return result; } export function extractPartDigitOption(option, getterOptions) { const extractedOption = extractPartOption(option, getterOptions); const { data } = getterOptions; const result = []; for (let i = 0; i < data.length; i += 1) { const { digits } = data[i]; const partOption = extractedOption[i]; result.push([]); for (let j = 0; j < digits.length; j += 1) { const value = isArray(partOption) ? partOption[j] : partOption; result[i].push(value); } } return result; } export function extractPartDigitCellOption(option, getterOptions) { const extractedOption = extractPartDigitOption(option, getterOptions); const { data } = getterOptions; const result = []; for (let i = 0; i < data.length; i += 1) { const { digits } = data[i]; const partOption = extractedOption[i]; result.push([]); for (let j = 0; j < digits.length; j += 1) { const { data: digitData } = digits[j]; const partDigitOption = partOption[j]; result[i].push([]); for (let k = 0; k < digitData.length; k += 1) { const value = isArray(partDigitOption) ? partDigitOption[k] : partDigitOption; result[i][j].push(value); } } } return result; } export function mergeGroupOption(data, source) { return merge(data ?? {}, source ?? {}); } export function mergePartOption(data = [], source = []) { const keys = Array.from(new Set(Object.keys(data).concat(Object.keys(source)))); for (const key of keys) { const index = Number.parseInt(key, 10); data[index] = mergeGroupOption(data[index], source[index]); } return data; } export function mergePartDigitOption(data = [], source = []) { const keys = Array.from(new Set(Object.keys(data).concat(Object.keys(source)))); for (const key of keys) { const index = Number.parseInt(key, 10); data[index] = mergePartOption(data[index], source[index]); } return data; } export function mergePartDigitCellOption(data = [], source = []) { const keys = Array.from(new Set(Object.keys(data).concat(Object.keys(source)))); for (const key of keys) { const index = Number.parseInt(key, 10); data[index] = mergePartDigitOption(data[index], source[index]); } return data; } //# sourceMappingURL=extract-group-option.js.map