@paperless/core 2.0.1-beta.17 → 2.0.1-beta.18

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.
@@ -14,7 +14,15 @@ const header = cva([
14
14
  'flex items-center justify-between gap-1',
15
15
  'w-full p-2',
16
16
  'bg-off-white-300 rounded-lg',
17
- ]);
17
+ ], {
18
+ variants: {
19
+ type: {
20
+ day: null,
21
+ month: null,
22
+ year: 'justify-center',
23
+ },
24
+ },
25
+ });
18
26
  const view = cva(['flex flex-col gap-2', 'w-full'], {
19
27
  variants: {
20
28
  view: {
@@ -150,27 +158,31 @@ export class Calendar {
150
158
  const years = this._generateYears();
151
159
  return (h("div", { id: 'view-year', class: view({ view: 'year' }) }, this._getHeader('year'), h("div", { id: 'items', class: 'grid h-full grid-cols-4 gap-2 overflow-scroll' }, years.map(year => (h("p-button", { class: 'w-full', variant: year.active ? 'primary' : 'secondary', onClick: () => this._setYear(year.year), "data-active": year.active, "data-current": year.current }, year.year))))));
152
160
  }
153
- _getHeader(variant = 'day') {
161
+ _getHeader(type = 'day') {
154
162
  let nextFn = num => this._changeMonth(num);
155
163
  let nextType = 'month';
156
- if (variant === 'month' || variant === 'year') {
164
+ if (type === 'month' || type === 'year') {
157
165
  nextFn = num => this._changeYear(num);
158
166
  nextType = 'year';
159
167
  }
160
- return (h("div", { class: header() }, h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: 90, size: 'sm', onClick: () => nextFn(-1), disabled: !this._canSetAmount(nextType, -1) }), h("div", { class: 'flex gap-2' }, h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('month'), disabled: !this._canChangeView('month'), active: this._view === 'month' }, format(this._viewDate, 'MMMM')), h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('year'), disabled: !this._canChangeView('year'), active: this._view === 'year' }, getYear(this._viewDate))), h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: -90, size: 'sm', onClick: () => nextFn(1), disabled: !this._canSetAmount(nextType, 1) })));
168
+ return (h("div", { class: header({ type }) }, type !== 'year' && (h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: 90, size: 'sm', onClick: () => nextFn(-1), disabled: !this._canSetAmount(nextType, -1) })), h("div", { class: 'flex gap-2' }, this.mode !== 'year' && (h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('month'), disabled: !this._canChangeView('month'), active: this._view === 'month' && this.mode !== 'month' }, format(this._viewDate, 'MMMM'))), h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('year'), disabled: !this._canChangeView('year'), active: this._view === 'year' && this.mode !== 'year' }, getYear(this._viewDate))), type !== 'year' && (h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: -90, size: 'sm', onClick: () => nextFn(1), disabled: !this._canSetAmount(nextType, 1) }))));
161
169
  }
162
170
  _setYear(year) {
163
171
  const date = setYear(this._viewDate, year);
164
172
  if (this.mode === 'year') {
165
- return this._setValue(setMonth(setDate(date, 1), 0));
173
+ this._viewDate = date;
174
+ this._setValue(setMonth(setDate(date, 1), 0));
175
+ return;
166
176
  }
167
- this._viewDate = setYear(this._viewDate, year);
177
+ this._viewDate = date;
168
178
  this._view = 'month';
169
179
  }
