@tiba-spark/client-shared-lib 25.4.0-471 → 25.4.0-478

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.
@@ -1,8 +1,20 @@
1
- import { Injectable } from "@angular/core";
1
+ import { computed, Injectable } from "@angular/core";
2
2
  import { UserState } from "../modules/user/user.state";
3
3
  import { AppModule, PermissionType } from "../service-proxy/cloud-service-proxies";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngxs/store";
6
+ // Module order configuration
7
+ const MODULE_ORDER = [
8
+ AppModule.Cc,
9
+ AppModule.Accounts,
10
+ AppModule.ECommerceBackoffice,
11
+ AppModule.Monthlies,
12
+ AppModule.Guests,
13
+ AppModule.Validation,
14
+ AppModule.Reports,
15
+ AppModule.LotConfiguration,
16
+ AppModule.Management
17
+ ];
6
18
  export class PermissionsService {
7
19
  constructor(store) {
8
20
  this.store = store;
@@ -10,6 +22,28 @@ export class PermissionsService {
10
22
  this.isOperationalAdmin = () => this.isPermitted(PermissionType.OperationalAdmin);
11
23
  this.isAdmin = () => this.isPermitted(PermissionType.SystemAdmin) || this.isPermitted(PermissionType.OperationalAdmin);
12
24
  this.isPermitted = (permissionType) => this.store.selectSnapshot(UserState.permissionTypes)?.includes(permissionType);
25
+ this.userPermittedModules = computed(() => {
26
+ const permissionTypes = this.store.selectSignal(UserState.permissionTypes)();
27
+ const isPermitted = (permissionType) => permissionTypes?.includes(permissionType);
28
+ const permitted = new Set([
29
+ AppModule.Accounts,
30
+ AppModule.Monthlies,
31
+ AppModule.Guests,
32
+ AppModule.Validation,
33
+ ]);
34
+ if (isPermitted(PermissionType.SystemAdmin) || isPermitted(PermissionType.OperationalAdmin)) {
35
+ [
36
+ AppModule.Cc,
37
+ AppModule.Reports,
38
+ AppModule.LotConfiguration,
39
+ AppModule.Management,
40
+ ].map(appModule => permitted.add(appModule));
41
+ }
42
+ if (isPermitted(PermissionType.ECommerceBackofficeMain)) {
43
+ permitted.add(AppModule.ECommerceBackoffice);
44
+ }
45
+ return MODULE_ORDER.filter(appModule => permitted.has(appModule));
46
+ });
13
47
  }
14
48
  getRolePermissionTypes(permissionsMap, appModule) {
15
49
  const findAllPermissionDtosByAppModule = (appModule) => permissionDto => permissionDto.module === appModule && permissionDto.subModule != null;
@@ -21,42 +55,10 @@ export class PermissionsService {
21
55
  const rolePermissionTypes = this.getRolePermissionTypes(permissionsMap, appModule);
22
56
  return permissionTypes.some(pt => rolePermissionTypes.includes(pt));
23
57
  }
24
- userPermittedModules() {
25
- const isAdminPermission = this.isAdmin();
26
- let permittedModules = [];
27
- if (isAdminPermission) {
28
- permittedModules = [
29
- AppModule.Cc,
30
- AppModule.Accounts,
31
- AppModule.ECommerceBackoffice,
32
- AppModule.Monthlies,
33
- AppModule.Guests,
34
- AppModule.Validation,
35
- AppModule.Reports,
36
- AppModule.LotConfiguration,
37
- AppModule.Management,
38
- ];
39
- }
40
- else {
41
- // non admin users permitted modules
42
- permittedModules = [
43
- AppModule.Accounts,
44
- AppModule.ECommerceBackoffice,
45
- AppModule.Monthlies,
46
- AppModule.Guests,
47
- AppModule.Validation,
48
- ];
49
- }
50
- const isTenantPermittedForECommerceModule = this.isPermitted(PermissionType.ECommerceBackofficeMain);
51
- if (!isTenantPermittedForECommerceModule) {
52
- permittedModules = permittedModules.filter(module => module !== AppModule.ECommerceBackoffice);
53
- }
54
- return permittedModules;
55
- }
56
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
59
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService }); }
58
60
  }
