survey-angular-ui 2.3.12 → 2.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,10 @@ export class BaseAngular extends EmbeddedViewContentComponent {
10
10
  this.onArrayChangedCallback = (stateElement, options) => {
11
11
  this.update(options.name);
12
12
  };
13
+ this.onPropertyChangedCallback = (stateElement, options) => {
14
+ this.update(options.name);
15
+ };
16
+ this.isUpdatesBlocked = false;
13
17
  }
14
18
  get surveyModel() {
15
19
  return this.getModel().getSurvey();
@@ -22,17 +26,17 @@ export class BaseAngular extends EmbeddedViewContentComponent {
22
26
  this.onModelChanged();
23
27
  this.previousModel = this.getModel();
24
28
  }
25
- this.setIsRendering(true);
29
+ this.setIsModelRendering(true);
26
30
  }
27
31
  onModelChanged() { }
28
- setIsRendering(val) {
32
+ setIsModelRendering(val) {
29
33
  const model = this.getModel();
30
34
  if (!!model) {
31
35
  model.isRendering = val;
32
36
  }
33
37
  }
34
- getIsRendering() {
35
- const model = this.getModel();
38
+ getIsModelRendering(stateElement) {
39
+ const model = stateElement !== null && stateElement !== void 0 ? stateElement : this.getModel();
36
40
  return !!model && !!model.isRendering;
37
41
  }
38
42
  ngOnDestroy() {
@@ -41,80 +45,45 @@ export class BaseAngular extends EmbeddedViewContentComponent {
41
45
  this.previousModel = undefined;
42
46
  }
43
47
  isBaseElementSubsribed(stateElement) {
44
- return !!stateElement.__ngImplemented;
45
- }
46
- getBaseElementCallbacks(stateElement) {
47
48
  var _a;
48
- stateElement.__ngSubscribers = (_a = stateElement.__ngSubscribers) !== null && _a !== void 0 ? _a : [];
49
- return (stateElement.__ngSubscribers);
49
+ return ((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) > 0;
50
50
  }
51
51
  makeBaseElementAngular(stateElement) {
52
- this.makeBaseElementAngularCallback = () => {
52
+ var _a;
53
+ if (!!stateElement && !this.getIsModelRendering(stateElement)) {
53
54
  this.isModelSubsribed = true;
54
- stateElement.__ngImplemented = true;
55
- stateElement.iteratePropertiesHash((hash, key) => {
56
- var val = hash[key];
57
- if (Array.isArray(val)) {
58
- var val = val;
59
- stateElement.addOnArrayChangedCallback(val, this.onArrayChangedCallback);
60
- }
61
- });
62
- stateElement.setPropertyValueCoreHandler = (hash, key, val) => {
63
- if (hash[key] !== val) {
64
- hash[key] = val;
65
- this.update(key);
66
- }
67
- };
55
+ stateElement.addOnArrayChangedCallback(this.onArrayChangedCallback);
56
+ stateElement.addOnPropertyValueChangedCallback(this.onPropertyChangedCallback);
68
57
  stateElement.enableOnElementRerenderedEvent();
69
- };
70
- if (!!stateElement) {
71
- if (!stateElement.__ngImplemented) {
72
- this.makeBaseElementAngularCallback();
73
- }
74
- else {
75
- this.getBaseElementCallbacks(stateElement).push(this.makeBaseElementAngularCallback);
76
- }
58
+ stateElement.__ngImplementedCount = ((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) + 1;
77
59
  }
78
60
  }
79
61
  unMakeBaseElementAngular(stateElement) {
80
- if (!!stateElement) {
81
- if (this.isModelSubsribed) {
82
- this.isModelSubsribed = false;
83
- stateElement.__ngImplemented = false;
84
- stateElement.setPropertyValueCoreHandler = undefined;
85
- stateElement.iteratePropertiesHash((hash, key) => {
86
- var val = hash[key];
87
- if (Array.isArray(val)) {
88
- var val = val;
89
- stateElement.removeOnArrayChangedCallback(val, this.onArrayChangedCallback);
90
- }
91
- });
92
- stateElement.disableOnElementRerenderedEvent();
93
- const callbacks = this.getBaseElementCallbacks(stateElement);
94
- const callback = callbacks.shift();
95
- callback && callback();
96
- }
97
- else if (this.makeBaseElementAngularCallback) {
98
- const callbacks = this.getBaseElementCallbacks(stateElement);
99
- const index = callbacks.indexOf(this.makeBaseElementAngularCallback);
100
- if (index > -1) {
101
- callbacks.splice(index, 1);
102
- }
62
+ var _a;
63
+ if (!!stateElement && this.isModelSubsribed) {
64
+ this.isModelSubsribed = false;
65
+ stateElement.removeOnPropertyValueChangedCallback(this.onPropertyChangedCallback);
66
+ stateElement.removeOnArrayChangedCallback(this.onArrayChangedCallback);
67
+ stateElement.disableOnElementRerenderedEvent();
68
+ if (((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) - 1 <= 0) {
69
+ delete stateElement.__ngImplementedCount;
103
70
  }
104
71
  }
105
72
  }
106
73
  update(key) {
107
- if (this.getIsRendering())
74
+ if (this.getIsModelRendering() || this.isUpdatesBlocked)
108
75
  return;
109
- this.beforeUpdate();
110
76
  if (key && this.getPropertiesToUpdateSync().indexOf(key) > -1) {
77
+ this.beforeUpdate();
111
78
  this.detectChanges();
112
79
  this.afterUpdate(true);
113
80
  }
114
81
  else {
82
+ this.isUpdatesBlocked = true;
115
83
  queueMicrotask(() => {
116
84
  if (!this.isDestroyed) {
117
- this.setIsRendering(true);
85
+ this.isUpdatesBlocked = false;
86
+ this.beforeUpdate();
118
87
  this.detectChanges();
119
88
  this.afterUpdate();
120
89
  }
@@ -134,10 +103,10 @@ export class BaseAngular extends EmbeddedViewContentComponent {
134
103
  return true;
135
104
  }
136
105
  beforeUpdate() {
137
- this.setIsRendering(true);
106
+ this.setIsModelRendering(true);
138
107
  }
139
108
  afterUpdate(isSync = false) {
140
- this.setIsRendering(false);
109
+ this.setIsModelRendering(false);
141
110
  const model = this.getModel();
142
111
  if (model && !this.isDestroyed) {
143
112
  model.afterRerender();
@@ -145,7 +114,7 @@ export class BaseAngular extends EmbeddedViewContentComponent {
145
114
  }
146
115
  ngAfterViewChecked() {
147
116
  super.ngAfterViewChecked();
148
- this.setIsRendering(false);
117
+ this.setIsModelRendering(false);
149
118
  }
150
119
  }
151
120
  BaseAngular.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseAngular, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -156,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
156
125
  template: ""
157
126
  }]
158
127
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }]; } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUUsTUFBTSxlQUFlLENBQUM7QUFFNUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBS2pGLE1BQU0sT0FBZ0IsV0FBbUMsU0FBUSw0QkFBNEI7SUFDM0YsWUFBc0IsaUJBQW9DLEVBQUUsZ0JBQW1DO1FBQzdGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFsRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUF5QmxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBYzdCLDJCQUFzQixHQUFHLENBQUMsWUFBa0IsRUFBRSxPQUE2QixFQUFFLEVBQUU7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBL0NGLENBQUM7SUFDRCxJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUtlLFNBQVM7UUFDdkIsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFB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QyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7eUdBeEptQixXQUFXOzZGQUFYLFdBQVcsMkVBRnJCLEVBQUU7NEZBRVEsV0FBVztrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2UsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXJyYXlDaGFuZ2VzLCBCYXNlLCBJT25BcnJheUNoYW5nZWRFdmVudCwgSVN1cnZleSwgU3VydmV5TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9lbWJlZGRlZC12aWV3LWNvbnRlbnQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogXCJcIlxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQW5ndWxhcjxUIGV4dGVuZHMgQmFzZSA9IEJhc2U+IGV4dGVuZHMgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIodmlld0NvbnRhaW5lclJlZik7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzdXJ2ZXlNb2RlbCgpOiBJU3VydmV5IHtcbiAgICByZXR1cm4gdGhpcy5nZXRNb2RlbCgpLmdldFN1cnZleSgpO1xuICB9XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRNb2RlbCgpOiBUO1xuICBwcm90ZWN0ZWQgcHJldmlvdXNNb2RlbD86IFQ7XG4gIHByaXZhdGUgaXNNb2RlbFN1YnNyaWJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgc3VwZXIubmdEb0NoZWNrKCk7XG4gICAgaWYgKHRoaXMucHJldmlvdXNNb2RlbCAhPT0gdGhpcy5nZXRNb2RlbCgpKSB7XG4gICAgICB0aGlzLnVuTWFrZUJhc2VFbGVtZW50QW5ndWxhcih0aGlzLnByZXZpb3VzTW9kZWwpO1xuICAgICAgdGhpcy5tYWtlQmFzZUVsZW1lbnRBbmd1bGFyKHRoaXMuZ2V0TW9kZWwoKSk7XG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2VkKCk7XG4gICAgICB0aGlzLnByZXZpb3VzTW9kZWwgPSB0aGlzLmdldE1vZGVsKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Nb2RlbENoYW5nZWQoKSB7IH1cblxuICBwcml2YXRlIHNldElzUmVuZGVyaW5nKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgIGlmICghIW1vZGVsKSB7XG4gICAgICAoPGFueT5tb2RlbCkuaXNSZW5kZXJpbmcgPSB2YWw7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0SXNSZW5kZXJpbmcoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsKCk7XG4gICAgcmV0dXJuICEhbW9kZWwgJiYgISEoPGFueT5tb2RlbCkuaXNSZW5kZXJpbmc7XG4gIH1cbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZDogYm9vbGVhbiA9IGZhbHNlO1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmlzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICB0aGlzLnVuTWFrZUJhc2VFbGVtZW50QW5ndWxhcih0aGlzLmdldE1vZGVsKCkpO1xuICAgIHRoaXMucHJldmlvdXNNb2RlbCA9IHVuZGVmaW5lZDtcbiAgfVxuICBwcml2YXRlIG1ha2VCYXNlRWxlbWVudEFuZ3VsYXJDYWxsYmFjaz86ICgpID0+IHZvaWQ7XG4gIHByb3RlY3RlZCBpc0Jhc2VFbGVtZW50U3Vic3JpYmVkKHN0YXRlRWxlbWVudDogQmFzZSkge1xuICAgIHJldHVybiAhISg8YW55PnN0YXRlRWxlbWVudCkuX19uZ0ltcGxlbWVudGVkO1xuICB9XG4gIHByaXZhdGUgZ2V0QmFzZUVsZW1lbnRDYWxsYmFja3Moc3RhdGVFbGVtZW50OiBCYXNlKTogQXJyYXk8KCkgPT4gdm9pZD4ge1xuICAgICg8YW55PnN0YXRlRWxlbWVudCkuX19uZ1N1YnNjcmliZXJzID0gKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nU3Vic2NyaWJlcnMgPz8gW107XG4gICAgcmV0dXJuICgoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdTdWJzY3JpYmVycyk7XG4gIH1cbiAgcHJpdmF0ZSBvbkFycmF5Q2hhbmdlZENhbGxiYWNrID0gKHN0YXRlRWxlbWVudDogQmFzZSwgb3B0aW9uczogSU9uQXJyYXlDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICB0aGlzLnVwZGF0ZShvcHRpb25zLm5hbWUpO1xuICB9O1xuICBwcml2YXRlIG1ha2VCYXNlRWxlbWVudEFuZ3VsYXIoc3RhdGVFbGVtZW50OiBUKSB7XG4gICAgdGhpcy5tYWtlQmFzZUVsZW1lbnRBbmd1bGFyQ2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICB0aGlzLmlzTW9kZWxTdWJzcmliZWQgPSB0cnVlO1xuICAgICAgKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nSW1wbGVtZW50ZWQgPSB0cnVlO1xuICAgICAgc3RhdGVFbGVtZW50Lml0ZXJhdGVQcm9wZXJ0aWVzSGFzaCgoaGFzaCwga2V5KSA9PiB7XG4gICAgICAgIHZhciB2YWw6IGFueSA9IGhhc2hba2V5XTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIHZhciB2YWw6IGFueSA9IHZhbDtcbiAgICAgICAgICBzdGF0ZUVsZW1lbnQuYWRkT25BcnJheUNoYW5nZWRDYWxsYmFjayh2YWwsIHRoaXMub25BcnJheUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgc3RhdGVFbGVtZW50LnNldFByb3BlcnR5VmFsdWVDb3JlSGFuZGxlciA9IChcbiAgICAgICAgaGFzaDogYW55LFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgdmFsOiBhbnlcbiAgICAgICkgPT4ge1xuICAgICAgICBpZiAoaGFzaFtrZXldICE9PSB2YWwpIHtcbiAgICAgICAgICBoYXNoW2tleV0gPSB2YWw7XG4gICAgICAgICAgdGhpcy51cGRhdGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHN0YXRlRWxlbWVudC5lbmFibGVPbkVsZW1lbnRSZXJlbmRlcmVkRXZlbnQoKTtcbiAgICB9O1xuICAgIGlmICghIXN0YXRlRWxlbWVudCkge1xuICAgICAgaWYgKCEoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZCkge1xuICAgICAgICB0aGlzLm1ha2VCYXNlRWxlbWVudEFuZ3VsYXJDYWxsYmFjaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXRCYXNlRWxlbWVudENhbGxiYWNrcyhzdGF0ZUVsZW1lbnQpLnB1c2godGhpcy5tYWtlQmFzZUVsZW1lbnRBbmd1bGFyQ2FsbGJhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHVuTWFrZUJhc2VFbGVtZW50QW5ndWxhcihzdGF0ZUVsZW1lbnQ/OiBCYXNlKSB7XG4gICAgaWYgKCEhc3RhdGVFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5pc01vZGVsU3Vic3JpYmVkKSB7XG4gICAgICAgIHRoaXMuaXNNb2RlbFN1YnNyaWJlZCA9IGZhbHNlO1xuICAgICAgICAoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZUVsZW1lbnQuc2V0UHJvcGVydHlWYWx1ZUNvcmVIYW5kbGVyID0gPGFueT51bmRlZmluZWQ7XG4gICAgICAgIHN0YXRlRWxlbWVudC5pdGVyYXRlUHJvcGVydGllc0hhc2goKGhhc2gsIGtleSkgPT4ge1xuICAgICAgICAgIHZhciB2YWw6IGFueSA9IGhhc2hba2V5XTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICB2YXIgdmFsOiBhbnkgPSB2YWw7XG4gICAgICAgICAgICBzdGF0ZUVsZW1lbnQucmVtb3ZlT25BcnJheUNoYW5nZWRDYWxsYmFjayh2YWwsIHRoaXMub25BcnJheUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3RhdGVFbGVtZW50LmRpc2FibGVPbkVsZW1lbnRSZXJlbmRlcmVkRXZlbnQoKTtcbiAgICAgICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy5nZXRCYXNlRWxlbWVudENhbGxiYWNrcyhzdGF0ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGNhbGxiYWNrcy5zaGlmdCgpO1xuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1ha2VCYXNlRWxlbWVudEFuZ3VsYXJDYWxsYmFjaykge1xuICAgICAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLmdldEJhc2VFbGVtZW50Q2FsbGJhY2tzKHN0YXRlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2FsbGJhY2tzLmluZGV4T2YodGhpcy5tYWtlQmFzZUVsZW1lbnRBbmd1bGFyQ2FsbGJhY2spO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIGNhbGxiYWNrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZShrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nZXRJc1JlbmRlcmluZygpKSByZXR1cm47XG4gICAgdGhpcy5iZWZvcmVVcGRhdGUoKTtcbiAgICBpZiAoa2V5ICYmIHRoaXMuZ2V0UHJvcGVydGllc1RvVXBkYXRlU3luYygpLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuYWZ0ZXJVcGRhdGUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhpcy5zZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB0aGlzLmFmdGVyVXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldENoYW5nZURldGVjdG9yUmVmKCkge1xuICAgIHJldHVybiB0aGlzLmVtYmVkZGVkVmlldyA/IHRoaXMuZW1iZWRkZWRWaWV3IDogdGhpcy5jaGFuZ2VEZXRlY3RvclJlZjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydGllc1RvVXBkYXRlU3luYygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcHJvdGVjdGVkIGRldGVjdENoYW5nZXMoKSB7XG4gICAgdGhpcy5nZXRDaGFuZ2VEZXRlY3RvclJlZigpLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTaG91bGRSZWF0dGFjaENoYW5nZURldGVjdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJlZm9yZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldElzUmVuZGVyaW5nKHRydWUpO1xuICB9XG4gIHByb3RlY3RlZCBhZnRlclVwZGF0ZShpc1N5bmM6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgIGlmIChtb2RlbCAmJiAhdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgbW9kZWwuYWZ0ZXJSZXJlbmRlcigpO1xuICAgIH1cbiAgfVxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgdGhpcy5zZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cbn0iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBTWpGLE1BQU0sT0FBZ0IsV0FBbUMsU0FBUSw0QkFBNEI7SUFDM0YsWUFBc0IsaUJBQW9DLEVBQUUsZ0JBQW1DO1FBQzdGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFsRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUF5QmxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBUzdCLDJCQUFzQixHQUFHLENBQUMsWUFBa0IsRUFBRSxPQUF3QyxFQUFFLEVBQUU7WUFDaEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBQ00sOEJBQXlCLEdBQUcsQ0FBQyxZQUFrQixFQUFFLE9BQW1DLEVBQUUsRUFBRTtZQUM5RixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFxQk0scUJBQWdCLEdBQVksS0FBSyxDQUFDO0lBbEUxQyxDQUFDO0lBQ0QsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFLZSxTQUFTO1FBQ3ZCLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEQsSUFB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QUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O3lHQXBIbUIsV0FBVzs2RkFBWCxXQUFXLDJFQUZyQixFQUFFOzRGQUVRLFdBQVc7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZSwgSVByb3BlcnR5QXJyYXlWYWx1ZUNoYW5nZWRFdmVudCwgSVN1cnZleSB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCB9IGZyb20gXCIuL2VtYmVkZGVkLXZpZXctY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IElQcm9wZXJ0eVZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSBcInN1cnZleS1jb3JlL3R5cGluZ3Mvc3JjL2Jhc2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBcIlwiXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VBbmd1bGFyPFQgZXh0ZW5kcyBCYXNlID0gQmFzZT4gZXh0ZW5kcyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcih2aWV3Q29udGFpbmVyUmVmKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN1cnZleU1vZGVsKCk6IElTdXJ2ZXkge1xuICAgIHJldHVybiB0aGlzLmdldE1vZGVsKCkuZ2V0U3VydmV5KCk7XG4gIH1cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE1vZGVsKCk6IFQ7XG4gIHByb3RlY3RlZCBwcmV2aW91c01vZGVsPzogVDtcbiAgcHJpdmF0ZSBpc01vZGVsU3Vic3JpYmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0RvQ2hlY2soKTtcbiAgICBpZiAodGhpcy5wcmV2aW91c01vZGVsICE9PSB0aGlzLmdldE1vZGVsKCkpIHtcbiAgICAgIHRoaXMudW5NYWtlQmFzZUVsZW1lbnRBbmd1bGFyKHRoaXMucHJldmlvdXNNb2RlbCk7XG4gICAgICB0aGlzLm1ha2VCYXNlRWxlbWVudEFuZ3VsYXIodGhpcy5nZXRNb2RlbCgpKTtcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZWQoKTtcbiAgICAgIHRoaXMucHJldmlvdXNNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRJc01vZGVsUmVuZGVyaW5nKHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTW9kZWxDaGFuZ2VkKCkgeyB9XG5cbiAgcHJpdmF0ZSBzZXRJc01vZGVsUmVuZGVyaW5nKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgIGlmICghIW1vZGVsKSB7XG4gICAgICAoPGFueT5tb2RlbCkuaXNSZW5kZXJpbmcgPSB2YWw7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0SXNNb2RlbFJlbmRlcmluZyhzdGF0ZUVsZW1lbnQ/OiBCYXNlKSB7XG4gICAgY29uc3QgbW9kZWwgPSBzdGF0ZUVsZW1lbnQgPz8gdGhpcy5nZXRNb2RlbCgpO1xuICAgIHJldHVybiAhIW1vZGVsICYmICEhKDxhbnk+bW9kZWwpLmlzUmVuZGVyaW5nO1xuICB9XG4gIHByaXZhdGUgaXNEZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy51bk1ha2VCYXNlRWxlbWVudEFuZ3VsYXIodGhpcy5nZXRNb2RlbCgpKTtcbiAgICB0aGlzLnByZXZpb3VzTW9kZWwgPSB1bmRlZmluZWQ7XG4gIH1cbiAgcHJvdGVjdGVkIGlzQmFzZUVsZW1lbnRTdWJzcmliZWQoc3RhdGVFbGVtZW50OiBCYXNlKSB7XG4gICAgcmV0dXJuICgoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZENvdW50ID8/IDApID4gMDtcbiAgfVxuICBwcml2YXRlIG9uQXJyYXlDaGFuZ2VkQ2FsbGJhY2sgPSAoc3RhdGVFbGVtZW50OiBCYXNlLCBvcHRpb25zOiBJUHJvcGVydHlBcnJheVZhbHVlQ2hhbmdlZEV2ZW50KSA9PiB7XG4gICAgdGhpcy51cGRhdGUob3B0aW9ucy5uYW1lKTtcbiAgfTtcbiAgcHJpdmF0ZSBvblByb3BlcnR5Q2hhbmdlZENhbGxiYWNrID0gKHN0YXRlRWxlbWVudDogQmFzZSwgb3B0aW9uczogSVByb3BlcnR5VmFsdWVDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICB0aGlzLnVwZGF0ZShvcHRpb25zLm5hbWUpO1xuICB9O1xuICBwcml2YXRlIG1ha2VCYXNlRWxlbWVudEFuZ3VsYXIoc3RhdGVFbGVtZW50OiBUKSB7XG4gICAgaWYgKCEhc3RhdGVFbGVtZW50ICYmICF0aGlzLmdldElzTW9kZWxSZW5kZXJpbmcoc3RhdGVFbGVtZW50KSkge1xuICAgICAgdGhpcy5pc01vZGVsU3Vic3JpYmVkID0gdHJ1ZTtcbiAgICAgIHN0YXRlRWxlbWVudC5hZGRPbkFycmF5Q2hhbmdlZENhbGxiYWNrKHRoaXMub25BcnJheUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICBzdGF0ZUVsZW1lbnQuYWRkT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZENhbGxiYWNrKHRoaXMub25Qcm9wZXJ0eUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICBzdGF0ZUVsZW1lbnQuZW5hYmxlT25FbGVtZW50UmVyZW5kZXJlZEV2ZW50KCk7XG4gICAgICAoPGFueT5zdGF0ZUVsZW1lbnQpLl9fbmdJbXBsZW1lbnRlZENvdW50ID0gKCg8YW55PnN0YXRlRWxlbWVudCkuX19uZ0ltcGxlbWVudGVkQ291bnQgPz8gMCkgKyAxO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHVuTWFrZUJhc2VFbGVtZW50QW5ndWxhcihzdGF0ZUVsZW1lbnQ/OiBCYXNlKSB7XG4gICAgaWYgKCEhc3RhdGVFbGVtZW50ICYmIHRoaXMuaXNNb2RlbFN1YnNyaWJlZCkge1xuICAgICAgdGhpcy5pc01vZGVsU3Vic3JpYmVkID0gZmFsc2U7XG4gICAgICBzdGF0ZUVsZW1lbnQucmVtb3ZlT25Qcm9wZXJ0eVZhbHVlQ2hhbmdlZENhbGxiYWNrKHRoaXMub25Qcm9wZXJ0eUNoYW5nZWRDYWxsYmFjayk7XG4gICAgICBzdGF0ZUVsZW1lbnQucmVtb3ZlT25BcnJheUNoYW5nZWRDYWxsYmFjayh0aGlzLm9uQXJyYXlDaGFuZ2VkQ2FsbGJhY2spO1xuICAgICAgc3RhdGVFbGVtZW50LmRpc2FibGVPbkVsZW1lbnRSZXJlbmRlcmVkRXZlbnQoKTtcbiAgICAgIGlmICgoKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nSW1wbGVtZW50ZWRDb3VudCA/PyAwKSAtIDEgPD0gMCkge1xuICAgICAgICBkZWxldGUgKDxhbnk+c3RhdGVFbGVtZW50KS5fX25nSW1wbGVtZW50ZWRDb3VudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpc1VwZGF0ZXNCbG9ja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZShrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nZXRJc01vZGVsUmVuZGVyaW5nKCkgfHwgdGhpcy5pc1VwZGF0ZXNCbG9ja2VkKSByZXR1cm47XG4gICAgaWYgKGtleSAmJiB0aGlzLmdldFByb3BlcnRpZXNUb1VwZGF0ZVN5bmMoKS5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgdGhpcy5iZWZvcmVVcGRhdGUoKTtcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5hZnRlclVwZGF0ZSh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1VwZGF0ZXNCbG9ja2VkID0gdHJ1ZTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhpcy5pc1VwZGF0ZXNCbG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5iZWZvcmVVcGRhdGUoKTtcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB0aGlzLmFmdGVyVXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldENoYW5nZURldGVjdG9yUmVmKCkge1xuICAgIHJldHVybiB0aGlzLmVtYmVkZGVkVmlldyA/IHRoaXMuZW1iZWRkZWRWaWV3IDogdGhpcy5jaGFuZ2VEZXRlY3RvclJlZjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0UHJvcGVydGllc1RvVXBkYXRlU3luYygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcHJvdGVjdGVkIGRldGVjdENoYW5nZXMoKSB7XG4gICAgdGhpcy5nZXRDaGFuZ2VEZXRlY3RvclJlZigpLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTaG91bGRSZWF0dGFjaENoYW5nZURldGVjdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJlZm9yZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldElzTW9kZWxSZW5kZXJpbmcodHJ1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGFmdGVyVXBkYXRlKGlzU3luYzogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5zZXRJc01vZGVsUmVuZGVyaW5nKGZhbHNlKTtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICBpZiAobW9kZWwgJiYgIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIG1vZGVsLmFmdGVyUmVyZW5kZXIoKTtcbiAgICB9XG4gIH1cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3Q2hlY2tlZCgpO1xuICAgIHRoaXMuc2V0SXNNb2RlbFJlbmRlcmluZyhmYWxzZSk7XG4gIH1cbn0iXX0=
@@ -8,7 +8,7 @@ import * as i3 from "../../utils/safe-url.pipe";
8
8
  export class FileItemComponent extends EmbeddedViewContentComponent {
9
9
  }
10
10
  FileItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
- FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileItemComponent, selector: "sv-ng-file-item", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <span [class]=\"question.cssClasses.previewItem\" (click)=\"question.doDownloadFileFromContainer($event)\">\n <div *ngIf=\"item.name && question.cssClasses.fileSign\" [class]=\"question.cssClasses.fileSign\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n <div [class]=\"question.getImageWrapperCss(item)\">\n <img *ngIf=\"question.canPreviewImage(item)\" [attr.src]=\"item.content | safeUrl\"\n [style.height]=\"question.imageHeight\" [style.width]=\"question.imageWidth\" alt=\"File preview\" />\n <svg *ngIf=\"question.defaultImage(item)\" [iconName]=\"question.cssClasses.defaultImageIconId\"\n [partCss]=\"question.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"item.name && !question.isReadOnly\" [class]=\"question.getRemoveButtonCss()\"\n (click)=\"question.doRemoveFile(item, $event)\">\n <span [class]=\"question.cssClasses.removeFile\">{{ question.removeFileCaption }}</span>\n <svg *ngIf=\"question.cssClasses.removeFileSvgIconId\" [title]=\"question.removeFileCaption\"\n [partCss]=\"question.cssClasses.removeFileSvg\" [iconName]=\"question.cssClasses.removeFileSvgIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <div *ngIf=\"item.name && question.cssClasses.fileSignBottom\" [class]=\"question.cssClasses.fileSignBottom\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n </span>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "safeUrl": i3.SafeUrlPipe } });
11
+ FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileItemComponent, selector: "sv-ng-file-item", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <span [class]=\"question.cssClasses.previewItem\" (click)=\"question.doDownloadFileFromContainer($event)\">\n <div *ngIf=\"item.name && question.cssClasses.fileSign\" [class]=\"question.cssClasses.fileSign\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" target=\"_blank\" rel=\"noreferrer\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n <div [class]=\"question.getImageWrapperCss(item)\">\n <img *ngIf=\"question.canPreviewImage(item)\" [attr.src]=\"item.content | safeUrl\"\n [style.height]=\"question.imageHeight\" [style.width]=\"question.imageWidth\" alt=\"File preview\" />\n <svg *ngIf=\"question.defaultImage(item)\" [iconName]=\"question.cssClasses.defaultImageIconId\"\n [partCss]=\"question.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"item.name && !question.isReadOnly\" [class]=\"question.getRemoveButtonCss()\"\n (click)=\"question.doRemoveFile(item, $event)\">\n <span [class]=\"question.cssClasses.removeFile\">{{ question.removeFileCaption }}</span>\n <svg *ngIf=\"question.cssClasses.removeFileSvgIconId\" [title]=\"question.removeFileCaption\"\n [partCss]=\"question.cssClasses.removeFileSvg\" [iconName]=\"question.cssClasses.removeFileSvgIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <div *ngIf=\"item.name && question.cssClasses.fileSignBottom\" [class]=\"question.cssClasses.fileSignBottom\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" target=\"_blank\" rel=\"noreferrer\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n </span>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "safeUrl": i3.SafeUrlPipe } });
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileItemComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
22
22
  type: Input
23
23
  }] } });
24
24
  AngularComponentFactory.Instance.registerComponent("sv-file-item", FileItemComponent);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUvZmlsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUvZmlsZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQU9sRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsNEJBQTRCOzsrR0FBdEQsaUJBQWlCO21HQUFqQixpQkFBaUIsOEhDVjlCLG9oRUE0QmM7NEZEbEJELGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBRVksSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7O0FBR1YsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2VtYmVkZGVkLXZpZXctY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmlsZU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc2VsZWN0b3I6IFwic3YtbmctZmlsZS1pdGVtXCIsXG4gIHN0eWxlVXJsczogW1wiLi4vLi4vaGlkZS1ob3N0LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpdGVtITogYW55O1xuICAgIEBJbnB1dCgpIHF1ZXN0aW9uITogUXVlc3Rpb25GaWxlTW9kZWw7XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtZmlsZS1pdGVtXCIsIEZpbGVJdGVtQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxzcGFuIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnByZXZpZXdJdGVtXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmRvRG93bmxvYWRGaWxlRnJvbUNvbnRhaW5lcigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm5hbWUgJiYgcXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlU2lnblwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVTaWduXCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwicXVlc3Rpb24uZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCBpdGVtKVwiIFthdHRyLmhyZWZdPVwiaXRlbS5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS5uYW1lXCIgW2F0dHIuZG93bmxvYWRdPVwiaXRlbS5uYW1lXCIgW3N0eWxlLndpZHRoXT1cInF1ZXN0aW9uLmltYWdlV2lkdGhcIj57e1xuICAgICAgICAgICAgICAgIGl0ZW0ubmFtZVxuICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0SW1hZ2VXcmFwcGVyQ3NzKGl0ZW0pXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwicXVlc3Rpb24uY2FuUHJldmlld0ltYWdlKGl0ZW0pXCIgW2F0dHIuc3JjXT1cIml0ZW0uY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwicXVlc3Rpb24uaW1hZ2VIZWlnaHRcIiBbc3R5bGUud2lkdGhdPVwicXVlc3Rpb24uaW1hZ2VXaWR0aFwiIGFsdD1cIkZpbGUgcHJldmlld1wiIC8+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwicXVlc3Rpb24uZGVmYXVsdEltYWdlKGl0ZW0pXCIgW2ljb25OYW1lXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMuZGVmYXVsdEltYWdlSWNvbklkXCJcbiAgICAgICAgICAgICAgICBbcGFydENzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZVwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ubmFtZSAmJiAhcXVlc3Rpb24uaXNSZWFkT25seVwiIFtjbGFzc109XCJxdWVzdGlvbi5nZXRSZW1vdmVCdXR0b25Dc3MoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmRvUmVtb3ZlRmlsZShpdGVtLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMucmVtb3ZlRmlsZVwiPnt7IHF1ZXN0aW9uLnJlbW92ZUZpbGVDYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdJY29uSWRcIiBbdGl0bGVdPVwicXVlc3Rpb24ucmVtb3ZlRmlsZUNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbcGFydENzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUZpbGVTdmdcIiBbaWNvbk5hbWVdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnSWNvbklkXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm5hbWUgJiYgcXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVTaWduQm90dG9tXCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwicXVlc3Rpb24uZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCBpdGVtKVwiIFthdHRyLmhyZWZdPVwiaXRlbS5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS5uYW1lXCIgW2F0dHIuZG93bmxvYWRdPVwiaXRlbS5uYW1lXCIgW3N0eWxlLndpZHRoXT1cInF1ZXN0aW9uLmltYWdlV2lkdGhcIj57e1xuICAgICAgICAgICAgICAgIGl0ZW0ubmFtZVxuICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUvZmlsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUvZmlsZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQU9sRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsNEJBQTRCOzsrR0FBdEQsaUJBQWlCO21HQUFqQixpQkFBaUIsOEhDVjlCLDhsRUE0QmM7NEZEbEJELGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBRVksSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7O0FBR1YsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2VtYmVkZGVkLXZpZXctY29udGVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRmlsZU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc2VsZWN0b3I6IFwic3YtbmctZmlsZS1pdGVtXCIsXG4gIHN0eWxlVXJsczogW1wiLi4vLi4vaGlkZS1ob3N0LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpdGVtITogYW55O1xuICAgIEBJbnB1dCgpIHF1ZXN0aW9uITogUXVlc3Rpb25GaWxlTW9kZWw7XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtZmlsZS1pdGVtXCIsIEZpbGVJdGVtQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxzcGFuIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnByZXZpZXdJdGVtXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmRvRG93bmxvYWRGaWxlRnJvbUNvbnRhaW5lcigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm5hbWUgJiYgcXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlU2lnblwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVTaWduXCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwicXVlc3Rpb24uZG9Eb3dubG9hZEZpbGUoJGV2ZW50LCBpdGVtKVwiIFthdHRyLmhyZWZdPVwiaXRlbS5jb250ZW50IHwgc2FmZVVybFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS5uYW1lXCIgW2F0dHIuZG93bmxvYWRdPVwiaXRlbS5uYW1lXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9yZWZlcnJlclwiIFtzdHlsZS53aWR0aF09XCJxdWVzdGlvbi5pbWFnZVdpZHRoXCI+e3tcbiAgICAgICAgICAgICAgICBpdGVtLm5hbWVcbiAgICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInF1ZXN0aW9uLmdldEltYWdlV3JhcHBlckNzcyhpdGVtKVwiPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cInF1ZXN0aW9uLmNhblByZXZpZXdJbWFnZShpdGVtKVwiIFthdHRyLnNyY109XCJpdGVtLmNvbnRlbnQgfCBzYWZlVXJsXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInF1ZXN0aW9uLmltYWdlSGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cInF1ZXN0aW9uLmltYWdlV2lkdGhcIiBhbHQ9XCJGaWxlIHByZXZpZXdcIiAvPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInF1ZXN0aW9uLmRlZmF1bHRJbWFnZShpdGVtKVwiIFtpY29uTmFtZV09XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmRlZmF1bHRJbWFnZUljb25JZFwiXG4gICAgICAgICAgICAgICAgW3BhcnRDc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5kZWZhdWx0SW1hZ2VcIiBbc2l6ZV09XCInYXV0bydcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm5hbWUgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0UmVtb3ZlQnV0dG9uQ3NzKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5kb1JlbW92ZUZpbGUoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnJlbW92ZUZpbGVcIj57eyBxdWVzdGlvbi5yZW1vdmVGaWxlQ2FwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnSWNvbklkXCIgW3RpdGxlXT1cInF1ZXN0aW9uLnJlbW92ZUZpbGVDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhcnRDc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yZW1vdmVGaWxlU3ZnXCIgW2ljb25OYW1lXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMucmVtb3ZlRmlsZVN2Z0ljb25JZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5uYW1lICYmIHF1ZXN0aW9uLmNzc0NsYXNzZXMuZmlsZVNpZ25Cb3R0b21cIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlU2lnbkJvdHRvbVwiPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cInF1ZXN0aW9uLmRvRG93bmxvYWRGaWxlKCRldmVudCwgaXRlbSlcIiBbYXR0ci5ocmVmXT1cIml0ZW0uY29udGVudCB8IHNhZmVVcmxcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIml0ZW0ubmFtZVwiIFthdHRyLmRvd25sb2FkXT1cIml0ZW0ubmFtZVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIiBbc3R5bGUud2lkdGhdPVwicXVlc3Rpb24uaW1hZ2VXaWR0aFwiPnt7XG4gICAgICAgICAgICAgICAgaXRlbS5uYW1lXG4gICAgICAgICAgICAgICAgfX08L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -9,7 +9,7 @@ export class PanelDynamicPrevBtn extends PaneldynamicAction {
9
9
  }
10
10
  }
11
11
  PanelDynamicPrevBtn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PanelDynamicPrevBtn, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- PanelDynamicPrevBtn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicPrevBtn, selector: "sv-ng-paneldynamic-prev-btn", usesInheritance: true, ngImport: i0, template: "<div [attr.title]=\"question.panelPrevText\" (click)=\"prevPanelClick()\" [class]=\"question.getPrevButtonCss()\">\n <svg [iconName]=\"question.cssClasses.progressBtnIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n</div>\n", components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
12
+ PanelDynamicPrevBtn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicPrevBtn, selector: "sv-ng-paneldynamic-prev-btn", usesInheritance: true, ngImport: i0, template: "<div [attr.title]=\"question.prevPanelText\" (click)=\"prevPanelClick()\" [class]=\"question.getPrevButtonCss()\">\n <svg [iconName]=\"question.cssClasses.progressBtnIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n</div>\n", components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PanelDynamicPrevBtn, decorators: [{
14
14
  type: Component,
15
15
  args: [{
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
18
18
  }]
19
19
  }] });
20
20
  AngularComponentFactory.Instance.registerComponent("sv-paneldynamic-prev-btn", PanelDynamicPrevBtn);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxkeW5hbWljLXByZXYtYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhbmVsZHluYW1pYy1hY3Rpb25zL3BhbmVsZHluYW1pYy1wcmV2LWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYW5lbGR5bmFtaWMtYWN0aW9ucy9wYW5lbGR5bmFtaWMtcHJldi1idG4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBTXRFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDekQsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7aUhBSFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsMEZDUmhDLGlPQUdBOzRGREthLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsd0NBQXdDO2lCQUN0RDs7QUFNRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgUGFuZWxkeW5hbWljQWN0aW9uIH0gZnJvbSBcIi4vcGFuZWxkeW5hbWljLWFkZC1idG4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1wYW5lbGR5bmFtaWMtcHJldi1idG5cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9wYW5lbGR5bmFtaWMtcHJldi1idG4uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbER5bmFtaWNQcmV2QnRuIGV4dGVuZHMgUGFuZWxkeW5hbWljQWN0aW9uIHtcbiAgcHJldlBhbmVsQ2xpY2soKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5nb1RvUHJldlBhbmVsKCk7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtcGFuZWxkeW5hbWljLXByZXYtYnRuXCIsIFBhbmVsRHluYW1pY1ByZXZCdG4pOyIsIjxkaXYgW2F0dHIudGl0bGVdPVwicXVlc3Rpb24ucGFuZWxQcmV2VGV4dFwiIChjbGljayk9XCJwcmV2UGFuZWxDbGljaygpXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmdldFByZXZCdXR0b25Dc3MoKVwiPlxuICA8c3ZnIFtpY29uTmFtZV09XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnByb2dyZXNzQnRuSWNvblwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuPC9kaXY+XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxkeW5hbWljLXByZXYtYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhbmVsZHluYW1pYy1hY3Rpb25zL3BhbmVsZHluYW1pYy1wcmV2LWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYW5lbGR5bmFtaWMtYWN0aW9ucy9wYW5lbGR5bmFtaWMtcHJldi1idG4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBTXRFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDekQsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7aUhBSFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsMEZDUmhDLGlPQUdBOzRGREthLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsd0NBQXdDO2lCQUN0RDs7QUFNRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuaW1wb3J0IHsgUGFuZWxkeW5hbWljQWN0aW9uIH0gZnJvbSBcIi4vcGFuZWxkeW5hbWljLWFkZC1idG4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1wYW5lbGR5bmFtaWMtcHJldi1idG5cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9wYW5lbGR5bmFtaWMtcHJldi1idG4uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbER5bmFtaWNQcmV2QnRuIGV4dGVuZHMgUGFuZWxkeW5hbWljQWN0aW9uIHtcbiAgcHJldlBhbmVsQ2xpY2soKSB7XG4gICAgdGhpcy5xdWVzdGlvbi5nb1RvUHJldlBhbmVsKCk7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3YtcGFuZWxkeW5hbWljLXByZXYtYnRuXCIsIFBhbmVsRHluYW1pY1ByZXZCdG4pOyIsIjxkaXYgW2F0dHIudGl0bGVdPVwicXVlc3Rpb24ucHJldlBhbmVsVGV4dFwiIChjbGljayk9XCJwcmV2UGFuZWxDbGljaygpXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmdldFByZXZCdXR0b25Dc3MoKVwiPlxuICA8c3ZnIFtpY29uTmFtZV09XCJxdWVzdGlvbi5jc3NDbGFzc2VzLnByb2dyZXNzQnRuSWNvblwiIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuPC9kaXY+XG4iXX0=
@@ -45,7 +45,7 @@ export class QuestionComponent extends EmbeddedViewContentComponent {
45
45
  }
46
46
  }
