1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { extend, padZero, makeArrayProp, clamp } from "../utils/index.mjs";
- import { pickerSharedProps } from "../picker/Picker.mjs";
- const sharedProps = extend({}, pickerSharedProps, {
- modelValue: makeArrayProp(),
- filter: Function,
- formatter: {
- type: Function,
- default: (type, option) => option
- }
- });
- const pickerInheritKeys = Object.keys(pickerSharedProps);
- function times(n, iteratee) {
- if (n < 0) {
- return [];
- }
- const result = Array(n);
- let index = -1;
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
- }
- const getMonthEndDay = (year, month) => 32 - new Date(year, month - 1, 32).getDate();
- const genOptions = (min, max, type, formatter, filter, values) => {
- const options = times(max - min + 1, (index) => {
- const value = padZero(min + index);
- return formatter(type, {
- text: value,
- value
- });
- });
- return filter ? filter(type, options, values) : options;
- };
- const formatValueRange = (values, columns) => values.map((value, index) => {
- const column = columns[index];
- if (column.length) {
- const minValue = +column[0].value;
- const maxValue = +column[column.length - 1].value;
- return padZero(clamp(+value, minValue, maxValue));
- }
- return value;
- });
- export {
- formatValueRange,
- genOptions,
- getMonthEndDay,
- pickerInheritKeys,
- sharedProps,
- times
- };
|