|
@@ -136,6 +136,8 @@
|
|
|
]
|
|
]
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
+ const DEFAULT_RANGE = RANGE_SETS[0][0];
|
|
|
|
|
+
|
|
|
@Component({
|
|
@Component({
|
|
|
components: { Datepicker, DropdownPanel, HueButton, HueLink }
|
|
components: { Datepicker, DropdownPanel, HueButton, HueLink }
|
|
|
})
|
|
})
|
|
@@ -144,7 +146,7 @@
|
|
|
inline?: boolean;
|
|
inline?: boolean;
|
|
|
|
|
|
|
|
rangeSets = RANGE_SETS;
|
|
rangeSets = RANGE_SETS;
|
|
|
- selectedRange: Range = RANGE_SETS[0][0];
|
|
|
|
|
|
|
+ selectedRange: Range = DEFAULT_RANGE;
|
|
|
|
|
|
|
|
customRange: Range = {
|
|
customRange: Range = {
|
|
|
title: I18n('Custom Range'),
|
|
title: I18n('Custom Range'),
|
|
@@ -165,6 +167,14 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // TODO: Switch to v-model and value prop
|
|
|
|
|
+ clear(): void {
|
|
|
|
|
+ if (this.selectedRange !== DEFAULT_RANGE) {
|
|
|
|
|
+ this.selectedRange = DEFAULT_RANGE;
|
|
|
|
|
+ this.notify();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
setCustomFrom(from?: Date): void {
|
|
setCustomFrom(from?: Date): void {
|
|
|
if (from) {
|
|
if (from) {
|
|
|
Vue.set(this.customRange, 'from', from.valueOf());
|
|
Vue.set(this.customRange, 'from', from.valueOf());
|
|
@@ -185,7 +195,7 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- apply(closePanel: () => void): void {
|
|
|
|
|
|
|
+ notify(): void {
|
|
|
let range: Range;
|
|
let range: Range;
|
|
|
if (this.selectedRange.custom) {
|
|
if (this.selectedRange.custom) {
|
|
|
range = {
|
|
range = {
|
|
@@ -203,6 +213,10 @@
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
this.$emit('date-range-changed', range);
|
|
this.$emit('date-range-changed', range);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ apply(closePanel: () => void): void {
|
|
|
|
|
+ this.notify();
|
|
|
closePanel();
|
|
closePanel();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|