survey-angular-ui 1.9.126 → 1.9.128

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.
@@ -1,24 +1,26 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
2
- import { SurveyModel } from "survey-core";
2
+ import { SurveyModel, ProgressButtons, IProgressButtonsViewModel } from "survey-core";
3
3
  import * as i0 from "@angular/core";
4
- export declare class ProgressButtonsComponent implements OnDestroy, AfterViewInit, OnChanges, OnInit {
4
+ export declare class ProgressButtonsComponent implements OnDestroy, AfterViewInit, OnChanges, OnInit, IProgressButtonsViewModel {
5
5
  private changeDetectorRef;
6
- model: SurveyModel;
6
+ model: ProgressButtons;
7
+ survey: SurveyModel;
8
+ container: string;
7
9
  progressButtonsListContainer: ElementRef<HTMLDivElement>;
8
- private progressButtonsModel;
9
- private hasScroller;
10
- private updateScroller;
10
+ hasScroller: boolean;
11
+ canShowHeader: boolean;
12
+ canShowFooter: boolean;
13
+ canShowItemTitles: boolean;
14
+ private respManager?;
11
15
  constructor(changeDetectorRef: ChangeDetectorRef);
12
- private createProgressButtonsModel;
16
+ onResize(canShowItemTitles: boolean): void;
17
+ onUpdateScroller(hasScroller: boolean): void;
18
+ onUpdateSettings(): void;
13
19
  ngOnInit(): void;
14
20
  ngOnChanges(changes: SimpleChanges): void;
15
- isListElementClickable(index: number): boolean;
16
- getListElementCss(index: number): string;
17
- clickListElement(index: number): void;
18
- getScrollButtonCss(isLeftScroll: boolean): string;
19
21
  clickScrollButton(isLeftScroll: boolean): void;
20
22
  ngAfterViewInit(): void;
21
23
  ngOnDestroy(): void;
22
24
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressButtonsComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<ProgressButtonsComponent, "sv-ng-progress-buttons", never, { "model": "model"; }, {}, never, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressButtonsComponent, "sv-ng-progress-buttons", never, { "model": "model"; "survey": "survey"; "container": "container"; }, {}, never, never>;
24
26
  }
@@ -102,15 +102,9 @@ export class BaseAngular extends EmbeddedViewContentComponent {
102
102
  return true;
103
103
  }
104
104
  beforeUpdate() {
105
- if (this.getShouldReattachChangeDetector()) {
106
- this.getChangeDetectorRef().detach();
107
- }
108
105
  this.setIsRendering(true);
109
106
  }
110
107
  afterUpdate(isSync = false) {
111
- if (this.getShouldReattachChangeDetector()) {
112
- this.getChangeDetectorRef().reattach();
113
- }
114
108
  this.setIsRendering(false);
115
109
  }
116
110
  ngAfterViewChecked() {
@@ -125,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
125
119
  template: ""
126
120
  }]
