@osovitny/anatoly 3.17.159 → 3.19.1
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/fesm2022/osovitny-anatoly.mjs +554 -523
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/billing/utils.d.ts +2 -1
- package/lib/core/converts/convert.d.ts +1 -1
- package/lib/core/guid.d.ts +1 -1
- package/lib/core/is.d.ts +5 -5
- package/lib/ui/components/base/components/component.d.ts +1 -1
- package/lib/ui/components/base/components/edit.component.d.ts +1 -1
- package/lib/ui/components/base/components/enum-edit.component.d.ts +1 -1
- package/lib/ui/components/data-grid/control-panel.component.d.ts +6 -5
- package/lib/ui/components/dropdownlists/country/country.dropdownlist.d.ts +1 -3
- package/lib/ui/components/index.d.ts +1 -1
- package/lib/ui/directives/index.d.ts +1 -1
- package/lib/ui/directives/replacer/replacer.base.directive.d.ts +1 -1
- package/lib/ui/forms/index.d.ts +1 -1
- package/lib/ui/pipes/index.d.ts +1 -1
- package/package.json +58 -60
- package/esm2022/lib/anatoly.module.mjs +0 -62
- package/esm2022/lib/billing/billing.module.mjs +0 -81
- package/esm2022/lib/billing/components/buttons/buyaccess-button.component.mjs +0 -104
- package/esm2022/lib/billing/components/buttons/subscribe-plan-button.component.mjs +0 -113
- package/esm2022/lib/billing/components/exports.mjs +0 -28
- package/esm2022/lib/billing/components/index.mjs +0 -31
- package/esm2022/lib/billing/components/order-summary/order-summary.component.mjs +0 -154
- package/esm2022/lib/billing/components/payment-methods/payment-methods.component.mjs +0 -106
- package/esm2022/lib/billing/components/payment-options/payment-options.component.mjs +0 -97
- package/esm2022/lib/billing/components/pm/braintree/braintree.component.mjs +0 -155
- package/esm2022/lib/billing/components/pm/paypal/paypal-button.component.mjs +0 -159
- package/esm2022/lib/billing/components/pm/paypal/paypal-subscribe-button.component.mjs +0 -149
- package/esm2022/lib/billing/components/pm/paypal/paypal.component.mjs +0 -317
- package/esm2022/lib/billing/components/pm/stripe/stripe.component.mjs +0 -109
- package/esm2022/lib/billing/exports.mjs +0 -19
- package/esm2022/lib/billing/models/paypal-models.mjs +0 -16
- package/esm2022/lib/billing/services/payments.service.mjs +0 -170
- package/esm2022/lib/billing/services/paypal-script.service.mjs +0 -90
- package/esm2022/lib/billing/utils.mjs +0 -28
- package/esm2022/lib/core/browser.mjs +0 -24
- package/esm2022/lib/core/consts/app-settings.mjs +0 -55
- package/esm2022/lib/core/consts/core-settings.mjs +0 -29
- package/esm2022/lib/core/consts/formats.mjs +0 -27
- package/esm2022/lib/core/consts/ga.mjs +0 -26
- package/esm2022/lib/core/consts/storageKeys.mjs +0 -23
- package/esm2022/lib/core/converts/convert.mjs +0 -103
- package/esm2022/lib/core/converts/dateConvert.mjs +0 -60
- package/esm2022/lib/core/converts/tz/tzParseTimezone.mjs +0 -122
- package/esm2022/lib/core/converts/tz/tzTokenizeDate.mjs +0 -101
- package/esm2022/lib/core/converts/xmlFormatter.mjs +0 -34
- package/esm2022/lib/core/core.module.mjs +0 -112
- package/esm2022/lib/core/dom.mjs +0 -153
- package/esm2022/lib/core/enums/billing.mjs +0 -56
- package/esm2022/lib/core/enums/enums.mjs +0 -35
- package/esm2022/lib/core/enums/index.mjs +0 -17
- package/esm2022/lib/core/exports.mjs +0 -67
- package/esm2022/lib/core/go/apps-go.service.mjs +0 -88
- package/esm2022/lib/core/go/go.service.mjs +0 -86
- package/esm2022/lib/core/guards/once-import.guard.mjs +0 -21
- package/esm2022/lib/core/guards/starter.guard.mjs +0 -46
- package/esm2022/lib/core/guid.mjs +0 -22
- package/esm2022/lib/core/interceptors/httpInterceptor.mjs +0 -161
- package/esm2022/lib/core/is.mjs +0 -98
- package/esm2022/lib/core/localization/localization.module.mjs +0 -45
- package/esm2022/lib/core/localization/localization.service.mjs +0 -164
- package/esm2022/lib/core/localization/localize.pipe.mjs +0 -83
- package/esm2022/lib/core/localization/settings.module.mjs +0 -103
- package/esm2022/lib/core/localization/utils.mjs +0 -41
- package/esm2022/lib/core/logging/globalErrorHandler.mjs +0 -41
- package/esm2022/lib/core/logging/logging.service.mjs +0 -40
- package/esm2022/lib/core/models/qs.mjs +0 -17
- package/esm2022/lib/core/notifications/alerts.mjs +0 -116
- package/esm2022/lib/core/notifications/interfaces/notification.mjs +0 -17
- package/esm2022/lib/core/notifications/services/notification-service.mjs +0 -83
- package/esm2022/lib/core/performance/stopwatch.mjs +0 -50
- package/esm2022/lib/core/services/appcontext.service.mjs +0 -186
- package/esm2022/lib/core/services/dm.service.mjs +0 -69
- package/esm2022/lib/core/services/google-analytics.service.mjs +0 -75
- package/esm2022/lib/core/services/idle.service.mjs +0 -77
- package/esm2022/lib/core/services/loading.service.mjs +0 -67
- package/esm2022/lib/core/services/script.service.mjs +0 -77
- package/esm2022/lib/core/services/starter.service.mjs +0 -85
- package/esm2022/lib/core/services/web-storage.service.mjs +0 -66
- package/esm2022/lib/core/subs.mjs +0 -31
- package/esm2022/lib/core/utils/qsutils.mjs +0 -84
- package/esm2022/lib/core/utils/utils.mjs +0 -112
- package/esm2022/lib/data/base/api.service.mjs +0 -94
- package/esm2022/lib/data/base/grid/grid-edit.service.mjs +0 -80
- package/esm2022/lib/data/base/grid/grid-read.service.mjs +0 -60
- package/esm2022/lib/data/data.module.mjs +0 -66
- package/esm2022/lib/data/exports.mjs +0 -29
- package/esm2022/lib/data/services/billing/currencies-api.service.mjs +0 -41
- package/esm2022/lib/data/services/billing/currencies-storage.service.mjs +0 -92
- package/esm2022/lib/data/services/billing/discountcodes-api.service.mjs +0 -37
- package/esm2022/lib/data/services/billing/payments-api.service.mjs +0 -64
- package/esm2022/lib/data/services/billing/subscriptions-api.service.mjs +0 -61
- package/esm2022/lib/data/services/billing/transactions-api.service.mjs +0 -43
- package/esm2022/lib/data/services/core-api.service.mjs +0 -44
- package/esm2022/lib/data/services/emails-api.service.mjs +0 -47
- package/esm2022/lib/external/fa.module.mjs +0 -45
- package/esm2022/lib/external/kendo.module.mjs +0 -179
- package/esm2022/lib/iam/b2c/b2c.mjs +0 -40
- package/esm2022/lib/iam/b2c/consts.mjs +0 -25
- package/esm2022/lib/iam/b2c/index.mjs +0 -21
- package/esm2022/lib/iam/configs.mjs +0 -109
- package/esm2022/lib/iam/consts.mjs +0 -22
- package/esm2022/lib/iam/exports.mjs +0 -22
- package/esm2022/lib/iam/guards/admin.guard.mjs +0 -46
- package/esm2022/lib/iam/guards/authentication.guard.mjs +0 -30
- package/esm2022/lib/iam/guards/index.mjs +0 -20
- package/esm2022/lib/iam/iam-pages.module.mjs +0 -57
- package/esm2022/lib/iam/iam-pages.routes.mjs +0 -45
- package/esm2022/lib/iam/iam.module.mjs +0 -84
- package/esm2022/lib/iam/pages/signin.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signout.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signup.page.mjs +0 -40
- package/esm2022/lib/iam/redirect.mjs +0 -29
- package/esm2022/lib/iam/services/auth.service.mjs +0 -436
- package/esm2022/lib/iam/storage.mjs +0 -42
- package/esm2022/lib/iam/utils.mjs +0 -49
- package/esm2022/lib/ui/components/base/components/component.mjs +0 -76
- package/esm2022/lib/ui/components/base/components/edit.component.mjs +0 -146
- package/esm2022/lib/ui/components/base/components/enum-edit.component.mjs +0 -92
- package/esm2022/lib/ui/components/base/dialog.mjs +0 -71
- package/esm2022/lib/ui/components/base/list.mjs +0 -100
- package/esm2022/lib/ui/components/base/pages/edit.page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/paged.page.mjs +0 -68
- package/esm2022/lib/ui/components/card/card-body.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-footer.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-header.component.mjs +0 -51
- package/esm2022/lib/ui/components/card/card.component.mjs +0 -41
- package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +0 -43
- package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -57
- package/esm2022/lib/ui/components/data-grid/control-panel.component.mjs +0 -201
- package/esm2022/lib/ui/components/datapager/datapager.component.mjs +0 -95
- package/esm2022/lib/ui/components/dropdownlists/country/country.dropdownlist.mjs +0 -96
- package/esm2022/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -112
- package/esm2022/lib/ui/components/exports.mjs +0 -53
- package/esm2022/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.mjs +0 -55
- package/esm2022/lib/ui/components/html-editor/base-editor.component.mjs +0 -94
- package/esm2022/lib/ui/components/html-editor/defaultoptions.mjs +0 -87
- package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +0 -114
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/index.mjs +0 -57
- package/esm2022/lib/ui/components/no-mobile-support/no-mobile-support.component.mjs +0 -45
- package/esm2022/lib/ui/components/nodata/nodata.component.mjs +0 -76
- package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +0 -53
- package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -85
- package/esm2022/lib/ui/components/spinners/pagespinner/spinkits.mjs +0 -12
- package/esm2022/lib/ui/components/urlslug/urlslug.component.mjs +0 -130
- package/esm2022/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.mjs +0 -63
- package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
- package/esm2022/lib/ui/dialogs/exports.mjs +0 -16
- package/esm2022/lib/ui/dialogs/index.mjs +0 -19
- package/esm2022/lib/ui/directives/exports.mjs +0 -19
- package/esm2022/lib/ui/directives/hover.directive.mjs +0 -50
- package/esm2022/lib/ui/directives/index.mjs +0 -22
- package/esm2022/lib/ui/directives/native-element.directive.mjs +0 -37
- package/esm2022/lib/ui/directives/replacer/a-replacer.directive.mjs +0 -48
- package/esm2022/lib/ui/directives/replacer/image-replacer.directive.mjs +0 -44
- package/esm2022/lib/ui/directives/replacer/replacer.base.directive.mjs +0 -44
- package/esm2022/lib/ui/exports.mjs +0 -22
- package/esm2022/lib/ui/forms/components/address/address.component.mjs +0 -240
- package/esm2022/lib/ui/forms/components/company/company.component.mjs +0 -138
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +0 -213
- package/esm2022/lib/ui/forms/exports.mjs +0 -20
- package/esm2022/lib/ui/forms/index.mjs +0 -21
- package/esm2022/lib/ui/pipes/exports.mjs +0 -19
- package/esm2022/lib/ui/pipes/filesize.pipe.mjs +0 -42
- package/esm2022/lib/ui/pipes/index.mjs +0 -22
- package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +0 -37
- package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
- package/esm2022/lib/ui/ui.module.mjs +0 -122
- package/esm2022/lib/ui/validation/exports.mjs +0 -19
- package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +0 -90
- package/esm2022/lib/ui/validation/index.mjs +0 -21
- package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +0 -53
- package/esm2022/lib/ui/validation/validation-summary.component.mjs +0 -124
- package/esm2022/osovitny-anatoly.mjs +0 -5
- package/esm2022/public-api.mjs +0 -22
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
|
|
9
|
-
Created:
|
|
10
|
-
09 Feb 2024
|
|
11
|
-
|
|
12
|
-
Source:
|
|
13
|
-
https://github.com/date-fns/date-fns/blob/main/src/toDate/index.ts
|
|
14
|
-
|
|
15
|
-
tz:
|
|
16
|
-
https://www.npmjs.com/package/date-fns-tz
|
|
17
|
-
https://github.com/marnusw/date-fns-tz/blob/master/src/utcToZonedTime/index.js
|
|
18
|
-
https://github.com/marnusw/date-fns-tz/blob/master/src/_lib/tzParseTimezone/index.js
|
|
19
|
-
|
|
20
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
21
|
-
</file>
|
|
22
|
-
*/
|
|
23
|
-
import { tzParseTimezone } from "./tz/tzParseTimezone";
|
|
24
|
-
export class DateConvert {
|
|
25
|
-
static toDate(argument) {
|
|
26
|
-
const argStr = Object.prototype.toString.call(argument);
|
|
27
|
-
if (argument instanceof Date || (typeof argument === "object" && argStr === "[object Date]")) {
|
|
28
|
-
return argument;
|
|
29
|
-
}
|
|
30
|
-
else if (typeof argument === "number" || argStr === "[object Number]" ||
|
|
31
|
-
typeof argument === "string" || argStr === "[object String]") {
|
|
32
|
-
return new Date(argument);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return new Date(NaN);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
static utcToLocal(dirtyDate) {
|
|
39
|
-
if (typeof dirtyDate === 'string') {
|
|
40
|
-
if (dirtyDate.indexOf("T") > -1) {
|
|
41
|
-
dirtyDate = dirtyDate.replace("T", " ");
|
|
42
|
-
}
|
|
43
|
-
if (dirtyDate.indexOf("Z") == -1) {
|
|
44
|
-
dirtyDate = dirtyDate + "Z";
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
48
|
-
if (browserTimeZone) {
|
|
49
|
-
let date = DateConvert.toDate(dirtyDate);
|
|
50
|
-
let offsetMilliseconds = tzParseTimezone(browserTimeZone, date, true);
|
|
51
|
-
let d = new Date(date.getTime() - offsetMilliseconds);
|
|
52
|
-
let resultDate = new Date(0);
|
|
53
|
-
resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
|
|
54
|
-
resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
|
|
55
|
-
return resultDate;
|
|
56
|
-
}
|
|
57
|
-
return new Date(dirtyDate);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUNvbnZlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb252ZXJ0cy9kYXRlQ29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUJFO0FBRUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE1BQU0sT0FBTyxXQUFXO0lBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEQsSUFBSSxRQUFRLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdGLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7YUFDSSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssaUJBQWlCO1lBQzVELE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUN0RSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUztRQUNoQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUVELElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxTQUFTLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFdkUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLENBQUM7WUFDdEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0IsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztZQUVuRyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBeUJGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDA5IEZlYiAyMDI0XHJcblxyXG4gIFNvdXJjZTpcclxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21haW4vc3JjL3RvRGF0ZS9pbmRleC50c1xyXG5cclxuICAgIHR6OlxyXG4gICAgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvZGF0ZS1mbnMtdHpcclxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJudXN3L2RhdGUtZm5zLXR6L2Jsb2IvbWFzdGVyL3NyYy91dGNUb1pvbmVkVGltZS9pbmRleC5qc1xyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21hcm51c3cvZGF0ZS1mbnMtdHovYmxvYi9tYXN0ZXIvc3JjL19saWIvdHpQYXJzZVRpbWV6b25lL2luZGV4LmpzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgdHpQYXJzZVRpbWV6b25lIH0gZnJvbSBcIi4vdHovdHpQYXJzZVRpbWV6b25lXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUNvbnZlcnQge1xyXG4gIHB1YmxpYyBzdGF0aWMgdG9EYXRlKGFyZ3VtZW50OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICBjb25zdCBhcmdTdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpO1xyXG5cclxuICAgIGlmIChhcmd1bWVudCBpbnN0YW5jZW9mIERhdGUgfHwgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJvYmplY3RcIiAmJiBhcmdTdHIgPT09IFwiW29iamVjdCBEYXRlXVwiKSkge1xyXG4gICAgICByZXR1cm4gYXJndW1lbnQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnQgPT09IFwibnVtYmVyXCIgfHwgYXJnU3RyID09PSBcIltvYmplY3QgTnVtYmVyXVwiIHx8XHJcbiAgICAgICAgICAgICB0eXBlb2YgYXJndW1lbnQgPT09IFwic3RyaW5nXCIgfHwgYXJnU3RyID09PSBcIltvYmplY3QgU3RyaW5nXVwiKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHV0Y1RvTG9jYWwoZGlydHlEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAodHlwZW9mIGRpcnR5RGF0ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGRpcnR5RGF0ZS5pbmRleE9mKFwiVFwiKSA+IC0xKSB7XHJcbiAgICAgICAgZGlydHlEYXRlID0gZGlydHlEYXRlLnJlcGxhY2UoXCJUXCIsIFwiIFwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGRpcnR5RGF0ZS5pbmRleE9mKFwiWlwiKSA9PSAtMSkge1xyXG4gICAgICAgIGRpcnR5RGF0ZSA9IGRpcnR5RGF0ZSArIFwiWlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGJyb3dzZXJUaW1lWm9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuXHJcbiAgICBpZiAoYnJvd3NlclRpbWVab25lKSB7XHJcbiAgICAgIGxldCBkYXRlID0gRGF0ZUNvbnZlcnQudG9EYXRlKGRpcnR5RGF0ZSk7XHJcbiAgICAgIGxldCBvZmZzZXRNaWxsaXNlY29uZHMgPSB0elBhcnNlVGltZXpvbmUoYnJvd3NlclRpbWVab25lLCBkYXRlLCB0cnVlKTtcclxuICAgICAgbGV0IGQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIG9mZnNldE1pbGxpc2Vjb25kcyk7XHJcbiAgICAgIGxldCByZXN1bHREYXRlID0gbmV3IERhdGUoMCk7XHJcblxyXG4gICAgICByZXN1bHREYXRlLnNldEZ1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSwgZC5nZXRVVENNb250aCgpLCBkLmdldFVUQ0RhdGUoKSk7XHJcbiAgICAgIHJlc3VsdERhdGUuc2V0SG91cnMoZC5nZXRVVENIb3VycygpLCBkLmdldFVUQ01pbnV0ZXMoKSwgZC5nZXRVVENTZWNvbmRzKCksIGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpO1xyXG5cclxuICAgICAgcmV0dXJuIHJlc3VsdERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRpcnR5RGF0ZSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZhZGltT1M6IEFuYXRvbHkgcGxlYXNlIGhhdmUgYSBsb29rXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbG9jYWxUb1V0Yyh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgdmFsdWUuZ2V0VVRDTW9udGgoKSwgdmFsdWUuZ2V0VVRDRGF0ZSgpLFxyXG4gICAgICAgICAgdmFsdWUuZ2V0VVRDSG91cnMoKSwgdmFsdWUuZ2V0VVRDTWludXRlcygpLCB2YWx1ZS5nZXRVVENTZWNvbmRzKCksIHZhbHVlLmdldFVUQ01pbGxpc2Vjb25kcygpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHV0Y1RvTG9jYWwodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSxcclxuICAgICAgICAgIHZhbHVlLmdldEhvdXJzKCksIHZhbHVlLmdldE1pbnV0ZXMoKSwgdmFsdWUuZ2V0U2Vjb25kcygpLCB2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgKi9cclxufVxyXG4iXX0=
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
10 Feb 2024
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
import { tzTokenizeDate } from "./tzTokenizeDate";
|
|
17
|
-
export function tzParseTimezone(timezoneString, date, isUtcDate) {
|
|
18
|
-
var token;
|
|
19
|
-
var absoluteOffset;
|
|
20
|
-
// Empty string
|
|
21
|
-
if (!timezoneString) {
|
|
22
|
-
return 0;
|
|
23
|
-
}
|
|
24
|
-
// Z
|
|
25
|
-
token = patterns.timezoneZ.exec(timezoneString);
|
|
26
|
-
if (token) {
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
var hours;
|
|
30
|
-
// ±hh
|
|
31
|
-
token = patterns.timezoneHH.exec(timezoneString);
|
|
32
|
-
if (token) {
|
|
33
|
-
hours = parseInt(token[1], 10);
|
|
34
|
-
if (!validateTimezone(hours)) {
|
|
35
|
-
return NaN;
|
|
36
|
-
}
|
|
37
|
-
return -(hours * MILLISECONDS_IN_HOUR);
|
|
38
|
-
}
|
|
39
|
-
// ±hh:mm or ±hhmm
|
|
40
|
-
token = patterns.timezoneHHMM.exec(timezoneString);
|
|
41
|
-
if (token) {
|
|
42
|
-
hours = parseInt(token[1], 10);
|
|
43
|
-
var minutes = parseInt(token[2], 10);
|
|
44
|
-
if (!validateTimezone(hours, minutes)) {
|
|
45
|
-
return NaN;
|
|
46
|
-
}
|
|
47
|
-
absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
|
|
48
|
-
return hours > 0 ? -absoluteOffset : absoluteOffset;
|
|
49
|
-
}
|
|
50
|
-
// IANA time zone
|
|
51
|
-
if (isValidTimezoneIANAString(timezoneString)) {
|
|
52
|
-
date = new Date(date || Date.now());
|
|
53
|
-
var utcDate = isUtcDate ? date : toUtcDate(date);
|
|
54
|
-
var offset = calcOffset(utcDate, timezoneString);
|
|
55
|
-
var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);
|
|
56
|
-
return -fixedOffset;
|
|
57
|
-
}
|
|
58
|
-
return NaN;
|
|
59
|
-
}
|
|
60
|
-
var MILLISECONDS_IN_HOUR = 3600000;
|
|
61
|
-
var MILLISECONDS_IN_MINUTE = 60000;
|
|
62
|
-
var patterns = {
|
|
63
|
-
timezone: /([Z+-].*)$/,
|
|
64
|
-
timezoneZ: /^(Z)$/,
|
|
65
|
-
timezoneHH: /^([+-]\d{2})$/,
|
|
66
|
-
timezoneHHMM: /^([+-]\d{2}):?(\d{2})$/,
|
|
67
|
-
};
|
|
68
|
-
function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {
|
|
69
|
-
var utcDate = new Date(0);
|
|
70
|
-
utcDate.setUTCFullYear(fullYear, month, day);
|
|
71
|
-
utcDate.setUTCHours(hour, minute, second, millisecond);
|
|
72
|
-
return utcDate;
|
|
73
|
-
}
|
|
74
|
-
function toUtcDate(date) {
|
|
75
|
-
return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
|
|
76
|
-
}
|
|
77
|
-
function calcOffset(date, timezoneString) {
|
|
78
|
-
var tokens = tzTokenizeDate(date, timezoneString);
|
|
79
|
-
// ms dropped because it's not provided by tzTokenizeDate
|
|
80
|
-
var asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();
|
|
81
|
-
var asTS = date.getTime();
|
|
82
|
-
var over = asTS % 1000;
|
|
83
|
-
asTS -= over >= 0 ? over : 1000 + over;
|
|
84
|
-
return asUTC - asTS;
|
|
85
|
-
}
|
|
86
|
-
function fixOffset(date, offset, timezoneString) {
|
|
87
|
-
var localTS = date.getTime();
|
|
88
|
-
// Our UTC time is just a guess because our offset is just a guess
|
|
89
|
-
var utcGuess = localTS - offset;
|
|
90
|
-
// Test whether the zone matches the offset for this ts
|
|
91
|
-
var o2 = calcOffset(new Date(utcGuess), timezoneString);
|
|
92
|
-
// If so, offset didn't change, and we're done
|
|
93
|
-
if (offset === o2) {
|
|
94
|
-
return offset;
|
|
95
|
-
}
|
|
96
|
-
// If not, change the ts by the difference in the offset
|
|
97
|
-
utcGuess -= o2 - offset;
|
|
98
|
-
// If that gives us the local time we want, we're done
|
|
99
|
-
var o3 = calcOffset(new Date(utcGuess), timezoneString);
|
|
100
|
-
if (o2 === o3) {
|
|
101
|
-
return o2;
|
|
102
|
-
}
|
|
103
|
-
// If it's different, we're in a hole time. The offset has changed, but we don't adjust the time
|
|
104
|
-
return Math.max(o2, o3);
|
|
105
|
-
}
|
|
106
|
-
function validateTimezone(hours, minutes = null) {
|
|
107
|
-
return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59));
|
|
108
|
-
}
|
|
109
|
-
var validIANATimezoneCache = {};
|
|
110
|
-
function isValidTimezoneIANAString(timeZoneString) {
|
|
111
|
-
if (validIANATimezoneCache[timeZoneString])
|
|
112
|
-
return true;
|
|
113
|
-
try {
|
|
114
|
-
new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString });
|
|
115
|
-
validIANATimezoneCache[timeZoneString] = true;
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHpQYXJzZVRpbWV6b25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvY29udmVydHMvdHovdHpQYXJzZVRpbWV6b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWpELE1BQU0sVUFBVSxlQUFlLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTO0lBQzdELElBQUksS0FBSyxDQUFBO0lBQ1QsSUFBSSxjQUFjLENBQUE7SUFFbEIsZUFBZTtJQUNmLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFRCxJQUFJO0lBQ0osS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQy9DLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQTtJQUVULE1BQU07SUFDTixLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRTlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFB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SSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDekIsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxJQUFJO0lBQzdDLE9BQU8sQ0FBQyxFQUFFLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUM1RixDQUFDO0FBRUQsSUFBSSxzQkFBc0IsR0FBRyxFQUFFLENBQUE7QUFDL0IsU0FBUyx5QkFBeUIsQ0FBQyxjQUFjO0lBQy9DLElBQUksc0JBQXNCLENBQUMsY0FBYyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDdkQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO1FBQ2hFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUM3QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMCBGZWIgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmltcG9ydCB7IHR6VG9rZW5pemVEYXRlIH0gZnJvbSBcIi4vdHpUb2tlbml6ZURhdGVcIlxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHR6UGFyc2VUaW1lem9uZSh0aW1lem9uZVN0cmluZywgZGF0ZSwgaXNVdGNEYXRlKSB7XHJcbiAgdmFyIHRva2VuXHJcbiAgdmFyIGFic29sdXRlT2Zmc2V0XHJcblxyXG4gIC8vIEVtcHR5IHN0cmluZ1xyXG4gIGlmICghdGltZXpvbmVTdHJpbmcpIHtcclxuICAgIHJldHVybiAwXHJcbiAgfVxyXG5cclxuICAvLyBaXHJcbiAgdG9rZW4gPSBwYXR0ZXJucy50aW1lem9uZVouZXhlYyh0aW1lem9uZVN0cmluZylcclxuICBpZiAodG9rZW4pIHtcclxuICAgIHJldHVybiAwXHJcbiAgfVxyXG5cclxuICB2YXIgaG91cnNcclxuXHJcbiAgLy8gwrFoaFxyXG4gIHRva2VuID0gcGF0dGVybnMudGltZXpvbmVISC5leGVjKHRpbWV6b25lU3RyaW5nKVxyXG4gIGlmICh0b2tlbikge1xyXG4gICAgaG91cnMgPSBwYXJzZUludCh0b2tlblsxXSwgMTApXHJcblxyXG4gICAgaWYgKCF2YWxpZGF0ZVRpbWV6b25lKGhvdXJzKSkge1xyXG4gICAgICByZXR1cm4gTmFOXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0oaG91cnMgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUilcclxuICB9XHJcblxyXG4gIC8vIMKxaGg6bW0gb3IgwrFoaG1tXHJcbiAgdG9rZW4gPSBwYXR0ZXJucy50aW1lem9uZUhITU0uZXhlYyh0aW1lem9uZVN0cmluZylcclxuICBpZiAodG9rZW4pIHtcclxuICAgIGhvdXJzID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKVxyXG4gICAgdmFyIG1pbnV0ZXMgPSBwYXJzZUludCh0b2tlblsyXSwgMTApXHJcblxyXG4gICAgaWYgKCF2YWxpZGF0ZVRpbWV6b25lKGhvdXJzLCBtaW51dGVzKSkge1xyXG4gICAgICByZXR1cm4gTmFOXHJcbiAgICB9XHJcblxyXG4gICAgYWJzb2x1dGVPZmZzZXQgPSBNYXRoLmFicyhob3VycykgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArIG1pbnV0ZXMgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFXHJcbiAgICByZXR1cm4gaG91cnMgPiAwID8gLWFic29sdXRlT2Zmc2V0IDogYWJzb2x1dGVPZmZzZXRcclxuICB9XHJcblxyXG4gIC8vIElBTkEgdGltZSB6b25lXHJcbiAgaWYgKGlzVmFsaWRUaW1lem9uZUlBTkFTdHJpbmcodGltZXpvbmVTdHJpbmcpKSB7XHJcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSB8fCBEYXRlLm5vdygpKVxyXG4gICAgdmFyIHV0Y0RhdGUgPSBpc1V0Y0RhdGUgPyBkYXRlIDogdG9VdGNEYXRlKGRhdGUpO1xyXG4gICAgdmFyIG9mZnNldCA9IGNhbGNPZmZzZXQodXRjRGF0ZSwgdGltZXpvbmVTdHJpbmcpO1xyXG4gICAgdmFyIGZpeGVkT2Zmc2V0ID0gaXNVdGNEYXRlID8gb2Zmc2V0IDogZml4T2Zmc2V0KGRhdGUsIG9mZnNldCwgdGltZXpvbmVTdHJpbmcpXHJcblxyXG4gICAgcmV0dXJuIC1maXhlZE9mZnNldFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIE5hTlxyXG59XHJcblxyXG5cclxudmFyIE1JTExJU0VDT05EU19JTl9IT1VSID0gMzYwMDAwMFxyXG52YXIgTUlMTElTRUNPTkRTX0lOX01JTlVURSA9IDYwMDAwXHJcblxyXG52YXIgcGF0dGVybnMgPSB7XHJcbiAgdGltZXpvbmU6IC8oW1orLV0uKikkLyxcclxuICB0aW1lem9uZVo6IC9eKFopJC8sXHJcbiAgdGltZXpvbmVISDogL14oWystXVxcZHsyfSkkLyxcclxuICB0aW1lem9uZUhITU06IC9eKFsrLV1cXGR7Mn0pOj8oXFxkezJ9KSQvLFxyXG59XHJcblxyXG5mdW5jdGlvbiBuZXdEYXRlVVRDKGZ1bGxZZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQpIHtcclxuICB2YXIgdXRjRGF0ZSA9IG5ldyBEYXRlKDApXHJcbiAgdXRjRGF0ZS5zZXRVVENGdWxsWWVhcihmdWxsWWVhciwgbW9udGgsIGRheSlcclxuICB1dGNEYXRlLnNldFVUQ0hvdXJzKGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZClcclxuICByZXR1cm4gdXRjRGF0ZVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b1V0Y0RhdGUoZGF0ZSkge1xyXG4gIHJldHVybiBuZXdEYXRlVVRDKFxyXG4gICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICBkYXRlLmdldEhvdXJzKCksXHJcbiAgICBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgIGRhdGUuZ2V0U2Vjb25kcygpLFxyXG4gICAgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKVxyXG4gIClcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsY09mZnNldChkYXRlLCB0aW1lem9uZVN0cmluZykge1xyXG4gIHZhciB0b2tlbnMgPSB0elRva2VuaXplRGF0ZShkYXRlLCB0aW1lem9uZVN0cmluZylcclxuXHJcbiAgLy8gbXMgZHJvcHBlZCBiZWNhdXNlIGl0J3Mgbm90IHByb3ZpZGVkIGJ5IHR6VG9rZW5pemVEYXRlXHJcbiAgdmFyIGFzVVRDID0gbmV3RGF0ZVVUQyhcclxuICAgIHRva2Vuc1swXSxcclxuICAgIHRva2Vuc1sxXSAtIDEsXHJcbiAgICB0b2tlbnNbMl0sXHJcbiAgICB0b2tlbnNbM10gJSAyNCxcclxuICAgIHRva2Vuc1s0XSxcclxuICAgIHRva2Vuc1s1XSxcclxuICAgIDBcclxuICApLmdldFRpbWUoKVxyXG5cclxuICB2YXIgYXNUUyA9IGRhdGUuZ2V0VGltZSgpXHJcbiAgdmFyIG92ZXIgPSBhc1RTICUgMTAwMFxyXG4gIGFzVFMgLT0gb3ZlciA+PSAwID8gb3ZlciA6IDEwMDAgKyBvdmVyXHJcbiAgcmV0dXJuIGFzVVRDIC0gYXNUU1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhPZmZzZXQoZGF0ZSwgb2Zmc2V0LCB0aW1lem9uZVN0cmluZykge1xyXG4gIHZhciBsb2NhbFRTID0gZGF0ZS5nZXRUaW1lKClcclxuXHJcbiAgLy8gT3VyIFVUQyB0aW1lIGlzIGp1c3QgYSBndWVzcyBiZWNhdXNlIG91ciBvZmZzZXQgaXMganVzdCBhIGd1ZXNzXHJcbiAgdmFyIHV0Y0d1ZXNzID0gbG9jYWxUUyAtIG9mZnNldFxyXG5cclxuICAvLyBUZXN0IHdoZXRoZXIgdGhlIHpvbmUgbWF0Y2hlcyB0aGUgb2Zmc2V0IGZvciB0aGlzIHRzXHJcbiAgdmFyIG8yID0gY2FsY09mZnNldChuZXcgRGF0ZSh1dGNHdWVzcyksIHRpbWV6b25lU3RyaW5nKVxyXG5cclxuICAvLyBJZiBzbywgb2Zmc2V0IGRpZG4ndCBjaGFuZ2UsIGFuZCB3ZSdyZSBkb25lXHJcbiAgaWYgKG9mZnNldCA9PT0gbzIpIHtcclxuICAgIHJldHVybiBvZmZzZXRcclxuICB9XHJcblxyXG4gIC8vIElmIG5vdCwgY2hhbmdlIHRoZSB0cyBieSB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgb2Zmc2V0XHJcbiAgdXRjR3Vlc3MgLT0gbzIgLSBvZmZzZXRcclxuXHJcbiAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lXHJcbiAgdmFyIG8zID0gY2FsY09mZnNldChuZXcgRGF0ZSh1dGNHdWVzcyksIHRpbWV6b25lU3RyaW5nKVxyXG4gIGlmIChvMiA9PT0gbzMpIHtcclxuICAgIHJldHVybiBvMlxyXG4gIH1cclxuXHJcbiAgLy8gSWYgaXQncyBkaWZmZXJlbnQsIHdlJ3JlIGluIGEgaG9sZSB0aW1lLiBUaGUgb2Zmc2V0IGhhcyBjaGFuZ2VkLCBidXQgd2UgZG9uJ3QgYWRqdXN0IHRoZSB0aW1lXHJcbiAgcmV0dXJuIE1hdGgubWF4KG8yLCBvMylcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVUaW1lem9uZShob3VycywgbWludXRlcyA9IG51bGwpIHtcclxuICByZXR1cm4gLTIzIDw9IGhvdXJzICYmIGhvdXJzIDw9IDIzICYmIChtaW51dGVzID09IG51bGwgfHwgKDAgPD0gbWludXRlcyAmJiBtaW51dGVzIDw9IDU5KSlcclxufVxyXG5cclxudmFyIHZhbGlkSUFOQVRpbWV6b25lQ2FjaGUgPSB7fVxyXG5mdW5jdGlvbiBpc1ZhbGlkVGltZXpvbmVJQU5BU3RyaW5nKHRpbWVab25lU3RyaW5nKSB7XHJcbiAgaWYgKHZhbGlkSUFOQVRpbWV6b25lQ2FjaGVbdGltZVpvbmVTdHJpbmddKSByZXR1cm4gdHJ1ZVxyXG4gIHRyeSB7XHJcbiAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQsIHsgdGltZVpvbmU6IHRpbWVab25lU3RyaW5nIH0pXHJcbiAgICB2YWxpZElBTkFUaW1lem9uZUNhY2hlW3RpbWVab25lU3RyaW5nXSA9IHRydWVcclxuICAgIHJldHVybiB0cnVlXHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
10 Feb 2024
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Returns the [year, month, day, hour, minute, seconds] tokens of the provided
|
|
18
|
-
* `date` as it will be rendered in the `timeZone`.
|
|
19
|
-
*/
|
|
20
|
-
export function tzTokenizeDate(date, timeZone) {
|
|
21
|
-
var dtf = getDateTimeFormat(timeZone);
|
|
22
|
-
return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);
|
|
23
|
-
}
|
|
24
|
-
var typeToPos = {
|
|
25
|
-
year: 0,
|
|
26
|
-
month: 1,
|
|
27
|
-
day: 2,
|
|
28
|
-
hour: 3,
|
|
29
|
-
minute: 4,
|
|
30
|
-
second: 5,
|
|
31
|
-
};
|
|
32
|
-
function partsOffset(dtf, date) {
|
|
33
|
-
try {
|
|
34
|
-
var formatted = dtf.formatToParts(date);
|
|
35
|
-
var filled = [];
|
|
36
|
-
for (var i = 0; i < formatted.length; i++) {
|
|
37
|
-
var pos = typeToPos[formatted[i].type];
|
|
38
|
-
if (pos >= 0) {
|
|
39
|
-
filled[pos] = parseInt(formatted[i].value, 10);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return filled;
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
if (error instanceof RangeError) {
|
|
46
|
-
return [NaN];
|
|
47
|
-
}
|
|
48
|
-
throw error;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function hackyOffset(dtf, date) {
|
|
52
|
-
var formatted = dtf.format(date).replace(/\u200E/g, '');
|
|
53
|
-
var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted);
|
|
54
|
-
// var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed
|
|
55
|
-
// return [fYear, fMonth, fDay, fHour, fMinute, fSecond]
|
|
56
|
-
return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];
|
|
57
|
-
}
|
|
58
|
-
// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used
|
|
59
|
-
// to get deterministic local date/time output according to the `en-US` locale which
|
|
60
|
-
// can be used to extract local time parts as necessary.
|
|
61
|
-
var dtfCache = {};
|
|
62
|
-
function getDateTimeFormat(timeZone) {
|
|
63
|
-
if (!dtfCache[timeZone]) {
|
|
64
|
-
// New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`
|
|
65
|
-
var testDateFormatted = new Intl.DateTimeFormat('en-US', {
|
|
66
|
-
hour12: false,
|
|
67
|
-
timeZone: 'America/New_York',
|
|
68
|
-
year: 'numeric',
|
|
69
|
-
month: 'numeric',
|
|
70
|
-
day: '2-digit',
|
|
71
|
-
hour: '2-digit',
|
|
72
|
-
minute: '2-digit',
|
|
73
|
-
second: '2-digit',
|
|
74
|
-
}).format(new Date('2014-06-25T04:00:00.123Z'));
|
|
75
|
-
var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' ||
|
|
76
|
-
testDateFormatted === '06/25/2014 00:00:00';
|
|
77
|
-
dtfCache[timeZone] = hourCycleSupported
|
|
78
|
-
? new Intl.DateTimeFormat('en-US', {
|
|
79
|
-
hour12: false,
|
|
80
|
-
timeZone: timeZone,
|
|
81
|
-
year: 'numeric',
|
|
82
|
-
month: 'numeric',
|
|
83
|
-
day: '2-digit',
|
|
84
|
-
hour: '2-digit',
|
|
85
|
-
minute: '2-digit',
|
|
86
|
-
second: '2-digit',
|
|
87
|
-
})
|
|
88
|
-
: new Intl.DateTimeFormat('en-US', {
|
|
89
|
-
hourCycle: 'h23',
|
|
90
|
-
timeZone: timeZone,
|
|
91
|
-
year: 'numeric',
|
|
92
|
-
month: 'numeric',
|
|
93
|
-
day: '2-digit',
|
|
94
|
-
hour: '2-digit',
|
|
95
|
-
minute: '2-digit',
|
|
96
|
-
second: '2-digit',
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return dtfCache[timeZone];
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHpUb2tlbml6ZURhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb252ZXJ0cy90ei90elRva2VuaXplRGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVE7SUFDM0MsSUFBSSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDckMsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzVFLENBQUM7QUFFRCxJQUFJLFNBQVMsR0FBRztJQUNkLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixHQUFHLEVBQUUsQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztDQUNWLENBQUE7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSTtJQUM1QixJQUFJLENBQUM7UUFDSCxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUV0QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVB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XG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMCBGZWIgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmRzXSB0b2tlbnMgb2YgdGhlIHByb3ZpZGVkXHJcbiAqIGBkYXRlYCBhcyBpdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSBgdGltZVpvbmVgLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHR6VG9rZW5pemVEYXRlKGRhdGUsIHRpbWVab25lKSB7XHJcbiAgdmFyIGR0ZiA9IGdldERhdGVUaW1lRm9ybWF0KHRpbWVab25lKVxyXG4gIHJldHVybiBkdGYuZm9ybWF0VG9QYXJ0cyA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkgOiBoYWNreU9mZnNldChkdGYsIGRhdGUpXHJcbn1cclxuXHJcbnZhciB0eXBlVG9Qb3MgPSB7XHJcbiAgeWVhcjogMCxcclxuICBtb250aDogMSxcclxuICBkYXk6IDIsXHJcbiAgaG91cjogMyxcclxuICBtaW51dGU6IDQsXHJcbiAgc2Vjb25kOiA1LFxyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJ0c09mZnNldChkdGYsIGRhdGUpIHtcclxuICB0cnkge1xyXG4gICAgdmFyIGZvcm1hdHRlZCA9IGR0Zi5mb3JtYXRUb1BhcnRzKGRhdGUpXHJcbiAgICB2YXIgZmlsbGVkID0gW11cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBwb3MgPSB0eXBlVG9Qb3NbZm9ybWF0dGVkW2ldLnR5cGVdXHJcblxyXG4gICAgICBpZiAocG9zID49IDApIHtcclxuICAgICAgICBmaWxsZWRbcG9zXSA9IHBhcnNlSW50KGZvcm1hdHRlZFtpXS52YWx1ZSwgMTApXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWxsZWRcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikge1xyXG4gICAgICByZXR1cm4gW05hTl1cclxuICAgIH1cclxuICAgIHRocm93IGVycm9yXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHtcclxuICB2YXIgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cXHUyMDBFL2csICcnKVxyXG4gIHZhciBwYXJzZWQgPSAvKFxcZCspXFwvKFxcZCspXFwvKFxcZCspLD8gKFxcZCspOihcXGQrKTooXFxkKykvLmV4ZWMoZm9ybWF0dGVkKVxyXG4gIC8vIHZhciBbLCBmTW9udGgsIGZEYXksIGZZZWFyLCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF0gPSBwYXJzZWRcclxuICAvLyByZXR1cm4gW2ZZZWFyLCBmTW9udGgsIGZEYXksIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXVxyXG4gIHJldHVybiBbcGFyc2VkWzNdLCBwYXJzZWRbMV0sIHBhcnNlZFsyXSwgcGFyc2VkWzRdLCBwYXJzZWRbNV0sIHBhcnNlZFs2XV1cclxufVxyXG5cclxuLy8gR2V0IGEgY2FjaGVkIEludGwuRGF0ZVRpbWVGb3JtYXQgaW5zdGFuY2UgZm9yIHRoZSBJQU5BIGB0aW1lWm9uZWAuIFRoaXMgY2FuIGJlIHVzZWRcclxuLy8gdG8gZ2V0IGRldGVybWluaXN0aWMgbG9jYWwgZGF0ZS90aW1lIG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIGBlbi1VU2AgbG9jYWxlIHdoaWNoXHJcbi8vIGNhbiBiZSB1c2VkIHRvIGV4dHJhY3QgbG9jYWwgdGltZSBwYXJ0cyBhcyBuZWNlc3NhcnkuXHJcbnZhciBkdGZDYWNoZSA9IHt9XHJcbmZ1bmN0aW9uIGdldERhdGVUaW1lRm9ybWF0KHRpbWVab25lKSB7XHJcbiAgaWYgKCFkdGZDYWNoZVt0aW1lWm9uZV0pIHtcclxuICAgIC8vIE5ldyBicm93c2VycyB1c2UgYGhvdXJDeWNsZWAsIElFIGFuZCBDaHJvbWUgPDczIGRvZXMgbm90IHN1cHBvcnQgaXQgYW5kIHVzZXMgYGhvdXIxMmBcclxuICAgIHZhciB0ZXN0RGF0ZUZvcm1hdHRlZCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcclxuICAgICAgaG91cjEyOiBmYWxzZSxcclxuICAgICAgdGltZVpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICBtb250aDogJ251bWVyaWMnLFxyXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcclxuICAgICAgaG91cjogJzItZGlnaXQnLFxyXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcclxuICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXHJcbiAgICB9KS5mb3JtYXQobmV3IERhdGUoJzIwMTQtMDYtMjVUMDQ6MDA6MDAuMTIzWicpKVxyXG5cclxuICAgIHZhciBob3VyQ3ljbGVTdXBwb3J0ZWQgPVxyXG4gICAgdGVzdERhdGVGb3JtYXR0ZWQgPT09ICcwNi8yNS8yMDE0LCAwMDowMDowMCcgfHxcclxuICAgIHRlc3REYXRlRm9ybWF0dGVkID09PSAnMDYvMjUvMjAxNCAwMDowMDowMCdcclxuXHJcbiAgICBkdGZDYWNoZVt0aW1lWm9uZV0gPSBob3VyQ3ljbGVTdXBwb3J0ZWRcclxuICAgICAgPyBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XHJcbiAgICAgICAgICBob3VyMTI6IGZhbHNlLFxyXG4gICAgICAgICAgdGltZVpvbmU6IHRpbWVab25lLFxyXG4gICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICAgICAgbW9udGg6ICdudW1lcmljJyxcclxuICAgICAgICAgIGRheTogJzItZGlnaXQnLFxyXG4gICAgICAgICAgaG91cjogJzItZGlnaXQnLFxyXG4gICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcclxuICAgICAgICB9KVxyXG4gICAgICA6IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcclxuICAgICAgICAgIGhvdXJDeWNsZTogJ2gyMycsXHJcbiAgICAgICAgICB0aW1lWm9uZTogdGltZVpvbmUsXHJcbiAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXHJcbiAgICAgICAgICBtb250aDogJ251bWVyaWMnLFxyXG4gICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcclxuICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxyXG4gICAgICAgIH0pXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZHRmQ2FjaGVbdGltZVpvbmVdXHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
10 Sep 2022
|
|
12
|
-
|
|
13
|
-
Code:
|
|
14
|
-
https://www.npmjs.com/package/js-beautify
|
|
15
|
-
https://beautifier.io
|
|
16
|
-
|
|
17
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
18
|
-
</file>
|
|
19
|
-
*/
|
|
20
|
-
//var beautify_html = require('js-beautify').html;
|
|
21
|
-
import js_beautify from 'js-beautify';
|
|
22
|
-
export class XmlFormatter {
|
|
23
|
-
static toPrettyXML(s, options) {
|
|
24
|
-
if (!options) {
|
|
25
|
-
options = {
|
|
26
|
-
indent_size: 2,
|
|
27
|
-
indent_char: " ",
|
|
28
|
-
wrap_line_length: 110
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return js_beautify.html(s, options);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sRm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvY29udmVydHMveG1sRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkU7QUFFRixrREFBa0Q7QUFDbEQsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFBO0FBR3JDLE1BQU0sT0FBTyxZQUFZO0lBQ2hCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBUyxFQUFFLE9BQTZCO1FBQ2hFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sR0FBRztnQkFDUixXQUFXLEVBQUUsQ0FBQztnQkFDZCxXQUFXLEVBQUUsR0FBRztnQkFDaEIsZ0JBQWdCLEVBQUUsR0FBRzthQUN0QixDQUFBO1FBQ0gsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEwIFNlcCAyMDIyXHJcblxyXG4gIENvZGU6XHJcbiAgICBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9qcy1iZWF1dGlmeVxyXG4gICAgaHR0cHM6Ly9iZWF1dGlmaWVyLmlvXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy92YXIgYmVhdXRpZnlfaHRtbCA9IHJlcXVpcmUoJ2pzLWJlYXV0aWZ5JykuaHRtbDtcclxuaW1wb3J0IGpzX2JlYXV0aWZ5IGZyb20gJ2pzLWJlYXV0aWZ5J1xyXG5pbXBvcnQgeyBIVE1MQmVhdXRpZnlPcHRpb25zIH0gZnJvbSAnanMtYmVhdXRpZnknXHJcblxyXG5leHBvcnQgY2xhc3MgWG1sRm9ybWF0dGVyIHtcclxuICBwdWJsaWMgc3RhdGljIHRvUHJldHR5WE1MKHM6IHN0cmluZywgb3B0aW9ucz86IEhUTUxCZWF1dGlmeU9wdGlvbnMpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFvcHRpb25zKSB7XHJcbiAgICAgIG9wdGlvbnMgPSB7XHJcbiAgICAgICAgaW5kZW50X3NpemU6IDIsXHJcbiAgICAgICAgaW5kZW50X2NoYXI6IFwiIFwiLFxyXG4gICAgICAgIHdyYXBfbGluZV9sZW5ndGg6IDExMFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGpzX2JlYXV0aWZ5Lmh0bWwocywgb3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
29 June 2020
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
//Node
|
|
17
|
-
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
|
18
|
-
import { CommonModule } from '@angular/common';
|
|
19
|
-
import { RouterModule } from '@angular/router';
|
|
20
|
-
import { ToastrModule } from 'ngx-toastr';
|
|
21
|
-
//Guards
|
|
22
|
-
import { StarterGuard } from './guards/starter.guard';
|
|
23
|
-
//Localization
|
|
24
|
-
import { LocalizationSettingsModule } from './localization/settings.module';
|
|
25
|
-
import { LocalizationModule } from './localization/localization.module';
|
|
26
|
-
//Services
|
|
27
|
-
import { DigitalMarketingService } from './services/dm.service';
|
|
28
|
-
import { GoogleAnalyticsService } from './services/google-analytics.service';
|
|
29
|
-
import { LoadingService } from './services/loading.service';
|
|
30
|
-
import { ScriptService } from './services/script.service';
|
|
31
|
-
import { StarterService } from './services/starter.service';
|
|
32
|
-
import { LocalStorageService, SessionStorageService } from './services/web-storage.service';
|
|
33
|
-
//Logging
|
|
34
|
-
import { LoggingService } from './logging/logging.service';
|
|
35
|
-
//Notifications
|
|
36
|
-
import { NotificationService } from './notifications/services/notification-service';
|
|
37
|
-
import * as i0 from "@angular/core";
|
|
38
|
-
import * as i1 from "ngx-toastr";
|
|
39
|
-
export let InjectorInstance;
|
|
40
|
-
export class AnatolyCoreModule {
|
|
41
|
-
constructor(injector, parentModule) {
|
|
42
|
-
this.injector = injector;
|
|
43
|
-
InjectorInstance = this.injector;
|
|
44
|
-
}
|
|
45
|
-
static { this.ɵfac = function AnatolyCoreModule_Factory(t) { return new (t || AnatolyCoreModule)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(AnatolyCoreModule, 12)); }; }
|
|
46
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyCoreModule }); }
|
|
47
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
48
|
-
//Guards
|
|
49
|
-
StarterGuard,
|
|
50
|
-
//Services
|
|
51
|
-
DigitalMarketingService,
|
|
52
|
-
GoogleAnalyticsService,
|
|
53
|
-
LoadingService,
|
|
54
|
-
ScriptService,
|
|
55
|
-
StarterService,
|
|
56
|
-
LocalStorageService,
|
|
57
|
-
SessionStorageService,
|
|
58
|
-
//Logging
|
|
59
|
-
LoggingService,
|
|
60
|
-
//Notifications
|
|
61
|
-
NotificationService
|
|
62
|
-
], imports: [CommonModule,
|
|
63
|
-
RouterModule,
|
|
64
|
-
ToastrModule.forRoot(),
|
|
65
|
-
LocalizationSettingsModule,
|
|
66
|
-
LocalizationModule, RouterModule,
|
|
67
|
-
LocalizationSettingsModule,
|
|
68
|
-
LocalizationModule] }); }
|
|
69
|
-
}
|
|
70
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyCoreModule, [{
|
|
71
|
-
type: NgModule,
|
|
72
|
-
args: [{
|
|
73
|
-
imports: [
|
|
74
|
-
CommonModule,
|
|
75
|
-
RouterModule,
|
|
76
|
-
ToastrModule.forRoot(),
|
|
77
|
-
LocalizationSettingsModule,
|
|
78
|
-
LocalizationModule
|
|
79
|
-
],
|
|
80
|
-
exports: [
|
|
81
|
-
RouterModule,
|
|
82
|
-
LocalizationSettingsModule,
|
|
83
|
-
LocalizationModule
|
|
84
|
-
],
|
|
85
|
-
providers: [
|
|
86
|
-
//Guards
|
|
87
|
-
StarterGuard,
|
|
88
|
-
//Services
|
|
89
|
-
DigitalMarketingService,
|
|
90
|
-
GoogleAnalyticsService,
|
|
91
|
-
LoadingService,
|
|
92
|
-
ScriptService,
|
|
93
|
-
StarterService,
|
|
94
|
-
LocalStorageService,
|
|
95
|
-
SessionStorageService,
|
|
96
|
-
//Logging
|
|
97
|
-
LoggingService,
|
|
98
|
-
//Notifications
|
|
99
|
-
NotificationService
|
|
100
|
-
]
|
|
101
|
-
}]
|
|
102
|
-
}], () => [{ type: i0.Injector }, { type: AnatolyCoreModule, decorators: [{
|
|
103
|
-
type: Optional
|
|
104
|
-
}, {
|
|
105
|
-
type: SkipSelf
|
|
106
|
-
}] }], null); })();
|
|
107
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyCoreModule, { imports: [CommonModule,
|
|
108
|
-
RouterModule, i1.ToastrModule, LocalizationSettingsModule,
|
|
109
|
-
LocalizationModule], exports: [RouterModule,
|
|
110
|
-
LocalizationSettingsModule,
|
|
111
|
-
LocalizationModule] }); })();
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLFFBQVE7QUFDUixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsY0FBYztBQUNkLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RixTQUFTO0FBQ1QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELGVBQWU7QUFDZixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBRXBGLE1BQU0sQ0FBQyxJQUFJLGdCQUEwQixDQUFDO0FBbUN0QyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLFFBQWtCLEVBQTBCLFlBQStCO1FBQTNFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO2tGQUhVLGlCQUFpQjttRUFBakIsaUJBQWlCO3dFQXBCakI7WUFDVCxRQUFRO1lBQ1IsWUFBWTtZQUVaLFVBQVU7WUFDVix1QkFBdUI7WUFDdkIsc0JBQXNCO1lBQ3RCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFFckIsU0FBUztZQUNULGNBQWM7WUFFZCxlQUFlO1lBQ2YsbUJBQW1CO1NBQ3BCLFlBN0JDLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN0QiwwQkFBMEI7WUFDMUIsa0JBQWtCLEVBR2xCLFlBQVk7WUFDWiwwQkFBMEI7WUFDMUIsa0JBQWtCOztpRkFzQlQsaUJBQWlCO2NBakM3QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixZQUFZLENBQUMsT0FBTyxFQUFFO29CQUN0QiwwQkFBMEI7b0JBQzFCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osMEJBQTBCO29CQUMxQixrQkFBa0I7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxRQUFRO29CQUNSLFlBQVk7b0JBRVosVUFBVTtvQkFDVix1QkFBdUI7b0JBQ3ZCLHNCQUFzQjtvQkFDdEIsY0FBYztvQkFDZCxhQUFhO29CQUNiLGNBQWM7b0JBQ2QsbUJBQW1CO29CQUNuQixxQkFBcUI7b0JBRXJCLFNBQVM7b0JBQ1QsY0FBYztvQkFFZCxlQUFlO29CQUNmLG1CQUFtQjtpQkFDcEI7YUFDRjs7c0JBRTBDLFFBQVE7O3NCQUFJLFFBQVE7O3dGQURsRCxpQkFBaUIsY0EvQjFCLFlBQVk7UUFDWixZQUFZLG1CQUVaLDBCQUEwQjtRQUMxQixrQkFBa0IsYUFHbEIsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5Lm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgSnVuZSAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuLy9HdWFyZHNcclxuaW1wb3J0IHsgU3RhcnRlckd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvc3RhcnRlci5ndWFyZCc7XHJcblxyXG4vL0xvY2FsaXphdGlvblxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXR0aW5nc01vZHVsZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uL3NldHRpbmdzLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5cclxuLy9TZXJ2aWNlc1xyXG5pbXBvcnQgeyBEaWdpdGFsTWFya2V0aW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG0uc2VydmljZSc7XHJcbmltcG9ydCB7IEdvb2dsZUFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0YXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdGFydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuLy9Mb2dnaW5nXHJcbmltcG9ydCB7IExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL05vdGlmaWNhdGlvbnNcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSc7XHJcblxyXG5leHBvcnQgbGV0IEluamVjdG9ySW5zdGFuY2U6IEluamVjdG9yO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgTG9jYWxpemF0aW9uU2V0dGluZ3NNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvblNldHRpbmdzTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIC8vR3VhcmRzXHJcbiAgICBTdGFydGVyR3VhcmQsXHJcblxyXG4gICAgLy9TZXJ2aWNlc1xyXG4gICAgRGlnaXRhbE1hcmtldGluZ1NlcnZpY2UsXHJcbiAgICBHb29nbGVBbmFseXRpY3NTZXJ2aWNlLFxyXG4gICAgTG9hZGluZ1NlcnZpY2UsXHJcbiAgICBTY3JpcHRTZXJ2aWNlLFxyXG4gICAgU3RhcnRlclNlcnZpY2UsXHJcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxyXG5cclxuICAgIC8vTG9nZ2luZ1xyXG4gICAgTG9nZ2luZ1NlcnZpY2UsXHJcblxyXG4gICAgLy9Ob3RpZmljYXRpb25zXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUNvcmVNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFuYXRvbHlDb3JlTW9kdWxlKSB7XHJcbiAgICBJbmplY3Rvckluc3RhbmNlID0gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2022/lib/core/dom.mjs
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
8 Aug 2022
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
export class DOM {
|
|
17
|
-
//Private
|
|
18
|
-
static dir(elem, dir, until = null, selector = null) {
|
|
19
|
-
let matched = [];
|
|
20
|
-
let truncate = until !== undefined && until != null;
|
|
21
|
-
while ((elem = elem[dir]) && elem.nodeType !== 9) {
|
|
22
|
-
if (elem.nodeType === 1) {
|
|
23
|
-
/*
|
|
24
|
-
if (truncate && jQuery(elem).is(until)) {
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
*/
|
|
28
|
-
if (selector) {
|
|
29
|
-
let className = selector.replace('.', '');
|
|
30
|
-
if (elem.classList.contains(className)) {
|
|
31
|
-
matched.push(elem);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
matched.push(elem);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return matched;
|
|
40
|
-
}
|
|
41
|
-
//Public
|
|
42
|
-
static first(elements) {
|
|
43
|
-
if (!elements || elements.length == 0) {
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
return elements[0];
|
|
47
|
-
}
|
|
48
|
-
static any(elements) {
|
|
49
|
-
if (!elements || elements.length == 0) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
static parent(elem) {
|
|
55
|
-
let parentElement = elem.parentElement;
|
|
56
|
-
let parentNode = elem.parentNode;
|
|
57
|
-
return parentNode && parentNode.nodeType !== 11 ? parentElement : null;
|
|
58
|
-
}
|
|
59
|
-
static parents(elem, selector = null) {
|
|
60
|
-
return this.dir(elem, "parentNode", null, selector);
|
|
61
|
-
}
|
|
62
|
-
static findInDocument(selector) {
|
|
63
|
-
let parent = $(document);
|
|
64
|
-
return $(parent).find(selector).get();
|
|
65
|
-
}
|
|
66
|
-
static find(elem, selector) {
|
|
67
|
-
return $(elem).find(selector).get();
|
|
68
|
-
}
|
|
69
|
-
static remove(nodes) {
|
|
70
|
-
if (nodes == null) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
if (!Array.isArray(nodes)) {
|
|
74
|
-
if (nodes.parentNode) {
|
|
75
|
-
nodes.parentNode.removeChild(nodes);
|
|
76
|
-
}
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (nodes.length == 0) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
let node;
|
|
83
|
-
let i = 0;
|
|
84
|
-
for (; (node = nodes[i]) != null; i++) {
|
|
85
|
-
if (node.parentNode) {
|
|
86
|
-
node.parentNode.removeChild(node);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
static findAndRemove(element, selector) {
|
|
91
|
-
this.remove(this.find(element, selector));
|
|
92
|
-
}
|
|
93
|
-
static show(elem) {
|
|
94
|
-
$(elem).show();
|
|
95
|
-
}
|
|
96
|
-
static hide(elem) {
|
|
97
|
-
$(elem).hide();
|
|
98
|
-
}
|
|
99
|
-
static each(selector, action) {
|
|
100
|
-
let parent = $(document);
|
|
101
|
-
let elems = DOM.find(parent, selector);
|
|
102
|
-
for (let i = 0; i < elems.length; i++) {
|
|
103
|
-
let elem = elems[i];
|
|
104
|
-
action(elem);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//Css
|
|
108
|
-
/*
|
|
109
|
-
public static addClass(e: Element, className: string): Element {
|
|
110
|
-
const class = e.getAttribute('class');
|
|
111
|
-
if (class === null || class === '') {
|
|
112
|
-
e.setAttribute('class', className);
|
|
113
|
-
} else if (!DOM.hasClass(e, className)) {
|
|
114
|
-
e.setAttribute('class', `${class} ${className}`);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return e;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
public static removeClass(e: Element, className: string): Element {
|
|
121
|
-
const class = e.getAttribute('class')
|
|
122
|
-
if (class !== null && class !== '') {
|
|
123
|
-
if (class === className) {
|
|
124
|
-
e.setAttribute('class', '');
|
|
125
|
-
} else {
|
|
126
|
-
const result = class
|
|
127
|
-
.split(' ')
|
|
128
|
-
.filter((s: any) => s !== className)
|
|
129
|
-
.join(' ');
|
|
130
|
-
e.setAttribute('class', result);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return e;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
public static hasClass(e: Element, className: string): boolean {
|
|
138
|
-
const class = e.getAttribute('class') || '';
|
|
139
|
-
const r = new RegExp(`\\b${className}\\b`, '');
|
|
140
|
-
return r.test(class);
|
|
141
|
-
}
|
|
142
|
-
*/
|
|
143
|
-
static addClass(elem, classNames) {
|
|
144
|
-
$(elem).addClass(classNames);
|
|
145
|
-
}
|
|
146
|
-
static removeClass(elem, classNames) {
|
|
147
|
-
$(elem).removeClass(classNames);
|
|
148
|
-
}
|
|
149
|
-
static hasClass(elem, className) {
|
|
150
|
-
$(elem).hasClass(className);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBSUYsTUFBTSxPQUFPLEdBQUc7SUFDZCxTQUFTO0lBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQW1CLElBQUk7UUFDOUUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksUUFBUSxHQUFHLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQztRQUVwRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4Qjs7OztrQkFJRTtnQkFFRixJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNiLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQztxQkFDSSxDQUFDO29CQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUF1QjtRQUN6QyxJQUFJLENBQUMs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QztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU07UUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztJQUNMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0NFO0lBRUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFvQixFQUFFLFVBQVU7UUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFvQixFQUFFLFVBQVU7UUFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFvQixFQUFFLFNBQVM7UUFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5Lm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgOCBBdWcgMjAyMlxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuXHJcbmV4cG9ydCBjbGFzcyBET00ge1xyXG4gIC8vUHJpdmF0ZVxyXG4gIHByaXZhdGUgc3RhdGljIGRpcihlbGVtOiBIVE1MRWxlbWVudCwgZGlyLCB1bnRpbCA9IG51bGwsIHNlbGVjdG9yOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICBsZXQgbWF0Y2hlZCA9IFtdO1xyXG4gICAgbGV0IHRydW5jYXRlID0gdW50aWwgIT09IHVuZGVmaW5lZCAmJiB1bnRpbCAhPSBudWxsO1xyXG5cclxuICAgIHdoaWxlICgoZWxlbSA9IGVsZW1bZGlyXSkgJiYgZWxlbS5ub2RlVHlwZSAhPT0gOSkge1xyXG4gICAgICBpZiAoZWxlbS5ub2RlVHlwZSA9PT0gMSkge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgaWYgKHRydW5jYXRlICYmIGpRdWVyeShlbGVtKS5pcyh1bnRpbCkpIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAqL1xyXG5cclxuICAgICAgICBpZiAoc2VsZWN0b3IpIHtcclxuICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBzZWxlY3Rvci5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICAgICAgaWYgKGVsZW0uY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcclxuICAgICAgICAgICAgbWF0Y2hlZC5wdXNoKGVsZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG1hdGNoZWQucHVzaChlbGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWF0Y2hlZDtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgcHVibGljIHN0YXRpYyBmaXJzdChlbGVtZW50czogSFRNTEVsZW1lbnRbXSk6IEhUTUxFbGVtZW50IHtcclxuICAgIGlmICghZWxlbWVudHMgfHwgZWxlbWVudHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnRzWzBdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhbnkoZWxlbWVudHM6IEhUTUxFbGVtZW50W10pOiBib29sZWFuIHtcclxuICAgIGlmICghZWxlbWVudHMgfHwgZWxlbWVudHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBwYXJlbnQoZWxlbTogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBsZXQgcGFyZW50RWxlbWVudCA9IGVsZW0ucGFyZW50RWxlbWVudDtcclxuICAgIGxldCBwYXJlbnROb2RlID0gZWxlbS5wYXJlbnROb2RlO1xyXG5cclxuICAgIHJldHVybiBwYXJlbnROb2RlICYmIHBhcmVudE5vZGUubm9kZVR5cGUgIT09IDExID8gcGFyZW50RWxlbWVudCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHBhcmVudHMoZWxlbTogSFRNTEVsZW1lbnQsIHNlbGVjdG9yID0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlyKGVsZW0sIFwicGFyZW50Tm9kZVwiLCBudWxsLCBzZWxlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbmRJbkRvY3VtZW50KHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MRWxlbWVudFtdIHtcclxuICAgIGxldCBwYXJlbnQgPSAkKGRvY3VtZW50KTtcclxuICAgIHJldHVybiAkKHBhcmVudCkuZmluZChzZWxlY3RvcikuZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbmQoZWxlbSwgc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxFbGVtZW50W10ge1xyXG4gICAgcmV0dXJuICQoZWxlbSkuZmluZChzZWxlY3RvcikuZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlbW92ZShub2Rlcykge1xyXG4gICAgaWYgKG5vZGVzID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShub2RlcykpIHtcclxuICAgICAgaWYgKG5vZGVzLnBhcmVudE5vZGUpIHtcclxuICAgICAgICBub2Rlcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChub2Rlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5vZGU7XHJcbiAgICBsZXQgaSA9IDA7XHJcblxyXG4gICAgZm9yICg7IChub2RlID0gbm9kZXNbaV0pICE9IG51bGw7IGkrKykge1xyXG4gICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XHJcbiAgICAgICAgbm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbmRBbmRSZW1vdmUoZWxlbWVudCwgc2VsZWN0b3IpIHtcclxuICAgIHRoaXMucmVtb3ZlKHRoaXMuZmluZChlbGVtZW50LCBzZWxlY3RvcikpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzaG93KGVsZW0pIHtcclxuICAgICQoZWxlbSkuc2hvdygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBoaWRlKGVsZW0pIHtcclxuICAgICQoZWxlbSkuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlYWNoKHNlbGVjdG9yLCBhY3Rpb24pIHtcclxuICAgIGxldCBwYXJlbnQgPSAkKGRvY3VtZW50KTtcclxuICAgIGxldCBlbGVtcyA9IERPTS5maW5kKHBhcmVudCwgc2VsZWN0b3IpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVsZW0gPSBlbGVtc1tpXTtcclxuICAgICAgYWN0aW9uKGVsZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Dc3NcclxuICAvKlxyXG4gIHB1YmxpYyBzdGF0aWMgYWRkQ2xhc3MoZTogRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiBFbGVtZW50IHtcclxuICAgIGNvbnN0IGNsYXNzID0gZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcbiAgICBpZiAoY2xhc3MgPT09IG51bGwgfHwgY2xhc3MgPT09ICcnKSB7XHJcbiAgICAgIGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIGNsYXNzTmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKCFET00uaGFzQ2xhc3MoZSwgY2xhc3NOYW1lKSkge1xyXG4gICAgICBlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBgJHtjbGFzc30gJHtjbGFzc05hbWV9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlbW92ZUNsYXNzKGU6IEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTogRWxlbWVudCB7XHJcbiAgICBjb25zdCBjbGFzcyA9IGUuZ2V0QXR0cmlidXRlKCdjbGFzcycpXHJcbiAgICBpZiAoY2xhc3MgIT09IG51bGwgJiYgY2xhc3MgIT09ICcnKSB7XHJcbiAgICAgIGlmIChjbGFzcyA9PT0gY2xhc3NOYW1lKSB7XHJcbiAgICAgICAgZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNsYXNzXHJcbiAgICAgICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAgICAgLmZpbHRlcigoczogYW55KSA9PiBzICE9PSBjbGFzc05hbWUpXHJcbiAgICAgICAgICAuam9pbignICcpO1xyXG4gICAgICAgIGUuc2V0QXR0cmlidXRlKCdjbGFzcycsIHJlc3VsdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ2xhc3MoZTogRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNsYXNzID0gZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7XHJcbiAgICBjb25zdCByID0gbmV3IFJlZ0V4cChgXFxcXGIke2NsYXNzTmFtZX1cXFxcYmAsICcnKTtcclxuICAgIHJldHVybiByLnRlc3QoY2xhc3MpO1xyXG4gIH1cclxuICAqL1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGFkZENsYXNzKGVsZW06IE5vZGUgfCBFbGVtZW50LCBjbGFzc05hbWVzKSB7XHJcbiAgICAkKGVsZW0pLmFkZENsYXNzKGNsYXNzTmFtZXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZW1vdmVDbGFzcyhlbGVtOiBOb2RlIHwgRWxlbWVudCwgY2xhc3NOYW1lcykge1xyXG4gICAgJChlbGVtKS5yZW1vdmVDbGFzcyhjbGFzc05hbWVzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ2xhc3MoZWxlbTogTm9kZSB8IEVsZW1lbnQsIGNsYXNzTmFtZSkge1xyXG4gICAgJChlbGVtKS5oYXNDbGFzcyhjbGFzc05hbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|