47
47
  QuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
48
- QuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model", css: "css", survey: "survey" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <sv-breadcrumbs\n *ngIf=\"model.singleInputHasActions\"\n [model]=\"model.singleInputActions\"\n [css]=\"model.cssClasses\"\n ></sv-breadcrumbs>\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"!model.singleInputHideHeader && model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <sv-single-input-summary\n *ngIf=\"!!model.singleInputSummary\"\n [model]=\"model.singleInputSummary\"\n [css]=\"model.cssClasses\"\n ></sv-single-input-summary>\n <sv-ng-element\n *ngIf=\"!model.singleInputSummary && !!singleQuestion\"\n [model]=\"singleQuestion\"\n ></sv-ng-element>\n <ng-template\n *ngIf=\"!model.singleInputSummary && !singleQuestion\"\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\" [attr.aria-hidden]=\"model.contentAriaHidden\" [attr.data-sv-drop-target-matrix-row]=\"model.dragDropMatrixAttribute\" [attr.data-sv-drop-target-matrix]=\"model.dragDropMatrixAttribute\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: i1.BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: ["model", "css"] }, { type: i2.ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: i3.ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: i4.SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: ["model", "css"] }, { type: i5.ElementComponent, selector: "sv-ng-element", inputs: ["model"] }, { type: i6.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i7.SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i10.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
48
+ QuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model", css: "css", survey: "survey" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <sv-breadcrumbs\n *ngIf=\"model.singleInputHasActions\"\n [model]=\"model.singleInputActions\"\n [css]=\"model.cssClasses\"\n ></sv-breadcrumbs>\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <sv-single-input-summary\n *ngIf=\"!!model.singleInputSummary\"\n [model]=\"model.singleInputSummary\"\n [css]=\"model.cssClasses\"\n ></sv-single-input-summary>\n <sv-ng-element\n *ngIf=\"!model.singleInputSummary && !!singleQuestion\"\n [model]=\"singleQuestion\"\n ></sv-ng-element>\n <ng-template\n *ngIf=\"!model.singleInputSummary && !singleQuestion\"\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\" [attr.aria-hidden]=\"model.contentAriaHidden\" [attr.data-sv-drop-target-matrix-row]=\"model.dragDropMatrixAttribute\" [attr.data-sv-drop-target-matrix]=\"model.dragDropMatrixAttribute\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: i1.BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: ["model", "css"] }, { type: i2.ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: i3.ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: i4.SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: ["model", "css"] }, { type: i5.ElementComponent, selector: "sv-ng-element", inputs: ["model"] }, { type: i6.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i7.SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i10.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
63
63
  args: ["elementContainer"]
