Skip to content
This repository was archived by the owner on Sep 4, 2026. It is now read-only.

Commit a3b92d5

Browse files
committed
4.2.1
1 parent ac61346 commit a3b92d5

4 files changed

Lines changed: 100 additions & 22 deletions

File tree

dist/tui-date-picker.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*!
22
* TOAST UI Date Picker
3-
* @version 4.2.0
3+
* @version 4.2.1
44
* @author NHN. FE Development Lab <dl_javascript@nhn.com>
55
* @license MIT
66
*/

dist/tui-date-picker.js

Lines changed: 96 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*!
22
* TOAST UI Date Picker
3-
* @version 4.2.0
3+
* @version 4.2.1
44
* @author NHN. FE Development Lab <dl_javascript@nhn.com>
55
* @license MIT
66
*/
@@ -2450,9 +2450,14 @@ var mergeDefaultOption = function(option) {
24502450
* @param {boolean} [options.usageStatistics = true] - Send a hostname to Google Analytics (default: true)
24512451
* @param {string} [options.weekStartDay = 'Sun'] - Start of the week. 'Sun', 'Mon', ..., 'Sat'(default: 'Sun'(start on Sunday))
24522452
* @example
2453-
* import DatePicker from 'tui-date-picker' // ES6
2454-
* // const DatePicker = require('tui-date-picker'); // CommonJS
2455-
* // const DatePicker = tui.DatePicker;
2453+
* // ES6
2454+
* import DatePicker from 'tui-date-picker'
2455+
*
2456+
* // CommonJS
2457+
* const DatePicker = require('tui-date-picker');
2458+
*
2459+
* // Browser
2460+
* const DatePicker = tui.DatePicker;
24562461
*
24572462
* const range1 = [new Date(2015, 2, 1), new Date(2015, 3, 1)];
24582463
* const range2 = [1465570800000, 1481266182155]; // timestamps
@@ -3028,7 +3033,7 @@ var DatePicker = defineClass(
30283033
* @property {HTMLElement[]} dateElements - elements for dates
30293034
* @example
30303035
* // bind the 'draw' event
3031-
* datepicker.on('draw', function(event) {
3036+
* datepicker.on('draw', (event) => {
30323037
* console.log(`Draw the ${event.type} calendar and its date is ${event.date}.`);
30333038
* });
30343039
*
@@ -3311,7 +3316,7 @@ var DatePicker = defineClass(
33113316
* @see Refer to {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents from tui-code-snippet} for more methods. DatePicker mixes in the methods from CustomEvents.
33123317
* @example
33133318
* // bind the 'open' event
3314-
* datepicker.on('open', function() {
3319+
* datepicker.on('open', () => {
33153320
* alert('open');
33163321
* });
33173322
*
@@ -3387,7 +3392,7 @@ var DatePicker = defineClass(
33873392
* @see Refer to {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents from tui-code-snippet} for more methods. DatePicker mixes in the methods from CustomEvents.
33883393
* @example
33893394
* // bind the 'close' event
3390-
* datepicker.on('close', function() {
3395+
* datepicker.on('close', () => {
33913396
* alert('close');
33923397
* });
33933398
*
@@ -3462,7 +3467,7 @@ var DatePicker = defineClass(
34623467
* @see Refer to {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents from tui-code-snippet} for more methods. DatePicker mixes in the methods from CustomEvents.
34633468
* @example
34643469
* // bind the 'change' event
3465-
* datepicker.on('change', function() {
3470+
* datepicker.on('change', () => {
34663471
* console.log(`Selected date: ${datepicker.getDate()}`);
34673472
* });
34683473
*
@@ -4041,9 +4046,14 @@ var BODY_SELECTOR = '.tui-calendar-body';
40414046
* @param {boolean} [options.usageStatistics = true] - Send a hostname to Google Analytics (default: true)
40424047
* @param {string} [options.weekStartDay = 'Sun'] - Start of the week. 'Sun', 'Mon', ..., 'Sat'(default: 'Sun'(start on Sunday))
40434048
* @example
4044-
* import DatePicker from 'tui-date-picker' // ES6
4045-
* // const DatePicker = require('tui-date-picker'); // CommonJS
4046-
* // const DatePicker = tui.DatePicker;
4049+
* //ES6
4050+
* import DatePicker from 'tui-date-picker'
4051+
*
4052+
* // CommonJS
4053+
* const DatePicker = require('tui-date-picker');
4054+
*
4055+
* // Browser
4056+
* const DatePicker = tui.DatePicker;
40474057
*
40484058
* const calendar = DatePicker.createCalendar('#calendar-wrapper', {
40494059
* language: 'en',
@@ -4054,7 +4064,7 @@ var BODY_SELECTOR = '.tui-calendar-body';
40544064
* weekStartDay: 'Mon',
40554065
* });
40564066
*
4057-
* calendar.on('draw', function(event) {
4067+
* calendar.on('draw', (event) => {
40584068
* console.log(event.date);
40594069
* console.log(event.type);
40604070
* for (let i = 0, len = event.dateElements.length; i < len; i += 1) {
@@ -4321,7 +4331,7 @@ var Calendar = defineClass(
43214331
* @property {HTMLElement[]} dateElements - elements for dates
43224332
* @example
43234333
* // bind the 'draw' event
4324-
* calendar.on('draw', function({type, date}) {
4334+
* calendar.on('draw', ({type, date}) => {
43254335
* console.log(`Draw the ${type} calendar and its date is ${date}.`);
43264336
* });
43274337
*
@@ -7137,9 +7147,14 @@ var CLASS_NAME_SELECTED_RANGE = 'tui-is-selected-range';
71377147
* @param {boolean} [options.autoClose = true] - Close the DateRangePicker after clicking the date
71387148
* @param {boolean} [options.usageStatistics = true] - Send a hostname to Google Analytics (default: true)
71397149
* @example
7140-
* import DatePicker from 'tui-date-picker' // ES6
7141-
* // const DatePicker = require('tui-date-picker'); // CommonJS
7142-
* // const DatePicker = tui.DatePicker;
7150+
* // ES6
7151+
* import DatePicker from 'tui-date-picker'
7152+
*
7153+
* // CommonJS
7154+
* const DatePicker = require('tui-date-picker');
7155+
*
7156+
* // Browser
7157+
* const DatePicker = tui.DatePicker;
71437158
*
71447159
* const rangePicker = DatePicker.createRangePicker({
71457160
* startpicker: {
@@ -7191,6 +7206,10 @@ var DateRangePicker = defineClass(
71917206
*/
71927207
this._endpicker = null;
71937208

7209+
this._isRangeSet = false;
7210+
7211+
this._preEndPickerDate = new Date().getDate();
7212+
71947213
this._initializePickers(options);
71957214
this._syncRangesToEndpicker();
71967215
},
@@ -7313,6 +7332,8 @@ var DateRangePicker = defineClass(
73137332

73147333
this._endpicker.enable();
73157334
this._endpicker.setRanges([[startDate.getTime(), overlappedRange[1].getTime()]]);
7335+
7336+
this._setTimeRangeOnEndPicker();
73167337
} else {
73177338
this._endpicker.setNull();
73187339
this._endpicker.disable();
@@ -7333,7 +7354,7 @@ var DateRangePicker = defineClass(
73337354
* @see Refer to {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents} for more methods. DateRangePicker mixes in the methods from CustomEvents.
73347355
* @example
73357356
* // bind the 'change:start' event
7336-
* rangePicker.on('change:start', function() {
7357+
* rangePicker.on('change:start', () => {
73377358
* console.log(`Start date: ${rangePicker.getStartDate()}`);
73387359
* });
73397360
*
@@ -7356,16 +7377,73 @@ var DateRangePicker = defineClass(
73567377
* @see Refer to {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents} for more methods. DateRangePicker mixes in the methods from CustomEvents.
73577378
* @example
73587379
* // bind the 'change:end' event
7359-
* rangePicker.on('change:end', function() {
7380+
* rangePicker.on('change:end', () => {
73607381
* console.log(`End date: ${rangePicker.getEndDate()}`);
73617382
* });
73627383
*
73637384
* // unbind the 'change:end' event
73647385
* rangePicker.off('change:end');
73657386
*/
7387+
7388+
var date;
7389+
var endPickerDate = this._endpicker.getDate();
7390+
7391+
if (endPickerDate) {
7392+
date = endPickerDate.getDate();
7393+
if (this._preEndPickerDate !== date) {
7394+
this._setTimeRangeOnEndPicker();
7395+
}
7396+
7397+
this._preEndPickerDate = date;
7398+
} else {
7399+
this._preEndPickerDate = null;
7400+
}
7401+
73667402
this.fire('change:end');
73677403
},
73687404

7405+
/**
7406+
* Set time range on end picker
7407+
* @private
7408+
*/
7409+
_setTimeRangeOnEndPicker: function() {
7410+
var pickerDate, timeRange;
7411+
var endTimePicker = this._endpicker._timePicker;
7412+
7413+
if (!endTimePicker) {
7414+
return;
7415+
}
7416+
7417+
pickerDate = this._endpicker.getDate() || this._startpicker.getDate();
7418+
timeRange = this._getTimeRangeFromStartPicker();
7419+
7420+
if (pickerDate && timeRange[pickerDate.getDate()]) {
7421+
endTimePicker.setRange(timeRange[pickerDate.getDate()]);
7422+
this._isRangeSet = true;
7423+
} else if (this._isRangeSet) {
7424+
endTimePicker.setRange({ hour: 0, minute: 0 });
7425+
endTimePicker.resetMinuteRange();
7426+
this._isRangeSet = false;
7427+
}
7428+
},
7429+
7430+
/**
7431+
* Return object of time range from start picker.
7432+
* @returns {object}
7433+
* @private
7434+
*/
7435+
_getTimeRangeFromStartPicker: function() {
7436+
var startDate = this._startpicker.getDate();
7437+
var timeRange = {};
7438+
7439+
timeRange[startDate.getDate()] = {
7440+
hour: startDate.getHours(),
7441+
minute: startDate.getMinutes()
7442+
};
7443+
7444+
return timeRange;
7445+
},
7446+
73697447
/**
73707448
* Return a start-datepicker.
73717449
* @returns {DatePicker}

0 commit comments

Comments
 (0)