diff --git a/client/core/src/date-picker/date-picker.js b/client/core/src/date-picker/date-picker.js index 8b02d12365..9f4a1647bb 100644 --- a/client/core/src/date-picker/date-picker.js +++ b/client/core/src/date-picker/date-picker.js @@ -2,12 +2,13 @@ import {module as _module} from '../module'; import * as resolveFactory from '../lib/resolveDefaultComponents'; import * as normalizerFactory from '../lib/inputAttrsNormalizer'; import * as util from '../lib/util'; +import Flatpickr from 'vendor/src/flatpickr'; const _NAME = 'datePicker'; export const NAME = util.getName(_NAME); -directive.$inject = [resolveFactory.NAME, normalizerFactory.NAME]; -export function directive(resolve, normalizer) { +directive.$inject = [resolveFactory.NAME, normalizerFactory.NAME, '$translate']; +export function directive(resolve, normalizer, $translate) { return { restrict: 'E', template: function(_, attrs) { @@ -15,12 +16,25 @@ export function directive(resolve, normalizer) { return resolve.getTemplate(_NAME, attrs); }, link: function(scope, element, attrs) { - scope.$watch(attrs.model, () => { - let mdlField = element[0].firstChild.MaterialTextfield; - if (mdlField) - mdlField.updateClasses_(); + let input = element[0]; + let vp; + let initOptions = {}; + + if (attrs.iniOpts) + initOptions = scope.$eval(attrs.iniOpts); + + if (!initOptions.locale) + initOptions.locale = $translate.use(); + + if (!input.matches('input')) + input = input.querySelector('input'); + + if (input) + vp = new Flatpickr(input, initOptions); + + element.on('$destroy', function() { + vp.destroy(); }); - componentHandler.upgradeElement(element[0].firstChild); } }; } diff --git a/client/production/src/filter-panel/filter-panel.html b/client/production/src/filter-panel/filter-panel.html index 2bb03ead06..aa47f90665 100644 --- a/client/production/src/filter-panel/filter-panel.html +++ b/client/production/src/filter-panel/filter-panel.html @@ -2,7 +2,7 @@