64
64
  }] } });
65
65
  AngularComponentFactory.Instance.registerComponent("question", QuestionComponent);
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7QUFNOUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0QjtJQU12RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZTs7UUFDYixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxhQUFhLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLEtBQWEsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLHNDQUFzQztRQUMzQyxPQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ00sc0NBQXNDO1FBQzNDLE9BQU87WUFDTCxhQUFhLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFPLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMxRTtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0FyQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsbVBDVjlCLHFnRkF1Q2M7NEZEN0JELGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsMkJBQTJCO2lCQUN6Qzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDeUIsTUFBTTtzQkFBcEMsU0FBUzt1QkFBQyxrQkFBa0I7O0FBb0MvQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbmltcG9ydCB7IEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9lbWJlZGRlZC12aWV3LWNvbnRlbnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBnZXRDb21wb25lbnROYW1lIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcXVlc3Rpb24uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbCE6IFF1ZXN0aW9uO1xuICBASW5wdXQoKSBjc3M6IGFueTtcbiAgQElucHV0KCkgc3VydmV5OiBhbnk7XG4gIEBWaWV3Q2hpbGQoXCJlbGVtZW50Q29udGFpbmVyXCIpIHJvb3RFbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICBnZXQgc2luZ2xlUXVlc3Rpb24oKTogUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnNpbmdsZUlucHV0UXVlc3Rpb247XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCEhdGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kZWwuYWZ0ZXJSZW5kZXIodGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICghIXRoaXMubW9kZWwpIHtcbiAgICAgIHRoaXMubW9kZWwuZGVzdHJveVJlc2l6ZU9ic2VydmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbXBvbmVudE5hbWUoKTogc3RyaW5nIHsgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodGhpcy5tb2RlbCk7IH1cbiAgcHVibGljIGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICg8YW55PnRoaXMubW9kZWwuc3VydmV5KS5nZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50TmFtZSh0aGlzLm1vZGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25Db250ZW50V3JhcHBlckNvbXBvbmVudERhdGEoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50RGF0YToge1xuICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgZGF0YTogKDxhbnk+dGhpcy5tb2RlbC5zdXJ2ZXkpLmdldEVsZW1lbnRXcmFwcGVyQ29tcG9uZW50RGF0YSh0aGlzLm1vZGVsKVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJxdWVzdGlvblwiLCBRdWVzdGlvbkNvbXBvbmVudCk7IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cIiEhbW9kZWxcIiAjZWxlbWVudENvbnRhaW5lciBbY2xhc3NdPVwibW9kZWwuZ2V0Um9vdENzcygpXCIgW3N0eWxlXT1cIm1vZGVsLmdldFJvb3RTdHlsZSgpXCIgW2lkXT1cIm1vZGVsLmlkXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwibW9kZWwubmFtZVwiIFthdHRyLnJvbGVdPVwibW9kZWwuYXJpYVJvbGVcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5hcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJtb2RlbC5hcmlhTGFiZWxsZWRCeVwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1vZGVsLmFyaWFFeHBhbmRlZFwiPlxuICAgIDxzdi1icmVhZGNydW1ic1xuICAgICAgKm5nSWY9XCJtb2RlbC5zaW5nbGVJbnB1dEhhc0FjdGlvbnNcIlxuICAgICAgW21vZGVsXT1cIm1vZGVsLnNpbmdsZUlucHV0QWN0aW9uc1wiXG4gICAgICBbY3NzXT1cIm1vZGVsLmNzc0NsYXNzZXNcIlxuICAgID48L3N2LWJyZWFkY3J1bWJzPlxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5zaG93RXJyb3JzQWJvdmVRdWVzdGlvbiAmJiBtb2RlbC5oYXNWaXNpYmxlRXJyb3JzXCIgW2VsZW1lbnRdPVwibW9kZWxcIiBzdi1uZy1lcnJvcnM+PC9kaXY+XG4gICAgPGRpdiBbZWxlbWVudF09XCJtb2RlbFwiICpuZ0lmPVwiIW1vZGVsLnNpbmdsZUlucHV0SGlkZUhlYWRlciAmJiBtb2RlbC5oYXNUaXRsZU9uTGVmdFRvcFwiIHN2LW5nLWVsZW1lbnQtaGVhZGVyPjwvZGl2PlxuICAgIDxzdi1zaW5nbGUtaW5wdXQtc3VtbWFyeVxuICAgICAgKm5nSWY9XCIhIW1vZGVsLnNpbmdsZUlucHV0U3VtbWFyeVwiXG4gICAgICBbbW9kZWxdPVwibW9kZWwuc2luZ2xlSW5wdXRTdW1tYXJ5XCJcbiAgICAgIFtjc3NdPVwibW9kZWwuY3NzQ2xhc3Nlc1wiXG4gICAgPjwvc3Ytc2luZ2xlLWlucHV0LXN1bW1hcnk+XG4gICAgPHN2LW5nLWVsZW1lbnRcbiAgICAgICpuZ0lmPVwiIW1vZGVsLnNpbmdsZUlucHV0U3VtbWFyeSAmJiAhIXNpbmdsZVF1ZXN0aW9uXCJcbiAgICAgIFttb2RlbF09XCJzaW5nbGVRdWVzdGlvblwiXG4gICAgPjwvc3YtbmctZWxlbWVudD5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICpuZ0lmPVwiIW1vZGVsLnNpbmdsZUlucHV0U3VtbWFyeSAmJiAhc2luZ2xlUXVlc3Rpb25cIlxuICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKCksIGRhdGE6IGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnREYXRhKCkgfVwiPlxuICAgICAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ29udGVudFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiBbdmlzaWJsZV09XCJtb2RlbC5yZW5kZXJlZElzRXhwYW5kZWRcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJtb2RlbC5jb250ZW50QXJpYUhpZGRlblwiIFthdHRyLmRhdGEtc3YtZHJvcC10YXJnZXQtbWF0cml4LXJvd109XCJtb2RlbC5kcmFnRHJvcE1hdHJpeEF0dHJpYnV0ZVwiIFthdHRyLmRhdGEtc3YtZHJvcC10YXJnZXQtbWF0cml4XT1cIm1vZGVsLmRyYWdEcm9wTWF0cml4QXR0cmlidXRlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgIFtjb21wb25lbnRdPVwieyBuYW1lOiBnZXRDb21wb25lbnROYW1lKCksIGRhdGE6IHsgbW9kZWw6IG1vZGVsIH0sIGRlZmF1bHQ6ICdza2VsZXRvbi1xdWVzdGlvbicgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5oYXNDb21tZW50XCIgW2NsYXNzXT1cIm1vZGVsLmdldENvbW1lbnRBcmVhQ3NzKGZhbHNlKVwiPlxuICAgICAgICAgIDxkaXYgW21vZGVsXT1cIm1vZGVsLmxvY0NvbW1lbnRUZXh0XCIgc3Ytbmctc3RyaW5nPjwvZGl2PlxuICAgICAgICAgIDxzdi1uZy1jb21tZW50IFtxdWVzdGlvbl09XCJtb2RlbFwiPjwvc3YtbmctY29tbWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5oYXNEZXNjcmlwdGlvblVuZGVySW5wdXRcIiBbY2xhc3NdPVwibW9kZWwuY3NzRGVzY3JpcHRpb25cIiBbYXR0ci5pZF09XCJtb2RlbC5hcmlhRGVzY3JpcHRpb25JZFwiXG4gICAgICAgICAgW21vZGVsXT1cIm1vZGVsLmxvY0Rlc2NyaXB0aW9uXCIgc3Ytbmctc3RyaW5nPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IFtlbGVtZW50XT1cIm1vZGVsXCIgKm5nSWY9XCJtb2RlbC5oYXNUaXRsZU9uQm90dG9tXCIgc3YtbmctZWxlbWVudC1oZWFkZXI+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1vZGVsLnNob3dFcnJvcnNCZWxvd1F1ZXN0aW9uICYmIG1vZGVsLmhhc1Zpc2libGVFcnJvcnNcIiBbZWxlbWVudF09XCJtb2RlbFwiIHN2LW5nLWVycm9ycz48L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7QUFNOUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0QjtJQU12RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZTs7UUFDYixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxhQUFhLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLEtBQWEsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLHNDQUFzQztRQUMzQyxPQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ00sc0NBQXNDO1FBQzNDLE9BQU87WUFDTCxhQUFhLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFPLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMxRTtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0FyQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsbVBDVjlCLHErRUF1Q2M7NEZEN0JELGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsMkJBQTJCO2lCQUN6Qzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDeUIsTUFBTTtzQkFBcEMsU0FBUzt1QkFBQyxrQkFBa0I7O0FBb0MvQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbmltcG9ydCB7IEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9lbWJlZGRlZC12aWV3LWNvbnRlbnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBnZXRDb21wb25lbnROYW1lIH0gZnJvbSBcIi4vcXVlc3Rpb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXF1ZXN0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcXVlc3Rpb24uY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbCE6IFF1ZXN0aW9uO1xuICBASW5wdXQoKSBjc3M6IGFueTtcbiAgQElucHV0KCkgc3VydmV5OiBhbnk7XG4gIEBWaWV3Q2hpbGQoXCJlbGVtZW50Q29udGFpbmVyXCIpIHJvb3RFbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICBnZXQgc2luZ2xlUXVlc3Rpb24oKTogUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLnNpbmdsZUlucHV0UXVlc3Rpb247XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCEhdGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kZWwuYWZ0ZXJSZW5kZXIodGhpcy5yb290RWw/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICghIXRoaXMubW9kZWwpIHtcbiAgICAgIHRoaXMubW9kZWwuZGVzdHJveVJlc2l6ZU9ic2VydmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbXBvbmVudE5hbWUoKTogc3RyaW5nIHsgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodGhpcy5tb2RlbCk7IH1cbiAgcHVibGljIGdldFF1ZXN0aW9uQ29udGVudFdyYXBwZXJDb21wb25lbnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICg8YW55PnRoaXMubW9kZWwuc3VydmV5KS5nZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50TmFtZSh0aGlzLm1vZGVsKTtcbiAgfVxuICBwdWJsaWMgZ2V0UXVlc3Rpb25Db250ZW50V3JhcHBlckNvbXBvbmVudERhdGEoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50RGF0YToge1xuICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgZGF0YTogKDxhbnk+dGhpcy5tb2RlbC5zdXJ2ZXkpLmdldEVsZW1lbnRXcmFwcGVyQ29tcG9uZW50RGF0YSh0aGlzLm1vZGVsKVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJxdWVzdGlvblwiLCBRdWVzdGlvbkNvbXBvbmVudCk7IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cIiEhbW9kZWxcIiAjZWxlbWVudENvbnRhaW5lciBbY2xhc3NdPVwibW9kZWwuZ2V0Um9vdENzcygpXCIgW3N0eWxlXT1cIm1vZGVsLmdldFJvb3RTdHlsZSgpXCIgW2lkXT1cIm1vZGVsLmlkXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwibW9kZWwubmFtZVwiIFthdHRyLnJvbGVdPVwibW9kZWwuYXJpYVJvbGVcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5hcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJtb2RlbC5hcmlhTGFiZWxsZWRCeVwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1vZGVsLmFyaWFFeHBhbmRlZFwiPlxuICAgIDxzdi1icmVhZGNydW1ic1xuICAgICAgKm5nSWY9XCJtb2RlbC5zaW5nbGVJbnB1dEhhc0FjdGlvbnNcIlxuICAgICAgW21vZGVsXT1cIm1vZGVsLnNpbmdsZUlucHV0QWN0aW9uc1wiXG4gICAgICBbY3NzXT1cIm1vZGVsLmNzc0NsYXNzZXNcIlxuICAgID48L3N2LWJyZWFkY3J1bWJzPlxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5zaG93RXJyb3JzQWJvdmVRdWVzdGlvbiAmJiBtb2RlbC5oYXNWaXNpYmxlRXJyb3JzXCIgW2VsZW1lbnRdPVwibW9kZWxcIiBzdi1uZy1lcnJvcnM+PC9kaXY+XG4gICAgPGRpdiBbZWxlbWVudF09XCJtb2RlbFwiICpuZ0lmPVwibW9kZWwuaGFzVGl0bGVPbkxlZnRUb3BcIiBzdi1uZy1lbGVtZW50LWhlYWRlcj48L2Rpdj5cbiAgICA8c3Ytc2luZ2xlLWlucHV0LXN1bW1hcnlcbiAgICAgICpuZ0lmPVwiISFtb2RlbC5zaW5nbGVJbnB1dFN1bW1hcnlcIlxuICAgICAgW21vZGVsXT1cIm1vZGVsLnNpbmdsZUlucHV0U3VtbWFyeVwiXG4gICAgICBbY3NzXT1cIm1vZGVsLmNzc0NsYXNzZXNcIlxuICAgID48L3N2LXNpbmdsZS1pbnB1dC1zdW1tYXJ5PlxuICAgIDxzdi1uZy1lbGVtZW50XG4gICAgICAqbmdJZj1cIiFtb2RlbC5zaW5nbGVJbnB1dFN1bW1hcnkgJiYgISFzaW5nbGVRdWVzdGlvblwiXG4gICAgICBbbW9kZWxdPVwic2luZ2xlUXVlc3Rpb25cIlxuICAgID48L3N2LW5nLWVsZW1lbnQ+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdJZj1cIiFtb2RlbC5zaW5nbGVJbnB1dFN1bW1hcnkgJiYgIXNpbmdsZVF1ZXN0aW9uXCJcbiAgICAgIFtjb21wb25lbnRdPVwieyBuYW1lOiBnZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50TmFtZSgpLCBkYXRhOiBnZXRRdWVzdGlvbkNvbnRlbnRXcmFwcGVyQ29tcG9uZW50RGF0YSgpIH1cIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NvbnRlbnRcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgW3Zpc2libGVdPVwibW9kZWwucmVuZGVyZWRJc0V4cGFuZGVkXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwibW9kZWwuY29udGVudEFyaWFIaWRkZW5cIiBbYXR0ci5kYXRhLXN2LWRyb3AtdGFyZ2V0LW1hdHJpeC1yb3ddPVwibW9kZWwuZHJhZ0Ryb3BNYXRyaXhBdHRyaWJ1dGVcIiBbYXR0ci5kYXRhLXN2LWRyb3AtdGFyZ2V0LW1hdHJpeF09XCJtb2RlbC5kcmFnRHJvcE1hdHJpeEF0dHJpYnV0ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbY29tcG9uZW50XT1cInsgbmFtZTogZ2V0Q29tcG9uZW50TmFtZSgpLCBkYXRhOiB7IG1vZGVsOiBtb2RlbCB9LCBkZWZhdWx0OiAnc2tlbGV0b24tcXVlc3Rpb24nIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuaGFzQ29tbWVudFwiIFtjbGFzc109XCJtb2RlbC5nZXRDb21tZW50QXJlYUNzcyhmYWxzZSlcIj5cbiAgICAgICAgICA8ZGl2IFttb2RlbF09XCJtb2RlbC5sb2NDb21tZW50VGV4dFwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbiAgICAgICAgICA8c3YtbmctY29tbWVudCBbcXVlc3Rpb25dPVwibW9kZWxcIj48L3N2LW5nLWNvbW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZWwuaGFzRGVzY3JpcHRpb25VbmRlcklucHV0XCIgW2NsYXNzXT1cIm1vZGVsLmNzc0Rlc2NyaXB0aW9uXCIgW2F0dHIuaWRdPVwibW9kZWwuYXJpYURlc2NyaXB0aW9uSWRcIlxuICAgICAgICAgIFttb2RlbF09XCJtb2RlbC5sb2NEZXNjcmlwdGlvblwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBbZWxlbWVudF09XCJtb2RlbFwiICpuZ0lmPVwibW9kZWwuaGFzVGl0bGVPbkJvdHRvbVwiIHN2LW5nLWVsZW1lbnQtaGVhZGVyPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5zaG93RXJyb3JzQmVsb3dRdWVzdGlvbiAmJiBtb2RlbC5oYXNWaXNpYmxlRXJyb3JzXCIgW2VsZW1lbnRdPVwibW9kZWxcIiBzdi1uZy1lcnJvcnM+PC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -51,6 +51,10 @@ class BaseAngular extends EmbeddedViewContentComponent {
51
51
  this.onArrayChangedCallback = (stateElement, options) => {
52
52
  this.update(options.name);
53
53
  };
54
+ this.onPropertyChangedCallback = (stateElement, options) => {
55
+ this.update(options.name);
56
+ };
57
+ this.isUpdatesBlocked = false;
54
58
  }
