@acorex/core 5.1.2 → 5.1.5
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 +2 -23
- package/esm2020/lib/classes/base-page.class.mjs +28 -0
- package/esm2020/lib/classes/color.class.mjs +49 -0
- package/esm2020/lib/classes/datetime.class.mjs +314 -0
- package/esm2020/lib/classes/menu.class.mjs +27 -0
- package/esm2020/lib/classes/navigator.class.mjs +2 -0
- package/esm2020/lib/classes/popup.class.mjs +2 -0
- package/esm2020/lib/classes/promise.class.mjs +19 -0
- package/esm2020/lib/classes/sectionlist.class.mjs +2 -0
- package/esm2020/lib/classes/select.class.mjs +3 -0
- package/esm2020/lib/core.module.mjs +20 -11
- package/esm2020/lib/error/error.class.mjs +2 -0
- package/esm2020/lib/error/error.module.mjs +19 -0
- package/esm2020/lib/error/error.service.mjs +21 -0
- package/esm2020/lib/events/keyboard.mjs +2 -0
- package/esm2020/lib/http/http-error.class.mjs +2 -0
- package/esm2020/lib/http/http-events.interceptor.mjs +3 -0
- package/esm2020/lib/http/http-request.class.mjs +2 -0
- package/esm2020/lib/http/http-result.class.mjs +21 -0
- package/esm2020/lib/http/http.module.mjs +37 -0
- package/esm2020/lib/http/http.service.mjs +145 -0
- package/esm2020/lib/locale/en.json +255 -0
- package/esm2020/lib/locale/fa.json +244 -0
- package/esm2020/lib/pipe/datetime.pipe.mjs +25 -0
- package/esm2020/lib/pipe/htmlToText.pipe.mjs +25 -0
- package/esm2020/lib/platform/platform.service.mjs +5 -5
- package/esm2020/lib/services/config.mjs +29 -0
- package/esm2020/lib/services/event.service.mjs +36 -0
- package/esm2020/lib/services/navigator.service.mjs +10 -0
- package/esm2020/lib/services/storage.service.mjs +16 -0
- package/esm2020/lib/translator/translator.mjs +26 -0
- package/esm2020/lib/translator/translator.module.mjs +25 -0
- package/esm2020/lib/translator/translator.pipe.mjs +24 -0
- package/esm2020/lib/translator/translator.service.mjs +21 -0
- package/esm2020/lib/utils/array/array-util.mjs +133 -0
- package/esm2020/lib/utils/html/html-util.mjs +192 -0
- package/esm2020/lib/utils/html/html.module.mjs +19 -0
- package/esm2020/lib/utils/math/math-util.mjs +6 -0
- package/esm2020/lib/utils/object/object-util.mjs +83 -0
- package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +20 -0
- package/esm2020/lib/utils/render/render.service.mjs +103 -0
- package/esm2020/lib/utils/render/rendering.module.mjs +35 -0
- package/esm2020/lib/utils/scroll/scroll.directive.mjs +54 -0
- package/esm2020/lib/utils/scroll/scroll.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.pipe.mjs +33 -0
- package/esm2020/public-api.mjs +43 -12
- package/fesm2015/acorex-core.mjs +1940 -1011
- package/fesm2015/acorex-core.mjs.map +1 -1
- package/fesm2020/acorex-core.mjs +1932 -1004
- package/fesm2020/acorex-core.mjs.map +1 -1
- package/lib/classes/base-page.class.d.ts +13 -0
- package/lib/classes/color.class.d.ts +17 -0
- package/lib/classes/datetime.class.d.ts +63 -0
- package/lib/classes/menu.class.d.ts +34 -0
- package/lib/classes/navigator.class.d.ts +5 -0
- package/lib/classes/popup.class.d.ts +12 -0
- package/lib/classes/promise.class.d.ts +7 -0
- package/lib/classes/sectionlist.class.d.ts +8 -0
- package/lib/classes/select.class.d.ts +7 -0
- package/lib/core.module.d.ts +4 -2
- package/lib/error/error.class.d.ts +4 -0
- package/lib/error/error.module.d.ts +7 -0
- package/lib/error/error.service.d.ts +13 -0
- package/lib/events/keyboard.d.ts +2 -0
- package/lib/http/http-error.class.d.ts +7 -0
- package/lib/http/http-events.interceptor.d.ts +10 -0
- package/lib/http/http-request.class.d.ts +14 -0
- package/lib/http/http-result.class.d.ts +11 -0
- package/lib/http/http.module.d.ts +10 -0
- package/lib/http/http.service.d.ts +23 -0
- package/lib/{dateTime → pipe}/datetime.pipe.d.ts +2 -2
- package/lib/pipe/htmlToText.pipe.d.ts +7 -0
- package/lib/{config/configs.d.ts → services/config.d.ts} +1 -1
- package/lib/{events → services}/event.service.d.ts +0 -0
- package/lib/services/navigator.service.d.ts +8 -0
- package/lib/services/storage.service.d.ts +7 -0
- package/lib/{translation → translator}/translator.d.ts +1 -3
- package/lib/translator/translator.module.d.ts +8 -0
- package/lib/{translation → translator}/translator.pipe.d.ts +1 -0
- package/lib/translator/translator.service.d.ts +8 -0
- package/lib/utils/array/array-util.d.ts +6 -0
- package/lib/utils/html/html-util.d.ts +62 -0
- package/lib/utils/html/html.module.d.ts +8 -0
- package/lib/utils/math/math-util.d.ts +3 -0
- package/lib/utils/object/object-util.d.ts +7 -0
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +10 -0
- package/lib/utils/render/render.service.d.ts +18 -0
- package/lib/utils/render/rendering.module.d.ts +8 -0
- package/lib/utils/scroll/scroll.directive.d.ts +18 -0
- package/lib/utils/scroll/scroll.module.d.ts +8 -0
- package/lib/utils/separator/separator.module.d.ts +8 -0
- package/lib/utils/separator/separator.pipe.d.ts +8 -0
- package/package.json +6 -11
- package/public-api.d.ts +42 -11
- package/config/ax-preset.js +0 -182
- package/esm2020/lib/config/configs.mjs +0 -29
- package/esm2020/lib/dateTime/datetime.class.mjs +0 -295
- package/esm2020/lib/dateTime/datetime.module.mjs +0 -33
- package/esm2020/lib/dateTime/datetime.pipe.mjs +0 -26
- package/esm2020/lib/dateTime/georgian.calendar.mjs +0 -189
- package/esm2020/lib/dateTime/index.mjs +0 -6
- package/esm2020/lib/dateTime/jalali.calendar.mjs +0 -359
- package/esm2020/lib/events/event.service.mjs +0 -36
- package/esm2020/lib/events/index.mjs +0 -2
- package/esm2020/lib/hotkeys/hotkeys.service.mjs +0 -37
- package/esm2020/lib/hotkeys/index.mjs +0 -2
- package/esm2020/lib/translation/index.mjs +0 -4
- package/esm2020/lib/translation/translation.module.mjs +0 -18
- package/esm2020/lib/translation/translator.mjs +0 -42
- package/esm2020/lib/translation/translator.pipe.mjs +0 -15
- package/esm2020/lib/utils/drawing-util.mjs +0 -27
- package/esm2020/lib/utils/index.mjs +0 -5
- package/esm2020/lib/utils/object-util.mjs +0 -39
- package/esm2020/lib/utils/safe.pipe.mjs +0 -30
- package/esm2020/lib/utils/string-util.mjs +0 -19
- package/lib/dateTime/datetime.class.d.ts +0 -100
- package/lib/dateTime/datetime.module.d.ts +0 -8
- package/lib/dateTime/georgian.calendar.d.ts +0 -20
- package/lib/dateTime/index.d.ts +0 -5
- package/lib/dateTime/jalali.calendar.d.ts +0 -35
- package/lib/events/index.d.ts +0 -1
- package/lib/hotkeys/hotkeys.service.d.ts +0 -17
- package/lib/hotkeys/index.d.ts +0 -1
- package/lib/translation/index.d.ts +0 -3
- package/lib/translation/translation.module.d.ts +0 -7
- package/lib/utils/drawing-util.d.ts +0 -17
- package/lib/utils/index.d.ts +0 -4
- package/lib/utils/object-util.d.ts +0 -4
- package/lib/utils/safe.pipe.d.ts +0 -10
- package/lib/utils/string-util.d.ts +0 -6
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import { AXDateTime } from "./datetime.class";
|
|
2
|
-
export class JalaliCalendar {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.monthNames = ("فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند").split("_");
|
|
5
|
-
this.monthShortNames = ("فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند").split("_");
|
|
6
|
-
this.dayNames = ("شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه").split("_");
|
|
7
|
-
this.dayShortNames = "ش_ی_د_س_چ_پ_ج".split("_");
|
|
8
|
-
}
|
|
9
|
-
create(value) {
|
|
10
|
-
const a = this.toGregorian(value.year, value.month, value.date);
|
|
11
|
-
return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());
|
|
12
|
-
}
|
|
13
|
-
name() {
|
|
14
|
-
return 'jalali';
|
|
15
|
-
}
|
|
16
|
-
dayOfMonth(date) {
|
|
17
|
-
return this.toJalali(date).day;
|
|
18
|
-
}
|
|
19
|
-
dayOfYear(date) {
|
|
20
|
-
const j = this.toJalali(date);
|
|
21
|
-
return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;
|
|
22
|
-
}
|
|
23
|
-
dayOfWeek(date) {
|
|
24
|
-
return date.getDay() == 6 ? 1 : date.getDay() + 2;
|
|
25
|
-
}
|
|
26
|
-
weekOfYear(date) {
|
|
27
|
-
//TODO : apply jalali
|
|
28
|
-
const firstDay = new AXDateTime(date).startOf('year');
|
|
29
|
-
return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);
|
|
30
|
-
}
|
|
31
|
-
year(date) {
|
|
32
|
-
return this.toJalali(date).year;
|
|
33
|
-
}
|
|
34
|
-
monthOfYear(date) {
|
|
35
|
-
return this.toJalali(date).month;
|
|
36
|
-
}
|
|
37
|
-
add(date, unit, amount) {
|
|
38
|
-
let value = date.valueOf();
|
|
39
|
-
switch (unit) {
|
|
40
|
-
case 'second':
|
|
41
|
-
value += 1000 * amount;
|
|
42
|
-
break;
|
|
43
|
-
case 'minute':
|
|
44
|
-
value += 60000 * amount;
|
|
45
|
-
break;
|
|
46
|
-
case 'hour':
|
|
47
|
-
value += 3600000 * amount;
|
|
48
|
-
break;
|
|
49
|
-
case 'month':
|
|
50
|
-
{
|
|
51
|
-
const v = new Date(value);
|
|
52
|
-
let jd = this.dayOfMonth(date);
|
|
53
|
-
let jm = this.monthOfYear(date);
|
|
54
|
-
let jy = this.year(date);
|
|
55
|
-
const nm = (jm + amount);
|
|
56
|
-
const ny = (nm % 12) ? Math.floor(nm / 12) : 0;
|
|
57
|
-
jy += ny;
|
|
58
|
-
jm = nm - (ny * 12);
|
|
59
|
-
const vv = this.toGregorian(jy, jm, jd);
|
|
60
|
-
v.setFullYear(vv.getFullYear());
|
|
61
|
-
v.setMonth(vv.getMonth());
|
|
62
|
-
v.setDate(vv.getDate());
|
|
63
|
-
value = v.valueOf();
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
case 'week':
|
|
67
|
-
value += 7 * 86400000 * amount;
|
|
68
|
-
break;
|
|
69
|
-
case 'year':
|
|
70
|
-
{
|
|
71
|
-
// const v = new Date(value);
|
|
72
|
-
// v.setFullYear(v.getFullYear() + amount);
|
|
73
|
-
// value = v.valueOf();
|
|
74
|
-
// break
|
|
75
|
-
const v = new Date(value);
|
|
76
|
-
let jd = this.dayOfMonth(date);
|
|
77
|
-
let jm = this.monthOfYear(date);
|
|
78
|
-
let jy = this.year(date);
|
|
79
|
-
const vv = this.toGregorian(jy + amount, jm, jd);
|
|
80
|
-
v.setFullYear(vv.getFullYear());
|
|
81
|
-
v.setMonth(vv.getMonth());
|
|
82
|
-
v.setDate(vv.getDate());
|
|
83
|
-
value = v.valueOf();
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
case 'day':
|
|
87
|
-
default:
|
|
88
|
-
value += 86400000 * amount;
|
|
89
|
-
}
|
|
90
|
-
return new AXDateTime(new Date(value), this.name());
|
|
91
|
-
}
|
|
92
|
-
set(date, unit, value) {
|
|
93
|
-
const clone = new Date(date.valueOf());
|
|
94
|
-
const jDate = this.toJalali(clone);
|
|
95
|
-
switch (unit) {
|
|
96
|
-
case 'second':
|
|
97
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
|
98
|
-
break;
|
|
99
|
-
case 'minute':
|
|
100
|
-
clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
|
|
101
|
-
break;
|
|
102
|
-
case 'hour':
|
|
103
|
-
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
|
104
|
-
break;
|
|
105
|
-
default:
|
|
106
|
-
case 'day':
|
|
107
|
-
const gDate = this.toGregorian(jDate.year, jDate.month, value);
|
|
108
|
-
clone.setDate(gDate.getDate());
|
|
109
|
-
break;
|
|
110
|
-
case "week":
|
|
111
|
-
break;
|
|
112
|
-
case "month":
|
|
113
|
-
const gDate2 = this.toGregorian(jDate.year, value, jDate.day);
|
|
114
|
-
clone.setMonth(gDate2.getMonth());
|
|
115
|
-
break;
|
|
116
|
-
case "year":
|
|
117
|
-
const gDate3 = this.toGregorian(value, jDate.month, jDate.day);
|
|
118
|
-
clone.setFullYear(gDate3.getFullYear());
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
return new AXDateTime(clone, this.name());
|
|
122
|
-
}
|
|
123
|
-
startOf(date, unit) {
|
|
124
|
-
const clone = new Date(date.valueOf());
|
|
125
|
-
switch (unit) {
|
|
126
|
-
case 'second':
|
|
127
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
|
|
128
|
-
return new AXDateTime(clone, this.name());
|
|
129
|
-
case 'minute':
|
|
130
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
|
|
131
|
-
return new AXDateTime(clone, this.name());
|
|
132
|
-
case 'hour':
|
|
133
|
-
clone.setHours(clone.getHours(), 0, 0, 0);
|
|
134
|
-
return new AXDateTime(clone, this.name());
|
|
135
|
-
default:
|
|
136
|
-
case 'day':
|
|
137
|
-
clone.setHours(0, 0, 0, 0);
|
|
138
|
-
return new AXDateTime(clone, this.name());
|
|
139
|
-
case "week":
|
|
140
|
-
return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');
|
|
141
|
-
case "month":
|
|
142
|
-
{
|
|
143
|
-
const jy = this.year(date);
|
|
144
|
-
const jm = this.monthOfYear(date);
|
|
145
|
-
const gDate = this.toGregorian(jy, jm, 1);
|
|
146
|
-
return new AXDateTime(gDate, this.name()).startOf('day');
|
|
147
|
-
}
|
|
148
|
-
case "year":
|
|
149
|
-
{
|
|
150
|
-
const jy = this.year(date);
|
|
151
|
-
const gDate = this.toGregorian(jy, 1, 1);
|
|
152
|
-
return new AXDateTime(gDate, this.name()).startOf('day');
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
endOf(date, unit) {
|
|
157
|
-
const clone = new Date(date.valueOf());
|
|
158
|
-
switch (unit) {
|
|
159
|
-
case 'second':
|
|
160
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
|
|
161
|
-
return new AXDateTime(clone, this.name());
|
|
162
|
-
case 'minute':
|
|
163
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
|
|
164
|
-
return new AXDateTime(clone, this.name());
|
|
165
|
-
case 'hour':
|
|
166
|
-
clone.setHours(clone.getHours(), 59, 59, 999);
|
|
167
|
-
return new AXDateTime(clone, this.name());
|
|
168
|
-
default:
|
|
169
|
-
case 'day':
|
|
170
|
-
clone.setHours(23, 59, 59, 999);
|
|
171
|
-
return new AXDateTime(clone, this.name());
|
|
172
|
-
case 'week':
|
|
173
|
-
{
|
|
174
|
-
return this.startOf(date, 'week').add('day', 6).endOf('day');
|
|
175
|
-
}
|
|
176
|
-
case 'month':
|
|
177
|
-
{
|
|
178
|
-
const jy = this.year(date);
|
|
179
|
-
const jm = this.monthOfYear(date);
|
|
180
|
-
const jd = this.monthLength(jy, jm);
|
|
181
|
-
const gDate = this.toGregorian(jy, jm, jd);
|
|
182
|
-
return new AXDateTime(gDate, this.name()).endOf('day');
|
|
183
|
-
}
|
|
184
|
-
case "year":
|
|
185
|
-
let jy = this.year(date);
|
|
186
|
-
const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));
|
|
187
|
-
return new AXDateTime(gDate, this.name()).endOf('day');
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
toJalali(date) {
|
|
191
|
-
const gy = date.getFullYear();
|
|
192
|
-
const gm = date.getMonth() + 1;
|
|
193
|
-
const gd = date.getDate();
|
|
194
|
-
const r = this.d2j(this.g2d(gy, gm, gd));
|
|
195
|
-
return {
|
|
196
|
-
year: r.jy,
|
|
197
|
-
month: r.jm,
|
|
198
|
-
day: r.jd,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
/*
|
|
202
|
-
Converts a Jalaali date to Gregorian.
|
|
203
|
-
*/
|
|
204
|
-
toGregorian(jy, jm, jd) {
|
|
205
|
-
const g = this.d2g(this.j2d(jy, jm, jd));
|
|
206
|
-
return new Date(g.gy, g.gm - 1, g.gd);
|
|
207
|
-
}
|
|
208
|
-
/*
|
|
209
|
-
Checks whether a Jalaali date is valid or not.
|
|
210
|
-
*/
|
|
211
|
-
isValid(jy, jm, jd) {
|
|
212
|
-
return jy >= -61 && jy <= 3177 &&
|
|
213
|
-
jm >= 1 && jm <= 12 &&
|
|
214
|
-
jd >= 1 && jd <= this.monthLength(jy, jm);
|
|
215
|
-
}
|
|
216
|
-
/*
|
|
217
|
-
Is this a leap year or not?
|
|
218
|
-
*/
|
|
219
|
-
isLeapYear(jy) {
|
|
220
|
-
return this.jalCal(jy).leap === 0;
|
|
221
|
-
}
|
|
222
|
-
/*
|
|
223
|
-
Number of days in a given month in a Jalaali year.
|
|
224
|
-
*/
|
|
225
|
-
monthLength(jy, jm) {
|
|
226
|
-
if (jm <= 6)
|
|
227
|
-
return 31;
|
|
228
|
-
if (jm <= 11)
|
|
229
|
-
return 30;
|
|
230
|
-
if (this.isLeapYear(jy))
|
|
231
|
-
return 30;
|
|
232
|
-
return 29;
|
|
233
|
-
}
|
|
234
|
-
jalCal(jy) {
|
|
235
|
-
// Jalaali years starting the 33-year rule.
|
|
236
|
-
let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210,
|
|
237
|
-
1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178
|
|
238
|
-
], bl = breaks.length, gy = jy + 621, leapJ = -14, jp = breaks[0], jm, jump, leap, leapG, march, n, i;
|
|
239
|
-
if (jy < jp || jy >= breaks[bl - 1])
|
|
240
|
-
throw new Error('Invalid Jalaali year ' + jy);
|
|
241
|
-
// Find the limiting years for the Jalaali year jy.
|
|
242
|
-
for (i = 1; i < bl; i += 1) {
|
|
243
|
-
jm = breaks[i];
|
|
244
|
-
jump = jm - jp;
|
|
245
|
-
if (jy < jm)
|
|
246
|
-
break;
|
|
247
|
-
leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4);
|
|
248
|
-
jp = jm;
|
|
249
|
-
}
|
|
250
|
-
n = jy - jp;
|
|
251
|
-
// Find the number of leap years from AD 621 to the beginning
|
|
252
|
-
// of the current Jalaali year in the Persian calendar.
|
|
253
|
-
leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4);
|
|
254
|
-
if (this.mod(jump, 33) === 4 && jump - n === 4)
|
|
255
|
-
leapJ += 1;
|
|
256
|
-
// And the same in the Gregorian calendar (until the year gy).
|
|
257
|
-
leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150;
|
|
258
|
-
// Determine the Gregorian date of Farvardin the 1st.
|
|
259
|
-
march = 20 + leapJ - leapG;
|
|
260
|
-
// Find how many years have passed since the last leap year.
|
|
261
|
-
if (jump - n < 6)
|
|
262
|
-
n = n - jump + this.div(jump + 4, 33) * 33;
|
|
263
|
-
leap = this.mod(this.mod(n + 1, 33) - 1, 4);
|
|
264
|
-
if (leap === -1) {
|
|
265
|
-
leap = 4;
|
|
266
|
-
}
|
|
267
|
-
return {
|
|
268
|
-
leap: leap,
|
|
269
|
-
gy: gy,
|
|
270
|
-
march: march
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
/*
|
|
274
|
-
Converts a date of the Jalaali calendar to the Julian Day number.
|
|
275
|
-
@param jy Jalaali year (1 to 3100)
|
|
276
|
-
@param jm Jalaali month (1 to 12)
|
|
277
|
-
@param jd Jalaali day (1 to 29/31)
|
|
278
|
-
@return Julian Day number
|
|
279
|
-
*/
|
|
280
|
-
j2d(jy, jm, jd) {
|
|
281
|
-
let r = this.jalCal(jy);
|
|
282
|
-
return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1;
|
|
283
|
-
}
|
|
284
|
-
/*
|
|
285
|
-
Converts the Julian Day number to a date in the Jalaali calendar.
|
|
286
|
-
@param jdn Julian Day number
|
|
287
|
-
@return
|
|
288
|
-
jy: Jalaali year (1 to 3100)
|
|
289
|
-
jm: Jalaali month (1 to 12)
|
|
290
|
-
jd: Jalaali day (1 to 29/31)
|
|
291
|
-
*/
|
|
292
|
-
d2j(jdn) {
|
|
293
|
-
let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).
|
|
294
|
-
, jy = gy - 621, r = this.jalCal(jy), jdn1f = this.g2d(gy, 3, r.march), jd, jm, k;
|
|
295
|
-
// Find number of days that passed since 1 Farvardin.
|
|
296
|
-
k = jdn - jdn1f;
|
|
297
|
-
if (k >= 0) {
|
|
298
|
-
if (k <= 185) {
|
|
299
|
-
// The first 6 months.
|
|
300
|
-
jm = 1 + this.div(k, 31);
|
|
301
|
-
jd = this.mod(k, 31) + 1;
|
|
302
|
-
return {
|
|
303
|
-
jy: jy,
|
|
304
|
-
jm: jm,
|
|
305
|
-
jd: jd
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
// The remaining months.
|
|
310
|
-
k -= 186;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
// Previous Jalaali year.
|
|
315
|
-
jy -= 1;
|
|
316
|
-
k += 179;
|
|
317
|
-
if (r.leap === 1)
|
|
318
|
-
k += 1;
|
|
319
|
-
}
|
|
320
|
-
jm = 7 + this.div(k, 30);
|
|
321
|
-
jd = this.mod(k, 30) + 1;
|
|
322
|
-
return {
|
|
323
|
-
jy: jy,
|
|
324
|
-
jm: jm,
|
|
325
|
-
jd: jd
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
g2d(gy, gm, gd) {
|
|
329
|
-
let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)
|
|
330
|
-
+ this.div(153 * this.mod(gm + 9, 12) + 2, 5)
|
|
331
|
-
+ gd - 34840408;
|
|
332
|
-
d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752;
|
|
333
|
-
return d;
|
|
334
|
-
}
|
|
335
|
-
d2g(jdn) {
|
|
336
|
-
let j, i, gd, gm, gy;
|
|
337
|
-
j = 4 * jdn + 139361631;
|
|
338
|
-
j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908;
|
|
339
|
-
i = this.div(this.mod(j, 1461), 4) * 5 + 308;
|
|
340
|
-
gd = this.div(this.mod(i, 153), 5) + 1;
|
|
341
|
-
gm = this.mod(this.div(i, 153), 12) + 1;
|
|
342
|
-
gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6);
|
|
343
|
-
return {
|
|
344
|
-
gy: gy,
|
|
345
|
-
gm: gm,
|
|
346
|
-
gd: gd
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
/*
|
|
350
|
-
Utility helper functions.
|
|
351
|
-
*/
|
|
352
|
-
div(a, b) {
|
|
353
|
-
return ~~(a / b);
|
|
354
|
-
}
|
|
355
|
-
mod(a, b) {
|
|
356
|
-
return a - ~~(a / b) * b;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFsYWxpLmNhbGVuZGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9kYXRlVGltZS9qYWxhbGkuY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRixNQUFNLE9BQU8sY0FBYztJQUEzQjtRQUVJLGVBQVUsR0FBRyxDQUFDLG9FQUFvRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9GLG9CQUFlLEdBQUcsQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRyxhQUFRLEdBQUcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU1RSxrQkFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFxWi9DLENBQUM7SUFsWkcsTUFBTSxDQUFDLEtBQWtCO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEssQ0FB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SUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztZQUMxQyxLQUFLLElBQUksQ0FBQyxDQUFBO1FBRWQsOERBQThEO1FBQzlELEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUV4RSxxREFBcUQ7UUFDckQsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBRTFCLDREQUE0RDtRQUM1RCxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUNaLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMzQyxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksR0FBRyxDQUFDLENBQUE7U0FDWDtRQUVELE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSTtZQUNSLEVBQUUsRUFBRSxFQUFFO1lBQ04sS0FBSyxFQUFFLEtBQUs7U0FDakIsQ0FBQTtJQUNMLENBQUM7SUFFRDs7Ozs7O01BTUU7SUFDTSxHQUFHLENBQUMsRUFBRSxFQUFF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QUFFLEVBQUU7WUFDTixFQUFFLEVBQUUsRUFBRTtTQUNYLENBQUE7SUFDTCxDQUFDO0lBRUQ7O01BRUU7SUFDTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENhbGVuZGFyLCBBWERhdGVUaW1lLCBBWERhdGVWYWx1ZSwgVGltZVVuaXQgfSBmcm9tIFwiLi9kYXRldGltZS5jbGFzc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEphbGFsaUNhbGVuZGFyIGltcGxlbWVudHMgQVhDYWxlbmRhciB7XHJcblxyXG4gICAgbW9udGhOYW1lcyA9IChcItmB2LHZiNix2K/bjNmGX9in2LHYr9uM2KjZh9i02Kpf2K7Ysdiv2KfYr1/YqtuM2LFf2YXYsdiv2KfYr1/YtNmH2LHbjNmI2LFf2YXZh9ixX9ii2KjYp9mGX9ii2LDYsV/Yr9uMX9io2YfZhdmGX9in2LPZgdmG2K9cIikuc3BsaXQoXCJfXCIpO1xyXG5cclxuICAgIG1vbnRoU2hvcnROYW1lcyA9IChcItmB2LHZiNix2K/bjNmGX9in2LHYr9uM2KjZh9i02Kpf2K7Ysdiv2KfYr1/YqtuM2LFf2YXYsdiv2KfYr1/YtNmH2LHbjNmI2LFf2YXZh9ixX9ii2KjYp9mGX9ii2LDYsV/Yr9uMX9io2YfZhdmGX9in2LPZgdmG2K9cIikuc3BsaXQoXCJfXCIpO1xyXG5cclxuICAgIGRheU5hbWVzID0gKFwi2LTZhtio2Ydf24zaqdi02YbYqNmHX9iv2YjYtNmG2KjZh1/Ys9mHINi02YbYqNmHX9qG2YfYp9ix2LTZhtio2Ydf2b7ZhtisINi02YbYqNmHX9is2YXYudmHXCIpLnNwbGl0KFwiX1wiKTtcclxuXHJcbiAgICBkYXlTaG9ydE5hbWVzID0gXCLYtF/bjF/Yr1/Ys1/ahl/Zvl/YrFwiLnNwbGl0KFwiX1wiKTtcclxuXHJcblxyXG4gICAgY3JlYXRlKHZhbHVlOiBBWERhdGVWYWx1ZSk6IEFYRGF0ZVRpbWUge1xyXG4gICAgICAgIGNvbnN0IGEgPSB0aGlzLnRvR3JlZ29yaWFuKHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoLCB2YWx1ZS5kYXRlKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoYS5nZXRGdWxsWWVhcigpLCBhLmdldE1vbnRoKCksIGEuZ2V0RGF0ZSgpLCB2YWx1ZS5ob3VycyB8fCAwLCB2YWx1ZS5taW51dGVzIHx8IDAsIHZhbHVlLnNlY29uZHMgfHwgMCwgdmFsdWUubXMgfHwgMCksIHRoaXMubmFtZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdqYWxhbGknXHJcbiAgICB9XHJcblxyXG4gICAgZGF5T2ZNb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0phbGFsaShkYXRlKS5kYXk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGogPSB0aGlzLnRvSmFsYWxpKGRhdGUpO1xyXG4gICAgICAgIHJldHVybiAoai5tb250aCA8PSA2ID8gKChqLm1vbnRoIC0gMSkgKiAzMSkgOiAoKDYgKiAzMSkgKyAoai5tb250aCAtIDcpICogMzApKSArIGouZGF5O1xyXG4gICAgfVxyXG5cclxuICAgIGRheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXREYXkoKSA9PSA2ID8gMSA6IGRhdGUuZ2V0RGF5KCkgKyAyO1xyXG4gICAgfVxyXG5cclxuICAgIHdlZWtPZlllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICAgICAgLy9UT0RPIDogYXBwbHkgamFsYWxpXHJcbiAgICAgICAgY29uc3QgZmlyc3REYXkgPSBuZXcgQVhEYXRlVGltZShkYXRlKS5zdGFydE9mKCd5ZWFyJyk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgoKChkYXRlLmdldFRpbWUoKSAtIGZpcnN0RGF5LmRhdGUuZ2V0VGltZSgpKSAvIDg2NDAwMDAwKSArIGZpcnN0RGF5LmRhdGUuZ2V0RGF5KCkgKyAxKSAvIDcpO1xyXG4gICAgfVxyXG5cclxuICAgIHllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9KYWxhbGkoZGF0ZSkueWVhcjtcclxuICAgIH1cclxuXHJcbiAgICBtb250aE9mWWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0phbGFsaShkYXRlKS5tb250aDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgYWRkKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGRhdGUudmFsdWVPZigpO1xyXG4gICAgICAgIHN3aXRjaCAodW5pdCkge1xyXG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxyXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gMTAwMCAqIGFtb3VudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSArPSA2MDAwMCAqIGFtb3VudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxyXG4gICAgICAgICAgICAgICAgdmFsdWUgKz0gMzYwMDAwMCAqIGFtb3VudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBqZCA9IHRoaXMuZGF5T2ZNb250aChkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgam0gPSB0aGlzLm1vbnRoT2ZZZWFyKGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBqeSA9IHRoaXMueWVhcihkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBubSA9IChqbSArIGFtb3VudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnkgPSAobm0gJSAxMikgPyBNYXRoLmZsb29yKG5tIC8gMTIpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICBqeSArPSBueTtcclxuICAgICAgICAgICAgICAgICAgICBqbSA9IG5tIC0gKG55ICogMTIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZ2ID0gdGhpcy50b0dyZWdvcmlhbihqeSwgam0sIGpkKTtcclxuICAgICAgICAgICAgICAgICAgICB2LnNldEZ1bGxZZWFyKHZ2LmdldEZ1bGxZZWFyKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHYuc2V0TW9udGgodnYuZ2V0TW9udGgoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdi5zZXREYXRlKHZ2LmdldERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2LnZhbHVlT2YoKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcclxuICAgICAgICAgICAgICAgIHZhbHVlICs9IDcgKiA4NjQwMDAwMCAqIGFtb3VudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IHYgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdi5zZXRGdWxsWWVhcih2LmdldEZ1bGxZZWFyKCkgKyBhbW91bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlID0gdi52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYnJlYWtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBqZCA9IHRoaXMuZGF5T2ZNb250aChkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgam0gPSB0aGlzLm1vbnRoT2ZZZWFyKGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBqeSA9IHRoaXMueWVhcihkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2diA9IHRoaXMudG9HcmVnb3JpYW4oankgKyBhbW91bnQsIGptLCBqZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdi5zZXRGdWxsWWVhcih2di5nZXRGdWxsWWVhcigpKTtcclxuICAgICAgICAgICAgICAgICAgICB2LnNldE1vbnRoKHZ2LmdldE1vbnRoKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHYuc2V0RGF0ZSh2di5nZXREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdi52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHZhbHVlICs9IDg2NDAwMDAwICogYW1vdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUodmFsdWUpLCB0aGlzLm5hbWUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0KGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCB2YWx1ZTogbnVtYmVyKTogQVhEYXRlVGltZSB7XHJcbiAgICAgICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XHJcbiAgICAgICAgY29uc3QgakRhdGUgPSB0aGlzLnRvSmFsYWxpKGNsb25lKTtcclxuICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcclxuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcclxuICAgICAgICAgICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgdmFsdWUsIGNsb25lLmdldE1pbGxpc2Vjb25kcygpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgdmFsdWUsIGNsb25lLmdldFNlY29uZHMoKSwgY2xvbmUuZ2V0TWlsbGlzZWNvbmRzKCkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0SG91cnModmFsdWUsIGNsb25lLmdldE1pbnV0ZXMoKSwgY2xvbmUuZ2V0U2Vjb25kcygpLCBjbG9uZS5nZXRNaWxsaXNlY29uZHMoKSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IGdEYXRlID0gdGhpcy50b0dyZWdvcmlhbihqRGF0ZS55ZWFyLCBqRGF0ZS5tb250aCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0RGF0ZShnRGF0ZS5nZXREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ3ZWVrXCI6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIm1vbnRoXCI6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBnRGF0ZTIgPSB0aGlzLnRvR3JlZ29yaWFuKGpEYXRlLnllYXIsIHZhbHVlLCBqRGF0ZS5kYXkpO1xyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0TW9udGgoZ0RhdGUyLmdldE1vbnRoKCkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ5ZWFyXCI6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBnRGF0ZTMgPSB0aGlzLnRvR3JlZ29yaWFuKHZhbHVlLCBqRGF0ZS5tb250aCwgakRhdGUuZGF5KTtcclxuICAgICAgICAgICAgICAgIGNsb25lLnNldEZ1bGxZZWFyKGdEYXRlMy5nZXRGdWxsWWVhcigpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMubmFtZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZSB7XHJcbiAgICAgICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XHJcbiAgICAgICAgc3dpdGNoICh1bml0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XHJcbiAgICAgICAgICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIGNsb25lLmdldFNlY29uZHMoKSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMubmFtZSgpKTtcclxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcclxuICAgICAgICAgICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMubmFtZSgpKTtcclxuICAgICAgICAgICAgY2FzZSAnaG91cic6XHJcbiAgICAgICAgICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCAwLCAwLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcy5uYW1lKCkpO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBjYXNlICdkYXknOlxyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMubmFtZSgpKTtcclxuICAgICAgICAgICAgY2FzZSBcIndlZWtcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcy5uYW1lKCkpLmFkZCgnZGF5JywgLXRoaXMuZGF5T2ZXZWVrKGNsb25lKSArIDEpLnN0YXJ0T2YoJ2RheScpO1xyXG4gICAgICAgICAgICBjYXNlIFwibW9udGhcIjpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBqeSA9IHRoaXMueWVhcihkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBqbSA9IHRoaXMubW9udGhPZlllYXIoZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ0RhdGUgPSB0aGlzLnRvR3JlZ29yaWFuKGp5LCBqbSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGdEYXRlLCB0aGlzLm5hbWUoKSkuc3RhcnRPZignZGF5Jyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgXCJ5ZWFyXCI6XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgankgPSB0aGlzLnllYXIoZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ0RhdGUgPSB0aGlzLnRvR3JlZ29yaWFuKGp5LCAxLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoZ0RhdGUsIHRoaXMubmFtZSgpKS5zdGFydE9mKCdkYXknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZW5kT2YoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQpOiBBWERhdGVUaW1lIHtcclxuICAgICAgICBjb25zdCBjbG9uZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcclxuICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcclxuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcclxuICAgICAgICAgICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgY2xvbmUuZ2V0U2Vjb25kcygpLCA5OTkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzLm5hbWUoKSk7XHJcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XHJcbiAgICAgICAgICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIDU5LCA5OTkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzLm5hbWUoKSk7XHJcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxyXG4gICAgICAgICAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgNTksIDU5LCA5OTkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzLm5hbWUoKSk7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XHJcbiAgICAgICAgICAgICAgICBjbG9uZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzLm5hbWUoKSk7XHJcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YoZGF0ZSwgJ3dlZWsnKS5hZGQoJ2RheScsIDYpLmVuZE9mKCdkYXknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGp5ID0gdGhpcy55ZWFyKGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGptID0gdGhpcy5tb250aE9mWWVhcihkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBqZCA9IHRoaXMubW9udGhMZW5ndGgoanksIGptKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnRGF0ZSA9IHRoaXMudG9HcmVnb3JpYW4oanksIGptLCBqZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGdEYXRlLCB0aGlzLm5hbWUoKSkuZW5kT2YoJ2RheScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlIFwieWVhclwiOlxyXG4gICAgICAgICAgICAgICAgbGV0IGp5ID0gdGhpcy55ZWFyKGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ0RhdGUgPSB0aGlzLnRvR3JlZ29yaWFuKGp5LCAxMiwgdGhpcy5tb250aExlbmd0aChqeSwgMTIpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShnRGF0ZSwgdGhpcy5uYW1lKCkpLmVuZE9mKCdkYXknKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB0b0phbGFsaShkYXRlOiBEYXRlKTogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IGd5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IGdtID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgICBjb25zdCBnZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmQyaih0aGlzLmcyZChneSwgZ20sIGdkKSlcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB5ZWFyOiByLmp5LFxyXG4gICAgICAgICAgICBtb250aDogci5qbSxcclxuICAgICAgICAgICAgZGF5OiByLmpkLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICBDb252ZXJ0cyBhIEphbGFhbGkgZGF0ZSB0byBHcmVnb3JpYW4uXHJcbiAgICAqL1xyXG4gICAgdG9HcmVnb3JpYW4oanksIGptLCBqZCkge1xyXG4gICAgICAgIGNvbnN0IGcgPSB0aGlzLmQyZyh0aGlzLmoyZChqeSwgam0sIGpkKSlcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZy5neSwgZy5nbSAtIDEsIGcuZ2QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgIENoZWNrcyB3aGV0aGVyIGEgSmFsYWFsaSBkYXRlIGlzIHZhbGlkIG9yIG5vdC5cclxuICAgICovXHJcbiAgICBpc1ZhbGlkKGp5LCBqbSwgamQpIHtcclxuICAgICAgICByZXR1cm4gankgPj0gLTYxICYmIGp5IDw9IDMxNzcgJiZcclxuICAgICAgICAgICAgam0gPj0gMSAmJiBqbSA8PSAxMiAmJlxyXG4gICAgICAgICAgICBqZCA+PSAxICYmIGpkIDw9IHRoaXMubW9udGhMZW5ndGgoanksIGptKVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgIElzIHRoaXMgYSBsZWFwIHllYXIgb3Igbm90P1xyXG4gICAgKi9cclxuICAgIGlzTGVhcFllYXIoankpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5qYWxDYWwoankpLmxlYXAgPT09IDBcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICBOdW1iZXIgb2YgZGF5cyBpbiBhIGdpdmVuIG1vbnRoIGluIGEgSmFsYWFsaSB5ZWFyLlxyXG4gICAgKi9cclxuICAgIG1vbnRoTGVuZ3RoKGp5LCBqbSkge1xyXG4gICAgICAgIGlmIChqbSA8PSA2KSByZXR1cm4gMzFcclxuICAgICAgICBpZiAoam0gPD0gMTEpIHJldHVybiAzMFxyXG4gICAgICAgIGlmICh0aGlzLmlzTGVhcFllYXIoankpKSByZXR1cm4gMzBcclxuICAgICAgICByZXR1cm4gMjlcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBqYWxDYWwoankpIHtcclxuICAgICAgICAvLyBKYWxhYWxpIHllYXJzIHN0YXJ0aW5nIHRoZSAzMy15ZWFyIHJ1bGUuXHJcbiAgICAgICAgbGV0IGJyZWFrcyA9IFstNjEsIDksIDM4LCAxOTksIDQyNiwgNjg2LCA3NTYsIDgxOCwgMTExMSwgMTE4MSwgMTIxMFxyXG4gICAgICAgICAgICAsIDE2MzUsIDIwNjAsIDIwOTcsIDIxOTIsIDIyNjIsIDIzMjQsIDIzOTQsIDI0NTYsIDMxNzhcclxuICAgICAgICBdXHJcbiAgICAgICAgICAgICwgYmwgPSBicmVha3MubGVuZ3RoXHJcbiAgICAgICAgICAgICwgZ3kgPSBqeSArIDYyMVxyXG4gICAgICAgICAgICAsIGxlYXBKID0gLTE0XHJcbiAgICAgICAgICAgICwganAgPSBicmVha3NbMF1cclxuICAgICAgICAgICAgLCBqbVxyXG4gICAgICAgICAgICAsIGp1bXBcclxuICAgICAgICAgICAgLCBsZWFwXHJcbiAgICAgICAgICAgICwgbGVhcEdcclxuICAgICAgICAgICAgLCBtYXJjaFxyXG4gICAgICAgICAgICAsIG5cclxuICAgICAgICAgICAgLCBpXHJcblxyXG4gICAgICAgIGlmIChqeSA8IGpwIHx8IGp5ID49IGJyZWFrc1tibCAtIDFdKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSmFsYWFsaSB5ZWFyICcgKyBqeSlcclxuXHJcbiAgICAgICAgLy8gRmluZCB0aGUgbGltaXRpbmcgeWVhcnMgZm9yIHRoZSBKYWxhYWxpIHllYXIgankuXHJcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGJsOyBpICs9IDEpIHtcclxuICAgICAgICAgICAgam0gPSBicmVha3NbaV1cclxuICAgICAgICAgICAganVtcCA9IGptIC0ganBcclxuICAgICAgICAgICAgaWYgKGp5IDwgam0pXHJcbiAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICBsZWFwSiA9IGxlYXBKICsgdGhpcy5kaXYoanVtcCwgMzMpICogOCArIHRoaXMuZGl2KHRoaXMubW9kKGp1bXAsIDMzKSwgNClcclxuICAgICAgICAgICAganAgPSBqbVxyXG4gICAgICAgIH1cclxuICAgICAgICBuID0gankgLSBqcFxyXG5cclxuICAgICAgICAvLyBGaW5kIHRoZSBudW1iZXIgb2YgbGVhcCB5ZWFycyBmcm9tIEFEIDYyMSB0byB0aGUgYmVnaW5uaW5nXHJcbiAgICAgICAgLy8gb2YgdGhlIGN1cnJlbnQgSmFsYWFsaSB5ZWFyIGluIHRoZSBQZXJzaWFuIGNhbGVuZGFyLlxyXG4gICAgICAgIGxlYXBKID0gbGVhcEogKyB0aGlzLmRpdihuLCAzMykgKiA4ICsgdGhpcy5kaXYodGhpcy5tb2QobiwgMzMpICsgMywgNClcclxuICAgICAgICBpZiAodGhpcy5tb2QoanVtcCwgMzMpID09PSA0ICYmIGp1bXAgLSBuID09PSA0KVxyXG4gICAgICAgICAgICBsZWFwSiArPSAxXHJcblxyXG4gICAgICAgIC8vIEFuZCB0aGUgc2FtZSBpbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyICh1bnRpbCB0aGUgeWVhciBneSkuXHJcbiAgICAgICAgbGVhcEcgPSB0aGlzLmRpdihneSwgNCkgLSB0aGlzLmRpdigodGhpcy5kaXYoZ3ksIDEwMCkgKyAxKSAqIDMsIDQpIC0gMTUwXHJcblxyXG4gICAgICAgIC8vIERldGVybWluZSB0aGUgR3JlZ29yaWFuIGRhdGUgb2YgRmFydmFyZGluIHRoZSAxc3QuXHJcbiAgICAgICAgbWFyY2ggPSAyMCArIGxlYXBKIC0gbGVhcEdcclxuXHJcbiAgICAgICAgLy8gRmluZCBob3cgbWFueSB5ZWFycyBoYXZlIHBhc3NlZCBzaW5jZSB0aGUgbGFzdCBsZWFwIHllYXIuXHJcbiAgICAgICAgaWYgKGp1bXAgLSBuIDwgNilcclxuICAgICAgICAgICAgbiA9IG4gLSBqdW1wICsgdGhpcy5kaXYoanVtcCArIDQsIDMzKSAqIDMzXHJcbiAgICAgICAgbGVhcCA9IHRoaXMubW9kKHRoaXMubW9kKG4gKyAxLCAzMykgLSAxLCA0KVxyXG4gICAgICAgIGlmIChsZWFwID09PSAtMSkge1xyXG4gICAgICAgICAgICBsZWFwID0gNFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbGVhcDogbGVhcFxyXG4gICAgICAgICAgICAsIGd5OiBneVxyXG4gICAgICAgICAgICAsIG1hcmNoOiBtYXJjaFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICBDb252ZXJ0cyBhIGRhdGUgb2YgdGhlIEphbGFhbGkgY2FsZW5kYXIgdG8gdGhlIEp1bGlhbiBEYXkgbnVtYmVyLlxyXG4gICAgICBAcGFyYW0gankgSmFsYWFsaSB5ZWFyICgxIHRvIDMxMDApXHJcbiAgICAgIEBwYXJhbSBqbSBKYWxhYWxpIG1vbnRoICgxIHRvIDEyKVxyXG4gICAgICBAcGFyYW0gamQgSmFsYWFsaSBkYXkgKDEgdG8gMjkvMzEpXHJcbiAgICAgIEByZXR1cm4gSnVsaWFuIERheSBudW1iZXJcclxuICAgICovXHJcbiAgICBwcml2YXRlIGoyZChqeSwgam0sIGpkKSB7XHJcbiAgICAgICAgbGV0IHIgPSB0aGlzLmphbENhbChqeSlcclxuICAgICAgICByZXR1cm4gdGhpcy5nMmQoci5neSwgMywgci5tYXJjaCkgKyAoam0gLSAxKSAqIDMxIC0gdGhpcy5kaXYoam0sIDcpICogKGptIC0gNykgKyBqZCAtIDFcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICBDb252ZXJ0cyB0aGUgSnVsaWFuIERheSBudW1iZXIgdG8gYSBkYXRlIGluIHRoZSBKYWxhYWxpIGNhbGVuZGFyLlxyXG4gICAgICBAcGFyYW0gamRuIEp1bGlhbiBEYXkgbnVtYmVyXHJcbiAgICAgIEByZXR1cm5cclxuICAgICAgICBqeTogSmFsYWFsaSB5ZWFyICgxIHRvIDMxMDApXHJcbiAgICAgICAgam06IEphbGFhbGkgbW9udGggKDEgdG8gMTIpXHJcbiAgICAgICAgamQ6IEphbGFhbGkgZGF5ICgxIHRvIDI5LzMxKVxyXG4gICAgKi9cclxuICAgIHByaXZhdGUgZDJqKGpkbikge1xyXG4gICAgICAgIGxldCBneSA9IHRoaXMuZDJnKGpkbikuZ3kgLy8gQ2FsY3VsYXRlIEdyZWdvcmlhbiB5ZWFyIChneSkuXHJcbiAgICAgICAgICAgICwgankgPSBneSAtIDYyMVxyXG4gICAgICAgICAgICAsIHIgPSB0aGlzLmphbENhbChqeSlcclxuICAgICAgICAgICAgLCBqZG4xZiA9IHRoaXMuZzJkKGd5LCAzLCByLm1hcmNoKVxyXG4gICAgICAgICAgICAsIGpkXHJcbiAgICAgICAgICAgICwgam1cclxuICAgICAgICAgICAgLCBrXHJcblxyXG4gICAgICAgIC8vIEZpbmQgbnVtYmVyIG9mIGRheXMgdGhhdCBwYXNzZWQgc2luY2UgMSBGYXJ2YXJkaW4uXHJcbiAgICAgICAgayA9IGpkbiAtIGpkbjFmXHJcbiAgICAgICAgaWYgKGsgPj0gMCkge1xyXG4gICAgICAgICAgICBpZiAoayA8PSAxODUpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRoZSBmaXJzdCA2IG1vbnRocy5cclxuICAgICAgICAgICAgICAgIGptID0gMSArIHRoaXMuZGl2KGssIDMxKVxyXG4gICAgICAgICAgICAgICAgamQgPSB0aGlzLm1vZChrLCAzMSkgKyAxXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGp5OiBqeVxyXG4gICAgICAgICAgICAgICAgICAgICwgam06IGptXHJcbiAgICAgICAgICAgICAgICAgICAgLCBqZDogamRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFRoZSByZW1haW5pbmcgbW9udGhzLlxyXG4gICAgICAgICAgICAgICAgayAtPSAxODZcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFByZXZpb3VzIEphbGFhbGkgeWVhci5cclxuICAgICAgICAgICAgankgLT0gMVxyXG4gICAgICAgICAgICBrICs9IDE3OVxyXG4gICAgICAgICAgICBpZiAoci5sZWFwID09PSAxKVxyXG4gICAgICAgICAgICAgICAgayArPSAxXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGptID0gNyArIHRoaXMuZGl2KGssIDMwKVxyXG4gICAgICAgIGpkID0gdGhpcy5tb2QoaywgMzApICsgMVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGp5OiBqeVxyXG4gICAgICAgICAgICAsIGptOiBqbVxyXG4gICAgICAgICAgICAsIGpkOiBqZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBnMmQoZ3ksIGdtLCBnZCkge1xyXG4gICAgICAgIGxldCBkID0gdGhpcy5kaXYoKGd5ICsgdGhpcy5kaXYoZ20gLSA4LCA2KSArIDEwMDEwMCkgKiAxNDYxLCA0KVxyXG4gICAgICAgICAgICArIHRoaXMuZGl2KDE1MyAqIHRoaXMubW9kKGdtICsgOSwgMTIpICsgMiwgNSlcclxuICAgICAgICAgICAgKyBnZCAtIDM0ODQwNDA4XHJcbiAgICAgICAgZCA9IGQgLSB0aGlzLmRpdih0aGlzLmRpdihneSArIDEwMDEwMCArIHRoaXMuZGl2KGdtIC0gOCwgNiksIDEwMCkgKiAzLCA0KSArIDc1MlxyXG4gICAgICAgIHJldHVybiBkXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgZDJnKGpkbikge1xyXG4gICAgICAgIGxldCBqXHJcbiAgICAgICAgICAgICwgaVxyXG4gICAgICAgICAgICAsIGdkXHJcbiAgICAgICAgICAgICwgZ21cclxuICAgICAgICAgICAgLCBneVxyXG4gICAgICAgIGogPSA0ICogamRuICsgMTM5MzYxNjMxXHJcbiAgICAgICAgaiA9IGogKyB0aGlzLmRpdih0aGlzLmRpdig0ICogamRuICsgMTgzMTg3NzIwLCAxNDYwOTcpICogMywgNCkgKiA0IC0gMzkwOFxyXG4gICAgICAgIGkgPSB0aGlzLmRpdih0aGlzLm1vZChqLCAxNDYxKSwgNCkgKiA1ICsgMzA4XHJcbiAgICAgICAgZ2QgPSB0aGlzLmRpdih0aGlzLm1vZChpLCAxNTMpLCA1KSArIDFcclxuICAgICAgICBnbSA9IHRoaXMubW9kKHRoaXMuZGl2KGksIDE1MyksIDEyKSArIDFcclxuICAgICAgICBneSA9IHRoaXMuZGl2KGosIDE0NjEpIC0gMTAwMTAwICsgdGhpcy5kaXYoOCAtIGdtLCA2KVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGd5OiBneVxyXG4gICAgICAgICAgICAsIGdtOiBnbVxyXG4gICAgICAgICAgICAsIGdkOiBnZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICBVdGlsaXR5IGhlbHBlciBmdW5jdGlvbnMuXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBkaXYoYSwgYikge1xyXG4gICAgICAgIHJldHVybiB+fihhIC8gYilcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1vZChhLCBiKSB7XHJcbiAgICAgICAgcmV0dXJuIGEgLSB+fihhIC8gYikgKiBiXHJcbiAgICB9XHJcblxyXG59Il19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class AXEventService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.list = [];
|
|
6
|
-
}
|
|
7
|
-
broadcast(key, options) {
|
|
8
|
-
const d = this.list.find(c => c.key === key);
|
|
9
|
-
if (d) {
|
|
10
|
-
d.events.forEach(c => {
|
|
11
|
-
c(options);
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
on(key, callback) {
|
|
16
|
-
let d = this.list.find(c => c.key === key);
|
|
17
|
-
if (!d) {
|
|
18
|
-
d = { key, events: [] };
|
|
19
|
-
this.list.push(d);
|
|
20
|
-
}
|
|
21
|
-
d.events.push(callback);
|
|
22
|
-
}
|
|
23
|
-
destroy(key, callback) {
|
|
24
|
-
const d = this.list.find(c => c.key === key);
|
|
25
|
-
if (d) {
|
|
26
|
-
d.events = [];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
AXEventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
-
AXEventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXEventService, providedIn: 'root' });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXEventService, decorators: [{
|
|
33
|
-
type: Injectable,
|
|
34
|
-
args: [{ providedIn: 'root' }]
|
|
35
|
-
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvZXZlbnRzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFWSxTQUFJLEdBQVUsRUFBRSxDQUFDO0tBMEI1QjtJQXhCVSxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWE7UUFDdkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxFQUFFO1lBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU0sRUFBRSxDQUFDLEdBQVcsRUFBRSxRQUFpQztRQUNwRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVcsRUFBRSxRQUFpQztRQUN6RCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEVBQUU7WUFDSCxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNqQjtJQUNMLENBQUM7OzJHQTFCUSxjQUFjOytHQUFkLGNBQWMsY0FERCxNQUFNOzJGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBWEV2ZW50U2VydmljZSB7XHJcbiAgICBwcml2YXRlIGxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gICAgcHVibGljIGJyb2FkY2FzdChrZXk6IHN0cmluZywgb3B0aW9ucz86IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLmxpc3QuZmluZChjID0+IGMua2V5ID09PSBrZXkpO1xyXG4gICAgICAgIGlmIChkKSB7XHJcbiAgICAgICAgICAgIGQuZXZlbnRzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjKG9wdGlvbnMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uKGtleTogc3RyaW5nLCBjYWxsYmFjazogKG9wdGlvbnM/OiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICBsZXQgZCA9IHRoaXMubGlzdC5maW5kKGMgPT4gYy5rZXkgPT09IGtleSk7XHJcbiAgICAgICAgaWYgKCFkKSB7XHJcbiAgICAgICAgICAgIGQgPSB7IGtleSwgZXZlbnRzOiBbXSB9O1xyXG4gICAgICAgICAgICB0aGlzLmxpc3QucHVzaChkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZC5ldmVudHMucHVzaChjYWxsYmFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlc3Ryb3koa2V5OiBzdHJpbmcsIGNhbGxiYWNrOiAob3B0aW9ucz86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLmxpc3QuZmluZChjID0+IGMua2V5ID09PSBrZXkpO1xyXG4gICAgICAgIGlmIChkKSB7XHJcbiAgICAgICAgICAgIGQuZXZlbnRzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './event.service';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2V2ZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmVudC5zZXJ2aWNlJzsiXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from "@angular/common";
|
|
2
|
-
import { Inject, Injectable } from "@angular/core";
|
|
3
|
-
import { Observable } from "rxjs/internal/Observable";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/platform-browser";
|
|
6
|
-
export class AXHotkeysService {
|
|
7
|
-
constructor(eventManager, document) {
|
|
8
|
-
this.eventManager = eventManager;
|
|
9
|
-
this.document = document;
|
|
10
|
-
this.defaults = {
|
|
11
|
-
element: this.document
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
addShortcut(options) {
|
|
15
|
-
const merged = { ...this.defaults, ...options };
|
|
16
|
-
const event = `keydown.${merged.keys}`;
|
|
17
|
-
return new Observable(observer => {
|
|
18
|
-
const handler = (e) => {
|
|
19
|
-
e.preventDefault();
|
|
20
|
-
observer.next(e);
|
|
21
|
-
};
|
|
22
|
-
const dispose = this.eventManager.addEventListener(merged.element, event, handler);
|
|
23
|
-
return () => {
|
|
24
|
-
dispose();
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
AXHotkeysService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXHotkeysService, deps: [{ token: i1.EventManager }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
-
AXHotkeysService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXHotkeysService });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXHotkeysService, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}], ctorParameters: function () { return [{ type: i1.EventManager }, { type: Document, decorators: [{
|
|
34
|
-
type: Inject,
|
|
35
|
-
args: [DOCUMENT]
|
|
36
|
-
}] }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9ob3RrZXlzL2hvdGtleXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFRdEQsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFvQixZQUEwQixFQUNoQixRQUFrQjtRQUQ1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTGhELGFBQVEsR0FBcUI7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3pCLENBQUE7SUFJRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXlCO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNsQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7Z0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUNqQyxDQUFDO1lBRUYsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7OzZHQTNCUSxnQkFBZ0IsOENBTWIsUUFBUTtpSEFOWCxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTtxRkFPaUMsUUFBUTswQkFBM0MsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEV2ZW50TWFuYWdlciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlXCI7XHJcblxyXG50eXBlIE9wdGlvbnMgPSB7XHJcbiAgICBlbGVtZW50OiBhbnk7XHJcbiAgICBrZXlzOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFYSG90a2V5c1NlcnZpY2Uge1xyXG4gICAgZGVmYXVsdHM6IFBhcnRpYWw8T3B0aW9ucz4gPSB7XHJcbiAgICAgICAgZWxlbWVudDogdGhpcy5kb2N1bWVudFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXIsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHtcclxuICAgIH1cclxuXHJcbiAgICBhZGRTaG9ydGN1dChvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VkID0geyAuLi50aGlzLmRlZmF1bHRzLCAuLi5vcHRpb25zIH07XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBga2V5ZG93bi4ke21lcmdlZC5rZXlzfWA7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGUpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZGlzcG9zZSA9IHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICAgICAgICAgICBtZXJnZWQuZWxlbWVudCwgZXZlbnQsIGhhbmRsZXJcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './hotkeys.service';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2hvdGtleXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaG90a2V5cy5zZXJ2aWNlJyJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './translator';
|
|
2
|
-
export * from './translator.pipe';
|
|
3
|
-
export * from './translation.module';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3RyYW5zbGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi5tb2R1bGUnOyJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { AXTranslatorPipe } from './translator.pipe';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class AXTranslationModule {
|
|
5
|
-
}
|
|
6
|
-
AXTranslationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
AXTranslationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslationModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
|
|
8
|
-
AXTranslationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslationModule, providers: [], imports: [[]] });
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslationModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
imports: [],
|
|
13
|
-
exports: [AXTranslatorPipe],
|
|
14
|
-
declarations: [AXTranslatorPipe],
|
|
15
|
-
providers: [],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQUhiLGdCQUFnQixhQURyQixnQkFBZ0I7aUhBSWpCLG1CQUFtQixhQUZqQixFQUFFLFlBSEosRUFBRTsyRkFLRixtQkFBbUI7a0JBTi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnLi90cmFuc2xhdG9yLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtdLFxyXG4gICAgZXhwb3J0czogW0FYVHJhbnNsYXRvclBpcGVdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhUcmFuc2xhdG9yUGlwZV0sXHJcbiAgICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvbk1vZHVsZSB7XHJcbiAgXHJcbn1cclxuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
import merge from 'lodash-es/merge';
|
|
3
|
-
import _ from 'lodash';
|
|
4
|
-
// @dynamic
|
|
5
|
-
export class AXTranslator {
|
|
6
|
-
static get onChange() {
|
|
7
|
-
return AXTranslator.dataChangeSubject.asObservable();
|
|
8
|
-
}
|
|
9
|
-
static load(lang, value) {
|
|
10
|
-
if (typeof value === 'object') {
|
|
11
|
-
if (!AXTranslator[`__data__${lang}`]) {
|
|
12
|
-
AXTranslator[`__data__${lang}`] = {};
|
|
13
|
-
}
|
|
14
|
-
AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
static use(lang) {
|
|
18
|
-
AXTranslator.lang = lang;
|
|
19
|
-
}
|
|
20
|
-
static get(key, lang, params) {
|
|
21
|
-
lang = lang || AXTranslator.lang;
|
|
22
|
-
let result = _.get(AXTranslator[`__data__${lang}`], key, key);
|
|
23
|
-
const vars = typeof (result) == 'string' ? result?.match(this._varsRegx) : [];
|
|
24
|
-
if (vars?.length) {
|
|
25
|
-
vars.forEach(v => {
|
|
26
|
-
const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;
|
|
27
|
-
if (varKey) {
|
|
28
|
-
const p = _.get(params, varKey) || this.get(varKey, lang);
|
|
29
|
-
if (p) {
|
|
30
|
-
result = result.replace(v, p);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return typeof (result) == 'string' ? result : JSON.stringify(result);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
AXTranslator.lang = 'en';
|
|
39
|
-
AXTranslator.dataChangeSubject = new Subject();
|
|
40
|
-
AXTranslator._varsRegx = /((\$\{[a-zA-Z_0-9\.]+\})+)/gm;
|
|
41
|
-
AXTranslator._varNameRegx = /[a-zA-Z_0-9\.]+/gm;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdHJhbnNsYXRpb24vdHJhbnNsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixXQUFXO0FBQ1gsTUFBTSxPQUFPLFlBQVk7SUFPckIsTUFBTSxLQUFLLFFBQVE7UUFDZixPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDbEMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDeEM7WUFDRCxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUMxQixZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBYSxFQUFFLE1BQVk7UUFDdEQsSUFBSSxHQUFHLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekYsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzFELElBQUksQ0FBQyxFQUFFO3dCQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDakM7aUJBQ0o7WUFDTCxDQUFDLENBQUMsQ0FBQTtTQUNMO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7QUF2Q2MsaUJBQUksR0FBVyxJQUFJLENBQUM7QUFDcEIsOEJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztBQUN2QyxzQkFBUyxHQUFHLDhCQUE4QixDQUFDO0FBQzNDLHlCQUFZLEdBQUcsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gtZXMvbWVyZ2UnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvciB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBsYW5nOiBzdHJpbmcgPSAnZW4nO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGF0YUNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBfdmFyc1JlZ3ggPSAvKChcXCRcXHtbYS16QS1aXzAtOVxcLl0rXFx9KSspL2dtO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3Zhck5hbWVSZWd4ID0gL1thLXpBLVpfMC05XFwuXSsvZ207XHJcblxyXG5cclxuICAgIHN0YXRpYyBnZXQgb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmRhdGFDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbG9hZChsYW5nOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpZiAoIUFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0pIHtcclxuICAgICAgICAgICAgICAgIEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0gPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3JbYF9fZGF0YV9fJHtsYW5nfWBdID0gbWVyZ2UoQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHVzZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICBBWFRyYW5zbGF0b3IubGFuZyA9IGxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQoa2V5OiBzdHJpbmcsIGxhbmc/OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGFuZyA9IGxhbmcgfHwgQVhUcmFuc2xhdG9yLmxhbmc7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IF8uZ2V0KEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0sIGtleSwga2V5KTtcclxuICAgICAgICBjb25zdCB2YXJzID0gdHlwZW9mIChyZXN1bHQpID09ICdzdHJpbmcnID8gcmVzdWx0Py5tYXRjaCh0aGlzLl92YXJzUmVneCkgOiBbXTtcclxuICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhcnMuZm9yRWFjaCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhcktleSA9IHYubWF0Y2godGhpcy5fdmFyTmFtZVJlZ3gpPy5sZW5ndGggPyB2Lm1hdGNoKHRoaXMuX3Zhck5hbWVSZWd4KVswXSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFyS2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IF8uZ2V0KHBhcmFtcywgdmFyS2V5KSB8fCB0aGlzLmdldCh2YXJLZXksIGxhbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHYsIHApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAocmVzdWx0KSA9PSAnc3RyaW5nJyA/IHJlc3VsdCA6IEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { AXTranslator } from './translator';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class AXTranslatorPipe {
|
|
5
|
-
transform(value, lang) {
|
|
6
|
-
return AXTranslator.get(value, lang);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
AXTranslatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
-
AXTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
|
12
|
-
type: Pipe,
|
|
13
|
-
args: [{ name: 'trans', pure: true }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi90cmFuc2xhdGlvbi90cmFuc2xhdG9yLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixTQUFTLENBQUMsS0FBYSxFQUFFLElBQWE7UUFDbEMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs2R0FIUSxnQkFBZ0I7MkdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICcuL3RyYW5zbGF0b3InO1xyXG5cclxuQFBpcGUoeyBuYW1lOiAndHJhbnMnLCBwdXJlOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBBWFRyYW5zbGF0b3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQodmFsdWUsIGxhbmcpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|