103 lines
4.4 KiB
JavaScript
103 lines
4.4 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) {
|
|
Drupal.behaviors.date = {
|
|
attach: function attach(context, settings) {
|
|
var dataFieldElements = 'data-drupal-field-elements';
|
|
var dataDatepickerProcessed = 'data-datepicker-is-processed';
|
|
|
|
var getDateSelector = function getDateSelector(elements) {
|
|
return ["[".concat(dataFieldElements, "=\"").concat(elements, "\"]"), ":not([".concat(dataDatepickerProcessed, "=\"").concat(elements, "\"])")].join('');
|
|
};
|
|
|
|
if (Modernizr.inputtypes.date === false) {
|
|
Array.prototype.forEach.call(document.querySelectorAll(getDateSelector('date-time')), 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);
|
|
dateTime.setAttribute(dataDatepickerProcessed, 'date-time');
|
|
});
|
|
Array.prototype.forEach.call(document.querySelectorAll(getDateSelector('date')), 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);
|
|
date.setAttribute(dataDatepickerProcessed, 'date');
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
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); |