127
121
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUUsTUFBTSxlQUFlLENBQUM7QUFFNUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBS2pGLE1BQU0sT0FBZ0IsV0FBbUMsU0FBUSw0QkFBNEI7SUFDM0YsWUFBc0IsaUJBQW9DLEVBQUUsZ0JBQW1DO1FBQzdGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFsRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUF3QmxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBOUJyQyxDQUFDO0lBQ0QsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFLTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUyxjQUFjLEtBQUssQ0FBQztJQUV0QixjQUFjLENBQUMsR0FBWTtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLENB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QUFXO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRG9DaGVjaywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBcnJheUNoYW5nZXMsIEJhc2UsIElTdXJ2ZXksIFN1cnZleU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcIi4vZW1iZWRkZWQtdmlldy1jb250ZW50LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IFwiXCJcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFuZ3VsYXI8VCBleHRlbmRzIEJhc2UgPSBCYXNlPiBleHRlbmRzIEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHN1cGVyKHZpZXdDb250YWluZXJSZWYpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgc3VydmV5TW9kZWwoKTogSVN1cnZleSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TW9kZWwoKS5nZXRTdXJ2ZXkoKTtcbiAgfVxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0TW9kZWwoKTogVDtcbiAgcHJvdGVjdGVkIHByZXZpb3VzTW9kZWw/OiBUO1xuICBwcml2YXRlIGlzTW9kZWxTdWJzcmliZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXZpb3VzTW9kZWwgIT09IHRoaXMuZ2V0TW9kZWwoKSkge1xuICAgICAgdGhpcy51bk1ha2VCYXNlRWxlbWVudEFuZ3VsYXIodGhpcy5wcmV2aW91c01vZGVsKTtcbiAgICAgIHRoaXMubWFrZUJhc2VFbGVtZW50QW5ndWxhcih0aGlzLmdldE1vZGVsKCkpO1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCgpO1xuICAgICAgdGhpcy5wcmV2aW91c01vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgIH1cbiAgICB0aGlzLnNldElzUmVuZGVyaW5nKHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTW9kZWxDaGFuZ2VkKCkgeyB9XG5cbiAgcHJpdmF0ZSBzZXRJc1JlbmRlcmluZyh2YWw6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICBpZiAoISFtb2RlbCkge1xuICAgICAgKDxhbnk+bW9kZWwpLmlzUmVuZGVyaW5nID0gdmFsO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldElzUmVuZGVyaW5nKCkge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgIHJldHVybiAhIW1vZGVsICYmICEhKDxhbnk+bW9kZWwpLmlzUmVuZGVyaW5nO1xuICB9XG4gIHByaXZhdGUgaXNEZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy51bk1ha2VCYXNlRWxlbWVudEFuZ3VsYXIodGhpcy5nZXRNb2RlbCgpKTtcbiAgICB0aGlzLnByZXZpb3VzTW9kZWwgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIG1ha2VCYXNlRWxlbWVudEFuZ3VsYXIoc3RhdGVFbGVtZW50OiBUKSB7XG4gICAgaWYgKCEhc3RhdGVFbGVtZW50ICYmICEoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZCkge1xuICAgICAgdGhpcy5pc01vZGVsU3Vic3JpYmVkID0gdHJ1ZTtcbiAgICAgICg8YW55PnN0YXRlRWxlbWVudCkuX19uZ0ltcGxlbWVudGVkID0gdHJ1ZTtcbiAgICAgIHN0YXRlRWxlbWVudC5pdGVyYXRlUHJvcGVydGllc0hhc2goKGhhc2gsIGtleSkgPT4ge1xuICAgICAgICB2YXIgdmFsOiBhbnkgPSBoYXNoW2tleV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICB2YXIgdmFsOiBhbnkgPSB2YWw7XG4gICAgICAgICAgdmFsW1wib25BcnJheUNoYW5nZWRcIl0gPSAoYXJyYXlDaGFuZ2VzOiBBcnJheUNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKGtleSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBzdGF0ZUVsZW1lbnQuc2V0UHJvcGVydHlWYWx1ZUNvcmVIYW5kbGVyID0gKFxuICAgICAgICBoYXNoOiBhbnksXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICB2YWw6IGFueVxuICAgICAgKSA9PiB7XG4gICAgICAgIGlmIChoYXNoW2tleV0gIT09IHZhbCkge1xuICAgICAgICAgIGhhc2hba2V5XSA9IHZhbDtcbiAgICAgICAgICB0aGlzLnVwZGF0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHVuTWFrZUJhc2VFbGVtZW50QW5ndWxhcihzdGF0ZUVsZW1lbnQ/OiBCYXNlKSB7XG4gICAgaWYgKCEhc3RhdGVFbGVtZW50ICYmIHRoaXMuaXNNb2RlbFN1YnNyaWJlZCkge1xuICAgICAgdGhpcy5pc01vZGVsU3Vic3JpYmVkID0gZmFsc2U7XG4gICAgICAoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZCA9IGZhbHNlO1xuICAgICAgc3RhdGVFbGVtZW50LnNldFByb3BlcnR5VmFsdWVDb3JlSGFuZGxlciA9IDxhbnk+dW5kZWZpbmVkO1xuICAgICAgc3RhdGVFbGVtZW50Lml0ZXJhdGVQcm9wZXJ0aWVzSGFzaCgoaGFzaCwga2V5KSA9PiB7XG4gICAgICAgIHZhciB2YWw6IGFueSA9IGhhc2hba2V5XTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIHZhciB2YWw6IGFueSA9IHZhbDtcbiAgICAgICAgICB2YWxbXCJvbkFycmF5Q2hhbmdlZFwiXSA9ICgpID0+IHsgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZShrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nZXRJc1JlbmRlcmluZygpKSByZXR1cm47XG4gICAgdGhpcy5iZWZvcmVVcGRhdGUoKTtcbiAgICBpZiAoa2V5ICYmIHRoaXMuZ2V0UHJvcGVydGllc1RvVXBkYXRlU3luYygpLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuYWZ0ZXJVcGRhdGUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhpcy5zZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFmdGVyVXBkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRDaGFuZ2VEZXRlY3RvclJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5lbWJlZGRlZFZpZXcgPyB0aGlzLmVtYmVkZGVkVmlldyA6IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY7XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb3BlcnRpZXNUb1VwZGF0ZVN5bmMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHByb3RlY3RlZCBkZXRlY3RDaGFuZ2VzKCkge1xuICAgIHRoaXMuZ2V0Q2hhbmdlRGV0ZWN0b3JSZWYoKS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2hvdWxkUmVhdHRhY2hDaGFuZ2VEZXRlY3RvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBiZWZvcmVVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2V0U2hvdWxkUmVhdHRhY2hDaGFuZ2VEZXRlY3RvcigpKSB7XG4gICAgICB0aGlzLmdldENoYW5nZURldGVjdG9yUmVmKCkuZGV0YWNoKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGFmdGVyVXBkYXRlKGlzU3luYzogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2V0U2hvdWxkUmVhdHRhY2hDaGFuZ2VEZXRlY3RvcigpKSB7XG4gICAgICB0aGlzLmdldENoYW5nZURldGVjdG9yUmVmKCkucmVhdHRhY2goKTtcbiAgICB9XG4gICAgdGhpcy5zZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG59Il19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUUsTUFBTSxlQUFlLENBQUM7QUFFNUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBS2pGLE1BQU0sT0FBZ0IsV0FBbUMsU0FBUSw0QkFBNEI7SUFDM0YsWUFBc0IsaUJBQW9DLEVBQUUsZ0JBQW1DO1FBQzdGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFsRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUF3QmxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBOUJyQyxDQUFDO0lBQ0QsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFLTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUyxjQUFjLEtBQUssQ0FBQztJQUV0QixjQUFjLENBQUMsR0FBWTtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLENB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QUFDLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDdEI7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBQ08sb0JBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hFLENBQUM7SUFDUyx5QkFBeUI7UUFDakMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ1MsYUFBYTtRQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRVMsK0JBQStCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ1MsV0FBVyxDQUFDLFNBQWtCLEtBQUs7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7eUdBdEhtQixXQUFXOzZGQUFYLFdBQVcsMkVBRnJCLEVBQUU7NEZBRVEsV0FBVztrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2UsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXJyYXlDaGFuZ2VzLCBCYXNlLCBJU3VydmV5LCBTdXJ2ZXlNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCB9IGZyb20gXCIuL2VtYmVkZGVkLXZpZXctY29udGVudC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBcIlwiXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VBbmd1bGFyPFQgZXh0ZW5kcyBCYXNlID0gQmFzZT4gZXh0ZW5kcyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcih2aWV3Q29udGFpbmVyUmVmKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN1cnZleU1vZGVsKCk6IElTdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLmdldE1vZGVsKCkuZ2V0U3VydmV5KCk7XG4gIH1cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE1vZGVsKCk6IFQ7XG4gIHByb3RlY3RlZCBwcmV2aW91c01vZGVsPzogVDtcbiAgcHJpdmF0ZSBpc01vZGVsU3Vic3JpYmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2aW91c01vZGVsICE9PSB0aGlzLmdldE1vZGVsKCkpIHtcbiAgICAgIHRoaXMudW5NYWtlQmFzZUVsZW1lbnRBbmd1bGFyKHRoaXMucHJldmlvdXNNb2RlbCk7XG4gICAgICB0aGlzLm1ha2VCYXNlRWxlbWVudEFuZ3VsYXIodGhpcy5nZXRNb2RlbCgpKTtcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZWQoKTtcbiAgICAgIHRoaXMucHJldmlvdXNNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk1vZGVsQ2hhbmdlZCgpIHsgfVxuXG4gIHByaXZhdGUgc2V0SXNSZW5kZXJpbmcodmFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsKCk7XG4gICAgaWYgKCEhbW9kZWwpIHtcbiAgICAgICg8YW55Pm1vZGVsKS5pc1JlbmRlcmluZyA9IHZhbDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRJc1JlbmRlcmluZygpIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICByZXR1cm4gISFtb2RlbCAmJiAhISg8YW55Pm1vZGVsKS5pc1JlbmRlcmluZztcbiAgfVxuICBwcml2YXRlIGlzRGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMudW5NYWtlQmFzZUVsZW1lbnRBbmd1bGFyKHRoaXMuZ2V0TW9kZWwoKSk7XG4gICAgdGhpcy5wcmV2aW91c01vZGVsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlQmFzZUVsZW1lbnRBbmd1bGFyKHN0YXRlRWxlbWVudDogVCkge1xuICAgIGlmICghIXN0YXRlRWxlbWVudCAmJiAhKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nSW1wbGVtZW50ZWQpIHtcbiAgICAgIHRoaXMuaXNNb2RlbFN1YnNyaWJlZCA9IHRydWU7XG4gICAgICAoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZCA9IHRydWU7XG4gICAgICBzdGF0ZUVsZW1lbnQuaXRlcmF0ZVByb3BlcnRpZXNIYXNoKChoYXNoLCBrZXkpID0+IHtcbiAgICAgICAgdmFyIHZhbDogYW55ID0gaGFzaFtrZXldO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgdmFyIHZhbDogYW55ID0gdmFsO1xuICAgICAgICAgIHZhbFtcIm9uQXJyYXlDaGFuZ2VkXCJdID0gKGFycmF5Q2hhbmdlczogQXJyYXlDaGFuZ2VzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShrZXkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgc3RhdGVFbGVtZW50LnNldFByb3BlcnR5VmFsdWVDb3JlSGFuZGxlciA9IChcbiAgICAgICAgaGFzaDogYW55LFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgdmFsOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICBpZiAoaGFzaFtrZXldICE9PSB2YWwpIHtcbiAgICAgICAgICBoYXNoW2tleV0gPSB2YWw7XG4gICAgICAgICAgdGhpcy51cGRhdGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB1bk1ha2VCYXNlRWxlbWVudEFuZ3VsYXIoc3RhdGVFbGVtZW50PzogQmFzZSkge1xuICAgIGlmICghIXN0YXRlRWxlbWVudCAmJiB0aGlzLmlzTW9kZWxTdWJzcmliZWQpIHtcbiAgICAgIHRoaXMuaXNNb2RlbFN1YnNyaWJlZCA9IGZhbHNlO1xuICAgICAgKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nSW1wbGVtZW50ZWQgPSBmYWxzZTtcbiAgICAgIHN0YXRlRWxlbWVudC5zZXRQcm9wZXJ0eVZhbHVlQ29yZUhhbmRsZXIgPSA8YW55PnVuZGVmaW5lZDtcbiAgICAgIHN0YXRlRWxlbWVudC5pdGVyYXRlUHJvcGVydGllc0hhc2goKGhhc2gsIGtleSkgPT4ge1xuICAgICAgICB2YXIgdmFsOiBhbnkgPSBoYXNoW2tleV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICB2YXIgdmFsOiBhbnkgPSB2YWw7XG4gICAgICAgICAgdmFsW1wib25BcnJheUNoYW5nZWRcIl0gPSAoKSA9PiB7IH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGUoa2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2V0SXNSZW5kZXJpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuYmVmb3JlVXBkYXRlKCk7XG4gICAgaWYgKGtleSAmJiB0aGlzLmdldFByb3BlcnRpZXNUb1VwZGF0ZVN5bmMoKS5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLmFmdGVyVXBkYXRlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZnRlclVwZGF0ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0Q2hhbmdlRGV0ZWN0b3JSZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3ID8gdGhpcy5lbWJlZGRlZFZpZXcgOiB0aGlzLmNoYW5nZURldGVjdG9yUmVmO1xuICB9XG4gIHByb3RlY3RlZCBnZXRQcm9wZXJ0aWVzVG9VcGRhdGVTeW5jKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBwcm90ZWN0ZWQgZGV0ZWN0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmdldENoYW5nZURldGVjdG9yUmVmKCkuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNob3VsZFJlYXR0YWNoQ2hhbmdlRGV0ZWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmVmb3JlVXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGFmdGVyVXBkYXRlKGlzU3luYzogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5zZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG59Il19
@@ -1,34 +1,33 @@
1
1
  import { Component, Input, ViewChild } from "@angular/core";
2
+ import { ProgressButtonsResponsivityManager } from "survey-core";
2
3
  import { AngularComponentFactory } from "../../../component-factory";