59
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, decorators: [{
60
62
  type: Injectable
61
63
  }], ctorParameters: () => [{ type: i1.Store }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvcGVybWlzc2lvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFpQixjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBR2xHLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFHaEMsa0JBQWEsR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RSx1QkFBa0IsR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRGLFlBQU8sR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNILGdCQUFXLEdBQUcsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBUmpJLENBQUM7SUFVRCxzQkFBc0IsQ0FBQyxjQUEwQyxFQUFFLFNBQW9CO1FBQ3JGLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FDaEUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUV6RixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3ZDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuRCxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGtDQUFrQyxDQUFDLGVBQWlDLEVBQUUsY0FBMEMsRUFBRSxTQUFvQjtRQUNwSSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkYsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxJQUFJLGdCQUFnQixHQUFnQixFQUFFLENBQUM7UUFFdkMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLGdCQUFnQixHQUFHO2dCQUNqQixTQUFTLENBQUMsRUFBRTtnQkFDWixTQUFTLENBQUMsUUFBUTtnQkFDbEIsU0FBUyxDQUFDLG1CQUFtQjtnQkFDN0IsU0FBUyxDQUFDLFNBQVM7Z0JBQ25CLFNBQVMsQ0FBQyxNQUFNO2dCQUNoQixTQUFTLENBQUMsVUFBVTtnQkFDcEIsU0FBUyxDQUFDLE9BQU87Z0JBQ2pCLFNBQVMsQ0FBQyxnQkFBZ0I7Z0JBQzFCLFNBQVMsQ0FBQyxVQUFVO2FBQ3JCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLG9DQUFvQztZQUNwQyxnQkFBZ0IsR0FBRztnQkFDakIsU0FBUyxDQUFDLFFBQVE7Z0JBQ2xCLFNBQVMsQ0FBQyxtQkFBbUI7Z0JBQzdCLFNBQVMsQ0FBQyxTQUFTO2dCQUNuQixTQUFTLENBQUMsTUFBTTtnQkFDaEIsU0FBUyxDQUFDLFVBQVU7YUFDckIsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLG1DQUFtQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDekMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7K0dBNURVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gXCJAbmd4cy9zdG9yZVwiO1xuaW1wb3J0IHsgVXNlclN0YXRlIH0gZnJvbSBcIi4uL21vZHVsZXMvdXNlci91c2VyLnN0YXRlXCI7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFBlcm1pc3Npb25EdG8sIFBlcm1pc3Npb25UeXBlIH0gZnJvbSBcIi4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gIH1cblxuICBpc1N5c3RlbUFkbWluID0gKCk6IGJvb2xlYW4gPT4gdGhpcy5pc1Blcm1pdHRlZChQZXJtaXNzaW9uVHlwZS5TeXN0ZW1BZG1pbik7XG5cbiAgaXNPcGVyYXRpb25hbEFkbWluID0gKCk6IGJvb2xlYW4gPT4gdGhpcy5pc1Blcm1pdHRlZChQZXJtaXNzaW9uVHlwZS5PcGVyYXRpb25hbEFkbWluKTtcblxuICBpc0FkbWluID0gKCk6IGJvb2xlYW4gPT4gdGhpcy5pc1Blcm1pdHRlZChQZXJtaXNzaW9uVHlwZS5TeXN0ZW1BZG1pbikgfHwgdGhpcy5pc1Blcm1pdHRlZChQZXJtaXNzaW9uVHlwZS5PcGVyYXRpb25hbEFkbWluKTtcblxuICBpc1Blcm1pdHRlZCA9IChwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpID0+IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoVXNlclN0YXRlLnBlcm1pc3Npb25UeXBlcyk/LmluY2x1ZGVzKHBlcm1pc3Npb25UeXBlKTtcblxuICBnZXRSb2xlUGVybWlzc2lvblR5cGVzKHBlcm1pc3Npb25zTWFwOiBNYXA8bnVtYmVyLCBQZXJtaXNzaW9uRHRvPiwgYXBwTW9kdWxlOiBBcHBNb2R1bGUpOiBQZXJtaXNzaW9uVHlwZVtdIHtcbiAgICBjb25zdCBmaW5kQWxsUGVybWlzc2lvbkR0b3NCeUFwcE1vZHVsZSA9IChhcHBNb2R1bGU6IEFwcE1vZHVsZSkgPT5cbiAgICAgIHBlcm1pc3Npb25EdG8gPT4gcGVybWlzc2lvbkR0by5tb2R1bGUgPT09IGFwcE1vZHVsZSAmJiBwZXJtaXNzaW9uRHRvLnN1Yk1vZHVsZSAhPSBudWxsO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocGVybWlzc2lvbnNNYXAudmFsdWVzKCkpXG4gICAgICAuZmlsdGVyKGZpbmRBbGxQZXJtaXNzaW9uRHRvc0J5QXBwTW9kdWxlKGFwcE1vZHVsZSkpXG4gICAgICAubWFwKHBlcm1pc3Npb25EdG8gPT4gcGVybWlzc2lvbkR0by50eXBlKTtcbiAgfVxuXG4gIGlzUm9sZVBlcm1pc3Npb25FeGlzdHNGb3JBcHBNb2R1bGUocGVybWlzc2lvblR5cGVzOiBQZXJtaXNzaW9uVHlwZVtdLCBwZXJtaXNzaW9uc01hcDogTWFwPG51bWJlciwgUGVybWlzc2lvbkR0bz4sIGFwcE1vZHVsZTogQXBwTW9kdWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm9sZVBlcm1pc3Npb25UeXBlcyA9IHRoaXMuZ2V0Um9sZVBlcm1pc3Npb25UeXBlcyhwZXJtaXNzaW9uc01hcCwgYXBwTW9kdWxlKTtcbiAgICByZXR1cm4gcGVybWlzc2lvblR5cGVzLnNvbWUocHQgPT4gcm9sZVBlcm1pc3Npb25UeXBlcy5pbmNsdWRlcyhwdCkpO1xuICB9XG5cbiAgdXNlclBlcm1pdHRlZE1vZHVsZXMoKTogQXBwTW9kdWxlW10ge1xuICAgIGNvbnN0IGlzQWRtaW5QZXJtaXNzaW9uID0gdGhpcy5pc0FkbWluKCk7XG4gICAgbGV0IHBlcm1pdHRlZE1vZHVsZXM6IEFwcE1vZHVsZVtdID0gW107XG5cbiAgICBpZiAoaXNBZG1pblBlcm1pc3Npb24pIHtcbiAgICAgIHBlcm1pdHRlZE1vZHVsZXMgPSBbXG4gICAgICAgIEFwcE1vZHVsZS5DYyxcbiAgICAgICAgQXBwTW9kdWxlLkFjY291bnRzLFxuICAgICAgICBBcHBNb2R1bGUuRUNvbW1lcmNlQmFja29mZmljZSxcbiAgICAgICAgQXBwTW9kdWxlLk1vbnRobGllcyxcbiAgICAgICAgQXBwTW9kdWxlLkd1ZXN0cyxcbiAgICAgICAgQXBwTW9kdWxlLlZhbGlkYXRpb24sXG4gICAgICAgIEFwcE1vZHVsZS5SZXBvcnRzLFxuICAgICAgICBBcHBNb2R1bGUuTG90Q29uZmlndXJhdGlvbixcbiAgICAgICAgQXBwTW9kdWxlLk1hbmFnZW1lbnQsXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBub24gYWRtaW4gdXNlcnMgcGVybWl0dGVkIG1vZHVsZXNcbiAgICAgIHBlcm1pdHRlZE1vZHVsZXMgPSBbXG4gICAgICAgIEFwcE1vZHVsZS5BY2NvdW50cyxcbiAgICAgICAgQXBwTW9kdWxlLkVDb21tZXJjZUJhY2tvZmZpY2UsXG4gICAgICAgIEFwcE1vZHVsZS5Nb250aGxpZXMsXG4gICAgICAgIEFwcE1vZHVsZS5HdWVzdHMsXG4gICAgICAgIEFwcE1vZHVsZS5WYWxpZGF0aW9uLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBpc1RlbmFudFBlcm1pdHRlZEZvckVDb21tZXJjZU1vZHVsZSA9IHRoaXMuaXNQZXJtaXR0ZWQoUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlQmFja29mZmljZU1haW4pO1xuICAgIGlmICghaXNUZW5hbnRQZXJtaXR0ZWRGb3JFQ29tbWVyY2VNb2R1bGUpIHtcbiAgICAgIHBlcm1pdHRlZE1vZHVsZXMgPSBwZXJtaXR0ZWRNb2R1bGVzLmZpbHRlcihtb2R1bGUgPT4gbW9kdWxlICE9PSBBcHBNb2R1bGUuRUNvbW1lcmNlQmFja29mZmljZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlcm1pdHRlZE1vZHVsZXM7XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvcGVybWlzc2lvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUVsRyw2QkFBNkI7QUFDN0IsTUFBTSxZQUFZLEdBQUc7SUFDbkIsU0FBUyxDQUFDLEVBQUU7SUFDWixTQUFTLENBQUMsUUFBUTtJQUNsQixTQUFTLENBQUMsbUJBQW1CO0lBQzdCLFNBQVMsQ0FBQyxTQUFTO0lBQ25CLFNBQVMsQ0FBQyxNQUFNO0lBQ2hCLFNBQVMsQ0FBQyxVQUFVO0lBQ3BCLFNBQVMsQ0FBQyxPQUFPO0lBQ2pCLFNBQVMsQ0FBQyxnQkFBZ0I7SUFDMUIsU0FBUyxDQUFDLFVBQVU7Q0FDckIsQ0FBQztBQUdGLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFHaEMsa0JBQWEsR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RSx1QkFBa0IsR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRGLFlBQU8sR0FBRyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNILGdCQUFXLEdBQUcsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBZ0JqSSx5QkFBb0IsR0FBRyxRQUFRLENBQWMsR0FBRyxFQUFFO1lBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdFLE1BQU0sV0FBVyxHQUFHLENBQUMsY0FBOEIsRUFBRSxFQUFFLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBWTtnQkFDbkMsU0FBUyxDQUFDLFFBQVE7Z0JBQ2xCLFNBQVMsQ0FBQyxTQUFTO2dCQUNuQixTQUFTLENBQUMsTUFBTTtnQkFDaEIsU0FBUyxDQUFDLFVBQVU7YUFDckIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUM1RjtvQkFDRSxTQUFTLENBQUMsRUFBRTtvQkFDWixTQUFTLENBQUMsT0FBTztvQkFDakIsU0FBUyxDQUFDLGdCQUFnQjtvQkFDMUIsU0FBUyxDQUFDLFVBQVU7aUJBQ3JCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFFRCxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFFRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFoREgsQ0FBQztJQVVELHNCQUFzQixDQUFDLGNBQTBDLEVBQUUsU0FBb0I7UUFDckYsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUNoRSxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDO1FBRXpGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdkMsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ25ELEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsa0NBQWtDLENBQUMsZUFBaUMsRUFBRSxjQUEwQyxFQUFFLFNBQW9CO1FBQ3BJLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQXpCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIkBuZ3hzL3N0b3JlXCI7XG5pbXBvcnQgeyBVc2VyU3RhdGUgfSBmcm9tIFwiLi4vbW9kdWxlcy91c2VyL3VzZXIuc3RhdGVcIjtcbmltcG9ydCB7IEFwcE1vZHVsZSwgUGVybWlzc2lvbkR0bywgUGVybWlzc2lvblR5cGUgfSBmcm9tIFwiLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXNcIjtcblxuLy8gTW9kdWxlIG9yZGVyIGNvbmZpZ3VyYXRpb25cbmNvbnN0IE1PRFVMRV9PUkRFUiA9IFtcbiAgQXBwTW9kdWxlLkNjLFxuICBBcHBNb2R1bGUuQWNjb3VudHMsXG4gIEFwcE1vZHVsZS5FQ29tbWVyY2VCYWNrb2ZmaWNlLFxuICBBcHBNb2R1bGUuTW9udGhsaWVzLFxuICBBcHBNb2R1bGUuR3Vlc3RzLFxuICBBcHBNb2R1bGUuVmFsaWRhdGlvbixcbiAgQXBwTW9kdWxlLlJlcG9ydHMsXG4gIEFwcE1vZHVsZS5Mb3RDb25maWd1cmF0aW9uLFxuICBBcHBNb2R1bGUuTWFuYWdlbWVudFxuXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgfVxuXG4gIGlzU3lzdGVtQWRtaW4gPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLlN5c3RlbUFkbWluKTtcblxuICBpc09wZXJhdGlvbmFsQWRtaW4gPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLk9wZXJhdGlvbmFsQWRtaW4pO1xuXG4gIGlzQWRtaW4gPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLlN5c3RlbUFkbWluKSB8fCB0aGlzLmlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLk9wZXJhdGlvbmFsQWRtaW4pO1xuXG4gIGlzUGVybWl0dGVkID0gKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSkgPT4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChVc2VyU3RhdGUucGVybWlzc2lvblR5cGVzKT8uaW5jbHVkZXMocGVybWlzc2lvblR5cGUpO1xuXG4gIGdldFJvbGVQZXJtaXNzaW9uVHlwZXMocGVybWlzc2lvbnNNYXA6IE1hcDxudW1iZXIsIFBlcm1pc3Npb25EdG8+LCBhcHBNb2R1bGU6IEFwcE1vZHVsZSk6IFBlcm1pc3Npb25UeXBlW10ge1xuICAgIGNvbnN0IGZpbmRBbGxQZXJtaXNzaW9uRHRvc0J5QXBwTW9kdWxlID0gKGFwcE1vZHVsZTogQXBwTW9kdWxlKSA9PlxuICAgICAgcGVybWlzc2lvbkR0byA9PiBwZXJtaXNzaW9uRHRvLm1vZHVsZSA9PT0gYXBwTW9kdWxlICYmIHBlcm1pc3Npb25EdG8uc3ViTW9kdWxlICE9IG51bGw7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShwZXJtaXNzaW9uc01hcC52YWx1ZXMoKSlcbiAgICAgIC5maWx0ZXIoZmluZEFsbFBlcm1pc3Npb25EdG9zQnlBcHBNb2R1bGUoYXBwTW9kdWxlKSlcbiAgICAgIC5tYXAocGVybWlzc2lvbkR0byA9PiBwZXJtaXNzaW9uRHRvLnR5cGUpO1xuICB9XG5cbiAgaXNSb2xlUGVybWlzc2lvbkV4aXN0c0ZvckFwcE1vZHVsZShwZXJtaXNzaW9uVHlwZXM6IFBlcm1pc3Npb25UeXBlW10sIHBlcm1pc3Npb25zTWFwOiBNYXA8bnVtYmVyLCBQZXJtaXNzaW9uRHRvPiwgYXBwTW9kdWxlOiBBcHBNb2R1bGUpOiBib29sZWFuIHtcbiAgICBjb25zdCByb2xlUGVybWlzc2lvblR5cGVzID0gdGhpcy5nZXRSb2xlUGVybWlzc2lvblR5cGVzKHBlcm1pc3Npb25zTWFwLCBhcHBNb2R1bGUpO1xuICAgIHJldHVybiBwZXJtaXNzaW9uVHlwZXMuc29tZShwdCA9PiByb2xlUGVybWlzc2lvblR5cGVzLmluY2x1ZGVzKHB0KSk7XG4gIH1cblxuICB1c2VyUGVybWl0dGVkTW9kdWxlcyA9IGNvbXB1dGVkPEFwcE1vZHVsZVtdPigoKSA9PiB7XG4gICAgY29uc3QgcGVybWlzc2lvblR5cGVzID0gdGhpcy5zdG9yZS5zZWxlY3RTaWduYWwoVXNlclN0YXRlLnBlcm1pc3Npb25UeXBlcykoKTtcbiAgICBjb25zdCBpc1Blcm1pdHRlZCA9IChwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpID0+IHBlcm1pc3Npb25UeXBlcz8uaW5jbHVkZXMocGVybWlzc2lvblR5cGUpO1xuICAgIGNvbnN0IHBlcm1pdHRlZCA9IG5ldyBTZXQ8QXBwTW9kdWxlPihbXG4gICAgICBBcHBNb2R1bGUuQWNjb3VudHMsXG4gICAgICBBcHBNb2R1bGUuTW9udGhsaWVzLFxuICAgICAgQXBwTW9kdWxlLkd1ZXN0cyxcbiAgICAgIEFwcE1vZHVsZS5WYWxpZGF0aW9uLFxuICAgIF0pO1xuICBcbiAgICBpZiAoaXNQZXJtaXR0ZWQoUGVybWlzc2lvblR5cGUuU3lzdGVtQWRtaW4pIHx8IGlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLk9wZXJhdGlvbmFsQWRtaW4pKSB7XG4gICAgICBbXG4gICAgICAgIEFwcE1vZHVsZS5DYyxcbiAgICAgICAgQXBwTW9kdWxlLlJlcG9ydHMsXG4gICAgICAgIEFwcE1vZHVsZS5Mb3RDb25maWd1cmF0aW9uLFxuICAgICAgICBBcHBNb2R1bGUuTWFuYWdlbWVudCxcbiAgICAgIF0ubWFwKGFwcE1vZHVsZSA9PiBwZXJtaXR0ZWQuYWRkKGFwcE1vZHVsZSkpO1xuICAgIH1cbiAgXG4gICAgaWYgKGlzUGVybWl0dGVkKFBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUJhY2tvZmZpY2VNYWluKSkge1xuICAgICAgcGVybWl0dGVkLmFkZChBcHBNb2R1bGUuRUNvbW1lcmNlQmFja29mZmljZSk7XG4gICAgfVxuICBcbiAgICByZXR1cm4gTU9EVUxFX09SREVSLmZpbHRlcihhcHBNb2R1bGUgPT4gcGVybWl0dGVkLmhhcyhhcHBNb2R1bGUpKTtcbiAgfSk7XG59XG4iXX0=
@@ -191,4 +191,21 @@ export function formatTimeToString(obj) {
191
191
  }
192
192
  return result;
193
193
  }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9kYXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sTUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWxKLE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUFDO0FBQzVDLE1BQU0sNEJBQTRCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFOLElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUN0QiwyQ0FBTSxDQUFBO0lBQUUsMkNBQU0sQ0FBQTtBQUNoQixDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkI7QUFTRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYTtJQUM5QyxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFlBQWtCO0lBQzdELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMseUZBQXlGO0lBQ3pGLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFD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QUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1FBRWpFLE1BQU0sR0FBRyxHQUFHLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBERUZBVUxUX1NNQVJUX1BBUktfREFURV9USU1FLCBNSU5VVEVTX1BFUl9IT1VSLCBOT19SRVNVTFQsIFRFTlNfTVVMVElQTElFUiwgVkFMSURfVElNRV9NQVhfTEVOR1RIIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMnO1xuXG5jb25zdCBEQVRFX0ZPUk1BVF9ZWVlZX01NX0REID0gJ1lZWVktTU0tREQnO1xuY29uc3QgREFURV9GT1JNQVRfWVlZWV9NTV9ERF9ISF9NTSA9ICdZWVlZLU1NLUREIEhIOm1tJztcblxuZXhwb3J0IGVudW0gTWlkZGF5UGVyaW9kIHtcbiAgQU0gPSAxLCBQTSA9IDJcbn1cblxuZXhwb3J0IHR5cGUgVGltZSA9IHtcbiAgaG91cnM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xuICBzZWNvbmRzPzogbnVtYmVyO1xuICBtaWRkYXlQZXJpb2Q/OiBNaWRkYXlQZXJpb2Q7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTbWFydFBhcmtUaW1lKHZhbHVlOiBudW1iZXIpIHtcbiAgcmV0dXJuIG1vbWVudChERUZBVUxUX1NNQVJUX1BBUktfREFURV9USU1FKS5zZWNvbmRzKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGF0ZVRpbWVUb1NwYXJrUGFya1RpbWUoc2VsZWN0ZWREYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgaWYgKCFzZWxlY3RlZERhdGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRhdGUyID0gbW9tZW50KHNlbGVjdGVkRGF0ZSk7XG4gIC8vIElmIHRoZSBkYXRlIHdlIHdhbnQgaXMgaW4gRFNUIHRoZW4gdG8gYXZvaWQgaW5jb3JyZWN0IHJlc3VsdHMgd2UgbmVlZCB0byBhZGQgaXQgMSBob3VyXG4gIGlmIChkYXRlMi5pc0RTVCgpKSB7XG4gICAgZGF0ZTIuYWRkKHsgaG91cjogMSB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRlRGlmZkluU2Vjb25kcyhtb21lbnQoREVGQVVMVF9TTUFSVF9QQVJLX0RBVEVfVElNRSksIGRhdGUyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVUaW1lSW5TZWNvbmRzKGRhdGU6IERhdGUsIHRpbWU6IFRpbWUpOiBudW1iZXIge1xuICBkYXRlLnNldE1pbnV0ZXModGltZS5taW51dGVzKTtcbiAgZGF0ZS5zZXRIb3Vycyh0aW1lLmhvdXJzKTtcblxuICBjb25zdCBkYXRlVGltZUluU2Vjb25kczogbnVtYmVyID0gcGFyc2VEYXRlVGltZVRvU3BhcmtQYXJrVGltZShkYXRlKTtcblxuICByZXR1cm4gZGF0ZVRpbWVJblNlY29uZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRGlmZkluU2Vjb25kcyhkYXRlMTogTW9tZW50LCBkYXRlMjogTW9tZW50KTogbnVtYmVyIHtcbiAgLy8gbW9tZW50IGlnbm9yZSBhbmQgcmV0dXJuIGRhdGUgd2l0aCBzeXN0ZW0gdGltZSB6b25lIC0gdXNpbmcgZm9ybWF0IGNvcnJlY3QgdGhlIGRhdGUgb2JqZWN0XG4gIGNvbnN0IGRlZmF1bHRTbWFydFBhcmtUaW1lVVRDID0gbW9tZW50LnR6KGRhdGUxLCAndXRjJyk7XG5cbiAgY29uc3Qgc2VsZWN0ZWREYXRlRm9ybWF0dGVkID0gbW9tZW50KGRhdGUyLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIikpO1xuICByZXR1cm4gc2VsZWN0ZWREYXRlRm9ybWF0dGVkLmRpZmYoZGVmYXVsdFNtYXJ0UGFya1RpbWVVVEMsICdzZWNvbmRzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodW1hbml6ZVRpbWVFbGFwc2VkKGZyb206IERhdGUsIHRvOiBEYXRlKSB7XG4gIHJldHVybiBtb21lbnQuZHVyYXRpb24oYWRqdXN0Rm9yVGltZXpvbmUoZnJvbSkuZ2V0VGltZSgpIC0gdG8uZ2V0VGltZSgpKS5odW1hbml6ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVVdGNUaW1lRWxhcHNlZChmcm9tOiBEYXRlLCB0bzogRGF0ZSkge1xuICByZXR1cm4gbW9tZW50LmR1cmF0aW9uKGZyb20uZ2V0VGltZSgpIC0gdG8uZ2V0VGltZSgpKS5odW1hbml6ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkluTWlsbGlzKHZhbHVlLCBpc0Fic29sdXRlKSB7XG4gIGNvbnN0IGRpZmYgPSBtb21lbnQuZHVyYXRpb24obW9tZW50KHZhbHVlKS5kaWZmKG1vbWVudCgpKSkuYXNNaWxsaXNlY29uZHMoKTtcbiAgaWYgKGlzQWJzb2x1dGUpIHtcbiAgICByZXR1cm4gTWF0aC5hYnMoZGlmZik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRpZmY7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbWVudE51bGxhYmxlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIGRhdGUgPyBtb21lbnQoZGF0ZSkgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXRjTW9tZW50TnVsbGFibGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gZGF0ZSA/IG1vbWVudChkYXRlKS51dGModHJ1ZSkgOiBudWxsO1xufVxuXG4vLyBXaGVuIHN1YnRyYWN0IHRoZSBvZmZzZXQgZnJvbSB0aGUgY3VycmVudCBkYXRlLFxuLy8gV2UgZ2V0IGEgZGF0ZSB0aGF0IGlmIHlvdSByZW1vdmUgdGhlIG9mZnNldCB5b3Ugd2lsbCBnZXQgVVRDa2luZFxuLy8gb2YgdGhlIHRpbWUgc2VsZWN0ZWRcbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RGb3JUaW1lem9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksXG4gICAgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpO1xufVxuXG4vLyByZS1hZGp1c3QgbWV0aG9kIHdoZW4gbmVlZCB0byBzZXQgYmFjayB0aGUgdGltZXpvbmVvZmZzZXQgYWZ0ZXIgdXNpbmcgYWRqdXN0Rm9yVGltZXpvbmVcbmV4cG9ydCBmdW5jdGlvbiByZWFkanVzdEZvclRpbWV6b25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgcmV0dXJuICFkYXRlID8gbnVsbCA6IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSxcbiAgICBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpICsgZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpLCBkYXRlLmdldFNlY29uZHMoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01heERheXNSYW5nZVZhbGlkKHZhbGlkRnJvbTogRGF0ZSwgdmFsaWRUbzogRGF0ZSwgYWxsb3dlZE51bWJlck9mRGF5czogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGxldCBtYXhEYXlzUmFuZ2VWYWxpZCA9IHRydWU7XG4gIGlmICh2YWxpZEZyb20gJiYgdmFsaWRUbykge1xuICAgIGNvbnN0IHZhbGlkRnJvbURhdGUgPSBtb21lbnQodmFsaWRGcm9tKTtcbiAgICBjb25zdCB2YWxpZFRvRGF0ZSA9IG1vbWVudCh2YWxpZFRvKTtcbiAgICBjb25zdCBudW1iZXJPZkRheXMgPSBtb21lbnQuZHVyYXRpb24odmFsaWRUb0RhdGUuZGlmZih2YWxpZEZyb21EYXRlKSkuYXNEYXlzKCk7XG4gICAgbWF4RGF5c1JhbmdlVmFsaWQgPSAhKG51bWJlck9mRGF5cyA+IGFsbG93ZWROdW1iZXJPZkRheXMpO1xuICB9XG4gIHJldHVybiBtYXhEYXlzUmFuZ2VWYWxpZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZURhdGVzSWRlbnRpY2FsKGZyb21EYXRlOiBEYXRlLCB0b0RhdGU6IERhdGUpIHtcbiAgaWYgKGZyb21EYXRlICYmIHRvRGF0ZSkge1xuICAgIGNvbnN0IHZhbGlkRnJvbURhdGU6IERhdGUgPSBmcm9tRGF0ZTtcbiAgICBjb25zdCB2YWxpZFRvRGF0ZTogRGF0ZSA9IHRvRGF0ZTtcbiAgICB2YWxpZEZyb21EYXRlLnNldFNlY29uZHMoMCwgMCk7XG4gICAgdmFsaWRUb0RhdGUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICByZXR1cm4gdmFsaWRGcm9tRGF0ZS5nZXRUaW1lKCkgPT09IHZhbGlkVG9EYXRlLmdldFRpbWUoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlclRpbWVab25lKCk6IHN0cmluZyB7XG4gIHJldHVybiBtb21lbnQudHouZ3Vlc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGb3JtYXRXaXRob3V0VGltZShmb3JtYXQ6IHN0cmluZykge1xuICBsZXQgZm9ybWF0VmFsdWVzID0gZm9ybWF0LnNwbGl0KFwiaFwiKTtcbiAgaWYgKGZvcm1hdFZhbHVlcy5sZW5ndGggPT09IE5PX1JFU1VMVCkge1xuICAgIGZvcm1hdFZhbHVlcyA9IGZvcm1hdC5zcGxpdChcIkhcIik7XG4gIH1cbiAgcmV0dXJuIGZvcm1hdFZhbHVlc1swXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVXaXRob3V0VGltZShyb3dWYWx1ZVRpbWU6IE1vbWVudCwgZGF0ZUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUoJ2VuLVVTJyk7XG4gIGNvbnN0IGRhdGUgPSByb3dWYWx1ZVRpbWU/LnRvRGF0ZSgpO1xuICByZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIGNvbnZlcnRGb3JtYXRXaXRob3V0VGltZShkYXRlRm9ybWF0KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb21lbnRXaXRob3V0VGltZShtb21lbnREYXRlOiBNb21lbnQpOiBEYXRlIHtcbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IG1vbWVudERhdGUuZm9ybWF0KERBVEVfRk9STUFUX1lZWVlfTU1fREQpO1xuICByZXR1cm4gbmV3IERhdGUoZm9ybWF0dGVkRGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb21lbldpdGhUaW1lKG1vbWVudERhdGU6IE1vbWVudCk6IERhdGUge1xuICBjb25zdCBmb3JtYXR0ZWREYXRlID0gbW9tZW50RGF0ZS5mb3JtYXQoREFURV9GT1JNQVRfWVlZWV9NTV9ERF9ISF9NTSk7XG4gIHJldHVybiBhZGp1c3RGb3JUaW1lem9uZShuZXcgRGF0ZShmb3JtYXR0ZWREYXRlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRNaW51dGVzVG9UaW1lTnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAodmFsdWUgPiAwKSB7XG4gICAgcmV0dXJuIGAke01hdGguZmxvb3IodmFsdWUgLyA2MCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfSR7KHZhbHVlICUgNjApLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lV2l0aG91dE1pZG5pZ2h0KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0VGltZVdpdGhTZXBhcmF0b3IodmFsdWUsIGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVXaXRoTWlkbmlnaHQodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRUaW1lV2l0aFNlcGFyYXRvcih2YWx1ZSwgdHJ1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lV2l0aG91dFNlcGVyYXRvckFuZFdpdGhNaWRuaWdodCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFRpbWVXaXRob3V0U2VwYXJhdG9yKHZhbHVlLCB0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVXaXRob3V0U2VwZXJhdG9yQW5kV2l0aG91dE1pZG5pZ2h0KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0VGltZVdpdGhvdXRTZXBhcmF0b3IodmFsdWUsIGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb01pbnV0ZXModmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gIHZhbHVlID0gdmFsdWU/LnRvU3RyaW5nKCk7XG4gIGlmICh2YWx1ZT8ubGVuZ3RoID09PSBWQUxJRF9USU1FX01BWF9MRU5HVEgpIHtcbiAgICBjb25zdCBoID0gKCgrdmFsdWVbMF0gKiBURU5TX01VTFRJUExJRVIpICsgK3ZhbHVlWzFdKSAqIE1JTlVURVNfUEVSX0hPVVI7XG4gICAgY29uc3QgbSA9ICt2YWx1ZVsyXSAqIFRFTlNfTVVMVElQTElFUiArICt2YWx1ZVszXTtcbiAgICByZXR1cm4gaCArIG07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbnV0ZXNUb1RpbWUobWludXRlczogbnVtYmVyKTogVGltZSB7XG4gIHJldHVybiBtaW51dGVzID49IDAgPyB7IGhvdXJzOiBNYXRoLmZsb29yKG1pbnV0ZXMgLyBNSU5VVEVTX1BFUl9IT1VSKSwgbWludXRlczogbWludXRlcyAlIE1JTlVURVNfUEVSX0hPVVIgfSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lVG9NaW51dGVzKHRpbWU6IFRpbWUpOiBudW1iZXIge1xuICByZXR1cm4gdGltZSA/ICh0aW1lLmhvdXJzICogTUlOVVRFU19QRVJfSE9VUikgKyB0aW1lLm1pbnV0ZXMgOiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZVRvTW9tZW50KHRpbWU6IFRpbWUpOiBtb21lbnQuTW9tZW50IHwgbnVsbCB7XG4gIGlmICghdGltZSB8fCB0aW1lLmhvdXJzID09IG51bGwgfHwgdGltZS5taW51dGVzID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCB7IGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtaWRkYXlQZXJpb2QgfSA9IHRpbWU7XG5cbiAgaWYgKG1pZGRheVBlcmlvZCA9PT0gTWlkZGF5UGVyaW9kLlBNICYmIGhvdXJzIDwgMTIpIHtcbiAgICBob3VycyArPSAxMjtcbiAgfSBlbHNlIGlmIChtaWRkYXlQZXJpb2QgPT09IE1pZGRheVBlcmlvZC5BTSAmJiBob3VycyA9PT0gMTIpIHtcbiAgICBob3VycyA9IDA7XG4gIH1cblxuICByZXR1cm4gbW9tZW50KCkuaG91cnMoaG91cnMpLm1pbnV0ZXMobWludXRlcykuc2Vjb25kcyhzZWNvbmRzID8/IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkVGltZShtaW51dGVzOiBudW1iZXIsIGlzTWlkbmlnaHRFbmFibGU6IGJvb2xlYW4sIGZvcm1hdDogc3RyaW5nLCBkZWZhdWx0VmFsdWUgPSBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChpc01pZG5pZ2h0RW5hYmxlIHx8IG1pbnV0ZXMgPiAwKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRNaW51dGVzVG9UaW1lKG1pbnV0ZXMsIGZvcm1hdCk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFZhbHVlICE9PSBudWxsID8gY29udmVydE1pbnV0ZXNUb1RpbWUoZGVmYXVsdFZhbHVlLCBmb3JtYXQpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gY29udmVydE1pbnV0ZXNUb1RpbWUobWludXRlczogbnVtYmVyLCBmb3JtYXQ6IHN0cmluZykge1xuICAvLyBEZXRlcm1pbmUgaWYgdGhlIGZvcm1hdCBpcyAxMi1ob3VyIG9yIDI0LWhvdXIgYW5kIGV4dHJhY3QgdGhlIHRpbWUgcGFydFxuICBjb25zdCB0aW1lRm9ybWF0ID0gZm9ybWF0LnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2EnKSA/ICdoaDptbSBBJyA6ICdISDptbSc7XG4gIHJldHVybiBtb21lbnQoKS5zdGFydE9mKCdkYXknKS5hZGQobWludXRlcywgJ21pbnV0ZXMnKS5mb3JtYXQodGltZUZvcm1hdCk7XG59XG5cbi8vIFdyYXBwZXIgbWV0aG9kIHRvIGZvcm1hdCBtaW51dGVzIHdpdGggXCI6XCIgYXMgc2VwYXJhdG9yIChlLmcuLCBcIkhIOm1tXCIpXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZVdpdGhTZXBhcmF0b3IodmFsdWU6IG51bWJlciwgaXNNaWRuaWdodEVuYWJsZTogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0VGltZSh2YWx1ZSwgaXNNaWRuaWdodEVuYWJsZSwgJzonKTtcbn1cblxuLy8gV3JhcHBlciBtZXRob2QgdG8gZm9ybWF0IG1pbnV0ZXMgd2l0aG91dCBzZXBhcmF0b3IgKGUuZy4sIFwiSEhtbVwiKVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVXaXRob3V0U2VwYXJhdG9yKHZhbHVlOiBudW1iZXIsIGlzTWlkbmlnaHRFbmFibGU6IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIGZvcm1hdFRpbWUodmFsdWUsIGlzTWlkbmlnaHRFbmFibGUsICcnKTtcbn1cblxuLy8gQ29yZSBtZXRob2QgZm9yIGZvcm1hdHRpbmcgbWludXRlcyB3aXRoIGZsZXhpYmlsaXR5IGluIG91dHB1dCBmb3JtYXRcbmZ1bmN0aW9uIGZvcm1hdFRpbWUodmFsdWU6IG51bWJlciwgaXNNaWRuaWdodEVuYWJsZWQ6IGJvb2xlYW4sIHNlcGFyYXRvcjogc3RyaW5nID0gJzonKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChpc01pZG5pZ2h0RW5hYmxlZCB8fCB2YWx1ZSA+IDApIHtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IodmFsdWUgLyBNSU5VVEVTX1BFUl9IT1VSKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgbWludXRlcyA9ICh2YWx1ZSAlIE1JTlVURVNfUEVSX0hPVVIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gYCR7aG91cnN9JHtzZXBhcmF0b3J9JHttaW51dGVzfWA7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lVG9TdHJpbmcob2JqOiBUaW1lKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9ICctJztcblxuICBpZiAob2JqKSB7XG4gICAgY29uc3QgaG91cnMgPSBvYmouaG91cnM/LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSA/PyAnMDAnO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBvYmoubWludXRlcz8udG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpID8/ICcwMCc7XG4gICAgY29uc3Qgc2Vjb25kcyA9IG9iai5zZWNvbmRzPy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgPz8gJzAwJztcblxuICAgIHJlc3VsdCA9IGAke2hvdXJzfToke21pbnV0ZXN9OiR7c2Vjb25kc31gO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
