@tiba-spark/client-shared-lib 26.4.0-110 → 26.4.0-131

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.
Files changed (26) hide show
  1. package/esm2022/libraries/components/index.mjs +4 -1
  2. package/esm2022/libraries/components/shared-components.module.mjs +8 -3
  3. package/esm2022/libraries/components/toast/toast-host.component.mjs +18 -0
  4. package/esm2022/libraries/components/toast/toast.model.mjs +2 -0
  5. package/esm2022/libraries/components/toast/toast.service.mjs +27 -0
  6. package/esm2022/libraries/enums/core-entities.enum.mjs +3 -1
  7. package/esm2022/libraries/enums/localization.enum.mjs +3 -1
  8. package/esm2022/libraries/resolvers/tech-tools-module.resolver.mjs +7 -7
  9. package/fesm2022/tiba-spark-client-shared-lib.mjs +903 -857
  10. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  11. package/libraries/components/index.d.ts +3 -0
  12. package/libraries/components/index.d.ts.map +1 -1
  13. package/libraries/components/shared-components.module.d.ts +2 -1
  14. package/libraries/components/shared-components.module.d.ts.map +1 -1
  15. package/libraries/components/toast/toast-host.component.d.ts +10 -0
  16. package/libraries/components/toast/toast-host.component.d.ts.map +1 -0
  17. package/libraries/components/toast/toast.model.d.ts +10 -0
  18. package/libraries/components/toast/toast.model.d.ts.map +1 -0
  19. package/libraries/components/toast/toast.service.d.ts +12 -0
  20. package/libraries/components/toast/toast.service.d.ts.map +1 -0
  21. package/libraries/enums/core-entities.enum.d.ts.map +1 -1
  22. package/libraries/enums/localization.enum.d.ts +3 -1
  23. package/libraries/enums/localization.enum.d.ts.map +1 -1
  24. package/libraries/resolvers/tech-tools-module.resolver.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/libraries/theme/_variables.scss +3 -0
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { DatePipe, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, Injectable, HostListener, HostBinding, Input, Optional, InjectionToken, Inject, NgModule, forwardRef, Pipe, Component, ChangeDetectionStrategy, EventEmitter, Output, createComponent, signal, computed, inject, Injector, effect, input, ChangeDetectorRef, ViewChild } from '@angular/core';
4
+ import { Directive, Injectable, HostListener, HostBinding, Input, Optional, InjectionToken, Inject, NgModule, forwardRef, Pipe, Component, ChangeDetectionStrategy, signal, inject, EventEmitter, Output, createComponent, computed, Injector, effect, input, ChangeDetectorRef, ViewChild } from '@angular/core';
5
5
  import DOMPurify from 'dompurify';
6
6
  import { Subject, merge, takeUntil, throwError, of, Observable, delay, debounceTime, switchMap, map, from, noop, BehaviorSubject, Subscription, combineLatest, filter as filter$1, take, distinctUntilChanged as distinctUntilChanged$1, tap as tap$1, first as first$1, catchError as catchError$1, EMPTY, fromEvent, timer, distinctUntilKeyChanged, firstValueFrom, finalize as finalize$1, defer, ReplaySubject } from 'rxjs';
7
7
  import * as i1 from '@angular/forms';
@@ -12,7 +12,7 @@ import { HttpHeaders, HttpResponseBase, HttpResponse, HttpClient, provideHttpCli
12
12
  import moment from 'moment';
13
13
  import moment$1 from 'moment-timezone';
14
14
  import * as i1$4 from '@ngx-translate/core';
15
- import { TranslateModule, TranslateStore, TranslateService } from '@ngx-translate/core';
15
+ import { TranslateModule, TranslateStore, TranslatePipe, TranslateService } from '@ngx-translate/core';
16
16
  import * as i1$2 from '@ngxs/store';
17
17
  import { ofActionDispatched, ofActionCompleted, ofActionErrored, Action, Selector, State, NgxsModule, Select, Store, select } from '@ngxs/store';
18
18
  import { __decorate } from 'tslib';
@@ -75820,6 +75820,8 @@ var Localization;
75820
75820
  Localization["device_configurator"] = "device_configurator";
75821
75821
  Localization["lost_ticket_active_rate_description"] = "lost_ticket_active_rate_description";
75822
75822
  Localization["lost_ticket_lane_firmware_unknown"] = "lost_ticket_lane_firmware_unknown";
75823
+ Localization["new_version_available"] = "new_version_available";
75824
+ Localization["offline_payment"] = "offline_payment";
75823
75825
  })(Localization || (Localization = {}));
75824
75826
 
75825
75827
  //----------------------
@@ -118474,855 +118476,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
118474
118476
  type: Input
118475
118477
  }] } });
118476
118478
 
