@sapphire-ion/framework 0.30.13 → 0.30.14
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.
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +1 -1
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +7 -4
- package/esm2022/lib/components/tabs/tab/tab.component.mjs +3 -3
- package/esm2022/lib/services/web/storage.service.mjs +2 -2
- package/fesm2022/sapphire-ion-framework.mjs +10 -7
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +3 -2
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +1 -1
- package/lib/components/stepper/step/step.component.d.ts +1 -1
- package/package.json +1 -1
- package/themes/compiled-styles.scss +12 -0
|
@@ -36,7 +36,7 @@ export class DefaultViewComponent extends View {
|
|
|
36
36
|
this.noBreadcrumbs = false;
|
|
37
37
|
}
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultViewComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: i2.ActivatedRoute }, { token: i3.GenericService }, { token: i4.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultViewComponent, selector: "default-view", inputs: { noBack: "noBack", noNew: "noNew", noBreadcrumbs: "noBreadcrumbs" }, usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\"> \r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n {{service.title}}\r\n </ion-breadcrumb>\r\n <ion-breadcrumb> \r\n {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n \r\n <ion-card>\r\n <ion-card-header class=\"!block\">\r\n <header-view *ngIf=\"service\" [novo]=\"id == 0\" [useDefaultRouting]=\"nested\" [loading]=\"loading\" [progress]=\"progress\" (save)=\"Save()\" [noBack]=\"noBack\" [noNew]=\"noNew\"></header-view>\r\n </ion-card-header>\r\n <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n <div class=\"grid grid-cols-12 gap-4 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n \r\n @for (field of lstTableFields; track $index) {\r\n @if (field.index != 'id') {\r\n @if (!field.hiddenView) {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n <input-bool [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n }\r\n @case (\"Currency\") {\r\n <input-currency [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n }\r\n @case (\"Date\") {\r\n <input-date [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n }\r\n @case (\"Time\") {\r\n <input-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n }\r\n @case (\"DateTime\") {\r\n <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n }\r\n @case (\"Decimal\") {\r\n <input-decimal [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n }\r\n @case (\"File\") {\r\n <input-file [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n }\r\n @case (\"String\") {\r\n <input-string [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-string>\r\n }\r\n @case (\"TextArea\") {\r\n <input-textarea [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-textarea>\r\n }\r\n @case (\"Number\") {\r\n <input-number [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n }\r\n @case (\"Select\") {\r\n <input-select [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n <ion-text class=\"text-2xl text-white\">\r\n <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n </ion-text>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-card-header{padding:0}\n"], dependencies: [{ kind: "component", type: i4.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i4.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i4.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i4.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.InputBoolComponent, selector: "input-bool", inputs: ["configuration"] }, { kind: "component", type: i7.InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: i8.InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: i9.InputFileComponent, selector: "input-file", inputs: ["configuration"] }, { kind: "component", type: i10.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: i11.InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "component", type: i12.InputTextareaComponent, selector: "input-textarea", inputs: ["configuration"] }, { kind: "component", type: i13.InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: ["configuration"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i14.HeaderViewComponent, selector: "header-view", inputs: ["novo", "loading", "progress", "noBack", "noNew", "useDefaultRouting"], outputs: ["save"] }] }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultViewComponent, selector: "default-view", inputs: { noBack: "noBack", noNew: "noNew", noBreadcrumbs: "noBreadcrumbs" }, usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\"> \r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n {{service.title}}\r\n </ion-breadcrumb>\r\n <ion-breadcrumb> \r\n {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n \r\n <ion-card>\r\n <ion-card-header class=\"!block\">\r\n <header-view *ngIf=\"service\" [novo]=\"id == 0\" [useDefaultRouting]=\"nested\" [loading]=\"loading\" [progress]=\"progress\" (save)=\"Save()\" [noBack]=\"noBack\" [noNew]=\"noNew\"></header-view>\r\n </ion-card-header>\r\n <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n <div class=\"grid grid-cols-12 gap-4 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n \r\n @for (field of lstTableFields; track $index) {\r\n @if (field.index != 'id') {\r\n @if (!field.hiddenView) {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n <input-bool [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n }\r\n @case (\"Currency\") {\r\n <input-currency [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n }\r\n @case (\"Date\") {\r\n <input-date [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n }\r\n @case (\"Time\") {\r\n <input-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n }\r\n @case (\"DateTime\") {\r\n <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n }\r\n @case (\"Decimal\") {\r\n <input-decimal [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n }\r\n @case (\"File\") {\r\n <input-file [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n }\r\n @case (\"String\") {\r\n <input-string [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-string>\r\n }\r\n @case (\"TextArea\") {\r\n <input-textarea [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-textarea>\r\n }\r\n @case (\"Number\") {\r\n <input-number [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n }\r\n @case (\"Select\") {\r\n <input-select [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n <ion-text class=\"text-2xl text-white\">\r\n <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n </ion-text>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-card-header{padding:0}\n"], dependencies: [{ kind: "component", type: i4.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i4.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i4.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i4.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.InputBoolComponent, selector: "input-bool", inputs: ["configuration"] }, { kind: "component", type: i7.InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: i8.InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: i9.InputFileComponent, selector: "input-file", inputs: ["configuration"] }, { kind: "component", type: i10.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: i11.InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "component", type: i12.InputTextareaComponent, selector: "input-textarea", inputs: ["configuration"] }, { kind: "component", type: i13.InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: ["configuration"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i14.HeaderViewComponent, selector: "header-view", inputs: ["novo", "loading", "progress", "noBack", "noNew", "useDefaultRouting", "backRoute"], outputs: ["save"] }] }); }
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultViewComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
@@ -15,9 +15,10 @@ export class HeaderViewComponent {
|
|
|
15
15
|
this.noBack = false;
|
|
16
16
|
this.noNew = false;
|
|
17
17
|
this.useDefaultRouting = false;
|
|
18
|
+
this.backRoute = null;
|
|
18
19
|
}
|
|
19
20
|
ngOnInit() { }
|
|
20
|
-
get
|
|
21
|
+
get DefaultBackRoute() {
|
|
21
22
|
const fullRoute = window.location.pathname.split('/');
|
|
22
23
|
const li = fullRoute[fullRoute.length - 1];
|
|
23
24
|
var offset = 1;
|
|
@@ -42,11 +43,11 @@ export class HeaderViewComponent {
|
|
|
42
43
|
this.saveEmitter.emit();
|
|
43
44
|
}
|
|
44
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting" }, 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 <ion-back-button style=\"--min-height: 100%;\"
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRoute: "backRoute" }, 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 || backRoute){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRoute ? backRoute : 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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }] }); }
|
|
46
47
|
}
|
|
47
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderViewComponent, decorators: [{
|
|
48
49
|
type: Component,
|
|
49
|
-
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 <ion-back-button style=\"--min-height: 100%;\"
|
|
50
|
+
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 || backRoute){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRoute ? backRoute : 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"] }]
|
|
50
51
|
}], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }], propDecorators: { novo: [{
|
|
51
52
|
type: Input
|
|
52
53
|
}], loading: [{
|
|
@@ -62,6 +63,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
62
63
|
type: Input
|
|
63
64
|
}], useDefaultRouting: [{
|
|
64
65
|
type: Input
|
|
66
|
+
}], backRoute: [{
|
|
67
|
+
type: Input
|
|
65
68
|
}], IonBackButtonElement: [{
|
|
66
69
|
type: ViewChild,
|
|
67
70
|
args: [IonBackButton]
|
|
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
72
|
type: ViewChild,
|
|
70
73
|
args: ['new']
|
|
71
74
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2hlYWRlci12aWV3L2hlYWRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBT2pELE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsWUFDVSxhQUE0QixFQUM1QixjQUE4QjtRQUQ5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFaL0IsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUN4QixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxFLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsVUFBSyxHQUFhLEtBQUssQ0FBQztRQUN4QixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsY0FBUyxHQUFrQixJQUFJLENBQUM7SUFLckMsQ0FBQztJQUVMLFFBQVEsS0FBSSxDQUFDO0lBRWIsSUFBYyxnQkFBZ0I7UUFDNUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXJELE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7WUFBQyxNQUFNLEVBQUUsQ0FBQztRQUFDLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQWEsRUFBRSxDQUFBO1FBQ3hCLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1lBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDL0UsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHTSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUk7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0EzQ1UsbUJBQW1CO21HQUFuQixtQkFBbUIsaVRBOEJuQixhQUFhLDZJQ3ZDMUIsazhGQStETTs7NEZEdERPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOytHQU1kLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixNQUFNO3VCQUFDLE1BQU07Z0JBRUwsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFvQm9CLG9CQUFvQjtzQkFBN0MsU0FBUzt1QkFBQyxhQUFhO2dCQUlOLG1CQUFtQjtzQkFBcEMsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbkJhY2tCdXR0b24sIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaGVhZGVyLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlclZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBub3ZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwcm9ncmVzczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgnc2F2ZScpIHNhdmVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7ICBcclxuXHJcbiAgQElucHV0KCkgbm9CYWNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbm9OZXcgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXNlRGVmYXVsdFJvdXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBiYWNrUm91dGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0IERlZmF1bHRCYWNrUm91dGUoKXtcclxuICAgIGNvbnN0IGZ1bGxSb3V0ZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpXHJcblxyXG4gICAgY29uc3QgbGkgPSBmdWxsUm91dGVbZnVsbFJvdXRlLmxlbmd0aCAtIDFdO1xyXG4gICAgdmFyIG9mZnNldCA9IDE7XHJcbiAgICBpZihOdW1iZXIobGkpKXsgb2Zmc2V0Kys7IH1cclxuICAgIGxldCByb3V0ZTogc3RyaW5nW10gPSBbXVxyXG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGZ1bGxSb3V0ZS5sZW5ndGggLSBvZmZzZXQ7IGkrKyl7IHJvdXRlLnB1c2goZnVsbFJvdXRlW2ldKTsgfVxyXG4gICAgcmV0dXJuIHJvdXRlLmpvaW4oJy8nKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoSW9uQmFja0J1dHRvbikgSW9uQmFja0J1dHRvbkVsZW1lbnQ6IElvbkJhY2tCdXR0b247IFxyXG4gIHB1YmxpYyBCYWNrKCRldmVudCA9IG51bGwpe1xyXG4gICAgdGhpcy5Jb25CYWNrQnV0dG9uRWxlbWVudC5vbkNsaWNrKCRldmVudClcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgnbmV3JykgTmV3SW9uQnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjsgXHJcbiAgcHVibGljIE5ldygpe1xyXG4gICAgaWYoIXRoaXMubm92byl7XHJcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZUZvcndhcmQoWycuLi8nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBTYXZlKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNhdmVFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLTcgZmxleFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEvMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0zXCI+XHJcbiAgICBAaWYoIW5vQmFjayl7XHJcbiAgICAgIEBpZih1c2VEZWZhdWx0Um91dGluZyB8fCBiYWNrUm91dGUpe1xyXG4gICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwibS0wXCIgZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgW3JvdXRlckxpbmtdPVwiYmFja1JvdXRlID8gYmFja1JvdXRlIDogRGVmYXVsdEJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC1bMS43cmVtXVwiIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInRleHQtYmFzZVwiPlZvbHRhcjwvaW9uLXRleHQ+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNle1xyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDEwMCU7XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiB0ZXh0PVwiVm9sdGFyXCIgW2RlZmF1bHRIcmVmXT1cIkRlZmF1bHRCYWNrUm91dGVcIj48L2lvbi1iYWNrLWJ1dHRvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSA8aW9uLWNhcmQgYnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJoLWZ1bGwgdy0xMiBtLTAgZGVmYXVsdC10cmFuc2l0aW9uXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KVwiPlxyXG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIGJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICBAaWYoIXVzZURlZmF1bHRSb3V0aW5nKXtcclxuICAgICAgICAgICAgPGlvbi1iYWNrLWJ1dHRvbiBjbGFzcz1cInNjYWxlLTc1IHNpemUtZnVsbFwiIHN0eWxlPVwiLS1taW4taGVpZ2h0OiAxMDAlO1wiIHRleHQ9XCJcIiAgW2RlZmF1bHRIcmVmXT1cIkJhY2tSb3V0ZVwiID5cclxuICAgICAgICAgICAgPC9pb24tYmFjay1idXR0b24+XHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cInNpemUtZnVsbFwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIFtyb3V0ZXJMaW5rXT1cIkJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvaW9uLWNhcmQ+IC0tPlxyXG4gICAgfVxyXG4gICAgQGlmKCFub0JhY2spe1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGJvcmRlci1yLTIgYm9yZGVyLXItcHJpbWFyeSBib3JkZXItc29saWQgbWFzay15LzUwXCI+PC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiLW14LTJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJTYXZlKClcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwic2F2ZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBTYWx2YXJcclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdy1bMTI1JV0gaC1bMTI1JV0gLXRvcC1bMTIuNSVdIC1sZWZ0LVsxMi41JV0gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uIGJhY2tkcm9wLWJsdXItc21cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCAtdHJhbnNsYXRlLXktOCc6ICFsb2FkaW5nfVwiPlxyXG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInRleHQtc20gbXQtMVwiPjxiPlxyXG4gICAgICAgICAgQGlmKHByb2dyZXNzKXtcclxuICAgICAgICAgICAge3socHJvZ3Jlc3MgKiAxMDApIHwgbnVtYmVyOiAnMS4xLTEnfX0lXHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7ezAgfCBudW1iZXI6ICcxLjEtMSd9fSVcclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2I+PC9pb24tdGV4dD5cclxuICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBbdmFsdWVdPVwicHJvZ3Jlc3NcIiBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInctZnVsbCBkZWZhdWx0LXRyYW5zaXRpb25cIj48L2lvbi1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInctMS8yIGZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICAgIEBpZighKG5vTmV3IHx8IG5vdm8pKXtcclxuICAgICAgPGlvbi1idXR0b24gI25ldyBbcm91dGVyTGlua109XCJbJy4uLyddXCIgY2xhc3M9XCJtLTBcIiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBuYW1lPVwiYWRkXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBOb3ZvXHJcbiAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -17,11 +17,11 @@ export class TabComponent {
|
|
|
17
17
|
this.guid = Utils.GenerateGUID();
|
|
18
18
|
}
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, selector: "tab", inputs: { id: "id", label: "label", name: "name", route: "route", active: "active", relative: "relative" }, viewQueries: [{ propertyName: "placeToRender", first: true, predicate: ["placeToRender"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, selector: "tab", inputs: { id: "id", label: "label", name: "name", route: "route", active: "active", relative: "relative" }, viewQueries: [{ propertyName: "placeToRender", first: true, predicate: ["placeToRender"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <!-- <ion-router-outlet class=\"size-full\"></ion-router-outlet> -->\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
21
21
|
}
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
|
-
args: [{ selector: 'tab', template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>" }]
|
|
24
|
+
args: [{ selector: 'tab', template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <!-- <ion-router-outlet class=\"size-full\"></ion-router-outlet> -->\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>" }]
|
|
25
25
|
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
26
26
|
type: Input
|
|
27
27
|
}], label: [{
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
38
38
|
type: ViewChild,
|
|
39
39
|
args: ['placeToRender', { read: ViewContainerRef }]
|
|
40
40
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBT3hELE1BQU0sT0FBTyxZQUFZO0lBV3ZCO1FBVlMsT0FBRSxHQUFlLElBQUksQ0FBQztRQUV0QixVQUFLLEdBQVksT0FBTyxDQUFDO1FBQ2xDLG1EQUFtRDtRQUMxQyxTQUFJLEdBQWEsU0FBUyxDQUFDO1FBQ3BDLDBFQUEwRTtRQUMxRCxVQUFLLEdBQW1CLElBQUksQ0FBQztRQUNwQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLbkMsaUJBQVksR0FBd0IsSUFBSSxDQUFDO1FBRXpDLFNBQUksR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFMWixDQUFDOytHQVhOLFlBQVk7bUdBQVosWUFBWSxrUEFhWSxnQkFBZ0IsNkJDdEJyRCxvYUFRTTs7NEZEQ08sWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxLQUFLO3dEQUtOLEVBQUU7c0JBQVYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSWdELGFBQWE7c0JBQWxFLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RhYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGlkICAgOiBzdHJpbmcgID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyAgPSBcIkxhYmVsXCI7XHJcbiAgLyoqIEljb25lIGRhIGFiYSBAbGluayBodHRwczovL2lvbmljLmlvL2lvbmljb25zICovXHJcbiAgQElucHV0KCkgbmFtZSA6IHN0cmluZyAgPSBcIndhcm5pbmdcIjtcclxuICAvKiogUm90YSBhYmEsIHF1YW5kbyBuw6FvIGluZm9ybWFkYSBpcsOhIG1vc3RyYXIgbyBjb250ZXVkbyBkbyBjb21wb25lbnRlICovXHJcbiAgQElucHV0KCkgcHVibGljIHJvdXRlIDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGxhY2VUb1JlbmRlcicsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgcGxhY2VUb1JlbmRlcjogVmlld0NvbnRhaW5lclJlZjtcclxuICByb3V0ZXJPdXRsZXQ6IFJvdXRlck91dGxldCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBndWlkID0gVXRpbHMuR2VuZXJhdGVHVUlEKCk7XHJcbn1cclxuXHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwieyctdHJhbnNsYXRlLXgtZnVsbCBvcGFjaXR5LTAnOiAhYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICchcmVsYXRpdmUnOiByZWxhdGl2ZSB9XCIgY2xhc3M9XCJkZWZhdWx0LXRyYW5zaXRpb24gb3ZlcmZsb3ctaGlkZGVuIG1heC1oLWZ1bGwgc2l6ZS1mdWxsIGFic29sdXRlIHRvcC0wIGxlZnQtMFwiPlxyXG4gIEBpZihyb3V0ZSAmJiBhY3RpdmUpe1xyXG4gICAgPCEtLSA8aW9uLXJvdXRlci1vdXRsZXQgY2xhc3M9XCJzaXplLWZ1bGxcIj48L2lvbi1yb3V0ZXItb3V0bGV0PiAtLT5cclxuICAgIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwic2l6ZS1mdWxsXCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gIH1AZWxzZSB7XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
|
|
@@ -56,7 +56,7 @@ export class StorageService {
|
|
|
56
56
|
}
|
|
57
57
|
static SanitizeFileName(v) {
|
|
58
58
|
try {
|
|
59
|
-
var filenameEnd = v.split('/')
|
|
59
|
+
var filenameEnd = v.split('/').at(-1);
|
|
60
60
|
if (filenameEnd.split('.').length <= 2) {
|
|
61
61
|
return filenameEnd;
|
|
62
62
|
}
|
|
@@ -125,4 +125,4 @@ function DownloadFile(data, fileUrl) {
|
|
|
125
125
|
});
|
|
126
126
|
linkElement.dispatchEvent(me);
|
|
127
127
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElB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eXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIERvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodik6IHN0cmluZ3tcclxuICAgIHRyeXtcclxuICAgICAgdmFyIGZpbGVuYW1lRW5kOiBzdHJpbmcgID0gdi5zcGxpdCgnLycpW3Yuc3BsaXQoJy8nKS5sZW5ndGggLSAxXVxyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZCB7XHJcbiAgcmVxdWVzdFByb2dlc3M6IE9ic2VydmFibGU8YW55PjtcclxuICBwcm9ncmVzcyAgICAgIDogbnVtYmVyID0gMC4wMDAwMTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZTogc3RyaW5nKXt9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERvd25sb2FkRmlsZShkYXRhOiBIdHRwUmVzcG9uc2U8QmxvYj4sIGZpbGVVcmwpIHtcclxuICBjb25zdCBkb3dubG9hZGVkRmlsZSA9IG5ldyBCbG9iKFtkYXRhLmJvZHldLCB7IHR5cGU6IGRhdGEuYm9keS50eXBlIH0pO1xyXG5cclxuICB2YXIgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG93bmxvYWRlZEZpbGUpO1xyXG4gIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBmaWxlVVJMKTtcclxuICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIiwgXCJfYmxhbmtcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgU3RvcmFnZVNlcnZpY2UuU2FuaXRpemVGaWxlTmFtZShmaWxlVXJsKSk7XHJcblxyXG4gIGxldCBtZSA9IG5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIiwge1xyXG4gICAgICB2aWV3OiB3aW5kb3csXHJcbiAgICAgIGJ1YmJsZXM6IHRydWUsXHJcbiAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxyXG4gIH0pO1xyXG5cclxuICBsaW5rRWxlbWVudC5kaXNwYXRjaEV2ZW50KG1lKTtcclxufSJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElB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QTdGVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFpR0QsTUFBTSxPQUFPLFFBQVE7SUFHbkIsWUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFEL0IsYUFBUSxHQUFpQixPQUFPLENBQUM7SUFDQSxDQUFDO0NBQ25DO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBd0IsRUFBRSxPQUFPO0lBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV2RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzdCLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIERvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodik6IHN0cmluZ3tcclxuICAgIHRyeXtcclxuICAgICAgdmFyIGZpbGVuYW1lRW5kOiBzdHJpbmcgID0gdi5zcGxpdCgnLycpLmF0KC0xKTtcclxuICAgICAgXHJcbiAgICAgIGlmKGZpbGVuYW1lRW5kLnNwbGl0KCcuJykubGVuZ3RoIDw9IDIpe1xyXG4gICAgICAgIHJldHVybiBmaWxlbmFtZUVuZDtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdmFyIGxzdCA9IGZpbGVuYW1lRW5kLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgbHN0WzBdID0gJyc7XHJcbiAgICAgICAgcmV0dXJuIGxzdC5qb2luKCcuJykucmVwbGFjZSgnLicsICcnKTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgR2V0RmlsZShmaWxlVXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHZhciB1cmw6IHN0cmluZztcclxuICAgIGlmKGZpbGVVcmxbMF0gPT0gJy8nKXsgXHJcbiAgICAgIHVybCA9IGZpbGVVcmwuc2xpY2UoMSwgZmlsZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB1cmwgPSBgJHt0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmx9JHtmaWxlVXJsfWA7XHJcbiAgICB9XHJcbiAgICB1cmwgPSBlbmNvZGVVUkkodXJsKS5yZXBsYWNlKC8jL2csICclMjMnKVxyXG5cclxuICAgIGlmKCFwb3N0KXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgcGFyYW1zLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWQge1xyXG4gIHJlcXVlc3RQcm9nZXNzOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgcHJvZ3Jlc3MgICAgICA6IG51bWJlciA9IDAuMDAwMDE7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGZpbGU6IHN0cmluZyl7fVxyXG59XHJcblxyXG5mdW5jdGlvbiBEb3dubG9hZEZpbGUoZGF0YTogSHR0cFJlc3BvbnNlPEJsb2I+LCBmaWxlVXJsKSB7XHJcbiAgY29uc3QgZG93bmxvYWRlZEZpbGUgPSBuZXcgQmxvYihbZGF0YS5ib2R5XSwgeyB0eXBlOiBkYXRhLmJvZHkudHlwZSB9KTtcclxuXHJcbiAgdmFyIGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvd25sb2FkZWRGaWxlKTtcclxuICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImhyZWZcIiwgZmlsZVVSTCk7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX2JsYW5rXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIFN0b3JhZ2VTZXJ2aWNlLlNhbml0aXplRmlsZU5hbWUoZmlsZVVybCkpO1xyXG5cclxuICBsZXQgbWUgPSBuZXcgTW91c2VFdmVudChcImNsaWNrXCIsIHtcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcclxuICB9KTtcclxuXHJcbiAgbGlua0VsZW1lbnQuZGlzcGF0Y2hFdmVudChtZSk7XHJcbn0iXX0=
|
|
@@ -1999,7 +1999,7 @@ class StorageService {
|
|
|
1999
1999
|
}
|
|
2000
2000
|
static SanitizeFileName(v) {
|
|
2001
2001
|
try {
|
|
2002
|
-
var filenameEnd = v.split('/')
|
|
2002
|
+
var filenameEnd = v.split('/').at(-1);
|
|
2003
2003
|
if (filenameEnd.split('.').length <= 2) {
|
|
2004
2004
|
return filenameEnd;
|
|
2005
2005
|
}
|
|
@@ -3847,9 +3847,10 @@ class HeaderViewComponent {
|
|
|
3847
3847
|
this.noBack = false;
|
|
3848
3848
|
this.noNew = false;
|
|
3849
3849
|
this.useDefaultRouting = false;
|
|
3850
|
+
this.backRoute = null;
|
|
3850
3851
|
}
|
|
3851
3852
|
ngOnInit() { }
|
|
3852
|
-
get
|
|
3853
|
+
get DefaultBackRoute() {
|
|
3853
3854
|
const fullRoute = window.location.pathname.split('/');
|
|
3854
3855
|
const li = fullRoute[fullRoute.length - 1];
|
|
3855
3856
|
var offset = 1;
|
|
@@ -3874,11 +3875,11 @@ class HeaderViewComponent {
|
|
|
3874
3875
|
this.saveEmitter.emit();
|
|
3875
3876
|
}
|
|
3876
3877
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i3.NavController }, { token: i2$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3877
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting" }, 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 <ion-back-button style=\"--min-height: 100%;\"
|
|
3878
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRoute: "backRoute" }, 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 || backRoute){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRoute ? backRoute : 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: i3.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: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i2$1.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: i2$1.DecimalPipe, name: "number" }] }); }
|
|
3878
3879
|
}
|
|
3879
3880
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderViewComponent, decorators: [{
|
|
3880
3881
|
type: Component,
|
|
3881
|
-
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 <ion-back-button style=\"--min-height: 100%;\"
|
|
3882
|
+
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 || backRoute){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRoute ? backRoute : 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"] }]
|
|
3882
3883
|
}], ctorParameters: () => [{ type: i3.NavController }, { type: i2$2.ActivatedRoute }], propDecorators: { novo: [{
|
|
3883
3884
|
type: Input
|
|
3884
3885
|
}], loading: [{
|
|
@@ -3894,6 +3895,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3894
3895
|
type: Input
|
|
3895
3896
|
}], useDefaultRouting: [{
|
|
3896
3897
|
type: Input
|
|
3898
|
+
}], backRoute: [{
|
|
3899
|
+
type: Input
|
|
3897
3900
|
}], IonBackButtonElement: [{
|
|
3898
3901
|
type: ViewChild,
|
|
3899
3902
|
args: [IonBackButton]
|
|
@@ -4243,7 +4246,7 @@ class DefaultViewComponent extends View {
|
|
|
4243
4246
|
this.noBreadcrumbs = false;
|
|
4244
4247
|
}
|
|
4245
4248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultViewComponent, deps: [{ token: i1$1.FormBuilder }, { token: i0.ElementRef }, { token: i2$2.ActivatedRoute }, { token: GenericService }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4246
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultViewComponent, selector: "default-view", inputs: { noBack: "noBack", noNew: "noNew", noBreadcrumbs: "noBreadcrumbs" }, usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\"> \r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n {{service.title}}\r\n </ion-breadcrumb>\r\n <ion-breadcrumb> \r\n {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n \r\n <ion-card>\r\n <ion-card-header class=\"!block\">\r\n <header-view *ngIf=\"service\" [novo]=\"id == 0\" [useDefaultRouting]=\"nested\" [loading]=\"loading\" [progress]=\"progress\" (save)=\"Save()\" [noBack]=\"noBack\" [noNew]=\"noNew\"></header-view>\r\n </ion-card-header>\r\n <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n <div class=\"grid grid-cols-12 gap-4 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n \r\n @for (field of lstTableFields; track $index) {\r\n @if (field.index != 'id') {\r\n @if (!field.hiddenView) {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n <input-bool [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n }\r\n @case (\"Currency\") {\r\n <input-currency [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n }\r\n @case (\"Date\") {\r\n <input-date [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n }\r\n @case (\"Time\") {\r\n <input-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n }\r\n @case (\"DateTime\") {\r\n <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n }\r\n @case (\"Decimal\") {\r\n <input-decimal [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n }\r\n @case (\"File\") {\r\n <input-file [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n }\r\n @case (\"String\") {\r\n <input-string [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-string>\r\n }\r\n @case (\"TextArea\") {\r\n <input-textarea [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-textarea>\r\n }\r\n @case (\"Number\") {\r\n <input-number [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n }\r\n @case (\"Select\") {\r\n <input-select [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n <ion-text class=\"text-2xl text-white\">\r\n <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n </ion-text>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-card-header{padding:0}\n"], dependencies: [{ kind: "component", type: i3.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i3.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputBoolComponent, selector: "input-bool", inputs: ["configuration"] }, { kind: "component", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: InputFileComponent, selector: "input-file", inputs: ["configuration"] }, { kind: "component", type: InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "component", type: InputTextareaComponent, selector: "input-textarea", inputs: ["configuration"] }, { kind: "component", type: InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: ["configuration"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HeaderViewComponent, selector: "header-view", inputs: ["novo", "loading", "progress", "noBack", "noNew", "useDefaultRouting"], outputs: ["save"] }] }); }
|
|
4249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultViewComponent, selector: "default-view", inputs: { noBack: "noBack", noNew: "noNew", noBreadcrumbs: "noBreadcrumbs" }, usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\"> \r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n {{service.title}}\r\n </ion-breadcrumb>\r\n <ion-breadcrumb> \r\n {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n \r\n <ion-card>\r\n <ion-card-header class=\"!block\">\r\n <header-view *ngIf=\"service\" [novo]=\"id == 0\" [useDefaultRouting]=\"nested\" [loading]=\"loading\" [progress]=\"progress\" (save)=\"Save()\" [noBack]=\"noBack\" [noNew]=\"noNew\"></header-view>\r\n </ion-card-header>\r\n <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n <div class=\"grid grid-cols-12 gap-4 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n \r\n @for (field of lstTableFields; track $index) {\r\n @if (field.index != 'id') {\r\n @if (!field.hiddenView) {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n <input-bool [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n }\r\n @case (\"Currency\") {\r\n <input-currency [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n }\r\n @case (\"Date\") {\r\n <input-date [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n }\r\n @case (\"Time\") {\r\n <input-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n }\r\n @case (\"DateTime\") {\r\n <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n }\r\n @case (\"Decimal\") {\r\n <input-decimal [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n }\r\n @case (\"File\") {\r\n <input-file [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n }\r\n @case (\"String\") {\r\n <input-string [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-string>\r\n }\r\n @case (\"TextArea\") {\r\n <input-textarea [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-textarea>\r\n }\r\n @case (\"Number\") {\r\n <input-number [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n }\r\n @case (\"Select\") {\r\n <input-select [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n <ion-text class=\"text-2xl text-white\">\r\n <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n </ion-text>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-card-header{padding:0}\n"], dependencies: [{ kind: "component", type: i3.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i3.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputBoolComponent, selector: "input-bool", inputs: ["configuration"] }, { kind: "component", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: InputFileComponent, selector: "input-file", inputs: ["configuration"] }, { kind: "component", type: InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "component", type: InputTextareaComponent, selector: "input-textarea", inputs: ["configuration"] }, { kind: "component", type: InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: ["configuration"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HeaderViewComponent, selector: "header-view", inputs: ["novo", "loading", "progress", "noBack", "noNew", "useDefaultRouting", "backRoute"], outputs: ["save"] }] }); }
|
|
4247
4250
|
}
|
|
4248
4251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultViewComponent, decorators: [{
|
|
4249
4252
|
type: Component,
|
|
@@ -5956,11 +5959,11 @@ class TabComponent {
|
|
|
5956
5959
|
this.guid = Utils.GenerateGUID();
|
|
5957
5960
|
}
|
|
5958
5961
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5959
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, selector: "tab", inputs: { id: "id", label: "label", name: "name", route: "route", active: "active", relative: "relative" }, viewQueries: [{ propertyName: "placeToRender", first: true, predicate: ["placeToRender"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
5962
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, selector: "tab", inputs: { id: "id", label: "label", name: "name", route: "route", active: "active", relative: "relative" }, viewQueries: [{ propertyName: "placeToRender", first: true, predicate: ["placeToRender"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <!-- <ion-router-outlet class=\"size-full\"></ion-router-outlet> -->\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
5960
5963
|
}
|
|
5961
5964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, decorators: [{
|
|
5962
5965
|
type: Component,
|
|
5963
|
-
args: [{ selector: 'tab', template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>" }]
|
|
5966
|
+
args: [{ selector: 'tab', template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <!-- <ion-router-outlet class=\"size-full\"></ion-router-outlet> -->\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>" }]
|
|
5964
5967
|
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
5965
5968
|
type: Input
|
|
5966
5969
|
}], label: [{
|