194
+ /**
195
+ * Checks if the date format string uses month names (MMM/MMMM)
196
+ * @example "MMM dd, yyyy" → true
197
+ * @example "MM/dd/yyyy" → false
198
+ */
199
+ export function hasMonthName(format) {
200
+ return !!format && /\bMMM+\b/.test(format);
201
+ }
202
+ /**
203
+ * Checks if the date format uses 12-hour time with AM/PM
204
+ * @example "hh:mm a" → true
205
+ * @example "HH:mm" → false
206
+ */
207
+ export function hasMiddayPeriod(format) {
208
+ // Complete: Matches a, am, A, AM, p, pm, P, PM
209
+ return !!format && /\s[ap]m?$/i.test(format);
210
+ }
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9kYXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sTUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWxKLE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUFDO0FBQzVDLE1BQU0sNEJBQTRCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFOLElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUN0QiwyQ0FBTSxDQUFBO0lBQUUsMkNBQU0sQ0FBQTtBQUNoQixDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkI7QUFTRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYTtJQUM5QyxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFlBQWtCO0lBQzdELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMseUZBQXlGO0lBQ3pGLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFD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QUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1FBRWpFLE1BQU0sR0FBRyxHQUFHLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFjO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLGdEQUFnRDtJQUNoRCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgREVGQVVMVF9TTUFSVF9QQVJLX0RBVEVfVElNRSwgTUlOVVRFU19QRVJfSE9VUiwgTk9fUkVTVUxULCBURU5TX01VTFRJUExJRVIsIFZBTElEX1RJTUVfTUFYX0xFTkdUSCB9IGZyb20gJy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcblxuY29uc3QgREFURV9GT1JNQVRfWVlZWV9NTV9ERCA9ICdZWVlZLU1NLUREJztcbmNvbnN0IERBVEVfRk9STUFUX1lZWVlfTU1fRERfSEhfTU0gPSAnWVlZWS1NTS1ERCBISDptbSc7XG5cbmV4cG9ydCBlbnVtIE1pZGRheVBlcmlvZCB7XG4gIEFNID0gMSwgUE0gPSAyXG59XG5cbmV4cG9ydCB0eXBlIFRpbWUgPSB7XG4gIGhvdXJzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbiAgc2Vjb25kcz86IG51bWJlcjtcbiAgbWlkZGF5UGVyaW9kPzogTWlkZGF5UGVyaW9kO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU21hcnRQYXJrVGltZSh2YWx1ZTogbnVtYmVyKSB7XG4gIHJldHVybiBtb21lbnQoREVGQVVMVF9TTUFSVF9QQVJLX0RBVEVfVElNRSkuc2Vjb25kcyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURhdGVUaW1lVG9TcGFya1BhcmtUaW1lKHNlbGVjdGVkRGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gIGlmICghc2VsZWN0ZWREYXRlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkYXRlMiA9IG1vbWVudChzZWxlY3RlZERhdGUpO1xuICAvLyBJZiB0aGUgZGF0ZSB3ZSB3YW50IGlzIGluIERTVCB0aGVuIHRvIGF2b2lkIGluY29ycmVjdCByZXN1bHRzIHdlIG5lZWQgdG8gYWRkIGl0IDEgaG91clxuICBpZiAoZGF0ZTIuaXNEU1QoKSkge1xuICAgIGRhdGUyLmFkZCh7IGhvdXI6IDEgfSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZURpZmZJblNlY29uZHMobW9tZW50KERFRkFVTFRfU01BUlRfUEFSS19EQVRFX1RJTUUpLCBkYXRlMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlVGltZUluU2Vjb25kcyhkYXRlOiBEYXRlLCB0aW1lOiBUaW1lKTogbnVtYmVyIHtcbiAgZGF0ZS5zZXRNaW51dGVzKHRpbWUubWludXRlcyk7XG4gIGRhdGUuc2V0SG91cnModGltZS5ob3Vycyk7XG5cbiAgY29uc3QgZGF0ZVRpbWVJblNlY29uZHM6IG51bWJlciA9IHBhcnNlRGF0ZVRpbWVUb1NwYXJrUGFya1RpbWUoZGF0ZSk7XG5cbiAgcmV0dXJuIGRhdGVUaW1lSW5TZWNvbmRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZURpZmZJblNlY29uZHMoZGF0ZTE6IE1vbWVudCwgZGF0ZTI6IE1vbWVudCk6IG51bWJlciB7XG4gIC8vIG1vbWVudCBpZ25vcmUgYW5kIHJldHVybiBkYXRlIHdpdGggc3lzdGVtIHRpbWUgem9uZSAtIHVzaW5nIGZvcm1hdCBjb3JyZWN0IHRoZSBkYXRlIG9iamVjdFxuICBjb25zdCBkZWZhdWx0U21hcnRQYXJrVGltZVVUQyA9IG1vbWVudC50eihkYXRlMSwgJ3V0YycpO1xuXG4gIGNvbnN0IHNlbGVjdGVkRGF0ZUZvcm1hdHRlZCA9IG1vbWVudChkYXRlMi5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tOnNzXCIpKTtcbiAgcmV0dXJuIHNlbGVjdGVkRGF0ZUZvcm1hdHRlZC5kaWZmKGRlZmF1bHRTbWFydFBhcmtUaW1lVVRDLCAnc2Vjb25kcycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVUaW1lRWxhcHNlZChmcm9tOiBEYXRlLCB0bzogRGF0ZSkge1xuICByZXR1cm4gbW9tZW50LmR1cmF0aW9uKGFkanVzdEZvclRpbWV6b25lKGZyb20pLmdldFRpbWUoKSAtIHRvLmdldFRpbWUoKSkuaHVtYW5pemUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuaXplVXRjVGltZUVsYXBzZWQoZnJvbTogRGF0ZSwgdG86IERhdGUpIHtcbiAgcmV0dXJuIG1vbWVudC5kdXJhdGlvbihmcm9tLmdldFRpbWUoKSAtIHRvLmdldFRpbWUoKSkuaHVtYW5pemUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZJbk1pbGxpcyh2YWx1ZSwgaXNBYnNvbHV0ZSkge1xuICBjb25zdCBkaWZmID0gbW9tZW50LmR1cmF0aW9uKG1vbWVudCh2YWx1ZSkuZGlmZihtb21lbnQoKSkpLmFzTWlsbGlzZWNvbmRzKCk7XG4gIGlmIChpc0Fic29sdXRlKSB7XG4gICAgcmV0dXJuIE1hdGguYWJzKGRpZmYpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkaWZmO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb21lbnROdWxsYWJsZShkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBkYXRlID8gbW9tZW50KGRhdGUpIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFV0Y01vbWVudE51bGxhYmxlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIGRhdGUgPyBtb21lbnQoZGF0ZSkudXRjKHRydWUpIDogbnVsbDtcbn1cblxuLy8gV2hlbiBzdWJ0cmFjdCB0aGUgb2Zmc2V0IGZyb20gdGhlIGN1cnJlbnQgZGF0ZSxcbi8vIFdlIGdldCBhIGRhdGUgdGhhdCBpZiB5b3UgcmVtb3ZlIHRoZSBvZmZzZXQgeW91IHdpbGwgZ2V0IFVUQ2tpbmRcbi8vIG9mIHRoZSB0aW1lIHNlbGVjdGVkXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0Rm9yVGltZXpvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLFxuICAgIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCksIGRhdGUuZ2V0U2Vjb25kcygpKTtcbn1cblxuLy8gcmUtYWRqdXN0IG1ldGhvZCB3aGVuIG5lZWQgdG8gc2V0IGJhY2sgdGhlIHRpbWV6b25lb2Zmc2V0IGFmdGVyIHVzaW5nIGFkanVzdEZvclRpbWV6b25lXG5leHBvcnQgZnVuY3Rpb24gcmVhZGp1c3RGb3JUaW1lem9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gIHJldHVybiAhZGF0ZSA/IG51bGwgOiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksXG4gICAgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSArIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNYXhEYXlzUmFuZ2VWYWxpZCh2YWxpZEZyb206IERhdGUsIHZhbGlkVG86IERhdGUsIGFsbG93ZWROdW1iZXJPZkRheXM6IG51bWJlcik6IGJvb2xlYW4ge1xuICBsZXQgbWF4RGF5c1JhbmdlVmFsaWQgPSB0cnVlO1xuICBpZiAodmFsaWRGcm9tICYmIHZhbGlkVG8pIHtcbiAgICBjb25zdCB2YWxpZEZyb21EYXRlID0gbW9tZW50KHZhbGlkRnJvbSk7XG4gICAgY29uc3QgdmFsaWRUb0RhdGUgPSBtb21lbnQodmFsaWRUbyk7XG4gICAgY29uc3QgbnVtYmVyT2ZEYXlzID0gbW9tZW50LmR1cmF0aW9uKHZhbGlkVG9EYXRlLmRpZmYodmFsaWRGcm9tRGF0ZSkpLmFzRGF5cygpO1xuICAgIG1heERheXNSYW5nZVZhbGlkID0gIShudW1iZXJPZkRheXMgPiBhbGxvd2VkTnVtYmVyT2ZEYXlzKTtcbiAgfVxuICByZXR1cm4gbWF4RGF5c1JhbmdlVmFsaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVEYXRlc0lkZW50aWNhbChmcm9tRGF0ZTogRGF0ZSwgdG9EYXRlOiBEYXRlKSB7XG4gIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICBjb25zdCB2YWxpZEZyb21EYXRlOiBEYXRlID0gZnJvbURhdGU7XG4gICAgY29uc3QgdmFsaWRUb0RhdGU6IERhdGUgPSB0b0RhdGU7XG4gICAgdmFsaWRGcm9tRGF0ZS5zZXRTZWNvbmRzKDAsIDApO1xuICAgIHZhbGlkVG9EYXRlLnNldFNlY29uZHMoMCwgMCk7XG4gICAgcmV0dXJuIHZhbGlkRnJvbURhdGUuZ2V0VGltZSgpID09PSB2YWxpZFRvRGF0ZS5nZXRUaW1lKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJUaW1lWm9uZSgpOiBzdHJpbmcge1xuICByZXR1cm4gbW9tZW50LnR6Lmd1ZXNzKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Rm9ybWF0V2l0aG91dFRpbWUoZm9ybWF0OiBzdHJpbmcpIHtcbiAgbGV0IGZvcm1hdFZhbHVlcyA9IGZvcm1hdC5zcGxpdChcImhcIik7XG4gIGlmIChmb3JtYXRWYWx1ZXMubGVuZ3RoID09PSBOT19SRVNVTFQpIHtcbiAgICBmb3JtYXRWYWx1ZXMgPSBmb3JtYXQuc3BsaXQoXCJIXCIpO1xuICB9XG4gIHJldHVybiBmb3JtYXRWYWx1ZXNbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlV2l0aG91dFRpbWUocm93VmFsdWVUaW1lOiBNb21lbnQsIGRhdGVGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGVQaXBlID0gbmV3IERhdGVQaXBlKCdlbi1VUycpO1xuICBjb25zdCBkYXRlID0gcm93VmFsdWVUaW1lPy50b0RhdGUoKTtcbiAgcmV0dXJuIGRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCBjb252ZXJ0Rm9ybWF0V2l0aG91dFRpbWUoZGF0ZUZvcm1hdCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9tZW50V2l0aG91dFRpbWUobW9tZW50RGF0ZTogTW9tZW50KTogRGF0ZSB7XG4gIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBtb21lbnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVF9ZWVlZX01NX0REKTtcbiAgcmV0dXJuIG5ldyBEYXRlKGZvcm1hdHRlZERhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9tZW5XaXRoVGltZShtb21lbnREYXRlOiBNb21lbnQpOiBEYXRlIHtcbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IG1vbWVudERhdGUuZm9ybWF0KERBVEVfRk9STUFUX1lZWVlfTU1fRERfSEhfTU0pO1xuICByZXR1cm4gYWRqdXN0Rm9yVGltZXpvbmUobmV3IERhdGUoZm9ybWF0dGVkRGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TWludXRlc1RvVGltZU51bWJlcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID4gMCkge1xuICAgIHJldHVybiBgJHtNYXRoLmZsb29yKHZhbHVlIC8gNjApLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0keyh2YWx1ZSAlIDYwKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZVdpdGhvdXRNaWRuaWdodCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFRpbWVXaXRoU2VwYXJhdG9yKHZhbHVlLCBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lV2l0aE1pZG5pZ2h0KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0VGltZVdpdGhTZXBhcmF0b3IodmFsdWUsIHRydWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZVdpdGhvdXRTZXBlcmF0b3JBbmRXaXRoTWlkbmlnaHQodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRUaW1lV2l0aG91dFNlcGFyYXRvcih2YWx1ZSwgdHJ1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lV2l0aG91dFNlcGVyYXRvckFuZFdpdGhvdXRNaWRuaWdodCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFRpbWVXaXRob3V0U2VwYXJhdG9yKHZhbHVlLCBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lVG9NaW51dGVzKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICB2YWx1ZSA9IHZhbHVlPy50b1N0cmluZygpO1xuICBpZiAodmFsdWU/Lmxlbmd0aCA9PT0gVkFMSURfVElNRV9NQVhfTEVOR1RIKSB7XG4gICAgY29uc3QgaCA9ICgoK3ZhbHVlWzBdICogVEVOU19NVUxUSVBMSUVSKSArICt2YWx1ZVsxXSkgKiBNSU5VVEVTX1BFUl9IT1VSO1xuICAgIGNvbnN0IG0gPSArdmFsdWVbMl0gKiBURU5TX01VTFRJUExJRVIgKyArdmFsdWVbM107XG4gICAgcmV0dXJuIGggKyBtO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW51dGVzVG9UaW1lKG1pbnV0ZXM6IG51bWJlcik6IFRpbWUge1xuICByZXR1cm4gbWludXRlcyA+PSAwID8geyBob3VyczogTWF0aC5mbG9vcihtaW51dGVzIC8gTUlOVVRFU19QRVJfSE9VUiksIG1pbnV0ZXM6IG1pbnV0ZXMgJSBNSU5VVEVTX1BFUl9IT1VSIH0gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZVRvTWludXRlcyh0aW1lOiBUaW1lKTogbnVtYmVyIHtcbiAgcmV0dXJuIHRpbWUgPyAodGltZS5ob3VycyAqIE1JTlVURVNfUEVSX0hPVVIpICsgdGltZS5taW51dGVzIDogMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVUb01vbWVudCh0aW1lOiBUaW1lKTogbW9tZW50Lk1vbWVudCB8IG51bGwge1xuICBpZiAoIXRpbWUgfHwgdGltZS5ob3VycyA9PSBudWxsIHx8IHRpbWUubWludXRlcyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBsZXQgeyBob3VycywgbWludXRlcywgc2Vjb25kcywgbWlkZGF5UGVyaW9kIH0gPSB0aW1lO1xuXG4gIGlmIChtaWRkYXlQZXJpb2QgPT09IE1pZGRheVBlcmlvZC5QTSAmJiBob3VycyA8IDEyKSB7XG4gICAgaG91cnMgKz0gMTI7XG4gIH0gZWxzZSBpZiAobWlkZGF5UGVyaW9kID09PSBNaWRkYXlQZXJpb2QuQU0gJiYgaG91cnMgPT09IDEyKSB7XG4gICAgaG91cnMgPSAwO1xuICB9XG5cbiAgcmV0dXJuIG1vbWVudCgpLmhvdXJzKGhvdXJzKS5taW51dGVzKG1pbnV0ZXMpLnNlY29uZHMoc2Vjb25kcyA/PyAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdHRlZFRpbWUobWludXRlczogbnVtYmVyLCBpc01pZG5pZ2h0RW5hYmxlOiBib29sZWFuLCBmb3JtYXQ6IHN0cmluZywgZGVmYXVsdFZhbHVlID0gbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoaXNNaWRuaWdodEVuYWJsZSB8fCBtaW51dGVzID4gMCkge1xuICAgIHJldHVybiBjb252ZXJ0TWludXRlc1RvVGltZShtaW51dGVzLCBmb3JtYXQpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCA/IGNvbnZlcnRNaW51dGVzVG9UaW1lKGRlZmF1bHRWYWx1ZSwgZm9ybWF0KSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRNaW51dGVzVG9UaW1lKG1pbnV0ZXM6IG51bWJlciwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBmb3JtYXQgaXMgMTItaG91ciBvciAyNC1ob3VyIGFuZCBleHRyYWN0IHRoZSB0aW1lIHBhcnRcbiAgY29uc3QgdGltZUZvcm1hdCA9IGZvcm1hdC50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhJykgPyAnaGg6bW0gQScgOiAnSEg6bW0nO1xuICByZXR1cm4gbW9tZW50KCkuc3RhcnRPZignZGF5JykuYWRkKG1pbnV0ZXMsICdtaW51dGVzJykuZm9ybWF0KHRpbWVGb3JtYXQpO1xufVxuXG4vLyBXcmFwcGVyIG1ldGhvZCB0byBmb3JtYXQgbWludXRlcyB3aXRoIFwiOlwiIGFzIHNlcGFyYXRvciAoZS5nLiwgXCJISDptbVwiKVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVXaXRoU2VwYXJhdG9yKHZhbHVlOiBudW1iZXIsIGlzTWlkbmlnaHRFbmFibGU6IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIGZvcm1hdFRpbWUodmFsdWUsIGlzTWlkbmlnaHRFbmFibGUsICc6Jyk7XG59XG5cbi8vIFdyYXBwZXIgbWV0aG9kIHRvIGZvcm1hdCBtaW51dGVzIHdpdGhvdXQgc2VwYXJhdG9yIChlLmcuLCBcIkhIbW1cIilcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lV2l0aG91dFNlcGFyYXRvcih2YWx1ZTogbnVtYmVyLCBpc01pZG5pZ2h0RW5hYmxlOiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBmb3JtYXRUaW1lKHZhbHVlLCBpc01pZG5pZ2h0RW5hYmxlLCAnJyk7XG59XG5cbi8vIENvcmUgbWV0aG9kIGZvciBmb3JtYXR0aW5nIG1pbnV0ZXMgd2l0aCBmbGV4aWJpbGl0eSBpbiBvdXRwdXQgZm9ybWF0XG5mdW5jdGlvbiBmb3JtYXRUaW1lKHZhbHVlOiBudW1iZXIsIGlzTWlkbmlnaHRFbmFibGVkOiBib29sZWFuLCBzZXBhcmF0b3I6IHN0cmluZyA9ICc6Jyk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoaXNNaWRuaWdodEVuYWJsZWQgfHwgdmFsdWUgPiAwKSB7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gTUlOVVRFU19QRVJfSE9VUikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSAodmFsdWUgJSBNSU5VVEVTX1BFUl9IT1VSKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgcmV0dXJuIGAke2hvdXJzfSR7c2VwYXJhdG9yfSR7bWludXRlc31gO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZVRvU3RyaW5nKG9iajogVGltZSk6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSAnLSc7XG5cbiAgaWYgKG9iaikge1xuICAgIGNvbnN0IGhvdXJzID0gb2JqLmhvdXJzPy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgPz8gJzAwJztcbiAgICBjb25zdCBtaW51dGVzID0gb2JqLm1pbnV0ZXM/LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSA/PyAnMDAnO1xuICAgIGNvbnN0IHNlY29uZHMgPSBvYmouc2Vjb25kcz8udG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpID8/ICcwMCc7XG5cbiAgICByZXN1bHQgPSBgJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9YDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBkYXRlIGZvcm1hdCBzdHJpbmcgdXNlcyBtb250aCBuYW1lcyAoTU1NL01NTU0pXG4gKiBAZXhhbXBsZSBcIk1NTSBkZCwgeXl5eVwiIOKGkiB0cnVlXG4gKiBAZXhhbXBsZSBcIk1NL2RkL3l5eXlcIiDihpIgZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc01vbnRoTmFtZShmb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFmb3JtYXQgJiYgL1xcYk1NTStcXGIvLnRlc3QoZm9ybWF0KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGRhdGUgZm9ybWF0IHVzZXMgMTItaG91ciB0aW1lIHdpdGggQU0vUE1cbiAqIEBleGFtcGxlIFwiaGg6bW0gYVwiIOKGkiB0cnVlXG4gKiBAZXhhbXBsZSBcIkhIOm1tXCIg4oaSIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNNaWRkYXlQZXJpb2QoZm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gIENvbXBsZXRlOiBNYXRjaGVzIGEsIGFtLCBBLCBBTSwgcCwgcG0sIFAsIFBNXG4gIHJldHVybiAhIWZvcm1hdCAmJiAvXFxzW2FwXW0/JC9pLnRlc3QoZm9ybWF0KTtcbn1cbiJdfQ==
@@ -88586,6 +88586,23 @@ function formatTimeToString(obj) {
88586
88586
  }
