schunder-madre/web/core/misc/date.js

94 lines
3.9 KiB
JavaScript

/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
(function ($, Modernizr, Drupal, once) {
Drupal.behaviors.date = {
attach: function attach(context, settings) {
if (Modernizr.inputtypes.date === false) {
once('datepicker', '[data-drupal-field-elements="date-time"]').forEach(function (dateTime) {
var dateInput = dateTime.querySelector('input[type="date"]');
var timeInput = dateTime.querySelector('input[type="time"]');
var help = Drupal.theme.dateTimeHelp({
dateId: "".concat(dateInput.id, "--description"),
dateDesc: dateInput.dataset.help,
timeId: "".concat(timeInput.id, "--description"),
timeDesc: timeInput.dataset.help
});
[dateInput, timeInput].forEach(function (input) {
input.setAttribute('aria-describedby', "".concat(input.id, "--description"));
input.setAttribute('type', 'text');
});
Drupal.DatepickerPolyfill.attachDescription(dateTime, help);
});
once('datepicker', '[data-drupal-field-elements="date"]').forEach(function (date) {
var dateInput = date.querySelector('input[type="date"]');
var help = Drupal.theme.dateHelp({
dateDesc: dateInput.dataset.help
});
var id = "".concat(date.id, "--description");
dateInput.setAttribute('aria-describedby', id);
dateInput.setAttribute('type', 'text');
Drupal.DatepickerPolyfill.attachDescription(date, help, id);
});
}
}
};
Drupal.DatepickerPolyfill = function () {
function _class() {
_classCallCheck(this, _class);
}
_createClass(_class, null, [{
key: "attachDescription",
value: function attachDescription(element, help, id) {
var description = element.nextElementSibling;
if (!(description && description.getAttribute('data-drupal-field-elements') === 'description')) {
description = Drupal.DatepickerPolyfill.descriptionWrapperElement(id);
element.parentNode.insertBefore(description, element.nextSibling);
}
description.insertAdjacentHTML('beforeend', help);
}
}, {
key: "descriptionWrapperElement",
value: function descriptionWrapperElement(id) {
var description = document.createElement('div');
description.classList.add('description');
description.setAttribute('data-drupal-field-elements', 'description');
if (id) {
description.setAttribute('id', id);
}
return description;
}
}]);
return _class;
}();
Drupal.theme.dateHelp = function (_ref) {
var dateDesc = _ref.dateDesc;
return "<div class=\"no-native-datepicker-help\">".concat(dateDesc, "</div>");
};
Drupal.theme.dateTimeHelp = function (_ref2) {
var dateId = _ref2.dateId,
timeId = _ref2.timeId,
dateDesc = _ref2.dateDesc,
timeDesc = _ref2.timeDesc;
return "<div class=\"no-native-datepicker-help\">\n <span id=\"".concat(dateId, "\">").concat(dateDesc, "</span> <span id=\"").concat(timeId, "\">").concat(timeDesc, "</span>\n </div>");
};
})(jQuery, Modernizr, Drupal, once);