@sapphire-ion/framework 1.2.60 → 1.2.62

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,14 @@ 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
+ // se contém "/from/", precisa subir 2 níveis
1067
+ const currentSegments = activatedRoute.snapshot.url.map(u => u.path);
1068
+ const level = currentSegments.includes('from') ? '../../' : '../';
1069
+ this.navController.navigateRoot([`${level}${path}`], {
1070
+ relativeTo: activatedRoute,
1071
+ state: { __preserveBack: true }
1072
+ });
1067
1073
  }
1068
1074
  FilesToForm(object, formData = new FormData(), lstTableFieldsView = null) {
1069
1075
  if (!lstTableFieldsView) {
@@ -4610,10 +4616,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4610
4616
  args: ['defList']
4611
4617
  }] } });
4612
4618
 
4619
+ class NavigationContextService {
4620
+ constructor(router) {
4621
+ this.router = router;
4622
+ this.previousUrl = null;
4623
+ this.currentUrl = null;
4624
+ this.currentUrl = this.router.url;
4625
+ this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e) => {
4626
+ const nextUrl = e.urlAfterRedirects;
4627
+ const preserve = history.state?.__preserveBack == true;
4628
+ const currentBase = this.currentUrl ? this.getBaseRoute(this.currentUrl) : null;
4629
+ const nextBase = this.getBaseRoute(nextUrl);
4630
+ const nav = this.router.getCurrentNavigation();
4631
+ const isBack = nav?.trigger == 'popstate';
4632
+ // Redirect técnico - ignora
4633
+ if (preserve) {
4634
+ this.currentUrl = nextUrl;
4635
+ return;
4636
+ }
4637
+ // Navegação interna da mesma view (Ex: Item <-> View Principal)
4638
+ if (currentBase && currentBase == nextBase) {
4639
+ // ajustes no histórico baseando-se estritamente na hierarquia.
4640
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
4641
+ const cleanBase = nextBase.replace(/\/$/, '');
4642
+ if (cleanNext == cleanBase) {
4643
+ // voltou para a raiz da entidade
4644
+ this.previousUrl = this.getListRoute(nextBase);
4645
+ }
4646
+ else {
4647
+ // voltou de um filho → pai REAL
4648
+ this.previousUrl = this.getParentRoute(nextUrl);
4649
+ }
4650
+ this.currentUrl = nextUrl;
4651
+ return;
4652
+ }
4653
+ // Chegou numa view base VIA BACK (de outro módulo)
4654
+ if (isBack) {
4655
+ // Se voltou de fora (OS -> Obra), recalcula para garantir
4656
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
4657
+ const cleanBase = nextBase.replace(/\/$/, '');
4658
+ if (cleanNext === cleanBase) {
4659
+ this.previousUrl = this.getListRoute(nextBase);
4660
+ }
4661
+ else {
4662
+ this.previousUrl = nextBase;
4663
+ }
4664
+ this.currentUrl = nextUrl;
4665
+ return;
4666
+ }
4667
+ // Navegação real (Entrando em um módulo novo ou avançando)
4668
+ this.previousUrl = this.currentUrl;
4669
+ this.currentUrl = nextUrl;
4670
+ });
4671
+ }
4672
+ getBaseRoute(url) {
4673
+ //pega a rota base
4674
+ const parts = url.split('/').filter(Boolean);
4675
+ const base = [];
4676
+ for (const part of parts) {
4677
+ base.push(part);
4678
+ if (!isNaN(Number(part))) {
4679
+ break;
4680
+ }
4681
+ }
4682
+ return '/' + base.join('/');
4683
+ }
4684
+ getListRoute(baseRoute) {
4685
+ //verifica se a rota de retorno é a inicial
4686
+ const parts = baseRoute.split('/').filter(Boolean);
4687
+ return '/' + parts[0];
4688
+ }
4689
+ getParentRoute(url) {
4690
+ const clean = url.split('?')[0].replace(/\/$/, '');
4691
+ let parts = clean.split('/').filter(Boolean);
4692
+ // ---- REGRA FROM ----
4693
+ const idx = parts.indexOf('from');
4694
+ if (idx != -1) {
4695
+ // remove o "from" e o parâmetro após ele
4696
+ parts = parts.slice(0, idx);
4697
+ // se o último item for view → remove também
4698
+ if (parts[parts.length - 1] === 'view') {
4699
+ parts.pop();
4700
+ }
4701
+ return '/' + parts.join('/');
4702
+ }
4703
+ // ---- REGRA VIEW ----
4704
+ if (parts.length <= 1) {
4705
+ return '/' + parts.join('/');
4706
+ }
4707
+ if (!isNaN(Number(parts[parts.length - 1]))) {
4708
+ parts.pop();
4709
+ }
4710
+ if (parts[parts.length - 1] === 'view') {
4711
+ parts.pop();
4712
+ }
4713
+ return '/' + parts.join('/');
4714
+ }
4715
+ getBackRoute() {
4716
+ return this.previousUrl;
4717
+ }
4718
+ 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 }); }
4719
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, providedIn: 'root' }); }
4720
+ }
4721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, decorators: [{
4722
+ type: Injectable,
4723
+ args: [{ providedIn: 'root' }]
4724
+ }], ctorParameters: () => [{ type: i2$2.Router }] });
4725
+
4613
4726
  class HeaderViewComponent {
4614
- constructor(navController, activatedRoute) {
4727
+ constructor(navController, activatedRoute, navContext) {
4615
4728
  this.navController = navController;
4616
4729
  this.activatedRoute = activatedRoute;
4730
+ this.navContext = navContext;
4617
4731
  this.novo = false;
4618
4732
  this.progress = null;
4619
4733
  this.saveEmitter = new EventEmitter();
@@ -4632,17 +4746,7 @@ class HeaderViewComponent {
4632
4746
  }
4633
4747
  ngOnInit() { }
4634
4748
  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('/');
4749
+ return this.navContext.getBackRoute() ?? '/';
4646
4750
  }
4647
4751
  Back($event = null) {
4648
4752
  this.IonBackButtonElement.onClick($event);
@@ -4655,13 +4759,13 @@ class HeaderViewComponent {
4655
4759
  Save() {
4656
4760
  this.saveEmitter.emit();
4657
4761
  }
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 }); }
4762
+ 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
4763
  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
4764
  }
