@paperless/core 2.0.1-beta.27 → 2.0.1-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/build/p-8f3c711b.entry.js +2 -0
- package/dist/build/p-8f3c711b.entry.js.map +1 -0
- package/dist/build/{p-3e3983ec.js → p-b4dbe1b7.js} +1 -1
- package/dist/build/p-b51dcf11.js +2 -0
- package/dist/build/p-b51dcf11.js.map +1 -0
- package/dist/build/p-f4545481.entry.js +2 -0
- package/dist/build/p-f4545481.entry.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/cjs/{index-08db8a87.js → index-64168fc4.js} +28 -1
- package/dist/cjs/index-64168fc4.js.map +1 -0
- package/dist/cjs/p-calendar.cjs.entry.js +3 -29
- package/dist/cjs/p-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/p-datepicker.cjs.entry.js +39 -11
- package/dist/cjs/p-datepicker.cjs.entry.js.map +1 -1
- package/dist/collection/components/molecules/datepicker/datepicker.component.js +12 -11
- package/dist/collection/components/molecules/datepicker/datepicker.component.js.map +1 -1
- package/dist/components/calendar.component.js +1 -1
- package/dist/components/p-datepicker.js +39 -11
- package/dist/components/p-datepicker.js.map +1 -1
- package/dist/esm/{index-64e10183.js → index-27408d5b.js} +28 -2
- package/dist/esm/index-27408d5b.js.map +1 -0
- package/dist/esm/p-calendar.entry.js +1 -27
- package/dist/esm/p-calendar.entry.js.map +1 -1
- package/dist/esm/p-datepicker.entry.js +39 -11
- package/dist/esm/p-datepicker.entry.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/p-8f3c711b.entry.js +2 -0
- package/dist/paperless/p-8f3c711b.entry.js.map +1 -0
- package/dist/paperless/p-b51dcf11.js +2 -0
- package/dist/paperless/p-b51dcf11.js.map +1 -0
- package/dist/paperless/p-f4545481.entry.js +2 -0
- package/dist/paperless/p-f4545481.entry.js.map +1 -0
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/hydrate/index.js +38 -10
- package/hydrate/index.mjs +38 -10
- package/package.json +1 -1
- package/dist/build/p-28601ee5.entry.js +0 -2
- package/dist/build/p-28601ee5.entry.js.map +0 -1
- package/dist/build/p-38edcb47.entry.js +0 -2
- package/dist/build/p-38edcb47.entry.js.map +0 -1
- package/dist/build/p-6bcfa4d5.js +0 -2
- package/dist/build/p-6bcfa4d5.js.map +0 -1
- package/dist/cjs/index-08db8a87.js.map +0 -1
- package/dist/esm/index-64e10183.js.map +0 -1
- package/dist/paperless/p-28601ee5.entry.js +0 -2
- package/dist/paperless/p-28601ee5.entry.js.map +0 -1
- package/dist/paperless/p-38edcb47.entry.js +0 -2
- package/dist/paperless/p-38edcb47.entry.js.map +0 -1
- package/dist/paperless/p-6bcfa4d5.js +0 -2
- package/dist/paperless/p-6bcfa4d5.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h, Host, } from "@stencil/core";
|
|
2
|
-
import { format, isAfter, isBefore, isSameDay, isValid, isWeekend, parse, startOfDay, } from "date-fns";
|
|
2
|
+
import { format, isAfter, isBefore, isSameDay, isValid, isWeekend, parse, startOfDay, startOfMonth, startOfYear, } from "date-fns";
|
|
3
3
|
import { childOf, isMobileBrowser } from "../../../utils";
|
|
4
4
|
export class Datepicker {
|
|
5
5
|
constructor() {
|
|
@@ -112,13 +112,13 @@ export class Datepicker {
|
|
|
112
112
|
if (this.mode !== 'day' && this.format === this._defaultFormats['day']) {
|
|
113
113
|
this.format = this._defaultFormats[this.mode];
|
|
114
114
|
}
|
|
115
|
-
this._isMobileBrowser = isMobileBrowser();
|
|
115
|
+
this._isMobileBrowser = isMobileBrowser() || true;
|
|
116
116
|
this.parseValue(this.value);
|
|
117
117
|
}
|
|
118
118
|
render() {
|
|
119
|
-
return (h(Host, { key: '
|
|
119
|
+
return (h(Host, { key: 'e48d3c9b517c3323fcc9c430a78721e1bad966a4', class: 'p-datepicker' }, h("p-dropdown", { key: 'c051904eae94288177f646bd200dab88cacc0895', strategy: this.strategy, placement: this.placement, disableTriggerClick: true, applyMaxWidth: false, applyFullWidth: false, insideClick: true, show: this._showDropdown }, h("p-field", { key: '7f5e16b89475a8ee35119116b592944830f6eb4f', slot: 'trigger', icon: this.hideIconWhenFilled && !!this._value ? null : 'calendar-multi', iconPosition: 'start', size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown, value: this._getFormattedDate(), placeholder: this.placeholder, onFocus: () => this._onFocus(), onBlur: () => this._onBlur(), onValueChange: ev => this._onValueChange(ev.detail), onInputRefChange: ev => (this._inputRef = ev.detail) }), this.enableNativePicker && this._isMobileBrowser && (h("input", { key: '1ff2cb32a56ec717126d7659813900f8fd7efb47', slot: 'trigger', type: this.mode === 'day' ? 'date' : 'month', class: 'h-0 overflow-hidden' // we use h-0 here so location dependent pickers can correctly place itself
|
|
120
120
|
,
|
|
121
|
-
onInput: ev => this._onNativeInput(ev), ref: ref => (this._dateInputRef = ref), value: this._value && format(this._value, 'yyyy-MM-dd'), min: this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd'), max: this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd') })), h("div", { key: '
|
|
121
|
+
onInput: ev => this._onNativeInput(ev), ref: ref => (this._dateInputRef = ref), value: this._value && format(this._value, 'yyyy-MM-dd'), min: this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd'), max: this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd') })), h("div", { key: 'a935816c14866b2fc6375f1f85ba0dc26c243087', slot: 'items' }, h("p-calendar", { key: '3af01a1b9f52fad9b03ea5652a287e6673cbfe88', variant: 'embedded', value: this._value, onValueChange: ({ detail }) => (this.value = detail), preselectToday: this.preselectToday, disabledDates: this.disabledDates, minDate: this.minDate, maxDate: this.maxDate, disableWeekends: this.disableWeekends, mode: this.mode })))));
|
|
122
122
|
}
|
|
123
123
|
documentClickHandler({ target }) {
|
|
124
124
|
if (!this._showDropdown || childOf(target, this._el)) {
|
|
@@ -166,7 +166,7 @@ export class Datepicker {
|
|
|
166
166
|
}, 300);
|
|
167
167
|
}
|
|
168
168
|
_onNativeInput(ev) {
|
|
169
|
-
if (!ev.target
|
|
169
|
+
if (!ev.target) {
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
172
|
if (this._onInputTimeout) {
|
|
@@ -174,11 +174,7 @@ export class Datepicker {
|
|
|
174
174
|
this._onInputTimeout = null;
|
|
175
175
|
}
|
|
176
176
|
this._onInputTimeout = setTimeout(() => {
|
|
177
|
-
|
|
178
|
-
if (!isValid(parsedValue)) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
this._setValue(parsedValue, false);
|
|
177
|
+
this._setValue(ev.target.value === '' ? null : new Date(ev.target.value), false);
|
|
182
178
|
});
|
|
183
179
|
}
|
|
184
180
|
_setValue(value, hideDropdown = true) {
|
|
@@ -198,7 +194,12 @@ export class Datepicker {
|
|
|
198
194
|
}
|
|
199
195
|
return;
|
|
200
196
|
}
|
|
201
|
-
value =
|
|
197
|
+
value =
|
|
198
|
+
this.mode === 'day'
|
|
199
|
+
? startOfDay(value)
|
|
200
|
+
: this.mode === 'month'
|
|
201
|
+
? startOfMonth(value)
|
|
202
|
+
: startOfYear(value);
|
|
202
203
|
const isSameValue = isSameDay(value, this._value);
|
|
203
204
|
if (isSameValue) {
|
|
204
205
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/datepicker/datepicker.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Placement, Strategy } from '@floating-ui/dom';\nimport {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport {\n\tformat,\n\tisAfter,\n\tisBefore,\n\tisSameDay,\n\tisValid,\n\tisWeekend,\n\tparse,\n\tstartOfDay,\n} from 'date-fns';\nimport { childOf, isMobileBrowser } from '../../../utils';\n\n@Component({\n\ttag: 'p-datepicker',\n\tstyleUrl: 'datepicker.component.css',\n\tshadow: false,\n})\nexport class Datepicker {\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: Date | string | null | undefined;\n\n\t/**\n\t * Wethter to automatically preselect today\n\t */\n\t@Prop() preselectToday: boolean = false;\n\n\t/**\n\t * Enable native picker for mobile devices\n\t */\n\t@Prop() enableNativePicker: boolean = true;\n\n\t/**\n\t * Disabled dates\n\t */\n\t@Prop() disabledDates?: Array<Date | string> | string;\n\n\t/**\n\t * Min date\n\t */\n\t@Prop() minDate?: Date | string;\n\n\t/**\n\t * Max date\n\t */\n\t@Prop() maxDate?: Date | string;\n\n\t/**\n\t * Wether to disable the weekends\n\t */\n\t@Prop() disableWeekends: boolean = false;\n\n\t/**\n\t * The mode of the datepicker\n\t */\n\t@Prop() mode: 'year' | 'month' | 'day' = 'day';\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * The display & parse format to use\n\t */\n\t@Prop() format: string = 'dd-MM-yyyy';\n\n\t/**\n\t * Hides the icon when filled\n\t */\n\t@Prop() hideIconWhenFilled: boolean = false;\n\n\t/**\n\t * The size of the input group used by the datepicker\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the datepicker\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the datepicker\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the datepicker\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean;\n\n\t/**\n\t * The helper of the input group used by the datepicker\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the datepicker\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * The strategy of the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * The placement of the dropdown\n\t */\n\t@Prop({ reflect: true }) placement: Placement = 'bottom-start';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _value: Date;\n\t@State() private _minDate: Date;\n\t@State() private _maxDate: Date;\n\t@State() private _disabledDates: Date[] = [];\n\t@State() private _isMobileBrowser: boolean = false;\n\n\tprivate _onInputTimeout: NodeJS.Timeout;\n\tprivate _inputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _dateInputRef: HTMLInputElement;\n\n\tprivate _defaultFormats = {\n\t\tyear: 'yyyy',\n\t\tmonth: 'LLLL, yyyy',\n\t\tday: 'dd-MM-yyyy',\n\t};\n\n\t@Watch('value')\n\tprotected parseValue(value: string | Date) {\n\t\tif (!value && this.preselectToday) {\n\t\t\tvalue = new Date();\n\t\t}\n\n\t\tif (typeof value === 'string') {\n\t\t\tvalue = new Date(value);\n\t\t}\n\n\t\tthis._setValue(value);\n\t}\n\n\t@Watch('minDate')\n\tprotected parseMinDate(minDate: string | Date) {\n\t\tif (typeof minDate === 'string') {\n\t\t\tminDate = new Date(minDate);\n\t\t}\n\n\t\tif (!isValid(minDate)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._minDate = minDate;\n\n\t\tif (isBefore(this._value, this._minDate)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\t@Watch('maxDate')\n\tprotected parseMaxDate(maxDate: string | Date) {\n\t\tif (typeof maxDate === 'string') {\n\t\t\tmaxDate = new Date(maxDate);\n\t\t}\n\n\t\tif (!isValid(maxDate)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._maxDate = maxDate;\n\n\t\tif (isAfter(this._value, this._maxDate)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\t@Watch('disabledDates')\n\tprotected parseDisabledDates(disabledDates: Array<string | Date> | string) {\n\t\tif (typeof disabledDates === 'string') {\n\t\t\tdisabledDates = JSON.parse(disabledDates);\n\t\t}\n\n\t\tif (!disabledDates || !Array.isArray(disabledDates)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// normalize all to date\n\t\tthis._disabledDates = disabledDates\n\t\t\t.map(date => {\n\t\t\t\tif (typeof date === 'string') {\n\t\t\t\t\treturn new Date(date);\n\t\t\t\t}\n\n\t\t\t\treturn date;\n\t\t\t})\n\t\t\t.filter(date => isValid(date));\n\n\t\tif (this._isDisabledDay(this._value)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tif (this.disabledDates) {\n\t\t\tthis.parseDisabledDates(this.disabledDates);\n\t\t}\n\n\t\tif (this.minDate) {\n\t\t\tthis.parseMinDate(this.minDate);\n\t\t}\n\n\t\tif (this.maxDate) {\n\t\t\tthis.parseMaxDate(this.maxDate);\n\t\t}\n\n\t\tif (this.mode !== 'day' && this.format === this._defaultFormats['day']) {\n\t\t\tthis.format = this._defaultFormats[this.mode];\n\t\t}\n\n\t\tthis._isMobileBrowser = isMobileBrowser();\n\n\t\tthis.parseValue(this.value);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class='p-datepicker'>\n\t\t\t\t<p-dropdown\n\t\t\t\t\tstrategy={this.strategy}\n\t\t\t\t\tplacement={this.placement}\n\t\t\t\t\tdisableTriggerClick={true}\n\t\t\t\t\tapplyMaxWidth={false}\n\t\t\t\t\tapplyFullWidth={false}\n\t\t\t\t\tinsideClick={true}\n\t\t\t\t\tshow={this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-field\n\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tthis.hideIconWhenFilled && !!this._value ? null : 'calendar-multi'\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticonPosition='start'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\t\tlabel={this.label}\n\t\t\t\t\t\thelper={this.helper}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tfocused={this._showDropdown}\n\t\t\t\t\t\tvalue={this._getFormattedDate()}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tonFocus={() => this._onFocus()}\n\t\t\t\t\t\tonBlur={() => this._onBlur()}\n\t\t\t\t\t\tonValueChange={ev => this._onValueChange(ev.detail)}\n\t\t\t\t\t\tonInputRefChange={ev => (this._inputRef = ev.detail)}\n\t\t\t\t\t></p-field>\n\n\t\t\t\t\t{this.enableNativePicker && this._isMobileBrowser && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\ttype='date'\n\t\t\t\t\t\t\tclass='h-0 overflow-hidden' // we use h-0 here so location dependent pickers can correctly place itself\n\t\t\t\t\t\t\tonInput={ev => this._onNativeInput(ev)}\n\t\t\t\t\t\t\tref={ref => (this._dateInputRef = ref)}\n\t\t\t\t\t\t\tvalue={this._value && format(this._value, 'yyyy-MM-dd')}\n\t\t\t\t\t\t\tmin={this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd')}\n\t\t\t\t\t\t\tmax={this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<div slot='items'>\n\t\t\t\t\t\t<p-calendar\n\t\t\t\t\t\t\tvariant='embedded'\n\t\t\t\t\t\t\tvalue={this._value}\n\t\t\t\t\t\t\tonValueChange={({ detail }) => (this.value = detail)}\n\t\t\t\t\t\t\tpreselectToday={this.preselectToday}\n\t\t\t\t\t\t\tdisabledDates={this.disabledDates}\n\t\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\t\tdisableWeekends={this.disableWeekends}\n\t\t\t\t\t\t\tmode={this.mode}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</p-dropdown>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler({ target }) {\n\t\tif (!this._showDropdown || childOf(target, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onFocus() {\n\t\tif (this._isMobileBrowser && this._dateInputRef) {\n\t\t\tthis._dateInputRef.showPicker();\n\t\t\tthis._inputRef.blur();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\t}\n\n\tprivate _onBlur() {\n\t\tif (this._isMobileBrowser && this._dateInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = this._inputRef;\n\n\t\tif (target.value === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = parse(target.value, this.format, new Date());\n\n\t\tif (value === this._value) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValid(value) || this._isDisabledDay(value)) {\n\t\t\ttarget.value = this._getFormattedDate();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setValue(value, false);\n\t}\n\n\tprivate _onValueChange(value: string) {\n\t\tif (this._onInputTimeout) {\n\t\t\tclearTimeout(this._onInputTimeout);\n\t\t\tthis._onInputTimeout = null;\n\t\t}\n\n\t\tthis._onInputTimeout = setTimeout(() => {\n\t\t\tconst parsedValue = parse(value, this.format, new Date());\n\t\t\tif (!isValid(parsedValue)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._setValue(parsedValue, false);\n\t\t}, 300);\n\t}\n\n\tprivate _onNativeInput(ev) {\n\t\tif (!ev.target.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._onInputTimeout) {\n\t\t\tclearTimeout(this._onInputTimeout);\n\t\t\tthis._onInputTimeout = null;\n\t\t}\n\n\t\tthis._onInputTimeout = setTimeout(() => {\n\t\t\tconst parsedValue = new Date(ev.target.value);\n\t\t\tif (!isValid(parsedValue)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._setValue(parsedValue, false);\n\t\t});\n\t}\n\n\tprivate _setValue(value: Date | null, hideDropdown = true) {\n\t\tif (value === null) {\n\t\t\tthis._value = null;\n\t\t\tthis.valueChange.emit(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValid(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isDisabledDay(value)) {\n\t\t\tif (!!this._dateInputRef?.value) {\n\t\t\t\tthis._dateInputRef.value = this._value\n\t\t\t\t\t? format(this._value, 'yyyy-MM-dd')\n\t\t\t\t\t: null;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalue = startOfDay(value);\n\t\tconst isSameValue = isSameDay(value, this._value);\n\n\t\tif (isSameValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (hideDropdown) {\n\t\t\tthis._showDropdown = false;\n\t\t}\n\n\t\tthis._value = value;\n\t\tthis.valueChange.emit(value);\n\t}\n\n\tprivate _isDisabledDay(day: Date) {\n\t\treturn (\n\t\t\t(this.disableWeekends && isWeekend(day)) ||\n\t\t\t(isBefore(day, this._minDate) && !isSameDay(day, this._minDate)) ||\n\t\t\t(isAfter(day, this._maxDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\tthis._disabledDates.findIndex(date => isSameDay(date, day)) >= 0\n\t\t);\n\t}\n\n\tprivate _getFormattedDate() {\n\t\tif (!this._value) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn format(this._value, this.format);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"datepicker.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/datepicker/datepicker.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Placement, Strategy } from '@floating-ui/dom';\nimport {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport {\n\tformat,\n\tisAfter,\n\tisBefore,\n\tisSameDay,\n\tisValid,\n\tisWeekend,\n\tparse,\n\tstartOfDay,\n\tstartOfMonth,\n\tstartOfYear,\n} from 'date-fns';\nimport { childOf, isMobileBrowser } from '../../../utils';\n\n@Component({\n\ttag: 'p-datepicker',\n\tstyleUrl: 'datepicker.component.css',\n\tshadow: false,\n})\nexport class Datepicker {\n\t/**\n\t * The placeholder of the input\n\t */\n\t@Prop() placeholder: string;\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value: Date | string | null | undefined;\n\n\t/**\n\t * Wethter to automatically preselect today\n\t */\n\t@Prop() preselectToday: boolean = false;\n\n\t/**\n\t * Enable native picker for mobile devices\n\t */\n\t@Prop() enableNativePicker: boolean = true;\n\n\t/**\n\t * Disabled dates\n\t */\n\t@Prop() disabledDates?: Array<Date | string> | string;\n\n\t/**\n\t * Min date\n\t */\n\t@Prop() minDate?: Date | string;\n\n\t/**\n\t * Max date\n\t */\n\t@Prop() maxDate?: Date | string;\n\n\t/**\n\t * Wether to disable the weekends\n\t */\n\t@Prop() disableWeekends: boolean = false;\n\n\t/**\n\t * The mode of the datepicker\n\t */\n\t@Prop() mode: 'year' | 'month' | 'day' = 'day';\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\t/**\n\t * The display & parse format to use\n\t */\n\t@Prop() format: string = 'dd-MM-yyyy';\n\n\t/**\n\t * Hides the icon when filled\n\t */\n\t@Prop() hideIconWhenFilled: boolean = false;\n\n\t/**\n\t * The size of the input group used by the datepicker\n\t */\n\t@Prop() size: 'sm' | 'base' = 'base';\n\n\t/**\n\t * The prefix of the input group used by the datepicker\n\t */\n\t@Prop() prefix: string;\n\n\t/**\n\t * The label of the input group used by the datepicker\n\t */\n\t@Prop() label: string;\n\n\t/**\n\t * The helper of the input group used by the datepicker\n\t */\n\t@Prop() helper: string;\n\n\t/**\n\t * Wether the field is required\n\t */\n\t@Prop({ reflect: true }) required: boolean;\n\n\t/**\n\t * The helper of the input group used by the datepicker\n\t */\n\t@Prop({ reflect: true }) error: string;\n\n\t/**\n\t * Wether the input group is disabled used by the datepicker\n\t */\n\t@Prop({ reflect: true }) disabled: boolean = false;\n\n\t/**\n\t * The strategy of the dropdown placement\n\t */\n\t@Prop() strategy: Strategy = 'absolute';\n\n\t/**\n\t * The placement of the dropdown\n\t */\n\t@Prop({ reflect: true }) placement: Placement = 'bottom-start';\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t@State() private _showDropdown: any = false;\n\t@State() private _value: Date;\n\t@State() private _minDate: Date;\n\t@State() private _maxDate: Date;\n\t@State() private _disabledDates: Date[] = [];\n\t@State() private _isMobileBrowser: boolean = false;\n\n\tprivate _onInputTimeout: NodeJS.Timeout;\n\tprivate _inputRef: HTMLInputElement | HTMLTextAreaElement;\n\tprivate _dateInputRef: HTMLInputElement;\n\n\tprivate _defaultFormats = {\n\t\tyear: 'yyyy',\n\t\tmonth: 'LLLL, yyyy',\n\t\tday: 'dd-MM-yyyy',\n\t};\n\n\t@Watch('value')\n\tprotected parseValue(value: string | Date) {\n\t\tif (!value && this.preselectToday) {\n\t\t\tvalue = new Date();\n\t\t}\n\n\t\tif (typeof value === 'string') {\n\t\t\tvalue = new Date(value);\n\t\t}\n\n\t\tthis._setValue(value);\n\t}\n\n\t@Watch('minDate')\n\tprotected parseMinDate(minDate: string | Date) {\n\t\tif (typeof minDate === 'string') {\n\t\t\tminDate = new Date(minDate);\n\t\t}\n\n\t\tif (!isValid(minDate)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._minDate = minDate;\n\n\t\tif (isBefore(this._value, this._minDate)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\t@Watch('maxDate')\n\tprotected parseMaxDate(maxDate: string | Date) {\n\t\tif (typeof maxDate === 'string') {\n\t\t\tmaxDate = new Date(maxDate);\n\t\t}\n\n\t\tif (!isValid(maxDate)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._maxDate = maxDate;\n\n\t\tif (isAfter(this._value, this._maxDate)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\t@Watch('disabledDates')\n\tprotected parseDisabledDates(disabledDates: Array<string | Date> | string) {\n\t\tif (typeof disabledDates === 'string') {\n\t\t\tdisabledDates = JSON.parse(disabledDates);\n\t\t}\n\n\t\tif (!disabledDates || !Array.isArray(disabledDates)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// normalize all to date\n\t\tthis._disabledDates = disabledDates\n\t\t\t.map(date => {\n\t\t\t\tif (typeof date === 'string') {\n\t\t\t\t\treturn new Date(date);\n\t\t\t\t}\n\n\t\t\t\treturn date;\n\t\t\t})\n\t\t\t.filter(date => isValid(date));\n\n\t\tif (this._isDisabledDay(this._value)) {\n\t\t\tthis._setValue(null);\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tif (this.disabledDates) {\n\t\t\tthis.parseDisabledDates(this.disabledDates);\n\t\t}\n\n\t\tif (this.minDate) {\n\t\t\tthis.parseMinDate(this.minDate);\n\t\t}\n\n\t\tif (this.maxDate) {\n\t\t\tthis.parseMaxDate(this.maxDate);\n\t\t}\n\n\t\tif (this.mode !== 'day' && this.format === this._defaultFormats['day']) {\n\t\t\tthis.format = this._defaultFormats[this.mode];\n\t\t}\n\n\t\tthis._isMobileBrowser = isMobileBrowser() || true;\n\n\t\tthis.parseValue(this.value);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class='p-datepicker'>\n\t\t\t\t<p-dropdown\n\t\t\t\t\tstrategy={this.strategy}\n\t\t\t\t\tplacement={this.placement}\n\t\t\t\t\tdisableTriggerClick={true}\n\t\t\t\t\tapplyMaxWidth={false}\n\t\t\t\t\tapplyFullWidth={false}\n\t\t\t\t\tinsideClick={true}\n\t\t\t\t\tshow={this._showDropdown}\n\t\t\t\t>\n\t\t\t\t\t<p-field\n\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tthis.hideIconWhenFilled && !!this._value ? null : 'calendar-multi'\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticonPosition='start'\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tprefix={this.prefix}\n\t\t\t\t\t\tlabel={this.label}\n\t\t\t\t\t\thelper={this.helper}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\terror={this.error}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tfocused={this._showDropdown}\n\t\t\t\t\t\tvalue={this._getFormattedDate()}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tonFocus={() => this._onFocus()}\n\t\t\t\t\t\tonBlur={() => this._onBlur()}\n\t\t\t\t\t\tonValueChange={ev => this._onValueChange(ev.detail)}\n\t\t\t\t\t\tonInputRefChange={ev => (this._inputRef = ev.detail)}\n\t\t\t\t\t></p-field>\n\n\t\t\t\t\t{this.enableNativePicker && this._isMobileBrowser && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\ttype={this.mode === 'day' ? 'date' : 'month'}\n\t\t\t\t\t\t\tclass='h-0 overflow-hidden' // we use h-0 here so location dependent pickers can correctly place itself\n\t\t\t\t\t\t\tonInput={ev => this._onNativeInput(ev)}\n\t\t\t\t\t\t\tref={ref => (this._dateInputRef = ref)}\n\t\t\t\t\t\t\tvalue={this._value && format(this._value, 'yyyy-MM-dd')}\n\t\t\t\t\t\t\tmin={this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd')}\n\t\t\t\t\t\t\tmax={this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<div slot='items'>\n\t\t\t\t\t\t<p-calendar\n\t\t\t\t\t\t\tvariant='embedded'\n\t\t\t\t\t\t\tvalue={this._value}\n\t\t\t\t\t\t\tonValueChange={({ detail }) => (this.value = detail)}\n\t\t\t\t\t\t\tpreselectToday={this.preselectToday}\n\t\t\t\t\t\t\tdisabledDates={this.disabledDates}\n\t\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\t\tdisableWeekends={this.disableWeekends}\n\t\t\t\t\t\t\tmode={this.mode}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</p-dropdown>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('click', { target: 'document', capture: true })\n\tprotected documentClickHandler({ target }) {\n\t\tif (!this._showDropdown || childOf(target, this._el)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = false;\n\t}\n\n\tprivate _onFocus() {\n\t\tif (this._isMobileBrowser && this._dateInputRef) {\n\t\t\tthis._dateInputRef.showPicker();\n\t\t\tthis._inputRef.blur();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showDropdown = true;\n\t}\n\n\tprivate _onBlur() {\n\t\tif (this._isMobileBrowser && this._dateInputRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = this._inputRef;\n\n\t\tif (target.value === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = parse(target.value, this.format, new Date());\n\n\t\tif (value === this._value) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValid(value) || this._isDisabledDay(value)) {\n\t\t\ttarget.value = this._getFormattedDate();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setValue(value, false);\n\t}\n\n\tprivate _onValueChange(value: string) {\n\t\tif (this._onInputTimeout) {\n\t\t\tclearTimeout(this._onInputTimeout);\n\t\t\tthis._onInputTimeout = null;\n\t\t}\n\n\t\tthis._onInputTimeout = setTimeout(() => {\n\t\t\tconst parsedValue = parse(value, this.format, new Date());\n\t\t\tif (!isValid(parsedValue)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._setValue(parsedValue, false);\n\t\t}, 300);\n\t}\n\n\tprivate _onNativeInput(ev) {\n\t\tif (!ev.target) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._onInputTimeout) {\n\t\t\tclearTimeout(this._onInputTimeout);\n\t\t\tthis._onInputTimeout = null;\n\t\t}\n\n\t\tthis._onInputTimeout = setTimeout(() => {\n\t\t\tthis._setValue(\n\t\t\t\tev.target.value === '' ? null : new Date(ev.target.value),\n\t\t\t\tfalse\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate _setValue(value: Date | null, hideDropdown = true) {\n\t\tif (value === null) {\n\t\t\tthis._value = null;\n\t\t\tthis.valueChange.emit(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValid(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isDisabledDay(value)) {\n\t\t\tif (!!this._dateInputRef?.value) {\n\t\t\t\tthis._dateInputRef.value = this._value\n\t\t\t\t\t? format(this._value, 'yyyy-MM-dd')\n\t\t\t\t\t: null;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalue =\n\t\t\tthis.mode === 'day'\n\t\t\t\t? startOfDay(value)\n\t\t\t\t: this.mode === 'month'\n\t\t\t\t? startOfMonth(value)\n\t\t\t\t: startOfYear(value);\n\t\tconst isSameValue = isSameDay(value, this._value);\n\n\t\tif (isSameValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (hideDropdown) {\n\t\t\tthis._showDropdown = false;\n\t\t}\n\n\t\tthis._value = value;\n\t\tthis.valueChange.emit(value);\n\t}\n\n\tprivate _isDisabledDay(day: Date) {\n\t\treturn (\n\t\t\t(this.disableWeekends && isWeekend(day)) ||\n\t\t\t(isBefore(day, this._minDate) && !isSameDay(day, this._minDate)) ||\n\t\t\t(isAfter(day, this._maxDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\tthis._disabledDates.findIndex(date => isSameDay(date, day)) >= 0\n\t\t);\n\t}\n\n\tprivate _getFormattedDate() {\n\t\tif (!this._value) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn format(this._value, this.format);\n\t}\n}\n"]}
|
|
@@ -3101,6 +3101,6 @@ function defineCustomElement() {
|
|
|
3101
3101
|
} });
|
|
3102
3102
|
}
|
|
3103
3103
|
|
|
3104
|
-
export { Calendar as C, _typeof as _, startOfUTCISOWeek as a, getUTCWeek as b, toInteger as c, defineCustomElement as d, getUTCISOWeek as e, getDefaultOptions as f, getUTCWeekYear as g, subMilliseconds as h, getTimezoneOffsetInMilliseconds as i, defaultLocale as j, isProtectedWeekYearToken as k, longFormatters$1 as l, throwProtectedError as m, isProtectedDayOfYearToken as n, isValid as o, isBefore as p, isAfter as q, requiredArgs as r, startOfUTCWeek as s, toDate as t, format as u, startOfDay as v,
|
|
3104
|
+
export { Calendar as C, _typeof as _, startOfUTCISOWeek as a, getUTCWeek as b, toInteger as c, defineCustomElement as d, getUTCISOWeek as e, getDefaultOptions as f, getUTCWeekYear as g, subMilliseconds as h, getTimezoneOffsetInMilliseconds as i, defaultLocale as j, isProtectedWeekYearToken as k, longFormatters$1 as l, throwProtectedError as m, isProtectedDayOfYearToken as n, isValid as o, isBefore as p, isAfter as q, requiredArgs as r, startOfUTCWeek as s, toDate as t, format as u, startOfDay as v, startOfMonth as w, isSameDay as x };
|
|
3105
3105
|
|
|
3106
3106
|
//# sourceMappingURL=calendar.component.js.map
|
|
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
|
|
|
2
2
|
import { c as childOf } from './child-of.js';
|
|
3
3
|
import { i as isMobileBrowser } from './is-mobile-browser.js';
|
|
4
4
|
import { d as defineCustomElement$c } from './button.component.js';
|
|
5
|
-
import { r as requiredArgs, t as toDate, _ as _typeof, g as getUTCWeekYear, s as startOfUTCWeek, a as startOfUTCISOWeek, b as getUTCWeek, c as toInteger, e as getUTCISOWeek, f as getDefaultOptions, l as longFormatters, h as subMilliseconds, i as getTimezoneOffsetInMilliseconds, j as defaultLocale, k as isProtectedWeekYearToken, m as throwProtectedError, n as isProtectedDayOfYearToken, o as isValid, p as isBefore, q as isAfter, u as format, v as startOfDay, w as isSameDay, d as defineCustomElement$b } from './calendar.component.js';
|
|
5
|
+
import { r as requiredArgs, t as toDate, _ as _typeof, g as getUTCWeekYear, s as startOfUTCWeek, a as startOfUTCISOWeek, b as getUTCWeek, c as toInteger, e as getUTCISOWeek, f as getDefaultOptions, l as longFormatters, h as subMilliseconds, i as getTimezoneOffsetInMilliseconds, j as defaultLocale, k as isProtectedWeekYearToken, m as throwProtectedError, n as isProtectedDayOfYearToken, o as isValid, p as isBefore, q as isAfter, u as format, v as startOfDay, w as startOfMonth, x as isSameDay, d as defineCustomElement$b } from './calendar.component.js';
|
|
6
6
|
import { d as defineCustomElement$a } from './dropdown.component.js';
|
|
7
7
|
import { d as defineCustomElement$9 } from './dropdown-menu-container.component.js';
|
|
8
8
|
import { d as defineCustomElement$8 } from './field.component.js';
|
|
@@ -76,6 +76,33 @@ var millisecondsInHour = 3600000;
|
|
|
76
76
|
*/
|
|
77
77
|
var millisecondsInSecond = 1000;
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* @name startOfYear
|
|
81
|
+
* @category Year Helpers
|
|
82
|
+
* @summary Return the start of a year for the given date.
|
|
83
|
+
*
|
|
84
|
+
* @description
|
|
85
|
+
* Return the start of a year for the given date.
|
|
86
|
+
* The result will be in the local timezone.
|
|
87
|
+
*
|
|
88
|
+
* @param {Date|Number} date - the original date
|
|
89
|
+
* @returns {Date} the start of a year
|
|
90
|
+
* @throws {TypeError} 1 argument required
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // The start of a year for 2 September 2014 11:55:00:
|
|
94
|
+
* const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))
|
|
95
|
+
* //=> Wed Jan 01 2014 00:00:00
|
|
96
|
+
*/
|
|
97
|
+
function startOfYear(dirtyDate) {
|
|
98
|
+
requiredArgs(1, arguments);
|
|
99
|
+
var cleanDate = toDate(dirtyDate);
|
|
100
|
+
var date = new Date(0);
|
|
101
|
+
date.setFullYear(cleanDate.getFullYear(), 0, 1);
|
|
102
|
+
date.setHours(0, 0, 0, 0);
|
|
103
|
+
return date;
|
|
104
|
+
}
|
|
105
|
+
|
|
79
106
|
function assign(target, object) {
|
|
80
107
|
if (target == null) {
|
|
81
108
|
throw new TypeError('assign requires that input parameter not be null or undefined');
|
|
@@ -2974,13 +3001,13 @@ const Datepicker = /*@__PURE__*/ proxyCustomElement(class Datepicker extends HTM
|
|
|
2974
3001
|
if (this.mode !== 'day' && this.format === this._defaultFormats['day']) {
|
|
2975
3002
|
this.format = this._defaultFormats[this.mode];
|
|
2976
3003
|
}
|
|
2977
|
-
this._isMobileBrowser = isMobileBrowser();
|
|
3004
|
+
this._isMobileBrowser = isMobileBrowser() || true;
|
|
2978
3005
|
this.parseValue(this.value);
|
|
2979
3006
|
}
|
|
2980
3007
|
render() {
|
|
2981
|
-
return (h(Host, { key: '
|
|
3008
|
+
return (h(Host, { key: 'e48d3c9b517c3323fcc9c430a78721e1bad966a4', class: 'p-datepicker' }, h("p-dropdown", { key: 'c051904eae94288177f646bd200dab88cacc0895', strategy: this.strategy, placement: this.placement, disableTriggerClick: true, applyMaxWidth: false, applyFullWidth: false, insideClick: true, show: this._showDropdown }, h("p-field", { key: '7f5e16b89475a8ee35119116b592944830f6eb4f', slot: 'trigger', icon: this.hideIconWhenFilled && !!this._value ? null : 'calendar-multi', iconPosition: 'start', size: this.size, prefix: this.prefix, label: this.label, helper: this.helper, required: this.required, error: this.error, disabled: this.disabled, focused: this._showDropdown, value: this._getFormattedDate(), placeholder: this.placeholder, onFocus: () => this._onFocus(), onBlur: () => this._onBlur(), onValueChange: ev => this._onValueChange(ev.detail), onInputRefChange: ev => (this._inputRef = ev.detail) }), this.enableNativePicker && this._isMobileBrowser && (h("input", { key: '1ff2cb32a56ec717126d7659813900f8fd7efb47', slot: 'trigger', type: this.mode === 'day' ? 'date' : 'month', class: 'h-0 overflow-hidden' // we use h-0 here so location dependent pickers can correctly place itself
|
|
2982
3009
|
,
|
|
2983
|
-
onInput: ev => this._onNativeInput(ev), ref: ref => (this._dateInputRef = ref), value: this._value && format(this._value, 'yyyy-MM-dd'), min: this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd'), max: this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd') })), h("div", { key: '
|
|
3010
|
+
onInput: ev => this._onNativeInput(ev), ref: ref => (this._dateInputRef = ref), value: this._value && format(this._value, 'yyyy-MM-dd'), min: this.minDate && format(new Date(this.minDate), 'yyyy-MM-dd'), max: this.maxDate && format(new Date(this.maxDate), 'yyyy-MM-dd') })), h("div", { key: 'a935816c14866b2fc6375f1f85ba0dc26c243087', slot: 'items' }, h("p-calendar", { key: '3af01a1b9f52fad9b03ea5652a287e6673cbfe88', variant: 'embedded', value: this._value, onValueChange: ({ detail }) => (this.value = detail), preselectToday: this.preselectToday, disabledDates: this.disabledDates, minDate: this.minDate, maxDate: this.maxDate, disableWeekends: this.disableWeekends, mode: this.mode })))));
|
|
2984
3011
|
}
|
|
2985
3012
|
documentClickHandler({ target }) {
|
|
2986
3013
|
if (!this._showDropdown || childOf(target, this._el)) {
|
|
@@ -3028,7 +3055,7 @@ const Datepicker = /*@__PURE__*/ proxyCustomElement(class Datepicker extends HTM
|
|
|
3028
3055
|
}, 300);
|
|
3029
3056
|
}
|
|
3030
3057
|
_onNativeInput(ev) {
|
|
3031
|
-
if (!ev.target
|
|
3058
|
+
if (!ev.target) {
|
|
3032
3059
|
return;
|
|
3033
3060
|
}
|
|
3034
3061
|
if (this._onInputTimeout) {
|
|
@@ -3036,11 +3063,7 @@ const Datepicker = /*@__PURE__*/ proxyCustomElement(class Datepicker extends HTM
|
|
|
3036
3063
|
this._onInputTimeout = null;
|
|
3037
3064
|
}
|
|
3038
3065
|
this._onInputTimeout = setTimeout(() => {
|
|
3039
|
-
|
|
3040
|
-
if (!isValid(parsedValue)) {
|
|
3041
|
-
return;
|
|
3042
|
-
}
|
|
3043
|
-
this._setValue(parsedValue, false);
|
|
3066
|
+
this._setValue(ev.target.value === '' ? null : new Date(ev.target.value), false);
|
|
3044
3067
|
});
|
|
3045
3068
|
}
|
|
3046
3069
|
_setValue(value, hideDropdown = true) {
|
|
@@ -3060,7 +3083,12 @@ const Datepicker = /*@__PURE__*/ proxyCustomElement(class Datepicker extends HTM
|
|
|
3060
3083
|
}
|
|
3061
3084
|
return;
|
|
3062
3085
|
}
|
|
3063
|
-
value =
|
|
3086
|
+
value =
|
|
3087
|
+
this.mode === 'day'
|
|
3088
|
+
? startOfDay(value)
|
|
3089
|
+
: this.mode === 'month'
|
|
3090
|
+
? startOfMonth(value)
|
|
3091
|
+
: startOfYear(value);
|
|
3064
3092
|
const isSameValue = isSameDay(value, this._value);
|
|
3065
3093
|
if (isSameValue) {
|
|
3066
3094
|
return;
|