118477
- class SharedComponentsModule {
118478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
118479
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, imports: [CommonModule,
118480
- LocalizationModule,
118481
- SharedDirectivesModule,
118482
- FormValidationsComponent,
118483
- FieldLabelComponent,
118484
- FieldValidationsComponent], exports: [CommonModule,
118485
- LocalizationModule,
118486
- FieldLabelComponent,
118487
- FieldValidationsComponent,
118488
- FormValidationsComponent] }); }
118489
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, imports: [CommonModule,
118490
- LocalizationModule,
118491
- SharedDirectivesModule,
118492
- FormValidationsComponent,
118493
- FieldLabelComponent,
118494
- FieldValidationsComponent, CommonModule,
118495
- LocalizationModule] }); }
118496
- }
118497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, decorators: [{
118498
- type: NgModule,
118499
- args: [{
118500
- declarations: [],
118501
- imports: [
118502
- CommonModule,
118503
- LocalizationModule,
118504
- SharedDirectivesModule,
118505
- FormValidationsComponent,
118506
- FieldLabelComponent,
118507
- FieldValidationsComponent,
118508
- ],
118509
- exports: [
118510
- CommonModule,
118511
- LocalizationModule,
118512
- FieldLabelComponent,
118513
- FieldValidationsComponent,
118514
- FormValidationsComponent,
118515
- ]
118516
- }]
118517
- }] });
118518
-
118519
- class CLogItPipe {
118520
- transform(value) {
118521
- console.debug(value);
118522
- }
118523
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118524
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, isStandalone: true, name: "cLogIt" }); }
118525
- }
118526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, decorators: [{
118527
- type: Pipe,
118528
- args: [{ name: 'cLogIt', standalone: true }]
118529
- }] });
118530
-
118531
- const convertCentToWholeCoin = (cent) => +cent >= 0 ? cent / 100 : null;
118532
- const convertWholeCoinToCent = (wholeCoin) => +wholeCoin >= 0 ? +(wholeCoin * 100).toFixed(2) : null;
118533
-
118534
- class CentToCoinPipe {
118535
- transform(value = 0) {
118536
- const coinValue = parseFloat((convertCentToWholeCoin(value) ?? 0).toFixed(2));
118537
- const formatter = new Intl.NumberFormat('en-US', {
118538
- minimumFractionDigits: 2,
118539
- maximumFractionDigits: 2
118540
- });
118541
- return formatter.format(coinValue);
118542
- }
118543
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118544
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, isStandalone: true, name: "centToCoin" }); }
118545
- }
118546
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, decorators: [{
118547
- type: Pipe,
118548
- args: [{ name: 'centToCoin', standalone: true }]
118549
- }] });
118550
-
118551
- class CurlyToBoldPipe {
118552
- transform(value) {
118553
- return value.replace(/{([^{]*)}/g, '<strong>$1</strong>');
118554
- }
118555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118556
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, isStandalone: true, name: "curlyToBold" }); }
118557
- }
118558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, decorators: [{
118559
- type: Pipe,
118560
- args: [{ name: 'curlyToBold', standalone: true }]
118561
- }] });
118562
-
118563
- class DecimalToAmountPipe {
118564
- // Gets a number and returns the number formatted
118565
- // example: 1000 -> 1,000, 200 -> 200 etc. WITHOUT FLOATING NUMBERS
118566
- transform(value = 0) {
118567
- const formatter = new Intl.NumberFormat('en-US', {
118568
- maximumFractionDigits: 0
118569
- });
118570
- return formatter.format(value);
118571
- }
118572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118573
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, isStandalone: true, name: "decimalToAmount" }); }
118574
- }
118575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, decorators: [{
118576
- type: Pipe,
118577
- args: [{ name: 'decimalToAmount', standalone: true }]
118578
- }] });
118579
-
118580
- class DecimalToCurrencyPipe {
118581
- // Gets a number and returns the number formatted
118582
- // example: 1000 -> 1,000.00, 200 -> 200.00 etc.
118583
- transform(value = 0, fractionDigits = 2) {
118584
- const formatter = new Intl.NumberFormat('en-US', {
118585
- minimumFractionDigits: fractionDigits,
118586
- maximumFractionDigits: fractionDigits
118587
- });
118588
- return formatter.format(value);
118589
- }
118590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118591
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, isStandalone: true, name: "decimalToCurrency" }); }
118592
- }
118593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, decorators: [{
118594
- type: Pipe,
118595
- args: [{ name: 'decimalToCurrency', standalone: true }]
118596
- }] });
118597
-
118598
- class EnumsToArrayPipe {
118599
- transform(value) {
118600
- return Object.keys(value).filter(e => !isNaN(+e)).map(o => { return { index: +o, name: value[o] }; });
118601
- }
118602
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118603
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, isStandalone: true, name: "enumsToArray" }); }
118604
- }
118605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, decorators: [{
118606
- type: Pipe,
118607
- args: [{ name: 'enumsToArray', standalone: true }]
118608
- }] });
118609
-
118610
- var Operator;
118611
- (function (Operator) {
118612
- Operator[Operator["Equal"] = 0] = "Equal";
118613
- Operator[Operator["Contain"] = 1] = "Contain";
118614
- })(Operator || (Operator = {}));
118615
-
118616
- const lowerCaseFirstLetter = (value) => value.charAt(0).toLocaleLowerCase() + value.slice(1);
118617
- const capitalizeFirstLetter = (value) => value.charAt(0).toLocaleUpperCase() + value.slice(1);
118618
- const lowerCase = (value) => value?.toString().toLowerCase();
118619
- function camelize(str) {
118620
- return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function (word, index) {
118621
- return index === 0 ? word.toLowerCase() : word.toUpperCase();
118622
- }).replace(/\s+/g, '');
118623
- }
118624
- function isCharacterLengthValid(str) {
118625
- return str?.length >= 2 || str?.length === 0 || !str;
118626
- }
118627
- function areVersionsCompatible(version1, version2) {
118628
- return geMajorAndMinorFromVersion(version1) === geMajorAndMinorFromVersion(version2);
118629
- }
118630
- function isDefinedAndNotEmpty(value) {
118631
- return value !== null && value !== undefined && value !== '';
118632
- }
118633
- function geMajorAndMinorFromVersion(input) {
118634
- let majorAndMinorVersion = '';
118635
- var splittedVersion = input.split('.');
118636
- if (splittedVersion?.length > 1) {
118637
- majorAndMinorVersion = `${splittedVersion[0]}.${splittedVersion[1]}`;
118638
- }
118639
- return majorAndMinorVersion;
118640
- }
118641
- function printSpecialDaysText(translateService, specialDays) {
118642
- const selectedDays = [];
118643
- for (let index = 0; index < 5; index++) {
118644
- const bitPosition = Math.pow(2, index);
118645
- if ((specialDays & bitPosition) !== 0) {
118646
- const translatedLabel = translateService.instant(Localization.special_day_acronym_i, { i: index + 1 });
118647
- selectedDays.push(translatedLabel);
118648
- }
118649
- }
118650
- return selectedDays.join(', ');
118651
- }
118652
- function getDaysFromValue(translateService, days, value) {
118653
- return days.filter(day => (value & day.value) !== 0).map(day => translateService.instant(day.label));
118654
- }
118655
- function objectKeystoLowerCase(obj) {
118656
- if (Array.isArray(obj)) {
118657
- return obj.map(item => objectKeystoLowerCase(item));
118658
- }
118659
- if (obj !== null && typeof obj === 'object') {
118660
- const normalized = {};
118661
- for (const key of Object.keys(obj)) {
118662
- normalized[key.toLowerCase()] = objectKeystoLowerCase(obj[key]);
118663
- }
118664
- return normalized;
118665
- }
118666
- return obj;
118667
- }
118668
- // Cuts on a character count, which CSS text-overflow cannot express — it cuts on width.
118669
- function truncate(value, maxLength) {
118670
- if (!value) {
118671
- return '';
118672
- }
118673
- // Spread rather than slice so an astral character (emoji) is not split into a lone surrogate.
118674
- const characters = [...value];
118675
- if (maxLength === undefined || characters.length <= maxLength) {
118676
- return value;
118677
- }
118678
- return `${characters.slice(0, maxLength).join('')}…`;
118679
- }
118680
- // Counts code points like truncate, so a caller deciding whether the text was cut agrees with it.
118681
- function exceedsLength(value, maxLength) {
118682
- if (!value || maxLength === undefined) {
118683
- return false;
118684
- }
118685
- return [...value].length > maxLength;
118686
- }
118687
-
118688
- // Gets an object of type<T>
118689
- // Gets an array of keys to ignore
118690
- // Returns a new object without the omitted keys
118691
- function omitKeys(obj, keys) {
118692
- var dup = {};
118693
- for (var key in obj) {
118694
- if (keys.indexOf(key) == -1) {
118695
- dup[key] = obj[key];
118696
- }
118697
- }
118698
- return dup;
118699
- }
118700
- function numberWithLeadingZero(num) {
118701
- if (num !== null && num <= 9) {
118702
- num = (`0${num}`).slice(-10);
118703
- }
118704
- return num;
118705
- }
118706
- async function delayCancellation(time, subject) {
118707
- // create a subscription to use with your promise
118708
- const subscription = new Subscription();
118709
- const promise = new Promise(resolve => {
118710
- const id = setTimeout(resolve, time);
118711
- // add teardown logic to the subscription
118712
- subscription.add(() => {
118713
- clearTimeout(id);
118714
- resolve(null);
118715
- });
118716
- });
118717
- const subSubject = subject.subscribe(cancelSubscription => {
118718
- if (cancelSubscription) {
118719
- // call unsubscribe to cancel
118720
- subscription.unsubscribe();
118721
- }
118722
- });
118723
- // use the promise invoke the dealy
118724
- await promise;
118725
- subSubject.unsubscribe();
118726
- }
118727
- function replaceAll(str, find, replace) {
118728
- return str.replace(new RegExp(find, 'g'), replace);
118729
- }
118730
- var RowOperation;
118731
- (function (RowOperation) {
118732
- RowOperation[RowOperation["Insert"] = 0] = "Insert";
118733
- RowOperation[RowOperation["Update"] = 1] = "Update";
118734
- RowOperation[RowOperation["Delete"] = 2] = "Delete";
118735
- RowOperation[RowOperation["None"] = 3] = "None";
118736
- RowOperation[RowOperation["InsertToParent"] = 4] = "InsertToParent";
118737
- RowOperation[RowOperation["Updating"] = 5] = "Updating";
118738
- })(RowOperation || (RowOperation = {}));
118739
- function markEntityAsUnchanged(entity) {
118740
- return omitKeys(entity, ['expanded', 'expanding', 'changed', 'rowOperation', 'findRowIndex']);
118741
- }
118742
- function markEntitiesAsChanged(entities, rowOperation = RowOperation.None, findRowIndex) {
118743
- if ((rowOperation === RowOperation.Update || rowOperation === RowOperation.Delete) && !findRowIndex) {
118744
- findRowIndex = (entity, entities) => entities.findIndex(e => e.id === entity.id);
118745
- }
118746
- flagEntity(entities, true, rowOperation, findRowIndex);
118747
- //solution for unmarked previoues rows
118748
- setTimeout(() => flagEntity(entities, false, RowOperation.None), 1000);
118749
- }
118750
- function flagEntity(entities, flag, rowOperation, findRowIndex) {
118751
- entities.forEach(entity => {
118752
- entity.changed = flag;
118753
- entity.rowOperation = rowOperation ?? entity.rowOperation;
118754
- entity.findRowIndex = findRowIndex || ((entity, entities) => null);
118755
- });
118756
- }
118757
- ;
118758
- function getAddress(city, street) {
118759
- let address = null;
118760
- if (city && street) {
118761
- address = `${street}, ${city}`;
118762
- }
118763
- else if (city) {
118764
- address = city;
118765
- }
118766
- else if (street) {
118767
- address = street;
118768
- }
118769
- return address;
118770
- }
118771
- const baseReduce = (obj, propertyName) => {
118772
- return obj[propertyName];
118773
- };
118774
- const filterKeyValueBaseReduce = (obj, _) => obj.value;
118775
- function* flattenByKey(array, nestedKey, depth = 1) {
118776
- for (const item of array) {
118777
- if (item[nestedKey] && Array.isArray(item[nestedKey]) && depth > 0) {
118778
- yield* flattenByKey(item[nestedKey], nestedKey, depth - 1);
118779
- }
118780
- else {
118781
- yield item;
118782
- }
118783
- }
118784
- }
118785
- function isIOSDevice() {
118786
- var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
118787
- var isAppleDevice = navigator.userAgent.includes('Macintosh');
118788
- var isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)
118789
- return isIOS || (isAppleDevice && (isTouchScreen || iOS1to12quirk()));
118790
- }
118791
- function iOS1to12quirk() {
118792
- var audio = new Audio(); // temporary Audio object
118793
- audio.volume = 0.5; // has no effect on iOS <= 12
118794
- return audio.volume === 1;
118795
- }
118796
- function sleep(milliseconds) {
118797
- return new Promise((resolve) => setTimeout(resolve, milliseconds));
118798
- }
118799
- function isObjectEmpty(obj) {
118800
- return Object.keys(obj).length === 0;
118801
- }
118802
- function isTrueInBinary(decimalValue, bitPosition) {
118803
- return (decimalValue & bitPosition) !== 0;
118804
- }
118805
- function convertBinaryToDecimal(binaryString) {
118806
- // Use parseInt function to convert binary string to decimal number
118807
- return parseInt(binaryString, 2);
118808
- }
118809
- function convertDecimalToBinary(decimalNumber) {
118810
- // Use toString(2) function to convert decimal number to binary string
118811
- return decimalNumber == null || isNaN(decimalNumber) ? '' : decimalNumber.toString(2);
118812
- }
118813
- function distinctObjectByProperty(arr, prop) {
118814
- const map = new Map();
118815
- arr.forEach(item => {
118816
- const key = item[prop];
118817
- if (!map.has(key)) {
118818
- map.set(key, item);
118819
- }
118820
- });
118821
- return Array.from(map.values());
118822
- }
118823
- function distinctObjectByProperties(arr, ...props) {
118824
- const map = new Map();
118825
- arr.forEach(item => {
118826
- const key = props.map(prop => item[prop]).join('_');
118827
- if (!map.has(key)) {
118828
- map.set(key, item);
118829
- }
118830
- });
118831
- return Array.from(map.values());
118832
- }
118833
- function isSearchFieldChanged(prev, curr) {
118834
- const isFieldSelectorChanged = prev.searchFieldSelector !== curr.searchFieldSelector && curr.searchValue;
118835
- const isSearchValueChanged = prev.searchValue !== curr.searchValue;
118836
- return (isFieldSelectorChanged || isSearchValueChanged) && isCharacterLengthValid(curr.searchValue);
118837
- }
118838
- function openBackgroundIframe(url, timeoutMs = 60000) {
118839
- // Create an invisible iframe
118840
- const iframe = document.createElement('iframe');
118841
- iframe.style.width = '0';
118842
- iframe.style.height = '0';
118843
- iframe.style.border = 'none';
118844
- iframe.style.position = 'absolute';
118845
- iframe.src = url;
118846
- document.body.appendChild(iframe);
118847
- // Remove the iframe after the specified timeout
118848
- setTimeout(() => {
118849
- iframe.remove();
118850
- }, timeoutMs);
118851
- }
118852
- function findObjectDifferences(obj1, obj2) {
118853
- const differencesMessages = [];
118854
- const allKeys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);
118855
- for (const key of allKeys) {
118856
- const value1 = obj1[key] ?? undefined;
118857
- const value2 = obj2[key] ?? undefined;
118858
- if (!areEqual(value1, value2)) {
118859
- differencesMessages.push(`Property "${key}" is different: ${JSON.stringify(value1)} vs ${JSON.stringify(value2)}`);
118860
- }
118861
- }
118862
- return differencesMessages;
118863
- }
118864
- function areEqual(a, b) {
118865
- if (Array.isArray(a) && Array.isArray(b)) {
118866
- return a.length === b.length && a.every((val, index) => val === b[index]);
118867
- }
118868
- return a === b;
118869
- }
118870
- function nameof(key) {
118871
- return key;
118872
- }
118873
-
118874
- //////////////////////////////////////////////////////////////////////////////////////////////////
118875
- // filter keys pipe return new array filtered by each property name value by the search value key
118876
- // - there are two operator ways to filter by contain or equal
118877
- // - reduce method return the property value of a given property name
118878
- // - when subGroupPropertyName exists there is another test to filter each property name value
118879
- // inside the group property of this value
118880
- // - filter logic:
118881
- // * filter if at least one sub groups pass the test will return the group with all its sub groups
118882
- //////////////////////////////////////////////////////////////////////////////////////////////////
118883
- class FilterKeysPipe {
118884
- constructor() {
118885
- this.isAtLeastOneElementInTheArray = (obj, subGroupPropertyName, propertyName, searchValue, operator, reduce) => {
118886
- if (!subGroupPropertyName) {
118887
- return false;
118888
- }
118889
- const subGroups = baseReduce(obj, subGroupPropertyName);
118890
- const getObjValueByPropertyName = (obj) => lowerCase(reduce(obj, propertyName));
118891
- switch (operator) {
118892
- case Operator.Contain:
118893
- return subGroups?.some((obj) => getObjValueByPropertyName(obj)?.includes(searchValue));
118894
- case Operator.Equal:
118895
- default:
118896
- return subGroups?.some((obj) => getObjValueByPropertyName(obj) === searchValue);
118897
- }
118898
- };
118899
- }
118900
- transform(array, propertyNames, searchValue, operator = Operator.Contain, reduce = baseReduce, subGroupPropertyName = null) {
118901
- if (!array || !array.length) {
118902
- return [];
118903
- }
118904
- if (!searchValue) {
118905
- return array;
118906
- }
118907
- let filteredList = [];
118908
- propertyNames.forEach((propertyName) => filteredList =
118909
- filteredList.concat(this.getFilteredList(array, propertyName, subGroupPropertyName, operator, lowerCase(searchValue), reduce)));
118910
- return [...new Set(filteredList)];
118911
- }
118912
- getFilteredList(array, propertyName, subGroupPropertyName, operator, searchValue, reduce) {
118913
- let filteredList = [];
118914
- // filter the groups of the array that pass the test
118915
- filteredList = filteredList.concat(this.filterPropertyNameBySearchValue(array, propertyName, operator, searchValue, reduce));
118916
- // filter the sub groups of the array
118917
- // if at least one sub group pass the test all the sub groups of the group will return
118918
- filteredList = filteredList.concat(this.filterGroupBySubGroup(array, propertyName, subGroupPropertyName, operator, searchValue, reduce));
118919
- return filteredList;
118920
- }
118921
- filterPropertyNameBySearchValue(array, propertyName, operator, searchValue, reduce) {
118922
- const compare = operator === Operator.Contain ?
118923
- (val) => lowerCase(val).includes(searchValue) :
118924
- (val) => lowerCase(val) === searchValue;
118925
- return array.filter(obj => {
118926
- let isMatch = false;
118927
- const value = reduce(obj, propertyName);
118928
- if (value) {
118929
- isMatch = Array.isArray(value) ? value.some(compare) : compare(value);
118930
- }
118931
- return isMatch;
118932
- });
118933
- }
118934
- filterGroupBySubGroup(array, propertyName, subGroupPropertyName, operator, searchValue, reduce) {
118935
- if (!subGroupPropertyName) {
118936
- return [];
118937
- }
118938
- return array?.filter(obj => this.isAtLeastOneElementInTheArray(obj, subGroupPropertyName, propertyName, searchValue, operator, reduce));
118939
- }
118940
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118941
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, isStandalone: true, name: "filterKeys" }); }
118942
- }
118943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, decorators: [{
118944
- type: Pipe,
118945
- args: [{ name: 'filterKeys', standalone: true }]
118946
- }] });
118947
-
118948
- class FilterNumbersPipe {
118949
- transform(array, fieldName) {
118950
- if (!array || !array.length) {
118951
- return [];
118952
- }
118953
- return array.filter(obj => !isNaN(+obj[fieldName]));
118954
- }
118955
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118956
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, isStandalone: true, name: "filterNumbers" }); }
118957
- }
118958
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, decorators: [{
118959
- type: Pipe,
118960
- args: [{ name: 'filterNumbers', standalone: true }]
118961
- }] });
118962
-
118963
- class FilterPipe {
118964
- transform(array, fieldName, fieldValue, operator = Operator.Equal) {
118965
- if (!array || !array.length) {
118966
- return [];
118967
- }
118968
- if (!fieldValue || !fieldValue.length) {
118969
- return array;
118970
- }
118971
- if (operator == Operator.Contain) {
118972
- return array.filter(obj => obj[fieldName].toString().includes(fieldValue.toString()));
118973
- }
118974
- return array.filter(obj => obj[fieldName].toString() === fieldValue.toString());
118975
- }
118976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118977
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, isStandalone: true, name: "filter" }); }
118978
- }
118979
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, decorators: [{
118980
- type: Pipe,
118981
- args: [{ name: 'filter', standalone: true }]
118982
- }] });
118983
-
118984
- class TBFormatPipe {
118985
- transform(value, formatter) {
118986
- return formatter ? formatter(value) : value;
118987
- }
118988
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
118989
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, isStandalone: true, name: "tbFormat" }); }
118990
- }
118991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, decorators: [{
118992
- type: Pipe,
118993
- args: [{ name: 'tbFormat', standalone: true }]
118994
- }] });
118995
-
118996
- class GroupPermissionsPipe {
118997
- transform(permissions) {
118998
- const groupPermissions = [];
118999
- for (const permission of permissions?.filter(p => !p['hide'])) {
119000
- if (permission.group === PermissionGroup$1.None) {
119001
- groupPermissions.push(permission);
119002
- }
119003
- else {
119004
- const groupIndex = groupPermissions.findIndex((groupPermissions) => groupPermissions.id === permission.group);
119005
- if (groupIndex === -1) {
119006
- const groupPermission = {
119007
- id: permission.group,
119008
- permissions: [permission]
119009
- };
119010
- groupPermissions.push(groupPermission);
119011
- }
119012
- else {
119013
- groupPermissions[groupIndex].permissions.push(permission);
119014
- }
119015
- }
119016
- }
119017
- return groupPermissions;
119018
- }
119019
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119020
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, isStandalone: true, name: "groupPermissions" }); }
119021
- }
119022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, decorators: [{
119023
- type: Pipe,
119024
- args: [{ name: 'groupPermissions', standalone: true }]
119025
- }] });
119026
-
119027
- /**
119028
- * Transforms a string by replacing all underscores with spaces.
119029
- *
119030
- * @param value - The input string that may contain underscores.
119031
- * @returns The transformed string with underscores replaced by spaces.
119032
- * Split the string whenever an uppercase letter starts
119033
- * Returns an empty string if the input is null, undefined, or empty.
119034
- */
119035
- class HumanizePipe {
119036
- transform(value) {
119037
- if (!value) {
119038
- return '';
119039
- }
119040
- return value.split(/(?=[A-Z])/).join(' ').replace(/_/g, ' ');
119041
- }
119042
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119043
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, isStandalone: true, name: "humanizePipe" }); }
119044
- }
119045
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, decorators: [{
119046
- type: Pipe,
119047
- args: [{ name: 'humanizePipe', standalone: true }]
119048
- }] });
119049
-
119050
- var OrderDirection;
119051
- (function (OrderDirection) {
119052
- OrderDirection[OrderDirection["Ascending"] = 0] = "Ascending";
119053
- OrderDirection[OrderDirection["Descending"] = 1] = "Descending";
119054
- })(OrderDirection || (OrderDirection = {}));
119055
-
119056
- class OrderByPipe {
119057
- transform(array, orderDirection = OrderDirection.Ascending) {
119058
- if (!array || !array.length) {
119059
- return [];
119060
- }
119061
- if (array.length <= 1) {
119062
- return array;
119063
- }
119064
- switch (orderDirection) {
119065
- case OrderDirection.Descending:
119066
- return array.sort().reverse();
119067
- case OrderDirection.Ascending:
119068
- default:
119069
- return array.sort();
119070
- }
119071
- }
119072
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119073
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, isStandalone: true, name: "orderBy" }); }
119074
- }
119075
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, decorators: [{
119076
- type: Pipe,
119077
- args: [{ name: 'orderBy', standalone: true }]
119078
- }] });
119079
-
119080
- class OrphanFacilitiesPipe {
119081
- transform(facilityTreeDtos) {
119082
- const facilityIds = facilityTreeDtos.map(f => f.id);
119083
- const orphansFacilities = facilityTreeDtos.filter(ft => facilityIds.indexOf(ft.parent) < 0);
119084
- return orphansFacilities;
119085
- }
119086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119087
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, isStandalone: true, name: "OrphanFacilities" }); }
119088
- }
119089
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, decorators: [{
119090
- type: Pipe,
119091
- args: [{ name: 'OrphanFacilities', standalone: true }]
119092
- }] });
119093
-
119094
- class SmartparkDateTimePipe {
119095
- transform(seconds = 0) {
119096
- return parseSmartParkTime(seconds).toDate();
119097
- }
119098
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119099
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, isStandalone: true, name: "smartparkDatetime" }); }
119100
- }
119101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, decorators: [{
119102
- type: Pipe,
119103
- args: [{ name: 'smartparkDatetime', standalone: true }]
119104
- }] });
119105
-
119106
- var OrderBy;
119107
- (function (OrderBy) {
119108
- OrderBy[OrderBy["Ascending"] = 0] = "Ascending";
119109
- OrderBy[OrderBy["Descending"] = 1] = "Descending";
119110
- })(OrderBy || (OrderBy = {}));
119111
-
119112
- class SortPipe {
119113
- transform(array, key, orderBy = OrderBy.Descending, nestedSort = false) {
119114
- if (!array || !array.length) {
119115
- return [];
119116
- }
119117
- const keyType = typeof (array[0][key]);
119118
- // If there is a child property, sort it too
119119
- if (nestedSort) {
119120
- array = this.direction(array, orderBy, key, keyType);
119121
- // For each object item in the array
119122
- array.forEach((item) => {
119123
- // For each property in the object item, if its an array, sort it
119124
- const itemProperties = Object.keys(item);
119125
- itemProperties.forEach((property) => {
119126
- if (hasValue(item[property]) && Array.isArray(item[property])) {
119127
- item[property] = this.direction(item[property], orderBy, key, keyType);
119128
- }
119129
- });
119130
- });
119131
- return array;
119132
- }
119133
- // Sort only the parent
119134
- else {
119135
- switch (orderBy) {
119136
- case OrderBy.Ascending:
119137
- return this.direction(array, orderBy, key, keyType);
119138
- case OrderBy.Descending:
119139
- default:
119140
- return this.direction(array, orderBy, key, keyType);
119141
- }
119142
- }
119143
- }
119144
- direction(array, orderBy, key, keyType) {
119145
- switch (orderBy) {
119146
- case OrderBy.Ascending:
119147
- return [...array].sort((a, b) => this.sort(b, a, key, keyType));
119148
- case OrderBy.Descending:
119149
- default:
119150
- return [...array].sort((a, b) => this.sort(a, b, key, keyType));
119151
- }
119152
- }
119153
- sort(a, b, key, keyType) {
119154
- switch (keyType) {
119155
- case typeof ('string'):
119156
- return a[key].localeCompare(b[key], ENGLISH_LANGUAGE, { numeric: true });
119157
- case typeof ('number'):
119158
- default:
119159
- return a[key] - b[key];
119160
- }
119161
- }
119162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119163
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, isStandalone: true, name: "sort" }); }
119164
- }
119165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, decorators: [{
119166
- type: Pipe,
119167
- args: [{ name: 'sort', standalone: true }]
119168
- }] });
119169
-
119170
- class StringItPipe {
119171
- transform(value) {
119172
- return JSON.stringify(value);
119173
- }
119174
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119175
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, isStandalone: true, name: "stringIt" }); }
119176
- }
119177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, decorators: [{
119178
- type: Pipe,
119179
- args: [{ name: 'stringIt', standalone: true }]
119180
- }] });
119181
-
119182
- // SPRK3-15377: searchValue is raw user input, so every metacharacter must be escaped before it
119183
- // reaches new RegExp - one shared helper so the two pipes below cannot drift apart again.
119184
- function escapeForRegExp(searchValue) {
119185
- return searchValue.replace(/([-[\]{}()*+?.\\^$|#,])/g, '\\$1');
119186
- }
119187
- class SubstrHightlightPipe {
119188
- transform(value, searchValue, isLuckySearch, isLuckySearchField) {
119189
- if (!value) {
119190
- return "-";
119191
- }
119192
- if (isLuckySearch) {
119193
- if (isLuckySearchField) {
119194
- return new SubstrHightlightManyPipe().transform(value.toString(), searchValue);
119195
- }
119196
- else {
119197
- return value.toString();
119198
- }
119199
- }
119200
- else {
119201
- return new SubstrHightlightSinglePipe().transform(value.toString(), searchValue);
119202
- }
119203
- }
119204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119205
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, isStandalone: true, name: "substrHighlight" }); }
119206
- }
119207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, decorators: [{
119208
- type: Pipe,
119209
- args: [{ name: 'substrHighlight', standalone: true }]
119210
- }] });
119211
- class SubstrHightlightSinglePipe {
119212
- transform(value, searchValue) {
119213
- if (!searchValue) {
119214
- return value.toString();
119215
- }
119216
- const regexp = new RegExp(escapeForRegExp(searchValue), 'gi');
119217
- return value.toString().replace(regexp, `<span class="searched-text">$&</span>`);
119218
- }
119219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119220
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, name: "substrHighlightSingle" }); }
119221
- }
119222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, decorators: [{
119223
- type: Pipe,
119224
- args: [{ name: 'substrHighlightSingle' }]
119225
- }] });
119226
- class SubstrHightlightManyPipe {
119227
- transform(value, searchValue) {
119228
- if (!searchValue) {
119229
- return value.toString();
119230
- }
119231
- const regexp = new RegExp(`[${escapeForRegExp(searchValue)}]+`, 'gi');
119232
- return value.toString().replace(regexp, '<span class="searched-text">$&</span>');
119233
- }
119234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119235
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, name: "substrHighlightMany" }); }
119236
- }
119237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, decorators: [{
119238
- type: Pipe,
119239
- args: [{ name: 'substrHighlightMany' }]
119240
- }] });
119241
-
119242
- class TimeAgoPipe {
119243
- constructor(translate) {
119244
- this.translate = translate;
119245
- }
119246
- transform(value, args) {
119247
- const ago = this.translate.instant(Localization.ago);
119248
- const { second, seconds, minute, minutes } = args?.fullTranslation ?
119249
- { second: Localization.time_ago_second_full, seconds: Localization.time_ago_seconds_full, minute: Localization.time_ago_minute_full, minutes: Localization.time_ago_minutes_full } :
119250
- { second: Localization.time_ago_seconds, seconds: Localization.time_ago_minute, minute: Localization.time_ago_minute, minutes: Localization.time_ago_minutes };
119251
- if (value <= 59) // less than or equal 59 seconds ago will show as 'Just now'
119252
- return this.translate.instant(args?.timeAgo ? Localization.a_few_seconds_ago : Localization.time_ago_now);
119253
- const intervals = {
119254
- [this.translate.instant(Localization.time_ago_year)]: 31536000,
119255
- [this.translate.instant(Localization.time_ago_month)]: 2592000,
119256
- [this.translate.instant(Localization.time_ago_week)]: 604800,
119257
- [this.translate.instant(Localization.time_ago_day)]: 86400,
119258
- [this.translate.instant(Localization.time_ago_hour)]: 3600,
119259
- [this.translate.instant(minute)]: 60,
119260
- [this.translate.instant(second)]: 1
119261
- };
119262
- const plurals = {
119263
- [31536000]: this.translate.instant(Localization.time_ago_years),
119264
- [2592000]: this.translate.instant(Localization.time_ago_months),
119265
- [604800]: this.translate.instant(Localization.time_ago_weeks),
119266
- [86400]: this.translate.instant(Localization.time_ago_days),
119267
- [3600]: this.translate.instant(Localization.time_ago_hours),
119268
- [60]: this.translate.instant(minutes),
119269
- [1]: this.translate.instant(seconds)
119270
- };
119271
- let counter;
119272
- for (const i in intervals) {
119273
- counter = Math.floor(value / intervals[i]);
119274
- if (counter > 0) {
119275
- return `${counter}${args?.timeAgo ? ' ' : ''}${counter === 1 ? i : plurals[intervals[i]]} ${(args?.timeAgo ? ' ' + ago : '')}`;
119276
- }
119277
- }
119278
- }
119279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, deps: [{ token: i1$4.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
119280
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, isStandalone: true, name: "tbTimeAgo" }); }
119281
- }
119282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, decorators: [{
119283
- type: Pipe,
119284
- args: [{ name: 'tbTimeAgo', pure: true, standalone: true }]
119285
- }], ctorParameters: () => [{ type: i1$4.TranslateService }] });
119286
-
119287
- var TimeElapsedFormats;
119288
- (function (TimeElapsedFormats) {
119289
- TimeElapsedFormats["hhmmss"] = "hh:mm:ss";
119290
- TimeElapsedFormats["hhmm"] = "hh:mm";
119291
- })(TimeElapsedFormats || (TimeElapsedFormats = {}));
119292
-
119293
- class TimeElapsedPipe {
119294
- transform(seconds, format) {
119295
- if (seconds === null || seconds === undefined) {
119296
- return '-';
119297
- }
119298
- switch (format) {
119299
- case TimeElapsedFormats.hhmm:
119300
- return this.to_hhmm(seconds);
119301
- case TimeElapsedFormats.hhmmss:
119302
- default:
119303
- return this.to_hhmmss(seconds);
119304
- }
119305
- }
119306
- to_hhmm(totalSeconds) {
119307
- const hours = Math.floor(totalSeconds / 3600);
119308
- const minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
119309
- return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}`;
119310
- }
119311
- to_hhmmss(totalSeconds) {
119312
- const hours = Math.floor(totalSeconds / 3600);
119313
- const minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
119314
- let seconds = totalSeconds - (hours * 3600) - (minutes * 60);
119315
- seconds = Math.round(seconds * 100) / 100;
119316
- return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`;
119317
- }
119318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
119319
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, isStandalone: true, name: "timeElapsed" }); }
119320
- }
119321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, decorators: [{
119322
- type: Pipe,
119323
- args: [{ name: 'timeElapsed', pure: true, standalone: true }]
119324
- }] });
119325
-
119326
118479
  var AccessProfileTypesText;
