@progressio_resources/gravity-design-system 3.6.6 → 3.6.7
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/esm2022/lib/components/gravity-calendar-next/components/day-calendar/day-calendar.component.mjs +85 -30
- package/esm2022/lib/components/gravity-calendar-next/components/day-calendar/range-days-calendar.utils.mjs +197 -46
- package/esm2022/lib/components/gravity-calendar-next/components/month-calendar/month-calendar.component.mjs +26 -10
- package/esm2022/lib/components/gravity-calendar-next/components/year-calendar/year-calendar.component.mjs +27 -9
- package/esm2022/lib/components/gravity-calendar-next/gravity-calendar-next.component.mjs +30 -20
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.constants.mjs +43 -3
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.modal.mjs +1 -1
- package/esm2022/lib/components/gravity-calendar-next/shared/calendar.utils.mjs +101 -6
- package/esm2022/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.mjs +3 -3
- package/esm2022/lib/components/gravity-icon-button/gravity-icon-button.component.mjs +2 -2
- package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +2 -2
- package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +12 -6
- package/esm2022/lib/gravity-design-system.module.mjs +1 -4
- package/esm2022/lib/layout/gravity-header/gravity-header.component.mjs +3 -3
- package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +4 -5
- package/fesm2022/progressio_resources-gravity-design-system.mjs +506 -222
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/lib/components/gravity-calendar-next/components/day-calendar/day-calendar.component.d.ts +57 -10
- package/lib/components/gravity-calendar-next/components/day-calendar/range-days-calendar.utils.d.ts +4 -1
- package/lib/components/gravity-calendar-next/components/month-calendar/month-calendar.component.d.ts +38 -6
- package/lib/components/gravity-calendar-next/components/year-calendar/year-calendar.component.d.ts +39 -5
- package/lib/components/gravity-calendar-next/gravity-calendar-next.component.d.ts +48 -6
- package/lib/components/gravity-calendar-next/shared/calendar.constants.d.ts +33 -3
- package/lib/components/gravity-calendar-next/shared/calendar.modal.d.ts +6 -2
- package/lib/components/gravity-calendar-next/shared/calendar.utils.d.ts +7 -2
- package/lib/components/gravity-text-field/gravity-text-field.component.d.ts +5 -3
- package/lib/gravity-design-system.module.d.ts +14 -15
- package/lib/layout/gravity-menu/gravity-menu.component.d.ts +2 -2
- package/package.json +1 -1
- package/esm2022/lib/components/gravity-calendar-next/components/dual-month-calendar/dual-month-calendar.component.mjs +0 -109
- package/lib/components/gravity-calendar-next/components/dual-month-calendar/dual-month-calendar.component.d.ts +0 -46
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { changeDate, getStartDate, toCalendarDay } from "../../shared/calendar.utils";
|
|
2
|
-
import { onClearHover, onHoverDay, onSelectRageDays, } from "../day-calendar/range-days-calendar.utils";
|
|
3
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
4
|
-
import { CALENDAR_I18N, DAYS_EN, DAYS_ES, MONTHS_SHORT_EN, MONTHS_SHORT_ES } from "../../shared/calendar.constants";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "../../../gravity-icon/gravity-icon.component";
|
|
8
|
-
import * as i3 from "../day-calendar/day-calendar.component";
|
|
9
|
-
export class DualMonthCalendarComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.restart = false;
|
|
12
|
-
this.clearSelection = new EventEmitter();
|
|
13
|
-
this.calendarResponse = new EventEmitter();
|
|
14
|
-
this.currentDate = new Date();
|
|
15
|
-
this.showLeftCalendar = true;
|
|
16
|
-
this.showRightCalendar = true;
|
|
17
|
-
this.nextMonth = changeDate(1, this.currentDate, true);
|
|
18
|
-
this.Date = Date;
|
|
19
|
-
this.changeDate = changeDate;
|
|
20
|
-
this.onSelectRageDays = onSelectRageDays;
|
|
21
|
-
}
|
|
22
|
-
get i18n() { return CALENDAR_I18N[this.appearance.language]; }
|
|
23
|
-
get daysList() { return this.appearance.language === 'en' ? DAYS_EN : DAYS_ES; }
|
|
24
|
-
get monthsShortList() { return this.appearance.language === 'en' ? MONTHS_SHORT_EN : MONTHS_SHORT_ES; }
|
|
25
|
-
ngOnChanges(changes) {
|
|
26
|
-
const shouldRestart = changes['restart'] && this.restart;
|
|
27
|
-
const shouldProcessPreSelected = changes['preSelectedDate'] && this.initDate;
|
|
28
|
-
if (shouldRestart || shouldProcessPreSelected) {
|
|
29
|
-
this.processInitDate();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
processInitDate() {
|
|
33
|
-
this.showLeftCalendar = true;
|
|
34
|
-
this.showRightCalendar = true;
|
|
35
|
-
if (Array.isArray(this.initDate)) {
|
|
36
|
-
const [start, end] = this.initDate;
|
|
37
|
-
if (start instanceof Date) {
|
|
38
|
-
this.currentDate = getStartDate(start);
|
|
39
|
-
this.nextMonth = changeDate(1, this.currentDate, true);
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
this.leftCalendar.selectedRangeStart = toCalendarDay(start);
|
|
42
|
-
this.rightCalendar.selectedRangeStart = toCalendarDay(start);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
if (end instanceof Date) {
|
|
46
|
-
setTimeout(() => {
|
|
47
|
-
this.leftCalendar.selectedRangeEnd = toCalendarDay(end);
|
|
48
|
-
this.rightCalendar.selectedRangeEnd = toCalendarDay(end);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
onChangeMonth(calendar, offset) {
|
|
54
|
-
const targetCalendar = calendar === 'left' ? this.rightCalendar : this.leftCalendar;
|
|
55
|
-
targetCalendar.currentDate = changeDate(offset, targetCalendar.currentDate, true);
|
|
56
|
-
}
|
|
57
|
-
getFormattedDate(day) {
|
|
58
|
-
return this.daysList[day.weekDay] + ', ' + day.day + ' ' + this.monthsShortList[day.monthYear.month];
|
|
59
|
-
}
|
|
60
|
-
handleHoverDay(day) {
|
|
61
|
-
onHoverDay(this.leftCalendar, day);
|
|
62
|
-
}
|
|
63
|
-
handleClearHover() {
|
|
64
|
-
onClearHover(this.leftCalendar);
|
|
65
|
-
}
|
|
66
|
-
handleApplyResponse($event) {
|
|
67
|
-
this.calendarResponse.emit($event);
|
|
68
|
-
}
|
|
69
|
-
handleClearSelection() {
|
|
70
|
-
this.clearSelection.emit();
|
|
71
|
-
this.leftCalendar.clearSelectedDate();
|
|
72
|
-
}
|
|
73
|
-
handlerChangeMonthYearResponse($event, origin) {
|
|
74
|
-
if ($event instanceof Date) {
|
|
75
|
-
if (origin === 'left') {
|
|
76
|
-
this.showRightCalendar = true;
|
|
77
|
-
setTimeout(() => { this.rightCalendar.currentDate = changeDate(1, $event, true); });
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.showLeftCalendar = true;
|
|
81
|
-
setTimeout(() => { this.leftCalendar.currentDate = changeDate(-1, $event, true); });
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DualMonthCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DualMonthCalendarComponent, selector: "dual-month-calendar", inputs: { initDate: "initDate", restart: "restart", appearance: "appearance" }, outputs: { clearSelection: "clearSelection", calendarResponse: "response" }, viewQueries: [{ propertyName: "leftCalendar", first: true, predicate: ["leftCalendar"], descendants: true }, { propertyName: "rightCalendar", first: true, predicate: ["rightCalendar"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showRightCalendar && showLeftCalendar\" class=\"date-select-indicator\">\n <p>\n <span class=\"hr-title\" [ngClass]=\"leftCalendar?.selectedRangeStart ? 'sm-regular' : 'sm-bold'\">\n {{leftCalendar?.selectedRangeStart ? getFormattedDate(leftCalendar.selectedRangeStart) : i18n.start_date}} </span>\n\n <gravity-icon [iconSize]=\"'md-16'\" [size]=\"'md'\" [iconName]=\"'swaps-arrow-right'\"></gravity-icon>\n\n <span class=\"hr-title\" [ngClass]=\"leftCalendar?.selectedRangeStart && !leftCalendar.selectedRangeEnd ? 'sm-bold' : 'sm-regular'\">\n {{leftCalendar?.selectedRangeEnd ? getFormattedDate(leftCalendar.selectedRangeEnd) : i18n.end_date}} </span>\n </p>\n</div>\n\n<div class=\"dual-calendar-container\" [class.mobile]=\"appearance.isMobile\">\n\n <day-calendar #leftCalendar *ngIf=\"showLeftCalendar\"\n [range]=\"true\"\n (openIntegratedCalendar)=\"showRightCalendar = false\"\n (changeMonth)=\"onChangeMonth('left', $event)\"\n (selectedRage)=\"onSelectRageDays(rightCalendar, $event)\"\n [navType]=\"appearance.isMobile ? 'none' : 'prev'\" [currentDate]=\"currentDate\"\n (changeMonthYearResponse)=\"handlerChangeMonthYearResponse($event, 'left')\"\n [appearance]=\"{language: appearance.language, actions: false, isMobile: appearance.isMobile, state: appearance.state}\">\n </day-calendar>\n\n <day-calendar #rightCalendar *ngIf=\"showRightCalendar\"\n [range]=\"true\"\n (clearHover)=\"handleClearHover()\"\n (hoverDay)=\"handleHoverDay($event)\"\n (response)=\"handleApplyResponse($event)\"\n (clearSelection)=\"handleClearSelection()\"\n (openIntegratedCalendar)=\"showLeftCalendar = false\"\n (changeMonth)=\"onChangeMonth('right', $event)\"\n (selectedRage)=\"onSelectRageDays(leftCalendar, $event)\"\n [navType]=\"appearance.isMobile ? 'none' : 'next'\" [currentDate]=\"nextMonth\"\n (changeMonthYearResponse)=\"handlerChangeMonthYearResponse($event, 'right')\"\n [appearance]=\"{language: appearance.language, actions: true, isMobile: appearance.isMobile, state: appearance.state}\">\n </day-calendar>\n</div>", styles: [".date-select-indicator{height:27px;display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--gravity-spacing-sm);margin-bottom:var(--gravity-spacing-md);border-bottom:2px solid var(--divider-menu-active-primary)}.date-select-indicator p{display:flex;align-items:flex-start;gap:var(--gravity-spacing-xs);color:var(--bg-calendar-nav-primary)}.dual-calendar-container{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;gap:var(--gravity-spacing-md)}.dual-calendar-container.mobile{flex-direction:column;gap:var(--gravity-spacing-sm)}.dual-calendar-container.mobile day-calendar{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i3.DayCalendarComponent, selector: "day-calendar", inputs: ["initYear", "initMonth", "config", "range", "restart", "currentDate", "appearance", "navType"], outputs: ["clearHover", "clearSelection", "changeMonth", "hoverDay", "openIntegratedCalendar", "selectedRage", "changeMonthYearResponse", "response"] }] }); }
|
|
87
|
-
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DualMonthCalendarComponent, decorators: [{
|
|
89
|
-
type: Component,
|
|
90
|
-
args: [{ selector: 'dual-month-calendar', template: "<div *ngIf=\"showRightCalendar && showLeftCalendar\" class=\"date-select-indicator\">\n <p>\n <span class=\"hr-title\" [ngClass]=\"leftCalendar?.selectedRangeStart ? 'sm-regular' : 'sm-bold'\">\n {{leftCalendar?.selectedRangeStart ? getFormattedDate(leftCalendar.selectedRangeStart) : i18n.start_date}} </span>\n\n <gravity-icon [iconSize]=\"'md-16'\" [size]=\"'md'\" [iconName]=\"'swaps-arrow-right'\"></gravity-icon>\n\n <span class=\"hr-title\" [ngClass]=\"leftCalendar?.selectedRangeStart && !leftCalendar.selectedRangeEnd ? 'sm-bold' : 'sm-regular'\">\n {{leftCalendar?.selectedRangeEnd ? getFormattedDate(leftCalendar.selectedRangeEnd) : i18n.end_date}} </span>\n </p>\n</div>\n\n<div class=\"dual-calendar-container\" [class.mobile]=\"appearance.isMobile\">\n\n <day-calendar #leftCalendar *ngIf=\"showLeftCalendar\"\n [range]=\"true\"\n (openIntegratedCalendar)=\"showRightCalendar = false\"\n (changeMonth)=\"onChangeMonth('left', $event)\"\n (selectedRage)=\"onSelectRageDays(rightCalendar, $event)\"\n [navType]=\"appearance.isMobile ? 'none' : 'prev'\" [currentDate]=\"currentDate\"\n (changeMonthYearResponse)=\"handlerChangeMonthYearResponse($event, 'left')\"\n [appearance]=\"{language: appearance.language, actions: false, isMobile: appearance.isMobile, state: appearance.state}\">\n </day-calendar>\n\n <day-calendar #rightCalendar *ngIf=\"showRightCalendar\"\n [range]=\"true\"\n (clearHover)=\"handleClearHover()\"\n (hoverDay)=\"handleHoverDay($event)\"\n (response)=\"handleApplyResponse($event)\"\n (clearSelection)=\"handleClearSelection()\"\n (openIntegratedCalendar)=\"showLeftCalendar = false\"\n (changeMonth)=\"onChangeMonth('right', $event)\"\n (selectedRage)=\"onSelectRageDays(leftCalendar, $event)\"\n [navType]=\"appearance.isMobile ? 'none' : 'next'\" [currentDate]=\"nextMonth\"\n (changeMonthYearResponse)=\"handlerChangeMonthYearResponse($event, 'right')\"\n [appearance]=\"{language: appearance.language, actions: true, isMobile: appearance.isMobile, state: appearance.state}\">\n </day-calendar>\n</div>", styles: [".date-select-indicator{height:27px;display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--gravity-spacing-sm);margin-bottom:var(--gravity-spacing-md);border-bottom:2px solid var(--divider-menu-active-primary)}.date-select-indicator p{display:flex;align-items:flex-start;gap:var(--gravity-spacing-xs);color:var(--bg-calendar-nav-primary)}.dual-calendar-container{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;gap:var(--gravity-spacing-md)}.dual-calendar-container.mobile{flex-direction:column;gap:var(--gravity-spacing-sm)}.dual-calendar-container.mobile day-calendar{width:100%}\n"] }]
|
|
91
|
-
}], propDecorators: { initDate: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], restart: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], appearance: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], clearSelection: [{
|
|
98
|
-
type: Output
|
|
99
|
-
}], calendarResponse: [{
|
|
100
|
-
type: Output,
|
|
101
|
-
args: ['response']
|
|
102
|
-
}], leftCalendar: [{
|
|
103
|
-
type: ViewChild,
|
|
104
|
-
args: ['leftCalendar']
|
|
105
|
-
}], rightCalendar: [{
|
|
106
|
-
type: ViewChild,
|
|
107
|
-
args: ['rightCalendar']
|
|
108
|
-
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1tb250aC1jYWxlbmRhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItbmV4dC9jb21wb25lbnRzL2R1YWwtbW9udGgtY2FsZW5kYXIvZHVhbC1tb250aC1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItbmV4dC9jb21wb25lbnRzL2R1YWwtbW9udGgtY2FsZW5kYXIvZHVhbC1tb250aC1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsR0FBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQU9sSCxNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBT2tCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHeEIsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwRCxxQkFBZ0IsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFLdEcsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FB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QUksQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUE7YUFDakY7U0FDRjtJQUNILENBQUM7K0dBdkZVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDRiQ1p2QyxzcEVBcUNNOzs0RkR6Qk8sMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLZixRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFFVyxjQUFjO3NCQUE5QixNQUFNO2dCQUNvQixnQkFBZ0I7c0JBQTFDLE1BQU07dUJBQUMsVUFBVTtnQkFFUyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0csYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDYWxlbmRhckFwcGVhcmFuY2UsIENhbGVuZGFyRGF0ZX0gZnJvbSBcIi4uLy4uL3NoYXJlZC9jYWxlbmRhci5tb2RhbFwiO1xuaW1wb3J0IHtEYXlDYWxlbmRhckNvbXBvbmVudH0gZnJvbSBcIi4uL2RheS1jYWxlbmRhci9kYXktY2FsZW5kYXIuY29tcG9uZW50XCI7XG5pbXBvcnQge2NoYW5nZURhdGUsIGdldFN0YXJ0RGF0ZSwgdG9DYWxlbmRhckRheX0gZnJvbSBcIi4uLy4uL3NoYXJlZC9jYWxlbmRhci51dGlsc1wiO1xuaW1wb3J0IHtvbkNsZWFySG92ZXIsIG9uSG92ZXJEYXksIG9uU2VsZWN0UmFnZURheXMsfSBmcm9tIFwiLi4vZGF5LWNhbGVuZGFyL3JhbmdlLWRheXMtY2FsZW5kYXIudXRpbHNcIjtcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q0FMRU5EQVJfSTE4TiwgREFZU19FTiwgREFZU19FUywgTU9OVEhTX1NIT1JUX0VOLCBNT05USFNfU0hPUlRfRVN9IGZyb20gXCIuLi8uLi9zaGFyZWQvY2FsZW5kYXIuY29uc3RhbnRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R1YWwtbW9udGgtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHVhbC1tb250aC1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R1YWwtbW9udGgtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEdWFsTW9udGhDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0RGF0ZTogRGF0ZSB8IERhdGVbXTtcbiAgQElucHV0KCkgcHVibGljIHJlc3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFwcGVhcmFuY2U6IENhbGVuZGFyQXBwZWFyYW5jZVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgY2FsZW5kYXJSZXNwb25zZTogRXZlbnRFbWl0dGVyPERhdGVbXSB8IERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10gfCBEYXRlPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2xlZnRDYWxlbmRhcicpIGxlZnRDYWxlbmRhcjogRGF5Q2FsZW5kYXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3JpZ2h0Q2FsZW5kYXInKSByaWdodENhbGVuZGFyOiBEYXlDYWxlbmRhckNvbXBvbmVudDtcblxuICBwdWJsaWMgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICBwdWJsaWMgc2hvd0xlZnRDYWxlbmRhcjogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBzaG93UmlnaHRDYWxlbmRhcjogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBuZXh0TW9udGggPSBjaGFuZ2VEYXRlKDEsIHRoaXMuY3VycmVudERhdGUsIHRydWUpO1xuXG4gIHB1YmxpYyBnZXQgaTE4bigpIHsgcmV0dXJuIENBTEVOREFSX0kxOE5bdGhpcy5hcHBlYXJhbmNlLmxhbmd1YWdlXTsgfVxuICBwdWJsaWMgZ2V0IGRheXNMaXN0KCkgeyByZXR1cm4gdGhpcy5hcHBlYXJhbmNlLmxhbmd1YWdlID09PSAnZW4nID8gREFZU19FTiA6IERBWVNfRVM7IH1cbiAgcHVibGljIGdldCBtb250aHNTaG9ydExpc3QoKSB7IHJldHVybiB0aGlzLmFwcGVhcmFuY2UubGFuZ3VhZ2UgPT09ICdlbicgPyBNT05USFNfU0hPUlRfRU4gOiBNT05USFNfU0hPUlRfRVM7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkUmVzdGFydCA9IGNoYW5nZXNbJ3Jlc3RhcnQnXSAmJiB0aGlzLnJlc3RhcnQ7XG4gICAgY29uc3Qgc2hvdWxkUHJvY2Vzc1ByZVNlbGVjdGVkID0gY2hhbmdlc1sncHJlU2VsZWN0ZWREYXRlJ10gJiYgdGhpcy5pbml0RGF0ZTtcbiAgICBpZiAoc2hvdWxkUmVzdGFydCB8fCBzaG91bGRQcm9jZXNzUHJlU2VsZWN0ZWQpIHsgdGhpcy5wcm9jZXNzSW5pdERhdGUoKTsgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzSW5pdERhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TGVmdENhbGVuZGFyID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dSaWdodENhbGVuZGFyID0gdHJ1ZTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuaW5pdERhdGUpKSB7XG4gICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLmluaXREYXRlIGFzIERhdGVbXTtcblxuICAgICAgaWYgKHN0YXJ0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnREYXRlID0gZ2V0U3RhcnREYXRlKHN0YXJ0KTtcbiAgICAgICAgdGhpcy5uZXh0TW9udGggPSBjaGFuZ2VEYXRlKDEsIHRoaXMuY3VycmVudERhdGUsIHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxlZnRDYWxlbmRhci5zZWxlY3RlZFJhbmdlU3RhcnQgPSB0b0NhbGVuZGFyRGF5KHN0YXJ0KTtcbiAgICAgICAgICB0aGlzLnJpZ2h0Q2FsZW5kYXIuc2VsZWN0ZWRSYW5nZVN0YXJ0ID0gdG9DYWxlbmRhckRheShzdGFydCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5kIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxlZnRDYWxlbmRhci5zZWxlY3RlZFJhbmdlRW5kID0gdG9DYWxlbmRhckRheShlbmQpO1xuICAgICAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5zZWxlY3RlZFJhbmdlRW5kID0gdG9DYWxlbmRhckRheShlbmQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2VNb250aChjYWxlbmRhcjogJ2xlZnQnIHwgJ3JpZ2h0Jywgb2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRDYWxlbmRhciA9IGNhbGVuZGFyID09PSAnbGVmdCcgPyB0aGlzLnJpZ2h0Q2FsZW5kYXIgOiB0aGlzLmxlZnRDYWxlbmRhcjtcbiAgICB0YXJnZXRDYWxlbmRhci5jdXJyZW50RGF0ZSA9IGNoYW5nZURhdGUob2Zmc2V0LCB0YXJnZXRDYWxlbmRhci5jdXJyZW50RGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGVkRGF0ZShkYXk6IENhbGVuZGFyRGF0ZSkge1xuICAgIHJldHVybiB0aGlzLmRheXNMaXN0W2RheS53ZWVrRGF5XSArICcsICcgKyBkYXkuZGF5ICsgJyAnICsgdGhpcy5tb250aHNTaG9ydExpc3RbZGF5Lm1vbnRoWWVhci5tb250aF07XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlSG92ZXJEYXkoZGF5OiBDYWxlbmRhckRhdGUpIHtcbiAgICBvbkhvdmVyRGF5KHRoaXMubGVmdENhbGVuZGFyLCBkYXkpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNsZWFySG92ZXIoKXtcbiAgICBvbkNsZWFySG92ZXIodGhpcy5sZWZ0Q2FsZW5kYXIpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUFwcGx5UmVzcG9uc2UoJGV2ZW50OiBEYXRlIHwgRGF0ZVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclJlc3BvbnNlLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGVhclNlbGVjdGlvbigpe1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24uZW1pdCgpO1xuICAgIHRoaXMubGVmdENhbGVuZGFyLmNsZWFyU2VsZWN0ZWREYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlckNoYW5nZU1vbnRoWWVhclJlc3BvbnNlKCRldmVudDogRGF0ZSB8IERhdGVbXSwgb3JpZ2luOiAnbGVmdCcgfCAncmlnaHQnKXtcbiAgICBpZigkZXZlbnQgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBpZihvcmlnaW4gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnNob3dSaWdodENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5yaWdodENhbGVuZGFyLmN1cnJlbnREYXRlID0gY2hhbmdlRGF0ZSgxLCAkZXZlbnQsIHRydWUpfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd0xlZnRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMubGVmdENhbGVuZGFyLmN1cnJlbnREYXRlID0gY2hhbmdlRGF0ZSgtMSwgJGV2ZW50LCB0cnVlKX0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IERhdGUgPSBEYXRlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGF0ZSA9IGNoYW5nZURhdGU7XG4gIHByb3RlY3RlZCByZWFkb25seSBvblNlbGVjdFJhZ2VEYXlzID0gb25TZWxlY3RSYWdlRGF5cztcbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG93UmlnaHRDYWxlbmRhciAmJiBzaG93TGVmdENhbGVuZGFyXCIgY2xhc3M9XCJkYXRlLXNlbGVjdC1pbmRpY2F0b3JcIj5cbiAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoci10aXRsZVwiICBbbmdDbGFzc109XCJsZWZ0Q2FsZW5kYXI/LnNlbGVjdGVkUmFuZ2VTdGFydCA/ICdzbS1yZWd1bGFyJyA6ICdzbS1ib2xkJ1wiPlxuICAgICAgICAgICAge3tsZWZ0Q2FsZW5kYXI/LnNlbGVjdGVkUmFuZ2VTdGFydCA/IGdldEZvcm1hdHRlZERhdGUobGVmdENhbGVuZGFyLnNlbGVjdGVkUmFuZ2VTdGFydCkgOiBpMThuLnN0YXJ0X2RhdGV9fSA8L3NwYW4+XG5cbiAgICAgICAgPGdyYXZpdHktaWNvbiBbaWNvblNpemVdPVwiJ21kLTE2J1wiIFtzaXplXT1cIidtZCdcIiBbaWNvbk5hbWVdPVwiJ3N3YXBzLWFycm93LXJpZ2h0J1wiPjwvZ3Jhdml0eS1pY29uPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaHItdGl0bGVcIiAgW25nQ2xhc3NdPVwibGVmdENhbGVuZGFyPy5zZWxlY3RlZFJhbmdlU3RhcnQgJiYgIWxlZnRDYWxlbmRhci5zZWxlY3RlZFJhbmdlRW5kID8gJ3NtLWJvbGQnIDogJ3NtLXJlZ3VsYXInXCI+XG4gICAgICAgICAgICB7e2xlZnRDYWxlbmRhcj8uc2VsZWN0ZWRSYW5nZUVuZCA/IGdldEZvcm1hdHRlZERhdGUobGVmdENhbGVuZGFyLnNlbGVjdGVkUmFuZ2VFbmQpIDogaTE4bi5lbmRfZGF0ZX19IDwvc3Bhbj5cbiAgICA8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImR1YWwtY2FsZW5kYXItY29udGFpbmVyXCIgW2NsYXNzLm1vYmlsZV09XCJhcHBlYXJhbmNlLmlzTW9iaWxlXCI+XG5cbiAgICA8ZGF5LWNhbGVuZGFyICNsZWZ0Q2FsZW5kYXIgKm5nSWY9XCJzaG93TGVmdENhbGVuZGFyXCJcbiAgICAgIFtyYW5nZV09XCJ0cnVlXCJcbiAgICAgIChvcGVuSW50ZWdyYXRlZENhbGVuZGFyKT1cInNob3dSaWdodENhbGVuZGFyID0gZmFsc2VcIlxuICAgICAgKGNoYW5nZU1vbnRoKT1cIm9uQ2hhbmdlTW9udGgoJ2xlZnQnLCAkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZFJhZ2UpPVwib25TZWxlY3RSYWdlRGF5cyhyaWdodENhbGVuZGFyLCAkZXZlbnQpXCJcbiAgICAgIFtuYXZUeXBlXT1cImFwcGVhcmFuY2UuaXNNb2JpbGUgPyAnbm9uZScgOiAncHJldidcIiBbY3VycmVudERhdGVdPVwiY3VycmVudERhdGVcIlxuICAgICAgKGNoYW5nZU1vbnRoWWVhclJlc3BvbnNlKT1cImhhbmRsZXJDaGFuZ2VNb250aFllYXJSZXNwb25zZSgkZXZlbnQsICdsZWZ0JylcIlxuICAgICAgW2FwcGVhcmFuY2VdPVwie2xhbmd1YWdlOiBhcHBlYXJhbmNlLmxhbmd1YWdlLCBhY3Rpb25zOiBmYWxzZSwgaXNNb2JpbGU6IGFwcGVhcmFuY2UuaXNNb2JpbGUsIHN0YXRlOiBhcHBlYXJhbmNlLnN0YXRlfVwiPlxuICAgIDwvZGF5LWNhbGVuZGFyPlxuXG4gICAgPGRheS1jYWxlbmRhciAjcmlnaHRDYWxlbmRhciAqbmdJZj1cInNob3dSaWdodENhbGVuZGFyXCJcbiAgICAgIFtyYW5nZV09XCJ0cnVlXCJcbiAgICAgIChjbGVhckhvdmVyKT1cImhhbmRsZUNsZWFySG92ZXIoKVwiXG4gICAgICAoaG92ZXJEYXkpPVwiaGFuZGxlSG92ZXJEYXkoJGV2ZW50KVwiXG4gICAgICAocmVzcG9uc2UpPVwiaGFuZGxlQXBwbHlSZXNwb25zZSgkZXZlbnQpXCJcbiAgICAgIChjbGVhclNlbGVjdGlvbik9XCJoYW5kbGVDbGVhclNlbGVjdGlvbigpXCJcbiAgICAgIChvcGVuSW50ZWdyYXRlZENhbGVuZGFyKT1cInNob3dMZWZ0Q2FsZW5kYXIgPSBmYWxzZVwiXG4gICAgICAoY2hhbmdlTW9udGgpPVwib25DaGFuZ2VNb250aCgncmlnaHQnLCAkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZFJhZ2UpPVwib25TZWxlY3RSYWdlRGF5cyhsZWZ0Q2FsZW5kYXIsICRldmVudClcIlxuICAgICAgW25hdlR5cGVdPVwiYXBwZWFyYW5jZS5pc01vYmlsZSA/ICdub25lJyA6ICduZXh0J1wiICBbY3VycmVudERhdGVdPVwibmV4dE1vbnRoXCJcbiAgICAgIChjaGFuZ2VNb250aFllYXJSZXNwb25zZSk9XCJoYW5kbGVyQ2hhbmdlTW9udGhZZWFyUmVzcG9uc2UoJGV2ZW50LCAncmlnaHQnKVwiXG4gICAgICBbYXBwZWFyYW5jZV09XCJ7bGFuZ3VhZ2U6IGFwcGVhcmFuY2UubGFuZ3VhZ2UsIGFjdGlvbnM6IHRydWUsIGlzTW9iaWxlOiBhcHBlYXJhbmNlLmlzTW9iaWxlLCBzdGF0ZTogYXBwZWFyYW5jZS5zdGF0ZX1cIj5cbiAgICA8L2RheS1jYWxlbmRhcj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { CalendarAppearance, CalendarDate } from "../../shared/calendar.modal";
|
|
2
|
-
import { DayCalendarComponent } from "../day-calendar/day-calendar.component";
|
|
3
|
-
import { changeDate } from "../../shared/calendar.utils";
|
|
4
|
-
import { onSelectRageDays } from "../day-calendar/range-days-calendar.utils";
|
|
5
|
-
import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class DualMonthCalendarComponent implements OnChanges {
|
|
8
|
-
initDate: Date | Date[];
|
|
9
|
-
restart: boolean;
|
|
10
|
-
appearance: CalendarAppearance;
|
|
11
|
-
clearSelection: EventEmitter<void>;
|
|
12
|
-
calendarResponse: EventEmitter<Date[] | Date>;
|
|
13
|
-
leftCalendar: DayCalendarComponent;
|
|
14
|
-
rightCalendar: DayCalendarComponent;
|
|
15
|
-
currentDate: Date;
|
|
16
|
-
showLeftCalendar: boolean;
|
|
17
|
-
showRightCalendar: boolean;
|
|
18
|
-
nextMonth: Date;
|
|
19
|
-
get i18n(): {
|
|
20
|
-
readonly apply: "Apply";
|
|
21
|
-
readonly clear: "Clear selection";
|
|
22
|
-
readonly start_date: "Start date";
|
|
23
|
-
readonly end_date: "End date";
|
|
24
|
-
} | {
|
|
25
|
-
readonly apply: "Aplicar";
|
|
26
|
-
readonly clear: "Limpiar selección";
|
|
27
|
-
readonly start_date: "Fecha inicial";
|
|
28
|
-
readonly end_date: "Fecha final";
|
|
29
|
-
};
|
|
30
|
-
get daysList(): string[];
|
|
31
|
-
get monthsShortList(): string[];
|
|
32
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
33
|
-
private processInitDate;
|
|
34
|
-
onChangeMonth(calendar: 'left' | 'right', offset: number): void;
|
|
35
|
-
getFormattedDate(day: CalendarDate): string;
|
|
36
|
-
handleHoverDay(day: CalendarDate): void;
|
|
37
|
-
handleClearHover(): void;
|
|
38
|
-
handleApplyResponse($event: Date | Date[]): void;
|
|
39
|
-
handleClearSelection(): void;
|
|
40
|
-
handlerChangeMonthYearResponse($event: Date | Date[], origin: 'left' | 'right'): void;
|
|
41
|
-
protected readonly Date: DateConstructor;
|
|
42
|
-
protected readonly changeDate: typeof changeDate;
|
|
43
|
-
protected readonly onSelectRageDays: typeof onSelectRageDays;
|
|
44
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DualMonthCalendarComponent, never>;
|
|
45
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DualMonthCalendarComponent, "dual-month-calendar", never, { "initDate": { "alias": "initDate"; "required": false; }; "restart": { "alias": "restart"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, { "clearSelection": "clearSelection"; "calendarResponse": "response"; }, never, never, false, never>;
|
|
46
|
-
}
|