88587
88587
  return result;
88588
88588
  }
88589
+ /**
88590
+ * Checks if the date format string uses month names (MMM/MMMM)
88591
+ * @example "MMM dd, yyyy" → true
88592
+ * @example "MM/dd/yyyy" → false
88593
+ */
88594
+ function hasMonthName(format) {
88595
+ return !!format && /\bMMM+\b/.test(format);
88596
+ }
88597
+ /**
88598
+ * Checks if the date format uses 12-hour time with AM/PM
88599
+ * @example "hh:mm a" → true
88600
+ * @example "HH:mm" → false
88601
+ */
88602
+ function hasMiddayPeriod(format) {
88603
+ // Complete: Matches a, am, A, AM, p, pm, P, PM
88604
+ return !!format && /\s[ap]m?$/i.test(format);
88605
+ }
88589
88606
 
88590
88607
  class SmartparkDateTimePipe {
88591
88608
  transform(seconds = 0) {
@@ -113008,6 +113025,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
113008
113025
  type: Injectable
113009
113026
  }], ctorParameters: () => [{ type: i1$2.Store }, { type: UsersCloudServiceProxy }, { type: UsersIdentityServiceProxy }, { type: MessageBarService }, { type: AppConfigService }, { type: TenantCloudServiceProxy }, { type: i1$5.TranslateService }, { type: BackofficeCloudServiceProxy }], propDecorators: { onLoad2FAUserAction: [], onLoadUserPermissionsAction: [], onLoadUsersAction: [], onSetMonthliesAction: [], onAddUserAction: [], onEditUserAction: [], onDeleteUserAction: [], onResendUserInvitationAction: [], onSetUserStatusAction: [], onResendPendingAdminInvitationsAction: [], onEnable2FAAction: [], onDisable2FAAction: [], onClearUsersAction: [], onUpdateAndActivateUserAction: [], onUpdateTenantSingleSignOnAction: [] } });
