@osovitny/anatoly 3.17.6 → 3.17.7

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.
@@ -31,4 +31,4 @@ export class DateConvert {
31
31
  }
32
32
  }
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUNvbnZlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb252ZXJ0cy9kYXRlQ29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNLE9BQU8sV0FBVztJQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0M7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELElBQUksUUFBUSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3RixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQ0ksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQjtZQUM1RCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDdEUsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7Q0F5Q0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDkgRmViIDIwMjRcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFpbi9zcmMvdG9EYXRlL2luZGV4LnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVDb252ZXJ0IHtcclxuICBwdWJsaWMgc3RhdGljIHRvRGF0ZShhcmd1bWVudDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IERhdGUge1xyXG4gICAgY29uc3QgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8ICh0eXBlb2YgYXJndW1lbnQgPT09IFwib2JqZWN0XCIgJiYgYXJnU3RyID09PSBcIltvYmplY3QgRGF0ZV1cIikpIHtcclxuICAgICAgcmV0dXJuIGFyZ3VtZW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IE51bWJlcl1cIiB8fFxyXG4gICAgICAgICAgICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IFN0cmluZ11cIikge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBWYWRpbU9TOiBBbmF0b2x5IHBsZWFzZSBoYXZlIGEgbG9va1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGxvY2FsVG9VdGNEYXRlKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBsb2NhbFRvVXRjRGF0ZVRpbWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCksIHZhbHVlLmdldFVUQ0RhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldFVUQ0hvdXJzKCksIHZhbHVlLmdldFVUQ01pbnV0ZXMoKSwgdmFsdWUuZ2V0VVRDU2Vjb25kcygpLCB2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1dGNUb0xvY2FsRGF0ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSwgdmFsdWUuZ2V0RGF0ZSgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHV0Y1RvTG9jYWxEYXRlVGltZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSwgdmFsdWUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgICAgdmFsdWUuZ2V0SG91cnMoKSwgdmFsdWUuZ2V0TWludXRlcygpLCB2YWx1ZS5nZXRTZWNvbmRzKCksIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICAqL1xyXG59XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUNvbnZlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb252ZXJ0cy9kYXRlQ29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNLE9BQU8sV0FBVztJQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0M7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELElBQUksUUFBUSxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3RixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQ0ksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQjtZQUM1RCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDdEUsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7Q0F5QkYiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDkgRmViIDIwMjRcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFpbi9zcmMvdG9EYXRlL2luZGV4LnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVDb252ZXJ0IHtcclxuICBwdWJsaWMgc3RhdGljIHRvRGF0ZShhcmd1bWVudDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IERhdGUge1xyXG4gICAgY29uc3QgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8ICh0eXBlb2YgYXJndW1lbnQgPT09IFwib2JqZWN0XCIgJiYgYXJnU3RyID09PSBcIltvYmplY3QgRGF0ZV1cIikpIHtcclxuICAgICAgcmV0dXJuIGFyZ3VtZW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IE51bWJlcl1cIiB8fFxyXG4gICAgICAgICAgICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiIHx8IGFyZ1N0ciA9PT0gXCJbb2JqZWN0IFN0cmluZ11cIikge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBWYWRpbU9TOiBBbmF0b2x5IHBsZWFzZSBoYXZlIGEgbG9va1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGxvY2FsVG9VdGModmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCksIHZhbHVlLmdldFVUQ0RhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldFVUQ0hvdXJzKCksIHZhbHVlLmdldFVUQ01pbnV0ZXMoKSwgdmFsdWUuZ2V0VVRDU2Vjb25kcygpLCB2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB1dGNUb0xvY2FsKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpLCB2YWx1ZS5nZXREYXRlKCksXHJcbiAgICAgICAgICB2YWx1ZS5nZXRIb3VycygpLCB2YWx1ZS5nZXRNaW51dGVzKCksIHZhbHVlLmdldFNlY29uZHMoKSwgdmFsdWUuZ2V0TWlsbGlzZWNvbmRzKCkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gICovXHJcbn1cclxuIl19
@@ -29,7 +29,7 @@ import { Subs } from '../subs';
29
29
  import { dateFormats, dateTimeFormats } from '../consts/settings';
