@sapphire-ion/framework 1.2.60 → 1.2.61

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.
@@ -8,7 +8,7 @@ import moment from 'moment';
8
8
  import { Buffer } from 'buffer';
9
9
  import mime from 'mime';
10
10
  import { Capacitor } from '@capacitor/core';
11
- import { BehaviorSubject, firstValueFrom, from, switchMap, Subject, takeUntil, distinctUntilChanged, debounceTime, lastValueFrom, Observable, tap, finalize, share, catchError } from 'rxjs';
11
+ import { BehaviorSubject, firstValueFrom, from, switchMap, Subject, takeUntil, distinctUntilChanged, debounceTime, filter, lastValueFrom, Observable, tap, finalize, share, catchError } from 'rxjs';
12
12
  import * as i1$1 from '@angular/common/http';
13
13
  import { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';
14
14
  import * as i2$1 from '@angular/forms';
@@ -19,7 +19,7 @@ import * as i2 from '@angular/platform-browser';
19
19
  import { Preferences } from '@capacitor/preferences';
20
20
  import { jwtDecode } from 'jwt-decode';
21
21
  import * as i2$2 from '@angular/router';
22
- import { ActivatedRoute, RouterLinkWithHref, RouterModule, RouterOutlet, RouterLink } from '@angular/router';
22
+ import { NavigationEnd, ActivatedRoute, RouterLinkWithHref, RouterModule, RouterOutlet, RouterLink } from '@angular/router';
23
23
  import { maskitoTransform } from '@maskito/core';
24
24
  import { maskitoPhoneOptionsGenerator } from '@maskito/phone';
25
25
  import metadata from 'libphonenumber-js/min/metadata';
@@ -1062,8 +1062,13 @@ class HttpService {
1062
1062
  if (!redirectPath) {
1063
1063
  return;
1064
1064
  }
1065
- const path = redirectPath.replace(":id", id.toString());
1066
- this.navController.navigateRoot([`../${path}`], { relativeTo: activatedRoute });
1065
+ const path = redirectPath.replace(':id', id.toString());
1066
+ this.navController.navigateRoot([`../${path}`], {
1067
+ relativeTo: activatedRoute,
1068
+ state: {
1069
+ __preserveBack: true
1070
+ }
1071
+ });
1067
1072
  }
1068
1073
  FilesToForm(object, formData = new FormData(), lstTableFieldsView = null) {
1069
1074
  if (!lstTableFieldsView) {
@@ -4610,10 +4615,106 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4610
4615
  args: ['defList']
4611
4616
  }] } });
4612
4617
 
