diff --git a/README.md b/README.md index ce3b67d..ed09eae 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ zone | `String` | `local` | Time zone for the picker. format | `Object` or `String` | `DateTime.DATE_MED`, `DateTime.DATETIME_MED` or `DateTime.TIME_24_SIMPLE` | Input date format. Luxon [presets](https://moment.github.io/luxon/docs/manual/formatting.html#tolocalestring--strings-for-humans-) or [tokens](https://moment.github.io/luxon/docs/manual/formatting.html#formatting-with-tokens--strings-for-cthulhu-). phrases | `Object` | `{ok: 'Ok', cancel: 'Cancel'}` | Phrases. use12-hour | `Boolean` | `false` | Display 12 hour (AM/PM) mode +use-second | `Boolean` | `false` | Display second selection hour-step | `Number` | `1` | Hour step. minute-step | `Number` | `1` | Minute step. min-datetime | ISO 8601 `String` | `null` | Minimum datetime. diff --git a/demo/index.html b/demo/index.html index 8876b66..2304a0a 100644 --- a/demo/index.html +++ b/demo/index.html @@ -36,7 +36,7 @@
diff --git a/package.json b/package.json
index 11651b2..4c73b80 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,8 @@
"demo:deploy": "gh-pages -d demo",
"version": "auto-changelog -p --starting-commit 975d478b80b8e1ed3663f55b34c3a35521a43bdb --commit-limit false && git add CHANGELOG.md",
"prepublish": "yon run build && yon run demo:build",
- "postpublish": "yon run demo:deploy"
+ "postpublish": "yon run demo:deploy",
+ "postinstall": "npm install && npm run build"
},
"lint-staged": {
"*.{vue,js}": [
diff --git a/src/Datetime.vue b/src/Datetime.vue
index 34979bf..1c10476 100644
--- a/src/Datetime.vue
+++ b/src/Datetime.vue
@@ -22,6 +22,7 @@
:datetime="popupDate"
:phrases="phrases"
:use12-hour="use12Hour"
+ :use-second="useSecond"
:hour-step="hourStep"
:minute-step="minuteStep"
:min-datetime="popupMinDatetime"
@@ -103,6 +104,10 @@ export default {
type: Boolean,
default: false
},
+ useSecond: {
+ type: Boolean,
+ default: false
+ },
hourStep: {
type: Number,
default: 1
@@ -168,7 +173,7 @@ export default {
break
case 'datetime':
case 'default':
- format = DateTime.DATETIME_MED
+ format = this.useSecond ? DateTime.DATETIME_MED_WITH_SECONDS : DateTime.DATETIME_MED
break
}
}
diff --git a/src/DatetimePopup.vue b/src/DatetimePopup.vue
index 5f62913..bc2df52 100644
--- a/src/DatetimePopup.vue
+++ b/src/DatetimePopup.vue
@@ -34,7 +34,9 @@
@change="onChangeTime"
:hour="hour"
:minute="minute"
+ :second="second"
:use12-hour="use12Hour"
+ :use-second="useSecond"
:hour-step="hourStep"
:minute-step="minuteStep"
:min-time="minTime"
@@ -93,6 +95,10 @@ export default {
type: Boolean,
default: false
},
+ useSecond: {
+ type: Boolean,
+ default: false
+ },
hourStep: {
type: Number,
default: 1
@@ -162,6 +168,9 @@ export default {
minute () {
return this.newDatetime.minute
},
+ second () {
+ return this.newDatetime.second
+ },
dateFormatted () {
return this.newDatetime.toLocaleString({
month: 'long',
@@ -174,7 +183,7 @@ export default {
this.minDatetime.year === this.year &&
this.minDatetime.month === this.month &&
this.minDatetime.day === this.day
- ) ? this.minDatetime.toFormat('HH:mm') : null
+ ) ? this.minDatetime.toFormat('HH:mm:ss') : null
},
maxTime () {
return (
@@ -182,7 +191,7 @@ export default {
this.maxDatetime.year === this.year &&
this.maxDatetime.month === this.month &&
this.maxDatetime.day === this.day
- ) ? this.maxDatetime.toFormat('HH:mm') : null
+ ) ? this.maxDatetime.toFormat('HH:mm:ss') : null
}
},
@@ -230,7 +239,7 @@ export default {
this.nextStep()
}
},
- onChangeTime ({ hour, minute, suffixTouched }) {
+ onChangeTime ({ hour, minute, second, suffixTouched }) {
if (suffixTouched) {
this.timePartsTouched['suffix'] = true
}
@@ -245,7 +254,12 @@ export default {
this.timePartsTouched['minute'] = true
}
- const goNext = this.auto && this.timePartsTouched['hour'] && this.timePartsTouched['minute'] && (
+ if (Number.isInteger(second)) {
+ this.newDatetime = this.newDatetime.set({ second })
+ this.timePartsTouched['second'] = true
+ }
+
+ const goNext = this.auto && this.timePartsTouched['hour'] && this.timePartsTouched['minute'] && this.timePartsTouched['second'] && (
this.timePartsTouched['suffix'] ||
!this.use12Hour
)
diff --git a/src/DatetimeTimePicker.vue b/src/DatetimeTimePicker.vue
index cc9775f..cb9ecba 100644
--- a/src/DatetimeTimePicker.vue
+++ b/src/DatetimeTimePicker.vue
@@ -1,11 +1,14 @@
-