ngx-bootstrap
Version:
Native Angular Bootstrap Components
101 lines • 3.63 kB
JavaScript
import { changeTime } from './timepicker.utils';
export function canChangeValue(state, event) {
if (state.readonlyInput) {
return false;
}
if (event) {
if (event.source === 'wheel' && !state.mousewheel) {
return false;
}
if (event.source === 'key' && !state.arrowkeys) {
return false;
}
}
return true;
}
export function canChangeHours(event, controls) {
if (!event.step) {
return false;
}
if (event.step > 0 && !controls.canIncrementHours) {
return false;
}
if (event.step < 0 && !controls.canDecrementHours) {
return false;
}
return true;
}
export function canChangeMinutes(event, controls) {
if (!event.step) {
return false;
}
if (event.step > 0 && !controls.canIncrementMinutes) {
return false;
}
if (event.step < 0 && !controls.canDecrementMinutes) {
return false;
}
return true;
}
export function canChangeSeconds(event, controls) {
if (!event.step) {
return false;
}
if (event.step > 0 && !controls.canIncrementSeconds) {
return false;
}
if (event.step < 0 && !controls.canDecrementSeconds) {
return false;
}
return true;
}
export function getControlsValue(state) {
var hourStep = state.hourStep, minuteStep = state.minuteStep, secondsStep = state.secondsStep, readonlyInput = state.readonlyInput, mousewheel = state.mousewheel, arrowkeys = state.arrowkeys, showSpinners = state.showSpinners, showMeridian = state.showMeridian, showSeconds = state.showSeconds, meridians = state.meridians, min = state.min, max = state.max;
return {
hourStep: hourStep, minuteStep: minuteStep, secondsStep: secondsStep,
readonlyInput: readonlyInput, mousewheel: mousewheel, arrowkeys: arrowkeys,
showSpinners: showSpinners, showMeridian: showMeridian, showSeconds: showSeconds,
meridians: meridians, min: min, max: max
};
}
export function timepickerControls(value, state) {
var min = state.min, max = state.max, hourStep = state.hourStep, minuteStep = state.minuteStep, secondsStep = state.secondsStep, showSeconds = state.showSeconds;
var res = {
canIncrementHours: true,
canIncrementMinutes: true,
canIncrementSeconds: true,
canDecrementHours: true,
canDecrementMinutes: true,
canDecrementSeconds: true
};
if (!value) {
return res;
}
// compare dates
if (max) {
var _newHour = changeTime(value, { hour: hourStep });
res.canIncrementHours = max > _newHour;
if (!res.canIncrementHours) {
var _newMinutes = changeTime(value, { minute: minuteStep });
res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;
}
if (!res.canIncrementMinutes) {
var _newSeconds = changeTime(value, { seconds: secondsStep });
res.canIncrementSeconds = max >= _newSeconds;
}
}
if (min) {
var _newHour = changeTime(value, { hour: -hourStep });
res.canDecrementHours = min < _newHour;
if (!res.canDecrementHours) {
var _newMinutes = changeTime(value, { minute: -minuteStep });
res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;
}
if (!res.canDecrementMinutes) {
var _newSeconds = changeTime(value, { seconds: -secondsStep });
res.canDecrementSeconds = min <= _newSeconds;
}
}
return res;
}
//# sourceMappingURL=timepicker-controls.util.js.map