3
- import { SurveyProgressButtonsModel } from "survey-core";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  export class ProgressButtonsComponent {
7
7
  constructor(changeDetectorRef) {
8
8
  this.changeDetectorRef = changeDetectorRef;
9
9
  this.hasScroller = false;
10
- this.updateScroller = undefined;
10
+ this.canShowHeader = false;
11
+ this.canShowFooter = false;
12
+ this.canShowItemTitles = true;
11
13
  }
12
- createProgressButtonsModel() {
13
- this.progressButtonsModel = new SurveyProgressButtonsModel(this.model);
14
+ onResize(canShowItemTitles) {
15
+ this.canShowItemTitles = canShowItemTitles;
16
+ this.canShowHeader = !this.canShowItemTitles;
17
+ this.changeDetectorRef.detectChanges();
14
18
  }
15
- ngOnInit() {
16
- this.createProgressButtonsModel();
17
- }
18
- ngOnChanges(changes) {
19
- this.createProgressButtonsModel();
19
+ onUpdateScroller(hasScroller) {
20
+ this.hasScroller = hasScroller;
21
+ this.changeDetectorRef.detectChanges();
20
22
  }
21
- isListElementClickable(index) {
22
- return this.progressButtonsModel.isListElementClickable(index);
23
+ onUpdateSettings() {
24
+ this.canShowItemTitles = this.model.showItemTitles;
25
+ this.canShowFooter = !this.model.showItemTitles;
26
+ this.changeDetectorRef.detectChanges();
23
27
  }
24
- getListElementCss(index) {
25
- return this.progressButtonsModel.getListElementCss(index);
26
- }
27
- clickListElement(index) {
28
- this.progressButtonsModel.clickListElement(index);
28
+ ngOnInit() {
29
29
  }
30
- getScrollButtonCss(isLeftScroll) {
31
- return this.progressButtonsModel.getScrollButtonCss(this.hasScroller, isLeftScroll);
30
+ ngOnChanges(changes) {
32
31
  }
33
32
  clickScrollButton(isLeftScroll) {
34
33
  if (this.progressButtonsListContainer) {
@@ -36,25 +35,19 @@ export class ProgressButtonsComponent {
36
35
  }
37
36
  }
38
37
  ngAfterViewInit() {
39
- this.progressButtonsModel = new SurveyProgressButtonsModel(this.model);
40
- this.updateScroller = setInterval(() => {
41
- var _a;
42
- if (!!((_a = this.progressButtonsListContainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
43
- const listContainerElement = this.progressButtonsListContainer.nativeElement;
44
- this.hasScroller = listContainerElement.scrollWidth > listContainerElement.offsetWidth;
45
- this.changeDetectorRef.detectChanges();
46
- }
47
- }, 100);
38
+ var _a;
39
+ if (!!((_a = this.progressButtonsListContainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
40
+ const element = this.progressButtonsListContainer.nativeElement;
41
+ this.respManager = new ProgressButtonsResponsivityManager(this.model, element, this);
42
+ }
48
43
  }
49
44
  ngOnDestroy() {
50
- if (typeof this.updateScroller !== "undefined") {
51
- clearInterval(this.updateScroller);
52
- this.updateScroller = undefined;
53
- }
45
+ var _a;
46
+ (_a = this.respManager) === null || _a === void 0 ? void 0 : _a.dispose();
54
47
  }
55
48
  }
56
49
  ProgressButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressButtonsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
57
- ProgressButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressButtonsComponent, selector: "sv-ng-progress-buttons", inputs: { model: "model" }, viewQueries: [{ propertyName: "progressButtonsListContainer", first: true, predicate: ["progressButtonsListContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [class]=\"model.css.progressButtonsContainerCenter\">\n <div [class]=\"model.css.progressButtonsContainer\">\n <div\n [class]=\"getScrollButtonCss(true)\"\n (click)=\"clickScrollButton(true)\"\n role=\"button\"\n ></div>\n <div\n [class]=\"model.css.progressButtonsListContainer\" #progressButtonsListContainer>\n <ul [class]=\"model.css.progressButtonsList\">\n <li\n *ngFor=\"let page of model.visiblePages; index as index\"\n [class]=\"getListElementCss(index)\"\n (click)=\"isListElementClickable(index) ? clickListElement(index) : null\">\n <div\n [class]=\"model.css.progressButtonsPageTitle\"\n [title]=\"page.renderedNavigationTitle\"\n >\n {{ page.renderedNavigationTitle }}\n </div>\n <div\n [class]=\"model.css.progressButtonsPageDescription\"\n [title]=\"page.locNavigationDescription.renderedHtml\"\n >\n {{ page.locNavigationDescription.renderedHtml }}\n </div>\n </li>\n </ul>\n </div>\n <div\n [class]=\"getScrollButtonCss(false)\"\n (click)=\"clickScrollButton(false)\"\n role=\"button\"\n ></div>\n </div>\n</div>", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
50
+ ProgressButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressButtonsComponent, selector: "sv-ng-progress-buttons", inputs: { model: "model", survey: "survey", container: "container" }, viewQueries: [{ propertyName: "progressButtonsListContainer", first: true, predicate: ["progressButtonsListContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [class]=\"model.getRootCss(container)\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"progress\">\n <div *ngIf=\"canShowHeader\" [class]=\"survey.css.progressButtonsHeader\">\n <div [class]=\"survey.css.progressButtonsPageTitle\" [title]=\"model.headerText\">{{ model.headerText }}</div>\n </div>\n <div [class]=\"survey.css.progressButtonsContainer\">\n <div\n [class]=\"model.getScrollButtonCss(hasScroller, true)\"\n (click)=\"clickScrollButton(true)\"\n role=\"button\"\n ></div>\n <div\n [class]=\"survey.css.progressButtonsListContainer\" #progressButtonsListContainer>\n <ul [class]=\"survey.css.progressButtonsList\">\n <li\n *ngFor=\"let page of survey.visiblePages; index as index\"\n [class]=\"model.getListElementCss(index)\"\n (click)=\"model.isListElementClickable(index) ? model.clickListElement(page) : null\"\n [attr.data-page-number]=\"model.getItemNumber(page)\">\n <div [class]=\"survey.css.progressButtonsConnector\"></div>\n <div *ngIf=\"canShowItemTitles\"\n [class]=\"survey.css.progressButtonsPageTitle\"\n [title]=\"page.renderedNavigationTitle\"\n >\n {{ page.renderedNavigationTitle }}\n </div>\n <div *ngIf=\"canShowItemTitles\"\n [class]=\"survey.css.progressButtonsPageDescription\"\n [title]=\"page.locNavigationDescription.renderedHtml\"\n >\n {{ page.locNavigationDescription.renderedHtml }}\n </div>\n </li>\n </ul>\n </div>\n <div\n [class]=\"model.getScrollButtonCss(hasScroller, false)\"\n (click)=\"clickScrollButton(false)\"\n role=\"button\"\n ></div>\n </div>\n <div *ngIf=\"canShowFooter\" [class]=\"survey.css.progressButtonsFooter\">\n <div [class]=\"survey.css.progressButtonsPageTitle\" [title]=\"model.footerText\">{{ model.footerText }}</div>\n </div>\n</div>", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
58
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressButtonsComponent, decorators: [{
59
52
  type: Component,
60
53
  args: [{
@@ -63,9 +56,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
63
56
  }]
64
57
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
65
58
  type: Input
59
+ }], survey: [{
60
+ type: Input
61
+ }], container: [{
62
+ type: Input
66
63
  }], progressButtonsListContainer: [{
67
64
  type: ViewChild,
68
65
  args: ["progressButtonsListContainer"]
69
66
  }] } });
70
67
  AngularComponentFactory.Instance.registerComponent("sv-progress-buttons", ProgressButtonsComponent);
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcHJvZ3Jlc3MvYnV0dG9ucy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wcm9ncmVzcy9idXR0b25zL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLEtBQUssRUFBK0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBZSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTXRFLE1BQU0sT0FBTyx3QkFBd0I7SUFNbkMsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGaEQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBUSxTQUFTLENBQUM7SUFFeEMsQ0FBQztJQUNPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDTSxzQkFBc0IsQ0FBQyxLQUFhO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDTSxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDTSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ00sa0JBQWtCLENBQUMsWUFBcUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBQ00saUJBQWlCLENBQ3RCLFlBQXFCO1FBRXJCLElBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ3BDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzVGO0lBQ0gsQ0FBQztJQUNNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTs7WUFDckMsSUFBRyxDQUFDLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyw0QkFBNEIsMENBQUUsYUFBYSxDQUFBLEVBQUU7Z0JBQ3JELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2dCQUN2RixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDeEM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ00sV0FBVztRQUNoQixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLEVBQUU7WUFDOUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztTQUNqQztJQUNILENBQUM7O3NIQW5EVSx3QkFBd0I7MEdBQXhCLHdCQUF3Qiw2UENSckMsZ3ZDQW1DTTs0RkQzQk8sd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSwyQkFBMkI7aUJBQ3pDO3dHQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDcUMsNEJBQTRCO3NCQUF0RSxTQUFTO3VCQUFDLDhCQUE4Qjs7QUFtRDNDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgU3VydmV5TW9kZWwsIFN1cnZleVByb2dyZXNzQnV0dG9uc01vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1wcm9ncmVzcy1idXR0b25zXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0J1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZWwhOiBTdXJ2ZXlNb2RlbDtcbiAgQFZpZXdDaGlsZChcInByb2dyZXNzQnV0dG9uc0xpc3RDb250YWluZXJcIikgcHJvZ3Jlc3NCdXR0b25zTGlzdENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBwcml2YXRlIHByb2dyZXNzQnV0dG9uc01vZGVsITogU3VydmV5UHJvZ3Jlc3NCdXR0b25zTW9kZWw7XG4gIHByaXZhdGUgaGFzU2Nyb2xsZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVTY3JvbGxlcjogYW55ID0gdW5kZWZpbmVkO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG4gIHByaXZhdGUgY3JlYXRlUHJvZ3Jlc3NCdXR0b25zTW9kZWwoKSB7XG4gICAgdGhpcy5wcm9ncmVzc0J1dHRvbnNNb2RlbCA9IG5ldyBTdXJ2ZXlQcm9ncmVzc0J1dHRvbnNNb2RlbCh0aGlzLm1vZGVsKTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVByb2dyZXNzQnV0dG9uc01vZGVsKCk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlUHJvZ3Jlc3NCdXR0b25zTW9kZWwoKTtcbiAgfVxuICBwdWJsaWMgaXNMaXN0RWxlbWVudENsaWNrYWJsZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZ3Jlc3NCdXR0b25zTW9kZWwuaXNMaXN0RWxlbWVudENsaWNrYWJsZShpbmRleCk7XG4gIH1cbiAgcHVibGljIGdldExpc3RFbGVtZW50Q3NzKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb2dyZXNzQnV0dG9uc01vZGVsLmdldExpc3RFbGVtZW50Q3NzKGluZGV4KTtcbiAgfVxuICBwdWJsaWMgY2xpY2tMaXN0RWxlbWVudChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wcm9ncmVzc0J1dHRvbnNNb2RlbC5jbGlja0xpc3RFbGVtZW50KGluZGV4KTtcbiAgfVxuICBwdWJsaWMgZ2V0U2Nyb2xsQnV0dG9uQ3NzKGlzTGVmdFNjcm9sbDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvZ3Jlc3NCdXR0b25zTW9kZWwuZ2V0U2Nyb2xsQnV0dG9uQ3NzKHRoaXMuaGFzU2Nyb2xsZXIsIGlzTGVmdFNjcm9sbCk7XG4gIH1cbiAgcHVibGljIGNsaWNrU2Nyb2xsQnV0dG9uKFxuICAgIGlzTGVmdFNjcm9sbDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZih0aGlzLnByb2dyZXNzQnV0dG9uc0xpc3RDb250YWluZXIpIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3NCdXR0b25zTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz0gKGlzTGVmdFNjcm9sbCA/IC0xIDogMSkgKiA3MDtcbiAgICB9XG4gIH1cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2dyZXNzQnV0dG9uc01vZGVsID0gbmV3IFN1cnZleVByb2dyZXNzQnV0dG9uc01vZGVsKHRoaXMubW9kZWwpO1xuICAgIHRoaXMudXBkYXRlU2Nyb2xsZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZighIXRoaXMucHJvZ3Jlc3NCdXR0b25zTGlzdENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICBjb25zdCBsaXN0Q29udGFpbmVyRWxlbWVudCA9IHRoaXMucHJvZ3Jlc3NCdXR0b25zTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmhhc1Njcm9sbGVyID0gbGlzdENvbnRhaW5lckVsZW1lbnQuc2Nyb2xsV2lkdGggPiBsaXN0Q29udGFpbmVyRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZVNjcm9sbGVyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlU2Nyb2xsZXIpO1xuICAgICAgdGhpcy51cGRhdGVTY3JvbGxlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtcHJvZ3Jlc3MtYnV0dG9uc1wiLCBQcm9ncmVzc0J1dHRvbnNDb21wb25lbnQpO1xuIiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzLnByb2dyZXNzQnV0dG9uc0NvbnRhaW5lckNlbnRlclwiPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3MucHJvZ3Jlc3NCdXR0b25zQ29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImdldFNjcm9sbEJ1dHRvbkNzcyh0cnVlKVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tTY3JvbGxCdXR0b24odHJ1ZSlcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5jc3MucHJvZ3Jlc3NCdXR0b25zTGlzdENvbnRhaW5lclwiICNwcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyPlxuICAgICAgPHVsIFtjbGFzc109XCJtb2RlbC5jc3MucHJvZ3Jlc3NCdXR0b25zTGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBtb2RlbC52aXNpYmxlUGFnZXM7IGluZGV4IGFzIGluZGV4XCJcbiAgICAgICAgICBbY2xhc3NdPVwiZ2V0TGlzdEVsZW1lbnRDc3MoaW5kZXgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiaXNMaXN0RWxlbWVudENsaWNrYWJsZShpbmRleCkgPyBjbGlja0xpc3RFbGVtZW50KGluZGV4KSA6IG51bGxcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbY2xhc3NdPVwibW9kZWwuY3NzLnByb2dyZXNzQnV0dG9uc1BhZ2VUaXRsZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicGFnZS5yZW5kZXJlZE5hdmlnYXRpb25UaXRsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZS5yZW5kZXJlZE5hdmlnYXRpb25UaXRsZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3MucHJvZ3Jlc3NCdXR0b25zUGFnZURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJwYWdlLmxvY05hdmlnYXRpb25EZXNjcmlwdGlvbi5yZW5kZXJlZEh0bWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHBhZ2UubG9jTmF2aWdhdGlvbkRlc2NyaXB0aW9uLnJlbmRlcmVkSHRtbCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiZ2V0U2Nyb2xsQnV0dG9uQ3NzKGZhbHNlKVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tTY3JvbGxCdXR0b24oZmFsc2UpXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcHJvZ3Jlc3MvYnV0dG9ucy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wcm9ncmVzcy9idXR0b25zL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLEtBQUssRUFBK0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZKLE9BQU8sRUFBZ0Msa0NBQWtDLEVBQTZCLE1BQU0sYUFBYSxDQUFDO0FBQzFILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFNckUsTUFBTSxPQUFPLHdCQUF3QjtJQVVuQyxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUxqRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixzQkFBaUIsR0FBWSxJQUFJLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVEsQ0FBQyxpQkFBMEI7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxXQUFvQjtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtJQUNsQyxDQUFDO0lBQ00saUJBQWlCLENBQ3RCLFlBQXFCO1FBRXJCLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ3JDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzVGO0lBQ0gsQ0FBQztJQUNNLGVBQWU7O1FBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsNEJBQTRCLDBDQUFFLGFBQWEsQ0FBQSxFQUFFO1lBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUM7WUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RGO0lBQ0gsQ0FBQztJQUNNLFdBQVc7O1FBQ2hCLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7c0hBN0NVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHVTQ1JyQywrOERBMkNNOzRGRG5DTyx3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekM7d0dBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNxQyw0QkFBNEI7c0JBQXRFLFNBQVM7dUJBQUMsOEJBQThCOztBQTJDM0MsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1cnZleU1vZGVsLCBQcm9ncmVzc0J1dHRvbnMsIFByb2dyZXNzQnV0dG9uc1Jlc3BvbnNpdml0eU1hbmFnZXIsIElQcm9ncmVzc0J1dHRvbnNWaWV3TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1wcm9ncmVzcy1idXR0b25zXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0J1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25Jbml0LCBJUHJvZ3Jlc3NCdXR0b25zVmlld01vZGVsIHtcbiAgQElucHV0KCkgbW9kZWwhOiBQcm9ncmVzc0J1dHRvbnM7XG4gIEBJbnB1dCgpIHN1cnZleSE6IFN1cnZleU1vZGVsO1xuICBASW5wdXQoKSBjb250YWluZXIhOiBzdHJpbmc7XG4gIEBWaWV3Q2hpbGQoXCJwcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyXCIpIHByb2dyZXNzQnV0dG9uc0xpc3RDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgcHVibGljIGhhc1Njcm9sbGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjYW5TaG93SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjYW5TaG93Rm9vdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjYW5TaG93SXRlbVRpdGxlczogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgcmVzcE1hbmFnZXI/OiBQcm9ncmVzc0J1dHRvbnNSZXNwb25zaXZpdHlNYW5hZ2VyO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG4gIG9uUmVzaXplKGNhblNob3dJdGVtVGl0bGVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jYW5TaG93SXRlbVRpdGxlcyA9IGNhblNob3dJdGVtVGl0bGVzO1xuICAgIHRoaXMuY2FuU2hvd0hlYWRlciA9ICF0aGlzLmNhblNob3dJdGVtVGl0bGVzO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIG9uVXBkYXRlU2Nyb2xsZXIoaGFzU2Nyb2xsZXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmhhc1Njcm9sbGVyID0gaGFzU2Nyb2xsZXI7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgb25VcGRhdGVTZXR0aW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLmNhblNob3dJdGVtVGl0bGVzID0gdGhpcy5tb2RlbC5zaG93SXRlbVRpdGxlcztcbiAgICB0aGlzLmNhblNob3dGb290ZXIgPSAhdGhpcy5tb2RlbC5zaG93SXRlbVRpdGxlcztcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gIH1cbiAgcHVibGljIGNsaWNrU2Nyb2xsQnV0dG9uKFxuICAgIGlzTGVmdFNjcm9sbDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyKSB7XG4gICAgICB0aGlzLnByb2dyZXNzQnV0dG9uc0xpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IChpc0xlZnRTY3JvbGwgPyAtMSA6IDEpICogNzA7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCEhdGhpcy5wcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5wcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLnJlc3BNYW5hZ2VyID0gbmV3IFByb2dyZXNzQnV0dG9uc1Jlc3BvbnNpdml0eU1hbmFnZXIodGhpcy5tb2RlbCwgZWxlbWVudCwgdGhpcyk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3BNYW5hZ2VyPy5kaXNwb3NlKCk7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtcHJvZ3Jlc3MtYnV0dG9uc1wiLCBQcm9ncmVzc0J1dHRvbnNDb21wb25lbnQpO1xuIiwiPGRpdiBbY2xhc3NdPVwibW9kZWwuZ2V0Um9vdENzcyhjb250YWluZXIpXCIgcm9sZT1cInByb2dyZXNzYmFyXCIgYXJpYS12YWx1ZW1pbj1cIjBcIiBhcmlhLXZhbHVlbWF4PVwiMTAwXCIgYXJpYS1sYWJlbD1cInByb2dyZXNzXCI+XG4gIDxkaXYgKm5nSWY9XCJjYW5TaG93SGVhZGVyXCIgW2NsYXNzXT1cInN1cnZleS5jc3MucHJvZ3Jlc3NCdXR0b25zSGVhZGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwic3VydmV5LmNzcy5wcm9ncmVzc0J1dHRvbnNQYWdlVGl0bGVcIiBbdGl0bGVdPVwibW9kZWwuaGVhZGVyVGV4dFwiPnt7IG1vZGVsLmhlYWRlclRleHQgfX08L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgW2NsYXNzXT1cInN1cnZleS5jc3MucHJvZ3Jlc3NCdXR0b25zQ29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cIm1vZGVsLmdldFNjcm9sbEJ1dHRvbkNzcyhoYXNTY3JvbGxlciwgdHJ1ZSlcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrU2Nyb2xsQnV0dG9uKHRydWUpXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwic3VydmV5LmNzcy5wcm9ncmVzc0J1dHRvbnNMaXN0Q29udGFpbmVyXCIgI3Byb2dyZXNzQnV0dG9uc0xpc3RDb250YWluZXI+XG4gICAgICA8dWwgW2NsYXNzXT1cInN1cnZleS5jc3MucHJvZ3Jlc3NCdXR0b25zTGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBzdXJ2ZXkudmlzaWJsZVBhZ2VzOyBpbmRleCBhcyBpbmRleFwiXG4gICAgICAgICAgW2NsYXNzXT1cIm1vZGVsLmdldExpc3RFbGVtZW50Q3NzKGluZGV4KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1vZGVsLmlzTGlzdEVsZW1lbnRDbGlja2FibGUoaW5kZXgpID8gbW9kZWwuY2xpY2tMaXN0RWxlbWVudChwYWdlKSA6IG51bGxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtcGFnZS1udW1iZXJdPVwibW9kZWwuZ2V0SXRlbU51bWJlcihwYWdlKVwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzXT1cInN1cnZleS5jc3MucHJvZ3Jlc3NCdXR0b25zQ29ubmVjdG9yXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNhblNob3dJdGVtVGl0bGVzXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJzdXJ2ZXkuY3NzLnByb2dyZXNzQnV0dG9uc1BhZ2VUaXRsZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicGFnZS5yZW5kZXJlZE5hdmlnYXRpb25UaXRsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZS5yZW5kZXJlZE5hdmlnYXRpb25UaXRsZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjYW5TaG93SXRlbVRpdGxlc1wiXG4gICAgICAgICAgICBbY2xhc3NdPVwic3VydmV5LmNzcy5wcm9ncmVzc0J1dHRvbnNQYWdlRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW3RpdGxlXT1cInBhZ2UubG9jTmF2aWdhdGlvbkRlc2NyaXB0aW9uLnJlbmRlcmVkSHRtbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZS5sb2NOYXZpZ2F0aW9uRGVzY3JpcHRpb24ucmVuZGVyZWRIdG1sIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJtb2RlbC5nZXRTY3JvbGxCdXR0b25Dc3MoaGFzU2Nyb2xsZXIsIGZhbHNlKVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tTY3JvbGxCdXR0b24oZmFsc2UpXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjYW5TaG93Rm9vdGVyXCIgW2NsYXNzXT1cInN1cnZleS5jc3MucHJvZ3Jlc3NCdXR0b25zRm9vdGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwic3VydmV5LmNzcy5wcm9ncmVzc0J1dHRvbnNQYWdlVGl0bGVcIiBbdGl0bGVdPVwibW9kZWwuZm9vdGVyVGV4dFwiPnt7IG1vZGVsLmZvb3RlclRleHQgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -11,7 +11,7 @@ export class BooleanQuestionComponent extends QuestionAngular {
11
11
  }
12
12
  }
13
13
  BooleanQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BooleanQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14
- BooleanQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BooleanQuestionComponent, selector: "sv-ng-boolean-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.cssClasses.root\" (keydown)=\"model.onKeyDownCore($event)\" #contentElement>\n <label [class]=\"model.getItemCss()\">\n <input\n type=\"checkbox\"\n [attr.name]=\"model.name\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [class]=\"model.cssClasses.control\" [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\" [value]=\"model.booleanValue\" [(ngModel)]=\"model.booleanValue\" />\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, false)\">\n <span [class]=\"model.getLabelCss(false)\" [model]=\"model.locLabelFalse\" sv-ng-string></span>\n </div>\n <div [class]=\"model.cssClasses.switch\" (click)=\"model.onSwitchClickModel($event)\">\n <span [class]=\"model.cssClasses.slider\">\n <span *ngIf=\"model.cssClasses.sliderText && model.isDeterminated\" [class]=\"model.cssClasses.sliderText\" [model]=\"model.getCheckedLabel()\" sv-ng-string></span>\n </span>\n </div>\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, true)\">\n <span [class]=\"model.getLabelCss(true)\" [model]=\"model.locLabelTrue\" sv-ng-string></span>\n </div>\n </label>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
+ BooleanQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BooleanQuestionComponent, selector: "sv-ng-boolean-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.cssClasses.root\" (keydown)=\"model.onKeyDownCore($event)\" #contentElement>\n <label [class]=\"model.getItemCss()\">\n <input\n type=\"checkbox\"\n [attr.name]=\"model.name\" [attr.id]=\"model.inputId\" \n [attr.role]=\"model.a11y_input_ariaRole\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [class]=\"model.cssClasses.control\" [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\" [value]=\"model.booleanValue\" [(ngModel)]=\"model.booleanValue\" />\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, false)\">\n <span [class]=\"model.getLabelCss(false)\" [model]=\"model.locLabelFalse\" sv-ng-string></span>\n </div>\n <div [class]=\"model.cssClasses.switch\" (click)=\"model.onSwitchClickModel($event)\">\n <span [class]=\"model.cssClasses.slider\">\n <span *ngIf=\"model.cssClasses.sliderText && model.isDeterminated\" [class]=\"model.cssClasses.sliderText\" [model]=\"model.getCheckedLabel()\" sv-ng-string></span>\n </span>\n </div>\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, true)\">\n <span [class]=\"model.getLabelCss(true)\" [model]=\"model.locLabelTrue\" sv-ng-string></span>\n </div>\n </label>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BooleanQuestionComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
20
20
  }]
21
21
  }] });
22
22
  AngularComponentFactory.Instance.registerComponent("boolean-question", BooleanQuestionComponent);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL2Jvb2xlYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9ib29sZWFuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFNL0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGVBQXFDO0lBQ2pGLFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7O3NIQUhVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHFGQ1RyQyxzNUNBa0JNOzRGRFRPLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsMEJBQTBCO2lCQUN4Qzs7QUFPRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkFuZ3VsYXIgfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uQm9vbGVhbk1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctYm9vbGVhbi1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Jvb2xlYW4uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuUXVlc3Rpb25Db21wb25lbnQgZXh0ZW5kcyBRdWVzdGlvbkFuZ3VsYXI8UXVlc3Rpb25Cb29sZWFuTW9kZWw+IHtcbiAgb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubW9kZWwuYm9vbGVhblZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwiYm9vbGVhbi1xdWVzdGlvblwiLCBCb29sZWFuUXVlc3Rpb25Db21wb25lbnQpOyIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucm9vdFwiIChrZXlkb3duKT1cIm1vZGVsLm9uS2V5RG93bkNvcmUoJGV2ZW50KVwiICNjb250ZW50RWxlbWVudD5cbiAgICA8bGFiZWwgW2NsYXNzXT1cIm1vZGVsLmdldEl0ZW1Dc3MoKVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibW9kZWwubmFtZVwiIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jb250cm9sXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmlzSW5wdXRSZWFkT25seVwiICBbaW5kZXRlcm1pbmF0ZV09XCJtb2RlbC5pc0luZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwibW9kZWwuYm9vbGVhblZhbHVlXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5ib29sZWFuVmFsdWVcIiAvPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5zbGlkZXJHaG9zdFwiIChjbGljayk9XCJtb2RlbC5vbkxhYmVsQ2xpY2soJGV2ZW50LCBmYWxzZSlcIj5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIm1vZGVsLmdldExhYmVsQ3NzKGZhbHNlKVwiIFttb2RlbF09XCJtb2RlbC5sb2NMYWJlbEZhbHNlXCIgc3Ytbmctc3RyaW5nPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5zd2l0Y2hcIiAoY2xpY2spPVwibW9kZWwub25Td2l0Y2hDbGlja01vZGVsKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuc2xpZGVyXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1vZGVsLmNzc0NsYXNzZXMuc2xpZGVyVGV4dCAmJiBtb2RlbC5pc0RldGVybWluYXRlZFwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnNsaWRlclRleHRcIiBbbW9kZWxdPVwibW9kZWwuZ2V0Q2hlY2tlZExhYmVsKClcIiBzdi1uZy1zdHJpbmc+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuc2xpZGVyR2hvc3RcIiAoY2xpY2spPVwibW9kZWwub25MYWJlbENsaWNrKCRldmVudCwgdHJ1ZSlcIj5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIm1vZGVsLmdldExhYmVsQ3NzKHRydWUpXCIgW21vZGVsXT1cIm1vZGVsLmxvY0xhYmVsVHJ1ZVwiICBzdi1uZy1zdHJpbmc+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL2Jvb2xlYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9ib29sZWFuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFNL0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGVBQXFDO0lBQ2pGLFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7O3NIQUhVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHFGQ1RyQyw4bERBd0JNOzRGRGZPLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsMEJBQTBCO2lCQUN4Qzs7QUFPRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkFuZ3VsYXIgfSBmcm9tIFwiLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uQm9vbGVhbk1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctYm9vbGVhbi1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Jvb2xlYW4uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuUXVlc3Rpb25Db21wb25lbnQgZXh0ZW5kcyBRdWVzdGlvbkFuZ3VsYXI8UXVlc3Rpb25Cb29sZWFuTW9kZWw+IHtcbiAgb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubW9kZWwuYm9vbGVhblZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwiYm9vbGVhbi1xdWVzdGlvblwiLCBCb29sZWFuUXVlc3Rpb25Db21wb25lbnQpOyIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucm9vdFwiIChrZXlkb3duKT1cIm1vZGVsLm9uS2V5RG93bkNvcmUoJGV2ZW50KVwiICNjb250ZW50RWxlbWVudD5cbiAgICA8bGFiZWwgW2NsYXNzXT1cIm1vZGVsLmdldEl0ZW1Dc3MoKVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibW9kZWwubmFtZVwiIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIiBcbiAgICAgICAgW2F0dHIucm9sZV09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFSb2xlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFSZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYTExeV9pbnB1dF9hcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibW9kZWwuYTExeV9pbnB1dF9hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFJbnZhbGlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hMTF5X2lucHV0X2FyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNvbnRyb2xcIiBbZGlzYWJsZWRdPVwibW9kZWwuaXNJbnB1dFJlYWRPbmx5XCIgIFtpbmRldGVybWluYXRlXT1cIm1vZGVsLmlzSW5kZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJtb2RlbC5ib29sZWFuVmFsdWVcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmJvb2xlYW5WYWx1ZVwiIC8+XG4gICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnNsaWRlckdob3N0XCIgKGNsaWNrKT1cIm1vZGVsLm9uTGFiZWxDbGljaygkZXZlbnQsIGZhbHNlKVwiPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwibW9kZWwuZ2V0TGFiZWxDc3MoZmFsc2UpXCIgW21vZGVsXT1cIm1vZGVsLmxvY0xhYmVsRmFsc2VcIiBzdi1uZy1zdHJpbmc+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnN3aXRjaFwiIChjbGljayk9XCJtb2RlbC5vblN3aXRjaENsaWNrTW9kZWwoJGV2ZW50KVwiPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5zbGlkZXJcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5zbGlkZXJUZXh0ICYmIG1vZGVsLmlzRGV0ZXJtaW5hdGVkXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuc2xpZGVyVGV4dFwiIFttb2RlbF09XCJtb2RlbC5nZXRDaGVja2VkTGFiZWwoKVwiIHN2LW5nLXN0cmluZz48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5zbGlkZXJHaG9zdFwiIChjbGljayk9XCJtb2RlbC5vbkxhYmVsQ2xpY2soJGV2ZW50LCB0cnVlKVwiPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwibW9kZWwuZ2V0TGFiZWxDc3ModHJ1ZSlcIiBbbW9kZWxdPVwibW9kZWwubG9jTGFiZWxUcnVlXCIgIHN2LW5nLXN0cmluZz48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuPC9kaXY+Il19
@@ -10,7 +10,7 @@ import * as i5 from "@angular/common";
10
10
  export class SignaturePadQuestionComponent extends QuestionAngular {
11
11
  }
12
12
  SignaturePadQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturePadQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
- SignaturePadQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"0\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i3.LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: i4.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
13
+ SignaturePadQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"-1\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i3.LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: i4.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturePadQuestionComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
19
19
  }]
20
20
  }] });
