ets-fe-ng-sdk 20.3.38 → 20.3.39

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.
@@ -3064,6 +3064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
3064
3064
  * @template TEnvironment - The type of environment configuration to use, defaults to SDKEnvironment
3065
3065
  */
3066
3066
  class UtilityService {
3067
+ static { this.canUseServiceworkers = computed(() => !isDevMode(), ...(ngDevMode ? [{ debugName: "canUseServiceworkers" }] : [])); }
3067
3068
  constructor() {
3068
3069
  /** Angular Material Dialog service for managing dialogs */
3069
3070
  this.dialog = inject(MatDialog);
@@ -3113,6 +3114,7 @@ class UtilityService {
3113
3114
  this.pbid = EETSPageBtnID;
3114
3115
  /** Emits true if the device is mobile */
3115
3116
  this.mobileQueryChanged = new ReplaySubject();
3117
+ this.canUseServiceworkers = computed(() => UtilityService.canUseServiceworkers(), ...(ngDevMode ? [{ debugName: "canUseServiceworkers" }] : []));
3116
3118
  /** Signal that emits true when the device is a mobile handset */
3117
3119
  this.isMobileSignal = toSignal(this.responsive.observe([Breakpoints.Handset]).pipe(map(({ matches }) => matches), tap((r) => {
3118
3120
  this.isMobile = r;
@@ -7585,7 +7587,6 @@ class InputService {
7585
7587
  for (const item of this.dateInputChunks) {
7586
7588
  item.placeholder = '-'.repeat(item.length);
7587
7589
  }
7588
- const startTime = Date.now();
7589
7590
  // Refactored time initialization using local variables
7590
7591
  const hoursArray = ['12'];
7591
7592
  const hours24Array = ['00'];
@@ -7624,7 +7625,6 @@ class InputService {
7624
7625
  this.time24Hours.set(hours24Array);
7625
7626
  this.timeMinutes.set(minutesArray);
7626
7627
  this.timeSeconds.set(secondsArray);
7627
- console.log('time taken', (Date.now() - startTime) / 1000);
7628
7628
  const labeller = this.labeller;
7629
7629
  this.optionLabellerFunctions = {
7630
7630
  acd: (option) => labeller(option?.accountNo, option?.description),
@@ -11675,11 +11675,11 @@ class DocumentsNameDisplayComponent {
11675
11675
  return valid ? { refCat, refNo, docSubCat, title } : null;
11676
11676
  }
11677
11677
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: DocumentsNameDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11678
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: DocumentsNameDisplayComponent, isStandalone: true, selector: "app-documents-name-display", inputs: { files: "files", fileNameFormat: "fileNameFormat" }, outputs: { valid: "valid", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"row justify-content-center\">\n <div class=\"col-md-auto p-3 mt-4 text-center\">\n <span class=\"text-muted\">{{'Upload files named in this format: '|appTranslate|async}}</span>\n <span>{{fileFormats[fileNameFormat]}}</span>\n </div>\n </div>\n <div class=\"row justify-content-center\">\n @if (errors?.length) {\n<div class=\"col-md-auto text-danger border border-danger light-red-bg rounded text-center mt-2 mb-4\">\n <p>{{'The following files are not in the right format: '}}</p>\n @for (error of errors; track error) {\n <span class=\"me-5\">{{error}}</span>\n}\n </div>\n}\n </div>\n @if (files?.length) {\n<div class=\"table-responsive\">\n <table class=\"table table-striped col-md-auto\">\n@switch (fileNameFormat) {\n @case ('NON_POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Ref No'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.refNo}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT_SUFFIX') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Policy No Suffix'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.policyNoSuffix}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n }\n</table>\n\n </div>\n}\n</div>", styles: [".light-red-bg{background-color:#ff000009}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
11678
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: DocumentsNameDisplayComponent, isStandalone: true, selector: "ets-documents-name-display", inputs: { files: "files", fileNameFormat: "fileNameFormat" }, outputs: { valid: "valid", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"row justify-content-center\">\n <div class=\"col-md-auto p-3 mt-4 text-center\">\n <span class=\"text-muted\">{{'Upload files named in this format: '|appTranslate|async}}</span>\n <span>{{fileFormats[fileNameFormat]}}</span>\n </div>\n </div>\n <div class=\"row justify-content-center\">\n @if (errors?.length) {\n<div class=\"col-md-auto text-danger border border-danger light-red-bg rounded text-center mt-2 mb-4\">\n <p>{{'The following files are not in the right format: '}}</p>\n @for (error of errors; track error) {\n <span class=\"me-5\">{{error}}</span>\n}\n </div>\n}\n </div>\n @if (files?.length) {\n<div class=\"table-responsive\">\n <table class=\"table table-striped col-md-auto\">\n@switch (fileNameFormat) {\n @case ('NON_POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Ref No'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.refNo}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT_SUFFIX') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Policy No Suffix'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.policyNoSuffix}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n }\n</table>\n\n </div>\n}\n</div>", styles: [".light-red-bg{background-color:#ff000009}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
11679
11679
  }
11680
11680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: DocumentsNameDisplayComponent, decorators: [{
11681
11681
  type: Component,
11682
- args: [{ selector: 'app-documents-name-display', imports: [AsyncPipe, SDKTranslatePipe], template: "<div>\n <div class=\"row justify-content-center\">\n <div class=\"col-md-auto p-3 mt-4 text-center\">\n <span class=\"text-muted\">{{'Upload files named in this format: '|appTranslate|async}}</span>\n <span>{{fileFormats[fileNameFormat]}}</span>\n </div>\n </div>\n <div class=\"row justify-content-center\">\n @if (errors?.length) {\n<div class=\"col-md-auto text-danger border border-danger light-red-bg rounded text-center mt-2 mb-4\">\n <p>{{'The following files are not in the right format: '}}</p>\n @for (error of errors; track error) {\n <span class=\"me-5\">{{error}}</span>\n}\n </div>\n}\n </div>\n @if (files?.length) {\n<div class=\"table-responsive\">\n <table class=\"table table-striped col-md-auto\">\n@switch (fileNameFormat) {\n @case ('NON_POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Ref No'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.refNo}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT_SUFFIX') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Policy No Suffix'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.policyNoSuffix}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n }\n</table>\n\n </div>\n}\n</div>", styles: [".light-red-bg{background-color:#ff000009}\n"] }]
11682
+ args: [{ selector: 'ets-documents-name-display', imports: [AsyncPipe, SDKTranslatePipe], template: "<div>\n <div class=\"row justify-content-center\">\n <div class=\"col-md-auto p-3 mt-4 text-center\">\n <span class=\"text-muted\">{{'Upload files named in this format: '|appTranslate|async}}</span>\n <span>{{fileFormats[fileNameFormat]}}</span>\n </div>\n </div>\n <div class=\"row justify-content-center\">\n @if (errors?.length) {\n<div class=\"col-md-auto text-danger border border-danger light-red-bg rounded text-center mt-2 mb-4\">\n <p>{{'The following files are not in the right format: '}}</p>\n @for (error of errors; track error) {\n <span class=\"me-5\">{{error}}</span>\n}\n </div>\n}\n </div>\n @if (files?.length) {\n<div class=\"table-responsive\">\n <table class=\"table table-striped col-md-auto\">\n@switch (fileNameFormat) {\n @case ('NON_POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Ref No'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.refNo}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n @case ('POLICY_DOCUMENT_SUFFIX') {\n \n <thead>\n <th>{{'Ref Cat'|appTranslate|async}}</th>\n <th>{{'Policy No'|appTranslate|async}}</th>\n <th>{{'Policy Code'|appTranslate|async}}</th>\n <th>{{'Policy No Suffix'|appTranslate|async}}</th>\n <th>{{'Doc SubCat'|appTranslate|async}}</th>\n <th>{{'Title'|appTranslate|async}}</th>\n </thead>\n <tbody>\n @for (file of fileNames; track file) {\n <tr>\n <td>{{file.refCat}}</td>\n <td>{{file.policyNo}}</td>\n <td>{{file.policyCode}}</td>\n <td>{{file.policyNoSuffix}}</td>\n <td>{{file.docSubCat}}</td>\n <td>{{file.title}}</td>\n </tr>\n}\n </tbody>\n \n}\n }\n</table>\n\n </div>\n}\n</div>", styles: [".light-red-bg{background-color:#ff000009}\n"] }]
11683
11683
  }], ctorParameters: () => [], propDecorators: { files: [{
11684
11684
  type: Input
11685
11685
  }], fileNameFormat: [{
@@ -17709,11 +17709,11 @@ class FormLinkComponent {
17709
17709
  */
17710
17710
  ngOnInit() { }
17711
17711
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: FormLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17712
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: FormLinkComponent, isStandalone: true, selector: "form-link", inputs: { cqueryParams: "cqueryParams", crouterLink: "crouterLink", value: "value", options: "options", labelField: "labelField", valueField: "valueField" }, ngImport: i0, template: "<a class=\"form-link link form-control control-bg-gray\" readonly routerLink=\"{{crouterLink}}\"\n [queryParams]=\"cqueryParams\">\n {{value|getValueLabel:options:labelField:valueField}}\n</a>\n", styles: [".form-link{color:var(--primary)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: GetValueLabel, name: "getValueLabel" }] }); }
17712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: FormLinkComponent, isStandalone: true, selector: "ets-form-link", inputs: { cqueryParams: "cqueryParams", crouterLink: "crouterLink", value: "value", options: "options", labelField: "labelField", valueField: "valueField" }, ngImport: i0, template: "<a class=\"form-link link form-control control-bg-gray\" readonly routerLink=\"{{crouterLink}}\"\n [queryParams]=\"cqueryParams\">\n {{value|getValueLabel:options:labelField:valueField}}\n</a>\n", styles: [".form-link{color:var(--primary)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: GetValueLabel, name: "getValueLabel" }] }); }
17713
17713
  }
17714
17714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: FormLinkComponent, decorators: [{
17715
17715
  type: Component,
17716
- args: [{ selector: 'form-link', imports: [RouterLink, GetValueLabel], template: "<a class=\"form-link link form-control control-bg-gray\" readonly routerLink=\"{{crouterLink}}\"\n [queryParams]=\"cqueryParams\">\n {{value|getValueLabel:options:labelField:valueField}}\n</a>\n", styles: [".form-link{color:var(--primary)}\n"] }]
17716
+ args: [{ selector: 'ets-form-link', imports: [RouterLink, GetValueLabel], template: "<a class=\"form-link link form-control control-bg-gray\" readonly routerLink=\"{{crouterLink}}\"\n [queryParams]=\"cqueryParams\">\n {{value|getValueLabel:options:labelField:valueField}}\n</a>\n", styles: [".form-link{color:var(--primary)}\n"] }]
17717
17717
  }], ctorParameters: () => [], propDecorators: { cqueryParams: [{
17718
17718
  type: Input
17719
17719
  }], crouterLink: [{
@@ -17740,11 +17740,11 @@ class FormTabHeadersComponent {
17740
17740
  this.selectedIndexChange.emit(index);
17741
17741
  }
17742
17742
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: FormTabHeadersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17743
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: FormTabHeadersComponent, isStandalone: true, selector: "app-form-tabs-header", inputs: { selectedIndex: "selectedIndex", tabs: "tabs" }, outputs: { selectedIndexChange: "selectedIndexChange" }, ngImport: i0, template: "<nav class=\"\">\n <div class=\"nav nav-pills nav-justified d-flex justify-content-center border-0\" id=\"nav-tab\" role=\"tablist\">\n @for (tab of tabs; track tab; let index = $index) {\n <button class=\"nav-link border-0\"\n [ngClass]=\"selectedIndex == index? 'active' : ''\" (click)=\"changeTab(index)\" type=\"button\" role=\"tab\"\n aria-controls=\"nav-home\">{{tab.label|appTranslate|async}}\n </button>\n}\n </div>\n</nav>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
17743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: FormTabHeadersComponent, isStandalone: true, selector: "ets-form-tabs-header", inputs: { selectedIndex: "selectedIndex", tabs: "tabs" }, outputs: { selectedIndexChange: "selectedIndexChange" }, ngImport: i0, template: "<nav class=\"\">\n <div class=\"nav nav-pills nav-justified d-flex justify-content-center border-0\" id=\"nav-tab\" role=\"tablist\">\n @for (tab of tabs; track tab; let index = $index) {\n <button class=\"nav-link border-0\"\n [ngClass]=\"selectedIndex == index? 'active' : ''\" (click)=\"changeTab(index)\" type=\"button\" role=\"tab\"\n aria-controls=\"nav-home\">{{tab.label|appTranslate|async}}\n </button>\n}\n </div>\n</nav>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
17744
17744
  }
17745
17745
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: FormTabHeadersComponent, decorators: [{
17746
17746
  type: Component,
17747
- args: [{ selector: 'app-form-tabs-header', imports: [NgClass, AsyncPipe, SDKTranslatePipe], template: "<nav class=\"\">\n <div class=\"nav nav-pills nav-justified d-flex justify-content-center border-0\" id=\"nav-tab\" role=\"tablist\">\n @for (tab of tabs; track tab; let index = $index) {\n <button class=\"nav-link border-0\"\n [ngClass]=\"selectedIndex == index? 'active' : ''\" (click)=\"changeTab(index)\" type=\"button\" role=\"tab\"\n aria-controls=\"nav-home\">{{tab.label|appTranslate|async}}\n </button>\n}\n </div>\n</nav>\n" }]
17747
+ args: [{ selector: 'ets-form-tabs-header', imports: [NgClass, AsyncPipe, SDKTranslatePipe], template: "<nav class=\"\">\n <div class=\"nav nav-pills nav-justified d-flex justify-content-center border-0\" id=\"nav-tab\" role=\"tablist\">\n @for (tab of tabs; track tab; let index = $index) {\n <button class=\"nav-link border-0\"\n [ngClass]=\"selectedIndex == index? 'active' : ''\" (click)=\"changeTab(index)\" type=\"button\" role=\"tab\"\n aria-controls=\"nav-home\">{{tab.label|appTranslate|async}}\n </button>\n}\n </div>\n</nav>\n" }]
17748
17748
  }], ctorParameters: () => [], propDecorators: { selectedIndex: [{
17749
17749
  type: Input
17750
17750
  }], tabs: [{
@@ -19260,13 +19260,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
19260
19260
  */
19261
19261
  class PageModal {
19262
19262
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PageModal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19263
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: PageModal, isStandalone: false, selector: "ng-component", inputs: { isModal: "isModal", modelData: "modelData", modalOnComplete: "modalOnComplete" }, ngImport: i0, template: ``, isInline: true }); }
19263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: PageModal, isStandalone: false, selector: "ets-page-modal", inputs: { isModal: "isModal", modelData: "modelData", modalOnComplete: "modalOnComplete" }, ngImport: i0, template: ``, isInline: true }); }
19264
19264
  }
19265
19265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: PageModal, decorators: [{
19266
19266
  type: Component,
19267
19267
  args: [{
19268
19268
  template: ``,
19269
- standalone: false
19269
+ standalone: false,
19270
+ selector: 'ets-page-modal',
19270
19271
  }]
19271
19272
  }], propDecorators: { isModal: [{
19272
19273
  type: Input
@@ -19622,11 +19623,11 @@ class SvgIconComponent {
19622
19623
  this.iconRef.nativeElement.innerHTML = this.icon;
19623
19624
  }
19624
19625
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SvgIconComponent, deps: [{ token: SvgIconService }], target: i0.ɵɵFactoryTarget.Component }); }
19625
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: SvgIconComponent, isStandalone: true, selector: "svg-icon", inputs: { class: "class", _icon: ["icon", "_icon"] }, viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["iconTag"], descendants: true }], ngImport: i0, template: "<span class=\"{{class}} svg-icon\" #iconTag>\n <!-- {{icon}} -->\n <!-- <img class=\"svg-icon\" src=\"{{icon}}\"> -->\n</span>", styles: ["span{color:inherit}\n"] }); }
19626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: SvgIconComponent, isStandalone: true, selector: "ets-svg-icon", inputs: { class: "class", _icon: ["icon", "_icon"] }, viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["iconTag"], descendants: true }], ngImport: i0, template: "<span class=\"{{class}} svg-icon\" #iconTag>\n <!-- {{icon}} -->\n <!-- <img class=\"svg-icon\" src=\"{{icon}}\"> -->\n</span>", styles: ["span{color:inherit}\n"] }); }
19626
19627
  }
19627
19628
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: SvgIconComponent, decorators: [{
19628
19629
  type: Component,
19629
- args: [{ selector: 'svg-icon', standalone: true, template: "<span class=\"{{class}} svg-icon\" #iconTag>\n <!-- {{icon}} -->\n <!-- <img class=\"svg-icon\" src=\"{{icon}}\"> -->\n</span>", styles: ["span{color:inherit}\n"] }]
19630
+ args: [{ selector: 'ets-svg-icon', standalone: true, template: "<span class=\"{{class}} svg-icon\" #iconTag>\n <!-- {{icon}} -->\n <!-- <img class=\"svg-icon\" src=\"{{icon}}\"> -->\n</span>", styles: ["span{color:inherit}\n"] }]
19630
19631
  }], ctorParameters: () => [{ type: SvgIconService }], propDecorators: { class: [{
19631
19632
  type: Input
19632
19633
  }], _icon: [{
@@ -23548,11 +23549,12 @@ class ETSPromptUpdateService {
23548
23549
  * Indicates whether the confirmation prompt dialog is currently open
23549
23550
  */
23550
23551
  this.isOpen = false;
23551
- swUpdate.versionUpdates
23552
- .pipe(filter$1((evt) => evt.type === 'VERSION_READY'))
23553
- .subscribe((evt) => {
23554
- this.prompter();
23555
- });
23552
+ if (UtilityService.canUseServiceworkers())
23553
+ swUpdate.versionUpdates
23554
+ .pipe(filter$1((evt) => evt.type === 'VERSION_READY'))
23555
+ .subscribe((evt) => {
23556
+ this.prompter();
23557
+ });
23556
23558
  }
23557
23559
  /**
23558
23560
  * Displays a prompt to the user asking to reload the application.
@@ -23598,31 +23600,32 @@ class ETSLogUpdateService {
23598
23600
  * @param uS - Utility service for notifications and common operations
23599
23601
  */
23600
23602
  constructor(updates, uS) {
23601
- // console.log('logging');
23602
23603
  this.uS = uS;
23603
- updates.versionUpdates.subscribe((evt) => {
23604
- let message;
23605
- switch (evt.type) {
23606
- case 'VERSION_DETECTED':
23607
- message = `Downloading a new version`;
23608
- console.log(`${message}: ${evt.version.hash}`);
23609
- this.uS.notify(message, 2);
23610
- break;
23611
- case 'VERSION_READY':
23612
- message = `New app version ready for use`;
23613
- console.log(`Current app version: ${evt.currentVersion.hash}`);
23614
- console.log(`${message}: ${evt.latestVersion.hash}`);
23615
- // this.uS.notify(message, 1);
23616
- break;
23617
- case 'VERSION_INSTALLATION_FAILED':
23618
- message = `Failed to install app version`;
23619
- debugger;
23620
- console.log(`${message} '${evt.version.hash}': ${evt.error}`);
23621
- // location.reload();
23622
- // this.uS.notify(message, 0);
23623
- break;
23624
- }
23625
- });
23604
+ // console.log('logging');
23605
+ if (uS.canUseServiceworkers())
23606
+ updates.versionUpdates.subscribe((evt) => {
23607
+ let message;
23608
+ switch (evt.type) {
23609
+ case 'VERSION_DETECTED':
23610
+ message = `Downloading a new version`;
23611
+ console.log(`${message}: ${evt.version.hash}`);
23612
+ this.uS.notify(message, 2);
23613
+ break;
23614
+ case 'VERSION_READY':
23615
+ message = `New app version ready for use`;
23616
+ console.log(`Current app version: ${evt.currentVersion.hash}`);
23617
+ console.log(`${message}: ${evt.latestVersion.hash}`);
23618
+ // this.uS.notify(message, 1);
23619
+ break;
23620
+ case 'VERSION_INSTALLATION_FAILED':
23621
+ message = `Failed to install app version`;
23622
+ debugger;
23623
+ console.log(`${message} '${evt.version.hash}': ${evt.error}`);
23624
+ // location.reload();
23625
+ // this.uS.notify(message, 0);
23626
+ break;
23627
+ }
23628
+ });
23626
23629
  }
23627
23630
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ETSLogUpdateService, deps: [{ token: i1$9.SwUpdate }, { token: UtilityService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23628
23631
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ETSLogUpdateService, providedIn: 'root' }); }
@@ -23651,11 +23654,12 @@ class ETSHandleUnrecoverableStateService {
23651
23654
  constructor(updates, uS, puS) {
23652
23655
  this.uS = uS;
23653
23656
  this.puS = puS;
23654
- updates.unrecoverable.subscribe((event) => {
23655
- console.log(event.reason);
23656
- alert(event.reason);
23657
- this.puS.prompter('An error occurred that we cannot recover from:\n' + event.reason);
23658
- });
23657
+ if (uS.canUseServiceworkers())
23658
+ updates.unrecoverable.subscribe((event) => {
23659
+ console.log(event.reason);
23660
+ alert(event.reason);
23661
+ this.puS.prompter('An error occurred that we cannot recover from:\n' + event.reason);
23662
+ });
23659
23663
  }
23660
23664
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ETSHandleUnrecoverableStateService, deps: [{ token: i1$9.SwUpdate }, { token: UtilityService }, { token: ETSPromptUpdateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23661
23665
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ETSHandleUnrecoverableStateService, providedIn: 'root' }); }
@@ -23684,7 +23688,8 @@ class ETSCheckForUpdateService {
23684
23688
  this.updates = updates;
23685
23689
  this.sS = sS;
23686
23690
  this.puS = puS;
23687
- this.init();
23691
+ if (UtilityService.canUseServiceworkers())
23692
+ this.init();
23688
23693
  }
23689
23694
  /**
23690
23695
  * Initializes the update checking mechanism.
@@ -23756,6 +23761,7 @@ class ETSServiceWorkerService {
23756
23761
  this.cfuS = cfuS;
23757
23762
  this.sS = sS;
23758
23763
  this.iS = iS;
23764
+ this.allowedToWork = computed(() => UtilityService.canUseServiceworkers(), ...(ngDevMode ? [{ debugName: "allowedToWork" }] : []));
23759
23765
  }
23760
23766
  /**
23761
23767
  * Manually checks for application updates.
@@ -23765,15 +23771,16 @@ class ETSServiceWorkerService {
23765
23771
  * @param cb - Optional callback function to execute after the update check completes
23766
23772
  */
23767
23773
  async getUpdates(cb) {
23768
- console.log('checking update 1');
23774
+ if (!this.allowedToWork()) {
23775
+ if (cb)
23776
+ cb();
23777
+ return;
23778
+ }
23769
23779
  const appIsStable$ = this.cfuS.appRef.isStable.pipe(first$1((isStable) => {
23770
- console.log('checking for stability ', isStable);
23771
23780
  return isStable === true;
23772
23781
  }));
23773
- console.log('checking update 2');
23774
23782
  // appIsStable$.subscribe(async () => {
23775
23783
  try {
23776
- console.log('checking update 3');
23777
23784
  const updateFound = await this.cfuS.updates.checkForUpdate();
23778
23785
  this.sS.saveItem(environment.lastUpdateCheckTimeStorageKey, Date.now());
23779
23786
  if (updateFound) {