@unipin/angular-applet 17.3.0 → 17.3.1

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 +3 -3
  2. package/esm2022/lib/components/approval/form/approval-form.component.mjs +3 -3
  3. package/esm2022/lib/components/approval/list/approval-list.component.mjs +3 -3
  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 +3 -3
  18. package/esm2022/lib/components/forms/date/form-date.component.mjs +11 -7
  19. package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +3 -3
  20. package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +3 -3
  21. package/esm2022/lib/components/forms/input/form-input.component.mjs +3 -3
  22. package/esm2022/lib/components/forms/number/form-number.component.mjs +3 -3
  23. package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +3 -3
  24. package/esm2022/lib/components/forms/password/form-password.component.mjs +3 -3
  25. package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +3 -3
  26. package/esm2022/lib/components/forms/select/form-select.component.mjs +3 -3
  27. package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +3 -3
  28. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +9 -5
  29. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +9 -5
  30. package/esm2022/lib/components/grids/services/grid.service.mjs +3 -3
  31. package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +3 -3
  32. package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +3 -3
  33. package/esm2022/lib/components/tabs/tabs.component.module.mjs +4 -4
  34. package/esm2022/lib/interceptors/header/header.interceptor.mjs +3 -3
  35. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +3 -3
  36. package/esm2022/lib/modules/permission/directive/permission.directive.mjs +3 -3
  37. package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +3 -3
  38. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +3 -3
  39. package/esm2022/lib/modules/permission/permission.module.mjs +4 -4
  40. package/esm2022/lib/modules/permission/services/permission.service.mjs +3 -3
  41. package/esm2022/lib/resolvers/auth/auth.resolver.mjs +3 -3
  42. package/esm2022/lib/services/auth/auth.service.mjs +3 -3
  43. package/esm2022/lib/services/country/country.service.mjs +3 -3
  44. package/esm2022/lib/services/currency/currency.service.mjs +3 -3
  45. package/esm2022/lib/services/profile/profile.service.mjs +3 -3
  46. package/fesm2022/unipin-angular-applet.mjs +154 -142
  47. package/fesm2022/unipin-angular-applet.mjs.map +1 -1
  48. package/lib/components/forms/date/form-date.component.d.ts +1 -0
  49. package/package.json +1 -1