4618
+ class NavigationContextService {
4619
+ constructor(router) {
4620
+ this.router = router;
4621
+ this.previousUrl = null;
4622
+ this.currentUrl = null;
4623
+ this.currentUrl = this.router.url;
4624
+ this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e) => {
4625
+ const nextUrl = e.urlAfterRedirects;
4626
+ const preserve = history.state?.__preserveBack == true;
4627
+ const currentBase = this.currentUrl ? this.getBaseRoute(this.currentUrl) : null;
4628
+ const nextBase = this.getBaseRoute(nextUrl);
4629
+ const nav = this.router.getCurrentNavigation();
4630
+ const isBack = nav?.trigger == 'popstate';
4631
+ // Redirect técnico - ignora
4632
+ if (preserve) {
4633
+ this.currentUrl = nextUrl;
4634
+ return;
4635
+ }
4636
+ // Navegação interna da mesma view (Ex: Item <-> View Principal)
4637
+ if (currentBase && currentBase == nextBase) {
4638
+ // ajustes no histórico baseando-se estritamente na hierarquia.
4639
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
4640
+ const cleanBase = nextBase.replace(/\/$/, '');
4641
+ if (cleanNext == cleanBase) {
4642
+ // voltou para a raiz da entidade
4643
+ this.previousUrl = this.getListRoute(nextBase);
4644
+ }
4645
+ else {
4646
+ // voltou de um filho → pai REAL
4647
+ this.previousUrl = this.getParentRoute(nextUrl);
4648
+ }
4649
+ this.currentUrl = nextUrl;
4650
+ return;
4651
+ }
4652
+ // Chegou numa view base VIA BACK (de outro módulo)
4653
+ if (isBack) {
4654
+ // Se voltou de fora (OS -> Obra), recalcula para garantir
4655
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
4656
+ const cleanBase = nextBase.replace(/\/$/, '');
4657
+ if (cleanNext === cleanBase) {
4658
+ this.previousUrl = this.getListRoute(nextBase);
4659
+ }
4660
+ else {
4661
+ this.previousUrl = nextBase;
4662
+ }
4663
+ this.currentUrl = nextUrl;
4664
+ return;
4665
+ }
4666
+ // Navegação real (Entrando em um módulo novo ou avançando)
4667
+ this.previousUrl = this.currentUrl;
4668
+ this.currentUrl = nextUrl;
4669
+ });
4670
+ }
4671
+ getBaseRoute(url) {
4672
+ //pega a rota base
4673
+ const parts = url.split('/').filter(Boolean);
4674
+ const base = [];
4675
+ for (const part of parts) {
4676
+ base.push(part);
4677
+ if (!isNaN(Number(part))) {
4678
+ break;
4679
+ }
4680
+ }
4681
+ return '/' + base.join('/');
4682
+ }
4683
+ getListRoute(baseRoute) {
4684
+ //verifica se a rota de retorno é a inicial
4685
+ const parts = baseRoute.split('/').filter(Boolean);
4686
+ return '/' + parts[0];
4687
+ }
4688
+ getParentRoute(url) {
4689
+ const clean = url.split('?')[0].replace(/\/$/, '');
4690
+ const parts = clean.split('/').filter(Boolean);
4691
+ if (parts.length <= 1) {
4692
+ return '/' + parts.join('/');
4693
+ }
4694
+ if (!isNaN(Number(parts[parts.length - 1]))) {
4695
+ parts.pop();
4696
+ }
4697
+ if (parts[parts.length - 1] === 'view') {
4698
+ parts.pop();
4699
+ }
4700
+ return '/' + parts.join('/');
4701
+ }
4702
+ getBackRoute() {
4703
+ return this.previousUrl;
4704
+ }
4705
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, deps: [{ token: i2$2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
4706
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, providedIn: 'root' }); }
4707
+ }
4708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, decorators: [{
4709
+ type: Injectable,
4710
+ args: [{ providedIn: 'root' }]
4711
+ }], ctorParameters: () => [{ type: i2$2.Router }] });
4712
+
4613
4713
  class HeaderViewComponent {
4614
- constructor(navController, activatedRoute) {
4714
+ constructor(navController, activatedRoute, navContext) {
4615
4715
  this.navController = navController;
4616
4716
  this.activatedRoute = activatedRoute;
4717
+ this.navContext = navContext;
4617
4718
  this.novo = false;
4618
4719
  this.progress = null;
4619
4720
  this.saveEmitter = new EventEmitter();
@@ -4632,17 +4733,7 @@ class HeaderViewComponent {
4632
4733
  }
4633
4734
  ngOnInit() { }
4634
4735
  get DefaultBackRoute() {
4635
- const fullRoute = window.location.pathname.split('/');
4636
- const li = fullRoute[fullRoute.length - 1];
4637
- var offset = 1;
4638
- if (Number(li)) {
4639
- offset++;
4640
- }
4641
- let route = [];
4642
- for (let i = 0; i < fullRoute.length - offset; i++) {
4643
- route.push(fullRoute[i]);
4644
- }
4645
- return route.join('/');
4736
+ return this.navContext.getBackRoute() ?? '/';
4646
4737
  }
4647
4738
  Back($event = null) {
4648
4739
  this.IonBackButtonElement.onClick($event);
@@ -4655,13 +4746,13 @@ class HeaderViewComponent {
4655
4746
  Save() {
4656
4747
  this.saveEmitter.emit();
4657
4748
  }
4658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4749
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2$2.ActivatedRoute }, { token: NavigationContextService }], target: i0.ɵɵFactoryTarget.Component }); }
4659
4750
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1$2.DecimalPipe, name: "number" }] }); }
4660
4751
  }
