@wavemaker/app-ng-runtime 11.4.0-next.25501 → 11.4.0-next.25701
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.
- app-ng-runtime/build-task/basic/tree/tree.build.d.ts +1 -2
- app-ng-runtime/build-task/bundles/index.umd.js +9 -11
- app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
- app-ng-runtime/build-task/esm2015/basic/tree/tree.build.js +3 -4
- app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +3 -3
- app-ng-runtime/build-task/esm2015/navigation/popover/popover.build.js +3 -3
- app-ng-runtime/build-task/fesm2015/index.js +9 -11
- app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +29 -4
- app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/base/esm2015/public_api.js +2 -2
- app-ng-runtime/components/base/esm2015/utils/widget-utils.js +22 -4
- app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
- app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
- app-ng-runtime/components/base/fesm2015/index.js +30 -6
- app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/base/index.metadata.json +1 -1
- app-ng-runtime/components/base/public_api.d.ts +1 -1
- app-ng-runtime/components/base/utils/widget-utils.d.ts +8 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -2
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/esm2015/rich-text-editor.component.js +3 -3
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js +2 -2
- app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +280 -256
- app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
- app-ng-runtime/components/basic/tree/esm2015/tree.component.js +322 -0
- app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
- app-ng-runtime/components/basic/tree/fesm2015/index.js +260 -248
- app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
- app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
- app-ng-runtime/components/basic/tree/tree.component.d.ts +34 -0
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +39 -23
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +8 -1
- app-ng-runtime/components/containers/tabs/esm2015/tabs.animator.js +33 -13
- app-ng-runtime/components/containers/tabs/fesm2015/index.js +40 -13
- app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/containers/tabs/tabs.animator.d.ts +5 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
- app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
- app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
- app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
- app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/data/form/index.metadata.json +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +63 -48
- app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/data/list/esm2015/list.component.js +61 -46
- app-ng-runtime/components/data/list/fesm2015/index.js +60 -45
- app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/data/list/index.metadata.json +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +22 -5
- app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +23 -6
- app-ng-runtime/components/data/pagination/fesm2015/index.js +22 -5
- app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
- app-ng-runtime/components/data/pagination/pagination.component.d.ts +1 -0
- app-ng-runtime/components/data/table/bundles/index.umd.js +66 -13
- app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/data/table/esm2015/table-filter.directive.js +3 -2
- app-ng-runtime/components/data/table/esm2015/table.component.js +63 -13
- app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
- app-ng-runtime/components/data/table/fesm2015/index.js +66 -13
- app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/data/table/index.metadata.json +1 -1
- app-ng-runtime/components/data/table/table.component.d.ts +9 -0
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -0
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +17 -3
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +18 -5
- app-ng-runtime/components/dialogs/default/fesm2015/index.js +17 -4
- app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +5 -0
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +97 -32
- app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/input/epoch/date-time/date-time-picker.component.d.ts +1 -0
- app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +73 -26
- app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +3 -4
- app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +31 -11
- app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
- app-ng-runtime/components/input/epoch/fesm2015/index.js +105 -39
- app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
- app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
- app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
- app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
- app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -1
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
- app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +5 -3
- app-ng-runtime/components/navigation/popover/fesm2015/index.js +4 -2
- app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +7 -1
- app-ng-runtime/core/bundles/index.umd.js.map +1 -1
- app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
- app-ng-runtime/core/fesm2015/index.js +7 -1
- app-ng-runtime/core/fesm2015/index.js.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +24 -6
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js.map +1 -1
- app-ng-runtime/mobile/components/page/default/esm2015/page.directive.js +20 -3
- app-ng-runtime/mobile/components/page/default/fesm2015/index.js +19 -2
- app-ng-runtime/mobile/components/page/default/fesm2015/index.js.map +1 -1
- app-ng-runtime/mobile/components/page/default/index.metadata.json +1 -1
- app-ng-runtime/mobile/components/page/default/page.directive.d.ts +4 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +2 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js.map +1 -1
- app-ng-runtime/mobile/core/esm2015/services/device.service.js +3 -2
- app-ng-runtime/mobile/core/fesm2015/index.js +2 -1
- app-ng-runtime/mobile/core/fesm2015/index.js.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +3 -2
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/esm2015/services/live-sync.service.js +4 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js +3 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +1 -0
- app-ng-runtime/runtime/base/bundles/index.umd.js.map +1 -1
- app-ng-runtime/runtime/base/esm2015/services/prefab-manager.service.js +2 -1
- app-ng-runtime/runtime/base/fesm2015/index.js +1 -0
- app-ng-runtime/runtime/base/fesm2015/index.js.map +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +117 -48
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +3 -3
- app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js +251 -0
- app-ng-runtime/variables/bundles/index.umd.js +19 -16
- app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
- app-ng-runtime/variables/esm2015/constants/variables.constants.js +3 -9
- app-ng-runtime/variables/esm2015/manager/action/notification-action.manager.js +5 -6
- app-ng-runtime/variables/esm2015/service/variables.service.js +8 -1
- app-ng-runtime/variables/fesm2015/index.js +13 -14
- app-ng-runtime/variables/fesm2015/index.js.map +1 -1
- app-ng-runtime/variables/index.metadata.json +1 -1
- app-ng-runtime/variables/service/variables.service.d.ts +4 -0
- app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +0 -310
- app-ng-runtime/components/basic/tree/tree.directive.d.ts +0 -35
|
@@ -45,22 +45,32 @@ class DateTimePickerComponent {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
validateSelectedDate() {
|
|
48
|
-
var _a, _b, _c, _d, _e
|
|
48
|
+
var _a, _b, _c, _d, _e;
|
|
49
49
|
if (!this.changedValue) {
|
|
50
50
|
return true;
|
|
51
51
|
}
|
|
52
52
|
const cd = moment(this.changedValue);
|
|
53
|
-
|
|
53
|
+
const minDate = (_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate;
|
|
54
|
+
const maxDate = (_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.maxDate;
|
|
55
|
+
if (minDate
|
|
56
|
+
&& ((this.mode === 'DATE'
|
|
57
|
+
&& moment(minDate).startOf('day').toDate() > this.changedValue)
|
|
58
|
+
|| (this.mode !== 'DATE'
|
|
59
|
+
&& minDate > this.changedValue))) {
|
|
54
60
|
return false;
|
|
55
61
|
}
|
|
56
|
-
if (
|
|
62
|
+
if (maxDate
|
|
63
|
+
&& ((this.mode === 'DATE'
|
|
64
|
+
&& moment(maxDate).endOf('day').toDate() < this.changedValue)
|
|
65
|
+
|| (this.mode !== 'DATE'
|
|
66
|
+
&& maxDate < this.changedValue))) {
|
|
57
67
|
return false;
|
|
58
68
|
}
|
|
59
|
-
if (((
|
|
69
|
+
if (((_d = (_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.daysDisabled) === null || _d === void 0 ? void 0 : _d.indexOf(cd.day())) >= 0) {
|
|
60
70
|
return false;
|
|
61
71
|
}
|
|
62
72
|
const cdSt = cd.startOf('day').toDate().getTime();
|
|
63
|
-
if ((
|
|
73
|
+
if ((_e = this.excludedDatesToDisable) === null || _e === void 0 ? void 0 : _e.find(d => d.getTime() === cdSt)) {
|
|
64
74
|
return false;
|
|
65
75
|
}
|
|
66
76
|
return true;
|
|
@@ -113,6 +123,11 @@ class DateTimePickerComponent {
|
|
|
113
123
|
newVal.setMilliseconds(oldVal.getMilliseconds());
|
|
114
124
|
}
|
|
115
125
|
this.changedValue = newVal;
|
|
126
|
+
if (this.mode === 'DATE'
|
|
127
|
+
&& oldVal !== newVal
|
|
128
|
+
&& this.validateSelectedDate()) {
|
|
129
|
+
this.onOkClick();
|
|
130
|
+
}
|
|
116
131
|
}
|
|
117
132
|
onTimeUpdate(newVal) {
|
|
118
133
|
this.changedValue = newVal;
|
|
@@ -131,6 +146,10 @@ class DateTimePickerComponent {
|
|
|
131
146
|
this.triggerChange();
|
|
132
147
|
this.hideModal();
|
|
133
148
|
}
|
|
149
|
+
setToday() {
|
|
150
|
+
const today = moment().startOf('day').toDate();
|
|
151
|
+
this.onDateUpdate(today);
|
|
152
|
+
}
|
|
134
153
|
reset() {
|
|
135
154
|
this.changedValue = this._value;
|
|
136
155
|
}
|
|
@@ -191,15 +210,16 @@ DateTimePickerComponent.decorators = [
|
|
|
191
210
|
</div>
|
|
192
211
|
<div class="modal-footer">
|
|
193
212
|
<button
|
|
194
|
-
|
|
195
|
-
|
|
213
|
+
*ngIf="mode === 'DATE_TIME' || mode === 'DATE'"
|
|
214
|
+
class="btn btn-secondary today-btn"
|
|
215
|
+
(click)="setToday()">{{appLocale.MESSAGE_DATE_PICKER_TODAY || "Today" }}</button>
|
|
196
216
|
<button
|
|
197
217
|
class="btn btn-primary pull-right ok-btn"
|
|
218
|
+
*ngIf="mode === 'DATE_TIME' || mode === 'TIME'"
|
|
198
219
|
(click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>
|
|
199
220
|
<button
|
|
200
|
-
class="btn btn-secondary pull-right
|
|
201
|
-
(click)="
|
|
202
|
-
|
|
221
|
+
class="btn btn-secondary pull-right clear-btn"
|
|
222
|
+
(click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>
|
|
203
223
|
</div>
|
|
204
224
|
</div>
|
|
205
225
|
</ng-template>
|
|
@@ -344,6 +364,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
344
364
|
constructor(inj, WIDGET_CONFIG) {
|
|
345
365
|
super(inj, WIDGET_CONFIG);
|
|
346
366
|
this.isReadOnly = false;
|
|
367
|
+
this.clicked = false;
|
|
347
368
|
this.formatsByLocale = { 'timezone': '' };
|
|
348
369
|
/**
|
|
349
370
|
* This is an internal property used to map the containerClass, showWeekNumbers etc., to the bsDatepicker
|
|
@@ -359,7 +380,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
359
380
|
this.loadNativeDateInput = isMobile() && !this.showcustompicker;
|
|
360
381
|
}
|
|
361
382
|
get timeZone() { return this.inj.get(AbstractI18nService).getTimezone(this); }
|
|
362
|
-
;
|
|
363
383
|
/**
|
|
364
384
|
* returns true if the input value is default (i.e open date picker on input click)
|
|
365
385
|
* @param1 dropdownvalue, user selected value (by default datepicker opens on input click)
|
|
@@ -409,7 +429,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
409
429
|
};
|
|
410
430
|
}
|
|
411
431
|
/* WMS-18269 | Extending the existing validation for 'required' */
|
|
412
|
-
if (this[
|
|
432
|
+
if (this['show'] && this['required']) {
|
|
413
433
|
return !!c.value ? null : { required: true };
|
|
414
434
|
}
|
|
415
435
|
this.validateType = '';
|
|
@@ -535,6 +555,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
535
555
|
* @param isMouseEvent - boolean value represents the event is mouse event/ keyboard event
|
|
536
556
|
*/
|
|
537
557
|
setActiveDateFocus(newDate, isMouseEvent) {
|
|
558
|
+
this.setNextData(newDate);
|
|
538
559
|
const activeMonth = this.activeDate.getMonth();
|
|
539
560
|
// check for keyboard event
|
|
540
561
|
if (!isMouseEvent) {
|
|
@@ -549,14 +570,18 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
549
570
|
const newDay = newDate.getDate().toString();
|
|
550
571
|
_.filter($(`span:contains(${newDay})`).not('.is-other-month'), (obj) => {
|
|
551
572
|
if ($(obj).text() === newDay) {
|
|
573
|
+
if ($(obj).hasClass('selected')) {
|
|
574
|
+
$(obj).parent().attr('aria-selected', 'true');
|
|
575
|
+
}
|
|
552
576
|
$(obj).attr('aria-label', moment(newDate).format('dddd, MMMM Do YYYY'));
|
|
577
|
+
$('[bsdatepickerdaydecorator]').not('.is-other-month').attr('tabindex', '-1');
|
|
578
|
+
$(obj).attr('tabindex', '0');
|
|
553
579
|
$(obj).focus();
|
|
554
580
|
this.activeDate = newDate;
|
|
555
581
|
}
|
|
556
582
|
});
|
|
557
583
|
if (newDate.getMonth() === new Date().getMonth() && newDate.getFullYear() === new Date().getFullYear()) {
|
|
558
584
|
this.hightlightToday();
|
|
559
|
-
$(`span:contains(${new Date().getDate().toString()})`).not('.is-other-month').parent().attr('aria-selected', 'true');
|
|
560
585
|
}
|
|
561
586
|
});
|
|
562
587
|
}
|
|
@@ -581,22 +606,46 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
581
606
|
this.loadYears();
|
|
582
607
|
}
|
|
583
608
|
}
|
|
609
|
+
getMonth(date, inc) {
|
|
610
|
+
const currentMonth = new Date(date);
|
|
611
|
+
let month = currentMonth.getMonth();
|
|
612
|
+
const year = currentMonth.getFullYear();
|
|
613
|
+
month += inc;
|
|
614
|
+
const newDate = new Date(year, month);
|
|
615
|
+
const fullMonth = newDate.toLocaleString('en-US', { month: 'long' });
|
|
616
|
+
return {
|
|
617
|
+
date: newDate,
|
|
618
|
+
fullMonth: fullMonth
|
|
619
|
+
};
|
|
620
|
+
}
|
|
584
621
|
/**
|
|
585
622
|
* This method sets the mouse events to Datepicker popup. These events are required when we navigate date picker through mouse.
|
|
586
623
|
*/
|
|
587
624
|
addDatepickerMouseEvents() {
|
|
588
625
|
const datePickerHead = $(`.bs-datepicker-head`);
|
|
589
626
|
datePickerHead.find(`.previous`).click((event) => {
|
|
627
|
+
this.next = this.getMonth(this.activeDate, 0);
|
|
628
|
+
this.prev = this.getMonth(this.activeDate, -2);
|
|
629
|
+
this.clicked = true;
|
|
590
630
|
// check for original mouse click
|
|
591
631
|
if (event.originalEvent) {
|
|
592
632
|
this.setFocusForDate(-1);
|
|
593
633
|
}
|
|
634
|
+
setTimeout(() => {
|
|
635
|
+
$(`.bs-datepicker-head .previous`).focus();
|
|
636
|
+
});
|
|
594
637
|
});
|
|
595
638
|
datePickerHead.find(`.next`).click((event) => {
|
|
639
|
+
this.next = this.getMonth(this.activeDate, 2);
|
|
640
|
+
this.prev = this.getMonth(this.activeDate, 0);
|
|
641
|
+
this.clicked = true;
|
|
596
642
|
// check for original mouse click
|
|
597
643
|
if (event.originalEvent) {
|
|
598
644
|
this.setFocusForDate(1);
|
|
599
645
|
}
|
|
646
|
+
setTimeout(() => {
|
|
647
|
+
$(`.bs-datepicker-head .next`).focus();
|
|
648
|
+
});
|
|
600
649
|
});
|
|
601
650
|
datePickerHead.find(`.current`).click((event) => {
|
|
602
651
|
// check for original mouse click
|
|
@@ -611,8 +660,24 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
611
660
|
this.setFocusForMonthOrDay();
|
|
612
661
|
}
|
|
613
662
|
});
|
|
614
|
-
datePickerHead.find('.next').attr('aria-label',
|
|
615
|
-
datePickerHead.find('.previous').attr('aria-label',
|
|
663
|
+
datePickerHead.find('.next').attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
|
|
664
|
+
datePickerHead.find('.previous').attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
|
|
665
|
+
setTimeout(() => {
|
|
666
|
+
const currentNodes = datePickerHead.find('.current span');
|
|
667
|
+
const msg = 'Changed to month ';
|
|
668
|
+
// currentNodes.each((i) => {
|
|
669
|
+
// msg =`${msg} ${$(currentNodes[i]).text()}`;
|
|
670
|
+
// });
|
|
671
|
+
datePickerHead.find('.current').attr("aria-live", "assertive").attr("aria-atomic", "false");
|
|
672
|
+
if (this.clicked) {
|
|
673
|
+
if ($(currentNodes[0]).text()) {
|
|
674
|
+
datePickerHead.find('.ng-star-inserted').prepend(`<div class="sr-only">${msg}</div>`);
|
|
675
|
+
}
|
|
676
|
+
if ($(currentNodes[1]).text()) {
|
|
677
|
+
datePickerHead.find('.current').last().prepend(`<div class="sr-only"> and year </div>`);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
});
|
|
616
681
|
}
|
|
617
682
|
/**
|
|
618
683
|
* This method sets focus for months/days depending on the loaded datepicker table
|
|
@@ -694,12 +759,20 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
694
759
|
this.loadDays();
|
|
695
760
|
this.setActiveDateFocus(this.activeDate);
|
|
696
761
|
}
|
|
762
|
+
setNextData(nextDate) {
|
|
763
|
+
this.next = this.getMonth(nextDate, 1);
|
|
764
|
+
this.prev = this.getMonth(nextDate, -1);
|
|
765
|
+
}
|
|
697
766
|
/**
|
|
698
767
|
* This method is used to add tabindex, keybord and mouse events for days
|
|
699
768
|
*/
|
|
700
769
|
loadDays() {
|
|
701
770
|
setTimeout(() => {
|
|
702
771
|
$('[bsdatepickerdaydecorator]').not('.is-other-month').attr('tabindex', '0');
|
|
772
|
+
// if (this.clicked === false) {
|
|
773
|
+
// this.next = this.getMonth(this.activeDate, 1);
|
|
774
|
+
// this.prev = this.getMonth(this.activeDate, -1);
|
|
775
|
+
// }
|
|
703
776
|
this.addKeyBoardEventsForDays();
|
|
704
777
|
this.addDatepickerMouseEvents();
|
|
705
778
|
});
|
|
@@ -768,8 +841,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
768
841
|
*/
|
|
769
842
|
loadMonths() {
|
|
770
843
|
setTimeout(() => {
|
|
771
|
-
const datePickerBody = $('.bs-datepicker-body');
|
|
772
|
-
datePickerBody.find('table.months span').attr('tabindex', '0');
|
|
773
844
|
this.addKeyBoardEventsForMonths();
|
|
774
845
|
this.addDatepickerMouseEvents();
|
|
775
846
|
});
|
|
@@ -822,8 +893,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
822
893
|
*/
|
|
823
894
|
loadYears() {
|
|
824
895
|
setTimeout(() => {
|
|
825
|
-
const datePickerBody = $('.bs-datepicker-body');
|
|
826
|
-
datePickerBody.find('table.years span').attr('tabindex', '0');
|
|
827
896
|
this.addKeyBoardEventsForYears();
|
|
828
897
|
this.addDatepickerMouseEvents();
|
|
829
898
|
});
|
|
@@ -832,6 +901,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
832
901
|
* This method is used to set focus for active month
|
|
833
902
|
*/
|
|
834
903
|
setActiveMonthFocus(newDate, isMoouseEvent) {
|
|
904
|
+
this.setNextData(newDate);
|
|
835
905
|
const newMonth = months[newDate.getMonth()];
|
|
836
906
|
// check for keyboard event
|
|
837
907
|
if (!isMoouseEvent) {
|
|
@@ -843,6 +913,8 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
843
913
|
}
|
|
844
914
|
}
|
|
845
915
|
setTimeout(() => {
|
|
916
|
+
$(`.bs-datepicker-body table.months span`).attr('tabindex', '-1');
|
|
917
|
+
$(`.bs-datepicker-body table.months span:contains(${newMonth})`).attr('tabindex', '0');
|
|
846
918
|
$(`.bs-datepicker-body table.months span:contains(${newMonth})`).focus();
|
|
847
919
|
this.activeDate = newDate;
|
|
848
920
|
});
|
|
@@ -901,6 +973,8 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
901
973
|
}
|
|
902
974
|
}
|
|
903
975
|
setTimeout(() => {
|
|
976
|
+
$(`.bs-datepicker-body table.years span`).attr('tabindex', '-1');
|
|
977
|
+
$(`.bs-datepicker-body table.years span:contains(${newYear})`).attr('tabindex', '0');
|
|
904
978
|
$(`.bs-datepicker-body table.years span:contains(${newYear})`).focus();
|
|
905
979
|
this.activeDate = newDate;
|
|
906
980
|
});
|
|
@@ -1081,37 +1155,27 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
1081
1155
|
}
|
|
1082
1156
|
onDateTimeInputBlur() {
|
|
1083
1157
|
// removing the opacity on blur of the mobile widget
|
|
1084
|
-
|
|
1158
|
+
const displayInputElem = this.getMobileInput();
|
|
1085
1159
|
if (displayInputElem && !hasCordova()) {
|
|
1086
|
-
|
|
1160
|
+
const children = this.nativeElement.children;
|
|
1087
1161
|
for (let i = 0; i < children.length; i++) {
|
|
1088
1162
|
children[i].classList.remove('add-opacity');
|
|
1089
1163
|
}
|
|
1090
1164
|
displayInputElem.classList.remove('remove-opacity');
|
|
1091
|
-
let allDateTimeElements = this.nativeElement.getElementsByTagName('*');
|
|
1092
|
-
for (let i = 0; i < allDateTimeElements.length; i++) {
|
|
1093
|
-
allDateTimeElements[i].setAttribute('tabindex', this.tabindex);
|
|
1094
|
-
}
|
|
1095
|
-
displayInputElem.removeAttribute('tabindex');
|
|
1096
1165
|
}
|
|
1097
1166
|
}
|
|
1098
1167
|
onDateTimeInputFocus(skipFocus = false) {
|
|
1099
1168
|
if (!this.loadNativeDateInput) {
|
|
1100
1169
|
return;
|
|
1101
1170
|
}
|
|
1102
|
-
|
|
1171
|
+
const displayInputElem = this.getMobileInput();
|
|
1103
1172
|
// toggling the classes to show and hide the native widget using opacity
|
|
1104
1173
|
if (skipFocus && !hasCordova()) {
|
|
1105
|
-
|
|
1174
|
+
const children = this.nativeElement.children;
|
|
1106
1175
|
for (let i = 0; i < children.length; i++) {
|
|
1107
1176
|
children[i].classList.add('add-opacity');
|
|
1108
1177
|
}
|
|
1109
1178
|
displayInputElem.classList.add('remove-opacity');
|
|
1110
|
-
let allDateTimeElements = this.nativeElement.getElementsByTagName('*');
|
|
1111
|
-
for (let i = 0; i < allDateTimeElements.length; i++) {
|
|
1112
|
-
allDateTimeElements[i].setAttribute('tabindex', '-1');
|
|
1113
|
-
}
|
|
1114
|
-
displayInputElem.setAttribute('tabindex', this.tabindex);
|
|
1115
1179
|
return;
|
|
1116
1180
|
}
|
|
1117
1181
|
if (displayInputElem && this._triggeredByUser) {
|
|
@@ -1201,9 +1265,12 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
|
|
|
1201
1265
|
this.containerTarget = getContainerTargetClass(this.nativeElement);
|
|
1202
1266
|
this.isReadOnly = this.dataentrymode != 'undefined' && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
|
|
1203
1267
|
// this mobileinput width varies in ios hence setting width here.
|
|
1204
|
-
|
|
1268
|
+
const mobileInput = this.getMobileInput();
|
|
1205
1269
|
if (mobileInput) {
|
|
1206
|
-
|
|
1270
|
+
setTimeout(() => {
|
|
1271
|
+
mobileInput.style.width = '100%';
|
|
1272
|
+
mobileInput.style.height = '100%';
|
|
1273
|
+
});
|
|
1207
1274
|
}
|
|
1208
1275
|
}
|
|
1209
1276
|
ngOnDestroy() {
|
|
@@ -1417,7 +1484,6 @@ class DateComponent extends BaseDateTimeComponent {
|
|
|
1417
1484
|
if (!skipFocus) {
|
|
1418
1485
|
this.onDateTimeInputFocus();
|
|
1419
1486
|
}
|
|
1420
|
-
return;
|
|
1421
1487
|
}
|
|
1422
1488
|
if ($event.type === 'click') {
|
|
1423
1489
|
this.invokeEventCallback('click', { $event: $event });
|
|
@@ -1449,7 +1515,7 @@ class DateComponent extends BaseDateTimeComponent {
|
|
|
1449
1515
|
if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
|
|
1450
1516
|
event.stopPropagation();
|
|
1451
1517
|
const action = this.keyEventPlugin.constructor.getEventFullKey(event);
|
|
1452
|
-
if (action === 'enter'
|
|
1518
|
+
if (action === 'enter') {
|
|
1453
1519
|
const newVal = getDateObj(event.target.value, { pattern: this.datepattern });
|
|
1454
1520
|
event.preventDefault();
|
|
1455
1521
|
const formattedDate = getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, null, this.isCurrentDate, this);
|
|
@@ -1500,7 +1566,7 @@ DateComponent.initializeProps = registerProps$2();
|
|
|
1500
1566
|
DateComponent.decorators = [
|
|
1501
1567
|
{ type: Component, args: [{
|
|
1502
1568
|
selector: '[wmDate]',
|
|
1503
|
-
template: " <input class=\"form-control app-textbox app-dateinput display-input\"\n focus-target\n type=\"text\"\n [name]=\"name\"\n [tabindex]=\"tabindex\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled || readonly\"\n [autofocus]=\"autofocus\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n (change)=\"onDisplayDateChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event);\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isOpen\"\n #datepicker=\"bsDatepicker\"\n bsDatepicker\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n placement=\"bottom right\"\n [isDisabled]=\"disabled || readonly\"\n [bsValue]=\"bsDataValue\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n (bsValueChange)=\"onDateChange($event)\">\n</div>\n\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"DATE\"\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDataValue\"\n (change)=\"onDateChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"
|
|
1569
|
+
template: " <input class=\"form-control app-textbox app-dateinput display-input\"\n focus-target\n type=\"text\"\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled || readonly\"\n [autofocus]=\"autofocus\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n (change)=\"onDisplayDateChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event);\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isOpen\"\n #datepicker=\"bsDatepicker\"\n bsDatepicker\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n placement=\"bottom right\"\n [isDisabled]=\"disabled || readonly\"\n [bsValue]=\"bsDataValue\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n (bsValueChange)=\"onDateChange($event)\">\n</div>\n\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"DATE\"\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDataValue\"\n (change)=\"onDateChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event);\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n [attr.aria-label]=\"displayValue ? 'Change Date' + displayValue : 'Choose Date'\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
|
|
1504
1570
|
providers: [
|
|
1505
1571
|
provideAs(DateComponent, NG_VALUE_ACCESSOR, true),
|
|
1506
1572
|
provideAs(DateComponent, NG_VALIDATORS, true),
|
|
@@ -1961,7 +2027,7 @@ DatetimeComponent.initializeProps = registerProps$1();
|
|
|
1961
2027
|
DatetimeComponent.decorators = [
|
|
1962
2028
|
{ type: Component, args: [{
|
|
1963
2029
|
selector: '[wmDateTime]',
|
|
1964
|
-
template: " <div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"hint\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"tabindex\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"
|
|
2030
|
+
template: " <div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"hint\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
|
|
1965
2031
|
providers: [
|
|
1966
2032
|
provideAs(DatetimeComponent, NG_VALUE_ACCESSOR, true),
|
|
1967
2033
|
provideAs(DatetimeComponent, NG_VALIDATORS, true),
|