Skip to content

Commit 4c21e46

Browse files
author
Mateusz Krzeszowiak
committed
Don't load datepicker module until it is actually needed
1 parent 87b7cba commit 4c21e46

File tree

2 files changed

+32
-28
lines changed

2 files changed

+32
-28
lines changed

app/code/Magento/Theme/view/frontend/templates/js/calendar.phtml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<script>
1515
require([
1616
'jquery',
17-
'jquery-ui-modules/datepicker'
1817
], function($){
1918

2019
//<![CDATA[
@@ -34,7 +33,7 @@ require([
3433
timeText: "<?= $block->escapeJs(__('Time')) ?>",
3534
hourText: "<?= $block->escapeJs(__('Hour')) ?>",
3635
minuteText: "<?= $block->escapeJs(__('Minute')) ?>",
37-
dateFormat: $.datepicker.RFC_2822,
36+
dateFormat: "D, d M yy", // $.datepicker.RFC_2822
3837
showOn: "button",
3938
showAnim: "",
4039
changeMonth: true,

app/code/Magento/Ui/view/base/web/js/lib/knockout/bindings/datepicker.js

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ define([
77
'ko',
88
'underscore',
99
'jquery',
10-
'mage/translate',
11-
'mage/calendar',
12-
'moment',
13-
'mageUtils'
14-
], function (ko, _, $, $t, calendar, moment, utils) {
10+
'mage/translate'
11+
], function (ko, _, $, $t) {
1512
'use strict';
1613

1714
var defaults = {
@@ -46,10 +43,12 @@ define([
4643
observable = config;
4744
}
4845

49-
$(el).calendar(options);
46+
require(['mage/calendar'], function () {
47+
$(el).calendar(options);
5048

51-
ko.utils.registerEventHandler(el, 'change', function () {
52-
observable(this.value);
49+
ko.utils.registerEventHandler(el, 'change', function () {
50+
observable(this.value);
51+
});
5352
});
5453
},
5554

@@ -62,8 +61,10 @@ define([
6261
*/
6362
update: function (element, valueAccessor) {
6463
var config = valueAccessor(),
64+
$element = $(element),
6565
observable,
6666
options = {},
67+
oldVal,
6768
newVal;
6869

6970
_.extend(options, defaults);
@@ -75,26 +76,30 @@ define([
7576
observable = config;
7677
}
7778

78-
if (_.isEmpty(observable())) {
79-
if ($(element).datepicker('getDate')) {
80-
$(element).datepicker('setDate', null);
81-
$(element).blur();
82-
}
83-
} else {
84-
newVal = moment(
85-
observable(),
86-
utils.convertToMomentFormat(
87-
options.dateFormat + (options.showsTime ? ' ' + options.timeFormat : '')
88-
)
89-
).toDate();
79+
require(['moment', 'mage/utils/misc', 'mage/calendar'], function (moment, utils) {
80+
oldVal = $element.datepicker('getDate');
9081

91-
if ($(element).datepicker('getDate') == null ||
92-
newVal.valueOf() !== $(element).datepicker('getDate').valueOf()
93-
) {
94-
$(element).datepicker('setDate', newVal);
95-
$(element).blur();
82+
if (_.isEmpty(observable())) {
83+
if (oldVal) {
84+
$element.datepicker('setDate', null);
85+
$element.blur();
86+
}
87+
} else {
88+
newVal = moment(
89+
observable(),
90+
utils.convertToMomentFormat(
91+
options.dateFormat + (options.showsTime ? ' ' + options.timeFormat : '')
92+
)
93+
).toDate();
94+
95+
if (oldVal == null ||
96+
newVal.valueOf() !== oldVal.valueOf()
97+
) {
98+
$element.datepicker('setDate', newVal);
99+
$element.blur();
100+
}
96101
}
97-
}
102+
});
98103
}
99104
};
100105
});

0 commit comments

Comments
 (0)