55
59
  get surveyModel() {
56
60
  return this.getModel().getSurvey();
@@ -63,17 +67,17 @@ class BaseAngular extends EmbeddedViewContentComponent {
63
67
  this.onModelChanged();
64
68
  this.previousModel = this.getModel();
65
69
  }
66
- this.setIsRendering(true);
70
+ this.setIsModelRendering(true);
67
71
  }
68
72
  onModelChanged() { }
69
- setIsRendering(val) {
73
+ setIsModelRendering(val) {
70
74
  const model = this.getModel();
71
75
  if (!!model) {
72
76
  model.isRendering = val;
73
77
  }
74
78
  }
75
- getIsRendering() {
76
- const model = this.getModel();
79
+ getIsModelRendering(stateElement) {
80
+ const model = stateElement !== null && stateElement !== void 0 ? stateElement : this.getModel();
77
81
  return !!model && !!model.isRendering;
78
82
  }
79
83
  ngOnDestroy() {
@@ -82,80 +86,45 @@ class BaseAngular extends EmbeddedViewContentComponent {
82
86
  this.previousModel = undefined;
83
87
  }
84
88
  isBaseElementSubsribed(stateElement) {
85
- return !!stateElement.__ngImplemented;
86
- }
87
- getBaseElementCallbacks(stateElement) {
88
89
  var _a;
89
- stateElement.__ngSubscribers = (_a = stateElement.__ngSubscribers) !== null && _a !== void 0 ? _a : [];
90
- return (stateElement.__ngSubscribers);
90
+ return ((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) > 0;
91
91
  }
92
92
  makeBaseElementAngular(stateElement) {
93
- this.makeBaseElementAngularCallback = () => {
93
+ var _a;
94
+ if (!!stateElement && !this.getIsModelRendering(stateElement)) {
94
95
  this.isModelSubsribed = true;
95
- stateElement.__ngImplemented = true;
96
- stateElement.iteratePropertiesHash((hash, key) => {
97
- var val = hash[key];
98
- if (Array.isArray(val)) {
99
- var val = val;
100
- stateElement.addOnArrayChangedCallback(val, this.onArrayChangedCallback);
101
- }
102
- });
103
- stateElement.setPropertyValueCoreHandler = (hash, key, val) => {
104
- if (hash[key] !== val) {
105
- hash[key] = val;
106
- this.update(key);
107
- }
108
- };
96
+ stateElement.addOnArrayChangedCallback(this.onArrayChangedCallback);
97
+ stateElement.addOnPropertyValueChangedCallback(this.onPropertyChangedCallback);
109
98
  stateElement.enableOnElementRerenderedEvent();
110
- };
111
- if (!!stateElement) {
112
- if (!stateElement.__ngImplemented) {
113
- this.makeBaseElementAngularCallback();
114
- }
115
- else {
116
- this.getBaseElementCallbacks(stateElement).push(this.makeBaseElementAngularCallback);
117
- }
99
+ stateElement.__ngImplementedCount = ((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) + 1;
118
100
  }
119
101
  }
120
102
  unMakeBaseElementAngular(stateElement) {
121
- if (!!stateElement) {
122
- if (this.isModelSubsribed) {
123
- this.isModelSubsribed = false;
124
- stateElement.__ngImplemented = false;
125
- stateElement.setPropertyValueCoreHandler = undefined;
126
- stateElement.iteratePropertiesHash((hash, key) => {
127
- var val = hash[key];
128
- if (Array.isArray(val)) {
129
- var val = val;
130
- stateElement.removeOnArrayChangedCallback(val, this.onArrayChangedCallback);
131
- }
132
- });
133
- stateElement.disableOnElementRerenderedEvent();
134
- const callbacks = this.getBaseElementCallbacks(stateElement);
135
- const callback = callbacks.shift();
136
- callback && callback();
137
- }
138
- else if (this.makeBaseElementAngularCallback) {
139
- const callbacks = this.getBaseElementCallbacks(stateElement);
140
- const index = callbacks.indexOf(this.makeBaseElementAngularCallback);
141
- if (index > -1) {
142
- callbacks.splice(index, 1);
143
- }
103
+ var _a;
104
+ if (!!stateElement && this.isModelSubsribed) {
105
+ this.isModelSubsribed = false;
106
+ stateElement.removeOnPropertyValueChangedCallback(this.onPropertyChangedCallback);
107
+ stateElement.removeOnArrayChangedCallback(this.onArrayChangedCallback);
108
+ stateElement.disableOnElementRerenderedEvent();
109
+ if (((_a = stateElement.__ngImplementedCount) !== null && _a !== void 0 ? _a : 0) - 1 <= 0) {
110
+ delete stateElement.__ngImplementedCount;
144
111
  }
145
112
  }
146
113
  }
147
114
  update(key) {
148
- if (this.getIsRendering())
115
+ if (this.getIsModelRendering() || this.isUpdatesBlocked)
149
116
  return;
150
- this.beforeUpdate();
151
117
  if (key && this.getPropertiesToUpdateSync().indexOf(key) > -1) {
118
+ this.beforeUpdate();
152
119
  this.detectChanges();
153
120
  this.afterUpdate(true);
154
121
  }
155
122
  else {
123
+ this.isUpdatesBlocked = true;
156
124
  queueMicrotask(() => {
157
125
  if (!this.isDestroyed) {
158
- this.setIsRendering(true);
126
+ this.isUpdatesBlocked = false;
127
+ this.beforeUpdate();
159
128
  this.detectChanges();
160
129
  this.afterUpdate();
161
130
  }
@@ -175,10 +144,10 @@ class BaseAngular extends EmbeddedViewContentComponent {
175
144
  return true;
176
145
  }
177
146
  beforeUpdate() {
178
- this.setIsRendering(true);
147
+ this.setIsModelRendering(true);
179
148
  }
180
149
  afterUpdate(isSync = false) {
181
- this.setIsRendering(false);
150
+ this.setIsModelRendering(false);
182
151
  const model = this.getModel();
183
152
  if (model && !this.isDestroyed) {
184
153
  model.afterRerender();
@@ -186,7 +155,7 @@ class BaseAngular extends EmbeddedViewContentComponent {
186
155
  }
187
156
  ngAfterViewChecked() {
188
157
  super.ngAfterViewChecked();
189
- this.setIsRendering(false);
158
+ this.setIsModelRendering(false);
190
159
  }
191
160
  }
192
161
  BaseAngular.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseAngular, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -1348,7 +1317,7 @@ class QuestionComponent extends EmbeddedViewContentComponent {
1348
1317
  }
1349
1318
  }
1350
1319
  QuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1351
- QuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model", css: "css", survey: "survey" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <sv-breadcrumbs\n *ngIf=\"model.singleInputHasActions\"\n [model]=\"model.singleInputActions\"\n [css]=\"model.cssClasses\"\n ></sv-breadcrumbs>\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"!model.singleInputHideHeader && model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <sv-single-input-summary\n *ngIf=\"!!model.singleInputSummary\"\n [model]=\"model.singleInputSummary\"\n [css]=\"model.cssClasses\"\n ></sv-single-input-summary>\n <sv-ng-element\n *ngIf=\"!model.singleInputSummary && !!singleQuestion\"\n [model]=\"singleQuestion\"\n ></sv-ng-element>\n <ng-template\n *ngIf=\"!model.singleInputSummary && !singleQuestion\"\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\" [attr.aria-hidden]=\"model.contentAriaHidden\" [attr.data-sv-drop-target-matrix-row]=\"model.dragDropMatrixAttribute\" [attr.data-sv-drop-target-matrix]=\"model.dragDropMatrixAttribute\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: ["model", "css"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: ["model", "css"] }, { type: ElementComponent, selector: "sv-ng-element", inputs: ["model"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
1320
+ QuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model", css: "css", survey: "survey" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <sv-breadcrumbs\n *ngIf=\"model.singleInputHasActions\"\n [model]=\"model.singleInputActions\"\n [css]=\"model.cssClasses\"\n ></sv-breadcrumbs>\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <sv-single-input-summary\n *ngIf=\"!!model.singleInputSummary\"\n [model]=\"model.singleInputSummary\"\n [css]=\"model.cssClasses\"\n ></sv-single-input-summary>\n <sv-ng-element\n *ngIf=\"!model.singleInputSummary && !!singleQuestion\"\n [model]=\"singleQuestion\"\n ></sv-ng-element>\n <ng-template\n *ngIf=\"!model.singleInputSummary && !singleQuestion\"\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\" [attr.aria-hidden]=\"model.contentAriaHidden\" [attr.data-sv-drop-target-matrix-row]=\"model.dragDropMatrixAttribute\" [attr.data-sv-drop-target-matrix]=\"model.dragDropMatrixAttribute\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: ["model", "css"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: ["model", "css"] }, { type: ElementComponent, selector: "sv-ng-element", inputs: ["model"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
1352
1321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, decorators: [{
1353
1322
  type: Component,
1354
1323
  args: [{
@@ -3058,7 +3027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3058
3027
  class FileItemComponent extends EmbeddedViewContentComponent {
3059
3028
  }
3060
3029
  FileItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3061
- FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileItemComponent, selector: "sv-ng-file-item", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <span [class]=\"question.cssClasses.previewItem\" (click)=\"question.doDownloadFileFromContainer($event)\">\n <div *ngIf=\"item.name && question.cssClasses.fileSign\" [class]=\"question.cssClasses.fileSign\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n <div [class]=\"question.getImageWrapperCss(item)\">\n <img *ngIf=\"question.canPreviewImage(item)\" [attr.src]=\"item.content | safeUrl\"\n [style.height]=\"question.imageHeight\" [style.width]=\"question.imageWidth\" alt=\"File preview\" />\n <svg *ngIf=\"question.defaultImage(item)\" [iconName]=\"question.cssClasses.defaultImageIconId\"\n [partCss]=\"question.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"item.name && !question.isReadOnly\" [class]=\"question.getRemoveButtonCss()\"\n (click)=\"question.doRemoveFile(item, $event)\">\n <span [class]=\"question.cssClasses.removeFile\">{{ question.removeFileCaption }}</span>\n <svg *ngIf=\"question.cssClasses.removeFileSvgIconId\" [title]=\"question.removeFileCaption\"\n [partCss]=\"question.cssClasses.removeFileSvg\" [iconName]=\"question.cssClasses.removeFileSvgIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <div *ngIf=\"item.name && question.cssClasses.fileSignBottom\" [class]=\"question.cssClasses.fileSignBottom\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n </span>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "safeUrl": SafeUrlPipe } });
3030
+ FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileItemComponent, selector: "sv-ng-file-item", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <span [class]=\"question.cssClasses.previewItem\" (click)=\"question.doDownloadFileFromContainer($event)\">\n <div *ngIf=\"item.name && question.cssClasses.fileSign\" [class]=\"question.cssClasses.fileSign\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" target=\"_blank\" rel=\"noreferrer\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n <div [class]=\"question.getImageWrapperCss(item)\">\n <img *ngIf=\"question.canPreviewImage(item)\" [attr.src]=\"item.content | safeUrl\"\n [style.height]=\"question.imageHeight\" [style.width]=\"question.imageWidth\" alt=\"File preview\" />\n <svg *ngIf=\"question.defaultImage(item)\" [iconName]=\"question.cssClasses.defaultImageIconId\"\n [partCss]=\"question.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"item.name && !question.isReadOnly\" [class]=\"question.getRemoveButtonCss()\"\n (click)=\"question.doRemoveFile(item, $event)\">\n <span [class]=\"question.cssClasses.removeFile\">{{ question.removeFileCaption }}</span>\n <svg *ngIf=\"question.cssClasses.removeFileSvgIconId\" [title]=\"question.removeFileCaption\"\n [partCss]=\"question.cssClasses.removeFileSvg\" [iconName]=\"question.cssClasses.removeFileSvgIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <div *ngIf=\"item.name && question.cssClasses.fileSignBottom\" [class]=\"question.cssClasses.fileSignBottom\">\n <a (click)=\"question.doDownloadFile($event, item)\" [attr.href]=\"item.content | safeUrl\"\n [attr.title]=\"item.name\" [attr.download]=\"item.name\" target=\"_blank\" rel=\"noreferrer\" [style.width]=\"question.imageWidth\">{{\n item.name\n }}</a>\n </div>\n </span>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "safeUrl": SafeUrlPipe } });
3062
3031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileItemComponent, decorators: [{
3063
3032
  type: Component,
3064
3033
  args: [{
@@ -3426,7 +3395,7 @@ class PanelDynamicPrevBtn extends PaneldynamicAction {
3426
3395
  }
3427
3396
  }
3428
3397
  PanelDynamicPrevBtn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PanelDynamicPrevBtn, deps: null, target: i0.ɵɵFactoryTarget.Component });
3429
- PanelDynamicPrevBtn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicPrevBtn, selector: "sv-ng-paneldynamic-prev-btn", usesInheritance: true, ngImport: i0, template: "<div [attr.title]=\"question.panelPrevText\" (click)=\"prevPanelClick()\" [class]=\"question.getPrevButtonCss()\">\n <svg [iconName]=\"question.cssClasses.progressBtnIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n</div>\n", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3398
+ PanelDynamicPrevBtn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicPrevBtn, selector: "sv-ng-paneldynamic-prev-btn", usesInheritance: true, ngImport: i0, template: "<div [attr.title]=\"question.prevPanelText\" (click)=\"prevPanelClick()\" [class]=\"question.getPrevButtonCss()\">\n <svg [iconName]=\"question.cssClasses.progressBtnIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n</div>\n", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3430
3399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PanelDynamicPrevBtn, decorators: [{
3431
3400
  type: Component,
3432
3401
  args: [{