@unipin/angular-applet 18.0.1 → 18.0.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +8 -6
  2. package/esm2022/lib/components/approval/form/approval-form.component.mjs +5 -5
  3. package/esm2022/lib/components/approval/list/approval-list.component.mjs +14 -8
  4. package/esm2022/lib/components/approval/services/approval.service.mjs +3 -3
  5. package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +3 -3
  6. package/esm2022/lib/components/audit/list/audit-list.component.mjs +3 -3
  7. package/esm2022/lib/components/audit/service/audit.service.mjs +3 -3
  8. package/esm2022/lib/components/buttons/group/btn-group.component.mjs +3 -3
  9. package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +3 -3
  10. package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +3 -3
  11. package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +3 -3
  12. package/esm2022/lib/components/containers/column-container/column-container.component.mjs +3 -3
  13. package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +3 -3
  14. package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +3 -3
  15. package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +3 -3
  16. package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +3 -3
  17. package/esm2022/lib/components/filter/filter.component.mjs +4 -4
  18. package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +3 -3
  19. package/esm2022/lib/components/forms/date/form-date.component.mjs +3 -3
  20. package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +3 -3
  21. package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +3 -3
  22. package/esm2022/lib/components/forms/input/form-input.component.mjs +3 -3
  23. package/esm2022/lib/components/forms/number/form-number.component.mjs +3 -3
  24. package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +3 -3
  25. package/esm2022/lib/components/forms/password/form-password.component.mjs +3 -3
  26. package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +3 -3
  27. package/esm2022/lib/components/forms/select/form-select.component.mjs +3 -3
  28. package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +3 -3
  29. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +3 -3
  30. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +3 -3
  31. package/esm2022/lib/components/grids/services/grid.service.mjs +3 -3
  32. package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +3 -3
  33. package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +3 -3
  34. package/esm2022/lib/components/tabs/tabs.component.module.mjs +4 -4
  35. package/esm2022/lib/interceptors/header/header.interceptor.mjs +3 -3
  36. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +3 -3
  37. package/esm2022/lib/modules/permission/directive/permission.directive.mjs +3 -3
  38. package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +3 -3
  39. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +3 -3
  40. package/esm2022/lib/modules/permission/permission.module.mjs +4 -4
  41. package/esm2022/lib/modules/permission/services/permission.service.mjs +3 -3
  42. package/esm2022/lib/resolvers/auth/auth.resolver.mjs +3 -3
  43. package/esm2022/lib/services/auth/auth.service.mjs +3 -3
  44. package/esm2022/lib/services/country/country.service.mjs +3 -3
  45. package/esm2022/lib/services/currency/currency.service.mjs +3 -3
  46. package/esm2022/lib/services/profile/profile.service.mjs +3 -3
  47. package/fesm2022/unipin-angular-applet.mjs +155 -147
  48. package/fesm2022/unipin-angular-applet.mjs.map +1 -1
  49. package/package.json +2 -2
@@ -47,7 +47,9 @@ export class ApprovalDetailComponent {
47
47
  });
48
48
  }
49
49
  }
