{"version":3,"sources":["components/datePicker.js","components/dateRangePicker.js"],"names":["dmx","Component","extends","attributes","name","type","String","default","showdropdowns","Boolean","minyear","Number","maxyear","opens","dropsup","showweeknumbers","mindate","maxdate","format","invaliddates","Array","invaliddates-start","invaliddates-end","customdates","customdates-start","customdates-end","customdates-class","disableweekends","direction","weeklabel","applylabel","cancellabel","timepicker","use24hours","minutes-increment","utc","events","show","Event","hide","apply","cancel","render","node","prototype","call","this","createHiddenInput","$node","removeAttribute","autocomplete","update","input","document","createElement","value","parentNode","insertBefore","props","JSON","stringify","$","daterangepicker","singleDatePicker","autoUpdateInput","showWeekNumbers","showDropdowns","minYear","undefined","maxYear","drops","minDate","formatDate","maxDate","locale","weekLabel","applyLabel","cancelLabel","buttonClasses","applyButtonClasses","cancelButtonClasses","isCustomDate","bind","isInvalidDate","timePicker","timePicker24Hour","timePickerIncrement","updateValue","on","onChange","onApply","dispatchEvent","data","moment","toISOString","defaultValue","setValue","disabled","updateData","event","validate","nextTick","set","dirty","validity","valid","validationMessage","str","m","isValid","date","day","some","range","isInRange","filter","map","start","end","isSameOrAfter","isSameOrBefore","oldValue","startDate","setStartDate","setEndDate","destroy","off","clickDate","e","container","find","length","initialData","startdate","enddate","autoapply","separator","unlinked","maxspan-years","maxspan-months","maxspan-weeks","maxspan-days","methods","endDate","input1","input2","autoApply","linkedCalendars","maxSpan","years","months","weeks","days","oldValue1","oldValue2"],"mappings":"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","file":"../dmxDatePicker/dmxDatePicker.js","sourcesContent":["dmx.Component('date-picker', {\r\n\r\n extends: 'input',\r\n\r\n attributes: {\r\n name: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n showdropdowns: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n minyear: {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n maxyear: {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n opens: {\r\n type: String,\r\n default: 'right' // left, right, center\r\n },\r\n\r\n dropsup: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n showweeknumbers: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n mindate: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n maxdate: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n format: {\r\n type: String,\r\n default: null\r\n },\r\n\r\n invaliddates: {\r\n type: Array,\r\n default: []\r\n },\r\n\r\n 'invaliddates-start': {\r\n type: String,\r\n default: 'start'\r\n },\r\n\r\n 'invaliddates-end': {\r\n type: String,\r\n default: 'end'\r\n },\r\n\r\n customdates: {\r\n type: Array,\r\n default: []\r\n },\r\n\r\n 'customdates-start': {\r\n type: String,\r\n default: 'start'\r\n },\r\n\r\n 'customdates-end': {\r\n type: String,\r\n default: 'end'\r\n },\r\n\r\n 'customdates-class': {\r\n type: String,\r\n default: 'class'\r\n },\r\n\r\n disableweekends: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n direction: {\r\n type: String,\r\n default: 'ltr'\r\n },\r\n\r\n weeklabel: {\r\n type: String,\r\n default: 'W'\r\n },\r\n\r\n applylabel: {\r\n type: String,\r\n default: 'Apply'\r\n },\r\n\r\n cancellabel: {\r\n type: String,\r\n default: 'Cancel'\r\n },\r\n\r\n timepicker: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n use24hours: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n 'minutes-increment': {\r\n type: Number,\r\n default: 1\r\n },\r\n\r\n utc: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n events: {\r\n show: Event,\r\n hide: Event,\r\n apply: Event,\r\n cancel: Event\r\n },\r\n\r\n render: function(node) {\r\n dmx.Component('form-element').prototype.render.call(this, node);\r\n\r\n this.createHiddenInput();\r\n\r\n this.$node.removeAttribute('name');\r\n this.$node.autocomplete = 'off';\r\n\r\n this.update({});\r\n },\r\n\r\n createHiddenInput: function() {\r\n this.input = document.createElement('input');\r\n if (this.$node.name) this.input.name = this.$node.name;\r\n this.input.value = this.$node.value;\r\n this.input.type = 'hidden';\r\n\r\n this.$node.parentNode.insertBefore(this.input, this.$node);\r\n },\r\n\r\n update: function(props) {\r\n if (this.props.name) {\r\n this.input.name = this.props.name;\r\n }\r\n\r\n if (JSON.stringify(props) != JSON.stringify(this.props)) {\r\n if (!this.props.format) {\r\n this.props.format = this.props.timepicker ? 'L LT' : 'L';\r\n }\r\n \r\n $(this.$node).daterangepicker({\r\n singleDatePicker: true,\r\n autoUpdateInput: false,\r\n showWeekNumbers: !!this.props.showweeknumbers,\r\n showDropdowns: !!this.props.showdropdowns,\r\n minYear: this.props.minyear || undefined,\r\n maxYear: this.props.maxyear || undefined,\r\n opens: this.props.opens,\r\n drops: !!this.props.dropsup ? 'up' : 'down',\r\n minDate: this.formatDate(this.props.mindate),\r\n maxDate: this.formatDate(this.props.maxdate),\r\n locale: {\r\n format: this.props.format,\r\n direction: this.props.direction,\r\n weekLabel: this.props.weeklabel,\r\n applyLabel: this.props.applylabel,\r\n cancelLabel: this.props.cancellabel\r\n },\r\n buttonClasses: '',\r\n applyButtonClasses: '',\r\n cancelButtonClasses: '',\r\n isCustomDate: this.isCustomDate.bind(this),\r\n isInvalidDate: this.isInvalidDate.bind(this),\r\n timePicker: this.props.timepicker,\r\n timePicker24Hour: this.props.use24hours,\r\n timePickerIncrement: this.props['minutes-increment']\r\n }, this.updateValue.bind(this));\r\n\r\n $(this.$node).on('change.daterangepicker', this.onChange.bind(this));\r\n $(this.$node).on('apply.daterangepicker', this.onApply.bind(this));\r\n \r\n $(this.$node).on('show.daterangepicker', this.dispatchEvent.bind(this, 'show'));\r\n $(this.$node).on('hide.daterangepicker', this.dispatchEvent.bind(this, 'hide'));\r\n $(this.$node).on('apply.daterangepicker', this.dispatchEvent.bind(this, 'apply'));\r\n $(this.$node).on('cancel.daterangepicker', this.dispatchEvent.bind(this, 'cancel'));\r\n\r\n this.daterangepicker = $(this.$node).data('daterangepicker');\r\n\r\n if (props.value !== this.props.value) {\r\n var value = this.props.value;\r\n if (value == 'now' || value == 'today') {\r\n value = this.props.utc ? moment().toISOString() : moment().format('YYYY-MM-DD HH:mm:ss');\r\n }\r\n this.$node.defaultValue = this.formatDate(value) || '';\r\n this.input.defaultValue = value || '';\r\n this.setValue(value);\r\n }\r\n\r\n if (props.disabled != this.props.disabled) {\r\n this.$node.disabled = this.props.disabled;\r\n this.input.disabled = this.props.disabled;\r\n }\r\n }\r\n\r\n this.updateData();\r\n },\r\n\r\n updateData: function(event) {\r\n if (event) {\r\n dmx.validate(this.$node);\r\n }\r\n\r\n if (this.input.value !== this.data.value) {\r\n dmx.nextTick(function() {\r\n this.dispatchEvent('updated');\r\n }, this);\r\n }\r\n\r\n this.set('value', this.input.value);\r\n this.set('disabled', this.$node.disabled);\r\n\r\n if (this.$node.dirty) {\r\n this.set('invalid', !this.$node.validity.valid);\r\n this.set('validationMessage', this.$node.validationMessage);\r\n }\r\n },\r\n\r\n formatDate: function(str) {\r\n if (!str) return undefined;\r\n if (str == 'now' || str == 'today') return moment().format(this.props.format);\r\n var m = moment(str);\r\n return m.isValid() ? m.format(this.props.format) : undefined;\r\n },\r\n\r\n isInvalidDate: function(date) {\r\n if (this.props.disableweekends) {\r\n var day = date.day();\r\n if (day === 0 || day === 6) return true;\r\n }\r\n\r\n return this.props.invaliddates.some(function(range) {\r\n return this.isInRange(date, range, this.props['invaliddates-start'], this.props['invaliddates-end']);\r\n }, this);\r\n },\r\n\r\n isCustomDate: function(date) {\r\n return this.props.customdates.filter(function(range) {\r\n return this.isInRange(date, range, this.props['customdates-start'], this.props['customdates-end']);\r\n }, this).map(function(range) {\r\n return range[this.props['customdates-class']];\r\n }, this);\r\n },\r\n\r\n isInRange: function(date, range, start, end) {\r\n if (range[start] && range[end]) {\r\n return date.isSameOrAfter(range[start]) && date.isSameOrBefore(range[end]);\r\n }\r\n\r\n if (range[start]) {\r\n return date.isSameOrAfter(range[start]);\r\n }\r\n\r\n if (range[end]) {\r\n return date.isSameOrBefore(range[end]);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n onChange: function(event) {\r\n if (!moment(this.$node.value, this.props.format).isValid()) {\r\n this.setValue('');\r\n }\r\n },\r\n\r\n onApply: function(event) {\r\n var oldValue = this.data.value;\r\n this.updateValue(this.daterangepicker.startDate);\r\n if (this.input.value !== oldValue) {\r\n dmx.nextTick(function() {\r\n this.dispatchEvent('changed');\r\n }, this);\r\n }\r\n },\r\n\r\n updateValue: function(date) {\r\n this.setValue(this.props.utc ? date.toISOString() : date.format('YYYY-MM-DD HH:mm:ss'));\r\n },\r\n\r\n setValue: function(value) {\r\n if (value) {\r\n this.daterangepicker.setStartDate(this.formatDate(value));\r\n this.daterangepicker.setEndDate(this.formatDate(value));\r\n }\r\n this.$node.value = this.formatDate(value) || '';\r\n this.input.value = value || '';\r\n this.updateData(true);\r\n },\r\n\r\n format: function(date) {\r\n if (!date) return '';\r\n return moment(date, 'YYYY-MM-DD HH:mm:ss').format(this.props.format);\r\n },\r\n\r\n destroy: function() {\r\n this.input.off('.daterangepicker');\r\n }\r\n\r\n});\r\n","(function() {\r\n // hack original clickDate method to disallow selecting range with invalid dates in it\r\n var clickDate = daterangepicker.prototype.clickDate;\r\n daterangepicker.prototype.clickDate = function(e) {\r\n if (this.container.find('.in-range:not(.available)').length) return;\r\n return clickDate.call(this, e);\r\n };\r\n})();\r\n\r\ndmx.Component('date-range-picker', {\r\n\r\n extends: 'date-picker',\r\n\r\n initialData: {\r\n start: '',\r\n end: ''\r\n },\r\n\r\n attributes: {\r\n startdate: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n enddate: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n autoapply: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n separator: {\r\n type: String,\r\n default: ' - '\r\n },\r\n\r\n unlinked: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n 'maxspan-years': {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n 'maxspan-months': {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n 'maxspan-weeks': {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n 'maxspan-days': {\r\n type: Number,\r\n default: null\r\n }\r\n },\r\n\r\n methods: {\r\n setValue: function(startDate, endDate) {\r\n this.setValue(startDate, endDate);\r\n }\r\n },\r\n\r\n createHiddenInput: function() {\r\n dmx.Component('date-picker').prototype.createHiddenInput.call(this);\r\n\r\n this.input1 = document.createElement('input');\r\n if (this.$node.name) this.input1.name = this.$node.name + '_start';\r\n this.input1.value = this.props.startDate;\r\n this.input1.type = 'hidden';\r\n\r\n this.input2 = document.createElement('input');\r\n if (this.$node.name) this.input2.name = this.$node.name + '_end';\r\n this.input2.value = this.props.startDate;\r\n this.input2.type = 'hidden';\r\n\r\n this.$node.parentNode.insertBefore(this.input1, this.$node);\r\n this.$node.parentNode.insertBefore(this.input2, this.$node);\r\n },\r\n\r\n update: function(props) {\r\n if (this.props.name) {\r\n this.input.name = this.props.name;\r\n this.input1.name = this.props.name + '_start';\r\n this.input2.name = this.props.name + '_end';\r\n }\r\n\r\n if (JSON.stringify(props) != JSON.stringify(this.props)) {\r\n if (!this.props.format) {\r\n this.props.format = this.props.timepicker ? 'L LT' : 'L';\r\n }\r\n \r\n $(this.$node).daterangepicker({\r\n autoUpdateInput: false,\r\n autoApply: !!this.props.autoapply,\r\n linkedCalendars: !this.props.unlinked,\r\n showWeekNumbers: !!this.props.showweeknumbers,\r\n showDropdowns: !!this.props.showdropdowns,\r\n minYear: this.props.minYear || undefined,\r\n maxYear: this.props.maxYear || undefined,\r\n opens: this.props.opens,\r\n drops: !!this.props.dropsup ? 'up' : 'down',\r\n minDate: this.formatDate(this.props.mindate),\r\n maxDate: this.formatDate(this.props.maxdate),\r\n maxSpan: this.props['maxspan-years'] || this.props['maxspan-months'] ||\r\n this.props['maxspan-weeks'] || this.props['maxspan-days'] ? {\r\n years: this.props['maxspan-years'],\r\n months: this.props['maxspan-months'],\r\n weeks: this.props['maxspan-weeks'],\r\n days: this.props['maxspan-days']\r\n } : undefined,\r\n locale: {\r\n format: this.props.format,\r\n separator: this.props.separator,\r\n direction: this.props.direction,\r\n weekLabel: this.props.weeklabel,\r\n applyLabel: this.props.applylabel,\r\n cancelLabel: this.props.cancellabel\r\n },\r\n buttonClasses: '',\r\n applyButtonClasses: '',\r\n cancelButtonClasses: '',\r\n isCustomDate: this.isCustomDate.bind(this),\r\n isInvalidDate: this.isInvalidDate.bind(this),\r\n timePicker: this.props.timepicker,\r\n timePicker24Hour: this.props.use24hours,\r\n timePickerIncrement: this.props['minutes-increment']\r\n }, this.updateValue.bind(this));\r\n\r\n $(this.$node).on('change.daterangepicker', this.onChange.bind(this));\r\n $(this.$node).on('apply.daterangepicker', this.onApply.bind(this));\r\n \r\n $(this.$node).on('show.daterangepicker', this.dispatchEvent.bind(this, 'show'));\r\n $(this.$node).on('hide.daterangepicker', this.dispatchEvent.bind(this, 'hide'));\r\n $(this.$node).on('apply.daterangepicker', this.dispatchEvent.bind(this, 'apply'));\r\n $(this.$node).on('cancel.daterangepicker', this.dispatchEvent.bind(this, 'cancel'));\r\n\r\n this.daterangepicker = $(this.$node).data('daterangepicker');\r\n\r\n if (props.startdate !== this.props.startdate || props.enddate !== this.props.enddate) {\r\n var startDate = this.props.startdate;\r\n var endDate = this.props.enddate;\r\n if (startDate == 'now' || startDate == 'today') {\r\n startDate = this.props.utc ? moment().toISOString() : moment().format('YYYY-MM-DD HH:mm:ss');\r\n }\r\n if (endDate == 'now' || endDate == 'today') {\r\n endDate = this.props.utc ? moment().toISOString() : moment().format('YYYY-MM-DD HH:mm:ss');\r\n }\r\n this.$node.defaultValue = startDate && endDate ? this.formatDate(startDate) + this.props.separator + this.formatDate(endDate) : '';\r\n this.input.defaultValue = startDate && endDate ? startDate + '/' + endDate : '';\r\n this.input1.defaultValue = startDate || '';\r\n this.input2.defaultValue = endDate || '';\r\n this.setValue(startDate, endDate);\r\n }\r\n\r\n if (props.disabled != this.props.disabled) {\r\n this.$node.disabled = this.props.disabled;\r\n this.input1.disabled = this.props.disabled;\r\n this.input2.disabled = this.props.disabled;\r\n }\r\n }\r\n\r\n this.updateData();\r\n },\r\n\r\n updateData: function(event) {\r\n if (this.input1.value !== this.data.start || this.input2.value !== this.data.end) {\r\n dmx.nextTick(function() {\r\n this.dispatchEvent('updated');\r\n }, this);\r\n }\r\n\r\n dmx.Component('date-picker').prototype.updateData.call(this, event);\r\n },\r\n\r\n onApply: function(event) {\r\n var oldValue1 = this.data.start;\r\n var oldValue2 = this.data.end;\r\n this.updateValue(this.daterangepicker.startDate, this.daterangepicker.endDate);\r\n if (this.input1.value !== oldValue1 || this.input2.value !== oldValue2) {\r\n dmx.nextTick(function() {\r\n this.dispatchEvent('changed');\r\n }, this);\r\n }\r\n },\r\n\r\n updateValue: function(startDate, endDate) {\r\n this.setValue(this.props.utc ? startDate.toISOString() : startDate.format('YYYY-MM-DD HH:mm:ss'), this.props.utc ? endDate.toISOString() : endDate.format('YYYY-MM-DD HH:mm:ss'));\r\n },\r\n\r\n setValue: function(startDate, endDate) {\r\n if (startDate) this.daterangepicker.setStartDate(this.formatDate(startDate));\r\n if (endDate) this.daterangepicker.setEndDate(this.formatDate(endDate));\r\n this.$node.value = startDate && endDate ? this.formatDate(startDate) + this.props.separator + this.formatDate(endDate) : '';\r\n this.input.value = startDate && endDate ? startDate + '/' + endDate : '';\r\n this.input1.value = startDate || '';\r\n this.input2.value = endDate || '';\r\n this.set('start', startDate);\r\n this.set('end', endDate);\r\n this.updateData(true);\r\n }\r\n\r\n});\r\n"]}