119327
118480
  (function (AccessProfileTypesText) {
119328
118481
  AccessProfileTypesText["Standard"] = "access_profile_standard";
@@ -119851,6 +119004,264 @@ var ChartLayout;
119851
119004
  ChartLayout[ChartLayout["Large"] = 1] = "Large";
119852
119005
  })(ChartLayout || (ChartLayout = {}));
119853
119006
 
119007
+ const lowerCaseFirstLetter = (value) => value.charAt(0).toLocaleLowerCase() + value.slice(1);
119008
+ const capitalizeFirstLetter = (value) => value.charAt(0).toLocaleUpperCase() + value.slice(1);
119009
+ const lowerCase = (value) => value?.toString().toLowerCase();
119010
+ function camelize(str) {
119011
+ return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function (word, index) {
119012
+ return index === 0 ? word.toLowerCase() : word.toUpperCase();
119013
+ }).replace(/\s+/g, '');
119014
+ }
119015
+ function isCharacterLengthValid(str) {
119016
+ return str?.length >= 2 || str?.length === 0 || !str;
119017
+ }
119018
+ function areVersionsCompatible(version1, version2) {
119019
+ return geMajorAndMinorFromVersion(version1) === geMajorAndMinorFromVersion(version2);
119020
+ }
119021
+ function isDefinedAndNotEmpty(value) {
119022
+ return value !== null && value !== undefined && value !== '';
119023
+ }
119024
+ function geMajorAndMinorFromVersion(input) {
119025
+ let majorAndMinorVersion = '';
119026
+ var splittedVersion = input.split('.');
119027
+ if (splittedVersion?.length > 1) {
119028
+ majorAndMinorVersion = `${splittedVersion[0]}.${splittedVersion[1]}`;
119029
+ }
119030
+ return majorAndMinorVersion;
119031
+ }
119032
+ function printSpecialDaysText(translateService, specialDays) {
119033
+ const selectedDays = [];
119034
+ for (let index = 0; index < 5; index++) {
119035
+ const bitPosition = Math.pow(2, index);
119036
+ if ((specialDays & bitPosition) !== 0) {
119037
+ const translatedLabel = translateService.instant(Localization.special_day_acronym_i, { i: index + 1 });
119038
+ selectedDays.push(translatedLabel);
119039
+ }
119040
+ }
119041
+ return selectedDays.join(', ');
119042
+ }
119043
+ function getDaysFromValue(translateService, days, value) {
119044
+ return days.filter(day => (value & day.value) !== 0).map(day => translateService.instant(day.label));
119045
+ }
119046
+ function objectKeystoLowerCase(obj) {
119047
+ if (Array.isArray(obj)) {
119048
+ return obj.map(item => objectKeystoLowerCase(item));
119049
+ }
119050
+ if (obj !== null && typeof obj === 'object') {
119051
+ const normalized = {};
119052
+ for (const key of Object.keys(obj)) {
119053
+ normalized[key.toLowerCase()] = objectKeystoLowerCase(obj[key]);
119054
+ }
119055
+ return normalized;
119056
+ }
119057
+ return obj;
119058
+ }
119059
+ // Cuts on a character count, which CSS text-overflow cannot express — it cuts on width.
119060
+ function truncate(value, maxLength) {
119061
+ if (!value) {
119062
+ return '';
119063
+ }
119064
+ // Spread rather than slice so an astral character (emoji) is not split into a lone surrogate.
119065
+ const characters = [...value];
119066
+ if (maxLength === undefined || characters.length <= maxLength) {
119067
+ return value;
119068
+ }
119069
+ return `${characters.slice(0, maxLength).join('')}…`;
119070
+ }
119071
+ // Counts code points like truncate, so a caller deciding whether the text was cut agrees with it.
119072
+ function exceedsLength(value, maxLength) {
119073
+ if (!value || maxLength === undefined) {
119074
+ return false;
119075
+ }
119076
+ return [...value].length > maxLength;
119077
+ }
119078
+
119079
+ // Gets an object of type<T>
119080
+ // Gets an array of keys to ignore
119081
+ // Returns a new object without the omitted keys
119082
+ function omitKeys(obj, keys) {
119083
+ var dup = {};
119084
+ for (var key in obj) {
119085
+ if (keys.indexOf(key) == -1) {
119086
+ dup[key] = obj[key];
119087
+ }
119088
+ }
119089
+ return dup;
119090
+ }
119091
+ function numberWithLeadingZero(num) {
119092
+ if (num !== null && num <= 9) {
119093
+ num = (`0${num}`).slice(-10);
119094
+ }
119095
+ return num;
119096
+ }
119097
+ async function delayCancellation(time, subject) {
119098
+ // create a subscription to use with your promise
119099
+ const subscription = new Subscription();
119100
+ const promise = new Promise(resolve => {
119101
+ const id = setTimeout(resolve, time);
119102
+ // add teardown logic to the subscription
119103
+ subscription.add(() => {
119104
+ clearTimeout(id);
119105
+ resolve(null);
119106
+ });
119107
+ });
119108
+ const subSubject = subject.subscribe(cancelSubscription => {
119109
+ if (cancelSubscription) {
119110
+ // call unsubscribe to cancel
119111
+ subscription.unsubscribe();
119112
+ }
119113
+ });
119114
+ // use the promise invoke the dealy
119115
+ await promise;
119116
+ subSubject.unsubscribe();
119117
+ }
119118
+ function replaceAll(str, find, replace) {
119119
+ return str.replace(new RegExp(find, 'g'), replace);
119120
+ }
119121
+ var RowOperation;
119122
+ (function (RowOperation) {
119123
+ RowOperation[RowOperation["Insert"] = 0] = "Insert";
119124
+ RowOperation[RowOperation["Update"] = 1] = "Update";
119125
+ RowOperation[RowOperation["Delete"] = 2] = "Delete";
119126
+ RowOperation[RowOperation["None"] = 3] = "None";
119127
+ RowOperation[RowOperation["InsertToParent"] = 4] = "InsertToParent";
119128
+ RowOperation[RowOperation["Updating"] = 5] = "Updating";
119129
+ })(RowOperation || (RowOperation = {}));
119130
+ function markEntityAsUnchanged(entity) {
119131
+ return omitKeys(entity, ['expanded', 'expanding', 'changed', 'rowOperation', 'findRowIndex']);
119132
+ }
119133
+ function markEntitiesAsChanged(entities, rowOperation = RowOperation.None, findRowIndex) {
119134
+ if ((rowOperation === RowOperation.Update || rowOperation === RowOperation.Delete) && !findRowIndex) {
119135
+ findRowIndex = (entity, entities) => entities.findIndex(e => e.id === entity.id);
119136
+ }
119137
+ flagEntity(entities, true, rowOperation, findRowIndex);
119138
+ //solution for unmarked previoues rows
119139
+ setTimeout(() => flagEntity(entities, false, RowOperation.None), 1000);
119140
+ }
119141
+ function flagEntity(entities, flag, rowOperation, findRowIndex) {
119142
+ entities.forEach(entity => {
119143
+ entity.changed = flag;
119144
+ entity.rowOperation = rowOperation ?? entity.rowOperation;
119145
+ entity.findRowIndex = findRowIndex || ((entity, entities) => null);
119146
+ });
119147
+ }
119148
+ ;
119149
+ function getAddress(city, street) {
119150
+ let address = null;
119151
+ if (city && street) {
119152
+ address = `${street}, ${city}`;
119153
+ }
119154
+ else if (city) {
119155
+ address = city;
119156
+ }
119157
+ else if (street) {
119158
+ address = street;
119159
+ }
119160
+ return address;
119161
+ }
119162
+ const baseReduce = (obj, propertyName) => {
119163
+ return obj[propertyName];
119164
+ };
119165
+ const filterKeyValueBaseReduce = (obj, _) => obj.value;
119166
+ function* flattenByKey(array, nestedKey, depth = 1) {
119167
+ for (const item of array) {
119168
+ if (item[nestedKey] && Array.isArray(item[nestedKey]) && depth > 0) {
119169
+ yield* flattenByKey(item[nestedKey], nestedKey, depth - 1);
119170
+ }
119171
+ else {
119172
+ yield item;
119173
+ }
119174
+ }
119175
+ }
119176
+ function isIOSDevice() {
119177
+ var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
119178
+ var isAppleDevice = navigator.userAgent.includes('Macintosh');
119179
+ var isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)
119180
+ return isIOS || (isAppleDevice && (isTouchScreen || iOS1to12quirk()));
119181
+ }
119182
+ function iOS1to12quirk() {
119183
+ var audio = new Audio(); // temporary Audio object
119184
+ audio.volume = 0.5; // has no effect on iOS <= 12
119185
+ return audio.volume === 1;
119186
+ }
119187
+ function sleep(milliseconds) {
119188
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
119189
+ }
119190
+ function isObjectEmpty(obj) {
119191
+ return Object.keys(obj).length === 0;
119192
+ }
119193
+ function isTrueInBinary(decimalValue, bitPosition) {
119194
+ return (decimalValue & bitPosition) !== 0;
119195
+ }
119196
+ function convertBinaryToDecimal(binaryString) {
119197
+ // Use parseInt function to convert binary string to decimal number
119198
+ return parseInt(binaryString, 2);
119199
+ }
119200
+ function convertDecimalToBinary(decimalNumber) {
119201
+ // Use toString(2) function to convert decimal number to binary string
119202
+ return decimalNumber == null || isNaN(decimalNumber) ? '' : decimalNumber.toString(2);
119203
+ }
119204
+ function distinctObjectByProperty(arr, prop) {
119205
+ const map = new Map();
119206
+ arr.forEach(item => {
119207
+ const key = item[prop];
119208
+ if (!map.has(key)) {
119209
+ map.set(key, item);
119210
+ }
119211
+ });
119212
+ return Array.from(map.values());
119213
+ }
119214
+ function distinctObjectByProperties(arr, ...props) {
119215
+ const map = new Map();
119216
+ arr.forEach(item => {
119217
+ const key = props.map(prop => item[prop]).join('_');
119218
+ if (!map.has(key)) {
119219
+ map.set(key, item);
119220
+ }
119221
+ });
119222
+ return Array.from(map.values());
119223
+ }
119224
+ function isSearchFieldChanged(prev, curr) {
119225
+ const isFieldSelectorChanged = prev.searchFieldSelector !== curr.searchFieldSelector && curr.searchValue;
119226
+ const isSearchValueChanged = prev.searchValue !== curr.searchValue;
119227
+ return (isFieldSelectorChanged || isSearchValueChanged) && isCharacterLengthValid(curr.searchValue);
119228
+ }
119229
+ function openBackgroundIframe(url, timeoutMs = 60000) {
119230
+ // Create an invisible iframe
119231
+ const iframe = document.createElement('iframe');
119232
+ iframe.style.width = '0';
119233
+ iframe.style.height = '0';
119234
+ iframe.style.border = 'none';
119235
+ iframe.style.position = 'absolute';
119236
+ iframe.src = url;
119237
+ document.body.appendChild(iframe);
119238
+ // Remove the iframe after the specified timeout
119239
+ setTimeout(() => {
119240
+ iframe.remove();
119241
+ }, timeoutMs);
119242
+ }
119243
+ function findObjectDifferences(obj1, obj2) {
119244
+ const differencesMessages = [];
119245
+ const allKeys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);
119246
+ for (const key of allKeys) {
119247
+ const value1 = obj1[key] ?? undefined;
119248
+ const value2 = obj2[key] ?? undefined;
119249
+ if (!areEqual(value1, value2)) {
119250
+ differencesMessages.push(`Property "${key}" is different: ${JSON.stringify(value1)} vs ${JSON.stringify(value2)}`);
119251
+ }
119252
+ }
119253
+ return differencesMessages;
119254
+ }
119255
+ function areEqual(a, b) {
119256
+ if (Array.isArray(a) && Array.isArray(b)) {
119257
+ return a.length === b.length && a.every((val, index) => val === b[index]);
119258
+ }
119259
+ return a === b;
119260
+ }
119261
+ function nameof(key) {
119262
+ return key;
119263
+ }
119264
+
119854
119265
  // This data structure is ordered by the translated value ASC
