@scania-nl/tegel-angular-extensions 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -24
- package/esm2022/index.mjs +3 -1
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.component.mjs +366 -0
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.constants.mjs +24 -0
- package/esm2022/lib/components/tae-date-time-picker/tae-date-time-picker.utils.mjs +148 -0
- package/esm2022/lib/directives/typed-template.directive.mjs +38 -0
- package/esm2022/lib/modal/components/modal/modal.component.mjs +10 -3
- package/esm2022/lib/modal/schema/modal.model.mjs +1 -1
- package/index.d.ts +176 -7
- package/package.json +1 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses an ISO date segment (`YYYY-MM-DD`) into local date parts.
|
|
3
|
+
* @param datePart ISO date segment to parse.
|
|
4
|
+
* @returns Parsed date parts or `null` when invalid.
|
|
5
|
+
*/
|
|
6
|
+
export function parseDatePartsFromIso(datePart) {
|
|
7
|
+
if (!datePart)
|
|
8
|
+
return null;
|
|
9
|
+
// Split on the ISO separator and validate expected parts.
|
|
10
|
+
const parts = datePart.split('-');
|
|
11
|
+
if (parts.length !== 3)
|
|
12
|
+
return null;
|
|
13
|
+
// Convert to numbers and normalize month to 0-based.
|
|
14
|
+
const year = parseInt(parts[0], 10);
|
|
15
|
+
const month = parseInt(parts[1], 10) - 1;
|
|
16
|
+
const day = parseInt(parts[2], 10);
|
|
17
|
+
// Reject invalid dates early.
|
|
18
|
+
if (!isValidDateParts(year, month, day))
|
|
19
|
+
return null;
|
|
20
|
+
return { year, month, day };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validates date parts (0-based month) against calendar limits.
|
|
24
|
+
* @param year Full year value.
|
|
25
|
+
* @param month Zero-based month.
|
|
26
|
+
* @param day Day of month (1-based).
|
|
27
|
+
* @returns `true` when the date exists in the calendar.
|
|
28
|
+
*/
|
|
29
|
+
export function isValidDateParts(year, month, day) {
|
|
30
|
+
if (!Number.isFinite(year) ||
|
|
31
|
+
!Number.isFinite(month) ||
|
|
32
|
+
!Number.isFinite(day)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Basic range checks for month/day.
|
|
36
|
+
if (month < 0 || month > 11 || day < 1)
|
|
37
|
+
return false;
|
|
38
|
+
// Ensure the day exists in the target month/year.
|
|
39
|
+
const lastDay = new Date(year, month + 1, 0).getDate();
|
|
40
|
+
return day <= lastDay;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Formats an ISO date/datetime value into `dd-MM-YYYY` display format.
|
|
44
|
+
* @param value ISO date or datetime string.
|
|
45
|
+
* @param mode Formatting mode (`date` or `datetime`).
|
|
46
|
+
* @returns Display-friendly string.
|
|
47
|
+
*/
|
|
48
|
+
export function formatDisplayDateTime(value, mode) {
|
|
49
|
+
if (!value) {
|
|
50
|
+
return '';
|
|
51
|
+
}
|
|
52
|
+
if (mode === 'time') {
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
if (mode === 'datetime') {
|
|
56
|
+
const [datePart, timePart] = value.split('T');
|
|
57
|
+
if (!datePart)
|
|
58
|
+
return value;
|
|
59
|
+
// Expect ISO `YYYY-MM-DD` for the date portion.
|
|
60
|
+
const dateParts = datePart.split('-');
|
|
61
|
+
if (dateParts.length !== 3)
|
|
62
|
+
return value;
|
|
63
|
+
const [year, month, day] = dateParts;
|
|
64
|
+
const formattedDate = `${day}-${month}-${year}`;
|
|
65
|
+
// Preserve time if present.
|
|
66
|
+
if (timePart) {
|
|
67
|
+
return `${formattedDate} ${timePart}`;
|
|
68
|
+
}
|
|
69
|
+
return formattedDate;
|
|
70
|
+
}
|
|
71
|
+
// Date-only mode expects ISO `YYYY-MM-DD`.
|
|
72
|
+
const parts = value.split('-');
|
|
73
|
+
if (parts.length !== 3)
|
|
74
|
+
return value;
|
|
75
|
+
const [year, month, day] = parts;
|
|
76
|
+
return `${day}-${month}-${year}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Builds a 6x7 calendar grid for the provided month/year.
|
|
80
|
+
* Includes trailing days from previous/next months to fill the grid.
|
|
81
|
+
* @param currentYear Target year.
|
|
82
|
+
* @param currentMonth Target month (0-based).
|
|
83
|
+
* @param selected Selected date parts or `null`.
|
|
84
|
+
* @param today Reference date for the "today" flag.
|
|
85
|
+
* @returns Calendar day entries for rendering.
|
|
86
|
+
*/
|
|
87
|
+
export function buildCalendarDays(currentYear, currentMonth, selected, today) {
|
|
88
|
+
const calendarDays = [];
|
|
89
|
+
const firstDay = new Date(currentYear, currentMonth, 1);
|
|
90
|
+
const lastDay = new Date(currentYear, currentMonth + 1, 0);
|
|
91
|
+
const todayYear = today.getFullYear();
|
|
92
|
+
const todayMonth = today.getMonth();
|
|
93
|
+
const todayDay = today.getDate();
|
|
94
|
+
// Get the day of week for the first day (0 = Sunday, we want Monday = 0).
|
|
95
|
+
let startDay = firstDay.getDay() - 1;
|
|
96
|
+
if (startDay < 0)
|
|
97
|
+
startDay = 6;
|
|
98
|
+
// Helper to flag if a given day is selected.
|
|
99
|
+
const isSelected = (day, month, year) => !!selected &&
|
|
100
|
+
selected.day === day &&
|
|
101
|
+
selected.month === month &&
|
|
102
|
+
selected.year === year;
|
|
103
|
+
// Previous month days
|
|
104
|
+
const prevMonthLastDay = new Date(currentYear, currentMonth, 0).getDate();
|
|
105
|
+
const prevMonth = currentMonth === 0 ? 11 : currentMonth - 1;
|
|
106
|
+
const prevYear = currentMonth === 0 ? currentYear - 1 : currentYear;
|
|
107
|
+
for (let i = startDay - 1; i >= 0; i--) {
|
|
108
|
+
const day = prevMonthLastDay - i;
|
|
109
|
+
calendarDays.push({
|
|
110
|
+
date: day,
|
|
111
|
+
month: prevMonth,
|
|
112
|
+
year: prevYear,
|
|
113
|
+
isCurrentMonth: false,
|
|
114
|
+
isToday: false,
|
|
115
|
+
isSelected: isSelected(day, prevMonth, prevYear),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// Current month days
|
|
119
|
+
for (let day = 1; day <= lastDay.getDate(); day++) {
|
|
120
|
+
const isToday = day === todayDay &&
|
|
121
|
+
currentMonth === todayMonth &&
|
|
122
|
+
currentYear === todayYear;
|
|
123
|
+
calendarDays.push({
|
|
124
|
+
date: day,
|
|
125
|
+
month: currentMonth,
|
|
126
|
+
year: currentYear,
|
|
127
|
+
isCurrentMonth: true,
|
|
128
|
+
isToday,
|
|
129
|
+
isSelected: isSelected(day, currentMonth, currentYear),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Next month days to fill the grid (6 rows x 7 days = 42).
|
|
133
|
+
const remainingDays = 42 - calendarDays.length;
|
|
134
|
+
const nextMonth = currentMonth === 11 ? 0 : currentMonth + 1;
|
|
135
|
+
const nextYear = currentMonth === 11 ? currentYear + 1 : currentYear;
|
|
136
|
+
for (let day = 1; day <= remainingDays; day++) {
|
|
137
|
+
calendarDays.push({
|
|
138
|
+
date: day,
|
|
139
|
+
month: nextMonth,
|
|
140
|
+
year: nextYear,
|
|
141
|
+
isCurrentMonth: false,
|
|
142
|
+
isToday: false,
|
|
143
|
+
isSelected: isSelected(day, nextMonth, nextYear),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return calendarDays;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFlLWRhdGUtdGltZS1waWNrZXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RlZ2VsLWFuZ3VsYXItZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvdGFlLWRhdGUtdGltZS1waWNrZXIvdGFlLWRhdGUtdGltZS1waWNrZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQztJQUMzQiwwREFBMEQ7SUFDMUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXBDLHFEQUFxRDtJQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkMsOEJBQThCO0lBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXJELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQVksRUFDWixLQUFhLEVBQ2IsR0FBVztJQUVY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Q2pELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJlcHJlc2VudHMgYSBub3JtYWxpemVkIGRhdGUgaW4gbG9jYWwgdGltZSAoMC1iYXNlZCBtb250aCkuICovXG5leHBvcnQgdHlwZSBEYXRlUGFydHMgPSB7XG4gIHllYXI6IG51bWJlcjtcbiAgbW9udGg6IG51bWJlcjtcbiAgZGF5OiBudW1iZXI7XG59O1xuXG4vKiogQSBzaW5nbGUgZGF5IGVudHJ5IHVzZWQgYnkgdGhlIGNhbGVuZGFyIGdyaWQgcmVuZGVyZXIuICovXG5leHBvcnQgdHlwZSBDYWxlbmRhckRheSA9IHtcbiAgZGF0ZTogbnVtYmVyO1xuICBtb250aDogbnVtYmVyO1xuICB5ZWFyOiBudW1iZXI7XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICBpc1RvZGF5OiBib29sZWFuO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgYW4gSVNPIGRhdGUgc2VnbWVudCAoYFlZWVktTU0tRERgKSBpbnRvIGxvY2FsIGRhdGUgcGFydHMuXG4gKiBAcGFyYW0gZGF0ZVBhcnQgSVNPIGRhdGUgc2VnbWVudCB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFBhcnNlZCBkYXRlIHBhcnRzIG9yIGBudWxsYCB3aGVuIGludmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURhdGVQYXJ0c0Zyb21Jc28oZGF0ZVBhcnQ6IHN0cmluZyk6IERhdGVQYXJ0cyB8IG51bGwge1xuICBpZiAoIWRhdGVQYXJ0KSByZXR1cm4gbnVsbDtcbiAgLy8gU3BsaXQgb24gdGhlIElTTyBzZXBhcmF0b3IgYW5kIHZhbGlkYXRlIGV4cGVjdGVkIHBhcnRzLlxuICBjb25zdCBwYXJ0cyA9IGRhdGVQYXJ0LnNwbGl0KCctJyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHJldHVybiBudWxsO1xuXG4gIC8vIENvbnZlcnQgdG8gbnVtYmVycyBhbmQgbm9ybWFsaXplIG1vbnRoIHRvIDAtYmFzZWQuXG4gIGNvbnN0IHllYXIgPSBwYXJzZUludChwYXJ0c1swXSwgMTApO1xuICBjb25zdCBtb250aCA9IHBhcnNlSW50KHBhcnRzWzFdLCAxMCkgLSAxO1xuICBjb25zdCBkYXkgPSBwYXJzZUludChwYXJ0c1syXSwgMTApO1xuXG4gIC8vIFJlamVjdCBpbnZhbGlkIGRhdGVzIGVhcmx5LlxuICBpZiAoIWlzVmFsaWREYXRlUGFydHMoeWVhciwgbW9udGgsIGRheSkpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiB7IHllYXIsIG1vbnRoLCBkYXkgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgZGF0ZSBwYXJ0cyAoMC1iYXNlZCBtb250aCkgYWdhaW5zdCBjYWxlbmRhciBsaW1pdHMuXG4gKiBAcGFyYW0geWVhciBGdWxsIHllYXIgdmFsdWUuXG4gKiBAcGFyYW0gbW9udGggWmVyby1iYXNlZCBtb250aC5cbiAqIEBwYXJhbSBkYXkgRGF5IG9mIG1vbnRoICgxLWJhc2VkKS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBkYXRlIGV4aXN0cyBpbiB0aGUgY2FsZW5kYXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRGF0ZVBhcnRzKFxuICB5ZWFyOiBudW1iZXIsXG4gIG1vbnRoOiBudW1iZXIsXG4gIGRheTogbnVtYmVyLFxuKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzRmluaXRlKHllYXIpIHx8XG4gICAgIU51bWJlci5pc0Zpbml0ZShtb250aCkgfHxcbiAgICAhTnVtYmVyLmlzRmluaXRlKGRheSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIEJhc2ljIHJhbmdlIGNoZWNrcyBmb3IgbW9udGgvZGF5LlxuICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEgfHwgZGF5IDwgMSkgcmV0dXJuIGZhbHNlO1xuICAvLyBFbnN1cmUgdGhlIGRheSBleGlzdHMgaW4gdGhlIHRhcmdldCBtb250aC95ZWFyLlxuICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKS5nZXREYXRlKCk7XG4gIHJldHVybiBkYXkgPD0gbGFzdERheTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGFuIElTTyBkYXRlL2RhdGV0aW1lIHZhbHVlIGludG8gYGRkLU1NLVlZWVlgIGRpc3BsYXkgZm9ybWF0LlxuICogQHBhcmFtIHZhbHVlIElTTyBkYXRlIG9yIGRhdGV0aW1lIHN0cmluZy5cbiAqIEBwYXJhbSBtb2RlIEZvcm1hdHRpbmcgbW9kZSAoYGRhdGVgIG9yIGBkYXRldGltZWApLlxuICogQHJldHVybnMgRGlzcGxheS1mcmllbmRseSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXNwbGF5RGF0ZVRpbWUoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIG1vZGU6ICdkYXRlJyB8ICdkYXRldGltZScgfCAndGltZScsXG4pOiBzdHJpbmcge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKG1vZGUgPT09ICd0aW1lJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChtb2RlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgY29uc3QgW2RhdGVQYXJ0LCB0aW1lUGFydF0gPSB2YWx1ZS5zcGxpdCgnVCcpO1xuICAgIGlmICghZGF0ZVBhcnQpIHJldHVybiB2YWx1ZTtcblxuICAgIC8vIEV4cGVjdCBJU08gYFlZWVktTU0tRERgIGZvciB0aGUgZGF0ZSBwb3J0aW9uLlxuICAgIGNvbnN0IGRhdGVQYXJ0cyA9IGRhdGVQYXJ0LnNwbGl0KCctJyk7XG4gICAgaWYgKGRhdGVQYXJ0cy5sZW5ndGggIT09IDMpIHJldHVybiB2YWx1ZTtcblxuICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGRhdGVQYXJ0cztcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9YDtcblxuICAgIC8vIFByZXNlcnZlIHRpbWUgaWYgcHJlc2VudC5cbiAgICBpZiAodGltZVBhcnQpIHtcbiAgICAgIHJldHVybiBgJHtmb3JtYXR0ZWREYXRlfSAke3RpbWVQYXJ0fWA7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICB9XG5cbiAgLy8gRGF0ZS1vbmx5IG1vZGUgZXhwZWN0cyBJU08gYFlZWVktTU0tRERgLlxuICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KCctJyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHJldHVybiB2YWx1ZTtcblxuICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBwYXJ0cztcbiAgcmV0dXJuIGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgNng3IGNhbGVuZGFyIGdyaWQgZm9yIHRoZSBwcm92aWRlZCBtb250aC95ZWFyLlxuICogSW5jbHVkZXMgdHJhaWxpbmcgZGF5cyBmcm9tIHByZXZpb3VzL25leHQgbW9udGhzIHRvIGZpbGwgdGhlIGdyaWQuXG4gKiBAcGFyYW0gY3VycmVudFllYXIgVGFyZ2V0IHllYXIuXG4gKiBAcGFyYW0gY3VycmVudE1vbnRoIFRhcmdldCBtb250aCAoMC1iYXNlZCkuXG4gKiBAcGFyYW0gc2VsZWN0ZWQgU2VsZWN0ZWQgZGF0ZSBwYXJ0cyBvciBgbnVsbGAuXG4gKiBAcGFyYW0gdG9kYXkgUmVmZXJlbmNlIGRhdGUgZm9yIHRoZSBcInRvZGF5XCIgZmxhZy5cbiAqIEByZXR1cm5zIENhbGVuZGFyIGRheSBlbnRyaWVzIGZvciByZW5kZXJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENhbGVuZGFyRGF5cyhcbiAgY3VycmVudFllYXI6IG51bWJlcixcbiAgY3VycmVudE1vbnRoOiBudW1iZXIsXG4gIHNlbGVjdGVkOiBEYXRlUGFydHMgfCBudWxsLFxuICB0b2RheTogRGF0ZSxcbik6IENhbGVuZGFyRGF5W10ge1xuICBjb25zdCBjYWxlbmRhckRheXM6IENhbGVuZGFyRGF5W10gPSBbXTtcblxuICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKGN1cnJlbnRZZWFyLCBjdXJyZW50TW9udGgsIDEpO1xuICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCArIDEsIDApO1xuICBjb25zdCB0b2RheVllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCB0b2RheU1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcbiAgY29uc3QgdG9kYXlEYXkgPSB0b2RheS5nZXREYXRlKCk7XG5cbiAgLy8gR2V0IHRoZSBkYXkgb2Ygd2VlayBmb3IgdGhlIGZpcnN0IGRheSAoMCA9IFN1bmRheSwgd2Ugd2FudCBNb25kYXkgPSAwKS5cbiAgbGV0IHN0YXJ0RGF5ID0gZmlyc3REYXkuZ2V0RGF5KCkgLSAxO1xuICBpZiAoc3RhcnREYXkgPCAwKSBzdGFydERheSA9IDY7XG5cbiAgLy8gSGVscGVyIHRvIGZsYWcgaWYgYSBnaXZlbiBkYXkgaXMgc2VsZWN0ZWQuXG4gIGNvbnN0IGlzU2VsZWN0ZWQgPSAoZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcik6IGJvb2xlYW4gPT5cbiAgICAhIXNlbGVjdGVkICYmXG4gICAgc2VsZWN0ZWQuZGF5ID09PSBkYXkgJiZcbiAgICBzZWxlY3RlZC5tb250aCA9PT0gbW9udGggJiZcbiAgICBzZWxlY3RlZC55ZWFyID09PSB5ZWFyO1xuXG4gIC8vIFByZXZpb3VzIG1vbnRoIGRheXNcbiAgY29uc3QgcHJldk1vbnRoTGFzdERheSA9IG5ldyBEYXRlKGN1cnJlbnRZZWFyLCBjdXJyZW50TW9udGgsIDApLmdldERhdGUoKTtcbiAgY29uc3QgcHJldk1vbnRoID0gY3VycmVudE1vbnRoID09PSAwID8gMTEgOiBjdXJyZW50TW9udGggLSAxO1xuICBjb25zdCBwcmV2WWVhciA9IGN1cnJlbnRNb250aCA9PT0gMCA/IGN1cnJlbnRZZWFyIC0gMSA6IGN1cnJlbnRZZWFyO1xuICBmb3IgKGxldCBpID0gc3RhcnREYXkgLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IGRheSA9IHByZXZNb250aExhc3REYXkgLSBpO1xuICAgIGNhbGVuZGFyRGF5cy5wdXNoKHtcbiAgICAgIGRhdGU6IGRheSxcbiAgICAgIG1vbnRoOiBwcmV2TW9udGgsXG4gICAgICB5ZWFyOiBwcmV2WWVhcixcbiAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZSxcbiAgICAgIGlzVG9kYXk6IGZhbHNlLFxuICAgICAgaXNTZWxlY3RlZDogaXNTZWxlY3RlZChkYXksIHByZXZNb250aCwgcHJldlllYXIpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ3VycmVudCBtb250aCBkYXlzXG4gIGZvciAobGV0IGRheSA9IDE7IGRheSA8PSBsYXN0RGF5LmdldERhdGUoKTsgZGF5KyspIHtcbiAgICBjb25zdCBpc1RvZGF5ID1cbiAgICAgIGRheSA9PT0gdG9kYXlEYXkgJiZcbiAgICAgIGN1cnJlbnRNb250aCA9PT0gdG9kYXlNb250aCAmJlxuICAgICAgY3VycmVudFllYXIgPT09IHRvZGF5WWVhcjtcbiAgICBjYWxlbmRhckRheXMucHVzaCh7XG4gICAgICBkYXRlOiBkYXksXG4gICAgICBtb250aDogY3VycmVudE1vbnRoLFxuICAgICAgeWVhcjogY3VycmVudFllYXIsXG4gICAgICBpc0N1cnJlbnRNb250aDogdHJ1ZSxcbiAgICAgIGlzVG9kYXksXG4gICAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkKGRheSwgY3VycmVudE1vbnRoLCBjdXJyZW50WWVhciksXG4gICAgfSk7XG4gIH1cblxuICAvLyBOZXh0IG1vbnRoIGRheXMgdG8gZmlsbCB0aGUgZ3JpZCAoNiByb3dzIHggNyBkYXlzID0gNDIpLlxuICBjb25zdCByZW1haW5pbmdEYXlzID0gNDIgLSBjYWxlbmRhckRheXMubGVuZ3RoO1xuICBjb25zdCBuZXh0TW9udGggPSBjdXJyZW50TW9udGggPT09IDExID8gMCA6IGN1cnJlbnRNb250aCArIDE7XG4gIGNvbnN0IG5leHRZZWFyID0gY3VycmVudE1vbnRoID09PSAxMSA/IGN1cnJlbnRZZWFyICsgMSA6IGN1cnJlbnRZZWFyO1xuICBmb3IgKGxldCBkYXkgPSAxOyBkYXkgPD0gcmVtYWluaW5nRGF5czsgZGF5KyspIHtcbiAgICBjYWxlbmRhckRheXMucHVzaCh7XG4gICAgICBkYXRlOiBkYXksXG4gICAgICBtb250aDogbmV4dE1vbnRoLFxuICAgICAgeWVhcjogbmV4dFllYXIsXG4gICAgICBpc0N1cnJlbnRNb250aDogZmFsc2UsXG4gICAgICBpc1RvZGF5OiBmYWxzZSxcbiAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQoZGF5LCBuZXh0TW9udGgsIG5leHRZZWFyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjYWxlbmRhckRheXM7XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* eslint-disable @angular-eslint/directive-selector */
|
|
2
|
+
import { Directive, input } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Directive that provides typed context for an `ng-template`.
|
|
6
|
+
*
|
|
7
|
+
* This is a compile-time helper: it does not affect runtime behavior,
|
|
8
|
+
* but it allows Angular's template type checker to infer the template context.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```html
|
|
12
|
+
* <ng-template #tpl let-data [typedContext]="someContext">...</ng-template>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export class TypedTemplateDirective {
|
|
16
|
+
/**
|
|
17
|
+
* Typed context value used only for type inference.
|
|
18
|
+
* This input is not read at runtime.
|
|
19
|
+
*/
|
|
20
|
+
typedContext = input.required();
|
|
21
|
+
/**
|
|
22
|
+
* Template context guard to inform Angular's template type system.
|
|
23
|
+
* Always returns `true` at runtime; used purely for typing.
|
|
24
|
+
*/
|
|
25
|
+
static ngTemplateContextGuard(dir, ctx) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TypedTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TypedTemplateDirective, isStandalone: true, selector: "ng-template[typedContext]", inputs: { typedContext: { classPropertyName: "typedContext", publicName: "typedContext", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TypedTemplateDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: 'ng-template[typedContext]',
|
|
35
|
+
standalone: true,
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9kaXJlY3RpdmVzL3R5cGVkLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBZSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTlEOzs7Ozs7Ozs7O0dBVUc7QUFLSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7T0FHRztJQUNNLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO0lBRXpEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FDM0IsR0FBOEIsRUFDOUIsR0FBWTtRQUVaLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzt3R0FoQlUsc0JBQXNCOzRGQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvciAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBwcm92aWRlcyB0eXBlZCBjb250ZXh0IGZvciBhbiBgbmctdGVtcGxhdGVgLlxuICpcbiAqIFRoaXMgaXMgYSBjb21waWxlLXRpbWUgaGVscGVyOiBpdCBkb2VzIG5vdCBhZmZlY3QgcnVudGltZSBiZWhhdmlvcixcbiAqIGJ1dCBpdCBhbGxvd3MgQW5ndWxhcidzIHRlbXBsYXRlIHR5cGUgY2hlY2tlciB0byBpbmZlciB0aGUgdGVtcGxhdGUgY29udGV4dC5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDxuZy10ZW1wbGF0ZSAjdHBsIGxldC1kYXRhIFt0eXBlZENvbnRleHRdPVwic29tZUNvbnRleHRcIj4uLi48L25nLXRlbXBsYXRlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R5cGVkQ29udGV4dF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUeXBlZFRlbXBsYXRlRGlyZWN0aXZlPFQ+IHtcbiAgLyoqXG4gICAqIFR5cGVkIGNvbnRleHQgdmFsdWUgdXNlZCBvbmx5IGZvciB0eXBlIGluZmVyZW5jZS5cbiAgICogVGhpcyBpbnB1dCBpcyBub3QgcmVhZCBhdCBydW50aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZWRDb250ZXh0ID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8VD4+KCk7XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIGNvbnRleHQgZ3VhcmQgdG8gaW5mb3JtIEFuZ3VsYXIncyB0ZW1wbGF0ZSB0eXBlIHN5c3RlbS5cbiAgICogQWx3YXlzIHJldHVybnMgYHRydWVgIGF0IHJ1bnRpbWU7IHVzZWQgcHVyZWx5IGZvciB0eXBpbmcuXG4gICAqL1xuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxUPihcbiAgICBkaXI6IFR5cGVkVGVtcGxhdGVEaXJlY3RpdmU8VD4sXG4gICAgY3R4OiB1bmtub3duLFxuICApOiBjdHggaXMgeyAkaW1wbGljaXQ6IFQgfSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -53,6 +53,13 @@ export class ModalComponent {
|
|
|
53
53
|
isComponentBody(body) {
|
|
54
54
|
return typeof body === 'object' && body !== null && 'component' in body;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Type guard for template-backed modal bodies.
|
|
58
|
+
* @param body Body value to test.
|
|
59
|
+
*/
|
|
60
|
+
isTemplateBody(body) {
|
|
61
|
+
return typeof body === 'object' && body !== null && 'template' in body;
|
|
62
|
+
}
|
|
56
63
|
/**
|
|
57
64
|
* Invokes an action button handler (sync or async).
|
|
58
65
|
* @param button Modal button descriptor.
|
|
@@ -112,10 +119,10 @@ export class ModalComponent {
|
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: ModalComponent, isStandalone: true, selector: "tae-modal", inputs: { modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "_modalRef", first: true, predicate: TdsModal, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let modalObj = modal();\n\n<tds-modal\n [id]=\"modalObj.id\"\n [selector]=\"modalObj.selector\"\n [referenceEl]=\"modalObj.referenceEl\"\n [size]=\"modalObj.size\"\n [actionsPosition]=\"modalObj.actionsPosition\"\n [prevent]=\"modalObj.prevent\"\n [closable]=\"modalObj.closable\"\n [tdsAlertDialog]=\"modalObj.alertDialog\"\n (tdsClose)=\"this.closed.emit(modalObj.id)\"\n>\n @let header = modalObj.header;\n @if (header) {\n @if (isTemplateRef(header)) {\n <span slot=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n </span>\n } @else {\n <span slot=\"header\">{{ header }}</span>\n }\n }\n\n @if (!modalObj.lazy || modalObj.isOpen) {\n @let body = modalObj.body;\n @if (body) {\n <span slot=\"body\">\n @if (isComponentBody(body)) {\n <ng-container\n taeDynamicComponent\n [component]=\"body.component\"\n [inputs]=\"body.inputs\"\n [outputs]=\"body.outputs\"\n />\n } @else if (
|
|
122
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: ModalComponent, isStandalone: true, selector: "tae-modal", inputs: { modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "_modalRef", first: true, predicate: TdsModal, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let modalObj = modal();\n\n<tds-modal\n [id]=\"modalObj.id\"\n [selector]=\"modalObj.selector\"\n [referenceEl]=\"modalObj.referenceEl\"\n [size]=\"modalObj.size\"\n [actionsPosition]=\"modalObj.actionsPosition\"\n [prevent]=\"modalObj.prevent\"\n [closable]=\"modalObj.closable\"\n [tdsAlertDialog]=\"modalObj.alertDialog\"\n (tdsClose)=\"this.closed.emit(modalObj.id)\"\n>\n @let header = modalObj.header;\n @if (header) {\n @if (isTemplateRef(header)) {\n <span slot=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n </span>\n } @else {\n <span slot=\"header\">{{ header }}</span>\n }\n }\n\n @if (!modalObj.lazy || modalObj.isOpen) {\n @let body = modalObj.body;\n @if (body) {\n <span slot=\"body\">\n @if (isComponentBody(body)) {\n <ng-container\n taeDynamicComponent\n [component]=\"body.component\"\n [inputs]=\"body.inputs\"\n [outputs]=\"body.outputs\"\n />\n } @else if (isTemplateBody(body)) {\n <ng-container\n [ngTemplateOutlet]=\"body.template\"\n [ngTemplateOutletContext]=\"{ $implicit: body.context }\"\n />\n } @else {\n {{ body }}\n }\n </span>\n }\n }\n\n @let buttons = modalObj.buttons;\n @if (buttons?.length) {\n <span slot=\"actions\" class=\"tds-u-flex tds-u-gap2\">\n @for (button of buttons; track $index) {\n <tds-button\n [text]=\"button.text\"\n [variant]=\"button.variant ?? 'primary'\"\n [size]=\"button.size ?? 'md'\"\n [disabled]=\"button.disabled ?? false\"\n [attr.data-dismiss-modal]=\"button.dismiss ? '' : null\"\n (click)=\"handleButtonClick(button)\"\n ></tds-button>\n }\n </span>\n }\n</tds-modal>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TegelModule }, { kind: "component", type: i2.TdsButton, selector: "tds-button", inputs: ["animation", "disabled", "fullbleed", "modeVariant", "name", "size", "tdsAriaLabel", "text", "type", "value", "variant"] }, { kind: "component", type: i2.TdsModal, selector: "tds-modal", inputs: ["actionsPosition", "closable", "header", "prevent", "referenceEl", "selector", "show", "size", "tdsAlertDialog"] }, { kind: "directive", type: DynamicComponentDirective, selector: "[taeDynamicComponent]", inputs: ["component", "inputs", "outputs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
116
123
|
}
|
|
117
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ModalComponent, decorators: [{
|
|
118
125
|
type: Component,
|
|
119
|
-
args: [{ selector: 'tae-modal', imports: [CommonModule, TegelModule, DynamicComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let modalObj = modal();\n\n<tds-modal\n [id]=\"modalObj.id\"\n [selector]=\"modalObj.selector\"\n [referenceEl]=\"modalObj.referenceEl\"\n [size]=\"modalObj.size\"\n [actionsPosition]=\"modalObj.actionsPosition\"\n [prevent]=\"modalObj.prevent\"\n [closable]=\"modalObj.closable\"\n [tdsAlertDialog]=\"modalObj.alertDialog\"\n (tdsClose)=\"this.closed.emit(modalObj.id)\"\n>\n @let header = modalObj.header;\n @if (header) {\n @if (isTemplateRef(header)) {\n <span slot=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n </span>\n } @else {\n <span slot=\"header\">{{ header }}</span>\n }\n }\n\n @if (!modalObj.lazy || modalObj.isOpen) {\n @let body = modalObj.body;\n @if (body) {\n <span slot=\"body\">\n @if (isComponentBody(body)) {\n <ng-container\n taeDynamicComponent\n [component]=\"body.component\"\n [inputs]=\"body.inputs\"\n [outputs]=\"body.outputs\"\n />\n } @else if (
|
|
126
|
+
args: [{ selector: 'tae-modal', imports: [CommonModule, TegelModule, DynamicComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let modalObj = modal();\n\n<tds-modal\n [id]=\"modalObj.id\"\n [selector]=\"modalObj.selector\"\n [referenceEl]=\"modalObj.referenceEl\"\n [size]=\"modalObj.size\"\n [actionsPosition]=\"modalObj.actionsPosition\"\n [prevent]=\"modalObj.prevent\"\n [closable]=\"modalObj.closable\"\n [tdsAlertDialog]=\"modalObj.alertDialog\"\n (tdsClose)=\"this.closed.emit(modalObj.id)\"\n>\n @let header = modalObj.header;\n @if (header) {\n @if (isTemplateRef(header)) {\n <span slot=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n </span>\n } @else {\n <span slot=\"header\">{{ header }}</span>\n }\n }\n\n @if (!modalObj.lazy || modalObj.isOpen) {\n @let body = modalObj.body;\n @if (body) {\n <span slot=\"body\">\n @if (isComponentBody(body)) {\n <ng-container\n taeDynamicComponent\n [component]=\"body.component\"\n [inputs]=\"body.inputs\"\n [outputs]=\"body.outputs\"\n />\n } @else if (isTemplateBody(body)) {\n <ng-container\n [ngTemplateOutlet]=\"body.template\"\n [ngTemplateOutletContext]=\"{ $implicit: body.context }\"\n />\n } @else {\n {{ body }}\n }\n </span>\n }\n }\n\n @let buttons = modalObj.buttons;\n @if (buttons?.length) {\n <span slot=\"actions\" class=\"tds-u-flex tds-u-gap2\">\n @for (button of buttons; track $index) {\n <tds-button\n [text]=\"button.text\"\n [variant]=\"button.variant ?? 'primary'\"\n [size]=\"button.size ?? 'md'\"\n [disabled]=\"button.disabled ?? false\"\n [attr.data-dismiss-modal]=\"button.dismiss ? '' : null\"\n (click)=\"handleButtonClick(button)\"\n ></tds-button>\n }\n </span>\n }\n</tds-modal>\n", styles: [":host{display:contents}\n"] }]
|
|
120
127
|
}], ctorParameters: () => [] });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9tb2RhbC9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVnZWwtYW5ndWxhci1leHRlbnNpb25zL3NyYy9saWIvbW9kYWwvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFJekY7Ozs7Ozs7R0FPRztBQVFILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOztPQUVHO0lBQ00sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVMsQ0FBQztJQUN6Qzs7T0FFRztJQUNnQixNQUFNLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDN0Msc0RBQXNEO0lBQ3JDLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQy9DLElBQUksRUFBRSxDQUFBLFVBQStCLENBQUE7S0FDdEMsQ0FBQyxDQUFDO0lBRUg7O09BRUc7SUFDZ0IsT0FBTyxHQUFHLFFBQVEsQ0FDbkMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQzlD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bic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRkc01vZGFsLCBUZWdlbE1vZHVsZSB9IGZyb20gJ0BzY2FuaWEvdGVnZWwtYW5ndWxhci0xNyc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLWNvbXBvbmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTW9kYWwsIE1vZGFsQm9keSwgTW9kYWxDb21wb25lbnRCb2R5IH0gZnJvbSAnLi4vLi4vc2NoZW1hL21vZGFsLm1vZGVsJztcbmltcG9ydCB7IE1vZGFsQnV0dG9uIH0gZnJvbSAnLi4vLi4vc2NoZW1hL21vZGFsLnR5cGVzJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgc2luZ2xlIG1vZGFsIGluc3RhbmNlIGJhY2tlZCBieSB0aGUgVGVnZWwgPHRkcy1tb2RhbD4gd2ViIGNvbXBvbmVudC5cbiAqXG4gKiBSZXNwb25zaWJpbGl0aWVzOlxuICogLSBJbml0aWFsaXplIHRoZSB1bmRlcmx5aW5nIHdlYiBjb21wb25lbnQgb25jZSBpdCBpcyByZWFkeS5cbiAqIC0gQXBwbHkgdGhlIGRlc2lyZWQgb3Blbi9jbG9zZSBzdGF0ZSBiYXNlZCBvbiBgbW9kYWwuaXNPcGVuYC5cbiAqIC0gUmVuZGVyIGhlYWRlci9ib2R5L2FjdGlvbiBjb250ZW50IChpbmNsdWRpbmcgZHluYW1pYyBjb21wb25lbnRzKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGVnZWxNb2R1bGUsIER5bmFtaWNDb21wb25lbnREaXJlY3RpdmVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIE1vZGFsIGNvbmZpZ3VyYXRpb24gYW5kIHJ1bnRpbWUgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBtb2RhbCA9IGlucHV0LnJlcXVpcmVkPE1vZGFsPigpO1xuICAvKipcbiAgICogRW1pdHMgdGhlIG1vZGFsIGlkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9zZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICAvLyBSZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgd2ViIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgcHJpdmF0ZSByZWFkb25seSBfbW9kYWxSZWYgPSB2aWV3Q2hpbGQoVGRzTW9kYWwsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmPEhUTUxUZHNNb2RhbEVsZW1lbnQ+LFxuICB9KTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgRE9NIGVsZW1lbnQgZm9yIHRoZSB1bmRlcmx5aW5nIDx0ZHMtbW9kYWw+LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGFsRWwgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLl9tb2RhbFJlZigpPy5uYXRpdmVFbGVtZW50ID8/IG51bGwsXG4gICk7XG5cbiAgLyoqIFRyYWNrcyB3aGV0aGVyIHRoZSBtb2RhbCBoYXMgYmVlbiBpbml0aWFsaXplZC4gKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBUcmFjayBpbnB1dCBjaGFuZ2VzIGFuZCBzeW5jIGRlc2lyZWQgb3BlbiBzdGF0ZSB0byB0aGUgd2ViIGNvbXBvbmVudC5cbiAgICAgIHRoaXMubW9kYWwoKTtcbiAgICAgIHZvaWQgdGhpcy5hcHBseU9wZW5TdGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFR5cGUgZ3VhcmQgZm9yIFRlbXBsYXRlUmVmIHZhbHVlcy5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIHRlc3QuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNUZW1wbGF0ZVJlZih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlIGd1YXJkIGZvciBjb21wb25lbnQtYmFja2VkIG1vZGFsIGJvZGllcy5cbiAgICogQHBhcmFtIGJvZHkgQm9keSB2YWx1ZSB0byB0ZXN0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzQ29tcG9uZW50Qm9keShcbiAgICBib2R5OiBNb2RhbEJvZHk8dW5rbm93bj4sXG4gICk6IGJvZHkgaXMgTW9kYWxDb21wb25lbnRCb2R5PHVua25vd24+IHtcbiAgICByZXR1cm4gdHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmIGJvZHkgIT09IG51bGwgJiYgJ2NvbXBvbmVudCcgaW4gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGFuIGFjdGlvbiBidXR0b24gaGFuZGxlciAoc3luYyBvciBhc3luYykuXG4gICAqIEBwYXJhbSBidXR0b24gTW9kYWwgYnV0dG9uIGRlc2NyaXB0b3IuXG4gICAqL1xuICBhc3luYyBoYW5kbGVCdXR0b25DbGljayhidXR0b246IE1vZGFsQnV0dG9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGJ1dHRvbi5vbkNsaWNrPy4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWUtbW9kYWxdIEJ1dHRvbiBvbkNsaWNrIGZhaWxlZDonLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgdW5kZXJseWluZyA8dGRzLW1vZGFsPiBhZnRlciB2aWV3IGluaXQuXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLmluaXRpYWxpemVNb2RhbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIHRoZSB3ZWIgY29tcG9uZW50J3MgaW5pdGlhbGl6ZU1vZGFsKCkgb25jZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZU1vZGFsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tb2RhbEVsKCk7XG4gICAgaWYgKCFlbCkge1xuICAgICAgY29uc29sZS53YXJuKCdbdGFlLW1vZGFsXSBNb2RhbCBlbGVtZW50IG5vdCBmb3VuZDsgY2Fubm90IGluaXRpYWxpemUuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICBjb25zdCByZWFkeSA9IGF3YWl0IGVsLmNvbXBvbmVudE9uUmVhZHkoKTtcbiAgICBpZiAoIXJlYWR5KSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdbdGFlLW1vZGFsXSBNb2RhbCBlbGVtZW50IG5vdCByZWFkeTsgaW5pdGlhbGl6YXRpb24gc2tpcHBlZC4nLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBlbC5pbml0aWFsaXplTW9kYWwoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBkZXNpcmVkIG9wZW4vY2xvc2Ugc3RhdGUgdG8gdGhlIHdlYiBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGFwcGx5T3BlblN0YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5tb2RhbCgpO1xuICAgIGNvbnN0IGVsID0gdGhpcy5tb2RhbEVsKCk7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgLy8gSW5pdGlhbGl6ZSBvbmNlIGJlZm9yZSBpc3N1aW5nIHNob3cvY2xvc2UgY2FsbHMuXG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVNb2RhbCgpO1xuICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgfVxuICAgIGlmIChtb2RhbC5pc09wZW4pIHtcbiAgICAgIGF3YWl0IGVsLnNob3dNb2RhbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBlbC5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICB9XG59XG4iLCJAbGV0IG1vZGFsT2JqID0gbW9kYWwoKTtcblxuPHRkcy1tb2RhbFxuICBbaWRdPVwibW9kYWxPYmouaWRcIlxuICBbc2VsZWN0b3JdPVwibW9kYWxPYmouc2VsZWN0b3JcIlxuICBbcmVmZXJlbmNlRWxdPVwibW9kYWxPYmoucmVmZXJlbmNlRWxcIlxuICBbc2l6ZV09XCJtb2RhbE9iai5zaXplXCJcbiAgW2FjdGlvbnNQb3NpdGlvbl09XCJtb2RhbE9iai5hY3Rpb25zUG9zaXRpb25cIlxuICBbcHJldmVudF09XCJtb2RhbE9iai5wcmV2ZW50XCJcbiAgW2Nsb3NhYmxlXT1cIm1vZGFsT2JqLmNsb3NhYmxlXCJcbiAgW3Rkc0FsZXJ0RGlhbG9nXT1cIm1vZGFsT2JqLmFsZXJ0RGlhbG9nXCJcbiAgKHRkc0Nsb3NlKT1cInRoaXMuY2xvc2VkLmVtaXQobW9kYWxPYmouaWQpXCJcbj5cbiAgQGxldCBoZWFkZXIgPSBtb2RhbE9iai5oZWFkZXI7XG4gIEBpZiAoaGVhZGVyKSB7XG4gICAgQGlmIChpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgIDxzcGFuIHNsb3Q9XCJoZWFkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW4gc2xvdD1cImhlYWRlclwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cbiAgICB9XG4gIH1cblxuICBAaWYgKCFtb2RhbE9iai5sYXp5IHx8IG1vZGFsT2JqLmlzT3Blbikge1xuICAgIEBsZXQgYm9keSA9IG1vZGFsT2JqLmJvZHk7XG4gICAgQGlmIChib2R5KSB7XG4gICAgICA8c3BhbiBzbG90PVwiYm9keVwiPlxuICAgICAgICBAaWYgKGlzQ29tcG9uZW50Qm9keShib2R5KSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIHRhZUR5bmFtaWNDb21wb25lbnRcbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYm9keS5jb21wb25lbnRcIlxuICAgICAgICAgICAgW2lucHV0c109XCJib2R5LmlucHV0c1wiXG4gICAgICAgICAgICBbb3V0cHV0c109XCJib2R5Lm91dHB1dHNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGlzVGVtcGxhdGVSZWYoYm9keSkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJvZHlcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICB7eyBib2R5IH19XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIH1cblxuICBAbGV0IGJ1dHRvbnMgPSBtb2RhbE9iai5idXR0b25zO1xuICBAaWYgKGJ1dHRvbnM/Lmxlbmd0aCkge1xuICAgIDxzcGFuIHNsb3Q9XCJhY3Rpb25zXCIgY2xhc3M9XCJ0ZHMtdS1mbGV4IHRkcy11LWdhcDJcIj5cbiAgICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHRkcy1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiYnV0dG9uLnZhcmlhbnQgPz8gJ3ByaW1hcnknXCJcbiAgICAgICAgICBbc2l6ZV09XCJidXR0b24uc2l6ZSA/PyAnbWQnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnV0dG9uLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWRpc21pc3MtbW9kYWxdPVwiYnV0dG9uLmRpc21pc3MgPyAnJyA6IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljayhidXR0b24pXCJcbiAgICAgICAgPjwvdGRzLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvdGRzLW1vZGFsPlxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZWdlbC1hbmd1bGFyLWV4dGVuc2lvbnMvc3JjL2xpYi9tb2RhbC9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGVnZWwtYW5ndWxhci1leHRlbnNpb25zL3NyYy9saWIvbW9kYWwvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFTekY7Ozs7Ozs7R0FPRztBQVFILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOztPQUVHO0lBQ00sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVMsQ0FBQztJQUN6Qzs7T0FFRztJQUNnQixNQUFNLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDN0Msc0RBQXNEO0lBQ3JDLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQy9DLElBQUksRUFBRSxDQUFBLFVBQStCLENBQUE7S0FDdEMsQ0FBQyxDQUFDO0lBRUg7O09BRUc7SUFDZ0IsT0FBTyxHQUFHLFFBQVEsQ0FDbkMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQzlD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LFlBQVksRUFBRSxXQUFXLEVBQUUseUJBQXlCLENBQUMsbUJBQzlDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZHNNb2RhbCwgVGVnZWxNb2R1bGUgfSBmcm9tICdAc2NhbmlhL3RlZ2VsLWFuZ3VsYXItMTcnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIE1vZGFsLFxuICBNb2RhbEJvZHksXG4gIE1vZGFsQ29tcG9uZW50Qm9keSxcbiAgTW9kYWxUZW1wbGF0ZUJvZHksXG59IGZyb20gJy4uLy4uL3NjaGVtYS9tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL3NjaGVtYS9tb2RhbC50eXBlcyc7XG5cbi8qKlxuICogUmVuZGVycyBhIHNpbmdsZSBtb2RhbCBpbnN0YW5jZSBiYWNrZWQgYnkgdGhlIFRlZ2VsIDx0ZHMtbW9kYWw+IHdlYiBjb21wb25lbnQuXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gSW5pdGlhbGl6ZSB0aGUgdW5kZXJseWluZyB3ZWIgY29tcG9uZW50IG9uY2UgaXQgaXMgcmVhZHkuXG4gKiAtIEFwcGx5IHRoZSBkZXNpcmVkIG9wZW4vY2xvc2Ugc3RhdGUgYmFzZWQgb24gYG1vZGFsLmlzT3BlbmAuXG4gKiAtIFJlbmRlciBoZWFkZXIvYm9keS9hY3Rpb24gY29udGVudCAoaW5jbHVkaW5nIGR5bmFtaWMgY29tcG9uZW50cykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRlZ2VsTW9kdWxlLCBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBNb2RhbCBjb25maWd1cmF0aW9uIGFuZCBydW50aW1lIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kYWwgPSBpbnB1dC5yZXF1aXJlZDxNb2RhbD4oKTtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBtb2RhbCBpZCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xvc2VkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgLy8gUmVmZXJlbmNlIHRvIHRoZSB1bmRlcmx5aW5nIHdlYiBjb21wb25lbnQgaW5zdGFuY2UuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21vZGFsUmVmID0gdmlld0NoaWxkKFRkc01vZGFsLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZjxIVE1MVGRzTW9kYWxFbGVtZW50PixcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIERPTSBlbGVtZW50IGZvciB0aGUgdW5kZXJseWluZyA8dGRzLW1vZGFsPi5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RhbEVsID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5fbW9kYWxSZWYoKT8ubmF0aXZlRWxlbWVudCA/PyBudWxsLFxuICApO1xuXG4gIC8qKiBUcmFja3Mgd2hldGhlciB0aGUgbW9kYWwgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gVHJhY2sgaW5wdXQgY2hhbmdlcyBhbmQgc3luYyBkZXNpcmVkIG9wZW4gc3RhdGUgdG8gdGhlIHdlYiBjb21wb25lbnQuXG4gICAgICB0aGlzLm1vZGFsKCk7XG4gICAgICB2b2lkIHRoaXMuYXBwbHlPcGVuU3RhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlIGd1YXJkIGZvciBUZW1wbGF0ZVJlZiB2YWx1ZXMuXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byB0ZXN0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVGVtcGxhdGVSZWYodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gIH1cblxuICAvKipcbiAgICogVHlwZSBndWFyZCBmb3IgY29tcG9uZW50LWJhY2tlZCBtb2RhbCBib2RpZXMuXG4gICAqIEBwYXJhbSBib2R5IEJvZHkgdmFsdWUgdG8gdGVzdC5cbiAgICovXG4gIHByb3RlY3RlZCBpc0NvbXBvbmVudEJvZHkoXG4gICAgYm9keTogTW9kYWxCb2R5PHVua25vd24+LFxuICApOiBib2R5IGlzIE1vZGFsQ29tcG9uZW50Qm9keTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHR5cGVvZiBib2R5ID09PSAnb2JqZWN0JyAmJiBib2R5ICE9PSBudWxsICYmICdjb21wb25lbnQnIGluIGJvZHk7XG4gIH1cblxuICAvKipcbiAgICogVHlwZSBndWFyZCBmb3IgdGVtcGxhdGUtYmFja2VkIG1vZGFsIGJvZGllcy5cbiAgICogQHBhcmFtIGJvZHkgQm9keSB2YWx1ZSB0byB0ZXN0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVGVtcGxhdGVCb2R5KFxuICAgIGJvZHk6IE1vZGFsQm9keTx1bmtub3duPixcbiAgKTogYm9keSBpcyBNb2RhbFRlbXBsYXRlQm9keSB7XG4gICAgcmV0dXJuIHR5cGVvZiBib2R5ID09PSAnb2JqZWN0JyAmJiBib2R5ICE9PSBudWxsICYmICd0ZW1wbGF0ZScgaW4gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGFuIGFjdGlvbiBidXR0b24gaGFuZGxlciAoc3luYyBvciBhc3luYykuXG4gICAqIEBwYXJhbSBidXR0b24gTW9kYWwgYnV0dG9uIGRlc2NyaXB0b3IuXG4gICAqL1xuICBhc3luYyBoYW5kbGVCdXR0b25DbGljayhidXR0b246IE1vZGFsQnV0dG9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGJ1dHRvbi5vbkNsaWNrPy4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWUtbW9kYWxdIEJ1dHRvbiBvbkNsaWNrIGZhaWxlZDonLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgdW5kZXJseWluZyA8dGRzLW1vZGFsPiBhZnRlciB2aWV3IGluaXQuXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLmluaXRpYWxpemVNb2RhbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIHRoZSB3ZWIgY29tcG9uZW50J3MgaW5pdGlhbGl6ZU1vZGFsKCkgb25jZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZU1vZGFsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tb2RhbEVsKCk7XG4gICAgaWYgKCFlbCkge1xuICAgICAgY29uc29sZS53YXJuKCdbdGFlLW1vZGFsXSBNb2RhbCBlbGVtZW50IG5vdCBmb3VuZDsgY2Fubm90IGluaXRpYWxpemUuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICBjb25zdCByZWFkeSA9IGF3YWl0IGVsLmNvbXBvbmVudE9uUmVhZHkoKTtcbiAgICBpZiAoIXJlYWR5KSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdbdGFlLW1vZGFsXSBNb2RhbCBlbGVtZW50IG5vdCByZWFkeTsgaW5pdGlhbGl6YXRpb24gc2tpcHBlZC4nLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBlbC5pbml0aWFsaXplTW9kYWwoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBkZXNpcmVkIG9wZW4vY2xvc2Ugc3RhdGUgdG8gdGhlIHdlYiBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGFwcGx5T3BlblN0YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5tb2RhbCgpO1xuICAgIGNvbnN0IGVsID0gdGhpcy5tb2RhbEVsKCk7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgLy8gSW5pdGlhbGl6ZSBvbmNlIGJlZm9yZSBpc3N1aW5nIHNob3cvY2xvc2UgY2FsbHMuXG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVNb2RhbCgpO1xuICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgfVxuICAgIGlmIChtb2RhbC5pc09wZW4pIHtcbiAgICAgIGF3YWl0IGVsLnNob3dNb2RhbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBlbC5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICB9XG59XG4iLCJAbGV0IG1vZGFsT2JqID0gbW9kYWwoKTtcblxuPHRkcy1tb2RhbFxuICBbaWRdPVwibW9kYWxPYmouaWRcIlxuICBbc2VsZWN0b3JdPVwibW9kYWxPYmouc2VsZWN0b3JcIlxuICBbcmVmZXJlbmNlRWxdPVwibW9kYWxPYmoucmVmZXJlbmNlRWxcIlxuICBbc2l6ZV09XCJtb2RhbE9iai5zaXplXCJcbiAgW2FjdGlvbnNQb3NpdGlvbl09XCJtb2RhbE9iai5hY3Rpb25zUG9zaXRpb25cIlxuICBbcHJldmVudF09XCJtb2RhbE9iai5wcmV2ZW50XCJcbiAgW2Nsb3NhYmxlXT1cIm1vZGFsT2JqLmNsb3NhYmxlXCJcbiAgW3Rkc0FsZXJ0RGlhbG9nXT1cIm1vZGFsT2JqLmFsZXJ0RGlhbG9nXCJcbiAgKHRkc0Nsb3NlKT1cInRoaXMuY2xvc2VkLmVtaXQobW9kYWxPYmouaWQpXCJcbj5cbiAgQGxldCBoZWFkZXIgPSBtb2RhbE9iai5oZWFkZXI7XG4gIEBpZiAoaGVhZGVyKSB7XG4gICAgQGlmIChpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgIDxzcGFuIHNsb3Q9XCJoZWFkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW4gc2xvdD1cImhlYWRlclwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cbiAgICB9XG4gIH1cblxuICBAaWYgKCFtb2RhbE9iai5sYXp5IHx8IG1vZGFsT2JqLmlzT3Blbikge1xuICAgIEBsZXQgYm9keSA9IG1vZGFsT2JqLmJvZHk7XG4gICAgQGlmIChib2R5KSB7XG4gICAgICA8c3BhbiBzbG90PVwiYm9keVwiPlxuICAgICAgICBAaWYgKGlzQ29tcG9uZW50Qm9keShib2R5KSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIHRhZUR5bmFtaWNDb21wb25lbnRcbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYm9keS5jb21wb25lbnRcIlxuICAgICAgICAgICAgW2lucHV0c109XCJib2R5LmlucHV0c1wiXG4gICAgICAgICAgICBbb3V0cHV0c109XCJib2R5Lm91dHB1dHNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGlzVGVtcGxhdGVCb2R5KGJvZHkpKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYm9keS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGJvZHkuY29udGV4dCB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICB7eyBib2R5IH19XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIH1cblxuICBAbGV0IGJ1dHRvbnMgPSBtb2RhbE9iai5idXR0b25zO1xuICBAaWYgKGJ1dHRvbnM/Lmxlbmd0aCkge1xuICAgIDxzcGFuIHNsb3Q9XCJhY3Rpb25zXCIgY2xhc3M9XCJ0ZHMtdS1mbGV4IHRkcy11LWdhcDJcIj5cbiAgICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHRkcy1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiYnV0dG9uLnZhcmlhbnQgPz8gJ3ByaW1hcnknXCJcbiAgICAgICAgICBbc2l6ZV09XCJidXR0b24uc2l6ZSA/PyAnbWQnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnV0dG9uLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWRpc21pc3MtbW9kYWxdPVwiYnV0dG9uLmRpc21pc3MgPyAnJyA6IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljayhidXR0b24pXCJcbiAgICAgICAgPjwvdGRzLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvdGRzLW1vZGFsPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RlZ2VsLWFuZ3VsYXItZXh0ZW5zaW9ucy9zcmMvbGliL21vZGFsL3NjaGVtYS9tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudElucHV0cyxcbiAgQ29tcG9uZW50T3V0cHV0cyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvYW5ndWxhci1jb21wb25lbnQtaW8nO1xuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuL21vZGFsLmNvbmZpZyc7XG5pbXBvcnQgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4vbW9kYWwudHlwZXMnO1xuXG4vKiogQ29tcG9uZW50LWJhc2VkIG1vZGFsIGJvZHkgd2l0aCB0eXBlZCBpbnB1dHMvb3V0cHV0cy4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsQ29tcG9uZW50Qm9keTxUQ29tcG9uZW50ID0gdW5rbm93bj4gPSB7XG4gIGNvbXBvbmVudDogVHlwZTxUQ29tcG9uZW50PjtcbiAgaW5wdXRzOiBDb21wb25lbnRJbnB1dHM8VENvbXBvbmVudD47XG4gIG91dHB1dHM/OiBDb21wb25lbnRPdXRwdXRzPFRDb21wb25lbnQ+O1xufTtcblxuLyoqIFRlbXBsYXRlLWJhc2VkIG1vZGFsIGJvZHkgd2l0aCBhbiBvcHRpb25hbCBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxUZW1wbGF0ZUJvZHk8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRDb250ZXh0PjtcbiAgY29udGV4dD86IFRDb250ZXh0O1xufTtcblxuLyoqIFVuaW9uIG9mIHN1cHBvcnRlZCBtb2RhbCBib2R5IHR5cGVzLiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxCb2R5PFQgPSB1bmtub3duPiA9XG4gIHwgc3RyaW5nXG4gIHwgTW9kYWxUZW1wbGF0ZUJvZHk8VD5cbiAgfCBNb2RhbENvbXBvbmVudEJvZHk8VD47XG5cbi8qKiBQdWJsaWMgb3B0aW9ucyB1c2VkIHdoZW4gY3JlYXRpbmcgYSBtb2RhbC4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsT3B0aW9uczxUID0gdW5rbm93bj4gPSBQYXJ0aWFsPE1vZGFsQ29uZmlnPiAmIHtcbiAgc2VsZWN0b3I/OiBzdHJpbmc7XG4gIHJlZmVyZW5jZUVsPzogSFRNTEVsZW1lbnQ7XG4gIGhlYWRlcj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBib2R5PzogTW9kYWxCb2R5PFQ+O1xuICBidXR0b25zPzogTW9kYWxCdXR0b25bXTtcbiAgLyoqIENhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCAodXNlciBvciBwcm9ncmFtbWF0aWMpLiAqL1xuICBvbkNsb3NlZD86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsYmFjayBmaXJlZCB3aGVuIHRoZSBtb2RhbCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS4gKi9cbiAgb25SZW1vdmVkPzogKCkgPT4gdm9pZDtcbn07XG5cbi8qKiBSdW50aW1lIG1vZGFsIHN0YXRlIHN0b3JlZCBieSB0aGUgc2VydmljZS4gKi9cbmV4cG9ydCB0eXBlIE1vZGFsID0gUmVxdWlyZWQ8TW9kYWxDb25maWc+ICZcbiAgT21pdDxNb2RhbE9wdGlvbnM8dW5rbm93bj4sIGtleW9mIE1vZGFsQ29uZmlnPiAmIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgfTtcbiJdfQ==
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, InputSignal, OutputEmitterRef, TemplateRef, Type } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, InputSignal, OutputEmitterRef, TemplateRef, Type, ElementRef } from '@angular/core';
|
|
3
3
|
import z$1, { z } from 'zod';
|
|
4
4
|
import { zx } from '@traversable/zod';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* List of available toast types (inherited from Tegel)
|
|
@@ -372,13 +373,18 @@ declare const MODAL_CONFIG: InjectionToken<ModalConfig>;
|
|
|
372
373
|
declare const DEFAULT_MODAL_CONFIG: Required<ModalConfig>;
|
|
373
374
|
|
|
374
375
|
/** Component-based modal body with typed inputs/outputs. */
|
|
375
|
-
type ModalComponentBody<
|
|
376
|
-
component: Type<
|
|
377
|
-
inputs: ComponentInputs<
|
|
378
|
-
outputs?: ComponentOutputs<
|
|
376
|
+
type ModalComponentBody<TComponent = unknown> = {
|
|
377
|
+
component: Type<TComponent>;
|
|
378
|
+
inputs: ComponentInputs<TComponent>;
|
|
379
|
+
outputs?: ComponentOutputs<TComponent>;
|
|
380
|
+
};
|
|
381
|
+
/** Template-based modal body with an optional context. */
|
|
382
|
+
type ModalTemplateBody<TContext = unknown> = {
|
|
383
|
+
template: TemplateRef<TContext>;
|
|
384
|
+
context?: TContext;
|
|
379
385
|
};
|
|
380
386
|
/** Union of supported modal body types. */
|
|
381
|
-
type ModalBody<T = unknown> = string |
|
|
387
|
+
type ModalBody<T = unknown> = string | ModalTemplateBody<T> | ModalComponentBody<T>;
|
|
382
388
|
/** Public options used when creating a modal. */
|
|
383
389
|
type ModalOptions<T = unknown> = Partial<ModalConfig> & {
|
|
384
390
|
selector?: string;
|
|
@@ -795,6 +801,169 @@ declare class HardRefreshDirective {
|
|
|
795
801
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HardRefreshDirective, "[taeHardRefresh]", never, { "clicksRequired": { "alias": "clicksRequired"; "required": false; "isSignal": true; }; "clickWindowMs": { "alias": "clickWindowMs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
796
802
|
}
|
|
797
803
|
|
|
804
|
+
/**
|
|
805
|
+
* Directive that provides typed context for an `ng-template`.
|
|
806
|
+
*
|
|
807
|
+
* This is a compile-time helper: it does not affect runtime behavior,
|
|
808
|
+
* but it allows Angular's template type checker to infer the template context.
|
|
809
|
+
*
|
|
810
|
+
* Usage:
|
|
811
|
+
* ```html
|
|
812
|
+
* <ng-template #tpl let-data [typedContext]="someContext">...</ng-template>
|
|
813
|
+
* ```
|
|
814
|
+
*/
|
|
815
|
+
declare class TypedTemplateDirective<T> {
|
|
816
|
+
/**
|
|
817
|
+
* Typed context value used only for type inference.
|
|
818
|
+
* This input is not read at runtime.
|
|
819
|
+
*/
|
|
820
|
+
readonly typedContext: _angular_core.InputSignal<TemplateRef<T>>;
|
|
821
|
+
/**
|
|
822
|
+
* Template context guard to inform Angular's template type system.
|
|
823
|
+
* Always returns `true` at runtime; used purely for typing.
|
|
824
|
+
*/
|
|
825
|
+
static ngTemplateContextGuard<T>(dir: TypedTemplateDirective<T>, ctx: unknown): ctx is {
|
|
826
|
+
$implicit: T;
|
|
827
|
+
};
|
|
828
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TypedTemplateDirective<any>, never>;
|
|
829
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TypedTemplateDirective<any>, "ng-template[typedContext]", never, { "typedContext": { "alias": "typedContext"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
/** A single day entry used by the calendar grid renderer. */
|
|
833
|
+
type CalendarDay = {
|
|
834
|
+
date: number;
|
|
835
|
+
month: number;
|
|
836
|
+
year: number;
|
|
837
|
+
isCurrentMonth: boolean;
|
|
838
|
+
isToday: boolean;
|
|
839
|
+
isSelected: boolean;
|
|
840
|
+
};
|
|
841
|
+
|
|
842
|
+
/**
|
|
843
|
+
* Standalone date/time picker that integrates with Angular forms via CVA.
|
|
844
|
+
*
|
|
845
|
+
* Supports `date`, `datetime`, and `time` modes, exposes a typed API via inputs,
|
|
846
|
+
* and emits form updates through the registered CVA callbacks.
|
|
847
|
+
*
|
|
848
|
+
* Adheres to Tegel design guidelines and can be used as a drop-in replacement.
|
|
849
|
+
*/
|
|
850
|
+
declare class TaeDateTimePickerComponent implements ControlValueAccessor {
|
|
851
|
+
private readonly elementRef;
|
|
852
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
853
|
+
readonly labelPosition: _angular_core.InputSignal<"inside" | "outside" | "no-label">;
|
|
854
|
+
readonly size: _angular_core.InputSignal<"lg" | "md" | "sm">;
|
|
855
|
+
readonly state: _angular_core.InputSignal<"error" | undefined>;
|
|
856
|
+
readonly helper: _angular_core.InputSignal<string>;
|
|
857
|
+
readonly mode: _angular_core.InputSignal<"date" | "datetime" | "time">;
|
|
858
|
+
private readonly internalValue;
|
|
859
|
+
readonly displayValue: _angular_core.Signal<string>;
|
|
860
|
+
private readonly suppressChange;
|
|
861
|
+
readonly disabled: _angular_core.WritableSignal<boolean>;
|
|
862
|
+
readonly labelId: string;
|
|
863
|
+
readonly showPicker: _angular_core.WritableSignal<boolean>;
|
|
864
|
+
readonly currentMonth: _angular_core.WritableSignal<number>;
|
|
865
|
+
readonly currentYear: _angular_core.WritableSignal<number>;
|
|
866
|
+
readonly calendarDays: _angular_core.Signal<CalendarDay[]>;
|
|
867
|
+
readonly selectedDay: _angular_core.WritableSignal<number | null>;
|
|
868
|
+
readonly selectedMonth: _angular_core.WritableSignal<number | null>;
|
|
869
|
+
readonly selectedYear: _angular_core.WritableSignal<number | null>;
|
|
870
|
+
readonly selectedHour: _angular_core.WritableSignal<string | null>;
|
|
871
|
+
readonly selectedMinute: _angular_core.WritableSignal<string | null>;
|
|
872
|
+
readonly selectedSecond: _angular_core.WritableSignal<string | null>;
|
|
873
|
+
readonly weekDays: readonly ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
874
|
+
readonly months: readonly ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
875
|
+
readonly hours: string[];
|
|
876
|
+
readonly minutes: string[];
|
|
877
|
+
readonly seconds: string[];
|
|
878
|
+
readonly placeholder: _angular_core.Signal<"dd-MM-YYYY HH:mm:ss" | "HH:mm:ss" | "dd-MM-YYYY">;
|
|
879
|
+
readonly currentMonthName: _angular_core.Signal<"January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December">;
|
|
880
|
+
private onChange;
|
|
881
|
+
private onTouched;
|
|
882
|
+
private updateScheduled;
|
|
883
|
+
constructor(elementRef: ElementRef);
|
|
884
|
+
/**
|
|
885
|
+
* Writes an ISO value from the outside into the picker state.
|
|
886
|
+
* @param value ISO date/datetime string.
|
|
887
|
+
*/
|
|
888
|
+
writeValue(value: string): void;
|
|
889
|
+
/**
|
|
890
|
+
* Registers the CVA change handler.
|
|
891
|
+
* @param fn Callback invoked on value changes.
|
|
892
|
+
*/
|
|
893
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
894
|
+
/**
|
|
895
|
+
* Registers the CVA touched handler.
|
|
896
|
+
* @param fn Callback invoked on touch.
|
|
897
|
+
*/
|
|
898
|
+
registerOnTouched(fn: () => void): void;
|
|
899
|
+
/**
|
|
900
|
+
* Updates the disabled state for the control.
|
|
901
|
+
* @param isDisabled Whether the control is disabled.
|
|
902
|
+
*/
|
|
903
|
+
setDisabledState(isDisabled: boolean): void;
|
|
904
|
+
/**
|
|
905
|
+
* Closes the picker when clicking outside the component.
|
|
906
|
+
* @param event Document click event.
|
|
907
|
+
*/
|
|
908
|
+
onDocumentClick(event: MouseEvent): void;
|
|
909
|
+
/** Marks the control as touched. */
|
|
910
|
+
onBlur(): void;
|
|
911
|
+
/**
|
|
912
|
+
* Toggles the picker popover.
|
|
913
|
+
* @param event Click event from the control.
|
|
914
|
+
*/
|
|
915
|
+
togglePicker(event: Event): void;
|
|
916
|
+
/** Moves the calendar to the previous month. */
|
|
917
|
+
previousMonth(): void;
|
|
918
|
+
/** Moves the calendar to the next month. */
|
|
919
|
+
nextMonth(): void;
|
|
920
|
+
/**
|
|
921
|
+
* Builds the calendar day grid for the current month.
|
|
922
|
+
* @returns Calendar day entries for rendering.
|
|
923
|
+
*/
|
|
924
|
+
private buildCalendar;
|
|
925
|
+
/**
|
|
926
|
+
* Selects a date from the calendar grid.
|
|
927
|
+
* @param day Calendar day entry.
|
|
928
|
+
*/
|
|
929
|
+
selectDate(day: CalendarDay): void;
|
|
930
|
+
/**
|
|
931
|
+
* Selects an hour in datetime mode.
|
|
932
|
+
* @param hour Two-digit hour string.
|
|
933
|
+
*/
|
|
934
|
+
selectHour(hour: string): void;
|
|
935
|
+
/**
|
|
936
|
+
* Selects a minute in datetime mode.
|
|
937
|
+
* @param minute Two-digit minute string.
|
|
938
|
+
*/
|
|
939
|
+
selectMinute(minute: string): void;
|
|
940
|
+
/**
|
|
941
|
+
* Selects a second in datetime mode.
|
|
942
|
+
* @param second Two-digit second string.
|
|
943
|
+
*/
|
|
944
|
+
selectSecond(second: string): void;
|
|
945
|
+
/** Confirms the selection and closes the picker. */
|
|
946
|
+
confirm(): void;
|
|
947
|
+
/**
|
|
948
|
+
* Parses an ISO date segment into selected date parts.
|
|
949
|
+
* @param datePart ISO date segment.
|
|
950
|
+
*/
|
|
951
|
+
private parseDatePart;
|
|
952
|
+
/** Computes and emits the ISO value from current parts. */
|
|
953
|
+
private updateValue;
|
|
954
|
+
/** Resets all selected date/time parts to defaults. */
|
|
955
|
+
private resetSelection;
|
|
956
|
+
/**
|
|
957
|
+
* Returns current selected date parts when fully defined.
|
|
958
|
+
* @returns Date parts or `null` if incomplete.
|
|
959
|
+
*/
|
|
960
|
+
private getSelectedDateParts;
|
|
961
|
+
/** Returns today's date in local time. */
|
|
962
|
+
private getToday;
|
|
963
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TaeDateTimePickerComponent, never>;
|
|
964
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TaeDateTimePickerComponent, "tae-date-time-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "helper": { "alias": "helper"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
965
|
+
}
|
|
966
|
+
|
|
798
967
|
/**
|
|
799
968
|
* An enhanced standalone footer component based on the Tegel `TdsFooterComponent`.
|
|
800
969
|
*
|
|
@@ -835,5 +1004,5 @@ declare class TaeFooterComponent {
|
|
|
835
1004
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TaeFooterComponent, "tae-footer", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "version": { "alias": "version"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
836
1005
|
}
|
|
837
1006
|
|
|
838
|
-
export { BarcodeScannerDirective, DEFAULT_MODAL_CONFIG, DEFAULT_TOAST_CONFIG, HardRefreshDirective, MODAL_CONFIG, ModalService, TOAST_CONFIG, TaeFooterComponent, ToastService, createEnvKit, parseEnvFile, provideModal, provideRuntimeConfig, provideStaticConfig, provideToast };
|
|
1007
|
+
export { BarcodeScannerDirective, DEFAULT_MODAL_CONFIG, DEFAULT_TOAST_CONFIG, HardRefreshDirective, MODAL_CONFIG, ModalService, TOAST_CONFIG, TaeDateTimePickerComponent, TaeFooterComponent, ToastService, TypedTemplateDirective, createEnvKit, parseEnvFile, provideModal, provideRuntimeConfig, provideStaticConfig, provideToast };
|
|
839
1008
|
export type { Modal, ModalActionsPosition, ModalAlertDialogRole, ModalButton, ModalConfig, ModalOptions, ModalRef, ModalSize, Toast, ToastConfig, ToastOptions };
|