ngx-material-timepicker-decon
Version:
Handy material design timepicker for angular DECONied
78 lines • 8.42 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { TimeAdapter } from '../services/time-adapter';
import { TimeFormat } from '../models/time-format.enum';
import { DateTime } from 'luxon';
/**
* @param {?} format
* @return {?}
*/
export function getHours(format) {
return Array(format).fill(1).map((v, i) => {
/** @type {?} */
const angleStep = 30;
/** @type {?} */
const time = v + i;
/** @type {?} */
const angle = angleStep * time;
return { time: time === 24 ? 0 : time, angle };
});
}
/**
* @param {?} hours
* @param {?} config
* @return {?}
*/
export function disableHours(hours, config) {
if (config.min || config.max) {
return hours.map(value => {
/** @type {?} */
const hour = config.format === 24 ? value.time : TimeAdapter.formatHour(value.time, config.format, config.period);
/** @type {?} */
const currentTime = DateTime.fromObject({ hour }).toFormat(TimeFormat.TWELVE);
return Object.assign({}, value, { disabled: !TimeAdapter.isTimeAvailable(currentTime, config.min, config.max, 'hours') });
});
}
return hours;
}
/**
* @param {?=} gap
* @return {?}
*/
export function getMinutes(gap = 1) {
/** @type {?} */
const minutesCount = 60;
/** @type {?} */
const angleStep = 360 / minutesCount;
/** @type {?} */
const minutes = [];
for (let i = 0; i < minutesCount; i++) {
/** @type {?} */
const angle = angleStep * i;
if (i % gap === 0) {
minutes.push({ time: i, angle: angle !== 0 ? angle : 360 });
}
}
return minutes;
}
/**
* @param {?} minutes
* @param {?} selectedHour
* @param {?} config
* @return {?}
*/
export function disableMinutes(minutes, selectedHour, config) {
if (config.min || config.max) {
/** @type {?} */
const hour = TimeAdapter.formatHour(selectedHour, config.format, config.period);
return minutes.map(value => {
/** @type {?} */
const currentTime = DateTime.fromObject({ hour, minute: value.time }).toFormat(TimeFormat.TWELVE);
return Object.assign({}, value, { disabled: !TimeAdapter.isTimeAvailable(currentTime, config.min, config.max, 'minutes') });
});
}
return minutes;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXItZGVjb24vIiwic291cmNlcyI6WyJzcmMvYXBwL21hdGVyaWFsLXRpbWVwaWNrZXIvdXRpbHMvdGltZXBpY2tlci10aW1lLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7Ozs7O0FBR2pDLE1BQU0sVUFBVSxRQUFRLENBQUMsTUFBYztJQUNuQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFOztjQUNoQyxTQUFTLEdBQUcsRUFBRTs7Y0FDZCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUM7O2NBQ1osS0FBSyxHQUFHLFNBQVMsR0FBRyxJQUFJO1FBQzlCLE9BQU8sRUFBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQXNCLEVBQUUsTUFBMEI7SUFDM0UsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFFMUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFOztrQkFDZixJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUM7O2tCQUMzRyxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFFM0UseUJBQ08sS0FBSyxJQUNSLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFDdEY7UUFDTixDQUFDLENBQUMsQ0FBQztLQUNOO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDOztVQUN4QixZQUFZLEdBQUcsRUFBRTs7VUFDakIsU0FBUyxHQUFHLEdBQUcsR0FBRyxZQUFZOztVQUM5QixPQUFPLEdBQUcsRUFBRTtJQUVsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFOztjQUM3QixLQUFLLEdBQUcsU0FBUyxHQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7U0FDN0Q7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXdCLEVBQUUsWUFBb0IsRUFBRSxNQUEwQjtJQUNyRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTs7Y0FFcEIsSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUUvRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7O2tCQUNqQixXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFFL0YseUJBQ08sS0FBSyxJQUNSLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsSUFDeEY7UUFDTixDQUFDLENBQUMsQ0FBQztLQUNOO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb2NrRmFjZVRpbWUgfSBmcm9tICcuLi9tb2RlbHMvY2xvY2stZmFjZS10aW1lLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaW1lQWRhcHRlciB9IGZyb20gJy4uL3NlcnZpY2VzL3RpbWUtYWRhcHRlcic7XG5pbXBvcnQgeyBUaW1lRm9ybWF0IH0gZnJvbSAnLi4vbW9kZWxzL3RpbWUtZm9ybWF0LmVudW0nO1xuaW1wb3J0IHsgRGlzYWJsZWRUaW1lQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2Rpc2FibGVkLXRpbWUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG91cnMoZm9ybWF0OiBudW1iZXIpOiBDbG9ja0ZhY2VUaW1lW10ge1xuICAgIHJldHVybiBBcnJheShmb3JtYXQpLmZpbGwoMSkubWFwKCh2LCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGFuZ2xlU3RlcCA9IDMwO1xuICAgICAgICBjb25zdCB0aW1lID0gdiArIGk7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gYW5nbGVTdGVwICogdGltZTtcbiAgICAgICAgcmV0dXJuIHt0aW1lOiB0aW1lID09PSAyNCA/IDAgOiB0aW1lLCBhbmdsZX07XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlSG91cnMoaG91cnM6IENsb2NrRmFjZVRpbWVbXSwgY29uZmlnOiBEaXNhYmxlZFRpbWVDb25maWcpOiBDbG9ja0ZhY2VUaW1lW10ge1xuICAgIGlmIChjb25maWcubWluIHx8IGNvbmZpZy5tYXgpIHtcblxuICAgICAgICByZXR1cm4gaG91cnMubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhvdXIgPSBjb25maWcuZm9ybWF0ID09PSAyNCA/IHZhbHVlLnRpbWUgOiBUaW1lQWRhcHRlci5mb3JtYXRIb3VyKHZhbHVlLnRpbWUsIGNvbmZpZy5mb3JtYXQsIGNvbmZpZy5wZXJpb2QpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHtob3VyfSkudG9Gb3JtYXQoVGltZUZvcm1hdC5UV0VMVkUpO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhVGltZUFkYXB0ZXIuaXNUaW1lQXZhaWxhYmxlKGN1cnJlbnRUaW1lLCBjb25maWcubWluLCBjb25maWcubWF4LCAnaG91cnMnKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBob3Vycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbnV0ZXMoZ2FwID0gMSk6IENsb2NrRmFjZVRpbWVbXSB7XG4gICAgY29uc3QgbWludXRlc0NvdW50ID0gNjA7XG4gICAgY29uc3QgYW5nbGVTdGVwID0gMzYwIC8gbWludXRlc0NvdW50O1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWludXRlc0NvdW50OyBpKyspIHtcbiAgICAgICAgY29uc3QgYW5nbGUgPSBhbmdsZVN0ZXAgKiBpO1xuICAgICAgICBpZiAoaSAlIGdhcCA9PT0gMCkge1xuICAgICAgICAgICAgbWludXRlcy5wdXNoKHt0aW1lOiBpLCBhbmdsZTogYW5nbGUgIT09IDAgPyBhbmdsZSA6IDM2MH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtaW51dGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZU1pbnV0ZXMobWludXRlczogQ2xvY2tGYWNlVGltZVtdLCBzZWxlY3RlZEhvdXI6IG51bWJlciwgY29uZmlnOiBEaXNhYmxlZFRpbWVDb25maWcpIHtcbiAgICBpZiAoY29uZmlnLm1pbiB8fCBjb25maWcubWF4KSB7XG5cbiAgICAgICAgY29uc3QgaG91ciA9IFRpbWVBZGFwdGVyLmZvcm1hdEhvdXIoc2VsZWN0ZWRIb3VyLCBjb25maWcuZm9ybWF0LCBjb25maWcucGVyaW9kKTtcblxuICAgICAgICByZXR1cm4gbWludXRlcy5tYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHtob3VyLCBtaW51dGU6IHZhbHVlLnRpbWV9KS50b0Zvcm1hdChUaW1lRm9ybWF0LlRXRUxWRSk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFUaW1lQWRhcHRlci5pc1RpbWVBdmFpbGFibGUoY3VycmVudFRpbWUsIGNvbmZpZy5taW4sIGNvbmZpZy5tYXgsICdtaW51dGVzJylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWludXRlcztcbn1cbiJdfQ==