1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * @file
- * Date-related formatting display method
- */
- import { format } from 'date-fns';
- import { strings } from '../constants';
- import { BaseValueType } from '../foundation';
- /**
- * Formats the displayed date text
- * @param {string[]|Date[]} values
- * @param {string} formatToken
- * @param {Object} groupOptions
- * @param {Object} locale
- * @returns {string}
- */
- export function formatDateValues(
- values: BaseValueType[],
- formatToken: string,
- {
- groupInnerSeparator = strings.DEFAULT_SEPARATOR_RANGE as string,
- groupSize = 1,
- groupSeparator = strings.DEFAULT_SEPARATOR_MULTIPLE as string,
- } = {},
- locale: any
- ) {
- let text = '';
- (groupSize <= 0 || typeof groupSize !== 'number') && (groupSize = 1);
- // console.log(values, formatToken, groupInnerSeparator, groupSize, groupSeparator);
- if (Array.isArray(values) && values.length) {
- const groups = [];
- const { length } = values;
- // chunk
- for (let i = 0; i < length; i++) {
- if (i % groupSize === 0) {
- groups.push([]);
- }
- const curArrIdx = Math.floor(i / groupSize);
- groups[curArrIdx].push(values[i]);
- }
- text = groups
- .map(arr =>
- arr
- .map(v => {
- if (v) {
- // console.log(`formatDateValues() -> formatDateValues: ${v}`);
- return format(v, formatToken, { locale });
- } else {
- return '';
- }
- })
- .join(groupInnerSeparator)
- )
- .join(groupSeparator);
- }
- return text;
- }
|