50
- ngOnDestroy() { this.sub.unsubscribe(); }
50
+ ngOnDestroy() {
51
+ this.sub.unsubscribe();
52
+ }
51
53
  changeTab(f) {
52
54
  switch (f) {
53
55
  default:
@@ -57,10 +59,10 @@ export class ApprovalDetailComponent {
57
59
  setChildGuid(guid) {
58
60
  this.formComponent?.setGuid(this.guids ?? [guid], this.isApprove);
59
61
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalDetailComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ApprovalDetailComponent, isStandalone: true, selector: "up-approval-detail", host: { classAttribute: "d-block h-100" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: ApprovalFormComponent, descendants: true }], ngImport: i0, template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n <up-btn-group id=\"button\" *ngIf=\"!formComponent?.isLoading; else loading\" [config]=\"btnConfig\" />\n\n <ng-template #loading>\n <ion-skeleton-text id=\"button\" class=\"m-0 sk-btn\" />\n </ng-template>\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TabsComponentModule }, { kind: "component", type: i4.TabGroupComponent, selector: "up-tab-group", outputs: ["onChange"] }, { kind: "component", type: i5.TabContentComponent, selector: "up-tab-content", inputs: ["header"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: ColumnHeaderContainerComponent, selector: "up-column-header-container", inputs: ["header", "prevUrl"] }, { kind: "component", type: ApprovalFormComponent, selector: "up-approval-form", inputs: ["isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalDetailComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ApprovalDetailComponent, isStandalone: true, selector: "up-approval-detail", host: { classAttribute: "d-block h-100" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: ApprovalFormComponent, descendants: true }], ngImport: i0, template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n <up-btn-group id=\"approval-detail-button\" *ngIf=\"!formComponent?.isLoading; else loading\" [config]=\"btnConfig\" button />\n\n <ng-template #loading>\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n </ng-template>\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TabsComponentModule }, { kind: "component", type: i4.TabGroupComponent, selector: "up-tab-group", outputs: ["onChange"] }, { kind: "component", type: i5.TabContentComponent, selector: "up-tab-content", inputs: ["header"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: ColumnHeaderContainerComponent, selector: "up-column-header-container", inputs: ["header", "prevUrl"] }, { kind: "component", type: ApprovalFormComponent, selector: "up-approval-form", inputs: ["isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
64
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalDetailComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalDetailComponent, decorators: [{
64
66
  type: Component,
65
67
  args: [{ standalone: true, selector: 'up-approval-detail', changeDetection: ChangeDetectionStrategy.OnPush, host: {
66
68
  class: 'd-block h-100'
@@ -71,9 +73,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
71
73
  ButtonGroupComponent,
72
74
  ColumnHeaderContainerComponent,
73
75
  ApprovalFormComponent
74
- ], template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n <up-btn-group id=\"button\" *ngIf=\"!formComponent?.isLoading; else loading\" [config]=\"btnConfig\" />\n\n <ng-template #loading>\n <ion-skeleton-text id=\"button\" class=\"m-0 sk-btn\" />\n </ng-template>\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n" }]
76
+ ], template: "<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n <up-btn-group id=\"approval-detail-button\" *ngIf=\"!formComponent?.isLoading; else loading\" [config]=\"btnConfig\" button />\n\n <ng-template #loading>\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n </ng-template>\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n" }]
75
77
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { formComponent: [{
76
78
  type: ViewChild,
77
79
  args: [ApprovalFormComponent]
78
80
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBa0IsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQzNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBb0J2RSxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ3FCLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUjVDLGNBQVMsR0FBd0IsRUFBRSxDQUFDO1FBQ2pDLFNBQUksR0FBVyxFQUFF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dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb25maWcgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2ludGVyZmFjZXMvYnRuLWdyb3VwLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwcm92YWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvYnRuLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5IZWFkZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250YWluZXJzL2NvbHVtLWhlYWRlci1jb250YWluZXIvY29sdW1uLWhlYWRlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi90YWJzL3RhYnMuY29tcG9uZW50Lm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWFwcHJvdmFsLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2QtYmxvY2sgaC0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVGFic0NvbXBvbmVudE1vZHVsZSxcbiAgICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgICBDb2x1bW5IZWFkZXJDb250YWluZXJDb21wb25lbnQsXG4gICAgQXBwcm92YWxGb3JtQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxEZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChBcHByb3ZhbEZvcm1Db21wb25lbnQpIHB1YmxpYyBmb3JtQ29tcG9uZW50PzogQXBwcm92YWxGb3JtQ29tcG9uZW50O1xuICBwdWJsaWMgYnRuQ29uZmlnOiBCdXR0b25Hcm91cENvbmZpZ1tdID0gW107XG4gIHByb3RlY3RlZCBndWlkOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIGd1aWRzPzogc3RyaW5nW107XG4gIHByb3RlY3RlZCBpc0FwcHJvdmU/OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgc3ViITogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICB0aGlzLmd1aWRzID0gcGFyYW1zWydndWlkcyddO1xuICAgICAgICB0aGlzLmlzQXBwcm92ZSA9IHBhcmFtc1snaXNBcHByb3ZlJ10gPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZHtcbiAgICBpZiAodGhpcy5ndWlkcykge1xuICAgICAgdGhpcy5zZXRDaGlsZEd1aWQoJycpO1xuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5mcmFnbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Q2hpbGRHdWlkKHRoaXMuYWN0aXZhdGVkUm91dGUuY2hpbGRyZW5bMF0uc25hcHNob3QucGFyYW1zWydndWlkJ10pO1xuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5mcmFnbWVudCk7XG5cbiAgICAgIHRoaXMuc3ViID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdHdWlkOiBzdHJpbmcgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuWzBdLnNuYXBzaG90LnBhcmFtc1snZ3VpZCddO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZ3VpZCAhPT0gbmV3R3VpZCkge1xuICAgICAgICAgICAgdGhpcy5ndWlkID0gbmV3R3VpZDtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2hpbGRHdWlkKHRoaXMuZ3VpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTsgfVxuXG4gIHB1YmxpYyBjaGFuZ2VUYWIoZjogc3RyaW5nIHwgbnVsbCk6IHZvaWR7XG4gICAgc3dpdGNoIChmKSB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmJ0bkNvbmZpZyA9IHRoaXMuZm9ybUNvbXBvbmVudD8uYnRuQ29uZmlnPz8gW107XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldENoaWxkR3VpZChndWlkOiBzdHJpbmcpOiB2b2lke1xuICAgIHRoaXMuZm9ybUNvbXBvbmVudD8uc2V0R3VpZCh0aGlzLmd1aWRzPz8gWyBndWlkIF0sIHRoaXMuaXNBcHByb3ZlKTtcbiAgfVxufVxuIiwiPHVwLWNvbHVtbi1oZWFkZXItY29udGFpbmVyIGhlYWRlcj1cIkFwcHJvdmFsIERldGFpbFwiIHByZXZVcmw9XCIvYXBwcm92YWxcIiBjbGFzcz1cImJnLXdoaXRlXCI+XG4gICAgPHVwLWJ0bi1ncm91cCBpZD1cImJ1dHRvblwiICpuZ0lmPVwiIWZvcm1Db21wb25lbnQ/LmlzTG9hZGluZzsgZWxzZSBsb2FkaW5nXCIgW2NvbmZpZ109XCJidG5Db25maWdcIiAvPlxuXG4gICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgaWQ9XCJidXR0b25cIiBjbGFzcz1cIm0tMCBzay1idG5cIiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8dXAtdGFiLWdyb3VwIGNsYXNzPVwiaC0xMDBcIiAob25DaGFuZ2UpPVwiY2hhbmdlVGFiKCRldmVudClcIj5cbiAgICAgICAgPHVwLXRhYi1jb250ZW50IGhlYWRlcj1cIkRldGFpbFwiIGZyYWdtZW50PVwiZGV0YWlsXCI+XG4gICAgICAgICAgICA8dXAtYXBwcm92YWwtZm9ybSAvPlxuICAgICAgICA8L3VwLXRhYi1jb250ZW50PlxuICAgIDwvdXAtdGFiLWdyb3VwPlxuPC91cC1jb2x1bW4taGVhZGVyLWNvbnRhaW5lcj5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBa0IsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQzNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBb0J2RSxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ3FCLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUjVDLGNBQVMsR0FBd0IsRUFBRSxDQUFDO1FBQ2pDLFNBQUksR0FBVyxFQUFF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O3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29uZmlnIH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9ncm91cC9pbnRlcmZhY2VzL2J0bi1ncm91cC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcHJvdmFsRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vYXBwcm92YWwtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2J0bi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uSGVhZGVyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udGFpbmVycy9jb2x1bS1oZWFkZXItY29udGFpbmVyL2NvbHVtbi1oZWFkZXItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vdGFicy90YWJzLmNvbXBvbmVudC5tb2R1bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1hcHByb3ZhbC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWJsb2NrIGgtMTAwJ1xuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRhYnNDb21wb25lbnRNb2R1bGUsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ29sdW1uSGVhZGVyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFwcHJvdmFsRm9ybUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoQXBwcm92YWxGb3JtQ29tcG9uZW50KSBwdWJsaWMgZm9ybUNvbXBvbmVudD86IEFwcHJvdmFsRm9ybUNvbXBvbmVudDtcbiAgcHVibGljIGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgZ3VpZDogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBndWlkcz86IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgaXNBcHByb3ZlPzogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHN1YiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgdGhpcy5ndWlkcyA9IHBhcmFtc1snZ3VpZHMnXTtcbiAgICAgICAgdGhpcy5pc0FwcHJvdmUgPSBwYXJhbXNbJ2lzQXBwcm92ZSddID09PSAndHJ1ZSc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWR7XG4gICAgaWYgKHRoaXMuZ3VpZHMpIHtcbiAgICAgIHRoaXMuc2V0Q2hpbGRHdWlkKCcnKTtcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZnJhZ21lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENoaWxkR3VpZCh0aGlzLmFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuWzBdLnNuYXBzaG90LnBhcmFtc1snZ3VpZCddKTtcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZnJhZ21lbnQpO1xuXG4gICAgICB0aGlzLnN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3R3VpZDogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5jaGlsZHJlblswXS5zbmFwc2hvdC5wYXJhbXNbJ2d1aWQnXTtcblxuICAgICAgICAgIGlmICh0aGlzLmd1aWQgIT09IG5ld0d1aWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3VpZCA9IG5ld0d1aWQ7XG4gICAgICAgICAgICB0aGlzLnNldENoaWxkR3VpZCh0aGlzLmd1aWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7IFxuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7IFxuICB9XG5cbiAgcHVibGljIGNoYW5nZVRhYihmOiBzdHJpbmcgfCBudWxsKTogdm9pZHtcbiAgICBzd2l0Y2ggKGYpIHtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuYnRuQ29uZmlnID0gdGhpcy5mb3JtQ29tcG9uZW50Py5idG5Db25maWc/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0Q2hpbGRHdWlkKGd1aWQ6IHN0cmluZyk6IHZvaWR7XG4gICAgdGhpcy5mb3JtQ29tcG9uZW50Py5zZXRHdWlkKHRoaXMuZ3VpZHM/PyBbIGd1aWQgXSwgdGhpcy5pc0FwcHJvdmUpO1xuICB9XG59XG4iLCI8dXAtY29sdW1uLWhlYWRlci1jb250YWluZXIgaGVhZGVyPVwiQXBwcm92YWwgRGV0YWlsXCIgcHJldlVybD1cIi9hcHByb3ZhbFwiIGNsYXNzPVwiYmctd2hpdGVcIj5cbiAgICA8dXAtYnRuLWdyb3VwIGlkPVwiYXBwcm92YWwtZGV0YWlsLWJ1dHRvblwiICpuZ0lmPVwiIWZvcm1Db21wb25lbnQ/LmlzTG9hZGluZzsgZWxzZSBsb2FkaW5nXCIgW2NvbmZpZ109XCJidG5Db25maWdcIiBidXR0b24gLz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIHNrLWJ0blwiIGJ1dHRvbiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8dXAtdGFiLWdyb3VwIGNsYXNzPVwiaC0xMDBcIiAob25DaGFuZ2UpPVwiY2hhbmdlVGFiKCRldmVudClcIj5cbiAgICAgICAgPHVwLXRhYi1jb250ZW50IGhlYWRlcj1cIkRldGFpbFwiIGZyYWdtZW50PVwiZGV0YWlsXCI+XG4gICAgICAgICAgICA8dXAtYXBwcm92YWwtZm9ybSAvPlxuICAgICAgICA8L3VwLXRhYi1jb250ZW50PlxuICAgIDwvdXAtdGFiLWdyb3VwPlxuPC91cC1jb2x1bW4taGVhZGVyLWNvbnRhaW5lcj5cbiJdfQ==
@@ -98,13 +98,13 @@ export class ApprovalFormComponent {
98
98
  this.ch.markForCheck();
99
99
  }
100
100
  async showAlert(header, message, buttons = ['OK'], inputs = []) { (await this.alertCtrl.create({ header, message, buttons, inputs })).present(); }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalFormComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i2.ApprovalService }, { token: i3.GridService }, { token: i4.AlertController }, { token: i5.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ApprovalFormComponent, isStandalone: true, selector: "up-approval-form", inputs: { isLoading: "isLoading" }, host: { classAttribute: "px-4 d-block" }, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading; else loading\">\n <div *ngFor=\"let d of data, let i = index\">\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\" *ngIf=\"data.length > 1\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ i + 1 }}</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea class=\"mb-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled"], outputs: ["onInput"] }, { kind: "component", type: FormTextareaComponent, selector: "up-textarea", inputs: ["value", "required", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalFormComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i2.ApprovalService }, { token: i3.GridService }, { token: i4.AlertController }, { token: i5.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ApprovalFormComponent, isStandalone: true, selector: "up-approval-form", inputs: { isLoading: "isLoading" }, host: { classAttribute: "px-4 pb-4 d-block" }, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading; else loading\">\n <div *ngFor=\"let d of data, let i = index\">\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\" *ngIf=\"data.length > 1\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ i + 1 }}</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea class=\"mb-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled"], outputs: ["onInput"] }, { kind: "component", type: FormTextareaComponent, selector: "up-textarea", inputs: ["value", "required", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalFormComponent, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalFormComponent, decorators: [{
105
105
  type: Component,
106
106
  args: [{ standalone: true, selector: 'up-approval-form', changeDetection: ChangeDetectionStrategy.OnPush, host: {
107
- class: 'px-4 d-block'
107
+ class: 'px-4 pb-4 d-block'
108
108
  }, imports: [
109
109
  IonicModule,
110
110
  CommonModule,
@@ -114,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
114
114
  }], ctorParameters: () => [{ type: i1.Router }, { type: i0.ChangeDetectorRef }, { type: i2.ApprovalService }, { type: i3.GridService }, { type: i4.AlertController }, { type: i5.PermissionService }], propDecorators: { isLoading: [{
115
115
  type: Input
116
116
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvZm9ybS9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9mb3JtL2FwcHJvdmFsLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQWdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBWSxrQkFBa0IsRUFBaUQsTUFBTSwrQkFBK0IsQ0FBQztBQUs1SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7QUFrQnJGLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEMsWUFDcUIsTUFBYyxFQUNkLEVBQXFCLEVBQ3JCLE9BQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFNBQTBCLEVBQzFCLFdBQThCO1FBTDlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFabkMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMx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QUFDLGFBQWEsRUFBRSxDQUFDOzRCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDbkMsQ0FBQztxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQzthQUNGO1NBQ0YsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVTLFVBQVUsQ0FBQyxDQUFVO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxVQUFvQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQWdCLEVBQUUsSUFBa0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzs4R0ExR2hOLHFCQUFxQjtrR0FBckIscUJBQXFCLDBKQzlCbEMsOGpEQW9DQSx5RERaSSxXQUFXLHlTQUNYLFlBQVksbVRBQ1osa0JBQWtCLCtIQUNsQixxQkFBcUI7OzJGQUdaLHFCQUFxQjtrQkFoQmpDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxjQUFjO3FCQUN0QixXQUNRO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEI7aU9BSWUsU0FBUztzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxlcnRCdXR0b24sIEFsZXJ0Q29udHJvbGxlciwgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBcHByb3ZhbCwgQXBwcm92YWxTdGF0dXNFbnVtLCBNdXRhdGlvbkFwcHJvdmFsTXNBcHByb3ZlT3JEZWNsaW5lUmVxdWVzdEFyZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi9ncmFwaHFsL2dlbmVyYXRlZCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvaW50ZXJmYWNlcy9idG4tZ3JvdXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHByb3ZhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHByb3ZhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ3JpZHMvc2VydmljZXMvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kdWxlcy9wZXJtaXNzaW9uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3Jtcy9pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9sb2FkaW5nL2J0bi1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3Jtcy90ZXh0YXJlYS9mb3JtLXRleHRhcmVhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWFwcHJvdmFsLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcHJvdmFsLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3B4LTQgZC1ibG9jaydcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIElvbmljTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybVRleHRhcmVhQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIHJlYWRvbmx5IGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtdO1xuICBwdWJsaWMgZGF0YTogQXBwcm92YWxbXSA9IFtdO1xuICBwcm90ZWN0ZWQgZ3VpZD86IHN0cmluZztcbiAgcHJvdGVjdGVkIHN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgdGhpcy5zdWI/LnVuc3Vic2NyaWJlKCk7IH1cblxuICBwdWJsaWMgc2V0R3VpZChndWlkczogc3RyaW5nW10sIGlzQXBwcm92ZT86IGJvb2xlYW4pOiB2b2lke1xuICAgIGlmIChndWlkcy5sZW5ndGggPT09IDEpIHRoaXMuZ3VpZCA9IGd1aWRzWzBdO1xuXG4gICAgdGhpcy5idG5Db25maWcubGVuZ3RoID0gMDtcbiAgICB0aGlzLnNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICB0aGlzLnN1YiA9IHRoaXMuc2VydmljZS5xdWVyeSh7IGd1aWRzLCBzdGF0dXM6IFsgQXBwcm92YWxTdGF0dXNFbnVtLkFwcHJvdmVkLCBBcHByb3ZhbFN0YXR1c0VudW0uRGVjbGluZWQsIEFwcHJvdmFsU3RhdHVzRW51bS5QZW5kaW5nIF0gfSwgJ3Blcm1pc3Npb24gcmVhc29uJykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh7IGRhdGE6IHsgYXBwcm92YWxNc0FwcHJvdmFsczogeyBkYXRhIH19fSkgPT4ge1xuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhcHByb3ZhbCcpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgYW55O1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgbGV0IGRhdGFDb3VudDogbnVtYmVyID0gMDtcblxuICAgICAgICAgIGRhdGEubWFwKCh7IHBlcm1pc3Npb24sIHN0YXR1cyB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5QZW5kaW5nKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBlcm06IHN0cmluZ1tdID0gcGVybWlzc2lvbi5zcGxpdCgnLicpO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnBlcm1TZXJ2aWNlLmNoZWNrUGVybWlzc2lvbihwZXJtWzBdLCBwZXJtWzFdLCBwZXJtWzJdKSkgZGF0YUNvdW50Kys7XG4gICAgICAgICAgICAgIGlmIChkYXRhQ291bnQgPT09IGRhdGEubGVuZ3RoKSBpc0FwcHJvdmU/IHRoaXMuYnRuQ29uZmlnLnB1c2goeyBsYWJlbDogJ0FwcHJvdmUnLCBpY29uOiAnY2hlY2ttYXJrJywgZGVzY3JpcHRpb246ICdBcHByb3ZlIHRoZSBhcHByb3ZhbChzKScgLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH0pIDogdGhpcy5idG5Db25maWcucHVzaCh7IGxhYmVsOiAnRGVjbGluZScsIGljb246ICdjbG9zZScsIGRlc2NyaXB0aW9uOiAnRGVjbGluZSB0aGUgYXBwcm92YWwnLCBjb2xvcjogJ2RhbmdlcicsIGRpc2FibGVkOiBmYWxzZSwgb25DbGljazogdGhpcy5yZXF1ZXN0LmJpbmQodGhpcykgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBzdGF0dXMsIHBlcm1pc3Npb24gfSA9IGRhdGFbMF0gYXMgYW55O1xuXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gQXBwcm92YWxTdGF0dXNFbnVtLlBlbmRpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBlcm06IHN0cmluZ1tdID0gcGVybWlzc2lvbiEuc3BsaXQoJy4nKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGVybVNlcnZpY2UuY2hlY2tQZXJtaXNzaW9uKHBlcm1bMF0sIHBlcm1bMV0sIHBlcm1bMl0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuYnRuQ29uZmlnLnB1c2goXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcHJvdmUnLCBpY29uOiAnY2hlY2ttYXJrJywgZGVzY3JpcHRpb246ICdBcHByb3ZlIHRoZSBhcHByb3ZhbCcgLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RlY2xpbmUnLCBpY29uOiAnY2xvc2UnLCBkZXNjcmlwdGlvbjogJ0RlY2xpbmUgdGhlIGFwcHJvdmFsJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdFcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhcHByb3ZhbCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVlc3QoYnRuOiBCdXR0b25Mb2FkaW5nQ29tcG9uZW50KTogdm9pZHtcbiAgICBjb25zdCBpc0FwcHJvdmU6IGJvb2xlYW4gPSBidG4uY29sb3IgIT09ICdkYW5nZXInO1xuXG4gICAgdGhpcy5zaG93QWxlcnQoJ0NvbmZpcm0nLCBgQXJlIHlvdSBzdXJlIHdhbnQgdG8gJHsgaXNBcHByb3ZlPyAnYXBwcm92ZSB0aGUgYXBwcm92YWw/JyA6ICdkZWNsaW5lIHRoZSBhcHByb3ZhbD8gUGxlYXNlIGlucHV0IHRoZSByZWFzb24gaWYgeW91IHdhbnQgdG8gZGVjbGluZS4nIH1gLCBbXG4gICAgICB7IHRleHQ6ICdDYW5jZWwnLCBoYW5kbGVyOiAoKSA9PiBidG4udG9nZ2xlTG9hZGluZygpIH0sXG4gICAgICB7XG4gICAgICAgIHRleHQ6IGAkeyBpc0FwcHJvdmU/ICdBcHByb3ZlJyA6ICdEZWNsaW5lJyB9YCxcbiAgICAgICAgaGFuZGxlcjogKHsgcmVhc29uIH0pID0+IHtcbiAgICAgICAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgIC8vIFRPRE86IFdhaXRpbmcgZm9yIGFwcHJvdmFsR3JvdXBHdWlkXG4gICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBNdXRhdGlvbkFwcHJvdmFsTXNBcHByb3ZlT3JEZWNsaW5lUmVxdWVzdEFyZ3MgPSB7XG4gICAgICAgICAgICAuLi4odGhpcy5ndWlkPyB7IGd1aWQ6IHRoaXMuZ3VpZCB9IDogeyBhcHByb3ZhbEdyb3VwR3VpZDogJycgfSksXG4gICAgICAgICAgICBpc0FwcHJvdmUsXG4gICAgICAgICAgICByZWFzb25cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnN1YiA9IHRoaXMuc2VydmljZS5yZXF1ZXN0KHZhcmlhYmxlcykuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWxlcnQoJ1N1Y2Nlc3MnLCBgQXBwcm92YWwgJHsgaXNBcHByb3ZlPyAnYXBwcm92ZWQnIDogJ2RlY2xpbmVkJyB9YCk7XG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJ2FwcHJvdmFsJyk7XG5cbiAgICAgICAgICAgICAgdGhpcy5ncmlkU2VydmljZS5yZWZyZXNoR3JpZENhY2hlKCdncmlkLWFwcHJvdmFsLWxpc3QnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKHsgbWVzc2FnZSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgYnRuLnRvZ2dsZUxvYWRpbmcoKTtcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWxlcnQoJ0Vycm9yJywgbWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdLCBbeyBuYW1lOiAncmVhc29uJywgdHlwZTogJ3RleHRhcmVhJywgcGxhY2Vob2xkZXI6ICdSZWFzb24nIH1dKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRMb2FkaW5nKGI6IGJvb2xlYW4pOiB2b2lke1xuICAgIHRoaXMuaXNMb2FkaW5nID0gYjtcbiAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNob3dBbGVydChoZWFkZXI6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBidXR0b25zOiAoQWxlcnRCdXR0b24gfCBzdHJpbmcpW10gPSBbJ09LJ10sIGlucHV0czogYW55W10gPSBbXSk6IFByb21pc2U8dm9pZD57IChhd2FpdCB0aGlzLmFsZXJ0Q3RybC5jcmVhdGUoeyBoZWFkZXIsIG1lc3NhZ2UsIGJ1dHRvbnMsIGlucHV0cyB9KSkucHJlc2VudCgpOyB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZzsgZWxzZSBsb2FkaW5nXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZCBvZiBkYXRhLCBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHBiLTMgcHQtMlwiICpuZ0lmPVwiZGF0YS5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvY3VtZW50XCIgLz5cbiAgICAgICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPkFwcHJvdmFsIHt7IGkgKyAxIH19PC9oNT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgPHVwLWlucHV0IGNsYXNzPVwibWItNFwiIGxhYmVsPVwiRW50aXR5XCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5lbnRpdHlcIiAvPlxuICAgICAgICAgICAgICAgIDx1cC1pbnB1dCBjbGFzcz1cIm1iLTRcIiBsYWJlbD1cIlJlbWFya1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQucmVtYXJrXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgICAgICAgICA8dXAtaW5wdXQgY2xhc3M9XCJtYi00XCIgbGFiZWw9XCJDcmVhdGVkIEF0XCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5jcmVhdGVkQXQgfCBkYXRlOidkZCBNTU0geXl5eSBISDptbSdcIiAvPlxuICAgICAgICAgICAgICAgIDx1cC1pbnB1dCBjbGFzcz1cIm1iLTRcIiBsYWJlbD1cIlN0YXR1c1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQuc3RhdHVzXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dXAtdGV4dGFyZWEgY2xhc3M9XCJtYi00XCIgbGFiZWw9XCJSZWFzb25cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIFt2YWx1ZV09XCJkLnJlYXNvblwiICpuZ0lmPVwiZC5zdGF0dXMgIT09ICdQRU5ESU5HJ1wiIC8+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgY2xhc3M9XCJtLTAgbWItNCBzay1pbnB1dFwiIC8+XG4gICAgICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgY2xhc3M9XCJtLTAgbWItNCBzay1pbnB1dFwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvZm9ybS9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9mb3JtL2FwcHJvdmFsLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQWdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBWSxrQkFBa0IsRUFBaUQsTUFBTSwrQkFBK0IsQ0FBQztBQUs1SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7QUFrQnJGLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEMsWUFDcUIsTUFBYyxFQUNkLEVBQXFCLEVBQ3JCLE9BQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFNBQTBCLEVBQzFCLFdBQThCO1FBTDlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFabkMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMx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QUFDLGFBQWEsRUFBRSxDQUFDOzRCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDbkMsQ0FBQztxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQzthQUNGO1NBQ0YsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVTLFVBQVUsQ0FBQyxDQUFVO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxVQUFvQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQWdCLEVBQUUsSUFBa0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzs4R0ExR2hOLHFCQUFxQjtrR0FBckIscUJBQXFCLCtKQzlCbEMsOGpEQW9DQSx5RERaSSxXQUFXLHlTQUNYLFlBQVksbVRBQ1osa0JBQWtCLCtIQUNsQixxQkFBcUI7OzJGQUdaLHFCQUFxQjtrQkFoQmpDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxtQkFBbUI7cUJBQzNCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIscUJBQXFCO3FCQUN0QjtpT0FJZSxTQUFTO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydEJ1dHRvbiwgQWxlcnRDb250cm9sbGVyLCBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFwcHJvdmFsLCBBcHByb3ZhbFN0YXR1c0VudW0sIE11dGF0aW9uQXBwcm92YWxNc0FwcHJvdmVPckRlY2xpbmVSZXF1ZXN0QXJncyB9IGZyb20gJy4uLy4uLy4uLy4uL2dyYXBocWwvZ2VuZXJhdGVkJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29uZmlnIH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9ncm91cC9pbnRlcmZhY2VzL2J0bi1ncm91cC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcHJvdmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcHJvdmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9ncmlkcy9zZXJ2aWNlcy9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3Blcm1pc3Npb24vc2VydmljZXMvcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm1zL2lucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkxvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2xvYWRpbmcvYnRuLWxvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1UZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm1zL3RleHRhcmVhL2Zvcm0tdGV4dGFyZWEuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtYXBwcm92YWwtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncHgtNCBwYi00IGQtYmxvY2snXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZvcm1UZXh0YXJlYUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSBidG5Db25maWc6IEJ1dHRvbkdyb3VwQ29uZmlnW10gPSBbXTtcbiAgcHVibGljIGRhdGE6IEFwcHJvdmFsW10gPSBbXTtcbiAgcHJvdGVjdGVkIGd1aWQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBzdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjaDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IEFwcHJvdmFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVybVNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7IHRoaXMuc3ViPy51bnN1YnNjcmliZSgpOyB9XG5cbiAgcHVibGljIHNldEd1aWQoZ3VpZHM6IHN0cmluZ1tdLCBpc0FwcHJvdmU/OiBib29sZWFuKTogdm9pZHtcbiAgICBpZiAoZ3VpZHMubGVuZ3RoID09PSAxKSB0aGlzLmd1aWQgPSBndWlkc1swXTtcblxuICAgIHRoaXMuYnRuQ29uZmlnLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnNlcnZpY2UucXVlcnkoeyBndWlkcywgc3RhdHVzOiBbIEFwcHJvdmFsU3RhdHVzRW51bS5BcHByb3ZlZCwgQXBwcm92YWxTdGF0dXNFbnVtLkRlY2xpbmVkLCBBcHByb3ZhbFN0YXR1c0VudW0uUGVuZGluZyBdIH0sICdwZXJtaXNzaW9uIHJlYXNvbicpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyBkYXRhOiB7IGFwcHJvdmFsTXNBcHByb3ZhbHM6IHsgZGF0YSB9fX0pID0+IHtcbiAgICAgICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnYXBwcm92YWwnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhIGFzIGFueTtcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGxldCBkYXRhQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgICAgICAgICBkYXRhLm1hcCgoeyBwZXJtaXNzaW9uLCBzdGF0dXMgfTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSBBcHByb3ZhbFN0YXR1c0VudW0uUGVuZGluZykge1xuICAgICAgICAgICAgICBjb25zdCBwZXJtOiBzdHJpbmdbXSA9IHBlcm1pc3Npb24uc3BsaXQoJy4nKTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5wZXJtU2VydmljZS5jaGVja1Blcm1pc3Npb24ocGVybVswXSwgcGVybVsxXSwgcGVybVsyXSkpIGRhdGFDb3VudCsrO1xuICAgICAgICAgICAgICBpZiAoZGF0YUNvdW50ID09PSBkYXRhLmxlbmd0aCkgaXNBcHByb3ZlPyB0aGlzLmJ0bkNvbmZpZy5wdXNoKHsgbGFiZWw6ICdBcHByb3ZlJywgaWNvbjogJ2NoZWNrbWFyaycsIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSB0aGUgYXBwcm92YWwocyknICwgZGlzYWJsZWQ6IGZhbHNlLCBvbkNsaWNrOiB0aGlzLnJlcXVlc3QuYmluZCh0aGlzKSB9KSA6IHRoaXMuYnRuQ29uZmlnLnB1c2goeyBsYWJlbDogJ0RlY2xpbmUnLCBpY29uOiAnY2xvc2UnLCBkZXNjcmlwdGlvbjogJ0RlY2xpbmUgdGhlIGFwcHJvdmFsJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogZmFsc2UsIG9uQ2xpY2s6IHRoaXMucmVxdWVzdC5iaW5kKHRoaXMpIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHsgc3RhdHVzLCBwZXJtaXNzaW9uIH0gPSBkYXRhWzBdIGFzIGFueTtcblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5QZW5kaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBwZXJtOiBzdHJpbmdbXSA9IHBlcm1pc3Npb24hLnNwbGl0KCcuJyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnBlcm1TZXJ2aWNlLmNoZWNrUGVybWlzc2lvbihwZXJtWzBdLCBwZXJtWzFdLCBwZXJtWzJdKSkge1xuICAgICAgICAgICAgICB0aGlzLmJ0bkNvbmZpZy5wdXNoKFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBcHByb3ZlJywgaWNvbjogJ2NoZWNrbWFyaycsIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSB0aGUgYXBwcm92YWwnICwgZGlzYWJsZWQ6IGZhbHNlLCBvbkNsaWNrOiB0aGlzLnJlcXVlc3QuYmluZCh0aGlzKSB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdEZWNsaW5lJywgaWNvbjogJ2Nsb3NlJywgZGVzY3JpcHRpb246ICdEZWNsaW5lIHRoZSBhcHByb3ZhbCcsIGNvbG9yOiAnZGFuZ2VyJywgZGlzYWJsZWQ6IGZhbHNlLCBvbkNsaWNrOiB0aGlzLnJlcXVlc3QuYmluZCh0aGlzKSB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICh7IG1lc3NhZ2UgfSkgPT4ge1xuICAgICAgICB0aGlzLnNob3dBbGVydCgnRXJyb3InLCBtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnYXBwcm92YWwnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1ZXN0KGJ0bjogQnV0dG9uTG9hZGluZ0NvbXBvbmVudCk6IHZvaWR7XG4gICAgY29uc3QgaXNBcHByb3ZlOiBib29sZWFuID0gYnRuLmNvbG9yICE9PSAnZGFuZ2VyJztcblxuICAgIHRoaXMuc2hvd0FsZXJ0KCdDb25maXJtJywgYEFyZSB5b3Ugc3VyZSB3YW50IHRvICR7IGlzQXBwcm92ZT8gJ2FwcHJvdmUgdGhlIGFwcHJvdmFsPycgOiAnZGVjbGluZSB0aGUgYXBwcm92YWw/IFBsZWFzZSBpbnB1dCB0aGUgcmVhc29uIGlmIHlvdSB3YW50IHRvIGRlY2xpbmUuJyB9YCwgW1xuICAgICAgeyB0ZXh0OiAnQ2FuY2VsJywgaGFuZGxlcjogKCkgPT4gYnRuLnRvZ2dsZUxvYWRpbmcoKSB9LFxuICAgICAge1xuICAgICAgICB0ZXh0OiBgJHsgaXNBcHByb3ZlPyAnQXBwcm92ZScgOiAnRGVjbGluZScgfWAsXG4gICAgICAgIGhhbmRsZXI6ICh7IHJlYXNvbiB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAvLyBUT0RPOiBXYWl0aW5nIGZvciBhcHByb3ZhbEdyb3VwR3VpZFxuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlczogTXV0YXRpb25BcHByb3ZhbE1zQXBwcm92ZU9yRGVjbGluZVJlcXVlc3RBcmdzID0ge1xuICAgICAgICAgICAgLi4uKHRoaXMuZ3VpZD8geyBndWlkOiB0aGlzLmd1aWQgfSA6IHsgYXBwcm92YWxHcm91cEd1aWQ6ICcnIH0pLFxuICAgICAgICAgICAgaXNBcHByb3ZlLFxuICAgICAgICAgICAgcmVhc29uXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zdWIgPSB0aGlzLnNlcnZpY2UucmVxdWVzdCh2YXJpYWJsZXMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdTdWNjZXNzJywgYEFwcHJvdmFsICR7IGlzQXBwcm92ZT8gJ2FwcHJvdmVkJyA6ICdkZWNsaW5lZCcgfWApO1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhcHByb3ZhbCcpO1xuXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZFNlcnZpY2UucmVmcmVzaEdyaWRDYWNoZSgnZ3JpZC1hcHByb3ZhbC1saXN0Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICh7IG1lc3NhZ2UgfTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGJ0bi50b2dnbGVMb2FkaW5nKCk7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0KCdFcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXSwgW3sgbmFtZTogJ3JlYXNvbicsIHR5cGU6ICd0ZXh0YXJlYScsIHBsYWNlaG9sZGVyOiAnUmVhc29uJyB9XSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZyhiOiBib29sZWFuKTogdm9pZHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGI7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzaG93QWxlcnQoaGVhZGVyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgYnV0dG9uczogKEFsZXJ0QnV0dG9uIHwgc3RyaW5nKVtdID0gWydPSyddLCBpbnB1dHM6IGFueVtdID0gW10pOiBQcm9taXNlPHZvaWQ+eyAoYXdhaXQgdGhpcy5hbGVydEN0cmwuY3JlYXRlKHsgaGVhZGVyLCBtZXNzYWdlLCBidXR0b25zLCBpbnB1dHMgfSkpLnByZXNlbnQoKTsgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmc7IGVsc2UgbG9hZGluZ1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGQgb2YgZGF0YSwgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBwYi0zIHB0LTJcIiAqbmdJZj1cImRhdGEubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb2N1bWVudFwiIC8+XG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJtLTBcIj5BcHByb3ZhbCB7eyBpICsgMSB9fTwvaDU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgICAgIDx1cC1pbnB1dCBjbGFzcz1cIm1iLTRcIiBsYWJlbD1cIkVudGl0eVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQuZW50aXR5XCIgLz5cbiAgICAgICAgICAgICAgICA8dXAtaW5wdXQgY2xhc3M9XCJtYi00XCIgbGFiZWw9XCJSZW1hcmtcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIFt2YWx1ZV09XCJkLnJlbWFya1wiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgPHVwLWlucHV0IGNsYXNzPVwibWItNFwiIGxhYmVsPVwiQ3JlYXRlZCBBdFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgW3ZhbHVlXT1cImQuY3JlYXRlZEF0IHwgZGF0ZTonZGQgTU1NIHl5eXkgSEg6bW0nXCIgLz5cbiAgICAgICAgICAgICAgICA8dXAtaW5wdXQgY2xhc3M9XCJtYi00XCIgbGFiZWw9XCJTdGF0dXNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIFt2YWx1ZV09XCJkLnN0YXR1c1wiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHVwLXRleHRhcmVhIGNsYXNzPVwibWItNFwiIGxhYmVsPVwiUmVhc29uXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbdmFsdWVdPVwiZC5yZWFzb25cIiAqbmdJZj1cImQuc3RhdHVzICE9PSAnUEVORElORydcIiAvPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGdhcC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGNsYXNzPVwibS0wIG1iLTQgc2staW5wdXRcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBjbGFzcz1cIm0tMCBtYi00IHNrLWlucHV0XCIgLz5cbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBjbGFzcz1cIm0tMCBtYi00IHNrLWlucHV0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -38,7 +38,7 @@ export class ApprovalListComponent {
38
38
  this.filterConfig = {
39
39
  mode: 'advanced',
40
40
  fields: [
41
- { key: 'status', label: 'Status', type: 'select', options: [
41
+ { key: 'status', label: 'Status', type: 'select', initialValue: ['PENDING'], options: [
42
42
  { label: 'Approved', value: ['APPROVED'] },
43
43
  { label: 'Declined', value: ['DECLINED'] },
44
44
  { label: 'Pending', value: ['PENDING'] }
@@ -58,9 +58,15 @@ export class ApprovalListComponent {
58
58
  ];
59
59
  this.input = { page: 0, pageSize: 50, entity: this.entities };
60
60
  }
61
- setGridApi({ api }) { this.gridApi = api; }
62
- openDetail({ guid }) { this.router.navigate([`/approval/${guid}`], { preserveFragment: true }); }
63
- selectApprovals() { this.btnConfig[0].disabled = this.btnConfig[1].disabled = this.gridApi.getSelectedRows().length <= 1; }
61
+ setGridApi({ api }) {
62
+ this.gridApi = api;
63
+ }
64
+ openDetail({ guid }) {
65
+ this.router.navigate([`/approval/${guid}`], { preserveFragment: true });
66
+ }
67
+ selectApprovals() {
68
+ this.btnConfig[0].disabled = this.btnConfig[1].disabled = this.gridApi.getSelectedRows().length <= 1;
69
+ }
64
70
  search({ data }) {
65
71
  this.input.type = data?.type;
66
72
  this.input.status = data?.status;
@@ -77,10 +83,10 @@ export class ApprovalListComponent {
77
83
  }
78
84
  });
79
85
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalListComponent, deps: [{ token: 'ENTITIES' }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ApprovalService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ApprovalListComponent, isStandalone: true, selector: "up-approval-list", host: { classAttribute: "d-flex flex-column h-100 w-100" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }] }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalListComponent, deps: [{ token: 'ENTITIES' }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ApprovalService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ApprovalListComponent, isStandalone: true, selector: "up-approval-list", host: { classAttribute: "d-flex flex-column h-100 w-100" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }] }); }
82
88
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalListComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalListComponent, decorators: [{
84
90
  type: Component,
85
91
  args: [{ standalone: true, selector: 'up-approval-list', host: {
86
92
  class: 'd-flex flex-column h-100 w-100'
@@ -93,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
93
99
  type: Inject,
94
100
  args: ['ENTITIES']
95
101
  }] }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ApprovalService }, { type: i3.AlertController }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9saXN0L2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFvQixrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXJGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7QUFnQmhHLE1BQU0sT0FBTyxxQkFBcUI7SUFpRGhDLFlBQ3NDLFFBQWtCLEVBQ25DLE1BQWMsRUFDZCxLQUFxQixFQUNyQixPQUF3QixFQUN4QixTQUEwQjtRQUpULGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBcEQvQixlQUFVLEdBQWU7WUFDdkMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixP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RUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO2FBQzlEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FsRlUscUJBQXFCLGtCQWtEdEIsVUFBVTtrR0FsRFQscUJBQXFCLHdJQ2hDbEMsaXdCQWVBLDBERFlJLGVBQWUsdUdBQ2Ysb0JBQW9CLDZFQUNwQix1QkFBdUI7OzJGQUdkLHFCQUFxQjtrQkFkakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sa0JBQWtCLFFBR3RCO3dCQUNKLEtBQUssRUFBRSxnQ0FBZ0M7cUJBQ3hDLFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7OzBCQW9ERSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQXBwcm92YWxDcml0ZXJpYSwgQXBwcm92YWxTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JhcGhxbC9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgR3JpZENvbmZpZyB9IGZyb20gJy4uLy4uL2dyaWRzL2ludGVyZmFjZXMvZ3JpZC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZyB9IGZyb20gJy4uLy4uL2ZpbHRlci9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlclNlYXJjaEV2ZW50IH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb25maWcgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2ludGVyZmFjZXMvYnRuLWdyb3VwLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwcm92YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwcm92YWwuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvYnRuLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9sb2FkaW5nL2J0bi1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2dyaWRzL2dyaWQtcGFnaW5hdGlvbi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtYXBwcm92YWwtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggZmxleC1jb2x1bW4gaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgR3JpZFBhZ2luYXRpb25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbExpc3RDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBncmlkQ29uZmlnOiBHcmlkQ29uZmlnID0ge1xuICAgIG5vUm93VGV4dDogJ0FwcHJvdmFsIG5vdCBmb3VuZCcsXG4gICAgY29sRGVmczogW1xuICAgICAgeyBoZWFkZXJOYW1lOiAnRW50aXR5JywgZmllbGQ6ICdlbnRpdHknLCBjaGVja2JveFNlbGVjdGlvbjogdHJ1ZSB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnUmVtYXJrJywgZmllbGQ6ICdyZW1hcmsnIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdTb3VyY2UgUGxhdGZvcm0nLCBmaWVsZDogJ3NvdXJjZVBsYXRmb3JtJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnU3RhdHVzJywgZmllbGQ6ICdzdGF0dXMnLCBtYXhXaWR0aDogMTAwLCBjZWxsUmVuZGVyZXI6ICh7IHZhbHVlIH06IGFueSkgPT4gdmFsdWU/IGA8ZGl2IGNsYXNzPVwiYmFkZ2UgbS1hdXRvIGJnLSR7IHZhbHVlID09PSBBcHByb3ZhbFN0YXR1c0VudW0uUGVuZGluZz8gJ3dhcm5pbmcnIDogdmFsdWUgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5BcHByb3ZlZD8gJ3N1Y2Nlc3MnIDogJ2Rhbmdlcid9XCI+JHsgdmFsdWUgfTwvZGl2PmAgOiAnJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnVHlwZScsIGZpZWxkOiAndHlwZScsIG1heFdpZHRoOiAxMDAgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0NyZWF0ZWQgRGF0ZScsIGZpZWxkOiAnY3JlYXRlZEF0Jywgc29ydDogJ2Rlc2MnLCB2YWx1ZUZvcm1hdHRlcjogKHsgdmFsdWUgfSkgPT4gdmFsdWU/IGZvcm1hdERhdGUodmFsdWUsICdkZCBNTU0geXl5eSBISDptbScsICdlbi1VUycpIDogJycgfVxuICAgIF0sXG4gICAgZ2V0RGF0YTogKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgc29ydEJ5OiBzdHJpbmcsIGRpcjogJ2FzYycgfCAnZGVzYycpOiBPYnNlcnZhYmxlPHsgZGF0YTogYW55LCB0b3RhbFJlY29yZDogbnVtYmVyIH0+ID0+IHtcbiAgICAgIGNvbnN0IHBvbGljeTogRmV0Y2hQb2xpY3kgfCB1bmRlZmluZWQgPSB0aGlzLmlucHV0LnBhZ2UgPT09IHBhZ2U/ICduby1jYWNoZScgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuaW5wdXQucGFnZSA9IHBhZ2U7XG4gICAgICB0aGlzLmlucHV0LnNvcnRCeSA9IHNvcnRCeTtcbiAgICAgIHRoaXMuaW5wdXQucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgIHRoaXMuaW5wdXQuc29ydERpcmVjdGlvbiA9IGRpcjtcblxuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5xdWVyeSh0aGlzLmlucHV0LCAnJywgcG9saWN5KS5waXBlKFxuICAgICAgICBtYXAoKHsgZGF0YTogeyBhcHByb3ZhbE1zQXBwcm92YWxzOiB7IGRhdGEsIHRvdGFsUmVjb3JkOiB0IH0gfX0pID0+ICh7IGRhdGEsIHRvdGFsUmVjb3JkOiB0ISB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9O1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWcgPSB7XG4gICAgbW9kZTogJ2FkdmFuY2VkJyxcbiAgICBmaWVsZHM6IFtcbiAgICAgIHsga2V5OiAnc3RhdHVzJywgbGFiZWw6ICdTdGF0dXMnLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQXBwcm92ZWQnLCB2YWx1ZTogWyAnQVBQUk9WRUQnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWNsaW5lZCcsIHZhbHVlOiBbICdERUNMSU5FRCcgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1BlbmRpbmcnLCB2YWx1ZTogWyAnUEVORElORycgXSBhcyBhbnkgfVxuICAgICAgXX0sXG4gICAgICB7IGtleTogJ3R5cGUnLCBsYWJlbDogJ1R5cGUnLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQ3JlYXRpb24nLCB2YWx1ZTogWyAnQ1JFQVRJT04nIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWxldGlvbicsIHZhbHVlOiBbICdERUxFVElPTicgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0xpbmthZ2UnLCB2YWx1ZTogWyAnTElOS0FHRScgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1VubGluaycsIHZhbHVlOiBbICdVTkxJTksnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdVcGRhdGUnLCB2YWx1ZTogWyAnVVBEQVRFJyBdIGFzIGFueSB9XG4gICAgICBdfVxuICAgIF1cbiAgfTtcbiAgcHVibGljIGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtcbiAgICB7IGxhYmVsOiAnQXBwcm92ZScsIGljb246ICdjaGVja21hcmsnLCBkZXNjcmlwdGlvbjogJ0FwcHJvdmUgdGhlIGFwcHJvdmFscycgLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfSxcbiAgICB7IGxhYmVsOiAnRGVjbGluZScsIGljb246ICdjbG9zZScsIGRlc2NyaXB0aW9uOiAnRGVjbGluZSB0aGUgYXBwcm92YWxzJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfVxuICBdO1xuICBwcm90ZWN0ZWQgZ3JpZEFwaSE6IEdyaWRBcGk7XG4gIHByb3RlY3RlZCBpbnB1dDogQXBwcm92YWxDcml0ZXJpYSA9IHsgcGFnZTogMCwgcGFnZVNpemU6IDUwLCBlbnRpdHk6IHRoaXMuZW50aXRpZXMgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdFTlRJVElFUycpIHB1YmxpYyByZWFkb25seSBlbnRpdGllczogc3RyaW5nW10sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IEFwcHJvdmFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxlcnRDdHJsOiBBbGVydENvbnRyb2xsZXJcbiAgKSB7IH1cblxuICBwdWJsaWMgc2V0R3JpZEFwaSh7IGFwaSB9OiBHcmlkUmVhZHlFdmVudCk6IHZvaWR7IHRoaXMuZ3JpZEFwaSA9IGFwaTsgfVxuXG4gIHB1YmxpYyBvcGVuRGV0YWlsKHsgZ3VpZCB9OiBhbnkpOiB2b2lkeyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIGAvYXBwcm92YWwvJHsgZ3VpZCB9YCBdLCB7IHByZXNlcnZlRnJhZ21lbnQ6IHRydWUgfSk7IH1cblxuICBwdWJsaWMgc2VsZWN0QXBwcm92YWxzKCk6IHZvaWR7IHRoaXMuYnRuQ29uZmlnWzBdLmRpc2FibGVkID0gdGhpcy5idG5Db25maWdbMV0uZGlzYWJsZWQgPSB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoIDw9IDE7IH1cblxuICBwdWJsaWMgc2VhcmNoKHsgZGF0YSB9OiBGaWx0ZXJTZWFyY2hFdmVudCk6IHZvaWR7XG4gICAgdGhpcy5pbnB1dC50eXBlID0gZGF0YT8udHlwZTtcbiAgICB0aGlzLmlucHV0LnN0YXR1cyA9IGRhdGE/LnN0YXR1cztcbiAgICBcbiAgICBcbiAgICB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLmZvckVhY2goKGUpID0+IGUuc2V0U2VsZWN0ZWQoZmFsc2UpKTtcbiAgICB0aGlzLmdyaWRBcGkucmVmcmVzaEluZmluaXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtdWx0aXBsZUFwcHJvdmFsKGJ0bjogQnV0dG9uTG9hZGluZ0NvbXBvbmVudCk6IHZvaWR7XG4gICAgYnRuLnRvZ2dsZUxvYWRpbmcoKTtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgYC9hcHByb3ZhbC9hcHByb3ZhbC1ncm91cGAgXSwge1xuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IFxuICAgICAgICBpc0FwcHJvdmU6IGJ0bi5jb2xvciAhPT0gJ2RhbmdlcicsXG4gICAgICAgIGd1aWRzOiB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWRSb3dzKCkubWFwKCh7IGd1aWQgfSkgPT4gZ3VpZCksXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC00IHAtNCBmbGV4LXNocmluay0wIGZsZXgtd3JhcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tMFwiPkFwcHJvdmFsPC9oMz5cblxuICAgICAgICA8dXAtYnRuLWdyb3VwIGlkPVwiYXBwcm92YWwtbGlzdFwiIFtjb25maWddPVwiYnRuQ29uZmlnXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIGZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgIDx1cC1maWx0ZXIgcGxhY2Vob2xkZXI9XCJUeXBlIHRvIHNlYXJjaFwiIGlkPVwiZmlsdGVyLWFwcHJvdmFsLWxpc3RcIiBbY29uZmlnXT1cImZpbHRlckNvbmZpZ1wiIChvblNlYXJjaCk9XCJzZWFyY2goJGV2ZW50KVwiIC8+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIHB4LTEgcGItMVwiPlxuICAgIDx1cC1wYWdpbmF0aW9uLWdyaWQgW2NvbmZpZ109XCJncmlkQ29uZmlnXCIgaWQ9XCJncmlkLWFwcHJvdmFsLWxpc3RcIiByb3dTZWxlY3Rpb249XCJtdWx0aXBsZVwiIChvbkdyaWRSZWFkeSk9XCJzZXRHcmlkQXBpKCRldmVudClcIiAob25Sb3dDbGljayk9XCJvcGVuRGV0YWlsKCRldmVudClcIiAob25TZWxlY3Rpb25DaGFuZ2VkKT1cInNlbGVjdEFwcHJvdmFscygpXCIgLz5cbjwvZGl2PlxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9saXN0L2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFvQixrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXJGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7QUFnQmhHLE1BQU0sT0FBTyxxQkFBcUI7SUFpRGhDLFlBQ3NDLFFBQWtCLEVBQ25DLE1BQWMsRUFDZCxLQUFxQixFQUNyQixPQUF3QixFQUN4QixTQUEwQjtRQUpULGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBcEQvQixlQUFVLEdBQWU7WUFDdkMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFO2dCQUNsRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDekMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUMxRCxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUMsK0JBQWdDLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLFFBQVEsQ0FBQSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQU0sS0FBTSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDelEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDcEQsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTthQUM3SjtZQUNELE9BQU8sRUFBRSxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxHQUFtQixFQUFrRCxFQUFFO2dCQUMvSCxNQUFNLE1BQU0sR0FBNEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFFekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO2dCQUUvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2pHLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztRQUNjLGlCQUFZLEdBQWlCO1lBQzNDLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRTtnQkFDTixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFFLFNBQVMsQ0FBRSxFQUFFLE9BQU8sRUFBRTt3QkFDdEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFFLFVBQVUsQ0FBUyxFQUFFO3dCQUNuRCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUUsVUFBVSxDQUFTLEVBQUU7d0JBQ25ELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBRSxTQUFTLENBQVMsRUFBRTtxQkFDbEQsRUFBQztnQkFDRixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTt3QkFDckQsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFFLFVBQVUsQ0FBUyxFQUFFO3dCQUNuRCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUUsVUFBVSxDQUFTLEVBQUU7d0JBQ25ELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBRSxTQUFTLENBQVMsRUFBRTt3QkFDakQsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFFLFFBQVEsQ0FBUyxFQUFFO3dCQUMvQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUUsUUFBUSxDQUFTLEVBQUU7cUJBQ2hELEVBQUM7YUFDSDtTQUNGLENBQUM7UUFDSyxjQUFTLEdBQXdCO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDdEosQ0FBQztRQUVRLFVBQUssR0FBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQVFqRixDQUFDO0lBRUUsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFrQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFPO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsYUFBYyxJQUFLLEVBQUUsQ0FBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBcUI7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBRWpDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEdBQTJCO1FBQ3BELEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFFLDBCQUEwQixDQUFFLEVBQUU7WUFDbkQsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixXQUFXLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUTtnQkFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO2FBQzlEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2RlUscUJBQXFCLGtCQWtEdEIsVUFBVTtrR0FsRFQscUJBQXFCLHdJQ2hDbEMsaXdCQWVBLDBERFlJLGVBQWUsdUdBQ2Ysb0JBQW9CLDZFQUNwQix1QkFBdUI7OzJGQUdkLHFCQUFxQjtrQkFkakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sa0JBQWtCLFFBR3RCO3dCQUNKLEtBQUssRUFBRSxnQ0FBZ0M7cUJBQ3hDLFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7OzBCQW9ERSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQXBwcm92YWxDcml0ZXJpYSwgQXBwcm92YWxTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JhcGhxbC9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgR3JpZENvbmZpZyB9IGZyb20gJy4uLy4uL2dyaWRzL2ludGVyZmFjZXMvZ3JpZC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZyB9IGZyb20gJy4uLy4uL2ZpbHRlci9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlclNlYXJjaEV2ZW50IH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb25maWcgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2ludGVyZmFjZXMvYnRuLWdyb3VwLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwcm92YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwcm92YWwuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvYnRuLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9sb2FkaW5nL2J0bi1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2dyaWRzL2dyaWQtcGFnaW5hdGlvbi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtYXBwcm92YWwtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggZmxleC1jb2x1bW4gaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgR3JpZFBhZ2luYXRpb25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbExpc3RDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBncmlkQ29uZmlnOiBHcmlkQ29uZmlnID0ge1xuICAgIG5vUm93VGV4dDogJ0FwcHJvdmFsIG5vdCBmb3VuZCcsXG4gICAgY29sRGVmczogW1xuICAgICAgeyBoZWFkZXJOYW1lOiAnRW50aXR5JywgZmllbGQ6ICdlbnRpdHknLCBjaGVja2JveFNlbGVjdGlvbjogdHJ1ZSB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnUmVtYXJrJywgZmllbGQ6ICdyZW1hcmsnIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdTb3VyY2UgUGxhdGZvcm0nLCBmaWVsZDogJ3NvdXJjZVBsYXRmb3JtJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnU3RhdHVzJywgZmllbGQ6ICdzdGF0dXMnLCBtYXhXaWR0aDogMTAwLCBjZWxsUmVuZGVyZXI6ICh7IHZhbHVlIH06IGFueSkgPT4gdmFsdWU/IGA8ZGl2IGNsYXNzPVwiYmFkZ2UgbS1hdXRvIGJnLSR7IHZhbHVlID09PSBBcHByb3ZhbFN0YXR1c0VudW0uUGVuZGluZz8gJ3dhcm5pbmcnIDogdmFsdWUgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5BcHByb3ZlZD8gJ3N1Y2Nlc3MnIDogJ2Rhbmdlcid9XCI+JHsgdmFsdWUgfTwvZGl2PmAgOiAnJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnVHlwZScsIGZpZWxkOiAndHlwZScsIG1heFdpZHRoOiAxMDAgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0NyZWF0ZWQgRGF0ZScsIGZpZWxkOiAnY3JlYXRlZEF0Jywgc29ydDogJ2Rlc2MnLCB2YWx1ZUZvcm1hdHRlcjogKHsgdmFsdWUgfSkgPT4gdmFsdWU/IGZvcm1hdERhdGUodmFsdWUsICdkZCBNTU0geXl5eSBISDptbScsICdlbi1VUycpIDogJycgfVxuICAgIF0sXG4gICAgZ2V0RGF0YTogKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgc29ydEJ5OiBzdHJpbmcsIGRpcjogJ2FzYycgfCAnZGVzYycpOiBPYnNlcnZhYmxlPHsgZGF0YTogYW55LCB0b3RhbFJlY29yZDogbnVtYmVyIH0+ID0+IHtcbiAgICAgIGNvbnN0IHBvbGljeTogRmV0Y2hQb2xpY3kgfCB1bmRlZmluZWQgPSB0aGlzLmlucHV0LnBhZ2UgPT09IHBhZ2U/ICduby1jYWNoZScgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuaW5wdXQucGFnZSA9IHBhZ2U7XG4gICAgICB0aGlzLmlucHV0LnNvcnRCeSA9IHNvcnRCeTtcbiAgICAgIHRoaXMuaW5wdXQucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgIHRoaXMuaW5wdXQuc29ydERpcmVjdGlvbiA9IGRpcjtcblxuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5xdWVyeSh0aGlzLmlucHV0LCAnJywgcG9saWN5KS5waXBlKFxuICAgICAgICBtYXAoKHsgZGF0YTogeyBhcHByb3ZhbE1zQXBwcm92YWxzOiB7IGRhdGEsIHRvdGFsUmVjb3JkOiB0IH0gfX0pID0+ICh7IGRhdGEsIHRvdGFsUmVjb3JkOiB0ISB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9O1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWcgPSB7XG4gICAgbW9kZTogJ2FkdmFuY2VkJyxcbiAgICBmaWVsZHM6IFtcbiAgICAgIHsga2V5OiAnc3RhdHVzJywgbGFiZWw6ICdTdGF0dXMnLCB0eXBlOiAnc2VsZWN0JywgaW5pdGlhbFZhbHVlOiBbICdQRU5ESU5HJyBdLCBvcHRpb25zOiBbXG4gICAgICAgIHsgbGFiZWw6ICdBcHByb3ZlZCcsIHZhbHVlOiBbICdBUFBST1ZFRCcgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RlY2xpbmVkJywgdmFsdWU6IFsgJ0RFQ0xJTkVEJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnUGVuZGluZycsIHZhbHVlOiBbICdQRU5ESU5HJyBdIGFzIGFueSB9XG4gICAgICBdfSxcbiAgICAgIHsga2V5OiAndHlwZScsIGxhYmVsOiAnVHlwZScsIHR5cGU6ICdzZWxlY3QnLCBvcHRpb25zOiBbXG4gICAgICAgIHsgbGFiZWw6ICdDcmVhdGlvbicsIHZhbHVlOiBbICdDUkVBVElPTicgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RlbGV0aW9uJywgdmFsdWU6IFsgJ0RFTEVUSU9OJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnTGlua2FnZScsIHZhbHVlOiBbICdMSU5LQUdFJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnVW5saW5rJywgdmFsdWU6IFsgJ1VOTElOSycgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1VwZGF0ZScsIHZhbHVlOiBbICdVUERBVEUnIF0gYXMgYW55IH1cbiAgICAgIF19XG4gICAgXVxuICB9O1xuICBwdWJsaWMgYnRuQ29uZmlnOiBCdXR0b25Hcm91cENvbmZpZ1tdID0gW1xuICAgIHsgbGFiZWw6ICdBcHByb3ZlJywgaWNvbjogJ2NoZWNrbWFyaycsIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSB0aGUgYXBwcm92YWxzJyAsIGRpc2FibGVkOiB0cnVlLCBvbkNsaWNrOiB0aGlzLm11bHRpcGxlQXBwcm92YWwuYmluZCh0aGlzKSB9LFxuICAgIHsgbGFiZWw6ICdEZWNsaW5lJywgaWNvbjogJ2Nsb3NlJywgZGVzY3JpcHRpb246ICdEZWNsaW5lIHRoZSBhcHByb3ZhbHMnLCBjb2xvcjogJ2RhbmdlcicsIGRpc2FibGVkOiB0cnVlLCBvbkNsaWNrOiB0aGlzLm11bHRpcGxlQXBwcm92YWwuYmluZCh0aGlzKSB9XG4gIF07XG4gIHByb3RlY3RlZCBncmlkQXBpITogR3JpZEFwaTtcbiAgcHJvdGVjdGVkIGlucHV0OiBBcHByb3ZhbENyaXRlcmlhID0geyBwYWdlOiAwLCBwYWdlU2l6ZTogNTAsIGVudGl0eTogdGhpcy5lbnRpdGllcyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0VOVElUSUVTJykgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlclxuICApIHsgfVxuXG4gIHB1YmxpYyBzZXRHcmlkQXBpKHsgYXBpIH06IEdyaWRSZWFkeUV2ZW50KTogdm9pZHsgXG4gICAgdGhpcy5ncmlkQXBpID0gYXBpOyBcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGV0YWlsKHsgZ3VpZCB9OiBhbnkpOiB2b2lkeyBcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIGAvYXBwcm92YWwvJHsgZ3VpZCB9YCBdLCB7IHByZXNlcnZlRnJhZ21lbnQ6IHRydWUgfSk7IFxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFwcHJvdmFscygpOiB2b2lkeyBcbiAgICB0aGlzLmJ0bkNvbmZpZ1swXS5kaXNhYmxlZCA9IHRoaXMuYnRuQ29uZmlnWzFdLmRpc2FibGVkID0gdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkUm93cygpLmxlbmd0aCA8PSAxOyBcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goeyBkYXRhIH06IEZpbHRlclNlYXJjaEV2ZW50KTogdm9pZHtcbiAgICB0aGlzLmlucHV0LnR5cGUgPSBkYXRhPy50eXBlO1xuICAgIHRoaXMuaW5wdXQuc3RhdHVzID0gZGF0YT8uc3RhdHVzO1xuICAgIFxuICAgIHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZE5vZGVzKCkuZm9yRWFjaCgoZSkgPT4gZS5zZXRTZWxlY3RlZChmYWxzZSkpO1xuICAgIHRoaXMuZ3JpZEFwaS5yZWZyZXNoSW5maW5pdGVDYWNoZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlQXBwcm92YWwoYnRuOiBCdXR0b25Mb2FkaW5nQ29tcG9uZW50KTogdm9pZHtcbiAgICBidG4udG9nZ2xlTG9hZGluZygpO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyBgL2FwcHJvdmFsL2FwcHJvdmFsLWdyb3VwYCBdLCB7XG4gICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0cnVlLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgXG4gICAgICAgIGlzQXBwcm92ZTogYnRuLmNvbG9yICE9PSAnZGFuZ2VyJyxcbiAgICAgICAgZ3VpZHM6IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKS5tYXAoKHsgZ3VpZCB9KSA9PiBndWlkKSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTQgcC00IGZsZXgtc2hyaW5rLTAgZmxleC13cmFwXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwibS0wXCI+QXBwcm92YWw8L2gzPlxuXG4gICAgICAgIDx1cC1idG4tZ3JvdXAgaWQ9XCJhcHByb3ZhbC1saXN0XCIgW2NvbmZpZ109XCJidG5Db25maWdcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgZmxleC1ncm93LTFcIj5cbiAgICAgICAgPHVwLWZpbHRlciBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCIgaWQ9XCJmaWx0ZXItYXBwcm92YWwtbGlzdFwiIFtjb25maWddPVwiZmlsdGVyQ29uZmlnXCIgKG9uU2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCIgLz5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgcHgtMSBwYi0xXCI+XG4gICAgPHVwLXBhZ2luYXRpb24tZ3JpZCBbY29uZmlnXT1cImdyaWRDb25maWdcIiBpZD1cImdyaWQtYXBwcm92YWwtbGlzdFwiIHJvd1NlbGVjdGlvbj1cIm11bHRpcGxlXCIgKG9uR3JpZFJlYWR5KT1cInNldEdyaWRBcGkoJGV2ZW50KVwiIChvblJvd0NsaWNrKT1cIm9wZW5EZXRhaWwoJGV2ZW50KVwiIChvblNlbGVjdGlvbkNoYW5nZWQpPVwic2VsZWN0QXBwcm92YWxzKClcIiAvPlxuPC9kaXY+XG4iXX0=
@@ -34,10 +34,10 @@ export class ApprovalService {
34
34
  `
35
35
  });
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalService, providedIn: 'root' }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalService, providedIn: 'root' }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ApprovalService, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ApprovalService, decorators: [{
41
41
  type: Injectable,
42
42
  args: [{
43
43
  providedIn: 'root'
@@ -106,10 +106,10 @@ export class AuditDetailComponent {
106
106
  }));
107
107
  this.gridApi.setGridOption('rowData', changedData);
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditDetailComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AuditService }, { token: i3.ActivatedRoute }, { token: i4.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AuditDetailComponent, isStandalone: true, selector: "up-audit-detail", ngImport: i0, template: "<up-tab-group class=\"h-100\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <form [formGroup]=\"form\" class=\"px-4 pb-4\" *ngIf=\"!isLoading; else loading\">\n <div class=\"d-flex align-items-center gap-2 pb-3\">\n <ion-icon name=\"information-circle\" />\n <h5 class=\"m-0\">Information</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-lg-4\" label=\"Action\" formControlName=\"action\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Source IP\" formControlName=\"sourceIp\" />\n </div>\n </div>\n \n <up-input class=\"mb-4\" label=\"User Name\" formControlName=\"userName\" />\n <up-textarea class=\"mb-4\" label=\"Description\" formControlName=\"description\" />\n\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"laptop\" />\n <h5 class=\"m-0\">System Information</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Action Date\" formControlName=\"createdAt\" />\n <up-input class=\"mb-lg-4\" label=\"Source Platform\" formControlName=\"sourcePlatform\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"MS Source\" formControlName=\"msSource\" />\n <up-input class=\"mb-4\" label=\"Function\" formControlName=\"function\" />\n </div>\n </div>\n </form>\n\n <ng-template #loading>\n <ion-skeleton-text class=\"sk-input mx-4 mb-4\" *ngFor=\"let i of [0,1,2,3,4,5,6]\" />\n </ng-template> \n </up-tab-content>\n\n <up-tab-content header=\"Attributes\" fragment=\"attributes\">\n <up-pagination-grid id=\"grid-audit-detail\" rowModelType=\"clientSide\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" />\n </up-tab-content>\n</up-tab-group>\n", styles: ["ion-icon{font-size:24px;margin-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }, { kind: "ngmodule", type: TabsComponentModule }, { kind: "component", type: i6.TabGroupComponent, selector: "up-tab-group", outputs: ["onChange"] }, { kind: "component", type: i7.TabContentComponent, selector: "up-tab-content", inputs: ["header"] }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled"], outputs: ["onInput"] }, { kind: "component", type: FormTextareaComponent, selector: "up-textarea", inputs: ["value", "required", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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"] }] }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditDetailComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AuditService }, { token: i3.ActivatedRoute }, { token: i4.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AuditDetailComponent, isStandalone: true, selector: "up-audit-detail", ngImport: i0, template: "<up-tab-group class=\"h-100\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <form [formGroup]=\"form\" class=\"px-4 pb-4\" *ngIf=\"!isLoading; else loading\">\n <div class=\"d-flex align-items-center gap-2 pb-3\">\n <ion-icon name=\"information-circle\" />\n <h5 class=\"m-0\">Information</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-lg-4\" label=\"Action\" formControlName=\"action\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Source IP\" formControlName=\"sourceIp\" />\n </div>\n </div>\n \n <up-input class=\"mb-4\" label=\"User Name\" formControlName=\"userName\" />\n <up-textarea class=\"mb-4\" label=\"Description\" formControlName=\"description\" />\n\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"laptop\" />\n <h5 class=\"m-0\">System Information</h5>\n </div>\n\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Action Date\" formControlName=\"createdAt\" />\n <up-input class=\"mb-lg-4\" label=\"Source Platform\" formControlName=\"sourcePlatform\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"MS Source\" formControlName=\"msSource\" />\n <up-input class=\"mb-4\" label=\"Function\" formControlName=\"function\" />\n </div>\n </div>\n </form>\n\n <ng-template #loading>\n <ion-skeleton-text class=\"sk-input mx-4 mb-4\" *ngFor=\"let i of [0,1,2,3,4,5,6]\" />\n </ng-template> \n </up-tab-content>\n\n <up-tab-content header=\"Attributes\" fragment=\"attributes\">\n <up-pagination-grid id=\"grid-audit-detail\" rowModelType=\"clientSide\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" />\n </up-tab-content>\n</up-tab-group>\n", styles: ["ion-icon{font-size:24px;margin-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }, { kind: "ngmodule", type: TabsComponentModule }, { kind: "component", type: i6.TabGroupComponent, selector: "up-tab-group", outputs: ["onChange"] }, { kind: "component", type: i7.TabContentComponent, selector: "up-tab-content", inputs: ["header"] }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled"], outputs: ["onInput"] }, { kind: "component", type: FormTextareaComponent, selector: "up-textarea", inputs: ["value", "required", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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"] }] }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditDetailComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditDetailComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ standalone: true, selector: 'up-audit-detail', imports: [
115
115
  CommonModule,
@@ -52,10 +52,10 @@ export class AuditListComponent {
52
52
  this.criteria.tagValues = [guid];
53
53
  this.gridComponent.reset();
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditListComponent, deps: [{ token: 'id', attribute: true }, { token: 'mainUrl', attribute: true }, { token: i1.Router }, { token: i2.AuditService }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AuditListComponent, isStandalone: true, selector: "up-audit-list", inputs: { relatedEntities: "relatedEntities", tagKeys: "tagKeys" }, host: { classAttribute: "d-flex flex-column h-100" }, viewQueries: [{ propertyName: "gridComponent", first: true, predicate: GridPaginationComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex justify-content-end px-4 pb-4 flex-shrink-0\">\n <up-filter class=\"w-100\" id=\"audit-filter\" placeholder=\"Type to search\" [config]=\"filterConfig\" (onSearch)=\"search($event);\" />\n</div>\n \n<up-pagination-grid id=\"grid-audit\" class=\"flex-grow-1\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"rowClicked($event)\" />\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }] }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditListComponent, deps: [{ token: 'id', attribute: true }, { token: 'mainUrl', attribute: true }, { token: i1.Router }, { token: i2.AuditService }], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AuditListComponent, isStandalone: true, selector: "up-audit-list", inputs: { relatedEntities: "relatedEntities", tagKeys: "tagKeys" }, host: { classAttribute: "d-flex flex-column h-100" }, viewQueries: [{ propertyName: "gridComponent", first: true, predicate: GridPaginationComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex justify-content-end px-4 pb-4 flex-shrink-0\">\n <up-filter class=\"w-100\" id=\"audit-filter\" placeholder=\"Type to search\" [config]=\"filterConfig\" (onSearch)=\"search($event);\" />\n</div>\n \n<up-pagination-grid id=\"grid-audit\" class=\"flex-grow-1\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"rowClicked($event)\" />\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }] }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditListComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditListComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ standalone: true, selector: 'up-audit-list', host: {
61
61
  class: 'd-flex flex-column h-100'
@@ -37,10 +37,10 @@ export class AuditService {
37
37
  `
38
38
  });
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditService, providedIn: 'root' }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditService, providedIn: 'root' }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuditService, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuditService, decorators: [{
44
44
  type: Injectable,
45
45
  args: [{
46
46
  providedIn: 'root'
@@ -25,10 +25,10 @@ export class ButtonGroupComponent {
25
25
  this.activeIndex = i;
26
26
  this.popoverCtrl.dismiss();
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonGroupComponent, deps: [{ token: 'id', attribute: true }, { token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ButtonGroupComponent, isStandalone: true, selector: "up-btn-group", inputs: { config: "config" }, host: { properties: { "class.d-none": "this.isHidden" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"config.length > 0\">\n <up-btn-loading class=\"flex-grow-1\" [class.multi]=\"config.length > 1\" [type]=\"config[activeIndex].type\" [disabled]=\"config[activeIndex].disabled\" [form]=\"config[activeIndex].form\" [color]=\"config[activeIndex].color\" (onClick)=\"clickBtn($event);\">\n <ion-icon class=\"me-2\" name=\"{{ config[activeIndex].icon }}\" *ngIf=\"config[activeIndex].icon\" />\n {{ config[activeIndex].label }}\n </up-btn-loading>\n\n <ng-container *ngIf=\"config.length > 1\" >\n <ion-button class=\"flex-shrink-0\" id=\"btn-{{ id }}\" [color]=\"config[activeIndex].color\">\n <ion-icon name=\"caret-down-outline\" />\n </ion-button>\n \n <ion-popover trigger=\"btn-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n <div class=\"item px-2 py-3 cursor-pointer border-bottom d-flex gap-2\" *ngFor=\"let c of config; let i = index\" (click)=\"change(i);\">\n <div class=\"icon flex-shrink-0\">\n <ion-icon name=\"checkmark\" *ngIf=\"i === activeIndex\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <div class=\"fw-medium\">{{ c.label }}</div>\n <div class=\"f12 pt-1\" *ngIf=\"c.description\">\n {{ c.description }}\n </div>\n </div>\n </div>\n </ng-template>\n </ion-popover>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex}up-btn-loading.multi ::ng-deep ion-button{--border-radius: 4px 0 0 4px}ion-button::part(native){border-radius:0 4px 4px 0;border-left:1px solid rgba(255,255,255,.3)}.item:hover{color:#ed6b26;background:#fef3ee}.item ion-icon{--ionicon-stroke-width: 64px}.item .icon{width:14px}.item .f12{color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonPopover, selector: "ion-popover" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonLoadingComponent, selector: "up-btn-loading", inputs: ["disabled", "form", "type", "fill", "color"], outputs: ["onClick"] }] }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ButtonGroupComponent, deps: [{ token: 'id', attribute: true }, { token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ButtonGroupComponent, isStandalone: true, selector: "up-btn-group", inputs: { config: "config" }, host: { properties: { "class.d-none": "this.isHidden" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"config.length > 0\">\n <up-btn-loading class=\"flex-grow-1\" [class.multi]=\"config.length > 1\" [type]=\"config[activeIndex].type\" [disabled]=\"config[activeIndex].disabled\" [form]=\"config[activeIndex].form\" [color]=\"config[activeIndex].color\" (onClick)=\"clickBtn($event);\">\n <ion-icon class=\"me-2\" name=\"{{ config[activeIndex].icon }}\" *ngIf=\"config[activeIndex].icon\" />\n {{ config[activeIndex].label }}\n </up-btn-loading>\n\n <ng-container *ngIf=\"config.length > 1\" >\n <ion-button class=\"flex-shrink-0\" id=\"btn-{{ id }}\" [color]=\"config[activeIndex].color\">\n <ion-icon name=\"caret-down-outline\" />\n </ion-button>\n \n <ion-popover trigger=\"btn-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n <div class=\"item px-2 py-3 cursor-pointer border-bottom d-flex gap-2\" *ngFor=\"let c of config; let i = index\" (click)=\"change(i);\">\n <div class=\"icon flex-shrink-0\">\n <ion-icon name=\"checkmark\" *ngIf=\"i === activeIndex\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <div class=\"fw-medium\">{{ c.label }}</div>\n <div class=\"f12 pt-1\" *ngIf=\"c.description\">\n {{ c.description }}\n </div>\n </div>\n </div>\n </ng-template>\n </ion-popover>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex}up-btn-loading.multi ::ng-deep ion-button{--border-radius: 4px 0 0 4px}ion-button::part(native){border-radius:0 4px 4px 0;border-left:1px solid rgba(255,255,255,.3)}.item:hover{color:#ed6b26;background:#fef3ee}.item ion-icon{--ionicon-stroke-width: 64px}.item .icon{width:14px}.item .f12{color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonPopover, selector: "ion-popover" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonLoadingComponent, selector: "up-btn-loading", inputs: ["disabled", "form", "type", "fill", "color"], outputs: ["onClick"] }] }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonGroupComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ButtonGroupComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ standalone: true, selector: 'up-btn-group', imports: [
34
34
  IonicModule,
@@ -23,10 +23,10 @@ export class ButtonLoadingComponent {
23
23
  this.btn.disabled = !this.btn.disabled;
24
24
  this.ch.markForCheck();
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonLoadingComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ButtonLoadingComponent, isStandalone: true, selector: "up-btn-loading", inputs: { disabled: "disabled", form: "form", type: "type", fill: "fill", color: "color" }, outputs: { onClick: "onClick" }, viewQueries: [{ propertyName: "btn", first: true, predicate: IonButton, descendants: true }], ngImport: i0, template: "<ion-button type=\"{{ type }}\" fill=\"{{ fill }}\" color=\"{{ color }}\" expand=\"block\" mode=\"md\" [disabled]=\"disabled\" [form]=\"form\" (click)=\"clickBtn()\">\n <ion-spinner *ngIf=\"isLoading;else showIcon\" />\n \n <ng-template #showIcon>\n <ng-content select=\"ion-icon\" />\n </ng-template>\n\n <ng-content />\n</ion-button>\n", styles: ["ion-spinner{width:14px;height:14px;margin-right:8px}circle{stroke-width:8}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ButtonLoadingComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ButtonLoadingComponent, isStandalone: true, selector: "up-btn-loading", inputs: { disabled: "disabled", form: "form", type: "type", fill: "fill", color: "color" }, outputs: { onClick: "onClick" }, viewQueries: [{ propertyName: "btn", first: true, predicate: IonButton, descendants: true }], ngImport: i0, template: "<ion-button type=\"{{ type }}\" fill=\"{{ fill }}\" color=\"{{ color }}\" expand=\"block\" mode=\"md\" [disabled]=\"disabled\" [form]=\"form\" (click)=\"clickBtn()\">\n <ion-spinner *ngIf=\"isLoading;else showIcon\" />\n \n <ng-template #showIcon>\n <ng-content select=\"ion-icon\" />\n </ng-template>\n\n <ng-content />\n</ion-button>\n", styles: ["ion-spinner{width:14px;height:14px;margin-right:8px}circle{stroke-width:8}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonLoadingComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ButtonLoadingComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ standalone: true, selector: 'up-btn-loading', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
32
32
  IonicModule,
@@ -34,10 +34,10 @@ export class AppletContainerComponent {
34
34
  selectMenu() {
35
35
  dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AppletContainerComponent, deps: [{ token: 'APPLET_CONFIG' }, { token: i0.ChangeDetectorRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AppletContainerComponent, deps: [{ token: 'APPLET_CONFIG' }, { token: i0.ChangeDetectorRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AppletContainerComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AppletContainerComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ standalone: true, selector: 'up-applet-container', changeDetection: ChangeDetectionStrategy.OnPush, host: {
43
43
  class: 'd-flex h-100 w-100'
@@ -5,10 +5,10 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ionic/angular";
6
6
  import * as i2 from "@angular/router";
7
7
  export class ColumnHeaderContainerComponent {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ColumnHeaderContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ColumnHeaderContainerComponent, isStandalone: true, selector: "up-column-header-container", inputs: { header: "header", prevUrl: "prevUrl" }, host: { classAttribute: "d-flex flex-column h-100" }, ngImport: i0, template: "<div class=\"d-flex justify-content-between align-items-center border-bottom py-1 ps-1 pe-4 flex-shrink-0\">\n\t<div class=\"flex-grow-1 d-flex align-items-center pe-3\">\n\t\t<ion-buttons class=\"flex-shrink-0\">\n\t\t\t<ion-button routerLink=\"{{ prevUrl }}\">\n\t\t\t\t<ion-icon slot=\"icon-only\" name=\"close\" />\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\n\t\t<div class=\"f20 fw-medium flex-grow-1 text-truncate\">{{ header }}</div>\n\t</div>\n\n\t<ng-content select=\"[button]\" />\n</div>\n\n<div class=\"p-1 flex-grow-1 overflow-auto\">\n\t<ng-content/>\n</div>\n", styles: ["ion-buttons{z-index:0}.flex-grow-1{min-width:0}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ColumnHeaderContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ColumnHeaderContainerComponent, isStandalone: true, selector: "up-column-header-container", inputs: { header: "header", prevUrl: "prevUrl" }, host: { classAttribute: "d-flex flex-column h-100" }, ngImport: i0, template: "<div class=\"d-flex justify-content-between align-items-center border-bottom py-1 ps-1 pe-4 flex-shrink-0\">\n\t<div class=\"flex-grow-1 d-flex align-items-center pe-3\">\n\t\t<ion-buttons class=\"flex-shrink-0\">\n\t\t\t<ion-button routerLink=\"{{ prevUrl }}\">\n\t\t\t\t<ion-icon slot=\"icon-only\" name=\"close\" />\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\n\t\t<div class=\"f20 fw-medium flex-grow-1 text-truncate\">{{ header }}</div>\n\t</div>\n\n\t<ng-content select=\"[button]\" />\n</div>\n\n<div class=\"p-1 flex-grow-1 overflow-auto\">\n\t<ng-content/>\n</div>\n", styles: ["ion-buttons{z-index:0}.flex-grow-1{min-width:0}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { 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.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ColumnHeaderContainerComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ColumnHeaderContainerComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ standalone: true, selector: 'up-column-header-container', changeDetection: ChangeDetectionStrategy.OnPush, host: {
14
14
  class: 'd-flex flex-column h-100'
@@ -63,10 +63,10 @@ export class ColumnContainerComponent {
63
63
  checkScreen() {
64
64
  this.colSize = window.innerWidth <= 768 ? 100 : 50;
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ColumnContainerComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ColumnContainerComponent, isStandalone: true, selector: "up-column-container", host: { listeners: { "window:resize": "checkScreen($event)" }, classAttribute: "d-block h-100 w-100" }, ngImport: i0, template: "<as-split [disabled]=\"true\" [useTransition]=\"true\" [gutterSize]=\"0\">\n <as-split-area [size]=\"colSize\" [hidden]=\"!a.visible\" [visible]=\"a.visible\" [order]=\"i\" *ngFor=\"let a of areas; let i = index\" class=\"border-start\">\n <ng-container [loadRoute]=\"a.route\" />\n </as-split-area>\n</as-split>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: AngularSplitModule }, { kind: "component", type: i3.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { kind: "directive", type: i3.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: LazyRouteDirective, selector: "[loadRoute]", inputs: ["loadRoute"] }] }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ColumnContainerComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ColumnContainerComponent, isStandalone: true, selector: "up-column-container", host: { listeners: { "window:resize": "checkScreen($event)" }, classAttribute: "d-block h-100 w-100" }, ngImport: i0, template: "<as-split [disabled]=\"true\" [useTransition]=\"true\" [gutterSize]=\"0\">\n <as-split-area [size]=\"colSize\" [hidden]=\"!a.visible\" [visible]=\"a.visible\" [order]=\"i\" *ngFor=\"let a of areas; let i = index\" class=\"border-start\">\n <ng-container [loadRoute]=\"a.route\" />\n </as-split-area>\n</as-split>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: AngularSplitModule }, { kind: "component", type: i3.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { kind: "directive", type: i3.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: LazyRouteDirective, selector: "[loadRoute]", inputs: ["loadRoute"] }] }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ColumnContainerComponent, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ColumnContainerComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ standalone: true, selector: 'up-column-container', host: {
72
72
  class: 'd-block h-100 w-100'