@yoozsoft/yoozsoft-ng 3.1.4 → 4.0.1
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-9.scss +254 -0
- 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 +23 -43
- 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/models/sidebar-item.d.ts +1 -1
- 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
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { JsonPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { Component, Input, forwardRef, inject } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { NgbCalendar, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../services";
|
|
8
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
-
import * as i3 from "@angular/forms";
|
|
10
|
-
export class YsDatepickerPopupComponent {
|
|
11
|
-
get value() {
|
|
12
|
-
return this._value;
|
|
13
|
-
}
|
|
14
|
-
set value(val) {
|
|
15
|
-
this._value = val;
|
|
16
|
-
}
|
|
17
|
-
get language() {
|
|
18
|
-
return this._language;
|
|
19
|
-
}
|
|
20
|
-
set language(value) {
|
|
21
|
-
this._language = value;
|
|
22
|
-
this.i18N.language = this._language;
|
|
23
|
-
}
|
|
24
|
-
constructor(i18N) {
|
|
25
|
-
this.i18N = i18N;
|
|
26
|
-
this.calendar = inject(NgbCalendar);
|
|
27
|
-
this.today = inject(NgbCalendar).getToday();
|
|
28
|
-
this._value = null;
|
|
29
|
-
this.container = null;
|
|
30
|
-
this.firstDayOfWeek = 1;
|
|
31
|
-
this.weekend = [6, 7];
|
|
32
|
-
this._language = LanguageType[LanguageType.en];
|
|
33
|
-
this.isFooter = true;
|
|
34
|
-
this.closeLabel = "Close";
|
|
35
|
-
this.todayLabel = "Today";
|
|
36
|
-
this.footer = null;
|
|
37
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
38
|
-
this.disabled = false;
|
|
39
|
-
this.onChange = () => { };
|
|
40
|
-
this.onTouched = () => { };
|
|
41
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
42
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
43
|
-
this.language = LanguageType[LanguageType.en];
|
|
44
|
-
}
|
|
45
|
-
writeValue(obj) {
|
|
46
|
-
if (!obj) {
|
|
47
|
-
this.value = null;
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
var date = obj;
|
|
51
|
-
this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };
|
|
52
|
-
}
|
|
53
|
-
registerOnChange(fn) {
|
|
54
|
-
this.onChange = fn;
|
|
55
|
-
}
|
|
56
|
-
registerOnTouched(fn) {
|
|
57
|
-
this.onTouched = fn;
|
|
58
|
-
}
|
|
59
|
-
setDisabledState(isDisabled) {
|
|
60
|
-
this.disabled = isDisabled;
|
|
61
|
-
}
|
|
62
|
-
valueChanged(newDate) {
|
|
63
|
-
if (newDate) {
|
|
64
|
-
if (typeof newDate == 'string') {
|
|
65
|
-
let temp = newDate.split('/');
|
|
66
|
-
let res = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);
|
|
67
|
-
this.onChange(res);
|
|
68
|
-
this.onTouched(res);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
let res = new Date(newDate.year, newDate.month - 1, newDate.day);
|
|
72
|
-
this.onChange(res);
|
|
73
|
-
this.onTouched(res);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.onChange(null);
|
|
78
|
-
this.onTouched(null);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
setToday() {
|
|
82
|
-
this.value = this.today;
|
|
83
|
-
this.valueChanged(this.value);
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPopupComponent, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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: [
|
|
87
|
-
{
|
|
88
|
-
provide: NG_VALUE_ACCESSOR,
|
|
89
|
-
useExisting: forwardRef(() => YsDatepickerPopupComponent),
|
|
90
|
-
multi: true
|
|
91
|
-
},
|
|
92
|
-
I18n,
|
|
93
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
94
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
95
|
-
], 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-primary]=\"selected\"\r\n [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)=\"setToday(); datepicker.close()\"\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"] }] }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPopupComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{ selector: 'ys-datepicker-popup', standalone: true, imports: [NgbDatepickerModule, FormsModule, JsonPipe, NgIf], providers: [
|
|
100
|
-
{
|
|
101
|
-
provide: NG_VALUE_ACCESSOR,
|
|
102
|
-
useExisting: forwardRef(() => YsDatepickerPopupComponent),
|
|
103
|
-
multi: true
|
|
104
|
-
},
|
|
105
|
-
I18n,
|
|
106
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
107
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
108
|
-
], 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-primary]=\"selected\"\r\n [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)=\"setToday(); datepicker.close()\"\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"] }]
|
|
109
|
-
}], ctorParameters: () => [{ type: i1.I18n }], propDecorators: { container: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], firstDayOfWeek: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], weekend: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], language: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], isFooter: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], closeLabel: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], todayLabel: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], footer: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], calendarIconClass: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], disabled: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy95cy1kYXRlcGlja2VyLXBvcHVwL3lzLWRhdGVwaWNrZXItcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveW9venNvZnQveW9venNvZnQtbmcvZGF0ZXBpY2tlci9zcmMveXMtZGF0ZXBpY2tlci1wb3B1cC95cy1kYXRlcGlja2VyLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQVcsc0JBQXNCLEVBQWlCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakosT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBbUJ4RyxNQUFNLE9BQU8sMEJBQTBCO0lBTXJDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsR0FBeUI7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQU1ELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lB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QixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUdoRDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsSUFBSTt3QkFDSixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7d0JBQ2pFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTtxQkFDNUU7eUVBZVEsU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblBpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkNhbGVuZGFyLCBOZ2JEYXRlLCBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCBOZ2JEYXRlU3RydWN0LCBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSTE4biwgTGFuZ3VhZ2VUeXBlLCBZc0RhdGVQYXJzZXJGb3JtYXR0ZXJTZXJ2aWNlLCBZc0RhdGVwaWNrZXJJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneXMtZGF0ZXBpY2tlci1wb3B1cCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdiRGF0ZXBpY2tlck1vZHVsZSwgRm9ybXNNb2R1bGUsIEpzb25QaXBlLCBOZ0lmXSxcclxuICB0ZW1wbGF0ZVVybDogJy4veXMtZGF0ZXBpY2tlci1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4veXMtZGF0ZXBpY2tlci1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gWXNEYXRlcGlja2VyUG9wdXBDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIEkxOG4sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogWXNEYXRlcGlja2VySTE4blNlcnZpY2UgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IFlzRGF0ZVBhcnNlckZvcm1hdHRlclNlcnZpY2UgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFlzRGF0ZXBpY2tlclBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBjYWxlbmRhciA9IGluamVjdChOZ2JDYWxlbmRhcik7XHJcbiAgdG9kYXkgPSBpbmplY3QoTmdiQ2FsZW5kYXIpLmdldFRvZGF5KCk7XHJcblxyXG4gIF92YWx1ZTogTmdiRGF0ZVN0cnVjdCB8IG51bGwgPSBudWxsO1xyXG4gIGdldCB2YWx1ZSgpOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRhaW5lcjogXCJib2R5XCIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBmaXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKSB3ZWVrZW5kOiBudW1iZXJbXSA9IFs2LCA3XTtcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nID0gTGFuZ3VhZ2VUeXBlW0xhbmd1YWdlVHlwZS5lbl07XHJcbiAgQElucHV0KClcclxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcbiAgc2V0IGxhbmd1YWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2xhbmd1YWdlID0gdmFsdWU7XHJcbiAgICB0aGlzLmkxOE4ubGFuZ3VhZ2UgPSB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzRm9vdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbG9zZUxhYmVsOiBzdHJpbmcgPSBcIkNsb3NlXCI7XHJcbiAgQElucHV0KCkgdG9kYXlMYWJlbDogc3RyaW5nID0gXCJUb2RheVwiO1xyXG4gIEBJbnB1dCgpIGZvb3RlcjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGNhbGVuZGFySWNvbkNsYXNzOiBzdHJpbmcgPSBcImZhLXNvbGlkIGZhLWNhbGVuZGFyLWRheXNcIjtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9XHJcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThOOiBJMThuKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlID0gTGFuZ3VhZ2VUeXBlW0xhbmd1YWdlVHlwZS5lbl07XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIW9iaikge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBkYXRlOiBEYXRlID0gb2JqO1xyXG4gICAgdGhpcy52YWx1ZSA9IHsgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aDogKGRhdGUuZ2V0TW9udGgoKSArIDEpLCBkYXk6IGRhdGUuZ2V0RGF0ZSgpIH07XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG1hcmtEaXNhYmxlZCA9IChkYXRlOiBOZ2JEYXRlLCBjdXJyZW50PzogeyBtb250aDogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfSkgPT4gZGF0ZS5tb250aCAhPT0gY3VycmVudD8ubW9udGg7XHJcbiAgaXNXZWVrZW5kID0gKGRhdGU6IE5nYkRhdGUpID0+IHRoaXMud2Vla2VuZC5pbmNsdWRlcyh0aGlzLmNhbGVuZGFyLmdldFdlZWtkYXkoZGF0ZSkpO1xyXG5cclxuICB2YWx1ZUNoYW5nZWQobmV3RGF0ZTogTmdiRGF0ZVN0cnVjdCB8IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmIChuZXdEYXRlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgbmV3RGF0ZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGxldCB0ZW1wID0gbmV3RGF0ZS5zcGxpdCgnLycpO1xyXG4gICAgICAgIGxldCByZXM6IERhdGUgPSBuZXcgRGF0ZSgrdGVtcFswXSwgKCt0ZW1wWzFdKSAtIDEsICt0ZW1wWzJdKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHJlcyk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQocmVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgcmVzOiBEYXRlID0gbmV3IERhdGUobmV3RGF0ZS55ZWFyLCBuZXdEYXRlLm1vbnRoIC0gMSwgbmV3RGF0ZS5kYXkpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UocmVzKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZChyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFRvZGF5KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudG9kYXk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxmb3JtIGNsYXNzPVwicm93IHJvdy1jb2xzLXNtLWF1dG9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJ5eXl5L21tL2RkXCIgbmFtZT1cImRwXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICNkYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiIFtjb250YWluZXJdPVwiY29udGFpbmVyXCIgW21hcmtEaXNhYmxlZF09XCJtYXJrRGlzYWJsZWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCIgW2RheVRlbXBsYXRlXT1cImN1c3RvbURheVwiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQodmFsdWUpXCIgLz5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiZGF0ZXBpY2tlci50b2dnbGUoKVwiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tjYWxlbmRhckljb25DbGFzc319XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48bmctdGVtcGxhdGUgI2N1c3RvbURheSBsZXQtZGF0ZSBsZXQtY3VycmVudE1vbnRoPVwiY3VycmVudE1vbnRoXCIgbGV0LXNlbGVjdGVkPVwic2VsZWN0ZWRcIiBsZXQtZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcbiAgICBsZXQtZm9jdXNlZD1cImZvY3VzZWRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3VzdG9tLWRheVwiIFtjbGFzcy53ZWVrZW5kXT1cImlzV2Vla2VuZChkYXRlKVwiIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBbY2xhc3MuYmctcHJpbWFyeV09XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCJkYXRlLm1vbnRoICE9PSBjdXJyZW50TW9udGhcIiBbY2xhc3MudGV4dC1tdXRlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgIHt7IGRhdGUuZGF5IH19XHJcbiAgICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJpc0Zvb3RlclwiPlxyXG4gICAgICAgIDxociBjbGFzcz1cIm15LTBcIiAvPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIHt7Zm9vdGVyfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG0tMiBmbG9hdC1zdGFydFwiIChjbGljayk9XCJzZXRUb2RheSgpOyBkYXRlcGlja2VyLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+e3t0b2RheUxhYmVsfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBtLTIgZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRhdGVwaWNrZXIuY2xvc2UoKVwiPnt7Y2xvc2VMYWJlbH19PC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
package/esm2022/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.mjs
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { JsonPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { Component, Input, forwardRef, inject } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { NgbCalendar, NgbCalendarPersian, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { JalaliDate } from '../models';
|
|
6
|
-
import { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../services";
|
|
9
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
-
import * as i3 from "@angular/forms";
|
|
11
|
-
export class YsDatepickerPopupPersianComponent {
|
|
12
|
-
get value() {
|
|
13
|
-
return this._value;
|
|
14
|
-
}
|
|
15
|
-
set value(val) {
|
|
16
|
-
this._value = val;
|
|
17
|
-
}
|
|
18
|
-
get language() {
|
|
19
|
-
return this._language;
|
|
20
|
-
}
|
|
21
|
-
set language(value) {
|
|
22
|
-
this._language = value;
|
|
23
|
-
this.i18N.language = this._language;
|
|
24
|
-
}
|
|
25
|
-
constructor(i18N) {
|
|
26
|
-
this.i18N = i18N;
|
|
27
|
-
this.calendar = inject(NgbCalendar);
|
|
28
|
-
this.today = inject(NgbCalendar).getToday();
|
|
29
|
-
this._value = null;
|
|
30
|
-
this.container = null;
|
|
31
|
-
this.firstDayOfWeek = 6;
|
|
32
|
-
this.weekend = [5];
|
|
33
|
-
this._language = LanguageType[LanguageType.fa];
|
|
34
|
-
this.isFooter = true;
|
|
35
|
-
this.closeLabel = "بستن";
|
|
36
|
-
this.todayLabel = "امروز";
|
|
37
|
-
this.footer = null;
|
|
38
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
39
|
-
this.disabled = false;
|
|
40
|
-
this.onChange = () => { };
|
|
41
|
-
this.onTouched = () => { };
|
|
42
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
43
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
44
|
-
this.language = LanguageType[LanguageType.fa];
|
|
45
|
-
}
|
|
46
|
-
writeValue(obj) {
|
|
47
|
-
if (!obj) {
|
|
48
|
-
this.value = null;
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
var date = obj;
|
|
52
|
-
let persianDate = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());
|
|
53
|
-
this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };
|
|
54
|
-
}
|
|
55
|
-
registerOnChange(fn) {
|
|
56
|
-
this.onChange = fn;
|
|
57
|
-
}
|
|
58
|
-
registerOnTouched(fn) {
|
|
59
|
-
this.onTouched = fn;
|
|
60
|
-
}
|
|
61
|
-
setDisabledState(isDisabled) {
|
|
62
|
-
this.disabled = isDisabled;
|
|
63
|
-
}
|
|
64
|
-
valueChanged(newDate) {
|
|
65
|
-
if (newDate) {
|
|
66
|
-
if (typeof newDate == 'string') {
|
|
67
|
-
let temp = newDate.split('/');
|
|
68
|
-
let convertedDate = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);
|
|
69
|
-
let res = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);
|
|
70
|
-
this.onChange(res);
|
|
71
|
-
this.onTouched(res);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
let convertedDate = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);
|
|
75
|
-
var res = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);
|
|
76
|
-
this.onChange(res);
|
|
77
|
-
this.onTouched(res);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this.onChange(null);
|
|
82
|
-
this.onTouched(null);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
setToday() {
|
|
86
|
-
this.value = this.today;
|
|
87
|
-
this.valueChanged(this.value);
|
|
88
|
-
}
|
|
89
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPopupPersianComponent, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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: [
|
|
91
|
-
{
|
|
92
|
-
provide: NG_VALUE_ACCESSOR,
|
|
93
|
-
useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),
|
|
94
|
-
multi: true
|
|
95
|
-
},
|
|
96
|
-
I18n,
|
|
97
|
-
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
98
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
99
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
100
|
-
], 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-primary]=\"selected\"\r\n [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)=\"setToday(); datepicker.close()\"\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"] }] }); }
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPopupPersianComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'ys-datepicker-popup-persian', standalone: true, imports: [NgbDatepickerModule, FormsModule, JsonPipe, NgIf], providers: [
|
|
105
|
-
{
|
|
106
|
-
provide: NG_VALUE_ACCESSOR,
|
|
107
|
-
useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),
|
|
108
|
-
multi: true
|
|
109
|
-
},
|
|
110
|
-
I18n,
|
|
111
|
-
{ provide: NgbCalendar, useClass: NgbCalendarPersian },
|
|
112
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
113
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
114
|
-
], 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-primary]=\"selected\"\r\n [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)=\"setToday(); datepicker.close()\"\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"] }]
|
|
115
|
-
}], ctorParameters: () => [{ type: i1.I18n }], propDecorators: { container: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], firstDayOfWeek: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], weekend: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], language: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], isFooter: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], closeLabel: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], todayLabel: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], footer: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], calendarIconClass: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], disabled: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci1wb3B1cC1wZXJzaWFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3lvb3pzb2Z0L3lvb3pzb2Z0LW5nL2RhdGVwaWNrZXIvc3JjL3lzLWRhdGVwaWNrZXItcG9wdXAtcGVyc2lhbi95cy1kYXRlcGlja2VyLXBvcHVwLXBlcnNpYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveW9venNvZnQveW9venNvZnQtbmcvZGF0ZXBpY2tlci9zcmMveXMtZGF0ZXBpY2tlci1wb3B1cC1wZXJzaWFuL3lzLWRhdGVwaWNrZXItcG9wdXAtcGVyc2lhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFXLHNCQUFzQixFQUFpQixpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBb0J4RyxNQUFNLE9BQU8saUNBQWlDO0lBTTVDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsR0FBeUI7UUFDakMsSUFBSSxD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cUJBQzVFO3lFQWVRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25QaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JDYWxlbmRhciwgTmdiQ2FsZW5kYXJQZXJzaWFuLCBOZ2JEYXRlLCBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCBOZ2JEYXRlU3RydWN0LCBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSmFsYWxpRGF0ZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEkxOG4sIExhbmd1YWdlVHlwZSwgWXNEYXRlUGFyc2VyRm9ybWF0dGVyU2VydmljZSwgWXNEYXRlcGlja2VySTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3lzLWRhdGVwaWNrZXItcG9wdXAtcGVyc2lhbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdiRGF0ZXBpY2tlck1vZHVsZSwgRm9ybXNNb2R1bGUsIEpzb25QaXBlLCBOZ0lmXSxcclxuICB0ZW1wbGF0ZVVybDogJy4veXMtZGF0ZXBpY2tlci1wb3B1cC1wZXJzaWFuLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi95cy1kYXRlcGlja2VyLXBvcHVwLXBlcnNpYW4uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFlzRGF0ZXBpY2tlclBvcHVwUGVyc2lhbkNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgSTE4bixcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhclBlcnNpYW4gfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZXBpY2tlckkxOG4sIHVzZUNsYXNzOiBZc0RhdGVwaWNrZXJJMThuU2VydmljZSB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCB1c2VDbGFzczogWXNEYXRlUGFyc2VyRm9ybWF0dGVyU2VydmljZSB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWXNEYXRlcGlja2VyUG9wdXBQZXJzaWFuQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBjYWxlbmRhciA9IGluamVjdChOZ2JDYWxlbmRhcik7XHJcbiAgdG9kYXkgPSBpbmplY3QoTmdiQ2FsZW5kYXIpLmdldFRvZGF5KCk7XHJcblxyXG4gIF92YWx1ZTogTmdiRGF0ZVN0cnVjdCB8IG51bGwgPSBudWxsO1xyXG4gIGdldCB2YWx1ZSgpOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRhaW5lcjogXCJib2R5XCIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBmaXJzdERheU9mV2VlazogbnVtYmVyID0gNjtcclxuICBASW5wdXQoKSB3ZWVrZW5kOiBudW1iZXJbXSA9IFs1XTtcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nID0gTGFuZ3VhZ2VUeXBlW0xhbmd1YWdlVHlwZS5mYV07XHJcbiAgQElucHV0KClcclxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcbiAgc2V0IGxhbmd1YWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2xhbmd1YWdlID0gdmFsdWU7XHJcbiAgICB0aGlzLmkxOE4ubGFuZ3VhZ2UgPSB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzRm9vdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbG9zZUxhYmVsOiBzdHJpbmcgPSBcItio2LPYqtmGXCI7XHJcbiAgQElucHV0KCkgdG9kYXlMYWJlbDogc3RyaW5nID0gXCLYp9mF2LHZiNiyXCI7XHJcbiAgQElucHV0KCkgZm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgY2FsZW5kYXJJY29uQ2xhc3M6IHN0cmluZyA9IFwiZmEtc29saWQgZmEtY2FsZW5kYXItZGF5c1wiO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH1cclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGkxOE46IEkxOG4pIHtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBMYW5ndWFnZVR5cGVbTGFuZ3VhZ2VUeXBlLmZhXTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghb2JqKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGRhdGU6IERhdGUgPSBvYmo7XHJcbiAgICBsZXQgcGVyc2lhbkRhdGU6IG51bWJlcltdID0gSmFsYWxpRGF0ZS5ncmVnb3JpYW5Ub0phbGFsaShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIGRhdGUuZ2V0RGF0ZSgpKTtcclxuICAgIHRoaXMudmFsdWUgPSB7IHllYXI6IHBlcnNpYW5EYXRlWzBdLCBtb250aDogcGVyc2lhbkRhdGVbMV0sIGRheTogcGVyc2lhbkRhdGVbMl0gfTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgbWFya0Rpc2FibGVkID0gKGRhdGU6IE5nYkRhdGUsIGN1cnJlbnQ/OiB7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9KSA9PiBkYXRlLm1vbnRoICE9PSBjdXJyZW50Py5tb250aDtcclxuICBpc1dlZWtlbmQgPSAoZGF0ZTogTmdiRGF0ZSkgPT4gdGhpcy53ZWVrZW5kLmluY2x1ZGVzKHRoaXMuY2FsZW5kYXIuZ2V0V2Vla2RheShkYXRlKSk7XHJcblxyXG4gIHZhbHVlQ2hhbmdlZChuZXdEYXRlOiBOZ2JEYXRlU3RydWN0IHwgc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgaWYgKG5ld0RhdGUpIHtcclxuICAgICAgaWYgKHR5cGVvZiBuZXdEYXRlID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgbGV0IHRlbXAgPSBuZXdEYXRlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgbGV0IGNvbnZlcnRlZERhdGU6IG51bWJlcltdID0gSmFsYWxpRGF0ZS5qYWxhbGlUb0dyZWdvcmlhbigrdGVtcFswXSwgKCt0ZW1wWzFdKSAtIDEsICt0ZW1wWzJdKTtcclxuICAgICAgICBsZXQgcmVzOiBEYXRlID0gbmV3IERhdGUoK2NvbnZlcnRlZERhdGVbMF0sICgrY29udmVydGVkRGF0ZVsxXSkgLSAxLCArY29udmVydGVkRGF0ZVsyXSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShyZXMpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHJlcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGNvbnZlcnRlZERhdGU6IG51bWJlcltdID0gSmFsYWxpRGF0ZS5qYWxhbGlUb0dyZWdvcmlhbihuZXdEYXRlLnllYXIsIG5ld0RhdGUubW9udGgsIG5ld0RhdGUuZGF5KTtcclxuICAgICAgICB2YXIgcmVzOiBEYXRlID0gbmV3IERhdGUoK2NvbnZlcnRlZERhdGVbMF0sICtjb252ZXJ0ZWREYXRlWzFdIC0gMSwgK2NvbnZlcnRlZERhdGVbMl0pO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UocmVzKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZChyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFRvZGF5KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudG9kYXk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59IiwiPGZvcm0gY2xhc3M9XCJyb3cgcm93LWNvbHMtc20tYXV0b1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cInl5eXkvbW0vZGRcIiBuYW1lPVwiZHBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgI2RhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiBbbWFya0Rpc2FibGVkXT1cIm1hcmtEaXNhYmxlZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIiBbZGF5VGVtcGxhdGVdPVwiY3VzdG9tRGF5XCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlQ2hhbmdlZCh2YWx1ZSlcIiAvPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJkYXRlcGlja2VyLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2NhbGVuZGFySWNvbkNsYXNzfX1cIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY3VzdG9tRGF5IGxldC1kYXRlIGxldC1jdXJyZW50TW9udGg9XCJjdXJyZW50TW9udGhcIiBsZXQtc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiIGxldC1kaXNhYmxlZD1cImRpc2FibGVkXCJcclxuICAgIGxldC1mb2N1c2VkPVwiZm9jdXNlZFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjdXN0b20tZGF5XCIgW2NsYXNzLndlZWtlbmRdPVwiaXNXZWVrZW5kKGRhdGUpXCIgW2NsYXNzLmZvY3VzZWRdPVwiZm9jdXNlZFwiIFtjbGFzcy5iZy1wcmltYXJ5XT1cInNlbGVjdGVkXCJcclxuICAgICAgICBbY2xhc3MuaGlkZGVuXT1cImRhdGUubW9udGggIT09IGN1cnJlbnRNb250aFwiIFtjbGFzcy50ZXh0LW11dGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAge3sgZGF0ZS5kYXkgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICA8c3BhbiAqbmdJZj1cImlzRm9vdGVyXCI+XHJcbiAgICAgICAgPGhyIGNsYXNzPVwibXktMFwiIC8+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAge3tmb290ZXJ9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFmb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbS0yIGZsb2F0LXN0YXJ0XCIgKGNsaWNrKT1cInNldFRvZGF5KCk7IGRhdGVwaWNrZXIuY2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj57e3RvZGF5TGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMiBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGF0ZXBpY2tlci5jbG9zZSgpXCI+e3tjbG9zZUxhYmVsfX08L2J1dHRvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
package/esm2022/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.mjs
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { JsonPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { Component, Input, forwardRef, inject } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../services";
|
|
8
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
-
import * as i3 from "@angular/forms";
|
|
10
|
-
export class YsDatepickerRangePopupComponent {
|
|
11
|
-
get fromDate() { return this._fromDate; }
|
|
12
|
-
set fromDate(value) {
|
|
13
|
-
this._fromDate = value;
|
|
14
|
-
}
|
|
15
|
-
get toDate() { return this._toDate; }
|
|
16
|
-
set toDate(value) {
|
|
17
|
-
this._toDate = value;
|
|
18
|
-
}
|
|
19
|
-
get language() {
|
|
20
|
-
return this._language;
|
|
21
|
-
}
|
|
22
|
-
set language(value) {
|
|
23
|
-
this._language = value;
|
|
24
|
-
this.i18N.language = this._language;
|
|
25
|
-
}
|
|
26
|
-
constructor(i18N) {
|
|
27
|
-
this.i18N = i18N;
|
|
28
|
-
this.calendar = inject(NgbCalendar);
|
|
29
|
-
this.formatter = inject(NgbDateParserFormatter);
|
|
30
|
-
this.today = inject(NgbCalendar).getToday();
|
|
31
|
-
this.hoveredDate = null;
|
|
32
|
-
this._fromDate = null;
|
|
33
|
-
this._toDate = null;
|
|
34
|
-
this.container = null;
|
|
35
|
-
this.firstDayOfWeek = 1;
|
|
36
|
-
this.weekend = [6, 7];
|
|
37
|
-
this._language = LanguageType[LanguageType.en];
|
|
38
|
-
this.isFooter = true;
|
|
39
|
-
this.closeLabel = "Close";
|
|
40
|
-
this.todayLabel = "Today";
|
|
41
|
-
this.footer = null;
|
|
42
|
-
this.calendarIconClass = "fa-solid fa-calendar-days";
|
|
43
|
-
this.disabled = false;
|
|
44
|
-
this.onChange = () => { };
|
|
45
|
-
this.onTouched = () => { };
|
|
46
|
-
this.markDisabled = (date, current) => date.month !== current?.month;
|
|
47
|
-
this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
|
|
48
|
-
this.language = LanguageType[LanguageType.en];
|
|
49
|
-
}
|
|
50
|
-
writeValue(obj) {
|
|
51
|
-
if (!obj) {
|
|
52
|
-
this.fromDate = null;
|
|
53
|
-
this.toDate = null;
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
let d = obj;
|
|
57
|
-
var fDate = d.fromDate;
|
|
58
|
-
this.fromDate = { year: fDate.getFullYear(), month: (fDate.getMonth() + 1), day: fDate.getDate() };
|
|
59
|
-
var tDate = d.toDate;
|
|
60
|
-
this.toDate = { year: tDate.getFullYear(), month: (tDate.getMonth() + 1), day: tDate.getDate() };
|
|
61
|
-
}
|
|
62
|
-
registerOnChange(fn) {
|
|
63
|
-
this.onChange = fn;
|
|
64
|
-
}
|
|
65
|
-
registerOnTouched(fn) {
|
|
66
|
-
this.onTouched = fn;
|
|
67
|
-
}
|
|
68
|
-
setDisabledState(isDisabled) {
|
|
69
|
-
this.disabled = isDisabled;
|
|
70
|
-
}
|
|
71
|
-
onDateSelection(date) {
|
|
72
|
-
if (!this.fromDate && !this.toDate) {
|
|
73
|
-
this.fromDate = date;
|
|
74
|
-
}
|
|
75
|
-
else if (this.fromDate && !this.toDate && date && date.after(this.fromDate)) {
|
|
76
|
-
this.toDate = date;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.toDate = null;
|
|
80
|
-
this.fromDate = date;
|
|
81
|
-
}
|
|
82
|
-
this.valueChanged();
|
|
83
|
-
}
|
|
84
|
-
isHovered(date) {
|
|
85
|
-
return (this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate));
|
|
86
|
-
}
|
|
87
|
-
isInside(date) {
|
|
88
|
-
return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
|
|
89
|
-
}
|
|
90
|
-
isRange(date) {
|
|
91
|
-
return (date.equals(this.fromDate) ||
|
|
92
|
-
(this.toDate && date.equals(this.toDate)) ||
|
|
93
|
-
this.isInside(date) ||
|
|
94
|
-
this.isHovered(date));
|
|
95
|
-
}
|
|
96
|
-
validateInput(currentValue, input) {
|
|
97
|
-
const parsed = this.formatter.parse(input);
|
|
98
|
-
return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;
|
|
99
|
-
}
|
|
100
|
-
valueChanged() {
|
|
101
|
-
const fromDateTemp = this.fromDate ? new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day) : null;
|
|
102
|
-
const toDateTemp = this.toDate ? new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day) : null;
|
|
103
|
-
const res = { fromDate: fromDateTemp, toDate: toDateTemp };
|
|
104
|
-
this.onChange(res);
|
|
105
|
-
this.onTouched(res);
|
|
106
|
-
}
|
|
107
|
-
setToday() {
|
|
108
|
-
this.fromDate = this.today;
|
|
109
|
-
this.toDate = this.today;
|
|
110
|
-
this.valueChanged();
|
|
111
|
-
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerRangePopupComponent, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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: [
|
|
114
|
-
{
|
|
115
|
-
provide: NG_VALUE_ACCESSOR,
|
|
116
|
-
useExisting: forwardRef(() => YsDatepickerRangePopupComponent),
|
|
117
|
-
multi: true
|
|
118
|
-
},
|
|
119
|
-
I18n,
|
|
120
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
121
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
122
|
-
], 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 <!-- [class.bg-primary]=\"selected\" -->\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)=\"setToday(); datepicker.close()\"\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"] }] }); }
|
|
123
|
-
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerRangePopupComponent, decorators: [{
|
|
125
|
-
type: Component,
|
|
126
|
-
args: [{ selector: 'ys-datepicker-range-popup', standalone: true, imports: [NgbDatepickerModule, FormsModule, JsonPipe, NgIf], providers: [
|
|
127
|
-
{
|
|
128
|
-
provide: NG_VALUE_ACCESSOR,
|
|
129
|
-
useExisting: forwardRef(() => YsDatepickerRangePopupComponent),
|
|
130
|
-
multi: true
|
|
131
|
-
},
|
|
132
|
-
I18n,
|
|
133
|
-
{ provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
|
|
134
|
-
{ provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
|
|
135
|
-
], 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 <!-- [class.bg-primary]=\"selected\" -->\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)=\"setToday(); datepicker.close()\"\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"] }]
|
|
136
|
-
}], ctorParameters: () => [{ type: i1.I18n }], propDecorators: { container: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], firstDayOfWeek: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], weekend: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], language: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], isFooter: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], closeLabel: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], todayLabel: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], footer: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], calendarIconClass: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], disabled: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci1yYW5nZS1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy95cy1kYXRlcGlja2VyLXJhbmdlLXBvcHVwL3lzLWRhdGVwaWNrZXItcmFuZ2UtcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveW9venNvZnQveW9venNvZnQtbmcvZGF0ZXBpY2tlci9zcmMveXMtZGF0ZXBpY2tlci1yYW5nZS1wb3B1cC95cy1kYXRlcGlja2VyLXJhbmdlLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEksT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBbUJ4RyxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLElBQUksUUFBUSxLQUFxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pELElBQUksUUFBUSxDQUFDLEtBQXFCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxJQUFJLE1BQU0sS0FB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QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsQ0FBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsSUFBSTt3QkFDSixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7d0JBQ2pFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTtxQkFDNUU7eUVBc0JRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25QaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JDYWxlbmRhciwgTmdiRGF0ZSwgTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgTmdiRGF0ZXBpY2tlckkxOG4sIE5nYkRhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEkxOG4sIExhbmd1YWdlVHlwZSwgWXNEYXRlUGFyc2VyRm9ybWF0dGVyU2VydmljZSwgWXNEYXRlcGlja2VySTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3lzLWRhdGVwaWNrZXItcmFuZ2UtcG9wdXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nYkRhdGVwaWNrZXJNb2R1bGUsIEZvcm1zTW9kdWxlLCBKc29uUGlwZSwgTmdJZl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3lzLWRhdGVwaWNrZXItcmFuZ2UtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3lzLWRhdGVwaWNrZXItcmFuZ2UtcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFlzRGF0ZXBpY2tlclJhbmdlUG9wdXBDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIEkxOG4sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogWXNEYXRlcGlja2VySTE4blNlcnZpY2UgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IFlzRGF0ZVBhcnNlckZvcm1hdHRlclNlcnZpY2UgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFlzRGF0ZXBpY2tlclJhbmdlUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIGNhbGVuZGFyID0gaW5qZWN0KE5nYkNhbGVuZGFyKTtcclxuICBmb3JtYXR0ZXIgPSBpbmplY3QoTmdiRGF0ZVBhcnNlckZvcm1hdHRlcik7XHJcbiAgdG9kYXkgPSBpbmplY3QoTmdiQ2FsZW5kYXIpLmdldFRvZGF5KCk7XHJcblxyXG4gIGhvdmVyZWREYXRlOiBOZ2JEYXRlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF9mcm9tRGF0ZTogTmdiRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIGdldCBmcm9tRGF0ZSgpOiBOZ2JEYXRlIHwgbnVsbCB7IHJldHVybiB0aGlzLl9mcm9tRGF0ZTsgfVxyXG4gIHNldCBmcm9tRGF0ZSh2YWx1ZTogTmdiRGF0ZSB8IG51bGwpIHtcclxuICAgIHRoaXMuX2Zyb21EYXRlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBfdG9EYXRlOiBOZ2JEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IHRvRGF0ZSgpOiBOZ2JEYXRlIHwgbnVsbCB7IHJldHVybiB0aGlzLl90b0RhdGU7IH1cclxuICBzZXQgdG9EYXRlKHZhbHVlOiBOZ2JEYXRlIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fdG9EYXRlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBjb250YWluZXI6IFwiYm9keVwiIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgd2Vla2VuZDogbnVtYmVyW10gPSBbNiwgN107XHJcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZyA9IExhbmd1YWdlVHlwZVtMYW5ndWFnZVR5cGUuZW5dO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG4gIHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5pMThOLmxhbmd1YWdlID0gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpc0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xvc2VMYWJlbDogc3RyaW5nID0gXCJDbG9zZVwiO1xyXG4gIEBJbnB1dCgpIHRvZGF5TGFiZWw6IHN0cmluZyA9IFwiVG9kYXlcIjtcclxuICBASW5wdXQoKSBmb290ZXI6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBjYWxlbmRhckljb25DbGFzczogc3RyaW5nID0gXCJmYS1zb2xpZCBmYS1jYWxlbmRhci1kYXlzXCI7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfVxyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4TjogSTE4bikge1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9IExhbmd1YWdlVHlwZVtMYW5ndWFnZVR5cGUuZW5dO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgdGhpcy5mcm9tRGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudG9EYXRlID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkOiBEYXRlUmFuZ2UgPSBvYmo7XHJcblxyXG4gICAgdmFyIGZEYXRlOiBEYXRlID0gZC5mcm9tRGF0ZSE7XHJcbiAgICB0aGlzLmZyb21EYXRlID0gPE5nYkRhdGU+eyB5ZWFyOiBmRGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aDogKGZEYXRlLmdldE1vbnRoKCkgKyAxKSwgZGF5OiBmRGF0ZS5nZXREYXRlKCkgfTtcclxuXHJcbiAgICB2YXIgdERhdGU6IERhdGUgPSBkLnRvRGF0ZSE7XHJcbiAgICB0aGlzLnRvRGF0ZSA9IDxOZ2JEYXRlPnsgeWVhcjogdERhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGg6ICh0RGF0ZS5nZXRNb250aCgpICsgMSksIGRheTogdERhdGUuZ2V0RGF0ZSgpIH07XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uRGF0ZVNlbGVjdGlvbihkYXRlOiBOZ2JEYXRlKSB7XHJcbiAgICBpZiAoIXRoaXMuZnJvbURhdGUgJiYgIXRoaXMudG9EYXRlKSB7XHJcbiAgICAgIHRoaXMuZnJvbURhdGUgPSBkYXRlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZyb21EYXRlICYmICF0aGlzLnRvRGF0ZSAmJiBkYXRlICYmIGRhdGUuYWZ0ZXIodGhpcy5mcm9tRGF0ZSkpIHtcclxuICAgICAgdGhpcy50b0RhdGUgPSBkYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50b0RhdGUgPSBudWxsO1xyXG4gICAgICB0aGlzLmZyb21EYXRlID0gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbiAgaXNIb3ZlcmVkKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZnJvbURhdGUgJiYgIXRoaXMudG9EYXRlICYmIHRoaXMuaG92ZXJlZERhdGUgJiYgZGF0ZS5hZnRlcih0aGlzLmZyb21EYXRlKSAmJiBkYXRlLmJlZm9yZSh0aGlzLmhvdmVyZWREYXRlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzSW5zaWRlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLnRvRGF0ZSAmJiBkYXRlLmFmdGVyKHRoaXMuZnJvbURhdGUpICYmIGRhdGUuYmVmb3JlKHRoaXMudG9EYXRlKTtcclxuICB9XHJcblxyXG4gIGlzUmFuZ2UoZGF0ZTogTmdiRGF0ZSkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGF0ZS5lcXVhbHModGhpcy5mcm9tRGF0ZSkgfHxcclxuICAgICAgKHRoaXMudG9EYXRlICYmIGRhdGUuZXF1YWxzKHRoaXMudG9EYXRlKSkgfHxcclxuICAgICAgdGhpcy5pc0luc2lkZShkYXRlKSB8fFxyXG4gICAgICB0aGlzLmlzSG92ZXJlZChkYXRlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG1hcmtEaXNhYmxlZCA9IChkYXRlOiBOZ2JEYXRlLCBjdXJyZW50PzogeyBtb250aDogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfSkgPT4gZGF0ZS5tb250aCAhPT0gY3VycmVudD8ubW9udGg7XHJcbiAgaXNXZWVrZW5kID0gKGRhdGU6IE5nYkRhdGUpID0+IHRoaXMud2Vla2VuZC5pbmNsdWRlcyh0aGlzLmNhbGVuZGFyLmdldFdlZWtkYXkoZGF0ZSkpO1xyXG5cclxuICB2YWxpZGF0ZUlucHV0KGN1cnJlbnRWYWx1ZTogTmdiRGF0ZSB8IG51bGwsIGlucHV0OiBzdHJpbmcpOiBOZ2JEYXRlIHwgbnVsbCB7XHJcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLmZvcm1hdHRlci5wYXJzZShpbnB1dCk7XHJcbiAgICByZXR1cm4gcGFyc2VkICYmIHRoaXMuY2FsZW5kYXIuaXNWYWxpZChOZ2JEYXRlLmZyb20ocGFyc2VkKSkgPyBOZ2JEYXRlLmZyb20ocGFyc2VkKSA6IGN1cnJlbnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGZyb21EYXRlVGVtcDogRGF0ZSB8IG51bGwgPSB0aGlzLmZyb21EYXRlID8gbmV3IERhdGUodGhpcy5mcm9tRGF0ZS55ZWFyLCB0aGlzLmZyb21EYXRlLm1vbnRoIC0gMSwgdGhpcy5mcm9tRGF0ZS5kYXkpIDogbnVsbDtcclxuICAgIGNvbnN0IHRvRGF0ZVRlbXA6IERhdGUgfCBudWxsID0gdGhpcy50b0RhdGUgPyBuZXcgRGF0ZSh0aGlzLnRvRGF0ZS55ZWFyLCB0aGlzLnRvRGF0ZS5tb250aCAtIDEsIHRoaXMudG9EYXRlLmRheSkgOiBudWxsO1xyXG4gICAgY29uc3QgcmVzID0gPERhdGVSYW5nZT57IGZyb21EYXRlOiBmcm9tRGF0ZVRlbXAsIHRvRGF0ZTogdG9EYXRlVGVtcCB9O1xyXG4gICAgdGhpcy5vbkNoYW5nZShyZXMpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQocmVzKTtcclxuICB9XHJcblxyXG4gIHNldFRvZGF5KCkge1xyXG4gICAgdGhpcy5mcm9tRGF0ZSA9IHRoaXMudG9kYXk7XHJcbiAgICB0aGlzLnRvRGF0ZSA9IHRoaXMudG9kYXk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgcm93LWNvbHMtc20tYXV0b1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcC1oaWRkZW4gcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT1cImRhdGVwaWNrZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5nYkRhdGVwaWNrZXIgI2RhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIChkYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdGlvbigkZXZlbnQpXCIgW2Rpc3BsYXlNb250aHNdPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RheVRlbXBsYXRlXT1cImN1c3RvbURheVwiIG91dHNpZGVEYXlzPVwiaGlkZGVuXCIgW3N0YXJ0RGF0ZV09XCJmcm9tRGF0ZSFcIiB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyXT1cImNvbnRhaW5lclwiIFttYXJrRGlzYWJsZWRdPVwibWFya0Rpc2FibGVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0ICNkcEZyb21EYXRlIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJ5eXl5L21tL2RkXCIgbmFtZT1cImRwRnJvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlci5mb3JtYXQoZnJvbURhdGUpXCIgKGlucHV0KT1cImZyb21EYXRlID0gdmFsaWRhdGVJbnB1dChmcm9tRGF0ZSwgZHBGcm9tRGF0ZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgcmVhZG9ubHkgLz5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiZGF0ZXBpY2tlci50b2dnbGUoKVwiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tjYWxlbmRhckljb25DbGFzc319XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgI2RwVG9EYXRlIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJ5eXl5L21tL2RkXCIgbmFtZT1cImRwVG9EYXRlXCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtYXR0ZXIuZm9ybWF0KHRvRGF0ZSlcIiAoaW5wdXQpPVwidG9EYXRlID0gdmFsaWRhdGVJbnB1dCh0b0RhdGUsIGRwVG9EYXRlLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiByZWFkb25seSAvPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJkYXRlcGlja2VyLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2NhbGVuZGFySWNvbkNsYXNzfX1cIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY3VzdG9tRGF5IGxldC1kYXRlIGxldC1jdXJyZW50TW9udGg9XCJjdXJyZW50TW9udGhcIiBsZXQtc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiIGxldC1kaXNhYmxlZD1cImRpc2FibGVkXCJcclxuICAgIGxldC1mb2N1c2VkPVwiZm9jdXNlZFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjdXN0b20tZGF5XCIgW2NsYXNzLndlZWtlbmRdPVwiaXNXZWVrZW5kKGRhdGUpXCIgW2NsYXNzLmZvY3VzZWRdPVwiZm9jdXNlZFwiXHJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCJkYXRlLm1vbnRoICE9PSBjdXJyZW50TW9udGhcIiBbY2xhc3MudGV4dC1tdXRlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5yYW5nZV09XCJpc1JhbmdlKGRhdGUpXCJcclxuICAgICAgICBbY2xhc3MuZmFkZWRdPVwiaXNIb3ZlcmVkKGRhdGUpIHx8IGlzSW5zaWRlKGRhdGUpXCIgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZERhdGUgPSBkYXRlXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkRGF0ZSA9IG51bGxcIj5cclxuICAgICAgICB7eyBkYXRlLmRheSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPCEtLSBbY2xhc3MuYmctcHJpbWFyeV09XCJzZWxlY3RlZFwiIC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgIDxzcGFuICpuZ0lmPVwiaXNGb290ZXJcIj5cclxuICAgICAgICA8aHIgY2xhc3M9XCJteS0wXCIgLz5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICB7e2Zvb3Rlcn19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgZmxvYXQtc3RhcnRcIiAoY2xpY2spPVwic2V0VG9kYXkoKTsgZGF0ZXBpY2tlci5jbG9zZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPnt7dG9kYXlMYWJlbH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gbS0yIGZsb2F0LWVuZFwiIChjbGljayk9XCJkYXRlcGlja2VyLmNsb3NlKClcIj57e2Nsb3NlTGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|