170
180
  _setMonth(month) {
171
181
  const date = setMonth(this._viewDate, month);
172
182
  if (this.mode === 'month') {
173
- return this._setValue(setDate(date, 1));
183
+ this._viewDate = date;
184
+ this._setValue(setDate(date, 1));
185
+ return;
174
186
  }
175
187
  this._viewDate = date;
176
188
  this._view = 'day';
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/calendar/calendar.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { cva } from 'class-variance-authority';\nimport {\n\taddDays,\n\taddMonths,\n\taddYears,\n\tendOfMonth,\n\tformat,\n\tgetDay,\n\tgetDaysInMonth,\n\tgetYear,\n\tisAfter,\n\tisBefore,\n\tisSameDay,\n\tisSameMonth,\n\tisSameYear,\n\tisValid,\n\tsetDate,\n\tsetMonth,\n\tsetYear,\n\tstartOfDay,\n\tstartOfMonth,\n} from 'date-fns';\nimport { cn } from '../../../utils/cn';\n\nconst calendar = cva(['p-calendar bg-white w-[17.5rem] flex flex-col gap-4'], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: ['p-2 rounded-lg drop-shadow-2', 'border border-black-teal-100'],\n\t\t\tembedded: 'p-1',\n\t\t},\n\t},\n});\n\nconst header = cva([\n\t'flex items-center justify-between gap-1',\n\t'w-full p-2',\n\t'bg-off-white-300 rounded-lg',\n]);\n\nconst view = cva(['flex flex-col gap-2', 'w-full'], {\n\tvariants: {\n\t\tview: {\n\t\t\tday: 'h-auto min-h-[12rem]',\n\t\t\tmonth: null,\n\t\t\tyear: 'max-h-[14rem]',\n\t\t},\n\t},\n});\n\n@Component({\n\ttag: 'p-calendar',\n\tstyleUrl: 'calendar.component.scss',\n})\nexport class Calendar {\n\t/**\n\t * The variant of the button\n\t */\n\t@Prop() variant: 'default' | 'embedded' = 'default';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value?: Date | string;\n\n\t/**\n\t * Wether to automatically preselect today\n\t */\n\t@Prop() preselectToday: boolean = false;\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 = new Date(1970, 0, 1);\n\n\t/**\n\t * Max date\n\t */\n\t@Prop() maxDate: Date | string = this._getAutomaticMax();\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 host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _today = new Date();\n\t@State() private _view: 'year' | 'month' | 'day' = this.mode;\n\t@State() private _viewDate = this._today;\n\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\n\tprivate _weekDays = Array.from(Array(7).keys());\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\tthis._parseValue(this.value);\n\n\t\tif (this._value) {\n\t\t\tthis._viewDate = this._value;\n\t\t}\n\n\t\tif (isBefore(this._viewDate, this._minDate)) {\n\t\t\tthis._viewDate = this._minDate;\n\t\t}\n\n\t\tif (isAfter(this._viewDate, this._maxDate)) {\n\t\t\tthis._viewDate = this._maxDate;\n\t\t}\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this._view === 'year') {\n\t\t\tthis._scrollYearIntoView();\n\t\t}\n\t}\n\n\t@Watch('value')\n\tprivate _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\tprivate _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._viewDate, this._minDate)) {\n\t\t\tthis._viewDate = this._minDate;\n\t\t}\n\t}\n\n\t@Watch('maxDate')\n\tprivate _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._viewDate, this._maxDate)) {\n\t\t\tthis._viewDate = this._maxDate;\n\t\t}\n\t}\n\n\t@Watch('disabledDates')\n\tprivate _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\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={calendar({ variant: this.variant })}>{this._getView()}</Host>\n\t\t);\n\t}\n\n\tprivate _getView() {\n\t\tif (this._view === 'year') {\n\t\t\treturn this._getYearView();\n\t\t}\n\n\t\tif (this._view === 'month') {\n\t\t\treturn this._getMonthView();\n\t\t}\n\n\t\treturn this._getDayView();\n\t}\n\n\t/* With this, we shall hack the system in ways no one would ever have thought.\n <div class=\"col-start-1 col-start-2 col-start-3 col-start-4 col-start-5 col-start-6 col-start-7\"></div>\n */\n\tprivate _getDayView() {\n\t\tconst daysInMonth = this._generateDaysInMonth();\n\t\treturn (\n\t\t\t<div class={view({ view: 'day' })}>\n\t\t\t\t{this._getHeader('day')}\n\n\t\t\t\t<div class='grid grid-cols-7 justify-between gap-1'>\n\t\t\t\t\t{this._weekDays.map(weekday => (\n\t\t\t\t\t\t<span class='w-8 text-center text-xs text-black-teal-200'>\n\t\t\t\t\t\t\t{format(addDays(new Date(2022, 7, 1), weekday), 'eee')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t))}\n\t\t\t\t\t{daysInMonth.map(day => {\n\t\t\t\t\t\treturn day.active ? (\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tvariant='primary'\n\t\t\t\t\t\t\t\tclass={cn('w-full', `col-start-${day.offset}`)}\n\t\t\t\t\t\t\t\tonClick={() => this._setValue(day.date)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* class={`day ${day.active && 'active'} ${ */}\n\t\t\t\t\t\t\t\t{/* \tday.disabled && 'disabled' */}\n\t\t\t\t\t\t\t\t{/* } ${day.current && 'current'} ${ */}\n\t\t\t\t\t\t\t\t{/* \tday.offset !== false && */}\n\t\t\t\t\t\t\t\t{/* }`} */}\n\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t</p-button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\tclass={cn(\n\t\t\t\t\t\t\t\t\t'normal flex items-center justify-center rounded-lg',\n\t\t\t\t\t\t\t\t\t'h-8 w-8 text-sm text-black-teal-300',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'cursor-pointer hover:bg-white-600 hover:text-black-teal':\n\t\t\t\t\t\t\t\t\t\t\t!day.disabled,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t`col-start-${day.offset}`,\n\t\t\t\t\t\t\t\t\t{ 'cursor-not-allowed opacity-60': day.disabled }\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={() => this._setValue(day.date)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getMonthView() {\n\t\tconst months = this._generateMonths();\n\t\treturn (\n\t\t\t<div class={view({ view: 'month' })}>\n\t\t\t\t{this._getHeader('month')}\n\n\t\t\t\t<div class='flex flex-wrap items-start gap-2'>\n\t\t\t\t\t{months.map(month => (\n\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\tvariant={month.active ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\tdisabled={month.disabled}\n\t\t\t\t\t\t\tonClick={() => this._setMonth(month.month)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{format(setMonth(new Date(), month.month), 'MMMM')}\n\t\t\t\t\t\t</p-button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getYearView() {\n\t\tconst years = this._generateYears();\n\t\treturn (\n\t\t\t<div\n\t\t\t\tid='view-year'\n\t\t\t\tclass={view({ view: 'year' })}\n\t\t\t>\n\t\t\t\t{this._getHeader('year')}\n\t\t\t\t<div\n\t\t\t\t\tid='items'\n\t\t\t\t\tclass='grid h-full grid-cols-4 gap-2 overflow-scroll'\n\t\t\t\t>\n\t\t\t\t\t{years.map(year => (\n\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\t\tvariant={year.active ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\tonClick={() => this._setYear(year.year)}\n\t\t\t\t\t\t\tdata-active={year.active}\n\t\t\t\t\t\t\tdata-current={year.current}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{year.year}\n\t\t\t\t\t\t</p-button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getHeader(variant: 'day' | 'month' | 'year' = 'day') {\n\t\tlet nextFn = num => this._changeMonth(num);\n\t\tlet nextType: 'month' | 'year' = 'month';\n\n\t\tif (variant === 'month' || variant === 'year') {\n\t\t\tnextFn = num => this._changeYear(num);\n\t\t\tnextType = 'year';\n\t\t}\n\n\t\treturn (\n\t\t\t<div class={header()}>\n\t\t\t\t<p-button\n\t\t\t\t\tvariant='secondary'\n\t\t\t\t\ticonOnly\n\t\t\t\t\ticon='caret'\n\t\t\t\t\ticonRotate={90}\n\t\t\t\t\tsize='sm'\n\t\t\t\t\tonClick={() => nextFn(-1)}\n\t\t\t\t\tdisabled={!this._canSetAmount(nextType, -1)}\n\t\t\t\t/>\n\n\t\t\t\t<div class='flex gap-2'>\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tonClick={() => this._changeView('month')}\n\t\t\t\t\t\tdisabled={!this._canChangeView('month')}\n\t\t\t\t\t\tactive={this._view === 'month'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{format(this._viewDate, 'MMMM')}\n\t\t\t\t\t</p-button>\n\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tonClick={() => this._changeView('year')}\n\t\t\t\t\t\tdisabled={!this._canChangeView('year')}\n\t\t\t\t\t\tactive={this._view === 'year'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{getYear(this._viewDate)}\n\t\t\t\t\t</p-button>\n\t\t\t\t</div>\n\n\t\t\t\t<p-button\n\t\t\t\t\tvariant='secondary'\n\t\t\t\t\ticonOnly\n\t\t\t\t\ticon='caret'\n\t\t\t\t\ticonRotate={-90}\n\t\t\t\t\tsize='sm'\n\t\t\t\t\tonClick={() => nextFn(1)}\n\t\t\t\t\tdisabled={!this._canSetAmount(nextType, 1)}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setYear(year: number) {\n\t\tconst date = setYear(this._viewDate, year);\n\t\tif (this.mode === 'year') {\n\t\t\treturn this._setValue(setMonth(setDate(date, 1), 0));\n\t\t}\n\n\t\tthis._viewDate = setYear(this._viewDate, year);\n\t\tthis._view = 'month';\n\t}\n\n\tprivate _setMonth(month: number) {\n\t\tconst date = setMonth(this._viewDate, month);\n\t\tif (this.mode === 'month') {\n\t\t\treturn this._setValue(setDate(date, 1));\n\t\t}\n\n\t\tthis._viewDate = date;\n\t\tthis._view = 'day';\n\t}\n\n\tprivate _changeMonth(amount = 1) {\n\t\tconst allowed = this._canSetAmount('month', amount);\n\t\tif (!allowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newDate = addMonths(this._viewDate, amount);\n\t\tthis._viewDate = newDate;\n\t}\n\n\tprivate _changeYear(amount = 1) {\n\t\tconst allowed = this._canSetAmount('year', amount);\n\t\tif (!allowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet newDate = addYears(this._viewDate, amount);\n\t\tthis._viewDate = newDate;\n\t}\n\n\tprivate _setValue(value: Date) {\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\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\tthis._value = value;\n\t\tthis.valueChange.emit(value);\n\t}\n\n\tprivate _generateDaysInMonth() {\n\t\tconst days = Array.from(Array(getDaysInMonth(this._viewDate)).keys());\n\n\t\treturn days.map(day => {\n\t\t\tday = day + 1;\n\t\t\tconst date = setDate(this._viewDate, day);\n\n\t\t\tconst dayOfWeek = getDay(date);\n\t\t\treturn {\n\t\t\t\tday,\n\t\t\t\tdate,\n\t\t\t\toffset: day === 1 ? (dayOfWeek === 0 ? 7 : dayOfWeek) : false,\n\t\t\t\tcurrent: isSameDay(date, this._today),\n\t\t\t\tactive: isSameDay(date, this._value),\n\t\t\t\tdisabled: this._isDisabledDay(date),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _isDisabledDay(day: Date) {\n\t\treturn (\n\t\t\t(isBefore(day, this._minDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\t(isAfter(day, this._maxDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\t((getDay(day) === 0 || getDay(day) === 6) && this.disableWeekends) ||\n\t\t\tthis._disabledDates.findIndex(date => isSameDay(date, day)) >= 0\n\t\t);\n\t}\n\n\tprivate _generateMonths() {\n\t\tconst year = getYear(this._viewDate);\n\t\tconst months = Array.from(Array(12).keys());\n\n\t\treturn months.map(month => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tcurrent: isSameMonth(this._today, date),\n\t\t\t\tactive: isSameMonth(this._value, date),\n\t\t\t\tdisabled:\n\t\t\t\t\tisAfter(date, this._maxDate) ||\n\t\t\t\t\tisBefore(endOfMonth(date), this._minDate),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _generateYears() {\n\t\tconst maxYear = getYear(this._maxDate) + 1;\n\t\tconst minYear = getYear(this._minDate);\n\n\t\treturn Array.from(Array(maxYear - minYear).keys()).map(index => {\n\t\t\tconst year = minYear + index;\n\t\t\treturn {\n\t\t\t\tyear,\n\t\t\t\tcurrent: getYear(this._today) === year,\n\t\t\t\tactive: getYear(this._value) === year,\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _scrollYearIntoView() {\n\t\tconst items = this._el.querySelector('#view-year > #items');\n\t\tif (!items) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst active = items.querySelector('p-button[data-active]') as HTMLElement;\n\t\tif (active) {\n\t\t\treturn items.scrollTo({\n\t\t\t\ttop: active.offsetTop - 100,\n\t\t\t});\n\t\t}\n\n\t\tconst current = items.querySelector(\n\t\t\t'p-button[data-current]'\n\t\t) as HTMLElement;\n\t\tif (current) {\n\t\t\treturn items.scrollTo({\n\t\t\t\ttop: current.offsetTop - 100,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _changeView(view: 'year' | 'month') {\n\t\tif (!this._canChangeView(view)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._view = view;\n\t}\n\n\tprivate _canChangeView(view: 'year' | 'month') {\n\t\tif (view === 'year') {\n\t\t\tif (isSameYear(this._minDate, this._maxDate)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (isSameMonth(this._minDate, this._maxDate)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _canSetAmount(type: 'month' | 'year', amount = 1) {\n\t\tif (type === 'month') {\n\t\t\tconst newDate = addMonths(this._viewDate, amount);\n\t\t\tconst startNewDate = startOfMonth(newDate);\n\t\t\tif (\n\t\t\t\t(isBefore(startNewDate, startOfMonth(this._minDate)) &&\n\t\t\t\t\t!isSameDay(startNewDate, this._minDate)) ||\n\t\t\t\tisAfter(startNewDate, endOfMonth(this._maxDate))\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (type === 'year') {\n\t\t\tlet newDate = addYears(this._viewDate, amount);\n\t\t\tconst year = getYear(newDate);\n\t\t\tif (year < getYear(this._minDate) || year > getYear(this._maxDate)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getAutomaticMax() {\n\t\tconst date = addYears(new Date(), 50);\n\n\t\tlet year = getYear(date);\n\t\tyear = Math.ceil(year / 10) * 10;\n\n\t\treturn setYear(date, year);\n\t}\n}\n"]}
1
+ {"version":3,"file":"calendar.component.js","sourceRoot":"","sources":["../../../../src/components/molecules/calendar/calendar.component.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { cva } from 'class-variance-authority';\nimport {\n\taddDays,\n\taddMonths,\n\taddYears,\n\tendOfMonth,\n\tformat,\n\tgetDay,\n\tgetDaysInMonth,\n\tgetYear,\n\tisAfter,\n\tisBefore,\n\tisSameDay,\n\tisSameMonth,\n\tisSameYear,\n\tisValid,\n\tsetDate,\n\tsetMonth,\n\tsetYear,\n\tstartOfDay,\n\tstartOfMonth,\n} from 'date-fns';\nimport { cn } from '../../../utils/cn';\n\nconst calendar = cva(['p-calendar bg-white w-[17.5rem] flex flex-col gap-4'], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: ['p-2 rounded-lg drop-shadow-2', 'border border-black-teal-100'],\n\t\t\tembedded: 'p-1',\n\t\t},\n\t},\n});\n\nconst header = cva(\n\t[\n\t\t'flex items-center justify-between gap-1',\n\t\t'w-full p-2',\n\t\t'bg-off-white-300 rounded-lg',\n\t],\n\t{\n\t\tvariants: {\n\t\t\ttype: {\n\t\t\t\tday: null,\n\t\t\t\tmonth: null,\n\t\t\t\tyear: 'justify-center',\n\t\t\t},\n\t\t},\n\t}\n);\n\nconst view = cva(['flex flex-col gap-2', 'w-full'], {\n\tvariants: {\n\t\tview: {\n\t\t\tday: 'h-auto min-h-[12rem]',\n\t\t\tmonth: null,\n\t\t\tyear: 'max-h-[14rem]',\n\t\t},\n\t},\n});\n\n@Component({\n\ttag: 'p-calendar',\n\tstyleUrl: 'calendar.component.scss',\n})\nexport class Calendar {\n\t/**\n\t * The variant of the button\n\t */\n\t@Prop() variant: 'default' | 'embedded' = 'default';\n\n\t/**\n\t * The current value\n\t */\n\t@Prop() value?: Date | string;\n\n\t/**\n\t * Wether to automatically preselect today\n\t */\n\t@Prop() preselectToday: boolean = false;\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 = new Date(1970, 0, 1);\n\n\t/**\n\t * Max date\n\t */\n\t@Prop() maxDate: Date | string = this._getAutomaticMax();\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 host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\tprivate _today = new Date();\n\t@State() private _view: 'year' | 'month' | 'day' = this.mode;\n\t@State() private _viewDate = this._today;\n\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\n\tprivate _weekDays = Array.from(Array(7).keys());\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\tthis._parseValue(this.value);\n\n\t\tif (this._value) {\n\t\t\tthis._viewDate = this._value;\n\t\t}\n\n\t\tif (isBefore(this._viewDate, this._minDate)) {\n\t\t\tthis._viewDate = this._minDate;\n\t\t}\n\n\t\tif (isAfter(this._viewDate, this._maxDate)) {\n\t\t\tthis._viewDate = this._maxDate;\n\t\t}\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this._view === 'year') {\n\t\t\tthis._scrollYearIntoView();\n\t\t}\n\t}\n\n\t@Watch('value')\n\tprivate _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\tprivate _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._viewDate, this._minDate)) {\n\t\t\tthis._viewDate = this._minDate;\n\t\t}\n\t}\n\n\t@Watch('maxDate')\n\tprivate _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._viewDate, this._maxDate)) {\n\t\t\tthis._viewDate = this._maxDate;\n\t\t}\n\t}\n\n\t@Watch('disabledDates')\n\tprivate _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\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={calendar({ variant: this.variant })}>{this._getView()}</Host>\n\t\t);\n\t}\n\n\tprivate _getView() {\n\t\tif (this._view === 'year') {\n\t\t\treturn this._getYearView();\n\t\t}\n\n\t\tif (this._view === 'month') {\n\t\t\treturn this._getMonthView();\n\t\t}\n\n\t\treturn this._getDayView();\n\t}\n\n\t/* With this, we shall hack the system in ways no one would ever have thought.\n <div class=\"col-start-1 col-start-2 col-start-3 col-start-4 col-start-5 col-start-6 col-start-7\"></div>\n */\n\tprivate _getDayView() {\n\t\tconst daysInMonth = this._generateDaysInMonth();\n\t\treturn (\n\t\t\t<div class={view({ view: 'day' })}>\n\t\t\t\t{this._getHeader('day')}\n\n\t\t\t\t<div class='grid grid-cols-7 justify-between gap-1'>\n\t\t\t\t\t{this._weekDays.map(weekday => (\n\t\t\t\t\t\t<span class='w-8 text-center text-xs text-black-teal-200'>\n\t\t\t\t\t\t\t{format(addDays(new Date(2022, 7, 1), weekday), 'eee')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t))}\n\t\t\t\t\t{daysInMonth.map(day => {\n\t\t\t\t\t\treturn day.active ? (\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tvariant='primary'\n\t\t\t\t\t\t\t\tclass={cn('w-full', `col-start-${day.offset}`)}\n\t\t\t\t\t\t\t\tonClick={() => this._setValue(day.date)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* class={`day ${day.active && 'active'} ${ */}\n\t\t\t\t\t\t\t\t{/* \tday.disabled && 'disabled' */}\n\t\t\t\t\t\t\t\t{/* } ${day.current && 'current'} ${ */}\n\t\t\t\t\t\t\t\t{/* \tday.offset !== false && */}\n\t\t\t\t\t\t\t\t{/* }`} */}\n\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t</p-button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\tclass={cn(\n\t\t\t\t\t\t\t\t\t'normal flex items-center justify-center rounded-lg',\n\t\t\t\t\t\t\t\t\t'h-8 w-8 text-sm text-black-teal-300',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'cursor-pointer hover:bg-white-600 hover:text-black-teal':\n\t\t\t\t\t\t\t\t\t\t\t!day.disabled,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t`col-start-${day.offset}`,\n\t\t\t\t\t\t\t\t\t{ 'cursor-not-allowed opacity-60': day.disabled }\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={() => this._setValue(day.date)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getMonthView() {\n\t\tconst months = this._generateMonths();\n\t\treturn (\n\t\t\t<div class={view({ view: 'month' })}>\n\t\t\t\t{this._getHeader('month')}\n\n\t\t\t\t<div class='flex flex-wrap items-start gap-2'>\n\t\t\t\t\t{months.map(month => (\n\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\tvariant={month.active ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\tdisabled={month.disabled}\n\t\t\t\t\t\t\tonClick={() => this._setMonth(month.month)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{format(setMonth(new Date(), month.month), 'MMMM')}\n\t\t\t\t\t\t</p-button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getYearView() {\n\t\tconst years = this._generateYears();\n\t\treturn (\n\t\t\t<div\n\t\t\t\tid='view-year'\n\t\t\t\tclass={view({ view: 'year' })}\n\t\t\t>\n\t\t\t\t{this._getHeader('year')}\n\t\t\t\t<div\n\t\t\t\t\tid='items'\n\t\t\t\t\tclass='grid h-full grid-cols-4 gap-2 overflow-scroll'\n\t\t\t\t>\n\t\t\t\t\t{years.map(year => (\n\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\tclass='w-full'\n\t\t\t\t\t\t\tvariant={year.active ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\tonClick={() => this._setYear(year.year)}\n\t\t\t\t\t\t\tdata-active={year.active}\n\t\t\t\t\t\t\tdata-current={year.current}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{year.year}\n\t\t\t\t\t\t</p-button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _getHeader(type: 'day' | 'month' | 'year' = 'day') {\n\t\tlet nextFn = num => this._changeMonth(num);\n\t\tlet nextType: 'month' | 'year' = 'month';\n\n\t\tif (type === 'month' || type === 'year') {\n\t\t\tnextFn = num => this._changeYear(num);\n\t\t\tnextType = 'year';\n\t\t}\n\n\t\treturn (\n\t\t\t<div class={header({ type })}>\n\t\t\t\t{type !== 'year' && (\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\ticonOnly\n\t\t\t\t\t\ticon='caret'\n\t\t\t\t\t\ticonRotate={90}\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tonClick={() => nextFn(-1)}\n\t\t\t\t\t\tdisabled={!this._canSetAmount(nextType, -1)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div class='flex gap-2'>\n\t\t\t\t\t{this.mode !== 'year' && (\n\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\t\tonClick={() => this._changeView('month')}\n\t\t\t\t\t\t\tdisabled={!this._canChangeView('month')}\n\t\t\t\t\t\t\tactive={this._view === 'month' && this.mode !== 'month'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{format(this._viewDate, 'MMMM')}\n\t\t\t\t\t\t</p-button>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tonClick={() => this._changeView('year')}\n\t\t\t\t\t\tdisabled={!this._canChangeView('year')}\n\t\t\t\t\t\tactive={this._view === 'year' && this.mode !== 'year'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{getYear(this._viewDate)}\n\t\t\t\t\t</p-button>\n\t\t\t\t</div>\n\n\t\t\t\t{type !== 'year' && (\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\ticonOnly\n\t\t\t\t\t\ticon='caret'\n\t\t\t\t\t\ticonRotate={-90}\n\t\t\t\t\t\tsize='sm'\n\t\t\t\t\t\tonClick={() => nextFn(1)}\n\t\t\t\t\t\tdisabled={!this._canSetAmount(nextType, 1)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _setYear(year: number) {\n\t\tconst date = setYear(this._viewDate, year);\n\t\tif (this.mode === 'year') {\n\t\t\tthis._viewDate = date;\n\t\t\tthis._setValue(setMonth(setDate(date, 1), 0));\n\t\t\treturn;\n\t\t}\n\n\t\tthis._viewDate = date;\n\t\tthis._view = 'month';\n\t}\n\n\tprivate _setMonth(month: number) {\n\t\tconst date = setMonth(this._viewDate, month);\n\t\tif (this.mode === 'month') {\n\t\t\tthis._viewDate = date;\n\t\t\tthis._setValue(setDate(date, 1));\n\t\t\treturn;\n\t\t}\n\n\t\tthis._viewDate = date;\n\t\tthis._view = 'day';\n\t}\n\n\tprivate _changeMonth(amount = 1) {\n\t\tconst allowed = this._canSetAmount('month', amount);\n\t\tif (!allowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newDate = addMonths(this._viewDate, amount);\n\t\tthis._viewDate = newDate;\n\t}\n\n\tprivate _changeYear(amount = 1) {\n\t\tconst allowed = this._canSetAmount('year', amount);\n\t\tif (!allowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet newDate = addYears(this._viewDate, amount);\n\t\tthis._viewDate = newDate;\n\t}\n\n\tprivate _setValue(value: Date) {\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\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\tthis._value = value;\n\t\tthis.valueChange.emit(value);\n\t}\n\n\tprivate _generateDaysInMonth() {\n\t\tconst days = Array.from(Array(getDaysInMonth(this._viewDate)).keys());\n\n\t\treturn days.map(day => {\n\t\t\tday = day + 1;\n\t\t\tconst date = setDate(this._viewDate, day);\n\n\t\t\tconst dayOfWeek = getDay(date);\n\t\t\treturn {\n\t\t\t\tday,\n\t\t\t\tdate,\n\t\t\t\toffset: day === 1 ? (dayOfWeek === 0 ? 7 : dayOfWeek) : false,\n\t\t\t\tcurrent: isSameDay(date, this._today),\n\t\t\t\tactive: isSameDay(date, this._value),\n\t\t\t\tdisabled: this._isDisabledDay(date),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _isDisabledDay(day: Date) {\n\t\treturn (\n\t\t\t(isBefore(day, this._minDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\t(isAfter(day, this._maxDate) && !isSameDay(day, this._maxDate)) ||\n\t\t\t((getDay(day) === 0 || getDay(day) === 6) && this.disableWeekends) ||\n\t\t\tthis._disabledDates.findIndex(date => isSameDay(date, day)) >= 0\n\t\t);\n\t}\n\n\tprivate _generateMonths() {\n\t\tconst year = getYear(this._viewDate);\n\t\tconst months = Array.from(Array(12).keys());\n\n\t\treturn months.map(month => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tcurrent: isSameMonth(this._today, date),\n\t\t\t\tactive: isSameMonth(this._value, date),\n\t\t\t\tdisabled:\n\t\t\t\t\tisAfter(date, this._maxDate) ||\n\t\t\t\t\tisBefore(endOfMonth(date), this._minDate),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _generateYears() {\n\t\tconst maxYear = getYear(this._maxDate) + 1;\n\t\tconst minYear = getYear(this._minDate);\n\n\t\treturn Array.from(Array(maxYear - minYear).keys()).map(index => {\n\t\t\tconst year = minYear + index;\n\t\t\treturn {\n\t\t\t\tyear,\n\t\t\t\tcurrent: getYear(this._today) === year,\n\t\t\t\tactive: getYear(this._value) === year,\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _scrollYearIntoView() {\n\t\tconst items = this._el.querySelector('#view-year > #items');\n\t\tif (!items) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst active = items.querySelector('p-button[data-active]') as HTMLElement;\n\t\tif (active) {\n\t\t\treturn items.scrollTo({\n\t\t\t\ttop: active.offsetTop - 100,\n\t\t\t});\n\t\t}\n\n\t\tconst current = items.querySelector(\n\t\t\t'p-button[data-current]'\n\t\t) as HTMLElement;\n\t\tif (current) {\n\t\t\treturn items.scrollTo({\n\t\t\t\ttop: current.offsetTop - 100,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _changeView(view: 'year' | 'month') {\n\t\tif (!this._canChangeView(view)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._view = view;\n\t}\n\n\tprivate _canChangeView(view: 'year' | 'month') {\n\t\tif (view === 'year') {\n\t\t\tif (isSameYear(this._minDate, this._maxDate)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (isSameMonth(this._minDate, this._maxDate)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _canSetAmount(type: 'month' | 'year', amount = 1) {\n\t\tif (type === 'month') {\n\t\t\tconst newDate = addMonths(this._viewDate, amount);\n\t\t\tconst startNewDate = startOfMonth(newDate);\n\t\t\tif (\n\t\t\t\t(isBefore(startNewDate, startOfMonth(this._minDate)) &&\n\t\t\t\t\t!isSameDay(startNewDate, this._minDate)) ||\n\t\t\t\tisAfter(startNewDate, endOfMonth(this._maxDate))\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (type === 'year') {\n\t\t\tlet newDate = addYears(this._viewDate, amount);\n\t\t\tconst year = getYear(newDate);\n\t\t\tif (year < getYear(this._minDate) || year > getYear(this._maxDate)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getAutomaticMax() {\n\t\tconst date = addYears(new Date(), 50);\n\n\t\tlet year = getYear(date);\n\t\tyear = Math.ceil(year / 10) * 10;\n\n\t\treturn setYear(date, year);\n\t}\n}\n"]}
@@ -2705,7 +2705,15 @@ const header = cva([
2705
2705
  'flex items-center justify-between gap-1',
2706
2706
  'w-full p-2',
2707
2707
  'bg-off-white-300 rounded-lg',
2708
- ]);
2708
+ ], {
2709
+ variants: {
2710
+ type: {
2711
+ day: null,
2712
+ month: null,
2713
+ year: 'justify-center',
2714
+ },
2715
+ },
2716
+ });
2709
2717
  const view = cva(['flex flex-col gap-2', 'w-full'], {
2710
2718
  variants: {
2711
2719
  view: {
@@ -2844,27 +2852,31 @@ const Calendar = /*@__PURE__*/ proxyCustomElement(class Calendar extends HTMLEle
2844
2852
  const years = this._generateYears();
2845
2853
  return (h("div", { id: 'view-year', class: view({ view: 'year' }) }, this._getHeader('year'), h("div", { id: 'items', class: 'grid h-full grid-cols-4 gap-2 overflow-scroll' }, years.map(year => (h("p-button", { class: 'w-full', variant: year.active ? 'primary' : 'secondary', onClick: () => this._setYear(year.year), "data-active": year.active, "data-current": year.current }, year.year))))));
2846
2854
  }
2847
- _getHeader(variant = 'day') {
2855
+ _getHeader(type = 'day') {
2848
2856
  let nextFn = num => this._changeMonth(num);
2849
2857
  let nextType = 'month';
2850
- if (variant === 'month' || variant === 'year') {
2858
+ if (type === 'month' || type === 'year') {
2851
2859
  nextFn = num => this._changeYear(num);
2852
2860
  nextType = 'year';
2853
2861
  }
2854
- return (h("div", { class: header() }, h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: 90, size: 'sm', onClick: () => nextFn(-1), disabled: !this._canSetAmount(nextType, -1) }), h("div", { class: 'flex gap-2' }, h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('month'), disabled: !this._canChangeView('month'), active: this._view === 'month' }, format(this._viewDate, 'MMMM')), h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('year'), disabled: !this._canChangeView('year'), active: this._view === 'year' }, getYear(this._viewDate))), h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: -90, size: 'sm', onClick: () => nextFn(1), disabled: !this._canSetAmount(nextType, 1) })));
2862
+ return (h("div", { class: header({ type }) }, type !== 'year' && (h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: 90, size: 'sm', onClick: () => nextFn(-1), disabled: !this._canSetAmount(nextType, -1) })), h("div", { class: 'flex gap-2' }, this.mode !== 'year' && (h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('month'), disabled: !this._canChangeView('month'), active: this._view === 'month' && this.mode !== 'month' }, format(this._viewDate, 'MMMM'))), h("p-button", { variant: 'secondary', size: 'sm', onClick: () => this._changeView('year'), disabled: !this._canChangeView('year'), active: this._view === 'year' && this.mode !== 'year' }, getYear(this._viewDate))), type !== 'year' && (h("p-button", { variant: 'secondary', iconOnly: true, icon: 'caret', iconRotate: -90, size: 'sm', onClick: () => nextFn(1), disabled: !this._canSetAmount(nextType, 1) }))));
2855
2863
  }
2856
2864
  _setYear(year) {
2857
2865
  const date = setYear(this._viewDate, year);
2858
2866
  if (this.mode === 'year') {
2859
- return this._setValue(setMonth(setDate(date, 1), 0));
2867
+ this._viewDate = date;
2868
+ this._setValue(setMonth(setDate(date, 1), 0));
2869
+ return;
2860
2870
  }
2861
- this._viewDate = setYear(this._viewDate, year);
2871
+ this._viewDate = date;
2862
2872
  this._view = 'month';
2863
2873
  }
2864
2874
  _setMonth(month) {
2865
2875
  const date = setMonth(this._viewDate, month);
2866
2876
  if (this.mode === 'month') {
2867
- return this._setValue(setDate(date, 1));
2877
+ this._viewDate = date;
2878
+ this._setValue(setDate(date, 1));
2879
+ return;
2868
2880
  }
2869
2881
  this._viewDate = date;
2870
2882
  this._view = 'day';