@yoozsoft/yoozsoft-ng 3.1.4 → 4.0.0
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/README.md +11 -4
- package/assets/js/UTIF.js-master/LICENSE +21 -0
- package/assets/js/UTIF.js-master/README.md +72 -0
- package/assets/js/UTIF.js-master/UTIF.js +1763 -0
- package/assets/js/UTIF.js-master/package-lock.json +13 -0
- package/assets/styles/ys-layout.scss +21 -47
- package/assets/styles/ys-preloader.scss +12 -12
- package/datepicker/src/models/date-time-format.d.ts +0 -1
- package/datepicker/src/ys-datepicker/ys-datepicker.component.d.ts +7 -1
- package/directives/src/password-match/ys-password-match.directive.d.ts +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +172 -162
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs +6 -10
- package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +145 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +8 -15
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +16 -9
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +36 -31
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +6 -8
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +90 -62
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +17 -17
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +64 -23
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +50 -57
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +150 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +106 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -0
- package/{toasts → file-upload}/index.d.ts +1 -1
- package/file-upload/public-api.d.ts +1 -0
- package/file-upload/src/ys-file-upload/ys-file-upload.component.d.ts +51 -0
- package/loading/src/ys-loading-mask/ys-loading-mask.component.d.ts +5 -2
- package/navbar/src/models/navbar-brand.d.ts +2 -0
- package/navbar/src/models/navbar-item.d.ts +1 -0
- package/navbar/src/ys-navbar/ys-navbar.component.d.ts +13 -12
- package/overlay/src/ys-overlay/ys-overlay.component.d.ts +1 -1
- package/package.json +26 -46
- package/password-strength/public-api.d.ts +1 -0
- package/password-strength/src/directives/index.d.ts +1 -0
- package/password-strength/src/directives/ys-password-strength.directive.d.ts +18 -0
- package/password-strength/src/models/strength-validation-feedback.d.ts +2 -0
- package/password-strength/src/ys-password-strength/ys-password-strength.component.d.ts +4 -5
- package/select/src/ys-select/ys-select.component.d.ts +14 -4
- package/sidebar/src/models/index.d.ts +0 -1
- package/sidebar/src/models/sidebar-item-active.d.ts +1 -0
- package/sidebar/src/services/sidebar.service.d.ts +7 -10
- package/sidebar/src/ys-sidebar/ys-sidebar.component.d.ts +13 -15
- package/tiff-viewer/index.d.ts +5 -0
- package/tiff-viewer/public-api.d.ts +1 -0
- package/tiff-viewer/src/ys-tiff-viewer/ys-tiff-viewer.component.d.ts +48 -0
- package/{layout → toast}/index.d.ts +1 -1
- package/toast/public-api.d.ts +3 -0
- package/{toasts/src/ys-toasts/ys-toasts.component.d.ts → toast/src/ys-toast/ys-toast.component.d.ts} +4 -4
- package/assets/images/user.jpg +0 -0
- package/assets/styles/ys-layout-pin.scss +0 -153
- package/esm2022/datepicker/public-api.mjs +0 -12
- package/esm2022/datepicker/src/models/date-range.mjs +0 -2
- package/esm2022/datepicker/src/models/date-time-format.mjs +0 -4
- package/esm2022/datepicker/src/models/index.mjs +0 -4
- package/esm2022/datepicker/src/models/jalali-date.mjs +0 -74
- package/esm2022/datepicker/src/services/index.mjs +0 -3
- package/esm2022/datepicker/src/services/ys-date-parser-formatter.service.mjs +0 -32
- package/esm2022/datepicker/src/services/ys-datepicker-i18n.service.mjs +0 -66
- package/esm2022/datepicker/src/ys-datepicker/ys-datepicker.component.mjs +0 -108
- package/esm2022/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.mjs +0 -127
- package/esm2022/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.mjs +0 -130
- package/esm2022/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.mjs +0 -136
- package/esm2022/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.mjs +0 -157
- package/esm2022/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.mjs +0 -167
- package/esm2022/datepicker/yoozsoft-yoozsoft-ng-datepicker.mjs +0 -5
- package/esm2022/directives/public-api.mjs +0 -6
- package/esm2022/directives/src/password-match/ys-password-match.directive.mjs +0 -49
- package/esm2022/directives/yoozsoft-yoozsoft-ng-directives.mjs +0 -5
- package/esm2022/footer/public-api.mjs +0 -6
- package/esm2022/footer/src/models/footer-brand.mjs +0 -2
- package/esm2022/footer/src/models/index.mjs +0 -3
- package/esm2022/footer/src/models/social-network.mjs +0 -2
- package/esm2022/footer/src/ys-footer/ys-footer.component.mjs +0 -32
- package/esm2022/footer/yoozsoft-yoozsoft-ng-footer.mjs +0 -5
- package/esm2022/layout/public-api.mjs +0 -5
- package/esm2022/layout/src/ys-layout/ys-layout.component.mjs +0 -72
- package/esm2022/layout/yoozsoft-yoozsoft-ng-layout.mjs +0 -5
- package/esm2022/loading/public-api.mjs +0 -5
- package/esm2022/loading/src/ys-loading-mask/ys-loading-mask.component.mjs +0 -20
- package/esm2022/loading/yoozsoft-yoozsoft-ng-loading.mjs +0 -5
- package/esm2022/navbar/public-api.mjs +0 -6
- package/esm2022/navbar/src/models/index.mjs +0 -3
- package/esm2022/navbar/src/models/navbar-brand.mjs +0 -2
- package/esm2022/navbar/src/models/navbar-item.mjs +0 -2
- package/esm2022/navbar/src/ys-navbar/ys-navbar.component.mjs +0 -86
- package/esm2022/navbar/yoozsoft-yoozsoft-ng-navbar.mjs +0 -5
- package/esm2022/overlay/public-api.mjs +0 -5
- package/esm2022/overlay/src/ys-overlay/ys-overlay.component.mjs +0 -20
- package/esm2022/overlay/yoozsoft-yoozsoft-ng-overlay.mjs +0 -5
- package/esm2022/password-strength/public-api.mjs +0 -6
- package/esm2022/password-strength/src/models/index.mjs +0 -5
- package/esm2022/password-strength/src/models/regx.mjs +0 -7
- package/esm2022/password-strength/src/models/strength-validation-control.mjs +0 -2
- package/esm2022/password-strength/src/models/strength-validation-feedback.mjs +0 -25
- package/esm2022/password-strength/src/models/strength-validation-option.mjs +0 -25
- package/esm2022/password-strength/src/ys-password-strength/ys-password-strength.component.mjs +0 -69
- package/esm2022/password-strength/yoozsoft-yoozsoft-ng-password-strength.mjs +0 -5
- package/esm2022/progress/public-api.mjs +0 -6
- package/esm2022/progress/src/services/index.mjs +0 -2
- package/esm2022/progress/src/services/progress.service.mjs +0 -18
- package/esm2022/progress/src/ys-progress/ys-progress.component.mjs +0 -32
- package/esm2022/progress/yoozsoft-yoozsoft-ng-progress.mjs +0 -5
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/select/public-api.mjs +0 -5
- package/esm2022/select/src/ys-select/ys-select.component.mjs +0 -63
- package/esm2022/select/yoozsoft-yoozsoft-ng-select.mjs +0 -5
- package/esm2022/sidebar/public-api.mjs +0 -8
- package/esm2022/sidebar/src/models/index.mjs +0 -6
- package/esm2022/sidebar/src/models/sidebar-item-active.mjs +0 -2
- package/esm2022/sidebar/src/models/sidebar-item.mjs +0 -2
- package/esm2022/sidebar/src/models/sidebar-state.mjs +0 -2
- package/esm2022/sidebar/src/models/user-image.mjs +0 -2
- package/esm2022/sidebar/src/models/user-profile.mjs +0 -2
- package/esm2022/sidebar/src/services/index.mjs +0 -2
- package/esm2022/sidebar/src/services/sidebar.service.mjs +0 -39
- package/esm2022/sidebar/src/ys-sidebar/ys-sidebar.component.mjs +0 -68
- package/esm2022/sidebar/yoozsoft-yoozsoft-ng-sidebar.mjs +0 -5
- package/esm2022/toasts/public-api.mjs +0 -7
- package/esm2022/toasts/src/models/index.mjs +0 -3
- package/esm2022/toasts/src/models/toast-info.mjs +0 -2
- package/esm2022/toasts/src/models/toast-type.mjs +0 -8
- package/esm2022/toasts/src/services/index.mjs +0 -2
- package/esm2022/toasts/src/services/toast.service.mjs +0 -44
- package/esm2022/toasts/src/ys-toasts/ys-toasts.component.mjs +0 -53
- package/esm2022/toasts/yoozsoft-yoozsoft-ng-toasts.mjs +0 -5
- package/esm2022/yoozsoft-yoozsoft-ng.mjs +0 -5
- package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs +0 -83
- package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs.map +0 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs +0 -111
- package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs.map +0 -1
- package/layout/public-api.d.ts +0 -1
- package/layout/src/ys-layout/ys-layout.component.d.ts +0 -24
- package/sidebar/src/models/sidebar-state.d.ts +0 -4
- package/toasts/public-api.d.ts +0 -3
- /package/{toasts → toast}/src/models/index.d.ts +0 -0
- /package/{toasts → toast}/src/models/toast-info.d.ts +0 -0
- /package/{toasts → toast}/src/models/toast-type.d.ts +0 -0
- /package/{toasts → toast}/src/services/index.d.ts +0 -0
- /package/{toasts → toast}/src/services/toast.service.d.ts +0 -0
|
@@ -2,19 +2,18 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, inject, forwardRef, Component, Input } from '@angular/core';
|
|
3
3
|
import * as i2 from '@ng-bootstrap/ng-bootstrap';
|
|
4
4
|
import { NgbDateParserFormatter, NgbDatepickerI18n, NgbCalendar, NgbDatepickerModule, NgbCalendarPersian, NgbDate } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { NgIf
|
|
5
|
+
import { NgIf } from '@angular/common';
|
|
6
6
|
import * as i3 from '@angular/forms';
|
|
7
7
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
8
8
|
|
|
9
9
|
class DateTimeFormat {
|
|
10
|
-
static twoDigit(s) { return ("0" + (s + 1)).slice(-2); }
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
class JalaliDate {
|
|
14
|
-
static
|
|
13
|
+
static daysInMonth = {
|
|
15
14
|
g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
|
|
16
15
|
j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
|
|
17
|
-
};
|
|
16
|
+
};
|
|
18
17
|
static jalaliToGregorian(jalaliYear, jalaliMonth, jalaliDay) {
|
|
19
18
|
jalaliYear = parseInt(`${jalaliYear}`);
|
|
20
19
|
jalaliMonth = parseInt(`${jalaliMonth}`);
|
|
@@ -85,10 +84,7 @@ class JalaliDate {
|
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
class YsDateParserFormatterService extends NgbDateParserFormatter {
|
|
88
|
-
|
|
89
|
-
super(...arguments);
|
|
90
|
-
this.DELIMITER = '/';
|
|
91
|
-
}
|
|
87
|
+
DELIMITER = '/';
|
|
92
88
|
parse(value) {
|
|
93
89
|
if (value) {
|
|
94
90
|
const date = value.split(this.DELIMITER);
|
|
@@ -103,10 +99,10 @@ class YsDateParserFormatterService extends NgbDateParserFormatter {
|
|
|
103
99
|
format(date) {
|
|
104
100
|
return date ? date.year + this.DELIMITER + date.month + this.DELIMITER + date.day : '';
|
|
105
101
|
}
|
|
106
|
-
static
|
|
107
|
-
static
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDateParserFormatterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
103
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDateParserFormatterService, providedIn: 'root' });
|
|
108
104
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDateParserFormatterService, decorators: [{
|
|
110
106
|
type: Injectable,
|
|
111
107
|
args: [{
|
|
112
108
|
providedIn: 'root'
|
|
@@ -137,19 +133,17 @@ const I18N_VALUES = {
|
|
|
137
133
|
}
|
|
138
134
|
};
|
|
139
135
|
class I18n {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: I18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
144
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: I18n }); }
|
|
136
|
+
language = LanguageType[LanguageType.en];
|
|
137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: I18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: I18n });
|
|
145
139
|
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: I18n, decorators: [{
|
|
147
141
|
type: Injectable
|
|
148
142
|
}] });
|
|
149
143
|
class YsDatepickerI18nService extends NgbDatepickerI18n {
|
|
144
|
+
_i18n = inject(I18n);
|
|
150
145
|
constructor() {
|
|
151
146
|
super();
|
|
152
|
-
this._i18n = inject(I18n);
|
|
153
147
|
}
|
|
154
148
|
getWeekdayLabel(weekday) {
|
|
155
149
|
return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];
|
|
@@ -166,10 +160,10 @@ class YsDatepickerI18nService extends NgbDatepickerI18n {
|
|
|
166
160
|
getDayAriaLabel(date) {
|
|
167
161
|
return `${date.day}-${date.month}-${date.year}`;
|
|
168
162
|
}
|
|
169
|
-
static
|
|
170
|
-
static
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerI18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
164
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerI18nService, providedIn: 'root' });
|
|
171
165
|
}
|
|
172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerI18nService, decorators: [{
|
|
173
167
|
type: Injectable,
|
|
174
168
|
args: [{
|
|
175
169
|
providedIn: 'root'
|
|
@@ -177,27 +171,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
177
171
|
}], ctorParameters: () => [] });
|
|
178
172
|
|
|
179
173
|
class YsDatepickerComponent {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
this.
|
|
188
|
-
this._value = null;
|
|
189
|
-
this.disabled = false;
|
|
190
|
-
this.onChange = () => { };
|
|
191
|
-
this.onTouched = () => { };
|
|
192
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
193
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
174
|
+
i18N;
|
|
175
|
+
calendar = inject(NgbCalendar);
|
|
176
|
+
today = inject(NgbCalendar).getToday();
|
|
177
|
+
firstDayOfWeek = 1;
|
|
178
|
+
weekend = [6, 7];
|
|
179
|
+
_language = LanguageType[LanguageType.en];
|
|
180
|
+
get language() {
|
|
181
|
+
return this._language;
|
|
194
182
|
}
|
|
183
|
+
set language(value) {
|
|
184
|
+
this._language = value;
|
|
185
|
+
this.i18N.language = this._language;
|
|
186
|
+
}
|
|
187
|
+
isFooter = true;
|
|
188
|
+
todayLabel = "Today";
|
|
189
|
+
footer = null;
|
|
190
|
+
_value = null;
|
|
195
191
|
get value() {
|
|
196
192
|
return this._value;
|
|
197
193
|
}
|
|
198
194
|
set value(val) {
|
|
199
195
|
this._value = val;
|
|
200
196
|
}
|
|
197
|
+
disabled = false;
|
|
198
|
+
onChange = () => { };
|
|
199
|
+
onTouched = () => { };
|
|
200
|
+
constructor(i18N) {
|
|
201
|
+
this.i18N = i18N;
|
|
202
|
+
}
|
|
201
203
|
writeValue(obj) {
|
|
202
204
|
if (!obj) {
|
|
203
205
|
this.value = null;
|
|
@@ -215,6 +217,8 @@ class YsDatepickerComponent {
|
|
|
215
217
|
setDisabledState(isDisabled) {
|
|
216
218
|
this.disabled = isDisabled;
|
|
217
219
|
}
|
|
220
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
221
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
218
222
|
valueChanged(newDate) {
|
|
219
223
|
if (newDate) {
|
|
220
224
|
if (typeof newDate == 'string') {
|
|
@@ -238,8 +242,8 @@ class YsDatepickerComponent {
|
|
|
238
242
|
this.value = this.today;
|
|
239
243
|
this.valueChanged(this.value);
|
|
240
244
|
}
|
|
241
|
-
static
|
|
242
|
-
static
|
|
245
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerComponent, isStandalone: true, selector: "ys-datepicker", inputs: { firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", todayLabel: "todayLabel", footer: "footer", disabled: "disabled" }, providers: [
|
|
243
247
|
{
|
|
244
248
|
provide: NG_VALUE_ACCESSOR,
|
|
245
249
|
useExisting: forwardRef(() => YsDatepickerComponent),
|
|
@@ -248,11 +252,11 @@ class YsDatepickerComponent {
|
|
|
248
252
|
I18n,
|
|
249
253
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
250
254
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
251
|
-
], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
255
|
+
], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i2.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
252
256
|
}
|
|
253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerComponent, decorators: [{
|
|
254
258
|
type: Component,
|
|
255
|
-
args: [{ selector: 'ys-datepicker',
|
|
259
|
+
args: [{ selector: 'ys-datepicker', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
256
260
|
{
|
|
257
261
|
provide: NG_VALUE_ACCESSOR,
|
|
258
262
|
useExisting: forwardRef(() => YsDatepickerComponent),
|
|
@@ -261,11 +265,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
261
265
|
I18n,
|
|
262
266
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
263
267
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
264
|
-
], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
265
|
-
}], propDecorators: { firstDayOfWeek: [{
|
|
268
|
+
], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
|
|
269
|
+
}], ctorParameters: () => [{ type: I18n }], propDecorators: { firstDayOfWeek: [{
|
|
266
270
|
type: Input
|
|
267
271
|
}], weekend: [{
|
|
268
272
|
type: Input
|
|
273
|
+
}], language: [{
|
|
274
|
+
type: Input
|
|
269
275
|
}], isFooter: [{
|
|
270
276
|
type: Input
|
|
271
277
|
}], todayLabel: [{
|
|
@@ -277,6 +283,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
277
283
|
}] } });
|
|
278
284
|
|
|
279
285
|
class YsDatepickerPersianComponent {
|
|
286
|
+
i18N;
|
|
287
|
+
calendar = inject(NgbCalendar);
|
|
288
|
+
today = inject(NgbCalendar).getToday();
|
|
289
|
+
firstDayOfWeek = 6;
|
|
290
|
+
weekend = [5];
|
|
291
|
+
_language = LanguageType[LanguageType.fa];
|
|
280
292
|
get language() {
|
|
281
293
|
return this._language;
|
|
282
294
|
}
|
|
@@ -284,28 +296,21 @@ class YsDatepickerPersianComponent {
|
|
|
284
296
|
this._language = value;
|
|
285
297
|
this.i18N.language = this._language;
|
|
286
298
|
}
|
|
299
|
+
isFooter = true;
|
|
300
|
+
todayLabel = "امروز";
|
|
301
|
+
footer = null;
|
|
302
|
+
_value = null;
|
|
287
303
|
get value() {
|
|
288
304
|
return this._value;
|
|
289
305
|
}
|
|
290
306
|
set value(val) {
|
|
291
307
|
this._value = val;
|
|
292
308
|
}
|
|
309
|
+
disabled = false;
|
|
310
|
+
onChange = () => { };
|
|
311
|
+
onTouched = () => { };
|
|
293
312
|
constructor(i18N) {
|
|
294
313
|
this.i18N = i18N;
|
|
295
|
-
this.calendar = inject(NgbCalendar);
|
|
296
|
-
this.today = inject(NgbCalendar).getToday();
|
|
297
|
-
this.firstDayOfWeek = 6;
|
|
298
|
-
this.weekend = [5];
|
|
299
|
-
this._language = LanguageType[LanguageType.fa];
|
|
300
|
-
this.isFooter = true;
|
|
301
|
-
this.todayLabel = "امروز";
|
|
302
|
-
this.footer = null;
|
|
303
|
-
this._value = null;
|
|
304
|
-
this.disabled = false;
|
|
305
|
-
this.onChange = () => { };
|
|
306
|
-
this.onTouched = () => { };
|
|
307
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
308
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
309
314
|
this.language = LanguageType[LanguageType.fa];
|
|
310
315
|
}
|
|
311
316
|
writeValue(obj) {
|
|
@@ -326,6 +331,8 @@ class YsDatepickerPersianComponent {
|
|
|
326
331
|
setDisabledState(isDisabled) {
|
|
327
332
|
this.disabled = isDisabled;
|
|
328
333
|
}
|
|
334
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
335
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
329
336
|
valueChanged(newDate) {
|
|
330
337
|
if (newDate) {
|
|
331
338
|
if (typeof newDate == 'string') {
|
|
@@ -351,8 +358,8 @@ class YsDatepickerPersianComponent {
|
|
|
351
358
|
this.value = this.today;
|
|
352
359
|
this.valueChanged(this.value);
|
|
353
360
|
}
|
|
354
|
-
static
|
|
355
|
-
static
|
|
361
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPersianComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
362
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerPersianComponent, isStandalone: true, selector: "ys-datepicker-persian", inputs: { firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", todayLabel: "todayLabel", footer: "footer", disabled: "disabled" }, providers: [
|
|
356
363
|
{
|
|
357
364
|
provide: NG_VALUE_ACCESSOR,
|
|
358
365
|
useExisting: forwardRef(() => YsDatepickerPersianComponent),
|
|
@@ -362,11 +369,11 @@ class YsDatepickerPersianComponent {
|
|
|
362
369
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
363
370
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
364
371
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
365
|
-
], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"
|
|
372
|
+
], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i2.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
366
373
|
}
|
|
367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
374
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPersianComponent, decorators: [{
|
|
368
375
|
type: Component,
|
|
369
|
-
args: [{ selector: 'ys-datepicker-persian',
|
|
376
|
+
args: [{ selector: 'ys-datepicker-persian', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
370
377
|
{
|
|
371
378
|
provide: NG_VALUE_ACCESSOR,
|
|
372
379
|
useExisting: forwardRef(() => YsDatepickerPersianComponent),
|
|
@@ -376,7 +383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
376
383
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
377
384
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
378
385
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
379
|
-
], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"
|
|
386
|
+
], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
|
|
380
387
|
}], ctorParameters: () => [{ type: I18n }], propDecorators: { firstDayOfWeek: [{
|
|
381
388
|
type: Input
|
|
382
389
|
}], weekend: [{
|
|
@@ -394,12 +401,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
394
401
|
}] } });
|
|
395
402
|
|
|
396
403
|
class YsDatepickerPopupPersianComponent {
|
|
404
|
+
i18N;
|
|
405
|
+
calendar = inject(NgbCalendar);
|
|
406
|
+
today = inject(NgbCalendar).getToday();
|
|
407
|
+
_value = null;
|
|
397
408
|
get value() {
|
|
398
409
|
return this._value;
|
|
399
410
|
}
|
|
400
411
|
set value(val) {
|
|
401
412
|
this._value = val;
|
|
402
413
|
}
|
|
414
|
+
container = null;
|
|
415
|
+
firstDayOfWeek = 6;
|
|
416
|
+
weekend = [5];
|
|
417
|
+
_language = LanguageType[LanguageType.fa];
|
|
403
418
|
get language() {
|
|
404
419
|
return this._language;
|
|
405
420
|
}
|
|
@@ -407,25 +422,16 @@ class YsDatepickerPopupPersianComponent {
|
|
|
407
422
|
this._language = value;
|
|
408
423
|
this.i18N.language = this._language;
|
|
409
424
|
}
|
|
425
|
+
isFooter = true;
|
|
426
|
+
closeLabel = "بستن";
|
|
427
|
+
todayLabel = "امروز";
|
|
428
|
+
footer = null;
|
|
429
|
+
calendarIconClass = "fa-solid fa-calendar-days";
|
|
430
|
+
disabled = false;
|
|
431
|
+
onChange = () => { };
|
|
432
|
+
onTouched = () => { };
|
|
410
433
|
constructor(i18N) {
|
|
411
434
|
this.i18N = i18N;
|
|
412
|
-
this.calendar = inject(NgbCalendar);
|
|
413
|
-
this.today = inject(NgbCalendar).getToday();
|
|
414
|
-
this._value = null;
|
|
415
|
-
this.container = null;
|
|
416
|
-
this.firstDayOfWeek = 6;
|
|
417
|
-
this.weekend = [5];
|
|
418
|
-
this._language = LanguageType[LanguageType.fa];
|
|
419
|
-
this.isFooter = true;
|
|
420
|
-
this.closeLabel = "بستن";
|
|
421
|
-
this.todayLabel = "امروز";
|
|
422
|
-
this.footer = null;
|
|
423
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
424
|
-
this.disabled = false;
|
|
425
|
-
this.onChange = () => { };
|
|
426
|
-
this.onTouched = () => { };
|
|
427
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
428
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
429
435
|
this.language = LanguageType[LanguageType.fa];
|
|
430
436
|
}
|
|
431
437
|
writeValue(obj) {
|
|
@@ -446,6 +452,8 @@ class YsDatepickerPopupPersianComponent {
|
|
|
446
452
|
setDisabledState(isDisabled) {
|
|
447
453
|
this.disabled = isDisabled;
|
|
448
454
|
}
|
|
455
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
456
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
449
457
|
valueChanged(newDate) {
|
|
450
458
|
if (newDate) {
|
|
451
459
|
if (typeof newDate == 'string') {
|
|
@@ -471,8 +479,8 @@ class YsDatepickerPopupPersianComponent {
|
|
|
471
479
|
this.value = this.today;
|
|
472
480
|
this.valueChanged(this.value);
|
|
473
481
|
}
|
|
474
|
-
static
|
|
475
|
-
static
|
|
482
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPopupPersianComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
483
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerPopupPersianComponent, isStandalone: true, selector: "ys-datepicker-popup-persian", inputs: { container: "container", firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", closeLabel: "closeLabel", todayLabel: "todayLabel", footer: "footer", calendarIconClass: "calendarIconClass", disabled: "disabled" }, providers: [
|
|
476
484
|
{
|
|
477
485
|
provide: NG_VALUE_ACCESSOR,
|
|
478
486
|
useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),
|
|
@@ -482,11 +490,11 @@ class YsDatepickerPopupPersianComponent {
|
|
|
482
490
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
483
491
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
484
492
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
485
|
-
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
493
|
+
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
486
494
|
}
|
|
487
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
495
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPopupPersianComponent, decorators: [{
|
|
488
496
|
type: Component,
|
|
489
|
-
args: [{ selector: 'ys-datepicker-popup-persian',
|
|
497
|
+
args: [{ selector: 'ys-datepicker-popup-persian', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
490
498
|
{
|
|
491
499
|
provide: NG_VALUE_ACCESSOR,
|
|
492
500
|
useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),
|
|
@@ -496,7 +504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
496
504
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
497
505
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
498
506
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
499
|
-
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
507
|
+
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
|
|
500
508
|
}], ctorParameters: () => [{ type: I18n }], propDecorators: { container: [{
|
|
501
509
|
type: Input
|
|
502
510
|
}], firstDayOfWeek: [{
|
|
@@ -520,12 +528,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
520
528
|
}] } });
|
|
521
529
|
|
|
522
530
|
class YsDatepickerPopupComponent {
|
|
531
|
+
i18N;
|
|
532
|
+
calendar = inject(NgbCalendar);
|
|
533
|
+
today = inject(NgbCalendar).getToday();
|
|
534
|
+
_value = null;
|
|
523
535
|
get value() {
|
|
524
536
|
return this._value;
|
|
525
537
|
}
|
|
526
538
|
set value(val) {
|
|
527
539
|
this._value = val;
|
|
528
540
|
}
|
|
541
|
+
container = null;
|
|
542
|
+
firstDayOfWeek = 1;
|
|
543
|
+
weekend = [6, 7];
|
|
544
|
+
_language = LanguageType[LanguageType.en];
|
|
529
545
|
get language() {
|
|
530
546
|
return this._language;
|
|
531
547
|
}
|
|
@@ -533,26 +549,16 @@ class YsDatepickerPopupComponent {
|
|
|
533
549
|
this._language = value;
|
|
534
550
|
this.i18N.language = this._language;
|
|
535
551
|
}
|
|
552
|
+
isFooter = true;
|
|
553
|
+
closeLabel = "Close";
|
|
554
|
+
todayLabel = "Today";
|
|
555
|
+
footer = null;
|
|
556
|
+
calendarIconClass = "fa-solid fa-calendar-days";
|
|
557
|
+
disabled = false;
|
|
558
|
+
onChange = () => { };
|
|
559
|
+
onTouched = () => { };
|
|
536
560
|
constructor(i18N) {
|
|
537
561
|
this.i18N = i18N;
|
|
538
|
-
this.calendar = inject(NgbCalendar);
|
|
539
|
-
this.today = inject(NgbCalendar).getToday();
|
|
540
|
-
this._value = null;
|
|
541
|
-
this.container = null;
|
|
542
|
-
this.firstDayOfWeek = 1;
|
|
543
|
-
this.weekend = [6, 7];
|
|
544
|
-
this._language = LanguageType[LanguageType.en];
|
|
545
|
-
this.isFooter = true;
|
|
546
|
-
this.closeLabel = "Close";
|
|
547
|
-
this.todayLabel = "Today";
|
|
548
|
-
this.footer = null;
|
|
549
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
550
|
-
this.disabled = false;
|
|
551
|
-
this.onChange = () => { };
|
|
552
|
-
this.onTouched = () => { };
|
|
553
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
554
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
555
|
-
this.language = LanguageType[LanguageType.en];
|
|
556
562
|
}
|
|
557
563
|
writeValue(obj) {
|
|
558
564
|
if (!obj) {
|
|
@@ -571,6 +577,8 @@ class YsDatepickerPopupComponent {
|
|
|
571
577
|
setDisabledState(isDisabled) {
|
|
572
578
|
this.disabled = isDisabled;
|
|
573
579
|
}
|
|
580
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
581
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
574
582
|
valueChanged(newDate) {
|
|
575
583
|
if (newDate) {
|
|
576
584
|
if (typeof newDate == 'string') {
|
|
@@ -594,8 +602,8 @@ class YsDatepickerPopupComponent {
|
|
|
594
602
|
this.value = this.today;
|
|
595
603
|
this.valueChanged(this.value);
|
|
596
604
|
}
|
|
597
|
-
static
|
|
598
|
-
static
|
|
605
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPopupComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
606
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerPopupComponent, isStandalone: true, selector: "ys-datepicker-popup", inputs: { container: "container", firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", closeLabel: "closeLabel", todayLabel: "todayLabel", footer: "footer", calendarIconClass: "calendarIconClass", disabled: "disabled" }, providers: [
|
|
599
607
|
{
|
|
600
608
|
provide: NG_VALUE_ACCESSOR,
|
|
601
609
|
useExisting: forwardRef(() => YsDatepickerPopupComponent),
|
|
@@ -604,11 +612,11 @@ class YsDatepickerPopupComponent {
|
|
|
604
612
|
I18n,
|
|
605
613
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
606
614
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
607
|
-
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
615
|
+
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
608
616
|
}
|
|
609
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
617
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerPopupComponent, decorators: [{
|
|
610
618
|
type: Component,
|
|
611
|
-
args: [{ selector: 'ys-datepicker-popup',
|
|
619
|
+
args: [{ selector: 'ys-datepicker-popup', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
612
620
|
{
|
|
613
621
|
provide: NG_VALUE_ACCESSOR,
|
|
614
622
|
useExisting: forwardRef(() => YsDatepickerPopupComponent),
|
|
@@ -617,7 +625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
617
625
|
I18n,
|
|
618
626
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
619
627
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
620
|
-
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-
|
|
628
|
+
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
|
|
621
629
|
}], ctorParameters: () => [{ type: I18n }], propDecorators: { container: [{
|
|
622
630
|
type: Input
|
|
623
631
|
}], firstDayOfWeek: [{
|
|
@@ -641,14 +649,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
641
649
|
}] } });
|
|
642
650
|
|
|
643
651
|
class YsDatepickerRangePopupPersianComponent {
|
|
652
|
+
i18N;
|
|
653
|
+
calendar = inject(NgbCalendar);
|
|
654
|
+
formatter = inject(NgbDateParserFormatter);
|
|
655
|
+
today = inject(NgbCalendar).getToday();
|
|
656
|
+
date;
|
|
657
|
+
hoveredDate = null;
|
|
658
|
+
_fromDate = null;
|
|
644
659
|
get fromDate() { return this._fromDate; }
|
|
645
660
|
set fromDate(value) {
|
|
646
661
|
this._fromDate = value;
|
|
647
662
|
}
|
|
663
|
+
_toDate = null;
|
|
648
664
|
get toDate() { return this._toDate; }
|
|
649
665
|
set toDate(value) {
|
|
650
666
|
this._toDate = value;
|
|
651
667
|
}
|
|
668
|
+
container = null;
|
|
669
|
+
firstDayOfWeek = 6;
|
|
670
|
+
weekend = [5];
|
|
671
|
+
_language = LanguageType[LanguageType.fa];
|
|
652
672
|
get language() {
|
|
653
673
|
return this._language;
|
|
654
674
|
}
|
|
@@ -656,28 +676,16 @@ class YsDatepickerRangePopupPersianComponent {
|
|
|
656
676
|
this._language = value;
|
|
657
677
|
this.i18N.language = this._language;
|
|
658
678
|
}
|
|
679
|
+
isFooter = true;
|
|
680
|
+
closeLabel = "بستن";
|
|
681
|
+
todayLabel = "امروز";
|
|
682
|
+
footer = null;
|
|
683
|
+
calendarIconClass = "fa-solid fa-calendar-days";
|
|
684
|
+
disabled = false;
|
|
685
|
+
onChange = () => { };
|
|
686
|
+
onTouched = () => { };
|
|
659
687
|
constructor(i18N) {
|
|
660
688
|
this.i18N = i18N;
|
|
661
|
-
this.calendar = inject(NgbCalendar);
|
|
662
|
-
this.formatter = inject(NgbDateParserFormatter);
|
|
663
|
-
this.today = inject(NgbCalendar).getToday();
|
|
664
|
-
this.hoveredDate = null;
|
|
665
|
-
this._fromDate = null;
|
|
666
|
-
this._toDate = null;
|
|
667
|
-
this.container = null;
|
|
668
|
-
this.firstDayOfWeek = 6;
|
|
669
|
-
this.weekend = [5];
|
|
670
|
-
this._language = LanguageType[LanguageType.fa];
|
|
671
|
-
this.isFooter = true;
|
|
672
|
-
this.closeLabel = "بستن";
|
|
673
|
-
this.todayLabel = "امروز";
|
|
674
|
-
this.footer = null;
|
|
675
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
676
|
-
this.disabled = false;
|
|
677
|
-
this.onChange = () => { };
|
|
678
|
-
this.onTouched = () => { };
|
|
679
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
680
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
681
689
|
this.language = LanguageType[LanguageType.fa];
|
|
682
690
|
}
|
|
683
691
|
writeValue(obj) {
|
|
@@ -727,6 +735,8 @@ class YsDatepickerRangePopupPersianComponent {
|
|
|
727
735
|
this.isInside(date) ||
|
|
728
736
|
this.isHovered(date));
|
|
729
737
|
}
|
|
738
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
739
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
730
740
|
validateInput(currentValue, input) {
|
|
731
741
|
const parsed = this.formatter.parse(input);
|
|
732
742
|
return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;
|
|
@@ -749,8 +759,8 @@ class YsDatepickerRangePopupPersianComponent {
|
|
|
749
759
|
this.toDate = this.today;
|
|
750
760
|
this.valueChanged();
|
|
751
761
|
}
|
|
752
|
-
static
|
|
753
|
-
static
|
|
762
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerRangePopupPersianComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
763
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerRangePopupPersianComponent, isStandalone: true, selector: "ys-datepicker-range-popup-persian", inputs: { container: "container", firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", closeLabel: "closeLabel", todayLabel: "todayLabel", footer: "footer", calendarIconClass: "calendarIconClass", disabled: "disabled" }, providers: [
|
|
754
764
|
{
|
|
755
765
|
provide: NG_VALUE_ACCESSOR,
|
|
756
766
|
useExisting: forwardRef(() => YsDatepickerRangePopupPersianComponent),
|
|
@@ -760,11 +770,11 @@ class YsDatepickerRangePopupPersianComponent {
|
|
|
760
770
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
761
771
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
762
772
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
763
|
-
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n
|
|
773
|
+
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.dp-hidden{width:0;margin:0;border:none;padding:0}.custom-day.focused{background-color:var(--bs-gray-300)}.custom-day.range,.custom-day:hover{background-color:var(--bs-info);color:var(--bs-white)}.custom-day.faded{background-color:var(--bs-info);opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
764
774
|
}
|
|
765
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
775
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerRangePopupPersianComponent, decorators: [{
|
|
766
776
|
type: Component,
|
|
767
|
-
args: [{ selector: 'ys-datepicker-range-popup-persian',
|
|
777
|
+
args: [{ selector: 'ys-datepicker-range-popup-persian', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
768
778
|
{
|
|
769
779
|
provide: NG_VALUE_ACCESSOR,
|
|
770
780
|
useExisting: forwardRef(() => YsDatepickerRangePopupPersianComponent),
|
|
@@ -774,7 +784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
774
784
|
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
775
785
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
776
786
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
777
|
-
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n
|
|
787
|
+
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.dp-hidden{width:0;margin:0;border:none;padding:0}.custom-day.focused{background-color:var(--bs-gray-300)}.custom-day.range,.custom-day:hover{background-color:var(--bs-info);color:var(--bs-white)}.custom-day.faded{background-color:var(--bs-info);opacity:.5}\n"] }]
|
|
778
788
|
}], ctorParameters: () => [{ type: I18n }], propDecorators: { container: [{
|
|
779
789
|
type: Input
|
|
780
790
|
}], firstDayOfWeek: [{
|
|
@@ -798,14 +808,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
798
808
|
}] } });
|
|
799
809
|
|
|
800
810
|
class YsDatepickerRangePopupComponent {
|
|
811
|
+
i18N;
|
|
812
|
+
calendar = inject(NgbCalendar);
|
|
813
|
+
formatter = inject(NgbDateParserFormatter);
|
|
814
|
+
today = inject(NgbCalendar).getToday();
|
|
815
|
+
hoveredDate = null;
|
|
816
|
+
_fromDate = null;
|
|
801
817
|
get fromDate() { return this._fromDate; }
|
|
802
818
|
set fromDate(value) {
|
|
803
819
|
this._fromDate = value;
|
|
804
820
|
}
|
|
821
|
+
_toDate = null;
|
|
805
822
|
get toDate() { return this._toDate; }
|
|
806
823
|
set toDate(value) {
|
|
807
824
|
this._toDate = value;
|
|
808
825
|
}
|
|
826
|
+
container = null;
|
|
827
|
+
firstDayOfWeek = 1;
|
|
828
|
+
weekend = [6, 7];
|
|
829
|
+
_language = LanguageType[LanguageType.en];
|
|
809
830
|
get language() {
|
|
810
831
|
return this._language;
|
|
811
832
|
}
|
|
@@ -813,29 +834,16 @@ class YsDatepickerRangePopupComponent {
|
|
|
813
834
|
this._language = value;
|
|
814
835
|
this.i18N.language = this._language;
|
|
815
836
|
}
|
|
837
|
+
isFooter = true;
|
|
838
|
+
closeLabel = "Close";
|
|
839
|
+
todayLabel = "Today";
|
|
840
|
+
footer = null;
|
|
841
|
+
calendarIconClass = "fa-solid fa-calendar-days";
|
|
842
|
+
disabled = false;
|
|
843
|
+
onChange = () => { };
|
|
844
|
+
onTouched = () => { };
|
|
816
845
|
constructor(i18N) {
|
|
817
846
|
this.i18N = i18N;
|
|
818
|
-
this.calendar = inject(NgbCalendar);
|
|
819
|
-
this.formatter = inject(NgbDateParserFormatter);
|
|
820
|
-
this.today = inject(NgbCalendar).getToday();
|
|
821
|
-
this.hoveredDate = null;
|
|
822
|
-
this._fromDate = null;
|
|
823
|
-
this._toDate = null;
|
|
824
|
-
this.container = null;
|
|
825
|
-
this.firstDayOfWeek = 1;
|
|
826
|
-
this.weekend = [6, 7];
|
|
827
|
-
this._language = LanguageType[LanguageType.en];
|
|
828
|
-
this.isFooter = true;
|
|
829
|
-
this.closeLabel = "Close";
|
|
830
|
-
this.todayLabel = "Today";
|
|
831
|
-
this.footer = null;
|
|
832
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
833
|
-
this.disabled = false;
|
|
834
|
-
this.onChange = () => { };
|
|
835
|
-
this.onTouched = () => { };
|
|
836
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
837
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
838
|
-
this.language = LanguageType[LanguageType.en];
|
|
839
847
|
}
|
|
840
848
|
writeValue(obj) {
|
|
841
849
|
if (!obj) {
|
|
@@ -883,6 +891,8 @@ class YsDatepickerRangePopupComponent {
|
|
|
883
891
|
this.isInside(date) ||
|
|
884
892
|
this.isHovered(date));
|
|
885
893
|
}
|
|
894
|
+
markDisabled = (date, current) => date.month !== current?.month;
|
|
895
|
+
isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
886
896
|
validateInput(currentValue, input) {
|
|
887
897
|
const parsed = this.formatter.parse(input);
|
|
888
898
|
return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;
|
|
@@ -899,8 +909,8 @@ class YsDatepickerRangePopupComponent {
|
|
|
899
909
|
this.toDate = this.today;
|
|
900
910
|
this.valueChanged();
|
|
901
911
|
}
|
|
902
|
-
static
|
|
903
|
-
static
|
|
912
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerRangePopupComponent, deps: [{ token: I18n }], target: i0.ɵɵFactoryTarget.Component });
|
|
913
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsDatepickerRangePopupComponent, isStandalone: true, selector: "ys-datepicker-range-popup", inputs: { container: "container", firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", closeLabel: "closeLabel", todayLabel: "todayLabel", footer: "footer", calendarIconClass: "calendarIconClass", disabled: "disabled" }, providers: [
|
|
904
914
|
{
|
|
905
915
|
provide: NG_VALUE_ACCESSOR,
|
|
906
916
|
useExisting: forwardRef(() => YsDatepickerRangePopupComponent),
|
|
@@ -909,11 +919,11 @@ class YsDatepickerRangePopupComponent {
|
|
|
909
919
|
I18n,
|
|
910
920
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
911
921
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
912
|
-
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n
|
|
922
|
+
], ngImport: i0, template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.dp-hidden{width:0;margin:0;border:none;padding:0}.custom-day.focused{background-color:var(--bs-gray-300)}.custom-day.range,.custom-day:hover{background-color:var(--bs-info);color:var(--bs-white)}.custom-day.faded{background-color:var(--bs-info);opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
913
923
|
}
|
|
914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
924
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsDatepickerRangePopupComponent, decorators: [{
|
|
915
925
|
type: Component,
|
|
916
|
-
args: [{ selector: 'ys-datepicker-range-popup',
|
|
926
|
+
args: [{ selector: 'ys-datepicker-range-popup', imports: [NgbDatepickerModule, FormsModule, NgIf], providers: [
|
|
917
927
|
{
|
|
918
928
|
provide: NG_VALUE_ACCESSOR,
|
|
919
929
|
useExisting: forwardRef(() => YsDatepickerRangePopupComponent),
|
|
@@ -922,7 +932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
922
932
|
I18n,
|
|
923
933
|
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
924
934
|
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
925
|
-
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n
|
|
935
|
+
], template: "<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.dp-hidden{width:0;margin:0;border:none;padding:0}.custom-day.focused{background-color:var(--bs-gray-300)}.custom-day.range,.custom-day:hover{background-color:var(--bs-info);color:var(--bs-white)}.custom-day.faded{background-color:var(--bs-info);opacity:.5}\n"] }]
|
|
926
936
|
}], ctorParameters: () => [{ type: I18n }], propDecorators: { container: [{
|
|
927
937
|
type: Input
|
|
928
938
|
}], firstDayOfWeek: [{
|