21
21
  AngularComponentFactory.Instance.registerComponent("signaturepad-question", SignaturePadQuestionComponent);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2lnbmF0dXJlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2lnbmF0dXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsZUFBMEM7OzJIQUFoRiw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3RkNUMUMsaXRDQTJCTTs0RkRsQk8sNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSw0QkFBNEI7aUJBQ3hDOztBQUdILHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQW5ndWxhciB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25TaWduYXR1cmVQYWRNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXNpZ25hdHVyZS1jb21wb25lbnRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWxcIlxuICB9KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVBhZFF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25Bbmd1bGFyPFF1ZXN0aW9uU2lnbmF0dXJlUGFkTW9kZWw+IHt9XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic2lnbmF0dXJlcGFkLXF1ZXN0aW9uXCIsIFNpZ25hdHVyZVBhZFF1ZXN0aW9uQ29tcG9uZW50KTsiLCI8ZGl2XG5bY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yb290XCJcbltzdHlsZS53aWR0aF09XCJtb2RlbC5yZW5kZXJlZENhbnZhc1dpZHRoXCIgI2NvbnRlbnRFbGVtZW50PlxuPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5wbGFjZWhvbGRlclwiIFt2aXNpYmxlXT1cIm1vZGVsLm5lZWRTaG93UGxhY2Vob2xkZXIoKVwiIFttb2RlbF09XCIkYW55KG1vZGVsKS5sb2NQbGFjZWhvbGRlclwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbjxkaXY+XG4gIDxpbWcgKm5nSWY9XCIhIW1vZGVsLmJhY2tncm91bmRJbWFnZVwiIFtzcmNdPVwibW9kZWwuYmFja2dyb3VuZEltYWdlXCIgW3N0eWxlLndpZHRoXT1cIm1vZGVsLnJlbmRlcmVkQ2FudmFzV2lkdGhcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5iYWNrZ3JvdW5kSW1hZ2VcIj5cbiAgPGNhbnZhcyB0YWJpbmRleD1cIjBcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jYW52YXNcIiAoYmx1cik9XCJtb2RlbC5vbkJsdXIoJGV2ZW50KVwiPjwvY2FudmFzPlxuPC9kaXY+XG48ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNvbnRyb2xzXCIgKm5nSWY9XCJtb2RlbC5jYW5TaG93Q2xlYXJCdXR0b25cIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFyQnV0dG9uXCJcbiAgICBbdGl0bGVdPVwibW9kZWwuY2xlYXJCdXR0b25DYXB0aW9uXCJcbiAgICAoY2xpY2spPVwibW9kZWwuY2xlYXJWYWx1ZSgpXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwiIW1vZGVsLmNzc0NsYXNzZXMuY2xlYXJCdXR0b25JY29uSWRcIj7inJY8L3NwYW4+XG4gICAgPHN2Z1xuICAgICAgKm5nSWY9XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFyQnV0dG9uSWNvbklkXCJcbiAgICAgIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFyQnV0dG9uSWNvbklkXCJcbiAgICAgIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLnNob3dMb2FkaW5nSW5kaWNhdG9yXCI+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMubG9hZGluZ0luZGljYXRvclwiPlxuICAgIDxzdi1uZy1sb2FkaW5nLWluZGljYXRvcj48L3N2LW5nLWxvYWRpbmctaW5kaWNhdG9yPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2lnbmF0dXJlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9xdWVzdGlvbnMvc2lnbmF0dXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsZUFBMEM7OzJIQUFoRiw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3RkNUMUMsa3RDQTJCTTs0RkRsQk8sNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSw0QkFBNEI7aUJBQ3hDOztBQUdILHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uQW5ndWxhciB9IGZyb20gXCIuLi9xdWVzdGlvblwiO1xuaW1wb3J0IHsgUXVlc3Rpb25TaWduYXR1cmVQYWRNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXNpZ25hdHVyZS1jb21wb25lbnRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWxcIlxuICB9KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVBhZFF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25Bbmd1bGFyPFF1ZXN0aW9uU2lnbmF0dXJlUGFkTW9kZWw+IHt9XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic2lnbmF0dXJlcGFkLXF1ZXN0aW9uXCIsIFNpZ25hdHVyZVBhZFF1ZXN0aW9uQ29tcG9uZW50KTsiLCI8ZGl2XG5bY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5yb290XCJcbltzdHlsZS53aWR0aF09XCJtb2RlbC5yZW5kZXJlZENhbnZhc1dpZHRoXCIgI2NvbnRlbnRFbGVtZW50PlxuPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5wbGFjZWhvbGRlclwiIFt2aXNpYmxlXT1cIm1vZGVsLm5lZWRTaG93UGxhY2Vob2xkZXIoKVwiIFttb2RlbF09XCIkYW55KG1vZGVsKS5sb2NQbGFjZWhvbGRlclwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbjxkaXY+XG4gIDxpbWcgKm5nSWY9XCIhIW1vZGVsLmJhY2tncm91bmRJbWFnZVwiIFtzcmNdPVwibW9kZWwuYmFja2dyb3VuZEltYWdlXCIgW3N0eWxlLndpZHRoXT1cIm1vZGVsLnJlbmRlcmVkQ2FudmFzV2lkdGhcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5iYWNrZ3JvdW5kSW1hZ2VcIj5cbiAgPGNhbnZhcyB0YWJpbmRleD1cIi0xXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2FudmFzXCIgKGJsdXIpPVwibW9kZWwub25CbHVyKCRldmVudClcIj48L2NhbnZhcz5cbjwvZGl2PlxuPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jb250cm9sc1wiICpuZ0lmPVwibW9kZWwuY2FuU2hvd0NsZWFyQnV0dG9uXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jbGVhckJ1dHRvblwiXG4gICAgW3RpdGxlXT1cIm1vZGVsLmNsZWFyQnV0dG9uQ2FwdGlvblwiXG4gICAgKGNsaWNrKT1cIm1vZGVsLmNsZWFyVmFsdWUoKVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cIiFtb2RlbC5jc3NDbGFzc2VzLmNsZWFyQnV0dG9uSWNvbklkXCI+4pyWPC9zcGFuPlxuICAgIDxzdmdcbiAgICAgICpuZ0lmPVwibW9kZWwuY3NzQ2xhc3Nlcy5jbGVhckJ1dHRvbkljb25JZFwiXG4gICAgICBbaWNvbk5hbWVdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jbGVhckJ1dHRvbkljb25JZFwiXG4gICAgICBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5zaG93TG9hZGluZ0luZGljYXRvclwiPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmxvYWRpbmdJbmRpY2F0b3JcIj5cbiAgICA8c3YtbmctbG9hZGluZy1pbmRpY2F0b3I+PC9zdi1uZy1sb2FkaW5nLWluZGljYXRvcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { TemplateRef, Component, ViewChild, Directive, Input, ViewContainerRef, Injectable, HostBinding, ElementRef, Pipe, HostListener, NgModule } from '@angular/core';