4661
4765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, decorators: [{
4662
4766
  type: Component,
4663
4767
  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: [{
4768
+ }], ctorParameters: () => [{ type: i1.NavController }, { type: i2$2.ActivatedRoute }, { type: NavigationContextService }], propDecorators: { novo: [{
4665
4769
  type: Input
4666
4770
  }], loading: [{
4667
4771
  type: Input
@@ -4713,6 +4817,7 @@ class View {
4713
4817
  this.activatedRoute = inject(ActivatedRoute);
4714
4818
  this.elementRef = inject(ElementRef);
4715
4819
  this.fb = inject(FormBuilder);
4820
+ this.navContext = inject(NavigationContextService);
4716
4821
  }
4717
4822
  async ngOnInit() {
4718
4823
  if (this.lstTableFields.length == 0) {
@@ -4799,20 +4904,13 @@ class View {
4799
4904
  this.SaveEmitter.emit(this.id);
4800
4905
  }
4801
4906
  get BackRoute() {
4802
- const fullRoute = window.location.pathname.split('/');
4803
- const li = fullRoute[fullRoute.length - 1];
4804
- var offset = 1;
4805
- if (Number(li)) {
4806
- offset++;
4807
- }
4808
- let route = [];
4809
- for (let i = 0; i < fullRoute.length - offset; i++) {
4810
- route.push(fullRoute[i]);
4811
- }
4812
- return route.join('/');
4907
+ return this.navContext.getBackRoute() ?? '/';
4813
4908
  }
4814
4909
  GetCurrentRouting() { return this.activatedRoute; }
4815
- NavigateToList() { this.navController.navigateBack(this.BackRoute); }
4910
+ NavigateToList() {
4911
+ const back = this.navContext.getBackRoute() ?? '/';
4912
+ this.navController.navigateBack(back);
4913
+ }
4816
4914
  onKeyPress($event) {
4817
4915
  if (!(this.elementRef.nativeElement.contains(document.activeElement) || document.activeElement == this.elementRef.nativeElement)) {
4818
4916
  return;
@@ -12386,5 +12484,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
12386
12484
  * Generated bundle index. Do not edit.
12387
12485
  */
12388
12486
 
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 };
12487
+ 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
12488
  //# sourceMappingURL=sapphire-ion-framework.mjs.map