4661
4752
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, decorators: [{
4662
4753
  type: Component,
4663
4754
  args: [{ selector: 'header-view', template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"] }]
4664
- }], ctorParameters: () => [{ type: i1.NavController }, { type: i2$2.ActivatedRoute }], propDecorators: { novo: [{
4755
+ }], ctorParameters: () => [{ type: i1.NavController }, { type: i2$2.ActivatedRoute }, { type: NavigationContextService }], propDecorators: { novo: [{
4665
4756
  type: Input
4666
4757
  }], loading: [{
4667
4758
  type: Input
@@ -12386,5 +12477,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
12386
12477
  * Generated bundle index. Do not edit.
12387
12478
  */
12388
12479
 
12389
- export { AbstractList, AbstractView, ApiUrlProviderService, AuthGuard, AuthService, BindLabelFactory, BindValueFactory, BoolProperty, CarouselComponent, CarouselImageComponent, CarouselItemComponent, CarouselModule, Comparison, ComparisonOperator, ComparisonOperatorString, ComparisonValueType, CompileFilters, CompileLstTableField, ContentBlockComponent, ControlError, DateProperty, DateTimeProperty, DecimalProperty, DefaultDrawerEndComponent, DefaultListComponent, DefaultLoginComponent, DefaultModule, DefaultPage, DefaultPageConfiguration, DefaultPageImage, DefaultPaginationComponent, DefaultRoutingFactory, DefaultTableComponent, DefaultViewComponent, Download, DownloadButtonComponent, DragDropFileDirective, DragDropFileModule, DragDropOverlayComponent, DrawerComponent, DrawerGroupComponent, EnumProperty, Environment, EnvironmentInjectionToken, EnvironmentService, ErrorInterceptor, FilterComponent, Forbidden403Component, FormValidators, FormatCep, FormatCpfCnpj, FormatTelefoneCelular, GenericService, HeaderListComponent, HeaderViewComponent, HttpService, HttpServiceAtivo, ICarouselItem, INT_MAX, ImageComponent, ImplicitProperty, InfiniteScroll, InfiniteScrollConfiguration, InfoPopoverComponent, InputBoolComponent, InputBoolConfiguration, InputBoolType, InputCepComponent, InputCepConfiguration, InputColorComponent, InputCpfCnpjComponent, InputCpfCnpjConfiguration, InputCurrencyConfiguration, InputDateComponent, InputDateConfiguration, InputDecimalComponent, InputDecimalConfiguration, InputFileComponent, InputFileConfiguration, InputIconComponent, InputNumberConfiguration, InputPercentageConfiguration, InputProviderFactory, InputSelectComponent, InputSelectConfiguration, InputSelectDataLoader, InputStringComponent, InputStringConfiguration, InputStringType, InputTelefoneCelularConfiguration, InputTelefoneComponent, InputTextareaComponent, InputType, InputsDefaultConfigurations, InputsModule, IntProperty, List, LoadingComponent, LoginAdminComponent, LongProperty, MainContentComponent, Menu, NgVarDirective, RouteCacheService, RouteData, RouteProviderService, SIonLabelTemplateDirective, SIonOptionTemplateDirective, SIonPlaceholderTemplateDirective, SIonPopoverComponent, SIonPopoverModule, SapphireIonFrameworkModule, Search, SecurePipe, SelectInterfaces, SionCardComponent, StepComponent, StepperComponent, StepperModule, StorageService, StringProperty, TabComponent, TableField, TableFieldFormBuilder, TabsComponent, TabsModule, TelefoneCelular, TextTooltipComponent, ThFilterComponent, TimeProperty, Timeout, TokenInterceptor, TooltipComponent, UsuarioService, Utils, UtilsService, View, ViewFiltros, ViewRetorno, idPreloaderConfiguration, lstImage, lstImageTypes };
12480
+ export { AbstractList, AbstractView, ApiUrlProviderService, AuthGuard, AuthService, BindLabelFactory, BindValueFactory, BoolProperty, CarouselComponent, CarouselImageComponent, CarouselItemComponent, CarouselModule, Comparison, ComparisonOperator, ComparisonOperatorString, ComparisonValueType, CompileFilters, CompileLstTableField, ContentBlockComponent, ControlError, DateProperty, DateTimeProperty, DecimalProperty, DefaultDrawerEndComponent, DefaultListComponent, DefaultLoginComponent, DefaultModule, DefaultPage, DefaultPageConfiguration, DefaultPageImage, DefaultPaginationComponent, DefaultRoutingFactory, DefaultTableComponent, DefaultViewComponent, Download, DownloadButtonComponent, DragDropFileDirective, DragDropFileModule, DragDropOverlayComponent, DrawerComponent, DrawerGroupComponent, EnumProperty, Environment, EnvironmentInjectionToken, EnvironmentService, ErrorInterceptor, FilterComponent, Forbidden403Component, FormValidators, FormatCep, FormatCpfCnpj, FormatTelefoneCelular, GenericService, HeaderListComponent, HeaderViewComponent, HttpService, HttpServiceAtivo, ICarouselItem, INT_MAX, ImageComponent, ImplicitProperty, InfiniteScroll, InfiniteScrollConfiguration, InfoPopoverComponent, InputBoolComponent, InputBoolConfiguration, InputBoolType, InputCepComponent, InputCepConfiguration, InputColorComponent, InputCpfCnpjComponent, InputCpfCnpjConfiguration, InputCurrencyConfiguration, InputDateComponent, InputDateConfiguration, InputDecimalComponent, InputDecimalConfiguration, InputFileComponent, InputFileConfiguration, InputIconComponent, InputNumberConfiguration, InputPercentageConfiguration, InputProviderFactory, InputSelectComponent, InputSelectConfiguration, InputSelectDataLoader, InputStringComponent, InputStringConfiguration, InputStringType, InputTelefoneCelularConfiguration, InputTelefoneComponent, InputTextareaComponent, InputType, InputsDefaultConfigurations, InputsModule, IntProperty, List, LoadingComponent, LoginAdminComponent, LongProperty, MainContentComponent, Menu, NavigationContextService, NgVarDirective, RouteCacheService, RouteData, RouteProviderService, SIonLabelTemplateDirective, SIonOptionTemplateDirective, SIonPlaceholderTemplateDirective, SIonPopoverComponent, SIonPopoverModule, SapphireIonFrameworkModule, Search, SecurePipe, SelectInterfaces, SionCardComponent, StepComponent, StepperComponent, StepperModule, StorageService, StringProperty, TabComponent, TableField, TableFieldFormBuilder, TabsComponent, TabsModule, TelefoneCelular, TextTooltipComponent, ThFilterComponent, TimeProperty, Timeout, TokenInterceptor, TooltipComponent, UsuarioService, Utils, UtilsService, View, ViewFiltros, ViewRetorno, idPreloaderConfiguration, lstImage, lstImageTypes };
12390
12481
  //# sourceMappingURL=sapphire-ion-framework.mjs.map