119855
119266
  const CoreEntities = [
119856
119267
  {
@@ -119978,6 +119389,8 @@ const CoreEntities = [
119978
119389
  { key: 'M_Category', value: 'category' },
119979
119390
  { key: 'M_Groups', value: 'group' },
119980
119391
  { key: 'M_JobTitle', value: 'job_title' },
119392
+ { key: 'T_VValidation', value: 'validation' },
119393
+ { key: 'OfflineVendorPaymentPublishedEntity', value: 'offline_payment' },
119981
119394
  ];
119982
119395
  const FlattenedCoreEntities = [...flattenByKey(CoreEntities, 'children')].reduce((allEntities, ce) => {
119983
119396
  allEntities.set(ce.key, ce.value);
@@ -121157,6 +120570,12 @@ var FacilityRemoteCommandTypesIcon;
121157
120570
  FacilityRemoteCommandTypesIcon["DynamicPricingCondition"] = "cog-white";
121158
120571
  })(FacilityRemoteCommandTypesIcon || (FacilityRemoteCommandTypesIcon = {}));
121159
120572
 
120573
+ var Operator;
120574
+ (function (Operator) {
120575
+ Operator[Operator["Equal"] = 0] = "Equal";
120576
+ Operator[Operator["Contain"] = 1] = "Contain";
120577
+ })(Operator || (Operator = {}));
120578
+
121160
120579
  var GuestTypeCastText;
121161
120580
  (function (GuestTypeCastText) {
121162
120581
  GuestTypeCastText["NoneGuest"] = "NoneGuest";
@@ -121297,6 +120716,18 @@ var ImportMonthyStastusFieldSelectorText;
121297
120716
  ImportMonthyStastusFieldSelectorText["Failed"] = "failed";
121298
120717
  })(ImportMonthyStastusFieldSelectorText || (ImportMonthyStastusFieldSelectorText = {}));
121299
120718
 
120719
+ var OrderBy;
120720
+ (function (OrderBy) {
120721
+ OrderBy[OrderBy["Ascending"] = 0] = "Ascending";
120722
+ OrderBy[OrderBy["Descending"] = 1] = "Descending";
120723
+ })(OrderBy || (OrderBy = {}));
120724
+
120725
+ var OrderDirection;
120726
+ (function (OrderDirection) {
120727
+ OrderDirection[OrderDirection["Ascending"] = 0] = "Ascending";
120728
+ OrderDirection[OrderDirection["Descending"] = 1] = "Descending";
120729
+ })(OrderDirection || (OrderDirection = {}));
120730
+
121300
120731
  var ParkerTypesText;
121301
120732
  (function (ParkerTypesText) {
121302
120733
  ParkerTypesText["Transient"] = "transient";
@@ -121871,6 +121302,12 @@ var TibaDateFormat;
121871
121302
  TibaDateFormat[TibaDateFormat["secondary"] = 2] = "secondary";
121872
121303
  })(TibaDateFormat || (TibaDateFormat = {}));
121873
121304
 
121305
+ var TimeElapsedFormats;
121306
+ (function (TimeElapsedFormats) {
121307
+ TimeElapsedFormats["hhmmss"] = "hh:mm:ss";
121308
+ TimeElapsedFormats["hhmm"] = "hh:mm";
121309
+ })(TimeElapsedFormats || (TimeElapsedFormats = {}));
121310
+
121874
121311
  var TimeRangeFormats;
121875
121312
  (function (TimeRangeFormats) {
121876
121313
  TimeRangeFormats[TimeRangeFormats["H12"] = 1] = "H12";
@@ -121929,6 +121366,615 @@ var VirtualValidationStatusText;
121929
121366
 
121930
121367
  // Enums
121931
121368
 
121369
+ class ToastService {
121370
+ constructor() {
121371
+ this._toasts = signal([]);
121372
+ this.toasts = this._toasts.asReadonly();
121373
+ this.seq = 0;
121374
+ }
121375
+ show(toast) {
121376
+ const existing = this._toasts().find((t) => t.text === toast.text);
121377
+ if (existing)
121378
+ return existing.id;
121379
+ const id = `toast-${++this.seq}`;
121380
+ this._toasts.update((list) => [...list, { ...toast, id }]);
121381
+ return id;
121382
+ }
121383
+ dismiss(id) {
121384
+ this._toasts.update((list) => list.filter((t) => t.id !== id));
121385
+ }
121386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
121387
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, providedIn: 'root' }); }
121388
+ }
121389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, decorators: [{
121390
+ type: Injectable,
121391
+ args: [{ providedIn: 'root' }]
121392
+ }] });
121393
+
121394
+ class ToastHostComponent {
121395
+ constructor() {
121396
+ this.toastService = inject(ToastService);
121397
+ this.Localization = Localization;
121398
+ }
121399
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastHostComponent, isStandalone: true, selector: "tb-toast-host", ngImport: i0, template: "<div class=\"toast-host\" role=\"status\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toastService.toasts(); track toast.id) {\n <div class=\"toast\" data-qa=\"toast\">\n <span class=\"toast__text\">{{ toast.text | translate }}</span>\n @if (toast.action) {\n <button\n class=\"toast__action\"\n type=\"button\"\n (click)=\"toast.action.run()\"\n >\n {{ toast.action.label | translate }}\n </button>\n }\n @if (toast.dismissible) {\n <button\n class=\"toast__dismiss\"\n type=\"button\"\n [attr.aria-label]=\"Localization.close | translate\"\n (click)=\"toastService.dismiss(toast.id)\"\n >\n &times;\n </button>\n }\n </div>\n }\n</div>\n", styles: [".toast-host{position:fixed;inset-block-end:20px;inset-inline-end:20px;display:flex;flex-direction:column;gap:8px;z-index:1001;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid #dee2e6;border-radius:7px;box-shadow:0 8px 16px #0000001a,0 24px 64px #0000004d;font-size:13px;color:#2c3e50;pointer-events:auto;animation:toast-in .16s cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.toast__text{flex:1}.toast__action,.toast__dismiss{background:none;border:none;padding:0;font:inherit;cursor:pointer}.toast__action:focus-visible,.toast__dismiss:focus-visible{outline:2px solid #0985eb;outline-offset:2px;border-radius:2px}.toast__action{font-weight:600;color:#1e6ccb;white-space:nowrap}.toast__action:hover{color:#185eb2}.toast__dismiss{font-size:18px;line-height:1;color:#2c3e50;flex-shrink:0}.toast__dismiss:hover{color:#1e6ccb}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121401
+ }
121402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastHostComponent, decorators: [{
121403
+ type: Component,
121404
+ args: [{ selector: 'tb-toast-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TranslatePipe], template: "<div class=\"toast-host\" role=\"status\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toastService.toasts(); track toast.id) {\n <div class=\"toast\" data-qa=\"toast\">\n <span class=\"toast__text\">{{ toast.text | translate }}</span>\n @if (toast.action) {\n <button\n class=\"toast__action\"\n type=\"button\"\n (click)=\"toast.action.run()\"\n >\n {{ toast.action.label | translate }}\n </button>\n }\n @if (toast.dismissible) {\n <button\n class=\"toast__dismiss\"\n type=\"button\"\n [attr.aria-label]=\"Localization.close | translate\"\n (click)=\"toastService.dismiss(toast.id)\"\n >\n &times;\n </button>\n }\n </div>\n }\n</div>\n", styles: [".toast-host{position:fixed;inset-block-end:20px;inset-inline-end:20px;display:flex;flex-direction:column;gap:8px;z-index:1001;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid #dee2e6;border-radius:7px;box-shadow:0 8px 16px #0000001a,0 24px 64px #0000004d;font-size:13px;color:#2c3e50;pointer-events:auto;animation:toast-in .16s cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.toast__text{flex:1}.toast__action,.toast__dismiss{background:none;border:none;padding:0;font:inherit;cursor:pointer}.toast__action:focus-visible,.toast__dismiss:focus-visible{outline:2px solid #0985eb;outline-offset:2px;border-radius:2px}.toast__action{font-weight:600;color:#1e6ccb;white-space:nowrap}.toast__action:hover{color:#185eb2}.toast__dismiss{font-size:18px;line-height:1;color:#2c3e50;flex-shrink:0}.toast__dismiss:hover{color:#1e6ccb}\n"] }]
121405
+ }] });
121406
+
121407
+ class SharedComponentsModule {
121408
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
121409
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, imports: [CommonModule,
121410
+ LocalizationModule,
121411
+ SharedDirectivesModule,
121412
+ FormValidationsComponent,
121413
+ FieldLabelComponent,
121414
+ FieldValidationsComponent,
121415
+ ToastHostComponent], exports: [CommonModule,
121416
+ LocalizationModule,
121417
+ FieldLabelComponent,
121418
+ FieldValidationsComponent,
121419
+ FormValidationsComponent,
121420
+ ToastHostComponent] }); }
121421
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, imports: [CommonModule,
121422
+ LocalizationModule,
121423
+ SharedDirectivesModule,
121424
+ FormValidationsComponent,
121425
+ FieldLabelComponent,
121426
+ FieldValidationsComponent, CommonModule,
121427
+ LocalizationModule] }); }
121428
+ }
121429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SharedComponentsModule, decorators: [{
121430
+ type: NgModule,
121431
+ args: [{
121432
+ declarations: [],
121433
+ imports: [
121434
+ CommonModule,
121435
+ LocalizationModule,
121436
+ SharedDirectivesModule,
121437
+ FormValidationsComponent,
121438
+ FieldLabelComponent,
121439
+ FieldValidationsComponent,
121440
+ ToastHostComponent,
121441
+ ],
121442
+ exports: [
121443
+ CommonModule,
121444
+ LocalizationModule,
121445
+ FieldLabelComponent,
121446
+ FieldValidationsComponent,
121447
+ FormValidationsComponent,
121448
+ ToastHostComponent,
121449
+ ]
121450
+ }]
121451
+ }] });
121452
+
121453
+ class CLogItPipe {
121454
+ transform(value) {
121455
+ console.debug(value);
121456
+ }
121457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121458
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, isStandalone: true, name: "cLogIt" }); }
121459
+ }
121460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CLogItPipe, decorators: [{
121461
+ type: Pipe,
121462
+ args: [{ name: 'cLogIt', standalone: true }]
121463
+ }] });
121464
+
121465
+ const convertCentToWholeCoin = (cent) => +cent >= 0 ? cent / 100 : null;
121466
+ const convertWholeCoinToCent = (wholeCoin) => +wholeCoin >= 0 ? +(wholeCoin * 100).toFixed(2) : null;
121467
+
121468
+ class CentToCoinPipe {
121469
+ transform(value = 0) {
121470
+ const coinValue = parseFloat((convertCentToWholeCoin(value) ?? 0).toFixed(2));
121471
+ const formatter = new Intl.NumberFormat('en-US', {
121472
+ minimumFractionDigits: 2,
121473
+ maximumFractionDigits: 2
121474
+ });
121475
+ return formatter.format(coinValue);
121476
+ }
121477
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121478
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, isStandalone: true, name: "centToCoin" }); }
121479
+ }
121480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CentToCoinPipe, decorators: [{
121481
+ type: Pipe,
121482
+ args: [{ name: 'centToCoin', standalone: true }]
121483
+ }] });
121484
+
121485
+ class CurlyToBoldPipe {
121486
+ transform(value) {
121487
+ return value.replace(/{([^{]*)}/g, '<strong>$1</strong>');
121488
+ }
121489
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121490
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, isStandalone: true, name: "curlyToBold" }); }
121491
+ }
121492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurlyToBoldPipe, decorators: [{
121493
+ type: Pipe,
121494
+ args: [{ name: 'curlyToBold', standalone: true }]
121495
+ }] });
121496
+
121497
+ class DecimalToAmountPipe {
121498
+ // Gets a number and returns the number formatted
121499
+ // example: 1000 -> 1,000, 200 -> 200 etc. WITHOUT FLOATING NUMBERS
121500
+ transform(value = 0) {
121501
+ const formatter = new Intl.NumberFormat('en-US', {
121502
+ maximumFractionDigits: 0
121503
+ });
121504
+ return formatter.format(value);
121505
+ }
121506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121507
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, isStandalone: true, name: "decimalToAmount" }); }
121508
+ }
121509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToAmountPipe, decorators: [{
121510
+ type: Pipe,
121511
+ args: [{ name: 'decimalToAmount', standalone: true }]
121512
+ }] });
121513
+
121514
+ class DecimalToCurrencyPipe {
121515
+ // Gets a number and returns the number formatted
121516
+ // example: 1000 -> 1,000.00, 200 -> 200.00 etc.
121517
+ transform(value = 0, fractionDigits = 2) {
121518
+ const formatter = new Intl.NumberFormat('en-US', {
121519
+ minimumFractionDigits: fractionDigits,
121520
+ maximumFractionDigits: fractionDigits
121521
+ });
121522
+ return formatter.format(value);
121523
+ }
121524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121525
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, isStandalone: true, name: "decimalToCurrency" }); }
121526
+ }
121527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DecimalToCurrencyPipe, decorators: [{
121528
+ type: Pipe,
121529
+ args: [{ name: 'decimalToCurrency', standalone: true }]
121530
+ }] });
121531
+
121532
+ class EnumsToArrayPipe {
121533
+ transform(value) {
121534
+ return Object.keys(value).filter(e => !isNaN(+e)).map(o => { return { index: +o, name: value[o] }; });
121535
+ }
121536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121537
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, isStandalone: true, name: "enumsToArray" }); }
121538
+ }
121539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EnumsToArrayPipe, decorators: [{
121540
+ type: Pipe,
121541
+ args: [{ name: 'enumsToArray', standalone: true }]
121542
+ }] });
121543
+
121544
+ //////////////////////////////////////////////////////////////////////////////////////////////////
121545
+ // filter keys pipe return new array filtered by each property name value by the search value key
121546
+ // - there are two operator ways to filter by contain or equal
121547
+ // - reduce method return the property value of a given property name
121548
+ // - when subGroupPropertyName exists there is another test to filter each property name value
121549
+ // inside the group property of this value
121550
+ // - filter logic:
121551
+ // * filter if at least one sub groups pass the test will return the group with all its sub groups
121552
+ //////////////////////////////////////////////////////////////////////////////////////////////////
121553
+ class FilterKeysPipe {
121554
+ constructor() {
121555
+ this.isAtLeastOneElementInTheArray = (obj, subGroupPropertyName, propertyName, searchValue, operator, reduce) => {
121556
+ if (!subGroupPropertyName) {
121557
+ return false;
121558
+ }
121559
+ const subGroups = baseReduce(obj, subGroupPropertyName);
121560
+ const getObjValueByPropertyName = (obj) => lowerCase(reduce(obj, propertyName));
121561
+ switch (operator) {
121562
+ case Operator.Contain:
121563
+ return subGroups?.some((obj) => getObjValueByPropertyName(obj)?.includes(searchValue));
121564
+ case Operator.Equal:
121565
+ default:
121566
+ return subGroups?.some((obj) => getObjValueByPropertyName(obj) === searchValue);
121567
+ }
121568
+ };
121569
+ }
121570
+ transform(array, propertyNames, searchValue, operator = Operator.Contain, reduce = baseReduce, subGroupPropertyName = null) {
121571
+ if (!array || !array.length) {
121572
+ return [];
121573
+ }
121574
+ if (!searchValue) {
121575
+ return array;
121576
+ }
121577
+ let filteredList = [];
121578
+ propertyNames.forEach((propertyName) => filteredList =
121579
+ filteredList.concat(this.getFilteredList(array, propertyName, subGroupPropertyName, operator, lowerCase(searchValue), reduce)));
121580
+ return [...new Set(filteredList)];
121581
+ }
121582
+ getFilteredList(array, propertyName, subGroupPropertyName, operator, searchValue, reduce) {
121583
+ let filteredList = [];
121584
+ // filter the groups of the array that pass the test
121585
+ filteredList = filteredList.concat(this.filterPropertyNameBySearchValue(array, propertyName, operator, searchValue, reduce));
121586
+ // filter the sub groups of the array
121587
+ // if at least one sub group pass the test all the sub groups of the group will return
121588
+ filteredList = filteredList.concat(this.filterGroupBySubGroup(array, propertyName, subGroupPropertyName, operator, searchValue, reduce));
121589
+ return filteredList;
121590
+ }
121591
+ filterPropertyNameBySearchValue(array, propertyName, operator, searchValue, reduce) {
121592
+ const compare = operator === Operator.Contain ?
121593
+ (val) => lowerCase(val).includes(searchValue) :
121594
+ (val) => lowerCase(val) === searchValue;
121595
+ return array.filter(obj => {
121596
+ let isMatch = false;
121597
+ const value = reduce(obj, propertyName);
121598
+ if (value) {
121599
+ isMatch = Array.isArray(value) ? value.some(compare) : compare(value);
121600
+ }
121601
+ return isMatch;
121602
+ });
121603
+ }
121604
+ filterGroupBySubGroup(array, propertyName, subGroupPropertyName, operator, searchValue, reduce) {
121605
+ if (!subGroupPropertyName) {
121606
+ return [];
121607
+ }
121608
+ return array?.filter(obj => this.isAtLeastOneElementInTheArray(obj, subGroupPropertyName, propertyName, searchValue, operator, reduce));
121609
+ }
121610
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121611
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, isStandalone: true, name: "filterKeys" }); }
121612
+ }
121613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterKeysPipe, decorators: [{
121614
+ type: Pipe,
121615
+ args: [{ name: 'filterKeys', standalone: true }]
121616
+ }] });
121617
+
121618
+ class FilterNumbersPipe {
121619
+ transform(array, fieldName) {
121620
+ if (!array || !array.length) {
121621
+ return [];
121622
+ }
121623
+ return array.filter(obj => !isNaN(+obj[fieldName]));
121624
+ }
121625
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121626
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, isStandalone: true, name: "filterNumbers" }); }
121627
+ }
121628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterNumbersPipe, decorators: [{
121629
+ type: Pipe,
121630
+ args: [{ name: 'filterNumbers', standalone: true }]
121631
+ }] });
121632
+
121633
+ class FilterPipe {
121634
+ transform(array, fieldName, fieldValue, operator = Operator.Equal) {
121635
+ if (!array || !array.length) {
121636
+ return [];
121637
+ }
121638
+ if (!fieldValue || !fieldValue.length) {
121639
+ return array;
121640
+ }
121641
+ if (operator == Operator.Contain) {
121642
+ return array.filter(obj => obj[fieldName].toString().includes(fieldValue.toString()));
121643
+ }
121644
+ return array.filter(obj => obj[fieldName].toString() === fieldValue.toString());
121645
+ }
121646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121647
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, isStandalone: true, name: "filter" }); }
121648
+ }
121649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterPipe, decorators: [{
121650
+ type: Pipe,
121651
+ args: [{ name: 'filter', standalone: true }]
121652
+ }] });
121653
+
121654
+ class TBFormatPipe {
121655
+ transform(value, formatter) {
121656
+ return formatter ? formatter(value) : value;
121657
+ }
121658
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121659
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, isStandalone: true, name: "tbFormat" }); }
121660
+ }
121661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TBFormatPipe, decorators: [{
121662
+ type: Pipe,
121663
+ args: [{ name: 'tbFormat', standalone: true }]
121664
+ }] });
121665
+
121666
+ class GroupPermissionsPipe {
121667
+ transform(permissions) {
121668
+ const groupPermissions = [];
121669
+ for (const permission of permissions?.filter(p => !p['hide'])) {
121670
+ if (permission.group === PermissionGroup$1.None) {
121671
+ groupPermissions.push(permission);
121672
+ }
121673
+ else {
121674
+ const groupIndex = groupPermissions.findIndex((groupPermissions) => groupPermissions.id === permission.group);
121675
+ if (groupIndex === -1) {
121676
+ const groupPermission = {
121677
+ id: permission.group,
121678
+ permissions: [permission]
121679
+ };
121680
+ groupPermissions.push(groupPermission);
121681
+ }
121682
+ else {
121683
+ groupPermissions[groupIndex].permissions.push(permission);
121684
+ }
121685
+ }
121686
+ }
121687
+ return groupPermissions;
121688
+ }
121689
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121690
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, isStandalone: true, name: "groupPermissions" }); }
121691
+ }
121692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPermissionsPipe, decorators: [{
121693
+ type: Pipe,
121694
+ args: [{ name: 'groupPermissions', standalone: true }]
121695
+ }] });
121696
+
121697
+ /**
121698
+ * Transforms a string by replacing all underscores with spaces.
121699
+ *
121700
+ * @param value - The input string that may contain underscores.
121701
+ * @returns The transformed string with underscores replaced by spaces.
121702
+ * Split the string whenever an uppercase letter starts
121703
+ * Returns an empty string if the input is null, undefined, or empty.
121704
+ */
121705
+ class HumanizePipe {
121706
+ transform(value) {
121707
+ if (!value) {
121708
+ return '';
121709
+ }
121710
+ return value.split(/(?=[A-Z])/).join(' ').replace(/_/g, ' ');
121711
+ }
121712
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121713
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, isStandalone: true, name: "humanizePipe" }); }
121714
+ }
121715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HumanizePipe, decorators: [{
121716
+ type: Pipe,
121717
+ args: [{ name: 'humanizePipe', standalone: true }]
121718
+ }] });
121719
+
121720
+ class OrderByPipe {
121721
+ transform(array, orderDirection = OrderDirection.Ascending) {
121722
+ if (!array || !array.length) {
121723
+ return [];
121724
+ }
121725
+ if (array.length <= 1) {
121726
+ return array;
121727
+ }
121728
+ switch (orderDirection) {
121729
+ case OrderDirection.Descending:
121730
+ return array.sort().reverse();
121731
+ case OrderDirection.Ascending:
121732
+ default:
121733
+ return array.sort();
121734
+ }
121735
+ }
121736
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121737
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, isStandalone: true, name: "orderBy" }); }
121738
+ }
121739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderByPipe, decorators: [{
121740
+ type: Pipe,
121741
+ args: [{ name: 'orderBy', standalone: true }]
121742
+ }] });
121743
+
121744
+ class OrphanFacilitiesPipe {
121745
+ transform(facilityTreeDtos) {
121746
+ const facilityIds = facilityTreeDtos.map(f => f.id);
121747
+ const orphansFacilities = facilityTreeDtos.filter(ft => facilityIds.indexOf(ft.parent) < 0);
121748
+ return orphansFacilities;
121749
+ }
121750
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121751
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, isStandalone: true, name: "OrphanFacilities" }); }
121752
+ }
121753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrphanFacilitiesPipe, decorators: [{
121754
+ type: Pipe,
121755
+ args: [{ name: 'OrphanFacilities', standalone: true }]
121756
+ }] });
121757
+
121758
+ class SmartparkDateTimePipe {
121759
+ transform(seconds = 0) {
121760
+ return parseSmartParkTime(seconds).toDate();
121761
+ }
121762
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121763
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, isStandalone: true, name: "smartparkDatetime" }); }
121764
+ }
121765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SmartparkDateTimePipe, decorators: [{
121766
+ type: Pipe,
121767
+ args: [{ name: 'smartparkDatetime', standalone: true }]
121768
+ }] });
121769
+
121770
+ class SortPipe {
121771
+ transform(array, key, orderBy = OrderBy.Descending, nestedSort = false) {
121772
+ if (!array || !array.length) {
121773
+ return [];
121774
+ }
121775
+ const keyType = typeof (array[0][key]);
121776
+ // If there is a child property, sort it too
121777
+ if (nestedSort) {
121778
+ array = this.direction(array, orderBy, key, keyType);
121779
+ // For each object item in the array
121780
+ array.forEach((item) => {
121781
+ // For each property in the object item, if its an array, sort it
121782
+ const itemProperties = Object.keys(item);
121783
+ itemProperties.forEach((property) => {
121784
+ if (hasValue(item[property]) && Array.isArray(item[property])) {
121785
+ item[property] = this.direction(item[property], orderBy, key, keyType);
121786
+ }
121787
+ });
121788
+ });
121789
+ return array;
121790
+ }
121791
+ // Sort only the parent
121792
+ else {
121793
+ switch (orderBy) {
121794
+ case OrderBy.Ascending:
121795
+ return this.direction(array, orderBy, key, keyType);
121796
+ case OrderBy.Descending:
121797
+ default:
121798
+ return this.direction(array, orderBy, key, keyType);
121799
+ }
121800
+ }
121801
+ }
121802
+ direction(array, orderBy, key, keyType) {
121803
+ switch (orderBy) {
121804
+ case OrderBy.Ascending:
121805
+ return [...array].sort((a, b) => this.sort(b, a, key, keyType));
121806
+ case OrderBy.Descending:
121807
+ default:
121808
+ return [...array].sort((a, b) => this.sort(a, b, key, keyType));
121809
+ }
121810
+ }
121811
+ sort(a, b, key, keyType) {
121812
+ switch (keyType) {
121813
+ case typeof ('string'):
121814
+ return a[key].localeCompare(b[key], ENGLISH_LANGUAGE, { numeric: true });
121815
+ case typeof ('number'):
121816
+ default:
121817
+ return a[key] - b[key];
121818
+ }
121819
+ }
121820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121821
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, isStandalone: true, name: "sort" }); }
121822
+ }
121823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SortPipe, decorators: [{
121824
+ type: Pipe,
121825
+ args: [{ name: 'sort', standalone: true }]
121826
+ }] });
121827
+
121828
+ class StringItPipe {
121829
+ transform(value) {
121830
+ return JSON.stringify(value);
121831
+ }
121832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121833
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, isStandalone: true, name: "stringIt" }); }
121834
+ }
121835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringItPipe, decorators: [{
121836
+ type: Pipe,
121837
+ args: [{ name: 'stringIt', standalone: true }]
121838
+ }] });
121839
+
121840
+ // SPRK3-15377: searchValue is raw user input, so every metacharacter must be escaped before it
121841
+ // reaches new RegExp - one shared helper so the two pipes below cannot drift apart again.
121842
+ function escapeForRegExp(searchValue) {
121843
+ return searchValue.replace(/([-[\]{}()*+?.\\^$|#,])/g, '\\$1');
121844
+ }
121845
+ class SubstrHightlightPipe {
121846
+ transform(value, searchValue, isLuckySearch, isLuckySearchField) {
121847
+ if (!value) {
121848
+ return "-";
121849
+ }
121850
+ if (isLuckySearch) {
121851
+ if (isLuckySearchField) {
121852
+ return new SubstrHightlightManyPipe().transform(value.toString(), searchValue);
121853
+ }
121854
+ else {
121855
+ return value.toString();
121856
+ }
121857
+ }
121858
+ else {
121859
+ return new SubstrHightlightSinglePipe().transform(value.toString(), searchValue);
121860
+ }
121861
+ }
121862
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121863
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, isStandalone: true, name: "substrHighlight" }); }
121864
+ }
121865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightPipe, decorators: [{
121866
+ type: Pipe,
121867
+ args: [{ name: 'substrHighlight', standalone: true }]
121868
+ }] });
121869
+ class SubstrHightlightSinglePipe {
121870
+ transform(value, searchValue) {
121871
+ if (!searchValue) {
121872
+ return value.toString();
121873
+ }
121874
+ const regexp = new RegExp(escapeForRegExp(searchValue), 'gi');
121875
+ return value.toString().replace(regexp, `<span class="searched-text">$&</span>`);
121876
+ }
121877
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121878
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, name: "substrHighlightSingle" }); }
121879
+ }
121880
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightSinglePipe, decorators: [{
121881
+ type: Pipe,
121882
+ args: [{ name: 'substrHighlightSingle' }]
121883
+ }] });
121884
+ class SubstrHightlightManyPipe {
121885
+ transform(value, searchValue) {
121886
+ if (!searchValue) {
121887
+ return value.toString();
121888
+ }
121889
+ const regexp = new RegExp(`[${escapeForRegExp(searchValue)}]+`, 'gi');
121890
+ return value.toString().replace(regexp, '<span class="searched-text">$&</span>');
121891
+ }
121892
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121893
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, name: "substrHighlightMany" }); }
121894
+ }
121895
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubstrHightlightManyPipe, decorators: [{
121896
+ type: Pipe,
121897
+ args: [{ name: 'substrHighlightMany' }]
121898
+ }] });
121899
+
121900
+ class TimeAgoPipe {
121901
+ constructor(translate) {
121902
+ this.translate = translate;
121903
+ }
121904
+ transform(value, args) {
121905
+ const ago = this.translate.instant(Localization.ago);
121906
+ const { second, seconds, minute, minutes } = args?.fullTranslation ?
121907
+ { second: Localization.time_ago_second_full, seconds: Localization.time_ago_seconds_full, minute: Localization.time_ago_minute_full, minutes: Localization.time_ago_minutes_full } :
121908
+ { second: Localization.time_ago_seconds, seconds: Localization.time_ago_minute, minute: Localization.time_ago_minute, minutes: Localization.time_ago_minutes };
121909
+ if (value <= 59) // less than or equal 59 seconds ago will show as 'Just now'
121910
+ return this.translate.instant(args?.timeAgo ? Localization.a_few_seconds_ago : Localization.time_ago_now);
121911
+ const intervals = {
121912
+ [this.translate.instant(Localization.time_ago_year)]: 31536000,
121913
+ [this.translate.instant(Localization.time_ago_month)]: 2592000,
121914
+ [this.translate.instant(Localization.time_ago_week)]: 604800,
121915
+ [this.translate.instant(Localization.time_ago_day)]: 86400,
121916
+ [this.translate.instant(Localization.time_ago_hour)]: 3600,
121917
+ [this.translate.instant(minute)]: 60,
121918
+ [this.translate.instant(second)]: 1
121919
+ };
121920
+ const plurals = {
121921
+ [31536000]: this.translate.instant(Localization.time_ago_years),
121922
+ [2592000]: this.translate.instant(Localization.time_ago_months),
121923
+ [604800]: this.translate.instant(Localization.time_ago_weeks),
121924
+ [86400]: this.translate.instant(Localization.time_ago_days),
121925
+ [3600]: this.translate.instant(Localization.time_ago_hours),
121926
+ [60]: this.translate.instant(minutes),
121927
+ [1]: this.translate.instant(seconds)
121928
+ };
121929
+ let counter;
121930
+ for (const i in intervals) {
121931
+ counter = Math.floor(value / intervals[i]);
121932
+ if (counter > 0) {
121933
+ return `${counter}${args?.timeAgo ? ' ' : ''}${counter === 1 ? i : plurals[intervals[i]]} ${(args?.timeAgo ? ' ' + ago : '')}`;
121934
+ }
121935
+ }
121936
+ }
121937
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, deps: [{ token: i1$4.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
121938
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, isStandalone: true, name: "tbTimeAgo" }); }
121939
+ }
121940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeAgoPipe, decorators: [{
121941
+ type: Pipe,
121942
+ args: [{ name: 'tbTimeAgo', pure: true, standalone: true }]
121943
+ }], ctorParameters: () => [{ type: i1$4.TranslateService }] });
121944
+
121945
+ class TimeElapsedPipe {
121946
+ transform(seconds, format) {
121947
+ if (seconds === null || seconds === undefined) {
121948
+ return '-';
121949
+ }
121950
+ switch (format) {
121951
+ case TimeElapsedFormats.hhmm:
121952
+ return this.to_hhmm(seconds);
121953
+ case TimeElapsedFormats.hhmmss:
121954
+ default:
121955
+ return this.to_hhmmss(seconds);
121956
+ }
121957
+ }
121958
+ to_hhmm(totalSeconds) {
121959
+ const hours = Math.floor(totalSeconds / 3600);
121960
+ const minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
121961
+ return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}`;
121962
+ }
121963
+ to_hhmmss(totalSeconds) {
121964
+ const hours = Math.floor(totalSeconds / 3600);
121965
+ const minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
121966
+ let seconds = totalSeconds - (hours * 3600) - (minutes * 60);
121967
+ seconds = Math.round(seconds * 100) / 100;
121968
+ return `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`;
121969
+ }
121970
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
121971
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, isStandalone: true, name: "timeElapsed" }); }
121972
+ }
121973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimeElapsedPipe, decorators: [{
121974
+ type: Pipe,
121975
+ args: [{ name: 'timeElapsed', pure: true, standalone: true }]
121976
+ }] });
121977
+
121932
121978
  class TimeRangePipe {
121933
121979
  constructor(translateService) {
121934
121980
  this.translateService = translateService;
@@ -142140,13 +142186,13 @@ class TechToolsModuleResolver {
142140
142186
  // dropdown on the page. getSmartparkBasicAll still runs to populate the facility
142141
142187
  // dictionary the dropdown + device grid read from.
142142
142188
  this.store.dispatch(new MenuLoadAction(this.menuService.getTechToolsMenu(), AppModule$2.TechTools));
142143
- // Return the facility-load request so the router waits for it before activating the route — the
142144
- // facility dictionary (park dropdown + device grid) must be populated first, otherwise the first
142145
- // facility/device load hits empty state. Real-time / alert subscriptions run as a side effect.
142146
- return this.smartparkService.getSmartparkBasicAll(AppModule$2.TechTools).pipe(first(), tap(smartparkBasic => {
142189
+ // Not returned to the router: a failed load would cancel the navigation. The page waits for the facilities itself.
142190
+ this.smartparkService.getSmartparkBasicAll(AppModule$2.TechTools).pipe(first())
142191
+ .subscribe(smartparkBasic => {
142147
142192
  this.subscribeToRealTimeEvents(smartparkBasic.data);
142148
142193
  this.subscribeToHandleAlertNotificationEvents(smartparkBasic.data);
142149
- }));
142194
+ });
142195
+ return null;
142150
142196
  }
142151
142197
  subscribeToRealTimeEvents(smartparkBasic) {
142152
142198
  const parksSubscription = this.realtimeEventService.getCrossParkSubscriptions(smartparkBasic);
@@ -143619,5 +143665,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
143619
143665
  * Generated bundle index. Do not edit.
143620
143666
  */
143621
143667
 
143622
- export { ACCESS_PROFILE_DAT_TYPES_SP, ACTION_STATUS, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, ADVANCED_PERMISSION_DEPENDENCIES, AES_DEFAULT_IV, ALERT_DESCRIPTION_DISPLAY_LENGTH, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_1_MB, ALLOWED_FILES_MAX_SIZE_200_KB, ALLOWED_FILES_MAX_SIZE_2_MB, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessModeIconPipe, 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, AppSectionModuleMenuOrder, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BC_DS_P_VALIDATION, BOM_UNICODE, BackOfficeParkerType, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsConfigService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CancelWhatsAppReceiptAction, CarModule, CarState, CassetteStatusText, CategoryModule, CategoryState, CentToCoinPipe, ChangeLanguageAction, ChangePasswordAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearConflictDetected, 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, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateCategoryAction, CreateColorAction, CreateGroupAction, CreateGuestAction, CreateJobTitleAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATE_TIME_ERROR_INVALID_DATE, DATE_TIME_ERROR_INVALID_DATE_RANGE, DATE_TIME_ERROR_REQUIRED, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_MODULE, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_SPECIAL_TRANSIENT_CATEGORY, 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, DeleteCategoryAction, DeleteGroupAction, DeleteGuestAction, DeleteJobTitleAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeIcon, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisableUserSSOAction, 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, FacilitiesAndSmartparksState, 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, GenerateSlimSearchParamsDto, GetAllLocalizationsAction, GetLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupModule, GroupPermissionsPipe, GroupState, GuestModule, GuestOpenTicketChoice, GuestOpenTicketDialogComponent, GuestOpenTicketResolutionService, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HtmlSanitizerService, 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, JobTitleModule, JobTitleState, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LOOKUP_NAME_MAX_LENGTH, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGroupAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadJobTitleAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserCapabilitiesAction, 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_CAPACITY_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_100, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_25, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_NOTES, 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, 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, OPEN_TICKET_CHECK_MIN_VERSION, OPEN_TICKET_CHECK_NOTICE_DELAY_MS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, 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, PermissionCacheService, PermissionConfigService, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, QUERY_INTENT_PATTERNS, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, REPORT_CATEGORY_ALL, RESET_PASSWORD_EMAIL, RESTRICTED_CAR_NOTE_MAX_LENGTH, REVENUE_DATA_UNAVAILABLE, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, RemoveSmartparkBasicAction, ReportMethodDictionary, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, SPECIAL_TRANSIENT_CATEGORIES, SPECIAL_TRANSIENT_LABEL_NOT_AVAILABLE, 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, SanitizedInnerHtmlDirective, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectLprTransactionsRowAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuestAction, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetConflictDetected, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEnableHotelPostingAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSelectedSmartparkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetSmartparkEdgeWebhooksAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkKeyboardEvent, SparkNotification, SpecialDaysPipe, SpecialTransientCategory, SpecialTransientCategoryText, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SwitchUserToSSOAction, SyncUsersAndRolesBySmartparkIdAction, TAKE_TOP_300, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableColumnGroup, TableColumnGroupLabel, TableRowHeightSizes, TableTypeText, TagLabelType, TechToolsModuleResolver, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TruncatePipe, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UnsafeHtmlValidatorDirective, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateSmartparkNameAction, UpdateSmartparkVarAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_DATETIME_FILTERS, VALID_TIME_MAX_LENGTH, VALID_ZIP_CODE_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_3_6, VERSION_25_4_0, VERSION_25_4_1, VERSION_26_1_0, VERSION_26_1_1, VERSION_26_1_2, VERSION_26_2_0, VERSION_26_3_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, VGuestWithBatchTableData, VIRTUAL_DEVICE_LPR_COMPACT_LAYOUT_MEDIA_QUERY, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VirtualValidationStatusText, WhatsAppReceiptAction, WrapFnPipe, YEAR_LIMIT_IN_DAYS, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, cancelOn, canceled, capitalizeFirstLetter, compareValues, composeSubCategoryLabel, 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, exceedsLength, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDependentPermissions, 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, hasUnsafeHtmlValue, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceDisplayedActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isQueryIntentRequest, 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, resolveAccessModeIcon, resolveSpecialTransientCategory, rtEventPermissions, safeParse, sanitizeHtmlValue, searchBarPopupAnimation, setDateTimeErrorMessage, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, truncate, wrapConstructor };
143668
+ export { ACCESS_PROFILE_DAT_TYPES_SP, ACTION_STATUS, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, ADVANCED_PERMISSION_DEPENDENCIES, AES_DEFAULT_IV, ALERT_DESCRIPTION_DISPLAY_LENGTH, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_1_MB, ALLOWED_FILES_MAX_SIZE_200_KB, ALLOWED_FILES_MAX_SIZE_2_MB, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessModeIconPipe, 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, AppSectionModuleMenuOrder, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BC_DS_P_VALIDATION, BOM_UNICODE, BackOfficeParkerType, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsConfigService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CancelWhatsAppReceiptAction, CarModule, CarState, CassetteStatusText, CategoryModule, CategoryState, CentToCoinPipe, ChangeLanguageAction, ChangePasswordAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearConflictDetected, 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, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateCategoryAction, CreateColorAction, CreateGroupAction, CreateGuestAction, CreateJobTitleAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATE_TIME_ERROR_INVALID_DATE, DATE_TIME_ERROR_INVALID_DATE_RANGE, DATE_TIME_ERROR_REQUIRED, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_MODULE, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_SPECIAL_TRANSIENT_CATEGORY, 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, DeleteCategoryAction, DeleteGroupAction, DeleteGuestAction, DeleteJobTitleAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeIcon, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisableUserSSOAction, 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, FacilitiesAndSmartparksState, 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, GenerateSlimSearchParamsDto, GetAllLocalizationsAction, GetLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupModule, GroupPermissionsPipe, GroupState, GuestModule, GuestOpenTicketChoice, GuestOpenTicketDialogComponent, GuestOpenTicketResolutionService, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HtmlSanitizerService, 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, JobTitleModule, JobTitleState, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LOOKUP_NAME_MAX_LENGTH, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGroupAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadJobTitleAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserCapabilitiesAction, 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_CAPACITY_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_100, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_25, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_NOTES, 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, 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, OPEN_TICKET_CHECK_MIN_VERSION, OPEN_TICKET_CHECK_NOTICE_DELAY_MS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, 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, PermissionCacheService, PermissionConfigService, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, QUERY_INTENT_PATTERNS, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, REPORT_CATEGORY_ALL, RESET_PASSWORD_EMAIL, RESTRICTED_CAR_NOTE_MAX_LENGTH, REVENUE_DATA_UNAVAILABLE, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, RemoveSmartparkBasicAction, ReportMethodDictionary, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, SPECIAL_TRANSIENT_CATEGORIES, SPECIAL_TRANSIENT_LABEL_NOT_AVAILABLE, 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, SanitizedInnerHtmlDirective, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectLprTransactionsRowAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuestAction, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetConflictDetected, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEnableHotelPostingAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSelectedSmartparkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetSmartparkEdgeWebhooksAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkKeyboardEvent, SparkNotification, SpecialDaysPipe, SpecialTransientCategory, SpecialTransientCategoryText, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SwitchUserToSSOAction, SyncUsersAndRolesBySmartparkIdAction, TAKE_TOP_300, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableColumnGroup, TableColumnGroupLabel, TableRowHeightSizes, TableTypeText, TagLabelType, TechToolsModuleResolver, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToastHostComponent, ToastService, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TruncatePipe, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UnsafeHtmlValidatorDirective, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateSmartparkNameAction, UpdateSmartparkVarAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_DATETIME_FILTERS, VALID_TIME_MAX_LENGTH, VALID_ZIP_CODE_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_3_6, VERSION_25_4_0, VERSION_25_4_1, VERSION_26_1_0, VERSION_26_1_1, VERSION_26_1_2, VERSION_26_2_0, VERSION_26_3_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, VGuestWithBatchTableData, VIRTUAL_DEVICE_LPR_COMPACT_LAYOUT_MEDIA_QUERY, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VirtualValidationStatusText, WhatsAppReceiptAction, WrapFnPipe, YEAR_LIMIT_IN_DAYS, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, cancelOn, canceled, capitalizeFirstLetter, compareValues, composeSubCategoryLabel, 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, exceedsLength, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDependentPermissions, 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, hasUnsafeHtmlValue, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceDisplayedActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isQueryIntentRequest, 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, resolveAccessModeIcon, resolveSpecialTransientCategory, rtEventPermissions, safeParse, sanitizeHtmlValue, searchBarPopupAnimation, setDateTimeErrorMessage, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, truncate, wrapConstructor };
143623
143669
  //# sourceMappingURL=tiba-spark-client-shared-lib.mjs.map