function setupDatepicker(wrapper) {
  "use strict";

  var config = {
    dtLocal: {
      enableTime: true,
      altInput: true,
      altFormat: "j. F Y, H:i", // maybe interpolate these formats for locale
      dateFormat: "Y-m-dTH:i",
      time_24hr: true
    },
    d: {
      altFormat: "j. F Y",
      dateFormat: "Y-m-d",
      altInput: true
    },
    t: {
      enableTime: true,
      noCalendar: true,
      altFormat: "H:i",
      dateFormat: "H:i",
      altInput: true,
      time_24hr: true
    }
  };

  Array.from(wrapper.querySelectorAll('input[type="date"]')).forEach(function(el) {
    flatpickr(el, config.d);
  });
  Array.from(wrapper.querySelectorAll('input[type="time"]')).forEach(function(el) {
    flatpickr(el, config.t);
  });
  Array.from(wrapper.querySelectorAll('input[type="datetime-local"]')).forEach(function(el) {
    flatpickr(el, config.dtLocal);
  });
}

if (I18n) {
  I18n.addMany(#{frontendI18n});
} else {
  throw new Error('I18n JavaScript service is missing!');
}

document.addEventListener('DOMContentLoaded', function() {
  setupDatepicker(document.body);
});