3
3
  import * as Survey from 'survey-core';
4
- import { createPopupModalViewModel, settings, createDialogOptions, SvgRegistry, PopupSurveyModel, LocalizableString, createPopupViewModel, DropdownListModel, Helpers, DropdownMultiSelectListModel, RendererFactory, ButtonGroupItemModel, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, getActionDropdownButtonTarget, ActionDropdownViewModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel } from 'survey-core';
4
+ import { createPopupModalViewModel, settings, createDialogOptions, SvgRegistry, PopupSurveyModel, LocalizableString, createPopupViewModel, DropdownListModel, Helpers, DropdownMultiSelectListModel, RendererFactory, ButtonGroupItemModel, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, getActionDropdownButtonTarget, ActionDropdownViewModel, SurveyProgressModel, ProgressButtonsResponsivityManager, SurveyModel } from 'survey-core';
5
5
  import { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';
6
6
  import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
@@ -133,15 +133,9 @@ class BaseAngular extends EmbeddedViewContentComponent {
133
133
  return true;
134
134
  }
135
135
  beforeUpdate() {
136
- if (this.getShouldReattachChangeDetector()) {
137
- this.getChangeDetectorRef().detach();
138
- }
139
136
  this.setIsRendering(true);
140
137
  }
141
138
  afterUpdate(isSync = false) {
142
- if (this.getShouldReattachChangeDetector()) {
143
- this.getChangeDetectorRef().reattach();
144
- }
145
139
  this.setIsRendering(false);
146
140
  }
147
141
  ngAfterViewChecked() {
@@ -1788,7 +1782,7 @@ class BooleanQuestionComponent extends QuestionAngular {
1788
1782
  }
1789
1783
  }
1790
1784
  BooleanQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BooleanQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1791
- BooleanQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BooleanQuestionComponent, selector: "sv-ng-boolean-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.cssClasses.root\" (keydown)=\"model.onKeyDownCore($event)\" #contentElement>\n <label [class]=\"model.getItemCss()\">\n <input\n type=\"checkbox\"\n [attr.name]=\"model.name\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [class]=\"model.cssClasses.control\" [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\" [value]=\"model.booleanValue\" [(ngModel)]=\"model.booleanValue\" />\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, false)\">\n <span [class]=\"model.getLabelCss(false)\" [model]=\"model.locLabelFalse\" sv-ng-string></span>\n </div>\n <div [class]=\"model.cssClasses.switch\" (click)=\"model.onSwitchClickModel($event)\">\n <span [class]=\"model.cssClasses.slider\">\n <span *ngIf=\"model.cssClasses.sliderText && model.isDeterminated\" [class]=\"model.cssClasses.sliderText\" [model]=\"model.getCheckedLabel()\" sv-ng-string></span>\n </span>\n </div>\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, true)\">\n <span [class]=\"model.getLabelCss(true)\" [model]=\"model.locLabelTrue\" sv-ng-string></span>\n </div>\n </label>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1785
+ BooleanQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BooleanQuestionComponent, selector: "sv-ng-boolean-question", usesInheritance: true, ngImport: i0, template: "<div [class]=\"model.cssClasses.root\" (keydown)=\"model.onKeyDownCore($event)\" #contentElement>\n <label [class]=\"model.getItemCss()\">\n <input\n type=\"checkbox\"\n [attr.name]=\"model.name\" [attr.id]=\"model.inputId\" \n [attr.role]=\"model.a11y_input_ariaRole\"\n [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\"\n [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\"\n [attr.aria-invalid]=\"model.a11y_input_ariaInvalid\"\n [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"\n [class]=\"model.cssClasses.control\" [disabled]=\"model.isInputReadOnly\" [indeterminate]=\"model.isIndeterminate\" [value]=\"model.booleanValue\" [(ngModel)]=\"model.booleanValue\" />\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, false)\">\n <span [class]=\"model.getLabelCss(false)\" [model]=\"model.locLabelFalse\" sv-ng-string></span>\n </div>\n <div [class]=\"model.cssClasses.switch\" (click)=\"model.onSwitchClickModel($event)\">\n <span [class]=\"model.cssClasses.slider\">\n <span *ngIf=\"model.cssClasses.sliderText && model.isDeterminated\" [class]=\"model.cssClasses.sliderText\" [model]=\"model.getCheckedLabel()\" sv-ng-string></span>\n </span>\n </div>\n <div [class]=\"model.cssClasses.sliderGhost\" (click)=\"model.onLabelClick($event, true)\">\n <span [class]=\"model.getLabelCss(true)\" [model]=\"model.locLabelTrue\" sv-ng-string></span>\n </div>\n </label>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1792
1786
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BooleanQuestionComponent, decorators: [{
1793
1787
  type: Component,
1794
1788
  args: [{
@@ -2430,28 +2424,27 @@ class ProgressButtonsComponent {
2430
2424
  constructor(changeDetectorRef) {
2431
2425
  this.changeDetectorRef = changeDetectorRef;
2432
2426
  this.hasScroller = false;
2433
- this.updateScroller = undefined;
2434
- }
2435
- createProgressButtonsModel() {
2436
- this.progressButtonsModel = new SurveyProgressButtonsModel(this.model);
2437
- }
2438
- ngOnInit() {
2439
- this.createProgressButtonsModel();
2427
+ this.canShowHeader = false;
2428
+ this.canShowFooter = false;
2429
+ this.canShowItemTitles = true;
2440
2430
  }
2441
- ngOnChanges(changes) {
2442
- this.createProgressButtonsModel();
2431
+ onResize(canShowItemTitles) {
2432
+ this.canShowItemTitles = canShowItemTitles;
2433
+ this.canShowHeader = !this.canShowItemTitles;
2434
+ this.changeDetectorRef.detectChanges();
2443
2435
  }
2444
- isListElementClickable(index) {
2445
- return this.progressButtonsModel.isListElementClickable(index);
2436
+ onUpdateScroller(hasScroller) {
2437
+ this.hasScroller = hasScroller;
2438
+ this.changeDetectorRef.detectChanges();
2446
2439
  }
2447
- getListElementCss(index) {
2448
- return this.progressButtonsModel.getListElementCss(index);
2440
+ onUpdateSettings() {
2441
+ this.canShowItemTitles = this.model.showItemTitles;
2442
+ this.canShowFooter = !this.model.showItemTitles;
2443
+ this.changeDetectorRef.detectChanges();
2449
2444
  }
2450
- clickListElement(index) {
2451
- this.progressButtonsModel.clickListElement(index);
2445
+ ngOnInit() {
2452
2446
  }
2453
- getScrollButtonCss(isLeftScroll) {
2454
- return this.progressButtonsModel.getScrollButtonCss(this.hasScroller, isLeftScroll);
2447
+ ngOnChanges(changes) {
2455
2448
  }
2456
2449
  clickScrollButton(isLeftScroll) {
2457
2450
  if (this.progressButtonsListContainer) {
@@ -2459,25 +2452,19 @@ class ProgressButtonsComponent {
2459
2452
  }
2460
2453
  }
2461
2454
  ngAfterViewInit() {
2462
- this.progressButtonsModel = new SurveyProgressButtonsModel(this.model);
2463
- this.updateScroller = setInterval(() => {
2464
- var _a;
2465
- if (!!((_a = this.progressButtonsListContainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
2466
- const listContainerElement = this.progressButtonsListContainer.nativeElement;
2467
- this.hasScroller = listContainerElement.scrollWidth > listContainerElement.offsetWidth;
2468
- this.changeDetectorRef.detectChanges();
2469
- }
2470
- }, 100);
2455
+ var _a;
2456
+ if (!!((_a = this.progressButtonsListContainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
2457
+ const element = this.progressButtonsListContainer.nativeElement;
2458
+ this.respManager = new ProgressButtonsResponsivityManager(this.model, element, this);
2459
+ }
2471
2460
  }
2472
2461
  ngOnDestroy() {
2473
- if (typeof this.updateScroller !== "undefined") {
2474
- clearInterval(this.updateScroller);
2475
- this.updateScroller = undefined;
2476
- }
2462
+ var _a;
2463
+ (_a = this.respManager) === null || _a === void 0 ? void 0 : _a.dispose();
2477
2464
  }
2478
2465
  }
2479
2466
  ProgressButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressButtonsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2480
- ProgressButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressButtonsComponent, selector: "sv-ng-progress-buttons", inputs: { model: "model" }, viewQueries: [{ propertyName: "progressButtonsListContainer", first: true, predicate: ["progressButtonsListContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [class]=\"model.css.progressButtonsContainerCenter\">\n <div [class]=\"model.css.progressButtonsContainer\">\n <div\n [class]=\"getScrollButtonCss(true)\"\n (click)=\"clickScrollButton(true)\"\n role=\"button\"\n ></div>\n <div\n [class]=\"model.css.progressButtonsListContainer\" #progressButtonsListContainer>\n <ul [class]=\"model.css.progressButtonsList\">\n <li\n *ngFor=\"let page of model.visiblePages; index as index\"\n [class]=\"getListElementCss(index)\"\n (click)=\"isListElementClickable(index) ? clickListElement(index) : null\">\n <div\n [class]=\"model.css.progressButtonsPageTitle\"\n [title]=\"page.renderedNavigationTitle\"\n >\n {{ page.renderedNavigationTitle }}\n </div>\n <div\n [class]=\"model.css.progressButtonsPageDescription\"\n [title]=\"page.locNavigationDescription.renderedHtml\"\n >\n {{ page.locNavigationDescription.renderedHtml }}\n </div>\n </li>\n </ul>\n </div>\n <div\n [class]=\"getScrollButtonCss(false)\"\n (click)=\"clickScrollButton(false)\"\n role=\"button\"\n ></div>\n </div>\n</div>", directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2467
+ ProgressButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressButtonsComponent, selector: "sv-ng-progress-buttons", inputs: { model: "model", survey: "survey", container: "container" }, viewQueries: [{ propertyName: "progressButtonsListContainer", first: true, predicate: ["progressButtonsListContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [class]=\"model.getRootCss(container)\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"progress\">\n <div *ngIf=\"canShowHeader\" [class]=\"survey.css.progressButtonsHeader\">\n <div [class]=\"survey.css.progressButtonsPageTitle\" [title]=\"model.headerText\">{{ model.headerText }}</div>\n </div>\n <div [class]=\"survey.css.progressButtonsContainer\">\n <div\n [class]=\"model.getScrollButtonCss(hasScroller, true)\"\n (click)=\"clickScrollButton(true)\"\n role=\"button\"\n ></div>\n <div\n [class]=\"survey.css.progressButtonsListContainer\" #progressButtonsListContainer>\n <ul [class]=\"survey.css.progressButtonsList\">\n <li\n *ngFor=\"let page of survey.visiblePages; index as index\"\n [class]=\"model.getListElementCss(index)\"\n (click)=\"model.isListElementClickable(index) ? model.clickListElement(page) : null\"\n [attr.data-page-number]=\"model.getItemNumber(page)\">\n <div [class]=\"survey.css.progressButtonsConnector\"></div>\n <div *ngIf=\"canShowItemTitles\"\n [class]=\"survey.css.progressButtonsPageTitle\"\n [title]=\"page.renderedNavigationTitle\"\n >\n {{ page.renderedNavigationTitle }}\n </div>\n <div *ngIf=\"canShowItemTitles\"\n [class]=\"survey.css.progressButtonsPageDescription\"\n [title]=\"page.locNavigationDescription.renderedHtml\"\n >\n {{ page.locNavigationDescription.renderedHtml }}\n </div>\n </li>\n </ul>\n </div>\n <div\n [class]=\"model.getScrollButtonCss(hasScroller, false)\"\n (click)=\"clickScrollButton(false)\"\n role=\"button\"\n ></div>\n </div>\n <div *ngIf=\"canShowFooter\" [class]=\"survey.css.progressButtonsFooter\">\n <div [class]=\"survey.css.progressButtonsPageTitle\" [title]=\"model.footerText\">{{ model.footerText }}</div>\n </div>\n</div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2481
2468
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressButtonsComponent, decorators: [{
2482
2469
  type: Component,
2483
2470
  args: [{
@@ -2486,6 +2473,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2486
2473
  }]
2487
2474
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
2488
2475
  type: Input
2476
+ }], survey: [{
2477
+ type: Input
2478
+ }], container: [{
2479
+ type: Input
2489
2480
  }], progressButtonsListContainer: [{
2490
2481
  type: ViewChild,
2491
2482
  args: ["progressButtonsListContainer"]
@@ -2685,7 +2676,7 @@ AngularComponentFactory.Instance.registerComponent("comment-question", CommentQu
2685
2676
  class SignaturePadQuestionComponent extends QuestionAngular {
2686
2677
  }
2687
2678
  SignaturePadQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturePadQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2688
- SignaturePadQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"0\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2679
+ SignaturePadQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"-1\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2689
2680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturePadQuestionComponent, decorators: [{
2690
2681
  type: Component,
2691
2682
  args: [{