113010
113027
 
113028
+ // Module order configuration
113029
+ const MODULE_ORDER = [
113030
+ AppModule$3.Cc,
113031
+ AppModule$3.Accounts,
113032
+ AppModule$3.ECommerceBackoffice,
113033
+ AppModule$3.Monthlies,
113034
+ AppModule$3.Guests,
113035
+ AppModule$3.Validation,
113036
+ AppModule$3.Reports,
113037
+ AppModule$3.LotConfiguration,
113038
+ AppModule$3.Management
113039
+ ];
113011
113040
  class PermissionsService {
113012
113041
  constructor(store) {
113013
113042
  this.store = store;
@@ -113015,6 +113044,28 @@ class PermissionsService {
113015
113044
  this.isOperationalAdmin = () => this.isPermitted(PermissionType$2.OperationalAdmin);
113016
113045
  this.isAdmin = () => this.isPermitted(PermissionType$2.SystemAdmin) || this.isPermitted(PermissionType$2.OperationalAdmin);
113017
113046
  this.isPermitted = (permissionType) => this.store.selectSnapshot(UserState.permissionTypes)?.includes(permissionType);
113047
+ this.userPermittedModules = computed(() => {
113048
+ const permissionTypes = this.store.selectSignal(UserState.permissionTypes)();
113049
+ const isPermitted = (permissionType) => permissionTypes?.includes(permissionType);
113050
+ const permitted = new Set([
113051
+ AppModule$3.Accounts,
113052
+ AppModule$3.Monthlies,
113053
+ AppModule$3.Guests,
113054
+ AppModule$3.Validation,
113055
+ ]);
113056
+ if (isPermitted(PermissionType$2.SystemAdmin) || isPermitted(PermissionType$2.OperationalAdmin)) {
113057
+ [
113058
+ AppModule$3.Cc,
113059
+ AppModule$3.Reports,
113060
+ AppModule$3.LotConfiguration,
113061
+ AppModule$3.Management,
113062
+ ].map(appModule => permitted.add(appModule));
113063
+ }
113064
+ if (isPermitted(PermissionType$2.ECommerceBackofficeMain)) {
113065
+ permitted.add(AppModule$3.ECommerceBackoffice);
113066
+ }
113067
+ return MODULE_ORDER.filter(appModule => permitted.has(appModule));
113068
+ });
113018
113069
  }
113019
113070
  getRolePermissionTypes(permissionsMap, appModule) {
113020
113071
  const findAllPermissionDtosByAppModule = (appModule) => permissionDto => permissionDto.module === appModule && permissionDto.subModule != null;
@@ -113026,38 +113077,6 @@ class PermissionsService {
113026
113077
  const rolePermissionTypes = this.getRolePermissionTypes(permissionsMap, appModule);
113027
113078
  return permissionTypes.some(pt => rolePermissionTypes.includes(pt));
113028
113079
  }
113029
- userPermittedModules() {
113030
- const isAdminPermission = this.isAdmin();
113031
- let permittedModules = [];
113032
- if (isAdminPermission) {
113033
- permittedModules = [
113034
- AppModule$3.Cc,
113035
- AppModule$3.Accounts,
113036
- AppModule$3.ECommerceBackoffice,
113037
- AppModule$3.Monthlies,
113038
- AppModule$3.Guests,
113039
- AppModule$3.Validation,
113040
- AppModule$3.Reports,
113041
- AppModule$3.LotConfiguration,
113042
- AppModule$3.Management,
113043
- ];
113044
- }
113045
- else {
113046
- // non admin users permitted modules
113047
- permittedModules = [
113048
- AppModule$3.Accounts,
113049
- AppModule$3.ECommerceBackoffice,
113050
- AppModule$3.Monthlies,
113051
- AppModule$3.Guests,
113052
- AppModule$3.Validation,
113053
- ];
113054
- }
113055
- const isTenantPermittedForECommerceModule = this.isPermitted(PermissionType$2.ECommerceBackofficeMain);
113056
- if (!isTenantPermittedForECommerceModule) {
113057
- permittedModules = permittedModules.filter(module => module !== AppModule$3.ECommerceBackoffice);
113058
- }
113059
- return permittedModules;
113060
- }
113061
113080
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, deps: [{ token: i1$2.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
113062
113081
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService }); }
113063
113082
  }
@@ -118098,5 +118117,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
118098
118117
  * Generated bundle index. Do not edit.
118099
118118
  */
118100
118119
 
118101
- export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_FILES__SIZE_200_KB, ALLOWED_FILES__SIZE_2_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountLinkedEntitiesText, AccountLinkedEntityText, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CarModule, CarState, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearModelsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSpecialTransientTablesAction, ClearSuspendedParkActivitiesAction, ClearUserSettingsByCategoryAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateColorAction, CreateGuestAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ErrorResultsComponent, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, HumanizePipe, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, IntercomComponent, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAccountManagementGuestGroupAction, LoadAccountManagementJobTitlesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsGuestGroupAction, LoadReportsJobTitlesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserPermissionsAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_25_3_1, VERSION_25_4_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_V1, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VirtualValidationStatusText, WrapFnPipe, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, objectKeystoLowerCase, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
118120
+ export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_FILES__SIZE_200_KB, ALLOWED_FILES__SIZE_2_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountLinkedEntitiesText, AccountLinkedEntityText, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CarModule, CarState, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearModelsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSpecialTransientTablesAction, ClearSuspendedParkActivitiesAction, ClearUserSettingsByCategoryAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateColorAction, CreateGuestAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ErrorResultsComponent, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, HumanizePipe, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, IntercomComponent, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAccountManagementGuestGroupAction, LoadAccountManagementJobTitlesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsGuestGroupAction, LoadReportsJobTitlesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserPermissionsAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_25_3_1, VERSION_25_4_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_V1, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VirtualValidationStatusText, WrapFnPipe, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasMiddayPeriod, hasMonthName, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, objectKeystoLowerCase, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
118102
118121
  //# sourceMappingURL=tiba-spark-client-shared-lib.mjs.map