Skip to content

Commit d71c193

Browse files
Mohammad DayyanMohammad Dayyan
authored andcommitted
preparation
1 parent 5e07713 commit d71c193

4 files changed

Lines changed: 57 additions & 40 deletions

File tree

demo/demo.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,20 +136,22 @@ function optionOnChange(optionName, value) {
136136
dtp1.updateOptions({
137137
toDate: false,
138138
fromDate: false,
139-
rangeSelector: true,
139+
rangeSelector: value,
140140
});
141141
dtp2.updateOptions({
142142
toDate: false,
143143
fromDate: false,
144+
rangeSelector: value,
144145
});
145146
inLineDtp1.updateOptions({
146147
toDate: false,
147148
fromDate: false,
148-
rangeSelector: true,
149+
rangeSelector: value,
149150
});
150151
inLineDtp2.updateOptions({
151152
toDate: false,
152153
fromDate: false,
154+
rangeSelector: value,
153155
});
154156
break;
155157

dist/mds.bs.datetimepicker.js

Lines changed: 25 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/mds.bs.datetimepicker.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/mds.bs.datetimepicker.ts

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export class MdsPersianDateTimePicker {
183183
// #region Template
184184

185185
private modalHtmlTemplate = `<div data-mds-dtp data-mds-dtp-guid="{{guid}}" class="modal fade mds-bs-persian-datetime-picker-modal" tabindex="-1" role="dialog" aria-hidden="true">
186-
<div class="modal-dialog" data-button-selector>
186+
<div class="modal-dialog">
187187
<div class="modal-content">
188188
<div class="modal-header" data-mds-dtp-title="true">
189189
<h5 class="modal-title">Modal title</h5>
@@ -485,16 +485,7 @@ data-bs-toggle="dropdown" aria-expanded="false">
485485
});
486486
datePickerBodyHtml = tempDiv.innerHTML;
487487
if (setting.modalMode == true) {
488-
const prevModalElement = this.getModal();
489-
if (prevModalElement == null) {
490-
let modalHtml = this.modalHtmlTemplate;
491-
modalHtml = modalHtml.replace(/\{\{guid\}\}/img, this.guid);
492-
tempDiv = document.createElement('div');
493-
tempDiv.innerHTML = modalHtml;
494-
tempDiv.querySelector('[data-mds-dtp-title] .modal-title').innerHTML = title;
495-
tempDiv.querySelector('[data-name="mds-dtp-body"]').innerHTML = datePickerBodyHtml;
496-
document.querySelector('body').appendChild(tempDiv);
497-
}
488+
this.setModalHtml(title, datePickerBodyHtml, setting);
498489
this.bsPopover = null;
499490
setTimeout(() => {
500491
this.bsModal = new Modal(this.getModal());
@@ -977,6 +968,28 @@ data-bs-toggle="dropdown" aria-expanded="false">
977968
private getModal(): Element {
978969
return document.querySelector(`.modal[data-mds-dtp-guid="${this.guid}"]`);
979970
}
971+
private setModalHtml(title: string, datePickerBodyHtml: string, setting: MdsPersianDateTimePickerSetting): void {
972+
const prevModalElement = this.getModal();
973+
if (prevModalElement == null) {
974+
let modalHtml = this.modalHtmlTemplate;
975+
modalHtml = modalHtml.replace(/\{\{guid\}\}/img, this.guid);
976+
const tempDiv = document.createElement('div');
977+
tempDiv.innerHTML = modalHtml;
978+
tempDiv.querySelector('[data-mds-dtp-title] .modal-title').innerHTML = title;
979+
tempDiv.querySelector('[data-name="mds-dtp-body"]').innerHTML = datePickerBodyHtml;
980+
document.querySelector('body').appendChild(tempDiv);
981+
} else {
982+
prevModalElement.querySelector('[data-mds-dtp-title] .modal-title').innerHTML = title;
983+
prevModalElement.querySelector('[data-name="mds-dtp-body"]').innerHTML = datePickerBodyHtml;
984+
}
985+
const modalDialogElement = document.querySelector(`[data-mds-dtp-guid="${this.guid}"] .modal-dialog`);
986+
if (setting.rangeSelector) {
987+
if (setting.rangeSelectorMonthsToShow[0] > 0 || setting.rangeSelectorMonthsToShow[1] > 0)
988+
modalDialogElement.classList.add('modal-xl');
989+
else
990+
modalDialogElement.classList.remove('modal-xl');
991+
}
992+
}
980993
private getYearsBoxBodyHtml(setting: MdsPersianDateTimePickerSetting, yearToStart: number): MdsPersianDateTimePickerYearToSelect {
981994
// بدست آوردن اچ تی ام ال انتخاب سال
982995
// yearToStart سال شروع
@@ -1517,7 +1530,7 @@ data-bs-toggle="dropdown" aria-expanded="false">
15171530
yearListBox.classList.add('w-0');
15181531
yearListBox.innerHTML = '';
15191532
}
1520-
};
1533+
}
15211534
private showYearsBox = (element: Element): void => {
15221535
const instance = MdsPersianDateTimePicker.getInstance(element);
15231536
const setting = instance.setting;
@@ -1552,7 +1565,7 @@ data-bs-toggle="dropdown" aria-expanded="false">
15521565
else
15531566
element.closest('[data-mds-dtp]').querySelector('[data-mds-dtp-year-list-box]').innerHTML = yearsToSelectObject.html;
15541567
this.setPopoverHeaderHtml(element, setting, this.getYearsBoxHeaderHtml(setting, yearsToSelectObject.yearStart, yearsToSelectObject.yearEnd));
1555-
};
1568+
}
15561569
private getPopoverHeaderTitle(setting: MdsPersianDateTimePickerSetting): string {
15571570
let selectedDateToShowJson: GetDateTimeJson1;
15581571
let title = '';
@@ -2108,12 +2121,6 @@ data-bs-toggle="dropdown" aria-expanded="false">
21082121
// #endregion
21092122
}
21102123

2111-
enum AmPmEnum {
2112-
am,
2113-
pm,
2114-
none
2115-
}
2116-
21172124
interface GetDateTimeJson1 {
21182125
year: number,
21192126
month: number,
@@ -2243,7 +2250,7 @@ export class MdsPersianDateTimePickerSetting {
22432250
/**
22442251
* تعداد ماه های قابل نمایش در قابلیت انتخاب بازه تاریخی
22452252
*/
2246-
rangeSelectorMonthsToShow = [0, 0];
2253+
rangeSelectorMonthsToShow: number[] = [0, 0];
22472254
/**
22482255
* تاریخ های انتخاب شده در مد بازه انتخابی
22492256
*/

0 commit comments

Comments
 (0)