2018-09-19 13:05:07 +00:00
|
|
|
import ngModule from '../../module';
|
2019-04-02 09:02:59 +00:00
|
|
|
import Input from '../../lib/input';
|
2018-09-19 13:05:07 +00:00
|
|
|
import './style.scss';
|
|
|
|
|
2019-04-02 09:02:59 +00:00
|
|
|
export default class InputTime extends Input {
|
2019-03-26 11:21:29 +00:00
|
|
|
get value() {
|
|
|
|
return this._value;
|
2019-03-15 06:40:45 +00:00
|
|
|
}
|
|
|
|
|
2018-09-19 13:05:07 +00:00
|
|
|
set value(value) {
|
2018-09-24 08:43:54 +00:00
|
|
|
if (!value) return;
|
|
|
|
|
2019-04-02 09:02:59 +00:00
|
|
|
let newDate = new Date(value);
|
|
|
|
newDate.setSeconds(0);
|
|
|
|
newDate.setMilliseconds(0);
|
|
|
|
|
|
|
|
this._value = newDate;
|
|
|
|
this.hasValue = this._value !== null;
|
2019-04-04 09:53:13 +00:00
|
|
|
this.input.value = this._value;
|
2018-09-19 13:05:07 +00:00
|
|
|
|
|
|
|
if (this.hasValue) this.element.classList.add('not-empty');
|
|
|
|
|
|
|
|
this.element.querySelector('.infix').classList.remove('invalid', 'validated');
|
|
|
|
}
|
|
|
|
|
|
|
|
get step() {
|
2018-09-24 08:43:54 +00:00
|
|
|
return parseInt(this.input.step);
|
2018-09-19 13:05:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
set step(value) {
|
|
|
|
this.input.step = value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-24 08:43:54 +00:00
|
|
|
InputTime.$inject = ['$element', '$scope', '$attrs', 'vnTemplate', '$transclude'];
|
2018-09-19 13:05:07 +00:00
|
|
|
|
|
|
|
ngModule.component('vnInputTime', {
|
|
|
|
template: require('./index.html'),
|
|
|
|
controller: InputTime,
|
|
|
|
transclude: {
|
|
|
|
leftIcons: '?tLeftIcons',
|
|
|
|
rightIcons: '?tRightIcons'
|
|
|
|
},
|
|
|
|
bindings: {
|
|
|
|
label: '@?',
|
|
|
|
disabled: '<?',
|
|
|
|
readonly: '<?',
|
|
|
|
step: '<?',
|
|
|
|
rule: '@?',
|
|
|
|
value: '=model',
|
|
|
|
vnTabIndex: '@?',
|
|
|
|
onChange: '&',
|
|
|
|
onClear: '&'
|
|
|
|
}
|
|
|
|
});
|