mis-crystal-design-system 17.0.0 → 17.0.2
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/analytics/analytics.service.d.ts +5 -1
- package/assets/images/close.svg +5 -0
- package/async-search-dropdown/async-dropdown.component.d.ts +5 -0
- package/async-search-dropdown/async-dropdown.module.d.ts +2 -1
- package/datepicker_v2/datepicker.module.d.ts +2 -1
- package/datepicker_v2/tz-datepicker.directive.d.ts +2 -0
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +18 -1
- package/daterangepicker_v2/daterangepicker.module.d.ts +2 -1
- package/daterangepicker_v2/models/drp-config.model.d.ts +6 -0
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +6 -2
- package/dropdown/calculate-container-height.directive.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +4 -1
- package/dropdown/dropdown.module.d.ts +2 -1
- package/dynamic-form/dynamic-form.component.d.ts +14 -4
- package/dynamic-form/dynamic-form.namespace.d.ts +1 -0
- package/esm2022/action-list/action-list.component.mjs +1 -1
- package/esm2022/analytics/analytics.service.mjs +7 -6
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +76 -43
- package/esm2022/async-search-dropdown/async-dropdown.module.mjs +5 -4
- package/esm2022/button/button.directive.mjs +1 -1
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/chip/chip.component.mjs +13 -13
- package/esm2022/datepicker_v2/datepicker.module.mjs +5 -4
- package/esm2022/datepicker_v2/public_api.mjs +1 -1
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +21 -2
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +280 -84
- package/esm2022/datepicker_v2/utils/index.mjs +1 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +5 -4
- package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
- package/esm2022/daterangepicker_v2/public_api.mjs +1 -1
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +24 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +216 -109
- package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
- package/esm2022/dropdown/calculate-container-height.directive.mjs +5 -5
- package/esm2022/dropdown/dropdown.component.mjs +156 -96
- package/esm2022/dropdown/dropdown.module.mjs +5 -4
- package/esm2022/dynamic-form/dynamic-form.component.mjs +608 -220
- package/esm2022/dynamic-form/dynamic-form.namespace.mjs +1 -1
- package/esm2022/fab/fab.component.mjs +1 -1
- package/esm2022/filter/animations/slideFromRight.mjs +12 -0
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +396 -0
- package/esm2022/filter/filters.module.mjs +66 -0
- package/esm2022/filter/has-value.pipe.mjs +31 -0
- package/esm2022/filter/index.mjs +2 -0
- package/esm2022/filter/mis-crystal-design-system-filter.mjs +5 -0
- package/esm2022/filter/public_api.mjs +4 -0
- package/esm2022/input/mis-input.component.mjs +1 -1
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +4 -4
- package/esm2022/mobile-filter/mobile-filter.component.mjs +9 -7
- package/esm2022/modal/modal.service.mjs +1 -1
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +26 -14
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +14 -7
- package/esm2022/phone-input/phone-input.component.mjs +6 -50
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/specificdatepicker/public_api.mjs +3 -3
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +89 -62
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +1 -1
- package/esm2022/specificdatepicker/utils/index.mjs +1 -1
- package/esm2022/star-rating/star-rating.component.mjs +1 -1
- package/esm2022/table/custom-table-cell.directive.mjs +1 -1
- package/esm2022/table/filter/filter.component.mjs +12 -4
- package/esm2022/table/public_api.mjs +2 -3
- package/esm2022/table/sub-table/sub-table.component.mjs +1 -1
- package/esm2022/table/table.component.mjs +27 -11
- package/esm2022/timepicker/timepicker.component.mjs +68 -58
- package/esm2022/timerangepicker/public_api.mjs +1 -1
- package/esm2022/timerangepicker/timerangepicker.component.mjs +57 -47
- package/esm2022/toast/toast.service.mjs +1 -1
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +10 -9
- package/esm2022/tooltip/tooltip.directive.mjs +9 -3
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +1 -1
- package/esm2022/widgets/classes/async-widget.mjs +1 -1
- package/esm2022/widgets/classes/base-widget.mjs +1 -1
- package/esm2022/widgets/classes/sync-widget.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-action-list.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-analytics.mjs +6 -5
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +79 -45
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +13 -13
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +303 -87
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +242 -113
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +163 -102
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +607 -219
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +503 -0
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +9 -7
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +26 -14
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +14 -7
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +5 -49
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +89 -62
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +41 -17
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +68 -58
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +57 -47
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +18 -11
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
- package/filter/animations/slideFromRight.d.ts +1 -0
- package/filter/filter-panel/filter-panel.component.d.ts +51 -0
- package/filter/filters.module.d.ts +18 -0
- package/filter/has-value.pipe.d.ts +12 -0
- package/filter/index.d.ts +1 -0
- package/filter/public_api.d.ts +4 -0
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +3 -1
- package/package.json +25 -19
- package/phone-input/phone-input.component.d.ts +6 -15
- package/specificdatepicker/public_api.d.ts +2 -3
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -1
- package/styles/mis-mixins.scss +46 -0
- package/styles/mis-old-icon-styles.scss +498 -0
- package/table/filter/filter.component.d.ts +1 -1
- package/table/public_api.d.ts +1 -2
- package/timepicker/timepicker.component.d.ts +4 -3
- package/timerangepicker/public_api.d.ts +1 -0
- package/timerangepicker/timerangepicker.component.d.ts +3 -1
- package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
- package/tooltip/tooltip.directive.d.ts +3 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component,
|
|
3
|
-
import
|
|
2
|
+
import { EventEmitter, Component, Output, Input, NgModule } from '@angular/core';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
5
|
+
import utc from 'dayjs/plugin/utc';
|
|
4
6
|
import * as i1 from '@angular/common';
|
|
5
7
|
import { CommonModule } from '@angular/common';
|
|
6
8
|
import * as i2 from 'mis-crystal-design-system/timepicker';
|
|
@@ -13,65 +15,69 @@ function TimeRangePickerComponent_p_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
13
15
|
i0.ɵɵtext(1, "-");
|
|
14
16
|
i0.ɵɵelementEnd();
|
|
15
17
|
} }
|
|
18
|
+
dayjs.extend(utc);
|
|
19
|
+
dayjs.extend(timezone);
|
|
16
20
|
class TimeRangePickerComponent {
|
|
17
21
|
constructor(cdr) {
|
|
18
22
|
this.cdr = cdr;
|
|
19
23
|
this.inputWidth = "100px";
|
|
20
24
|
this.height = "46px";
|
|
21
25
|
this.timezone = "Asia/Kolkata";
|
|
22
|
-
this.startDateEpoch =
|
|
23
|
-
this.endDateEpoch =
|
|
26
|
+
this.startDateEpoch = dayjs().tz(this.timezone).valueOf();
|
|
27
|
+
this.endDateEpoch = dayjs().tz(this.timezone).valueOf();
|
|
24
28
|
this.clockFormat = 12;
|
|
25
29
|
this.interval = 15;
|
|
26
30
|
this.showTooltip = true;
|
|
27
31
|
this.direction = 'row';
|
|
28
32
|
this.gap = '1rem';
|
|
33
|
+
this.disableStartTime = false;
|
|
34
|
+
this.disableEndTime = false;
|
|
29
35
|
this.timeRangeEmitter = new EventEmitter();
|
|
30
|
-
this.firstIntervalForStartPicker =
|
|
31
|
-
this.firstIntervalForEndPicker =
|
|
36
|
+
this.firstIntervalForStartPicker = dayjs().valueOf();
|
|
37
|
+
this.firstIntervalForEndPicker = dayjs().valueOf();
|
|
32
38
|
this.rangeValidity = true;
|
|
33
39
|
this.triggerChange = true;
|
|
34
40
|
}
|
|
35
41
|
ngOnInit() { }
|
|
36
42
|
ngOnChanges() {
|
|
37
43
|
this.timeFormat = this.clockFormat === 12 ? "hh:mm a" : "HH:mm";
|
|
38
|
-
|
|
39
|
-
this.startDate =
|
|
40
|
-
this.endDate =
|
|
41
|
-
this.currDate =
|
|
44
|
+
dayjs.tz.setDefault(this.timezone);
|
|
45
|
+
this.startDate = dayjs(this.startDateEpoch).format("DD-MM-YYYY");
|
|
46
|
+
this.endDate = dayjs(this.endDateEpoch).format("DD-MM-YYYY");
|
|
47
|
+
this.currDate = dayjs().format("DD-MM-YYYY");
|
|
42
48
|
this.setFirstIntervals();
|
|
43
49
|
}
|
|
44
50
|
// calculate the first interval of the picker
|
|
45
51
|
setFirstIntervals() {
|
|
46
|
-
const minutes =
|
|
52
|
+
const minutes = dayjs().minute();
|
|
47
53
|
const offset = this.interval - (minutes % this.interval);
|
|
48
54
|
// start date, 22 MAY === current date, 22 MAY
|
|
49
55
|
if (this.startDate === this.currDate) {
|
|
50
|
-
const currentTime =
|
|
56
|
+
const currentTime = dayjs().valueOf();
|
|
51
57
|
// start date, 22 MAY === current date, 22 MAY === end date, 22 MAY
|
|
52
58
|
if (this.startDate === this.endDate) {
|
|
53
59
|
// current time is in last interval
|
|
54
|
-
if (currentTime >=
|
|
60
|
+
if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
|
|
55
61
|
this.firstIntervalForStartPicker = currentTime;
|
|
56
|
-
this.firstIntervalForEndPicker =
|
|
62
|
+
this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
|
|
57
63
|
}
|
|
58
64
|
// current time isn't in last interval
|
|
59
65
|
else {
|
|
60
|
-
this.firstIntervalForStartPicker =
|
|
61
|
-
this.firstIntervalForEndPicker =
|
|
66
|
+
this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
|
|
67
|
+
this.firstIntervalForEndPicker = dayjs().add(offset, "m").add(this.interval, "m").valueOf();
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
// start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY
|
|
65
71
|
else {
|
|
66
72
|
// current time is in last interval
|
|
67
|
-
if (currentTime >=
|
|
73
|
+
if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
|
|
68
74
|
this.firstIntervalForStartPicker = currentTime;
|
|
69
|
-
this.firstIntervalForEndPicker =
|
|
75
|
+
this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
|
|
70
76
|
}
|
|
71
77
|
// current time isn't in last interval
|
|
72
78
|
else {
|
|
73
|
-
this.firstIntervalForStartPicker =
|
|
74
|
-
this.firstIntervalForEndPicker =
|
|
79
|
+
this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
|
|
80
|
+
this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).valueOf();
|
|
75
81
|
}
|
|
76
82
|
}
|
|
77
83
|
}
|
|
@@ -79,13 +85,13 @@ class TimeRangePickerComponent {
|
|
|
79
85
|
else {
|
|
80
86
|
// start date === end Date
|
|
81
87
|
if (this.startDate === this.endDate) {
|
|
82
|
-
this.firstIntervalForStartPicker =
|
|
83
|
-
this.firstIntervalForEndPicker =
|
|
88
|
+
this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
|
|
89
|
+
this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).add(this.interval, "m").valueOf();
|
|
84
90
|
}
|
|
85
91
|
// start date !== end date
|
|
86
92
|
else {
|
|
87
|
-
this.firstIntervalForStartPicker =
|
|
88
|
-
this.firstIntervalForEndPicker =
|
|
93
|
+
this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
|
|
94
|
+
this.firstIntervalForEndPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
if (this.givenStartTime)
|
|
@@ -94,13 +100,13 @@ class TimeRangePickerComponent {
|
|
|
94
100
|
this.firstIntervalForEndPicker = this.givenEndTime;
|
|
95
101
|
this.startTime = {
|
|
96
102
|
valid: true,
|
|
97
|
-
time:
|
|
98
|
-
epoch:
|
|
103
|
+
time: dayjs(this.firstIntervalForStartPicker).format(this.timeFormat),
|
|
104
|
+
epoch: dayjs(this.firstIntervalForStartPicker).valueOf()
|
|
99
105
|
};
|
|
100
106
|
this.endTime = {
|
|
101
107
|
valid: true,
|
|
102
|
-
time:
|
|
103
|
-
epoch:
|
|
108
|
+
time: dayjs(this.firstIntervalForEndPicker).format(this.timeFormat),
|
|
109
|
+
epoch: dayjs(this.firstIntervalForEndPicker).valueOf()
|
|
104
110
|
};
|
|
105
111
|
}
|
|
106
112
|
emitTimeRange(data) {
|
|
@@ -114,16 +120,16 @@ class TimeRangePickerComponent {
|
|
|
114
120
|
// and the start time >= end time
|
|
115
121
|
// update the first interval of end picker according to the time set in start picker
|
|
116
122
|
if (this.startDate === this.endDate) {
|
|
117
|
-
let minutes =
|
|
123
|
+
let minutes = dayjs(this.startTime.time, this.timeFormat).minute();
|
|
118
124
|
let offset = this.interval - (minutes % this.interval);
|
|
119
|
-
this.firstIntervalForEndPicker =
|
|
125
|
+
this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)
|
|
120
126
|
.add(offset, "m")
|
|
121
127
|
.valueOf();
|
|
122
128
|
// if the first interval == 12:00am, set it as 11:59pm
|
|
123
|
-
const intervalAsString =
|
|
124
|
-
const endOfDayAsString =
|
|
129
|
+
const intervalAsString = dayjs(this.firstIntervalForEndPicker).format(this.timeFormat);
|
|
130
|
+
const endOfDayAsString = dayjs(dayjs(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf("d").add(1, "m")).format(this.timeFormat);
|
|
125
131
|
if (intervalAsString === endOfDayAsString) {
|
|
126
|
-
this.firstIntervalForEndPicker =
|
|
132
|
+
this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf("d").valueOf();
|
|
127
133
|
}
|
|
128
134
|
}
|
|
129
135
|
else {
|
|
@@ -134,8 +140,8 @@ class TimeRangePickerComponent {
|
|
|
134
140
|
valid: validity && this.rangeValidity,
|
|
135
141
|
startTime: this.startTime.time,
|
|
136
142
|
endTime: this.endTime.time,
|
|
137
|
-
startEpoch:
|
|
138
|
-
endEpoch:
|
|
143
|
+
startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
|
|
144
|
+
endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
|
|
139
145
|
});
|
|
140
146
|
}
|
|
141
147
|
this.triggerChange = !this.triggerChange;
|
|
@@ -148,15 +154,15 @@ class TimeRangePickerComponent {
|
|
|
148
154
|
valid: validity && this.rangeValidity,
|
|
149
155
|
startTime: this.startTime.time,
|
|
150
156
|
endTime: this.endTime.time,
|
|
151
|
-
startEpoch:
|
|
152
|
-
endEpoch:
|
|
157
|
+
startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
|
|
158
|
+
endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
|
|
153
159
|
});
|
|
154
160
|
}
|
|
155
161
|
checkTimeValidity(time, date) {
|
|
156
162
|
const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;
|
|
157
163
|
const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
|
|
158
164
|
const RE = this.clockFormat === 12 ? RE12 : RE24;
|
|
159
|
-
const
|
|
165
|
+
const timedayjs = dayjs(`${dayjs(date).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);
|
|
160
166
|
let flag = false;
|
|
161
167
|
// if the first interval is set to the start of the day
|
|
162
168
|
// then we don't check its validity against the current time
|
|
@@ -164,21 +170,21 @@ class TimeRangePickerComponent {
|
|
|
164
170
|
flag = time.match(RE) ? true : false;
|
|
165
171
|
}
|
|
166
172
|
else {
|
|
167
|
-
flag = time.match(RE) &&
|
|
173
|
+
flag = time.match(RE) && timedayjs.diff(dayjs(), "m") >= 0 ? true : false;
|
|
168
174
|
}
|
|
169
175
|
return flag;
|
|
170
176
|
}
|
|
171
177
|
// validates end picker's input according to the start picker's input
|
|
172
178
|
rangeValidation(validity) {
|
|
173
179
|
if (validity && this.startDate === this.endDate) {
|
|
174
|
-
const
|
|
175
|
-
const
|
|
176
|
-
this.rangeValidity =
|
|
180
|
+
const startdayjs = dayjs(this.startTime.time, this.timeFormat);
|
|
181
|
+
const enddayjs = dayjs(this.endTime.time, this.timeFormat);
|
|
182
|
+
this.rangeValidity = enddayjs.diff(startdayjs, "m") >= 1 ? true : false;
|
|
177
183
|
this.cdr.detectChanges();
|
|
178
184
|
}
|
|
179
185
|
}
|
|
180
186
|
static { this.ɵfac = function TimeRangePickerComponent_Factory(t) { return new (t || TimeRangePickerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
181
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeRangePickerComponent, selectors: [["mis-timerangepicker"]], inputs: { inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", height: "height", timezone: "timezone", startDateEpoch: "startDateEpoch", endDateEpoch: "endDateEpoch", givenStartTime: "givenStartTime", givenEndTime: "givenEndTime", clockFormat: "clockFormat", interval: "interval", showTooltip: "showTooltip", direction: "direction", gap: "gap" }, outputs: { timeRangeEmitter: "timeRangeEmitter" }, features: [i0.ɵɵNgOnChangesFeature], decls: 4, vars:
|
|
187
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeRangePickerComponent, selectors: [["mis-timerangepicker"]], inputs: { inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", height: "height", timezone: "timezone", startDateEpoch: "startDateEpoch", endDateEpoch: "endDateEpoch", givenStartTime: "givenStartTime", givenEndTime: "givenEndTime", clockFormat: "clockFormat", interval: "interval", showTooltip: "showTooltip", direction: "direction", gap: "gap", disableStartTime: "disableStartTime", disableEndTime: "disableEndTime" }, outputs: { timeRangeEmitter: "timeRangeEmitter" }, features: [i0.ɵɵNgOnChangesFeature], decls: 4, vars: 29, consts: [[1, "rangepicker-container", 3, "ngStyle"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "disable"], [4, "ngIf"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "rangeValidity", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "triggerChange", "disable"]], template: function TimeRangePickerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
182
188
|
i0.ɵɵelementStart(0, "div", 0)(1, "mis-timepicker", 1);
|
|
183
189
|
i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_1_listener($event) { return ctx.startPickerHandler($event); });
|
|
184
190
|
i0.ɵɵelementEnd();
|
|
@@ -187,18 +193,18 @@ class TimeRangePickerComponent {
|
|
|
187
193
|
i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_3_listener($event) { return ctx.endPickerHandler($event); });
|
|
188
194
|
i0.ɵɵelementEnd()();
|
|
189
195
|
} if (rf & 2) {
|
|
190
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(
|
|
196
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(26, _c0, ctx.direction, ctx.gap));
|
|
191
197
|
i0.ɵɵadvance();
|
|
192
|
-
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.startDateEpoch)("firstInterval", ctx.firstIntervalForStartPicker)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenStartTime);
|
|
198
|
+
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.startDateEpoch)("firstInterval", ctx.firstIntervalForStartPicker)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenStartTime)("disable", ctx.disableStartTime);
|
|
193
199
|
i0.ɵɵadvance();
|
|
194
200
|
i0.ɵɵproperty("ngIf", ctx.direction === "row");
|
|
195
201
|
i0.ɵɵadvance();
|
|
196
|
-
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.endDateEpoch)("firstInterval", ctx.firstIntervalForEndPicker)("rangeValidity", ctx.rangeValidity)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenEndTime)("triggerChange", ctx.triggerChange);
|
|
202
|
+
i0.ɵɵproperty("clockFormat", ctx.clockFormat)("interval", ctx.interval)("dateAsEpoch", ctx.endDateEpoch)("firstInterval", ctx.firstIntervalForEndPicker)("rangeValidity", ctx.rangeValidity)("timezone", ctx.timezone)("height", ctx.height)("inputWidth", ctx.inputWidth)("dropdownWidth", ctx.dropdownWidth)("showTooltip", ctx.showTooltip)("givenTime", ctx.givenEndTime)("triggerChange", ctx.triggerChange)("disable", ctx.disableEndTime);
|
|
197
203
|
} }, dependencies: [i1.NgIf, i1.NgStyle, i2.TimePickerComponent], styles: [".rangepicker-container[_ngcontent-%COMP%]{display:flex;gap:1rem;align-items:center}p[_ngcontent-%COMP%]{margin:0;display:inline-flex;align-items:center}"] }); }
|
|
198
204
|
}
|
|
199
205
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeRangePickerComponent, [{
|
|
200
206
|
type: Component,
|
|
201
|
-
args: [{ selector: "mis-timerangepicker", template: "<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n ></mis-timepicker>\n</div>\n", styles: [".rangepicker-container{display:flex;gap:1rem;align-items:center}p{margin:0;display:inline-flex;align-items:center}\n"] }]
|
|
207
|
+
args: [{ selector: "mis-timerangepicker", template: "<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n [disable]=\"disableStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n [disable]=\"disableEndTime\"\n ></mis-timepicker>\n</div>\n", styles: [".rangepicker-container{display:flex;gap:1rem;align-items:center}p{margin:0;display:inline-flex;align-items:center}\n"] }]
|
|
202
208
|
}], () => [{ type: i0.ChangeDetectorRef }], { inputWidth: [{
|
|
203
209
|
type: Input
|
|
204
210
|
}], dropdownWidth: [{
|
|
@@ -225,6 +231,10 @@ class TimeRangePickerComponent {
|
|
|
225
231
|
type: Input
|
|
226
232
|
}], gap: [{
|
|
227
233
|
type: Input
|
|
234
|
+
}], disableStartTime: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], disableEndTime: [{
|
|
237
|
+
type: Input
|
|
228
238
|
}], timeRangeEmitter: [{
|
|
229
239
|
type: Output
|
|
230
240
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-timerangepicker.mjs","sources":["../../../projects/mis-components/timerangepicker/timerangepicker.component.html","../../../projects/mis-components/timerangepicker/timerangepicker.component.ts","../../../projects/mis-components/timerangepicker/timerangepicker.module.ts","../../../projects/mis-components/timerangepicker/mis-crystal-design-system-timerangepicker.ts"],"sourcesContent":["<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n ></mis-timepicker>\n</div>\n","import { Component, Input, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\nimport * as moment from \"moment-timezone\";\nimport { ITimeRange, ITime, TDirection } from \"./timerange.namespace\";\n\n@Component({\n selector: \"mis-timerangepicker\",\n templateUrl: \"./timerangepicker.component.html\",\n styleUrls: [\"./timerangepicker.component.scss\"]\n})\nexport class TimeRangePickerComponent {\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() height: string = \"46px\";\n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() startDateEpoch: number = moment().tz(this.timezone).valueOf();\n @Input() endDateEpoch: number = moment().tz(this.timezone).valueOf();\n @Input() givenStartTime: number;\n @Input() givenEndTime: number;\n @Input() clockFormat: number = 12;\n @Input() interval: number = 15;\n @Input() showTooltip: boolean = true;\n @Input() direction: TDirection = 'row';\n @Input() gap: string = '1rem';\n\n @Output() timeRangeEmitter = new EventEmitter<ITimeRange>();\n\n startDate!: string;\n endDate!: string;\n currDate!: string;\n timeFormat!: string;\n firstIntervalForStartPicker: number = moment().valueOf();\n firstIntervalForEndPicker: number = moment().valueOf();\n startTime!: ITime;\n endTime!: ITime;\n rangeValidity: boolean = true;\n triggerChange: boolean = true;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n moment.tz.setDefault(this.timezone);\n this.startDate = moment(this.startDateEpoch).format(\"DD-MM-YYYY\");\n this.endDate = moment(this.endDateEpoch).format(\"DD-MM-YYYY\");\n this.currDate = moment().format(\"DD-MM-YYYY\");\n this.setFirstIntervals();\n }\n\n // calculate the first interval of the picker\n setFirstIntervals(): void {\n const minutes = moment().minutes();\n const offset = this.interval - (minutes % this.interval);\n\n // start date, 22 MAY === current date, 22 MAY\n if( this.startDate === this.currDate ){\n const currentTime = moment().valueOf();\n\n // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY\n if(this.startDate === this.endDate){\n\n // current time is in last interval\n if( currentTime >= moment(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = moment().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = moment().add(offset, \"m\").add(this.interval, \"m\").valueOf();\n }\n } \n // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY\n else {\n // current time is in last interval\n if( currentTime >= moment(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = moment().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).valueOf();\n }\n }\n }\n // start date, 30 MAY !== current date, 22 MAY\n else {\n // start date === end Date\n if( this.startDate === this.endDate){\n this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).add(this.interval, \"m\").valueOf();\n } \n // start date !== end date\n else {\n this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n }\n\n }\n\n if(this.givenStartTime)\n this.firstIntervalForStartPicker = this.givenStartTime;\n \n if(this.givenEndTime)\n this.firstIntervalForEndPicker = this.givenEndTime;\n \n this.startTime = {\n valid: true,\n time: moment(this.firstIntervalForStartPicker).format(this.timeFormat),\n epoch: moment(this.firstIntervalForStartPicker).valueOf()\n };\n\n this.endTime = {\n valid: true,\n time: moment(this.firstIntervalForEndPicker).format(this.timeFormat),\n epoch: moment(this.firstIntervalForEndPicker).valueOf()\n };\n }\n\n emitTimeRange(data: ITimeRange): void {\n this.timeRangeEmitter.emit(data);\n }\n\n //handlers catch the emitted values and run validation\n startPickerHandler(time: ITime): void {\n this.startTime = time;\n this.rangeValidity = true;\n // if the start time changes and the start date is the same as the end date\n // and the start time >= end time\n // update the first interval of end picker according to the time set in start picker\n if (this.startDate === this.endDate) {\n let minutes = moment(this.startTime.time, this.timeFormat).minutes();\n let offset = this.interval - (minutes % this.interval);\n this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)\n .add(offset, \"m\")\n .valueOf();\n\n // if the first interval == 12:00am, set it as 11:59pm\n const intervalAsString = moment(this.firstIntervalForEndPicker).format(this.timeFormat);\n const endOfDayAsString = moment(moment(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf(\"d\").add(1, \"m\")).format(this.timeFormat);\n if (intervalAsString === endOfDayAsString) {\n this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf(\"d\").valueOf();\n }\n\n } else {\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) &&\n this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n this.triggerChange = !this.triggerChange;\n }\n\n endPickerHandler(time: ITime): void {\n this.endTime = time;\n\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) && this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n checkTimeValidity(time: string, date: number): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timeMoment = moment(`${moment(date).format(\"DD-MM-YYYY\")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // then we don't check its validity against the current time\n if ((this.givenStartTime && this.givenEndTime) || (this.startDate !== this.endDate && this.startDate !== this.currDate)) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timeMoment.diff(moment(), \"m\") >= 0 ? true : false;\n }\n\n return flag;\n }\n\n // validates end picker's input according to the start picker's input\n rangeValidation(validity: boolean) {\n if (validity && this.startDate === this.endDate) {\n const startMoment = moment(this.startTime.time, this.timeFormat);\n const endMoment = moment(this.endTime.time, this.timeFormat);\n this.rangeValidity = endMoment.diff(startMoment, \"m\") >= 1 ? true : false;\n this.cdr.detectChanges();\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimeRangePickerComponent } from \"./timerangepicker.component\";\nimport { TimePickerModule } from \"mis-crystal-design-system/timepicker\";\n\n@NgModule({\n declarations: [TimeRangePickerComponent],\n imports: [CommonModule, FormsModule, TimePickerModule],\n exports: [TimeRangePickerComponent]\n})\nexport class TimeRangePickerModule {\n static forRoot(): ModuleWithProviders<TimeRangePickerModule> {\n return { ngModule: TimeRangePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-timerangepicker.mjs","sources":["../../../projects/mis-components/timerangepicker/timerangepicker.component.html","../../../projects/mis-components/timerangepicker/timerangepicker.component.ts","../../../projects/mis-components/timerangepicker/timerangepicker.module.ts","../../../projects/mis-components/timerangepicker/mis-crystal-design-system-timerangepicker.ts"],"sourcesContent":["<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n [disable]=\"disableStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n [disable]=\"disableEndTime\"\n ></mis-timepicker>\n</div>\n","import { Component, Input, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\nimport { ITimeRange, ITime, TDirection } from \"./timerange.namespace\";\nimport dayjs from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n@Component({\n selector: \"mis-timerangepicker\",\n templateUrl: \"./timerangepicker.component.html\",\n styleUrls: [\"./timerangepicker.component.scss\"]\n})\nexport class TimeRangePickerComponent {\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() height: string = \"46px\";\n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() startDateEpoch: number = dayjs().tz(this.timezone).valueOf();\n @Input() endDateEpoch: number = dayjs().tz(this.timezone).valueOf();\n @Input() givenStartTime: number;\n @Input() givenEndTime: number;\n @Input() clockFormat: number = 12;\n @Input() interval: number = 15;\n @Input() showTooltip: boolean = true;\n @Input() direction: TDirection = 'row';\n @Input() gap: string = '1rem';\n @Input() disableStartTime: boolean = false;\n @Input() disableEndTime: boolean = false;\n @Output() timeRangeEmitter = new EventEmitter<ITimeRange>();\n\n startDate!: string;\n endDate!: string;\n currDate!: string;\n timeFormat!: string;\n firstIntervalForStartPicker: number = dayjs().valueOf();\n firstIntervalForEndPicker: number = dayjs().valueOf();\n startTime!: ITime;\n endTime!: ITime;\n rangeValidity: boolean = true;\n triggerChange: boolean = true;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n dayjs.tz.setDefault(this.timezone);\n this.startDate = dayjs(this.startDateEpoch).format(\"DD-MM-YYYY\");\n this.endDate = dayjs(this.endDateEpoch).format(\"DD-MM-YYYY\");\n this.currDate = dayjs().format(\"DD-MM-YYYY\");\n this.setFirstIntervals();\n }\n\n // calculate the first interval of the picker\n setFirstIntervals(): void {\n const minutes = dayjs().minute();\n const offset = this.interval - (minutes % this.interval);\n\n // start date, 22 MAY === current date, 22 MAY\n if( this.startDate === this.currDate ){\n const currentTime = dayjs().valueOf();\n\n // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY\n if(this.startDate === this.endDate){\n\n // current time is in last interval\n if( currentTime >= dayjs(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = dayjs().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = dayjs().add(offset, \"m\").add(this.interval, \"m\").valueOf();\n }\n } \n // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY\n else {\n // current time is in last interval\n if( currentTime >= dayjs(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = dayjs().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).valueOf();\n }\n }\n }\n // start date, 30 MAY !== current date, 22 MAY\n else {\n // start date === end Date\n if( this.startDate === this.endDate){\n this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).add(this.interval, \"m\").valueOf();\n } \n // start date !== end date\n else {\n this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n }\n\n }\n\n if(this.givenStartTime)\n this.firstIntervalForStartPicker = this.givenStartTime;\n \n if(this.givenEndTime)\n this.firstIntervalForEndPicker = this.givenEndTime;\n \n this.startTime = {\n valid: true,\n time: dayjs(this.firstIntervalForStartPicker).format(this.timeFormat),\n epoch: dayjs(this.firstIntervalForStartPicker).valueOf()\n };\n\n this.endTime = {\n valid: true,\n time: dayjs(this.firstIntervalForEndPicker).format(this.timeFormat),\n epoch: dayjs(this.firstIntervalForEndPicker).valueOf()\n };\n }\n\n emitTimeRange(data: ITimeRange): void {\n this.timeRangeEmitter.emit(data);\n }\n\n //handlers catch the emitted values and run validation\n startPickerHandler(time: ITime): void {\n this.startTime = time;\n this.rangeValidity = true;\n // if the start time changes and the start date is the same as the end date\n // and the start time >= end time\n // update the first interval of end picker according to the time set in start picker\n if (this.startDate === this.endDate) {\n let minutes = dayjs(this.startTime.time, this.timeFormat).minute();\n let offset = this.interval - (minutes % this.interval);\n this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)\n .add(offset, \"m\")\n .valueOf();\n\n // if the first interval == 12:00am, set it as 11:59pm\n const intervalAsString = dayjs(this.firstIntervalForEndPicker).format(this.timeFormat);\n const endOfDayAsString = dayjs(dayjs(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf(\"d\").add(1, \"m\")).format(this.timeFormat);\n if (intervalAsString === endOfDayAsString) {\n this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf(\"d\").valueOf();\n }\n\n } else {\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) &&\n this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n this.triggerChange = !this.triggerChange;\n }\n\n endPickerHandler(time: ITime): void {\n this.endTime = time;\n\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) && this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n checkTimeValidity(time: string, date: number): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timedayjs = dayjs(`${dayjs(date).format(\"DD-MM-YYYY\")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // then we don't check its validity against the current time\n if ((this.givenStartTime && this.givenEndTime) || (this.startDate !== this.endDate && this.startDate !== this.currDate)) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timedayjs.diff(dayjs(), \"m\") >= 0 ? true : false;\n }\n\n return flag;\n }\n\n // validates end picker's input according to the start picker's input\n rangeValidation(validity: boolean) {\n if (validity && this.startDate === this.endDate) {\n const startdayjs = dayjs(this.startTime.time, this.timeFormat);\n const enddayjs = dayjs(this.endTime.time, this.timeFormat);\n this.rangeValidity = enddayjs.diff(startdayjs, \"m\") >= 1 ? true : false;\n this.cdr.detectChanges();\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimeRangePickerComponent } from \"./timerangepicker.component\";\nimport { TimePickerModule } from \"mis-crystal-design-system/timepicker\";\n\n@NgModule({\n declarations: [TimeRangePickerComponent],\n imports: [CommonModule, FormsModule, TimePickerModule],\n exports: [TimeRangePickerComponent]\n})\nexport class TimeRangePickerModule {\n static forRoot(): ModuleWithProviders<TimeRangePickerModule> {\n return { ngModule: TimeRangePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-toast.mjs","sources":["../../../projects/mis-components/toast/toast.data.service.ts","../../../projects/mis-components/toast/toast.component.html","../../../projects/mis-components/toast/toast.component.ts","../../../projects/mis-components/toast/toast.service.ts","../../../projects/mis-components/toast/toast.module.ts","../../../projects/mis-components/toast/mis-crystal-design-system-toast.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ToastDataService {\n private messageMap: Map<number, string> = new Map();\n get messages(): string[] {\n return Array.from(this.messageMap.values()).reverse();\n }\n\n constructor() {}\n\n updateMessage(msg: string): number {\n const id = new Date().getTime();\n this.messageMap.set(id, msg);\n return id;\n }\n\n removeMessage(id: number): void {\n this.messageMap.delete(id);\n }\n\n hasMessage(): boolean {\n return this.messageMap.size > 0;\n }\n}\n","<div class=\"toast-container\">\n <div *ngFor=\"let msg of data.messages\" @fadeInOut>\n <div class=\"toast-wrapper\">\n <div class=\"msg\">{{ msg }}</div>\n </div>\n </div>\n</div>\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component } from \"@angular/core\";\nimport { ToastDataService } from \"./toast.data.service\";\n\n@Component({\n selector: \"mis-teams-toast\",\n templateUrl: \"./toast.component.html\",\n styleUrls: [\"./toast.component.scss\"],\n animations: [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({ opacity: \"0\", transform: \"translateY(-50%)\", height: \"0\" }),\n animate(\"300ms ease-in\", style({ opacity: \"1\", transform: \"translateY(0)\", height: \"*\" }))\n ]),\n transition(\":leave\", [animate(\"300ms ease-in\", style({ opacity: \"0\", transform: \"translateY(50%)\" }))])\n ])\n ]\n})\nexport class ToastComponent {\n constructor(public data: ToastDataService) {}\n}\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { ToastComponent } from \"./toast.component\";\nimport { ToastDataService } from \"./toast.data.service\";\n\ntype Operations = \"created\" | \"updated\" | \"deleted\" | \"create\" | \"update\" | \"delete\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ToastService {\n constructor(private overlay: Overlay, private data: ToastDataService) {\n this.userProfilePortal = new ComponentPortal(ToastComponent);\n }\n private toastWrapperRef: OverlayRef;\n private messagePromises: Promise<void>[] = [];\n private userProfilePortal: ComponentPortal<ToastComponent>;\n\n messageBuilder = {\n error: {\n simple: \"Something went wrong. Please try again later.\",\n 400: \"Bad Request! We are working to fix this.\",\n 401: \"UNAUTHORISED\",\n 403: \"Sorry for the interruption but seems like your session has expired. Please login again and continue\",\n 404: \"Unable to find resource. Please try again later\"\n },\n item: (item: string) => {\n return {\n action: (act: Operations = \"updated\") => {\n const success = `Successfully ${act} ${item}.`;\n const failure = `Failed to ${act} ${item}.`;\n return {\n success,\n failure\n };\n }\n };\n },\n short: (act: Operations = \"updated\") => {\n const success = `Successfully ${act}.`;\n const failure = `Failed to ${act}.`;\n return {\n success,\n failure\n };\n },\n simple: (...args: string[]) => args.join(\" \"),\n simplest: \"Done!\"\n };\n\n displayMsg(msg: string, timeout = 3000): void {\n const positionStrategy = this.overlay.position().global().centerHorizontally();\n\n if (window?.innerWidth < 600) {\n positionStrategy.bottom(\"48px\");\n } else {\n positionStrategy.top(\"80px\");\n }\n const config = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy\n });\n if (!this.toastWrapperRef?.hasAttached()) {\n this.toastWrapperRef = this.overlay.create(config);\n this.toastWrapperRef.attach(this.userProfilePortal);\n }\n const messageId = this.data.updateMessage(msg);\n this.messagePromises.push(\n new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.data.removeMessage(messageId));\n if (!this.data.hasMessage()) {\n this.closeToastOverlay();\n }\n // adding 300ms for entry animation\n }, timeout + 300);\n })\n );\n Promise.race(this.messagePromises).then(() => {});\n }\n\n // tslint:disable-next-line\n private closeToastOverlay(): any {\n return setTimeout(() => {\n this.messagePromises = [];\n this.toastWrapperRef?.detach();\n // adding 300ms for exit animation\n }, 300);\n }\n}\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ToastComponent } from \"./toast.component\";\nimport { ToastDataService } from \"./toast.data.service\";\nimport { ToastService } from \"./toast.service\";\n\n@NgModule({\n declarations: [ToastComponent],\n imports: [CommonModule, OverlayModule]\n})\nexport class ToastModule {\n static forRoot(): ModuleWithProviders<ToastModule> {\n return {\n ngModule: ToastModule,\n providers: [ToastDataService, ToastService]\n };\n }\n\n static forChild(): ModuleWithProviders<ToastModule> {\n return {\n ngModule: ToastModule,\n providers: [ToastDataService, ToastService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ToastDataService","i2.ToastDataService"],"mappings":";;;;;;;;;MAKa,gBAAgB,CAAA;AAE3B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KACvD;AAED,IAAA,WAAA,GAAA;AALQ,QAAA,IAAA,CAAA,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;KAKpC;AAEhB,IAAA,aAAa,CAAC,GAAW,EAAA;QACvB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAC5B;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;KACjC;iFApBU,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;uEAAhB,gBAAgB,EAAA,OAAA,EAAhB,gBAAgB,CAAA,IAAA,EAAA,UAAA,EAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;iFAEP,gBAAgB,EAAA,CAAA;cAH5B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;;ICHC,EAAkD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACrB,CACR,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAS,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,EAC5B,EACF,CAAA;;;IAJiC,EAAU,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,CAAA,CAAA;IAE5B,EAAS,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAT,EAAS,CAAA,iBAAA,CAAA,MAAA,CAAA,CAAA;;MCenB,cAAc,CAAA;AACzB,IAAA,WAAA,CAAmB,IAAsB,EAAA;QAAtB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;KAAI;+EADlC,cAAc,EAAA,EAAA,CAAA,iBAAA,CAAAA,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDlB3B,EAA6B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC3B,EAAkD,CAAA,UAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAKpD,EAAM,CAAA,YAAA,EAAA,CAAA;;YALiB,EAAgB,CAAA,SAAA,EAAA,CAAA;YAAhB,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;ACOzB,SAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+uBAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;gBACV,OAAO,CAAC,WAAW,EAAE;oBACnB,UAAU,CAAC,QAAQ,EAAE;AACnB,wBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,wBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;qBAC3F,CAAC;oBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;iBACxG,CAAC;AACH,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;iFAEU,cAAc,EAAA,CAAA;cAd1B,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA;oBACV,OAAO,CAAC,WAAW,EAAE;wBACnB,UAAU,CAAC,QAAQ,EAAE;AACnB,4BAAA,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,4BAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;yBAC3F,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;qBACxG,CAAC;AACH,iBAAA,EAAA,QAAA,EAAA,sMAAA,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA,CAAA;;kFAEU,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCPd,YAAY,CAAA;IACvB,WAAoB,CAAA,OAAgB,EAAU,IAAsB,EAAA;QAAhD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;QAI5D,IAAe,CAAA,eAAA,GAAoB,EAAE,CAAC;AAG9C,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,+CAA+C;AACvD,gBAAA,GAAG,EAAE,0CAA0C;AAC/C,gBAAA,GAAG,EAAE,cAAc;AACnB,gBAAA,GAAG,EAAE,qGAAqG;AAC1G,gBAAA,GAAG,EAAE,iDAAiD;AACvD,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,IAAY,KAAI;gBACrB,OAAO;AACL,oBAAA,MAAM,EAAE,CAAC,GAAkB,GAAA,SAAS,KAAI;AACtC,wBAAA,MAAM,OAAO,GAAG,CAAA,aAAA,EAAgB,GAAG,CAAI,CAAA,EAAA,IAAI,GAAG,CAAC;AAC/C,wBAAA,MAAM,OAAO,GAAG,CAAA,UAAA,EAAa,GAAG,CAAI,CAAA,EAAA,IAAI,GAAG,CAAC;wBAC5C,OAAO;4BACL,OAAO;4BACP,OAAO;yBACR,CAAC;qBACH;iBACF,CAAC;aACH;AACD,YAAA,KAAK,EAAE,CAAC,GAAkB,GAAA,SAAS,KAAI;AACrC,gBAAA,MAAM,OAAO,GAAG,CAAgB,aAAA,EAAA,GAAG,GAAG,CAAC;AACvC,gBAAA,MAAM,OAAO,GAAG,CAAa,UAAA,EAAA,GAAG,GAAG,CAAC;gBACpC,OAAO;oBACL,OAAO;oBACP,OAAO;iBACR,CAAC;aACH;AACD,YAAA,MAAM,EAAE,CAAC,GAAG,IAAc,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7C,YAAA,QAAQ,EAAE,OAAO;SAClB,CAAC;QApCA,IAAI,CAAC,iBAAiB,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;KAC9D;AAqCD,IAAA,UAAU,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI,EAAA;AACpC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAE/E,QAAA,IAAI,MAAM,EAAE,UAAU,GAAG,GAAG,EAAE;AAC5B,YAAA,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;AACL,YAAA,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC9B;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;AAC/B,YAAA,WAAW,EAAE,KAAK;YAClB,gBAAgB;AACjB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE;YACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACrD;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YAC9B,UAAU,CAAC,MAAK;gBACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;oBAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;iBAC1B;;AAEH,aAAC,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;SACnB,CAAC,CACH,CAAC;AACF,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAO,GAAC,CAAC,CAAC;KACnD;;IAGO,iBAAiB,GAAA;QACvB,OAAO,UAAU,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;;SAEhC,EAAE,GAAG,CAAC,CAAC;KACT;6EA9EU,YAAY,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;uEAAZ,YAAY,EAAA,OAAA,EAAZ,YAAY,CAAA,IAAA,EAAA,UAAA,EAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;iFAEP,YAAY,EAAA,CAAA;cAHxB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;MCCY,WAAW,CAAA;AACtB,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;SAC5C,CAAC;KACH;AAED,IAAA,OAAO,QAAQ,GAAA;QACb,OAAO;AACL,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;SAC5C,CAAC;KACH;4EAbU,WAAW,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAX,WAAW,EAAA,CAAA,CAAA,EAAA;AAFV,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAE5B,WAAW,EAAA,CAAA;cAJvB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACzC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,WAAW,EAHL,EAAA,YAAA,EAAA,CAAA,cAAc,CACnB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACTzC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-toast.mjs","sources":["../../../projects/mis-components/toast/toast.data.service.ts","../../../projects/mis-components/toast/toast.component.html","../../../projects/mis-components/toast/toast.component.ts","../../../projects/mis-components/toast/toast.service.ts","../../../projects/mis-components/toast/toast.module.ts","../../../projects/mis-components/toast/mis-crystal-design-system-toast.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ToastDataService {\n private messageMap: Map<number, string> = new Map();\n get messages(): string[] {\n return Array.from(this.messageMap.values()).reverse();\n }\n\n constructor() {}\n\n updateMessage(msg: string): number {\n const id = new Date().getTime();\n this.messageMap.set(id, msg);\n return id;\n }\n\n removeMessage(id: number): void {\n this.messageMap.delete(id);\n }\n\n hasMessage(): boolean {\n return this.messageMap.size > 0;\n }\n}\n","<div class=\"toast-container\">\n <div *ngFor=\"let msg of data.messages\" @fadeInOut>\n <div class=\"toast-wrapper\">\n <div class=\"msg\">{{ msg }}</div>\n </div>\n </div>\n</div>\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component } from \"@angular/core\";\nimport { ToastDataService } from \"./toast.data.service\";\n\n@Component({\n selector: \"mis-teams-toast\",\n templateUrl: \"./toast.component.html\",\n styleUrls: [\"./toast.component.scss\"],\n animations: [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({ opacity: \"0\", transform: \"translateY(-50%)\", height: \"0\" }),\n animate(\"300ms ease-in\", style({ opacity: \"1\", transform: \"translateY(0)\", height: \"*\" }))\n ]),\n transition(\":leave\", [animate(\"300ms ease-in\", style({ opacity: \"0\", transform: \"translateY(50%)\" }))])\n ])\n ]\n})\nexport class ToastComponent {\n constructor(public data: ToastDataService) {}\n}\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { ToastComponent } from \"./toast.component\";\nimport { ToastDataService } from \"./toast.data.service\";\n\ntype Operations = \"created\" | \"updated\" | \"deleted\" | \"create\" | \"update\" | \"delete\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ToastService {\n constructor(private overlay: Overlay, private data: ToastDataService) {\n this.userProfilePortal = new ComponentPortal(ToastComponent);\n }\n private toastWrapperRef: OverlayRef;\n private messagePromises: Promise<void>[] = [];\n private userProfilePortal: ComponentPortal<ToastComponent>;\n\n messageBuilder = {\n error: {\n simple: \"Something went wrong. Please try again later.\",\n 400: \"Bad Request! We are working to fix this.\",\n 401: \"UNAUTHORISED\",\n 403: \"Sorry for the interruption but seems like your session has expired. Please login again and continue\",\n 404: \"Unable to find resource. Please try again later\"\n },\n item: (item: string) => {\n return {\n action: (act: Operations = \"updated\") => {\n const success = `Successfully ${act} ${item}.`;\n const failure = `Failed to ${act} ${item}.`;\n return {\n success,\n failure\n };\n }\n };\n },\n short: (act: Operations = \"updated\") => {\n const success = `Successfully ${act}.`;\n const failure = `Failed to ${act}.`;\n return {\n success,\n failure\n };\n },\n simple: (...args: string[]) => args.join(\" \"),\n simplest: \"Done!\"\n };\n\n displayMsg(msg: string, timeout = 3000): void {\n const positionStrategy = this.overlay.position().global().centerHorizontally();\n\n if (window?.innerWidth < 600) {\n positionStrategy.bottom(\"48px\");\n } else {\n positionStrategy.top(\"80px\");\n }\n const config = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy\n });\n if (!this.toastWrapperRef?.hasAttached()) {\n this.toastWrapperRef = this.overlay.create(config);\n this.toastWrapperRef.attach(this.userProfilePortal);\n }\n const messageId = this.data.updateMessage(msg);\n this.messagePromises.push(\n new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.data.removeMessage(messageId));\n if (!this.data.hasMessage()) {\n this.closeToastOverlay();\n }\n // adding 300ms for entry animation\n }, timeout + 300);\n })\n );\n Promise.race(this.messagePromises).then(() => {});\n }\n\n // tslint:disable-next-line\n private closeToastOverlay(): any {\n return setTimeout(() => {\n this.messagePromises = [];\n this.toastWrapperRef?.detach();\n // adding 300ms for exit animation\n }, 300);\n }\n}\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ToastComponent } from \"./toast.component\";\nimport { ToastDataService } from \"./toast.data.service\";\nimport { ToastService } from \"./toast.service\";\n\n@NgModule({\n declarations: [ToastComponent],\n imports: [CommonModule, OverlayModule]\n})\nexport class ToastModule {\n static forRoot(): ModuleWithProviders<ToastModule> {\n return {\n ngModule: ToastModule,\n providers: [ToastDataService, ToastService]\n };\n }\n\n static forChild(): ModuleWithProviders<ToastModule> {\n return {\n ngModule: ToastModule,\n providers: [ToastDataService, ToastService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ToastDataService","i2.ToastDataService"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ViewChild, Directive,
|
|
2
|
+
import { Component, ViewChild, Directive, HostListener, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/cdk/overlay';
|
|
4
4
|
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
5
5
|
import { take } from 'rxjs/operators';
|
|
@@ -10,7 +10,8 @@ import { genPositionPairs } from 'mis-crystal-design-system/utils';
|
|
|
10
10
|
|
|
11
11
|
const _c0 = ["container"];
|
|
12
12
|
const _c1 = (a0, a1, a2, a3) => ({ "arrow-left": a0, "arrow-right": a1, "arrow-top": a2, "arrow-bottom": a3 });
|
|
13
|
-
const _c2 = a0 => ({
|
|
13
|
+
const _c2 = a0 => ({ $implicit: a0 });
|
|
14
|
+
const _c3 = a0 => ({ "text-align": a0 });
|
|
14
15
|
function ToolTipComponent_div_0_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
16
|
i0.ɵɵelementContainer(0);
|
|
16
17
|
} }
|
|
@@ -21,24 +22,24 @@ function ToolTipComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
21
22
|
} if (rf & 2) {
|
|
22
23
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
23
24
|
i0.ɵɵadvance();
|
|
24
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.
|
|
25
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c2, ctx_r0.templateContext));
|
|
25
26
|
} }
|
|
26
27
|
function ToolTipComponent_div_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
27
28
|
i0.ɵɵelement(0, "div", 8);
|
|
28
29
|
} if (rf & 2) {
|
|
29
30
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
30
|
-
i0.ɵɵproperty("innerHTML", ctx_r0.toolTipText, i0.ɵɵsanitizeHtml)("ngStyle", i0.ɵɵpureFunction1(2,
|
|
31
|
+
i0.ɵɵproperty("innerHTML", ctx_r0.toolTipText, i0.ɵɵsanitizeHtml)("ngStyle", i0.ɵɵpureFunction1(2, _c3, ctx_r0.toolTipTextAlignment ? ctx_r0.toolTipTextAlignment : ""));
|
|
31
32
|
} }
|
|
32
33
|
function ToolTipComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
33
34
|
i0.ɵɵelementStart(0, "div", 3, 0)(2, "div", 4);
|
|
34
|
-
i0.ɵɵtemplate(3, ToolTipComponent_div_0_div_3_Template, 2,
|
|
35
|
+
i0.ɵɵtemplate(3, ToolTipComponent_div_0_div_3_Template, 2, 4, "div", 5)(4, ToolTipComponent_div_0_ng_template_4_Template, 1, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
35
36
|
i0.ɵɵelement(6, "span", 6);
|
|
36
37
|
i0.ɵɵelementEnd()();
|
|
37
38
|
} if (rf & 2) {
|
|
38
39
|
const tooltipText_r2 = i0.ɵɵreference(5);
|
|
39
40
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
40
41
|
i0.ɵɵadvance(3);
|
|
41
|
-
i0.ɵɵproperty("ngIf", ctx_r0.
|
|
42
|
+
i0.ɵɵproperty("ngIf", ctx_r0.templateRef)("ngIfElse", tooltipText_r2);
|
|
42
43
|
i0.ɵɵadvance(3);
|
|
43
44
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(3, _c1, ctx_r0.toolTipPosition === "left", ctx_r0.toolTipPosition === "right", ctx_r0.toolTipPosition === "top", ctx_r0.toolTipPosition === "bottom"));
|
|
44
45
|
} }
|
|
@@ -68,15 +69,15 @@ class ToolTipComponent {
|
|
|
68
69
|
} if (rf & 2) {
|
|
69
70
|
let _t;
|
|
70
71
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
|
71
|
-
} }, decls: 1, vars: 1, consts: [["container", ""], ["tooltipText", ""], ["id", "tooltip-container", 4, "ngIf"], ["id", "tooltip-container"], ["id", "tooltip"], [4, "ngIf", "ngIfElse"], ["id", "arrow", 3, "ngClass"], [4, "ngTemplateOutlet"], ["id", "tooltip-text", 3, "innerHTML", "ngStyle"]], template: function ToolTipComponent_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
} }, decls: 1, vars: 1, consts: [["container", ""], ["tooltipText", ""], ["id", "tooltip-container", 4, "ngIf"], ["id", "tooltip-container"], ["id", "tooltip"], [4, "ngIf", "ngIfElse"], ["id", "arrow", 3, "ngClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["id", "tooltip-text", 3, "innerHTML", "ngStyle"]], template: function ToolTipComponent_Template(rf, ctx) { if (rf & 1) {
|
|
72
73
|
i0.ɵɵtemplate(0, ToolTipComponent_div_0_Template, 7, 8, "div", 2);
|
|
73
74
|
} if (rf & 2) {
|
|
74
|
-
i0.ɵɵproperty("ngIf", ctx.toolTipText.length > 0 || ctx.
|
|
75
|
+
i0.ɵɵproperty("ngIf", ctx.toolTipText.length > 0 || ctx.templateRef);
|
|
75
76
|
} }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:#fff;background:#181f33;font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:#181f33;z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"] }); }
|
|
76
77
|
}
|
|
77
78
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipComponent, [{
|
|
78
79
|
type: Component,
|
|
79
|
-
args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText.length > 0 ||
|
|
80
|
+
args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText.length > 0 || templateRef\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"templateRef; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: templateContext}\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment ? toolTipTextAlignment : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition === 'left',\n 'arrow-right': toolTipPosition === 'right',\n 'arrow-top': toolTipPosition === 'top',\n 'arrow-bottom': toolTipPosition === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: ["#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:#fff;background:#181f33;font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:#181f33;z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
|
|
80
81
|
}], () => [], { container: [{
|
|
81
82
|
type: ViewChild,
|
|
82
83
|
args: ["container"]
|
|
@@ -103,6 +104,9 @@ class ToolTipDirective {
|
|
|
103
104
|
set tooltipTemplate(value) {
|
|
104
105
|
this.templateRef = value;
|
|
105
106
|
}
|
|
107
|
+
set tooltipTemplateContext(value) {
|
|
108
|
+
this.templateContext = value;
|
|
109
|
+
}
|
|
106
110
|
onMouseEnter() {
|
|
107
111
|
if (this.showOnHover)
|
|
108
112
|
this.displayToolTip();
|
|
@@ -147,7 +151,8 @@ class ToolTipDirective {
|
|
|
147
151
|
this.overlayRef = this.overlay.create(config);
|
|
148
152
|
const tempRef = new ComponentPortal(ToolTipComponent, this.viewContainerRef);
|
|
149
153
|
const tooltipRef = this.overlayRef.attach(tempRef);
|
|
150
|
-
tooltipRef.instance.
|
|
154
|
+
tooltipRef.instance.templateRef = this.templateRef;
|
|
155
|
+
tooltipRef.instance.templateContext = this.templateContext;
|
|
151
156
|
tooltipRef.instance.toolTipText = this.toolTipText;
|
|
152
157
|
tooltipRef.instance.toolTipPosition = this.toolTipPosition;
|
|
153
158
|
tooltipRef.instance.toolTipTextAlignment = this.toolTipTextAlignment;
|
|
@@ -185,7 +190,7 @@ class ToolTipDirective {
|
|
|
185
190
|
static { this.ɵfac = function ToolTipDirective_Factory(t) { return new (t || ToolTipDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
|
|
186
191
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ToolTipDirective, selectors: [["", "misToolTip", ""]], hostBindings: function ToolTipDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
187
192
|
i0.ɵɵlistener("mouseenter", function ToolTipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseEnter(); })("mouseleave", function ToolTipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseLeave(); });
|
|
188
|
-
} }, inputs: { showOnHover: "showOnHover", showToolTip: "showToolTip", text: "text", position: "position", alignText: "alignText", tooltipTemplate: "tooltipTemplate" } }); }
|
|
193
|
+
} }, inputs: { showOnHover: "showOnHover", showToolTip: "showToolTip", text: "text", position: "position", alignText: "alignText", tooltipTemplate: "tooltipTemplate", tooltipTemplateContext: "tooltipTemplateContext" } }); }
|
|
189
194
|
}
|
|
190
195
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipDirective, [{
|
|
191
196
|
type: Directive,
|
|
@@ -204,6 +209,8 @@ class ToolTipDirective {
|
|
|
204
209
|
type: Input
|
|
205
210
|
}], tooltipTemplate: [{
|
|
206
211
|
type: Input
|
|
212
|
+
}], tooltipTemplateContext: [{
|
|
213
|
+
type: Input
|
|
207
214
|
}], onMouseEnter: [{
|
|
208
215
|
type: HostListener,
|
|
209
216
|
args: ["mouseenter"]
|