30
30
  import { DateConvert } from '../converts/dateConvert';
31
31
  import { is } from '../is';
32
- import { utcToZonedTime } from './tz/utcToZonedTime';
32
+ import { utcToLocal } from './tz/utcToLocal';
33
33
  import * as i0 from "@angular/core";
34
34
  import * as i1 from "@ngx-translate/core";
35
35
  export class LocalizationService {
@@ -116,12 +116,12 @@ export class LocalizationService {
116
116
  }
117
117
  //UTC ---------------------------------------------------------------------BEGIN
118
118
  getUTCToLocalizedDate(value) {
119
- return this.safeUtcToZonedTime(value, dateFormats.medium);
119
+ return this.safeUtcToLocal(value, dateFormats.medium);
120
120
  }
121
121
  getUTCToLocalizedDateTime(value) {
122
- return this.safeUtcToZonedTime(value, dateTimeFormats.medium);
122
+ return this.safeUtcToLocal(value, dateTimeFormats.medium);
123
123
  }
124
- safeUtcToZonedTime(date, conversionFormat = null) {
124
+ safeUtcToLocal(date, conversionFormat = null) {
125
125
  if (!date) {
126
126
  return null;
127
127
  }
@@ -135,23 +135,12 @@ export class LocalizationService {
135
135
  date = date + "Z";
136
136
  }
137
137
  }
138
- let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
139
- if (browserTimeZone) {
140
- if (conversionFormat) {
141
- result = utcToZonedTime(date, browserTimeZone);
142
- result = format(result, conversionFormat, this.dateFnsLocale);
143
- }
144
- else {
145
- result = utcToZonedTime(date, browserTimeZone).toString();
146
- }
138
+ let d = utcToLocal(date);
139
+ if (conversionFormat) {
140
+ result = format(d, conversionFormat, this.dateFnsLocale);
147
141
  }
148
142
  else {
149
- if (conversionFormat) {
150
- result = format(new Date(date), conversionFormat, this.dateFnsLocale);
151
- }
152
- else {
153
- result = new Date(date).toString();
154
- }
143
+ result = d.toString();
155
144
  }
156
145
  }
157
146
  catch {
@@ -187,4 +176,4 @@ export class LocalizationService {
187
176
  }], () => [{ type: i1.TranslateService }], { langchange: [{
188
177
  type: Output
189
178
  }] }); })();
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUUsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZFLHNDQUFzQztBQUN0QywwREFBMEQ7QUFDMUQsT0FBTyxJQUFJLE1BQU0sdUJBQXVCLENBQUM7QUFFekMsS0FBSztBQUNMLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUtyRCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBVnZDLFNBQUksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLE1BQU07UUFDRSx1QkFBa0IsR0FBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFL0IsU0FBUztRQUNDLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRCxJ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QU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCw4RUFBOEU7SUFFOUUsZ0ZBQWdGO0lBQ2hGLDJCQUEyQixDQUFDLFlBQW9CLEVBQUUsY0FBc0I7UUFDdEUsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxJQUFJLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXJELElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxLQUFhO1FBQzVDLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO29GQXZMVSxtQkFBbUI7dUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRmxCLE1BQU07O2lGQUVQLG1CQUFtQjtjQUgvQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7aURBVVcsVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwNSBNYXkgMjAyMFxyXG5cclxuICBTb3VyY2U6XHJcbiAgICBodHRwczovL2RhdGUtZm5zLm9yZy92My4zLjEvZG9jcy9mb3JtYXREaXN0YW5jZVxyXG4gICAgaHR0cHM6Ly9kYXRlLWZucy5vcmcvdjMuMy4xL2RvY3MvZm9ybWF0RGlzdGFuY2VUb05vd1xyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIExhbmdDaGFuZ2VFdmVudCB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuLy9kYXRlLWZuc1xyXG5pbXBvcnQgeyBmb3JtYXQsIGZvcm1hdERpc3RhbmNlVG9Ob3csIGZvcm1hdERpc3RhbmNlIH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5cclxuLy8gVmFkaW1PUzogRE9OJ1QgY2hhbmdlIG5leHQgaW1wb3J0cyFcclxuLy8gUmVhc29uOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzY2NlxyXG5pbXBvcnQgZW5VUyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW4tVVMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgU3VicyB9IGZyb20gJy4uL3N1YnMnO1xyXG5pbXBvcnQgeyBkYXRlRm9ybWF0cywgZGF0ZVRpbWVGb3JtYXRzIH0gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHsgRGF0ZUNvbnZlcnQgfSBmcm9tICcuLi9jb252ZXJ0cy9kYXRlQ29udmVydCc7XHJcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi4vaXMnO1xyXG5pbXBvcnQgeyB1dGNUb1pvbmVkVGltZSB9IGZyb20gJy4vdHovdXRjVG9ab25lZFRpbWUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzID0gbmV3IFN1YnMoKTtcclxuICBwcml2YXRlIGRhdGVGbnNMb2NhbGU6IGFueTtcclxuXHJcbiAgLy9pMTBuXHJcbiAgcHJpdmF0ZSBzdXBwb3J0ZWRMYW5ndWFnZXM6IGFueSA9IFsnZW4nLCAncnUnLCAnZXMnXTtcclxuICBwcml2YXRlIGRlZmF1bHRMYW5ndWFnZSA9ICdlbic7XHJcblxyXG4gIC8vT3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBsYW5nY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKHRoaXMuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdExhbmd1YWdlKHRoaXMuZGVmYXVsdExhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdChzdHI6IHN0cmluZywgYXJncykge1xyXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlcikge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGFyZ3NbbnVtYmVyXSAhPSAndW5kZWZpbmVkJ1xyXG4gICAgICAgID8gYXJnc1tudW1iZXJdXHJcbiAgICAgICAgOiBtYXRjaFxyXG4gICAgICAgIDtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbmZpZ3VyZVNldHRpbmdzKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICAvL2kxMG5cclxuICAgIGNvbnN0IGJyb3dzZXJMYW5nID0gdHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCk7XHJcbiAgICBjb25zdCBsYW5nID0gYnJvd3NlckxhbmcubWF0Y2goL2VufHJ1fGVzLykgPyBicm93c2VyTGFuZyA6IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG5cclxuICAgIC8vZGF0ZXNcclxuICAgIHRoaXMuZGF0ZUZuc0xvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcblxyXG4gICAgdGhpcy5zdWJzLnNpbmsgPSB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdMYW5ndWFnZSBDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMubGFuZ2NoYW5nZS5lbWl0KGV2ZW50LmxhbmcpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxhbmc7XHJcbiAgfVxyXG5cclxuICAvL0xhbmd1YWdlc1xyXG4gIHNldFN1cHBvcnRlZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5hZGRMYW5ncyhsYW5ndWFnZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZyk7XHJcbiAgfVxyXG5cclxuICBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcclxuICB9XHJcblxyXG4gIC8vRGF0ZXNcclxuICBnZXREYXRlZm5zTG9jYWxlKCk6IGFueSB7XHJcbiAgICBsZXQgZGZuTG9jYWxlOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmdldEJyb3dzZXJMYW5ndWFnZSgpKSB7XHJcbiAgICAgIGNhc2UgJ2VuJzpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBkZm5Mb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZm5Mb2NhbGU7XHJcbiAgfVxyXG5cclxuICAvL2dldExvY2FsaXplZFxyXG4gIGdldExvY2FsaXplZFZhbHVlKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5KTtcclxuXHJcbiAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQodmFsdWUsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREYXRlKHZhbHVlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKHZhbHVlKTtcclxuICAgIGlmIChpcy5kYXRlSW52YWxpZChkYXRlKSkge1xyXG4gICAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGRhdGVGb3JtYXRzLm1lZGl1bSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERhdGVUaW1lKHZhbHVlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKHZhbHVlKTtcclxuICAgIGlmIChpcy5kYXRlSW52YWxpZChkYXRlKSkge1xyXG4gICAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGRhdGVUaW1lRm9ybWF0cy5tZWRpdW0sIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgfVxyXG5cclxuICAvL1VUQyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1CRUdJTlxyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGF0ZSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FmZVV0Y1RvWm9uZWRUaW1lKHZhbHVlLCBkYXRlRm9ybWF0cy5tZWRpdW0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VVRDVG9Mb2NhbGl6ZWREYXRlVGltZSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FmZVV0Y1RvWm9uZWRUaW1lKHZhbHVlLCBkYXRlVGltZUZvcm1hdHMubWVkaXVtKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FmZVV0Y1RvWm9uZWRUaW1lKGRhdGUsIGNvbnZlcnNpb25Gb3JtYXQgPSBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0ZSl7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQgPSBkYXRlO1xyXG5cclxuICAgIHRyeVxyXG4gICAge1xyXG4gICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlRcIikgPiAtMSkge1xyXG4gICAgICAgICAgZGF0ZSA9IGRhdGUucmVwbGFjZShcIlRcIiwgXCIgXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlpcIikgPT0gLTEpIHtcclxuICAgICAgICAgIGRhdGUgPSBkYXRlICsgXCJaXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICAgICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICAgIGlmIChjb252ZXJzaW9uRm9ybWF0KSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB1dGNUb1pvbmVkVGltZShkYXRlLCBicm93c2VyVGltZVpvbmUpO1xyXG4gICAgICAgICAgcmVzdWx0ID0gZm9ybWF0KHJlc3VsdCwgY29udmVyc2lvbkZvcm1hdCwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB1dGNUb1pvbmVkVGltZShkYXRlLCBicm93c2VyVGltZVpvbmUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChjb252ZXJzaW9uRm9ybWF0KSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGNvbnZlcnNpb25Gb3JtYXQsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSkudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoXHJcbiAgICB7XHJcbiAgICAgIHJlc3VsdCA9IFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgLy9VVEMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EXHJcblxyXG4gIC8vRGlzdGFuY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUJFR0lOXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VJbldvcmRzKGVuZGVkRGF0ZVN0cjogc3RyaW5nLCBzdGFydGVkRGF0ZVN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBlbmRlZERhdGUgPSBEYXRlQ29udmVydC50b0RhdGUoZW5kZWREYXRlU3RyKTtcclxuICAgIGxldCBzdGFydGVkRGF0ZSA9IERhdGVDb252ZXJ0LnRvRGF0ZShzdGFydGVkRGF0ZVN0cik7XHJcblxyXG4gICAgaWYgKGlzLmRhdGVJbnZhbGlkKGVuZGVkRGF0ZSkgfHwgaXMuZGF0ZUludmFsaWQoc3RhcnRlZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShlbmRlZERhdGUsIHN0YXJ0ZWREYXRlLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF0ZSA9IERhdGVDb252ZXJ0LnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICBpZiAoaXMuZGF0ZUludmFsaWQoZGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlVG9Ob3coZGF0ZSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcbiAgLy9EaXN0YW5jZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EXHJcbn1cclxuXHJcbiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUUsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZFLHNDQUFzQztBQUN0QywwREFBMEQ7QUFDMUQsT0FBTyxJQUFJLE1BQU0sdUJBQXVCLENBQUM7QUFFekMsS0FBSztBQUNMLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUs3QyxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBVnZDLFNBQUksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLE1BQU07UUFDRSx1QkFBa0IsR0FBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFL0IsU0FBUztRQUNDLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRCxJ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QUFDO0lBRUQsZ0NBQWdDLENBQUMsS0FBYTtRQUM1QyxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztvRkE1S1UsbUJBQW1CO3VFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CLG1CQUZsQixNQUFNOztpRkFFUCxtQkFBbUI7Y0FIL0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CO2lEQVVXLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDUgTWF5IDIwMjBcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly9kYXRlLWZucy5vcmcvdjMuMy4xL2RvY3MvZm9ybWF0RGlzdGFuY2VcclxuICAgIGh0dHBzOi8vZGF0ZS1mbnMub3JnL3YzLjMuMS9kb2NzL2Zvcm1hdERpc3RhbmNlVG9Ob3dcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBMYW5nQ2hhbmdlRXZlbnQgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8vZGF0ZS1mbnNcclxuaW1wb3J0IHsgZm9ybWF0LCBmb3JtYXREaXN0YW5jZVRvTm93LCBmb3JtYXREaXN0YW5jZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbi8vIFZhZGltT1M6IERPTidUIGNoYW5nZSBuZXh0IGltcG9ydHMhXHJcbi8vIFJlYXNvbjogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy82NjZcclxuaW1wb3J0IGVuVVMgZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VuLVVTJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IFN1YnMgfSBmcm9tICcuLi9zdWJzJztcclxuaW1wb3J0IHsgZGF0ZUZvcm1hdHMsIGRhdGVUaW1lRm9ybWF0cyB9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcbmltcG9ydCB7IERhdGVDb252ZXJ0IH0gZnJvbSAnLi4vY29udmVydHMvZGF0ZUNvbnZlcnQnO1xyXG5pbXBvcnQgeyBpcyB9IGZyb20gJy4uL2lzJztcclxuaW1wb3J0IHsgdXRjVG9Mb2NhbCB9IGZyb20gJy4vdHovdXRjVG9Mb2NhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN1YnM6IFN1YnMgPSBuZXcgU3VicygpO1xyXG4gIHByaXZhdGUgZGF0ZUZuc0xvY2FsZTogYW55O1xyXG5cclxuICAvL2kxMG5cclxuICBwcml2YXRlIHN1cHBvcnRlZExhbmd1YWdlczogYW55ID0gWydlbicsICdydScsICdlcyddO1xyXG4gIHByaXZhdGUgZGVmYXVsdExhbmd1YWdlID0gJ2VuJztcclxuXHJcbiAgLy9PdXRwdXRzXHJcbiAgQE91dHB1dCgpIGxhbmdjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5zZXRTdXBwb3J0ZWRMYW5ndWFnZXModGhpcy5zdXBwb3J0ZWRMYW5ndWFnZXMpO1xyXG4gICAgdGhpcy5zZXREZWZhdWx0TGFuZ3VhZ2UodGhpcy5kZWZhdWx0TGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0KHN0cjogc3RyaW5nLCBhcmdzKSB7XHJcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uIChtYXRjaCwgbnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1iZXJdICE9ICd1bmRlZmluZWQnXHJcbiAgICAgICAgPyBhcmdzW251bWJlcl1cclxuICAgICAgICA6IG1hdGNoXHJcbiAgICAgICAgO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uZmlndXJlU2V0dGluZ3ModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogc3RyaW5nIHtcclxuICAgIC8vaTEwblxyXG4gICAgY29uc3QgYnJvd3NlckxhbmcgPSB0cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcclxuICAgIGNvbnN0IGxhbmcgPSBicm93c2VyTGFuZy5tYXRjaCgvZW58cnV8ZXMvKSA/IGJyb3dzZXJMYW5nIDogdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XHJcblxyXG4gICAgLy9kYXRlc1xyXG4gICAgdGhpcy5kYXRlRm5zTG9jYWxlID0geyBsb2NhbGU6IGVuVVMgfTtcclxuXHJcbiAgICB0aGlzLnN1YnMuc2luayA9IHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ0xhbmd1YWdlIENoYW5nZWQnKTtcclxuICAgICAgdGhpcy5sYW5nY2hhbmdlLmVtaXQoZXZlbnQubGFuZyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbGFuZztcclxuICB9XHJcblxyXG4gIC8vTGFuZ3VhZ2VzXHJcbiAgc2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKGxhbmd1YWdlcyk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyhsYW5nKTtcclxuICB9XHJcblxyXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyTGFuZygpO1xyXG4gIH1cclxuXHJcbiAgLy9EYXRlc1xyXG4gIGdldERhdGVmbnNMb2NhbGUoKTogYW55IHtcclxuICAgIGxldCBkZm5Mb2NhbGU6IGFueTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuZ2V0QnJvd3Nlckxhbmd1YWdlKCkpIHtcclxuICAgICAgY2FzZSAnZW4nOlxyXG4gICAgICAgIGRmbkxvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGRmbkxvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRmbkxvY2FsZTtcclxuICB9XHJcblxyXG4gIC8vZ2V0TG9jYWxpemVkXHJcbiAgZ2V0TG9jYWxpemVkVmFsdWUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueVtdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXkpO1xyXG5cclxuICAgIGlmICghcGFyYW1zIHx8IHBhcmFtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2YWx1ZSwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERhdGUodmFsdWUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRhdGUgPSBEYXRlQ29udmVydC50b0RhdGUodmFsdWUpO1xyXG4gICAgaWYgKGlzLmRhdGVJbnZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdHMubWVkaXVtLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGF0ZVRpbWUodmFsdWUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRhdGUgPSBEYXRlQ29udmVydC50b0RhdGUodmFsdWUpO1xyXG4gICAgaWYgKGlzLmRhdGVJbnZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgZGF0ZVRpbWVGb3JtYXRzLm1lZGl1bSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcblxyXG4gIC8vVVRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUJFR0lOXHJcbiAgZ2V0VVRDVG9Mb2NhbGl6ZWREYXRlKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYWZlVXRjVG9Mb2NhbCh2YWx1ZSwgZGF0ZUZvcm1hdHMubWVkaXVtKTtcclxuICB9XHJcblxyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGF0ZVRpbWUodmFsdWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNhZmVVdGNUb0xvY2FsKHZhbHVlLCBkYXRlVGltZUZvcm1hdHMubWVkaXVtKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FmZVV0Y1RvTG9jYWwoZGF0ZSwgY29udmVyc2lvbkZvcm1hdCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFkYXRlKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IGRhdGU7XHJcblxyXG4gICAgdHJ5XHJcbiAgICB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBpZiAoZGF0ZS5pbmRleE9mKFwiVFwiKSA+IC0xKSB7XHJcbiAgICAgICAgICBkYXRlID0gZGF0ZS5yZXBsYWNlKFwiVFwiLCBcIiBcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0ZS5pbmRleE9mKFwiWlwiKSA9PSAtMSkge1xyXG4gICAgICAgICAgZGF0ZSA9IGRhdGUgKyBcIlpcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBkID0gdXRjVG9Mb2NhbChkYXRlKTtcclxuXHJcbiAgICAgIGlmIChjb252ZXJzaW9uRm9ybWF0KSB7XHJcbiAgICAgICAgcmVzdWx0ID0gZm9ybWF0KGQsIGNvbnZlcnNpb25Gb3JtYXQsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gZC50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaFxyXG4gICAge1xyXG4gICAgICByZXN1bHQgPSBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIC8vVVRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUVORFxyXG5cclxuICAvL0Rpc3RhbmNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1CRUdJTlxyXG4gIGdldExvY2FsaXplZERpc3RhbmNlSW5Xb3JkcyhlbmRlZERhdGVTdHI6IHN0cmluZywgc3RhcnRlZERhdGVTdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZW5kZWREYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKGVuZGVkRGF0ZVN0cik7XHJcbiAgICBsZXQgc3RhcnRlZERhdGUgPSBEYXRlQ29udmVydC50b0RhdGUoc3RhcnRlZERhdGVTdHIpO1xyXG5cclxuICAgIGlmIChpcy5kYXRlSW52YWxpZChlbmRlZERhdGUpIHx8IGlzLmRhdGVJbnZhbGlkKHN0YXJ0ZWREYXRlKSkge1xyXG4gICAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybWF0RGlzdGFuY2UoZW5kZWREYXRlLCBzdGFydGVkRGF0ZSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERpc3RhbmNlVG9Ob3dJbldvcmRzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRhdGUgPSBEYXRlQ29udmVydC50b0RhdGUodmFsdWUpO1xyXG4gICAgaWYgKGlzLmRhdGVJbnZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZVRvTm93KGRhdGUsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgfVxyXG4gIC8vRGlzdGFuY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUVORFxyXG59XHJcblxyXG4iXX0=
@@ -0,0 +1,36 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 10 Feb 2024
12
+
13
+ Source:
14
+ https://www.npmjs.com/package/date-fns-tz
15
+ https://github.com/marnusw/date-fns-tz/blob/master/src/utcToZonedTime/index.js
16
+ https://github.com/marnusw/date-fns-tz/blob/master/src/_lib/tzParseTimezone/index.js
17
+
18
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
19
+ </file>
20
+ */
21
+ import { DateConvert } from "../../converts/dateConvert";
22
+ import { tzParseTimezone } from "./tzParseTimezone";
23
+ export function utcToLocal(dirtyDate) {
24
+ let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
25
+ if (browserTimeZone) {
26
+ let date = DateConvert.toDate(dirtyDate);
27
+ let offsetMilliseconds = tzParseTimezone(browserTimeZone, date, true);
28
+ let d = new Date(date.getTime() - offsetMilliseconds);
29
+ let resultDate = new Date(0);
30
+ resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
31
+ resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
32
+ return resultDate;
33
+ }
34
+ return new Date(dirtyDate);
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRjVG9Mb2NhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi90ei91dGNUb0xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFO0FBRUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQVM7SUFDbEMsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUV2RSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBSSxrQkFBa0IsR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRW5HLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTAgRmViIDIwMjRcclxuXHJcbiAgU291cmNlOlxyXG4gICAgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZGF0ZS1mbnMtdHpcclxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJudXN3L2RhdGUtZm5zLXR6L2Jsb2IvbWFzdGVyL3NyYy91dGNUb1pvbmVkVGltZS9pbmRleC5qc1xyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21hcm51c3cvZGF0ZS1mbnMtdHovYmxvYi9tYXN0ZXIvc3JjL19saWIvdHpQYXJzZVRpbWV6b25lL2luZGV4LmpzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgRGF0ZUNvbnZlcnQgfSBmcm9tIFwiLi4vLi4vY29udmVydHMvZGF0ZUNvbnZlcnRcIjtcclxuaW1wb3J0IHsgdHpQYXJzZVRpbWV6b25lIH0gZnJvbSBcIi4vdHpQYXJzZVRpbWV6b25lXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXRjVG9Mb2NhbChkaXJ0eURhdGUpOiBEYXRlIHtcclxuICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICBpZiAoYnJvd3NlclRpbWVab25lKSB7XHJcbiAgICBsZXQgZGF0ZSA9IERhdGVDb252ZXJ0LnRvRGF0ZShkaXJ0eURhdGUpO1xyXG4gICAgbGV0IG9mZnNldE1pbGxpc2Vjb25kcyA9IHR6UGFyc2VUaW1lem9uZShicm93c2VyVGltZVpvbmUsIGRhdGUsIHRydWUpO1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIG9mZnNldE1pbGxpc2Vjb25kcyk7XHJcbiAgICBsZXQgcmVzdWx0RGF0ZSA9IG5ldyBEYXRlKDApO1xyXG5cclxuICAgIHJlc3VsdERhdGUuc2V0RnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpLCBkLmdldFVUQ01vbnRoKCksIGQuZ2V0VVRDRGF0ZSgpKTtcclxuICAgIHJlc3VsdERhdGUuc2V0SG91cnMoZC5nZXRVVENIb3VycygpLCBkLmdldFVUQ01pbnV0ZXMoKSwgZC5nZXRVVENTZWNvbmRzKCksIGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHREYXRlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBEYXRlKGRpcnR5RGF0ZSk7XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -1958,14 +1958,18 @@ function isValidTimezoneIANAString(timeZoneString) {
1958
1958
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1959
1959
  </file>
1960
1960
  */
1961
- function utcToZonedTime(dirtyDate, timeZone) {
1962
- let date = DateConvert.toDate(dirtyDate);
1963
- let offsetMilliseconds = tzParseTimezone(timeZone, date, true);
1964
- let d = new Date(date.getTime() - offsetMilliseconds);
1965
- let resultDate = new Date(0);
1966
- resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
1967
- resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
1968
- return resultDate;
1961
+ function utcToLocal(dirtyDate) {
1962
+ let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
1963
+ if (browserTimeZone) {
1964
+ let date = DateConvert.toDate(dirtyDate);
1965
+ let offsetMilliseconds = tzParseTimezone(browserTimeZone, date, true);
1966
+ let d = new Date(date.getTime() - offsetMilliseconds);
1967
+ let resultDate = new Date(0);
1968
+ resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
1969
+ resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
1970
+ return resultDate;
1971
+ }
1972
+ return new Date(dirtyDate);
1969
1973
  }
1970
1974
 
1971
1975
  /*
@@ -2072,12 +2076,12 @@ class LocalizationService {
2072
2076
  }
2073
2077
  //UTC ---------------------------------------------------------------------BEGIN
2074
2078
  getUTCToLocalizedDate(value) {
2075
- return this.safeUtcToZonedTime(value, dateFormats.medium);
2079
+ return this.safeUtcToLocal(value, dateFormats.medium);
2076
2080
  }
2077
2081
  getUTCToLocalizedDateTime(value) {
2078
- return this.safeUtcToZonedTime(value, dateTimeFormats.medium);
2082
+ return this.safeUtcToLocal(value, dateTimeFormats.medium);
2079
2083
  }
2080
- safeUtcToZonedTime(date, conversionFormat = null) {
2084
+ safeUtcToLocal(date, conversionFormat = null) {
2081
2085
  if (!date) {
2082
2086
  return null;
2083
2087
  }
@@ -2091,23 +2095,12 @@ class LocalizationService {
2091
2095
  date = date + "Z";
2092
2096
  }
2093
2097
  }
2094
- let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
2095
- if (browserTimeZone) {
2096
- if (conversionFormat) {
2097
- result = utcToZonedTime(date, browserTimeZone);
2098
- result = format(result, conversionFormat, this.dateFnsLocale);
2099
- }
2100
- else {
2101
- result = utcToZonedTime(date, browserTimeZone).toString();
2102
- }
2098
+ let d = utcToLocal(date);
2099
+ if (conversionFormat) {
2100
+ result = format(d, conversionFormat, this.dateFnsLocale);
2103
2101
  }
2104
2102
  else {
2105
- if (conversionFormat) {
2106
- result = format(new Date(date), conversionFormat, this.dateFnsLocale);
2107
- }
2108
- else {
2109
- result = new Date(date).toString();
2110
- }
2103
+ result = d.toString();
2111
2104
  }
2112
2105
  }
2113
2106
  catch {