@@ -16,6 +16,7 @@ export class FormDateComponent {
16
16
  this.presentation = 'date';
17
17
  this.isTouched = false;
18
18
  this.value = '';
19
+ this.localValue = '';
19
20
  this.dateFormat = 'dd LLL yyyy';
20
21
  this.onChange = (_val) => { };
21
22
  this.onTouched = () => { };
@@ -28,6 +29,9 @@ export class FormDateComponent {
28
29
  registerOnTouched(fn) { this.onTouched = fn; }
29
30
  writeValue(val) {
30
31
  this.value = val;
32
+ let localTime = new Date(val);
33
+ localTime = new Date(localTime.getTime() - (localTime.getTimezoneOffset() * 60000));
34
+ this.localValue = localTime.toISOString();
31
35
  this.ch.markForCheck();
32
36
  }
33
37
  setDisabledState(d) {
@@ -44,14 +48,14 @@ export class FormDateComponent {
44
48
  this.isTouched = true;
45
49
  }
46
50
  if (!this.disabled) {
47
- this.value = value;
51
+ this.value = this.localValue = value;
48
52
  this.ch.markForCheck();
49
53
  this.onChange(this.value);
50
54
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
51
55
  }
52
56
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormDateComponent, deps: [{ token: 'name', attribute: true }, { token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormDateComponent, isStandalone: true, selector: "up-date", inputs: { label: "label", required: "required", disabled: "disabled", presentation: "presentation" }, host: { classAttribute: "d-block position-relative" }, providers: [
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormDateComponent, deps: [{ token: 'name', attribute: true }, { token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormDateComponent, isStandalone: true, selector: "up-date", inputs: { label: "label", required: "required", disabled: "disabled", presentation: "presentation" }, host: { classAttribute: "d-block position-relative" }, providers: [
55
59
  {
56
60
  multi: true,
57
61
  provide: NG_VALUE_ACCESSOR,
@@ -62,9 +66,9 @@ export class FormDateComponent {
62
66
  provide: NG_VALIDATORS,
63
67
  useExisting: FormDateComponent
64
68
  }
65
- ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime mode=\"md\" [presentation]=\"presentation\" value=\"{{ value }}\" [showDefaultButtons]=\"true\" (ionChange)=\"changeDate($event)\" />\n </ng-template>\n</ion-modal>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
+ ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime mode=\"md\" [presentation]=\"presentation\" value=\"{{ localValue }}\" [showDefaultButtons]=\"true\" (ionChange)=\"changeDate($event)\" />\n </ng-template>\n</ion-modal>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
70
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormDateComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormDateComponent, decorators: [{
68
72
  type: Component,
69
73
  args: [{ standalone: true, selector: 'up-date', changeDetection: ChangeDetectionStrategy.OnPush, host: {
70
74
  class: 'd-block position-relative'
@@ -82,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
82
86
  provide: NG_VALIDATORS,
83
87
  useExisting: FormDateComponent
84
88
  }
85
- ], template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime mode=\"md\" [presentation]=\"presentation\" value=\"{{ value }}\" [showDefaultButtons]=\"true\" (ionChange)=\"changeDate($event)\" />\n </ng-template>\n</ion-modal>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"] }]
89
+ ], template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime mode=\"md\" [presentation]=\"presentation\" value=\"{{ localValue }}\" [showDefaultButtons]=\"true\" (ionChange)=\"changeDate($event)\" />\n </ng-template>\n</ion-modal>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"] }]
86
90
  }], ctorParameters: () => [{ type: undefined, decorators: [{
87
91
  type: Attribute,
88
92
  args: ['name']
@@ -98,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
98
102
  }], presentation: [{
99
103
  type: Input
100
104
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9kYXRlL2Zvcm0tZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF5QyxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBNEJyRCxNQUFNLE9BQU8saUJBQWlCO0lBMkU1QixZQUM0QixJQUFZLEVBQ0wsV0FBbUIsRUFDakMsRUFBcUI7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ0wsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFqRTFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixpQkFBWSxHQUF5QixNQUFNLENBQUM7UUFPckQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU8zQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBT25CLGVBQVUsR0FBVyxhQUFhLENBQUM7UUFtQmhDLGFBQVEsR0FBd0IsQ0FBQyxJQUFTLEVBQUUsRUFB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QXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IGdldEZvcm1FcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1kYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWJsb2NrIHBvc2l0aW9uLXJlbGF0aXZlJ1xuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybURhdGVDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtRGF0ZUNvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0ZSBpbnB1dCBpcyByZXF1aXJlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBkYXRlIG9ubHkgb3IgZGF0ZSBhbmQgdGltZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ2RhdGUnXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcHJlc2VudGF0aW9uOiAnZGF0ZScgfCAnZGF0ZS10aW1lJyA9ICdkYXRlJztcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgZGF0ZSBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBpc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgcHVibGljIHZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIGZvcm1hdCBvZiBkYXRlLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnZGQgTExMIHl5eXknXG4gICAqL1xuICBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nID0gJ2RkIExMTCB5eXl5JztcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cbiAgICovXG4gIHByb3RlY3RlZCBmb3JtQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHZhbHVlIGNoYW5nZXMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHsoX3ZhbDogYW55KSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlOiAoX3ZhbDogYW55KSA9PiB2b2lkID0gKF92YWw6IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaCBldmVudHMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHsoKSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ25hbWUnKSBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIEBBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIGNhbGxlZCBhIG1vbWVudCBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkLlxuICAgKiBDaGVjayBpZiB0aGUgcHJlc2VudGF0aW9uIGlzICdkYXRlLXRpbWUnIHRoZW4gdGhlIGRhdGUgZm9ybWF0IHNob3VsZCBiZSBjaGFuZ2VkIHRvIGRkIExMTCB5eXl5IEhIOm1tLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgaWYgKHRoaXMucHJlc2VudGF0aW9uID09PSAnZGF0ZS10aW1lJykgdGhpcy5kYXRlRm9ybWF0ID0gYCR7IHRoaXMuZGF0ZUZvcm1hdCB9IEhIOm1tYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZGF0ZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBkYXRlIGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHBhcmFtIHsqfSB2YWwgLSBUaGUgbmV3IHZhbHVlIHRvIGJlIHNldC5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbDogYW55KTogdm9pZHsgXG4gICAgdGhpcy52YWx1ZSA9IHZhbDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHBhcmFtIHtib29sZWFufSBkIC0gV2hldGhlciB0aGUgZGF0ZSBpbnB1dCBzaG91bGQgYmUgZGlzYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwYXJhbSB7QWJzdHJhY3RDb250cm9sfSBjb250cm9sIC0gVGhlIGFic3RyYWN0IGNvbnRyb2wgcmVwcmVzZW50aW5nIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAcmV0dXJucyB7KFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKX0gLSBWYWxpZGF0aW9uIGVycm9ycyBpZiBhbnksIG90aGVyd2lzZSBudWxsLlxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGRhdGUgY2hhbmdlcyBpbiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogSWYgbm90IHRvdWNoZWQsIG1hcmtzIHRoZSBpbnB1dCBhcyB0b3VjaGVkLlxuICAgKiBJZiBub3QgZGlzYWJsZWQsIHVwZGF0ZXMgdGhlIHZhbHVlLCB0cmlnZ2VycyBjaGFuZ2UgZGV0ZWN0aW9uLCBhbmQgZW1pdHMgdGhlIGNoYW5nZSBldmVudC5cbiAgICogVXBkYXRlcyB0aGUgZXJyb3IgbWVzc2FnZSBiYXNlZCBvbiBmb3JtIGNvbnRyb2wgZXJyb3JzIGFuZCBsYWJlbC5cbiAgICogQHBhcmFtIHthbnl9IHBhcmFtMCAtIEV2ZW50IGRldGFpbCBjb250YWluaW5nIHRoZSBuZXcgZGF0ZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VEYXRlKHsgZGV0YWlsOiB7IHZhbHVlIH19OiBhbnkpOiB2b2lke1xuICAgIGlmICghdGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lcnJvck1zZyA9IGdldEZvcm1FcnJvck1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMubGFiZWwpO1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ljb25dXCIgLz5cbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbjwvbGFiZWw+XG5cbjxpbnB1dCByZWFkb25seSB0eXBlPVwidGV4dFwiIGlkPVwie3sgbmFtZSB9fS1kYXRlXCIgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnNvci1wb2ludGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3ZhbHVlXT1cInZhbHVlIHwgZGF0ZTpkYXRlRm9ybWF0IFwiPlxuPGlvbi1pY29uIG5hbWU9XCJjYWxlbmRhclwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIC8+XG5cbjxpb24tbW9kYWwgdHJpZ2dlcj1cInt7IG5hbWUgfX0tZGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1kYXRldGltZSBtb2RlPVwibWRcIiBbcHJlc2VudGF0aW9uXT1cInByZXNlbnRhdGlvblwiIHZhbHVlPVwie3sgdmFsdWUgfX1cIiBbc2hvd0RlZmF1bHRCdXR0b25zXT1cInRydWVcIiAoaW9uQ2hhbmdlKT1cImNoYW5nZURhdGUoJGV2ZW50KVwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvaW9uLW1vZGFsPlxuPGxhYmVsICpuZ0lmPVwiZXJyb3JNc2dcIiBjbGFzcz1cImlzLWludmFsaWRcIj57eyBlcnJvck1zZyB9fTwvbGFiZWw+XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9kYXRlL2Zvcm0tZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF5QyxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBNEJyRCxNQUFNLE9BQU8saUJBQWlCO0lBa0Y1QixZQUM0QixJQUFZLEVBQ0wsV0FBbUIsRUFDakMsRUFBcUI7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ0wsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF4RTFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixpQkFBWSxHQUF5QixNQUFNLENBQUM7UUFPckQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU8zQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBT25CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFPdkIsZUFBVSxHQUFXLGFBQWEsQ0FBQztRQW1CaEMsYUFBUSxHQUF3QixDQUFDLElBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBTWxELGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFNeEMsQ0FBQztJQU1HLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVztZQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBSSxJQUFJLENBQUMsVUFBVyxRQUFRLENBQUM7SUFDeEYsQ0FBQztJQU1NLGdCQUFnQixDQUFDLEVBQU8sSUFBUyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFNdEQsaUJBQWlCLENBQUMsRUFBTyxJQUFTLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQU94RCxVQUFVLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFNTSxnQkFBZ0IsQ0FBRSxDQUFVO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU9NLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTTSxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBTTtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7OEdBbktVLGlCQUFpQixrQkFtRmYsTUFBTSw4QkFDTixhQUFhO2tHQXBGZixpQkFBaUIsbU5BYmpCO1lBQ1Q7Z0JBQ0UsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGlCQUFpQjthQUMvQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsaUJBQWlCO2FBQy9CO1NBQ0YsMEJDOUJILHV2QkFjQSwrS0RFSSxXQUFXLDI0QkFDWCxZQUFZOzsyRkFlSCxpQkFBaUI7a0JBMUI3QixTQUFTO2lDQUNJLElBQUksWUFDTixTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLDJCQUEyQjtxQkFDbkMsV0FDUTt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7cUJBQ2IsYUFDVTt3QkFDVDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLG1CQUFtQjt5QkFDL0I7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsbUJBQW1CO3lCQUMvQjtxQkFDRjs7MEJBcUZFLFNBQVM7MkJBQUMsTUFBTTs7MEJBQ2hCLFNBQVM7MkJBQUMsYUFBYTt5RUE5RVYsS0FBSztzQkFBcEIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBT1UsWUFBWTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1ibG9jayBwb3NpdGlvbi1yZWxhdGl2ZSdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIElvbmljTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1EYXRlQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybURhdGVDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgaXMgcmVxdWlyZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkYXRlIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0ZSBwaWNrZXIgaXMgZGF0ZSBvbmx5IG9yIGRhdGUgYW5kIHRpbWUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdkYXRlJ1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHByZXNlbnRhdGlvbjogJ2RhdGUnIHwgJ2RhdGUtdGltZScgPSAnZGF0ZSc7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgaGFzIGJlZW4gdG91Y2hlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwdWJsaWMgaXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHB1YmxpYyB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgbG9jYWxpemF0aW9uIGRhdGUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICcnXG4gICAqL1xuICBwdWJsaWMgbG9jYWxWYWx1ZTogc3RyaW5nPSAnJztcblxuICAvKipcbiAgICogVGhlIGZvcm1hdCBvZiBkYXRlLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnZGQgTExMIHl5eXknXG4gICAqL1xuICBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nID0gJ2RkIExMTCB5eXl5JztcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cbiAgICovXG4gIHByb3RlY3RlZCBmb3JtQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHZhbHVlIGNoYW5nZXMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHsoX3ZhbDogYW55KSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlOiAoX3ZhbDogYW55KSA9PiB2b2lkID0gKF92YWw6IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaCBldmVudHMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHsoKSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ25hbWUnKSBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIEBBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIGNhbGxlZCBhIG1vbWVudCBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkLlxuICAgKiBDaGVjayBpZiB0aGUgcHJlc2VudGF0aW9uIGlzICdkYXRlLXRpbWUnIHRoZW4gdGhlIGRhdGUgZm9ybWF0IHNob3VsZCBiZSBjaGFuZ2VkIHRvIGRkIExMTCB5eXl5IEhIOm1tLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgaWYgKHRoaXMucHJlc2VudGF0aW9uID09PSAnZGF0ZS10aW1lJykgdGhpcy5kYXRlRm9ybWF0ID0gYCR7IHRoaXMuZGF0ZUZvcm1hdCB9IEhIOm1tYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZGF0ZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBkYXRlIGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQ2FsY3VsYXRlIGFuZCB3cml0ZXMgdGhlIGxvY2FsIHZhbHVlIGZvciBpb25pYyBkYXRldGltZSBwaWNrZXIuXG4gICAqIEBwYXJhbSB7Kn0gdmFsIC0gVGhlIG5ldyB2YWx1ZSB0byBiZSBzZXQuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWR7IFxuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgXG4gICAgbGV0IGxvY2FsVGltZSA9IG5ldyBEYXRlKHZhbCk7XG5cbiAgICBsb2NhbFRpbWUgPSBuZXcgRGF0ZShsb2NhbFRpbWUuZ2V0VGltZSgpIC0gKGxvY2FsVGltZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgICB0aGlzLmxvY2FsVmFsdWUgPSBsb2NhbFRpbWUudG9JU09TdHJpbmcoKTtcblxuICAgIHRoaXMuY2gubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZCAtIFdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgc2hvdWxkIGJlIGRpc2FibGVkIG9yIG5vdC5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhkOiBib29sZWFuKTogdm9pZHsgXG4gICAgdGhpcy5kaXNhYmxlZCA9IGQ7IFxuICAgIHRoaXMuY2gubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBhYnN0cmFjdCBjb250cm9sIHJlcHJlc2VudGluZyB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBkYXRlIGNoYW5nZXMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIElmIG5vdCB0b3VjaGVkLCBtYXJrcyB0aGUgaW5wdXQgYXMgdG91Y2hlZC5cbiAgICogSWYgbm90IGRpc2FibGVkLCB1cGRhdGVzIHRoZSB2YWx1ZSwgdHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiwgYW5kIGVtaXRzIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAqIFVwZGF0ZXMgdGhlIGVycm9yIG1lc3NhZ2UgYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIEBwYXJhbSB7YW55fSBwYXJhbTAgLSBFdmVudCBkZXRhaWwgY29udGFpbmluZyB0aGUgbmV3IGRhdGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlRGF0ZSh7IGRldGFpbDogeyB2YWx1ZSB9fTogYW55KTogdm9pZHtcbiAgICBpZiAoIXRoaXMuaXNUb3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5pc1RvdWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubG9jYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuZXJyb3JNc2cgPSBnZXRGb3JtRXJyb3JNZXNzYWdlKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLCB0aGlzLmxhYmVsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpY29uXVwiIC8+XG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuXG48aW5wdXQgcmVhZG9ubHkgdHlwZT1cInRleHRcIiBpZD1cInt7IG5hbWUgfX0tZGF0ZVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbCBjdXJzb3ItcG9pbnRlclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFt2YWx1ZV09XCJ2YWx1ZSB8IGRhdGU6ZGF0ZUZvcm1hdCBcIj5cbjxpb24taWNvbiBuYW1lPVwiY2FsZW5kYXJcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGZzLTQgY3Vyc29yLXBvaW50ZXJcIiAvPlxuXG48aW9uLW1vZGFsIHRyaWdnZXI9XCJ7eyBuYW1lIH19LWRhdGVcIj5cbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxpb24tZGF0ZXRpbWUgbW9kZT1cIm1kXCIgW3ByZXNlbnRhdGlvbl09XCJwcmVzZW50YXRpb25cIiB2YWx1ZT1cInt7IGxvY2FsVmFsdWUgfX1cIiBbc2hvd0RlZmF1bHRCdXR0b25zXT1cInRydWVcIiAoaW9uQ2hhbmdlKT1cImNoYW5nZURhdGUoJGV2ZW50KVwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvaW9uLW1vZGFsPlxuPGxhYmVsICpuZ0lmPVwiZXJyb3JNc2dcIiBjbGFzcz1cImlzLWludmFsaWRcIj57eyBlcnJvck1zZyB9fTwvbGFiZWw+XG4iXX0=
@@ -25,10 +25,10 @@ export class DragNDropDirective {
25
25
  if (files.length > 0)
26
26
  this.fileDropped.emit(files);
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DragNDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: DragNDropDirective, isStandalone: true, selector: "[upDragNDrop]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DragNDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: DragNDropDirective, isStandalone: true, selector: "[upDragNDrop]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DragNDropDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DragNDropDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  standalone: true,
@@ -33,8 +33,8 @@ export class FormImagePickerComponent {
33
33
  this.onChange.emit(files[0]);
34
34
  }
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormImagePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormImagePickerComponent, isStandalone: true, selector: "up-image-picker", inputs: { ratio: "ratio", label: "label", required: "required" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormImagePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormImagePickerComponent, isStandalone: true, selector: "up-image-picker", inputs: { ratio: "ratio", label: "label", required: "required" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
38
38
  {
39
39
  multi: true,
40
40
  provide: NG_VALUE_ACCESSOR,
@@ -42,7 +42,7 @@ export class FormImagePickerComponent {
42
42
  },
43
43
  ], ngImport: i0, template: "<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n <span class=\"text-danger me-2\" *ngIf=\"required\">&ast;</span>\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n <img *ngIf=\"imgSrc\" alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" *ngIf=\"!imgSrc; else deleteIcon\" />\n \n <ng-template #deleteIcon>\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n </ng-template>\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n", styles: ["ion-icon{font-size:24px}.img-container{width:250px;border-style:dashed!important}.img-container:hover .upload-icon{display:flex}.img-container:not(:has(img)):before{content:\"Choose file or Drag here.\";top:50%;left:50%;font-size:12px;position:absolute;color:gray;text-align:center;transform:translate(-50%,-50%)}.upload-icon:not(ion-icon){background:#00000050}.upload-icon{top:0;left:0;display:none;cursor:pointer}.d-btn{right:10px;bottom:10px;width:32px;height:32px;background-color:#fee2e2}.d-btn ion-icon{color:#dc2626}.dragging{border:2px dashed #ED6B26!important}.dragging:not(:has(img)):before{content:\"Drop\";font-size:32px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: DragNDropDirective, selector: "[upDragNDrop]", outputs: ["fileDropped"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormImagePickerComponent, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormImagePickerComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ standalone: true, selector: 'up-image-picker', changeDetection: ChangeDetectionStrategy.OnPush, host: {
48
48
  class: 'd-block'
@@ -43,8 +43,8 @@ export class FormInputComponent {
43
43
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
44
44
  }
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: 'type', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormInputComponent, isStandalone: true, selector: "up-input", inputs: { label: "label", value: "value", required: "required", disabled: "disabled" }, outputs: { onInput: "onInput" }, host: { classAttribute: "d-block" }, providers: [
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: 'type', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormInputComponent, isStandalone: true, selector: "up-input", inputs: { label: "label", value: "value", required: "required", disabled: "disabled" }, outputs: { onInput: "onInput" }, host: { classAttribute: "d-block" }, providers: [
48
48
  {
49
49
  multi: true,
50
50
  provide: NG_VALUE_ACCESSOR,
@@ -57,7 +57,7 @@ export class FormInputComponent {
57
57
  }
58
58
  ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input type=\"{{ type }}\" autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\" (input)=\"input($event)\" />\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormInputComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormInputComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ standalone: true, selector: 'up-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
63
63
  class: 'd-block'
@@ -49,8 +49,8 @@ export class FormNumberComponent {
49
49
  if (!/^\d$/.test(key))
50
50
  ev.preventDefault();
51
51
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormNumberComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormNumberComponent, isStandalone: true, selector: "up-number", inputs: { label: "label", value: "value", required: "required", disabled: "disabled", locale: "locale" }, host: { classAttribute: "d-block" }, providers: [
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormNumberComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormNumberComponent, isStandalone: true, selector: "up-number", inputs: { label: "label", value: "value", required: "required", disabled: "disabled", locale: "locale" }, host: { classAttribute: "d-block" }, providers: [
54
54
  {
55
55
  multi: true,
56
56
  provide: NG_VALUE_ACCESSOR,
@@ -63,7 +63,7 @@ export class FormNumberComponent {
63
63
  }
64
64
  ], ngImport: i0, template: "<label class=\"form-label\">{{ label }}</label>\n<input type=\"text\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value | localeNumber:locale\" (keydown)=\"onKeyDown($event)\" (change)=\"change($event.target)\" />\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: LocaleNumberPipe, name: "localeNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormNumberComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormNumberComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ standalone: true, selector: 'up-number', changeDetection: ChangeDetectionStrategy.OnPush, host: {
69
69
  class: 'd-block'
@@ -24,10 +24,10 @@ export class LocaleNumberPipe {
24
24
  }
25
25
  return seperators;
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: LocaleNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
28
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LocaleNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
28
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: LocaleNumberPipe, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LocaleNumberPipe, decorators: [{
31
31
  type: Pipe,
32
32
  args: [{
33
33
  standalone: true,
@@ -49,8 +49,8 @@ export class FormPasswordComponent {
49
49
  }
50
50
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
51
51
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormPasswordComponent, deps: [{ token: 'label', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormPasswordComponent, isStandalone: true, selector: "up-password", inputs: { required: "required", mustSame: "mustSame" }, host: { classAttribute: "d-block position-relative" }, providers: [
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormPasswordComponent, deps: [{ token: 'label', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormPasswordComponent, isStandalone: true, selector: "up-password", inputs: { required: "required", mustSame: "mustSame" }, host: { classAttribute: "d-block position-relative" }, providers: [
54
54
  {
55
55
  multi: true,
56
56
  provide: NG_VALUE_ACCESSOR,
@@ -63,7 +63,7 @@ export class FormPasswordComponent {
63
63
  }
64
64
  ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<input [type]=\"type\" autocomplete=\"{{ autocomplete }}\" [required]=\"required\" class=\"form-control pe-5\" [value]=\"value\" (change)=\"change($event.target)\" />\n<ion-icon name=\"{{ type === 'password'? 'eye' : 'eye-off' }}\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"changeType()\"></ion-icon>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-icon{top:33px;right:16px;color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormPasswordComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormPasswordComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ standalone: true, selector: 'up-password', changeDetection: ChangeDetectionStrategy.OnPush, host: {
69
69
  class: 'd-block position-relative'
@@ -66,8 +66,8 @@ export class FormSearchableSelectComponent {
66
66
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
67
67
  }
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormSearchableSelectComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormSearchableSelectComponent, isStandalone: true, selector: "up-searchable-select", inputs: { queryFunc: "queryFunc", clearable: "clearable", label: "label", initialItems: "initialItems", required: "required", addTag: "addTag", disabled: "disabled", multiple: "multiple", bindLabel: "bindLabel", bindValue: "bindValue" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormSearchableSelectComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormSearchableSelectComponent, isStandalone: true, selector: "up-searchable-select", inputs: { queryFunc: "queryFunc", clearable: "clearable", label: "label", initialItems: "initialItems", required: "required", addTag: "addTag", disabled: "disabled", multiple: "multiple", bindLabel: "bindLabel", bindValue: "bindValue" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
71
71
  {
72
72
  multi: true,
73
73
  provide: NG_VALUE_ACCESSOR,
@@ -80,7 +80,7 @@ export class FormSearchableSelectComponent {
80
80
  }
81
81
  ], usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<ng-select \n appendTo=\"body\"\n typeToSearchText=\"Please enter 3 or more characters\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\" \n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\" \n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormSearchableSelectComponent, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormSearchableSelectComponent, decorators: [{
84
84
  type: Component,
85
85
  args: [{ standalone: true, selector: 'up-searchable-select', changeDetection: ChangeDetectionStrategy.OnPush, host: {
86
86
  class: 'd-block'
@@ -54,8 +54,8 @@ export class FormSelectComponent {
54
54
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
55
55
  }
56
56
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormSelectComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormSelectComponent, isStandalone: true, selector: "up-select", inputs: { items: "items", clearable: "clearable", label: "label", multiple: "multiple", required: "required", addTag: "addTag", disabled: "disabled", searchable: "searchable", bindLabel: "bindLabel", bindValue: "bindValue" }, host: { classAttribute: "d-block" }, providers: [
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormSelectComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormSelectComponent, isStandalone: true, selector: "up-select", inputs: { items: "items", clearable: "clearable", label: "label", multiple: "multiple", required: "required", addTag: "addTag", disabled: "disabled", searchable: "searchable", bindLabel: "bindLabel", bindValue: "bindValue" }, host: { classAttribute: "d-block" }, providers: [
59
59
  {
60
60
  multi: true,
61
61
  provide: NG_VALUE_ACCESSOR,
@@ -68,7 +68,7 @@ export class FormSelectComponent {
68
68
  }
69
69
  ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<ng-select\n appendTo=\"body\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #616161;border-width:0 5px 5px}.ng-select.ng-select-disabled>.ng-select-container{background-color:#e9ecef}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#424242;background-color:#fff;border-radius:4px;border:2px solid #e0e0e0;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#a8a8a8}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{left:0;padding-left:10px;padding-right:50px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input input{color:#424242}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#e9ecef;border:1px solid #fafafa}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#ed6b26;background-color:#fef3ee;border-radius:2px;margin-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#e9ecef}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#fde2d6}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#424242}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}.ng-select .ng-clear-wrapper{color:#adadad}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#ff3b30}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#616161 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:2px solid #e0e0e0;box-shadow:0 1px #0000000f;left:0;z-index:20100!important;border-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;margin-bottom:2px}.ng-dropdown-panel.ng-select-bottom{top:100%;margin-top:2px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fef3ee;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#ed6b26;background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#fef3ee;color:#424242}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#888}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormSelectComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormSelectComponent, decorators: [{
72
72
  type: Component,
73
73
  args: [{ standalone: true, selector: 'up-select', changeDetection: ChangeDetectionStrategy.OnPush, host: {
74
74
  class: 'd-block'
@@ -41,8 +41,8 @@ export class FormTextareaComponent {
41
41
  this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
42
42
  }
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormTextareaComponent, deps: [{ token: 'label', attribute: true }, { token: 'placeholder', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: FormTextareaComponent, isStandalone: true, selector: "up-textarea", inputs: { value: "value", required: "required", disabled: "disabled" }, host: { classAttribute: "d-block" }, providers: [
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormTextareaComponent, deps: [{ token: 'label', attribute: true }, { token: 'placeholder', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormTextareaComponent, isStandalone: true, selector: "up-textarea", inputs: { value: "value", required: "required", disabled: "disabled" }, host: { classAttribute: "d-block" }, providers: [
46
46
  {
47
47
  multi: true,
48
48
  provide: NG_VALUE_ACCESSOR,
@@ -55,7 +55,7 @@ export class FormTextareaComponent {
55
55
  }
56
56
  ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n<textarea autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" rows=\"3\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\"></textarea>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormTextareaComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormTextareaComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ standalone: true, selector: 'up-textarea', changeDetection: ChangeDetectionStrategy.OnPush, host: {
61
61
  class: 'd-block'
@@ -65,16 +65,20 @@ export class GridPaginationComponent {
65
65
  }
66
66
  successCallback(data, this.count);
67
67
  },
68
- error: () => failCallback()
68
+ error: () => {
69
+ this.gridApi.hideOverlay();
70
+ this.gridApi.showNoRowsOverlay();
71
+ failCallback();
72
+ }
69
73
  });
70
74
  }
71
75
  };
72
76
  this.gridApi?.setGridOption('datasource', datasource);
73
77
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GridPaginationComponent, deps: [{ token: i1.GridService }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: GridPaginationComponent, isStandalone: true, selector: "up-pagination-grid", inputs: { config: "config", rowData: "rowData", id: "id", rowModelType: "rowModelType", rowSelection: "rowSelection" }, outputs: { onRowClick: "onRowClick", onGridReady: "onGridReady", onSelectionChanged: "onSelectionChanged" }, host: { classAttribute: "d-block h-100 w-100" }, ngImport: i0, template: "<ag-grid-angular class=\"ag-theme-balham h-100\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [rowModelType]=\"rowModelType\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AgGridModule }, { kind: "component", type: i2.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GridPaginationComponent, deps: [{ token: i1.GridService }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: GridPaginationComponent, isStandalone: true, selector: "up-pagination-grid", inputs: { config: "config", rowData: "rowData", id: "id", rowModelType: "rowModelType", rowSelection: "rowSelection" }, outputs: { onRowClick: "onRowClick", onGridReady: "onGridReady", onSelectionChanged: "onSelectionChanged" }, host: { classAttribute: "d-block h-100 w-100" }, ngImport: i0, template: "<ag-grid-angular class=\"ag-theme-balham h-100\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [rowModelType]=\"rowModelType\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AgGridModule }, { kind: "component", type: i2.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
80
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GridPaginationComponent, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GridPaginationComponent, decorators: [{
78
82
  type: Component,
79
83
  args: [{ standalone: true, selector: 'up-pagination-grid', changeDetection: ChangeDetectionStrategy.OnPush, host: {
80
84
  class: 'd-block h-100 w-100'
@@ -99,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
99
103
  }], onSelectionChanged: [{
100
104
  type: Output
101
105
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBdUMsY0FBYyxFQUEwRyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RNLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQWlCMUQsTUFBTSxPQUFPLHVCQUF1QjtJQStFbEMsWUFDcUIsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQW5FekIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQU1wQixPQUFFLEdBQXVCLFFBQVEsQ0FBQztRQU9sQyxpQkFBWSxHQUFpQixVQUFVLENBQUM7UUFNeEMsaUJBQVksR0FBMEIsUUFBUSxDQUFDO1FBT3JDLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9uRCxnQkFBVyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTy9ELHVCQUFrQixHQUE2QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTVG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QUF1QixvV0N0QnBDLDZuQkFnQkEseURER0ksWUFBWTs7MkZBR0gsdUJBQXVCO2tCQWJuQyxTQUFTO2lDQUNJLElBQUksWUFDTixvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3QixXQUNRO3dCQUNQLFlBQVk7cUJBQ2I7Z0ZBU2lDLE1BQU07c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU1ULE9BQU87c0JBQXRCLEtBQUs7Z0JBTVUsRUFBRTtzQkFBakIsS0FBSztnQkFPVSxZQUFZO3NCQUEzQixLQUFLO2dCQU1VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBT29CLFVBQVU7c0JBQW5DLE1BQU07Z0JBT21CLFdBQVc7c0JBQXBDLE1BQU07Z0JBT21CLGtCQUFrQjtzQkFBM0MsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sRGVmLCBJRGF0YXNvdXJjZSwgSUdldFJvd3NQYXJhbXMsIE1vZHVsZVJlZ2lzdHJ5LCBSb3dNb2RlbFR5cGUsIEdyaWRSZWFkeUV2ZW50LCBEcmFnU3RvcHBlZEV2ZW50LCBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQsIEdyaWRBcGksIFBhZ2luYXRpb25DaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVJvd01vZGVsTW9kdWxlIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2luZmluaXRlLXJvdy1tb2RlbCc7XG5pbXBvcnQgeyBDbGllbnRTaWRlUm93TW9kZWxNb2R1bGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsJztcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyaWQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLXBhZ2luYXRpb24tZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgXG4gICAgY2xhc3M6ICdkLWJsb2NrIGgtMTAwIHctMTAwJyBcbiAgfSxcbiAgaW1wb3J0czogWyBcbiAgICBBZ0dyaWRNb2R1bGUgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgZGVmaW5pbmcgdGhlIGFnLUdyaWQgcHJvcGVydGllcy5cbiAgICogQHR5cGUge0dyaWRDb25maWd9XG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciBwcm92aWRpbmcgdGhlIHJvdyBkYXRhIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgYWctR3JpZC5cbiAgICogQHR5cGUge2FueVtdfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd0RhdGE6IGFueVtdID0gW107XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciBzcGVjaWZ5aW5nIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWctR3JpZCBjb21wb25lbnQuXG4gICAqIEB0eXBlIHtgZ3JpZC0keyBzdHJpbmcgfWB9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IGBncmlkLSR7IHN0cmluZyB9YCA9ICdncmlkLXAnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgcm93IG1vZGVsIHR5cGUgZm9yIHRoZSBhZy1HcmlkLlxuICAgKiBJdCBjYW4gYmUgJ2luZmluaXRlJyBvciAnY2xpZW50U2lkZScuXG4gICAqIEB0eXBlIHtSb3dNb2RlbFR5cGV9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcm93TW9kZWxUeXBlOiBSb3dNb2RlbFR5cGUgPSAnaW5maW5pdGUnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgcm93IHNlbGVjdGlvbiBtb2RlLiBJdCBjYW4gYmUgJ3NpbmdsZScgb3IgJ211bHRpcGxlJy5cbiAgICogQHR5cGUgeygnc2luZ2xlJyB8ICdtdWx0aXBsZScpfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBldmVudCBlbWl0dGVyIHRyaWdnZXJlZCB3aGVuIGEgcm93IGluIHRoZSBhZy1HcmlkIGlzIGNsaWNrZWQuXG4gICAqIEVtaXRzIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpY2tlZCByb3cuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8YW55Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgb25Sb3dDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBldmVudCBlbWl0dGVyIHRyaWdnZXJlZCB3aGVuIHRoZSBhZy1HcmlkIGlzIHJlYWR5LlxuICAgKiBFbWl0cyBhIGBHcmlkUmVhZHlFdmVudGAgb2JqZWN0LlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPEdyaWRSZWFkeUV2ZW50Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgb25HcmlkUmVhZHk6IEV2ZW50RW1pdHRlcjxHcmlkUmVhZHlFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBldmVudCBlbWl0dGVyIHRyaWdnZXJlZCB3aGVuIHRoZSBzZWxlY3Rpb24gaW4gdGhlIGFnLUdyaWQgY2hhbmdlcy5cbiAgICogRW1pdHMgYSBgU2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT5gIG9iamVjdC5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pj59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBjb2x1bW4gZGVmaW5pdGlvbiBmb3IgdGhlIGFnLUdyaWQuXG4gICAqIEB0eXBlIHtDb2xEZWZ9XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbERlZjogQ29sRGVmID0geyBtaW5XaWR0aDogMjAwLCBmbGV4OiAxLCBzb3J0YWJsZTogdHJ1ZSwgcmVzaXphYmxlOiB0cnVlLCBzb3J0aW5nT3JkZXI6IFsgJ2FzYycsICdkZXNjJyBdLCBjZWxsU3R5bGU6IHsgdGV4dEFsaWduOiAnbGVmdCcgfX07XG5cbiAgLyoqXG4gICAqIFByb3RlY3RlZCB2YXJpYWJsZSB0byBzdG9yZSB0aGUgdG90YWwgY291bnQgb2YgcmVjb3Jkcy5cbiAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICovXG4gIHByb3RlY3RlZCBjb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogUHJvdGVjdGVkIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBhZy1HcmlkIEFQSS5cbiAgICogQHR5cGUge0dyaWRBcGl9XG4gICAqL1xuICBwcm90ZWN0ZWQgZ3JpZEFwaSE6IEdyaWRBcGk7XG5cbiAgLyoqXG4gICAqIFByb3RlY3RlZCB2YXJpYWJsZSB0byBzdG9yZSB0aGUgc3Vic2NyaXB0aW9uIHRvIGRhdGEgcmV0cmlldmFsLlxuICAgKiBAdHlwZSB7U3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgcHJvdGVjdGVkIHN1YnM/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IEdyaWRTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50LlxuICAgKiBSZWdpc3RlcnMgdGhlIHJvdyBtb2RlbCB0eXBlIG1vZHVsZSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqIFNldHMgZGVmYXVsdCB2YWx1ZXMgZm9yIHJvd1BlclBhZ2UgYW5kIG5vUm93VGV4dCBwcm9wZXJ0aWVzIGluIHRoZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgTW9kdWxlUmVnaXN0cnkucmVnaXN0ZXIodGhpcy5yb3dNb2RlbFR5cGUgPT09ICdpbmZpbml0ZSc/IEluZmluaXRlUm93TW9kZWxNb2R1bGUgOiBDbGllbnRTaWRlUm93TW9kZWxNb2R1bGUpO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5yb3dQZXJQYWdlKSB0aGlzLmNvbmZpZy5yb3dQZXJQYWdlID0gNTA7XG4gICAgdGhpcy5jb25maWcubm9Sb3dUZXh0ID0gYDxzcGFuIGNsYXNzPVwiZjIwXCI+JHsgdGhpcy5jb25maWcubm9Sb3dUZXh0Pz8gJ0RhdGEgbm90IGZvdW5kJyB9PC9zcGFuPmA7XG4gIH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaGFuZGxlIGNvbXBvbmVudCBkZXN0cnVjdGlvbi5cbiAgICogVW5zdWJzY3JpYmVzIGZyb20gZGF0YSByZXRyaWV2YWwgc3Vic2NyaXB0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkeyB0aGlzLnN1YnM/LnVuc3Vic2NyaWJlKCk7IH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2xpY2tpbmcgYSByb3cgaW4gdGhlIGFnLUdyaWQuXG4gICAqIEVtaXRzIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpY2tlZCByb3cuXG4gICAqIEBwYXJhbSB7YW55fSBkYXRhIC0gRGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWNrZWQgcm93LlxuICAgKi9cbiAgcHVibGljIGNsaWNrUm93KGRhdGE6IGFueSk6IHZvaWR7IHRoaXMub25Sb3dDbGljay5lbWl0KGRhdGEpOyB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gY29sdW1uIGRyYWcgc3RvcHMgaW4gdGhlIGFnLUdyaWQuXG4gICAqIFNhdmVzIHRoZSBjb2x1bW4gc3RhdGUgdG8gbG9jYWwgc3RvcmFnZS5cbiAgICogQHBhcmFtIHtEcmFnU3RvcHBlZEV2ZW50fSBwYXJhbTAgLSBEcmFnU3RvcHBlZEV2ZW50IG9iamVjdCBjb250YWluaW5nIEFQSSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBkcmFnQ29sdW1uKHsgYXBpIH06IERyYWdTdG9wcGVkRXZlbnQpOiB2b2lkeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmlkLCBKU09OLnN0cmluZ2lmeShhcGkuZ2V0Q29sdW1uU3RhdGUoKSkpOyB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIHNlbGVjdGlvbiBjaGFuZ2UgaW4gdGhlIGFnLUdyaWQuXG4gICAqIEVtaXRzIGEgYFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+YCBvYmplY3QuXG4gICAqIEBwYXJhbSB7U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT59IGRhdGEgLSBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGNoYW5nZVNlbGVjdGVkKGRhdGE6IFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+KTogdm9pZHsgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWQuZW1pdChkYXRhKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBwYWdpbmF0aW9uIGNoYW5nZSBpbiB0aGUgYWctR3JpZC5cbiAgICogVXBkYXRlcyB0aGUgcm93UGVyUGFnZSBwcm9wZXJ0eSBpbiB0aGUgY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgbmV3IHBhZ2Ugc2l6ZS5cbiAgICogQHBhcmFtIHtQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50fSBldiAtIFBhZ2luYXRpb25DaGFuZ2VkRXZlbnQgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGNoYW5nZVBhZ2luYXRpb24oZXY6IFBhZ2luYXRpb25DaGFuZ2VkRXZlbnQpOiB2b2lke1xuICAgIGlmIChldi5uZXdQYWdlU2l6ZSkgdGhpcy5jb25maWcucm93UGVyUGFnZSA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0UGFnZVNpemUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBzZXR0aW5nIHRoZSBkYXRhc291cmNlIHdoZW4gdGhlIGFnLUdyaWQgaXMgcmVhZHkuXG4gICAqIEVtaXRzIHRoZSBvbkdyaWRSZWFkeSBldmVudCBhbmQgc2V0cyB0aGUgQVBJIGluIHRoZSBHcmlkU2VydmljZS5cbiAgICogQXBwbGllcyBjb2x1bW4gc3RhdGUgZnJvbSBsb2NhbCBzdG9yYWdlIGFuZCByZXNldHMgdGhlIGdyaWQgZm9yIGluZmluaXRlIHJvdyBtb2RlbCB0eXBlLlxuICAgKiBAcGFyYW0ge0dyaWRSZWFkeUV2ZW50fSBldiAtIEdyaWRSZWFkeUV2ZW50IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXREYXRhc291cmNlKGV2OiBHcmlkUmVhZHlFdmVudCk6IHZvaWR7XG4gICAgdGhpcy5ncmlkQXBpID0gZXYuYXBpO1xuICAgIHRoaXMub25HcmlkUmVhZHkuZW1pdChldik7XG4gICAgdGhpcy5zZXJ2aWNlLnNldEFwaSh0aGlzLmlkLCB0aGlzLmdyaWRBcGkpO1xuXG4gICAgY29uc3Qgc3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaWQpIGFzIGFueSk7XG4gICAgaWYgKHN0YXRlKSBldi5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7IHN0YXRlLCBhcHBseU9yZGVyOiB0cnVlIH0pO1xuXG4gICAgaWYgKHRoaXMucm93TW9kZWxUeXBlID09PSAnY2xpZW50U2lkZScpIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdyb3dEYXRhJywgdGhpcy5yb3dEYXRhKTtcbiAgICBpZiAodGhpcy5yb3dNb2RlbFR5cGUgIT09ICdpbmZpbml0ZScpIHJldHVybjtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBkYXRhc291cmNlIGZvciBpbmZpbml0ZSByb3cgbW9kZWwgdHlwZS5cbiAgICogUmV0cmlldmVzIHJvd3MgYXN5bmNocm9ub3VzbHkgYmFzZWQgb24gcGFnaW5hdGlvbiBhbmQgc29ydGluZy5cbiAgICogVXBkYXRlcyB0aGUgY291bnQgb2YgcmVjb3JkcyBhbmQgY2FsbHMgc3VjY2VzcyBvciBmYWlsIGNhbGxiYWNrcyBhY2NvcmRpbmdseS5cbiAgICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lke1xuICAgIGlmICghdGhpcy5ncmlkQXBpKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRhc291cmNlOiBJRGF0YXNvdXJjZSA9IHtcbiAgICAgIGdldFJvd3M6ICh7IHNvcnRNb2RlbDogW3sgY29sSWQsIHNvcnQgfV0sIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbENhbGxiYWNrIH06IElHZXRSb3dzUGFyYW1zKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zaG93TG9hZGluZ092ZXJsYXkoKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpO1xuXG4gICAgICAgIHRoaXMuc3VicyA9IHRoaXMuY29uZmlnLmdldERhdGEhKG9mZnNldCwgdGhpcy5jb25maWcucm93UGVyUGFnZSEsIGNvbElkLCBzb3J0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh7IGRhdGEsIHRvdGFsUmVjb3JkIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5oaWRlT3ZlcmxheSgpO1xuXG4gICAgICAgICAgICBpZiAob2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PT0gMCkgdGhpcy5ncmlkQXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSB0b3RhbFJlY29yZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy51c2VUb3RhbFJlY29yZCAmJiBkYXRhLmxlbmd0aCA8IHRoaXMuY29uZmlnLnJvd1BlclBhZ2UhKSB7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSAob2Zmc2V0ICogdGhpcy5jb25maWcucm93UGVyUGFnZSEpICsgZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2soZGF0YSwgdGhpcy5jb3VudCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4gZmFpbENhbGxiYWNrKClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICB0aGlzLmdyaWRBcGk/LnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCBkYXRhc291cmNlKTtcbiAgfVxufVxuIiwiPGFnLWdyaWQtYW5ndWxhciBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbSBoLTEwMFwiXG4gICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgW2FuaW1hdGVSb3dzXT1cInRydWVcIlxuICAgIFtyb3dNb2RlbFR5cGVdPVwicm93TW9kZWxUeXBlXCJcbiAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgW2NvbHVtbkRlZnNdPVwiY29uZmlnLmNvbERlZnNcIlxuICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgIFtjYWNoZUJsb2NrU2l6ZV09XCJjb25maWcucm93UGVyUGFnZVwiXG4gICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJjb25maWcucm93UGVyUGFnZVwiXG4gICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJjb25maWcubm9Sb3dUZXh0XCJcbiAgICAoZHJhZ1N0b3BwZWQpPVwiZHJhZ0NvbHVtbigkZXZlbnQpXCJcbiAgICAoZ3JpZFJlYWR5KT1cInNldERhdGFzb3VyY2UoJGV2ZW50KVwiXG4gICAgKHJvd0NsaWNrZWQpPVwiY2xpY2tSb3coJGV2ZW50LmRhdGEpXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJjaGFuZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAocGFnaW5hdGlvbkNoYW5nZWQpPVwiY2hhbmdlUGFnaW5hdGlvbigkZXZlbnQpXCJcbi8+XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBdUMsY0FBYyxFQUEwRyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RNLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQWlCMUQsTUFBTSxPQUFPLHVCQUF1QjtJQStFbEMsWUFDcUIsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQW5FekIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQU1wQixPQUFFLEdBQXVCLFFBQVEsQ0FBQztRQU9sQyxpQkFBWSxHQUFpQixVQUFVLENBQUM7UUFNeEMsaUJBQVksR0FBMEIsUUFBUSxDQUFDO1FBT3JDLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9uRCxnQkFBVyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTy9ELHVCQUFrQixHQUE2QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTVG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QUNGLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0E1TFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsb1dDdEJwQyw2bkJBZ0JBLHlEREdJLFlBQVk7OzJGQUdILHVCQUF1QjtrQkFibkMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0IsV0FDUTt3QkFDUCxZQUFZO3FCQUNiO2dGQVNpQyxNQUFNO3NCQUF2QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNVCxPQUFPO3NCQUF0QixLQUFLO2dCQU1VLEVBQUU7c0JBQWpCLEtBQUs7Z0JBT1UsWUFBWTtzQkFBM0IsS0FBSztnQkFNVSxZQUFZO3NCQUEzQixLQUFLO2dCQU9vQixVQUFVO3NCQUFuQyxNQUFNO2dCQU9tQixXQUFXO3NCQUFwQyxNQUFNO2dCQU9tQixrQkFBa0I7c0JBQTNDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbERlZiwgSURhdGFzb3VyY2UsIElHZXRSb3dzUGFyYW1zLCBNb2R1bGVSZWdpc3RyeSwgUm93TW9kZWxUeXBlLCBHcmlkUmVhZHlFdmVudCwgRHJhZ1N0b3BwZWRFdmVudCwgU2VsZWN0aW9uQ2hhbmdlZEV2ZW50LCBHcmlkQXBpLCBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgSW5maW5pdGVSb3dNb2RlbE1vZHVsZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9pbmZpbml0ZS1yb3ctbW9kZWwnO1xuaW1wb3J0IHsgQ2xpZW50U2lkZVJvd01vZGVsTW9kdWxlIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NsaWVudC1zaWRlLXJvdy1tb2RlbCc7XG5pbXBvcnQgeyBBZ0dyaWRNb2R1bGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBHcmlkQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ncmlkLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ncmlkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1wYWdpbmF0aW9uLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IFxuICAgIGNsYXNzOiAnZC1ibG9jayBoLTEwMCB3LTEwMCcgXG4gIH0sXG4gIGltcG9ydHM6IFsgXG4gICAgQWdHcmlkTW9kdWxlIFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGRlZmluaW5nIHRoZSBhZy1HcmlkIHByb3BlcnRpZXMuXG4gICAqIEB0eXBlIHtHcmlkQ29uZmlnfVxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBjb25maWchOiBHcmlkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgcHJvdmlkaW5nIHRoZSByb3cgZGF0YSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGFnLUdyaWQuXG4gICAqIEB0eXBlIHthbnlbXX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dEYXRhOiBhbnlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFnLUdyaWQgY29tcG9uZW50LlxuICAgKiBAdHlwZSB7YGdyaWQtJHsgc3RyaW5nIH1gfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlkOiBgZ3JpZC0keyBzdHJpbmcgfWAgPSAnZ3JpZC1wJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHNwZWNpZnlpbmcgdGhlIHJvdyBtb2RlbCB0eXBlIGZvciB0aGUgYWctR3JpZC5cbiAgICogSXQgY2FuIGJlICdpbmZpbml0ZScgb3IgJ2NsaWVudFNpZGUnLlxuICAgKiBAdHlwZSB7Um93TW9kZWxUeXBlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2luZmluaXRlJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHNwZWNpZnlpbmcgdGhlIHJvdyBzZWxlY3Rpb24gbW9kZS4gSXQgY2FuIGJlICdzaW5nbGUnIG9yICdtdWx0aXBsZScuXG4gICAqIEB0eXBlIHsoJ3NpbmdsZScgfCAnbXVsdGlwbGUnKX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dTZWxlY3Rpb246ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiBhIHJvdyBpbiB0aGUgYWctR3JpZCBpcyBjbGlja2VkLlxuICAgKiBFbWl0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWNrZWQgcm93LlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPGFueT59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uUm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgYWctR3JpZCBpcyByZWFkeS5cbiAgICogRW1pdHMgYSBgR3JpZFJlYWR5RXZlbnRgIG9iamVjdC5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxHcmlkUmVhZHlFdmVudD59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uR3JpZFJlYWR5OiBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGluIHRoZSBhZy1HcmlkIGNoYW5nZXMuXG4gICAqIEVtaXRzIGEgYFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+YCBvYmplY3QuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT4+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvblNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29sdW1uIGRlZmluaXRpb24gZm9yIHRoZSBhZy1HcmlkLlxuICAgKiBAdHlwZSB7Q29sRGVmfVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHsgbWluV2lkdGg6IDIwMCwgZmxleDogMSwgc29ydGFibGU6IHRydWUsIHJlc2l6YWJsZTogdHJ1ZSwgc29ydGluZ09yZGVyOiBbICdhc2MnLCAnZGVzYycgXSwgY2VsbFN0eWxlOiB7IHRleHRBbGlnbjogJ2xlZnQnIH19O1xuXG4gIC8qKlxuICAgKiBQcm90ZWN0ZWQgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHRvdGFsIGNvdW50IG9mIHJlY29yZHMuXG4gICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgY291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFByb3RlY3RlZCB2YXJpYWJsZSB0byBzdG9yZSB0aGUgYWctR3JpZCBBUEkuXG4gICAqIEB0eXBlIHtHcmlkQXBpfVxuICAgKi9cbiAgcHJvdGVjdGVkIGdyaWRBcGkhOiBHcmlkQXBpO1xuXG4gIC8qKlxuICAgKiBQcm90ZWN0ZWQgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHN1YnNjcmlwdGlvbiB0byBkYXRhIHJldHJpZXZhbC5cbiAgICogQHR5cGUge1N1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIHByb3RlY3RlZCBzdWJzPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBHcmlkU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudC5cbiAgICogUmVnaXN0ZXJzIHRoZSByb3cgbW9kZWwgdHlwZSBtb2R1bGUgYmFzZWQgb24gdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgKiBTZXRzIGRlZmF1bHQgdmFsdWVzIGZvciByb3dQZXJQYWdlIGFuZCBub1Jvd1RleHQgcHJvcGVydGllcyBpbiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lke1xuICAgIE1vZHVsZVJlZ2lzdHJ5LnJlZ2lzdGVyKHRoaXMucm93TW9kZWxUeXBlID09PSAnaW5maW5pdGUnPyBJbmZpbml0ZVJvd01vZGVsTW9kdWxlIDogQ2xpZW50U2lkZVJvd01vZGVsTW9kdWxlKTtcblxuICAgIGlmICghdGhpcy5jb25maWcucm93UGVyUGFnZSkgdGhpcy5jb25maWcucm93UGVyUGFnZSA9IDUwO1xuICAgIHRoaXMuY29uZmlnLm5vUm93VGV4dCA9IGA8c3BhbiBjbGFzcz1cImYyMFwiPiR7IHRoaXMuY29uZmlnLm5vUm93VGV4dD8/ICdEYXRhIG5vdCBmb3VuZCcgfTwvc3Bhbj5gO1xuICB9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGhhbmRsZSBjb21wb25lbnQgZGVzdHJ1Y3Rpb24uXG4gICAqIFVuc3Vic2NyaWJlcyBmcm9tIGRhdGEgcmV0cmlldmFsIHN1YnNjcmlwdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgdGhpcy5zdWJzPy51bnN1YnNjcmliZSgpOyB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNsaWNraW5nIGEgcm93IGluIHRoZSBhZy1HcmlkLlxuICAgKiBFbWl0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWNrZWQgcm93LlxuICAgKiBAcGFyYW0ge2FueX0gZGF0YSAtIERhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGlja2VkIHJvdy5cbiAgICovXG4gIHB1YmxpYyBjbGlja1JvdyhkYXRhOiBhbnkpOiB2b2lkeyB0aGlzLm9uUm93Q2xpY2suZW1pdChkYXRhKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciB3aGVuIGNvbHVtbiBkcmFnIHN0b3BzIGluIHRoZSBhZy1HcmlkLlxuICAgKiBTYXZlcyB0aGUgY29sdW1uIHN0YXRlIHRvIGxvY2FsIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7RHJhZ1N0b3BwZWRFdmVudH0gcGFyYW0wIC0gRHJhZ1N0b3BwZWRFdmVudCBvYmplY3QgY29udGFpbmluZyBBUEkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgZHJhZ0NvbHVtbih7IGFwaSB9OiBEcmFnU3RvcHBlZEV2ZW50KTogdm9pZHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pZCwgSlNPTi5zdHJpbmdpZnkoYXBpLmdldENvbHVtblN0YXRlKCkpKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBzZWxlY3Rpb24gY2hhbmdlIGluIHRoZSBhZy1HcmlkLlxuICAgKiBFbWl0cyBhIGBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55PmAgb2JqZWN0LlxuICAgKiBAcGFyYW0ge1NlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+fSBkYXRhIC0gU2VsZWN0aW9uQ2hhbmdlZEV2ZW50IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3RlZChkYXRhOiBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pik6IHZvaWR7IHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZGF0YSk7IH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgcGFnaW5hdGlvbiBjaGFuZ2UgaW4gdGhlIGFnLUdyaWQuXG4gICAqIFVwZGF0ZXMgdGhlIHJvd1BlclBhZ2UgcHJvcGVydHkgaW4gdGhlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIG5ldyBwYWdlIHNpemUuXG4gICAqIEBwYXJhbSB7UGFnaW5hdGlvbkNoYW5nZWRFdmVudH0gZXYgLSBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VQYWdpbmF0aW9uKGV2OiBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50KTogdm9pZHtcbiAgICBpZiAoZXYubmV3UGFnZVNpemUpIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFBhZ2VTaXplKCk7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3Igc2V0dGluZyB0aGUgZGF0YXNvdXJjZSB3aGVuIHRoZSBhZy1HcmlkIGlzIHJlYWR5LlxuICAgKiBFbWl0cyB0aGUgb25HcmlkUmVhZHkgZXZlbnQgYW5kIHNldHMgdGhlIEFQSSBpbiB0aGUgR3JpZFNlcnZpY2UuXG4gICAqIEFwcGxpZXMgY29sdW1uIHN0YXRlIGZyb20gbG9jYWwgc3RvcmFnZSBhbmQgcmVzZXRzIHRoZSBncmlkIGZvciBpbmZpbml0ZSByb3cgbW9kZWwgdHlwZS5cbiAgICogQHBhcmFtIHtHcmlkUmVhZHlFdmVudH0gZXYgLSBHcmlkUmVhZHlFdmVudCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc2V0RGF0YXNvdXJjZShldjogR3JpZFJlYWR5RXZlbnQpOiB2b2lke1xuICAgIHRoaXMuZ3JpZEFwaSA9IGV2LmFwaTtcbiAgICB0aGlzLm9uR3JpZFJlYWR5LmVtaXQoZXYpO1xuICAgIHRoaXMuc2VydmljZS5zZXRBcGkodGhpcy5pZCwgdGhpcy5ncmlkQXBpKTtcblxuICAgIGNvbnN0IHN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmlkKSBhcyBhbnkpO1xuICAgIGlmIChzdGF0ZSkgZXYuYXBpLmFwcGx5Q29sdW1uU3RhdGUoeyBzdGF0ZSwgYXBwbHlPcmRlcjogdHJ1ZSB9KTtcblxuICAgIGlmICh0aGlzLnJvd01vZGVsVHlwZSA9PT0gJ2NsaWVudFNpZGUnKSB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHRoaXMucm93RGF0YSk7XG4gICAgaWYgKHRoaXMucm93TW9kZWxUeXBlICE9PSAnaW5maW5pdGUnKSByZXR1cm47XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgZGF0YXNvdXJjZSBmb3IgaW5maW5pdGUgcm93IG1vZGVsIHR5cGUuXG4gICAqIFJldHJpZXZlcyByb3dzIGFzeW5jaHJvbm91c2x5IGJhc2VkIG9uIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcuXG4gICAqIFVwZGF0ZXMgdGhlIGNvdW50IG9mIHJlY29yZHMgYW5kIGNhbGxzIHN1Y2Nlc3Mgb3IgZmFpbCBjYWxsYmFja3MgYWNjb3JkaW5nbHkuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZHtcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YXNvdXJjZTogSURhdGFzb3VyY2UgPSB7XG4gICAgICBnZXRSb3dzOiAoeyBzb3J0TW9kZWw6IFt7IGNvbElkLCBzb3J0IH1dLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWxDYWxsYmFjayB9OiBJR2V0Um93c1BhcmFtcykgPT4ge1xuICAgICAgICB0aGlzLmdyaWRBcGkuc2hvd0xvYWRpbmdPdmVybGF5KCk7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKTtcblxuICAgICAgICB0aGlzLnN1YnMgPSB0aGlzLmNvbmZpZy5nZXREYXRhIShvZmZzZXQsIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UhLCBjb2xJZCwgc29ydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoeyBkYXRhLCB0b3RhbFJlY29yZCB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyaWRBcGkuaGlkZU92ZXJsYXkoKTtcblxuICAgICAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHRoaXMuZ3JpZEFwaS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gdG90YWxSZWNvcmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcudXNlVG90YWxSZWNvcmQgJiYgZGF0YS5sZW5ndGggPCB0aGlzLmNvbmZpZy5yb3dQZXJQYWdlISkge1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gKG9mZnNldCAqIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UhKSArIGRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKGRhdGEsIHRoaXMuY291bnQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5oaWRlT3ZlcmxheSgpO1xuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XG5cbiAgICAgICAgICAgIGZhaWxDYWxsYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICB0aGlzLmdyaWRBcGk/LnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCBkYXRhc291cmNlKTtcbiAgfVxufVxuIiwiPGFnLWdyaWQtYW5ndWxhciBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbSBoLTEwMFwiXG4gICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgW2FuaW1hdGVSb3dzXT1cInRydWVcIlxuICAgIFtyb3dNb2RlbFR5cGVdPVwicm93TW9kZWxUeXBlXCJcbiAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgW2NvbHVtbkRlZnNdPVwiY29uZmlnLmNvbERlZnNcIlxuICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgIFtjYWNoZUJsb2NrU2l6ZV09XCJjb25maWcucm93UGVyUGFnZVwiXG4gICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJjb25maWcucm93UGVyUGFnZVwiXG4gICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJjb25maWcubm9Sb3dUZXh0XCJcbiAgICAoZHJhZ1N0b3BwZWQpPVwiZHJhZ0NvbHVtbigkZXZlbnQpXCJcbiAgICAoZ3JpZFJlYWR5KT1cInNldERhdGFzb3VyY2UoJGV2ZW50KVwiXG4gICAgKHJvd0NsaWNrZWQpPVwiY2xpY2tSb3coJGV2ZW50LmRhdGEpXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJjaGFuZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAocGFnaW5hdGlvbkNoYW5nZWQpPVwiY2hhbmdlUGFnaW5hdGlvbigkZXZlbnQpXCJcbi8+XG4iXX0=