survey-angular-ui 2.3.12 → 2.3.13

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUUsTUFBTSxlQUFlLENBQUM7QUFFNUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBS2pGLE1BQU0sT0FBZ0IsV0FBbUMsU0FBUSw0QkFBNEI7SUFDM0YsWUFBc0IsaUJBQW9DLEVBQUUsZ0JBQW1DO1FBQzdGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFsRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUF5QmxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBYzdCLDJCQUFzQixHQUFHLENBQUMsWUFBa0IsRUFBRSxPQUE2QixFQUFFLEVBQUU7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBL0NGLENBQUM7SUFDRCxJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUtlLFNBQVM7UUFDdkIsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsY0FBYyxLQUFLLENBQUM7SUFFdEIsY0FBYyxDQUFDLEdBQVk7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNMLEtBQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUNPLGNBQWM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQU8sS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRVMsc0JBQXNCLENBQUMsWUFBa0I7UUFDakQsT0FBTyxDQUFDLENBQU8sWUFBYSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBQ08sdUJBQXVCLENBQUMsWUFBa0I7O1FBQzFDLFlBQWEsQ0FBQyxlQUFlLEdBQUcsTUFBTSxZQUFhLENBQUMsZUFBZSxtQ0FBSSxFQUFFLENBQUM7UUFDaEYsT0FBTyxDQUFPLFlBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBSU8sc0JBQXNCLENBQUMsWUFBZTtRQUM1QyxJQUFJLENBQUMsOEJBQThCLEdBQUcsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDdkIsWUFBYSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDM0MsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLEdBQUcsR0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdEIsSUFBSSxHQUFHLEdBQVEsR0FBRyxDQUFDO29CQUNuQixZQUFZLENBQUMseUJBQXlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUMxRTtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxDQUFDLDJCQUEyQixHQUFHLENBQ3pDLElBQVMsRUFDVCxHQUFXLEVBQ1gsR0FBUSxFQUNSLEVBQUU7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFO29CQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNsQjtZQUNILENBQUMsQ0FBQztZQUNGLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUNsQixJQUFJLENBQU8sWUFBYSxDQUFDLGVBQWUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQzthQUN0RjtTQUNGO0lBQ0gsQ0FBQztJQUNPLHdCQUF3QixDQUFDLFlBQW1CO1FBQ2xELElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztnQkFDeEIsWUFBYSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzVDLFlBQVksQ0FBQywyQkFBMkIsR0FBUSxTQUFTLENBQUM7Z0JBQzFELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDL0MsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3RCLElBQUksR0FBRyxHQUFRLEdBQUcsQ0FBQzt3QkFDbkIsWUFBWSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztxQkFDN0U7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsWUFBWSxDQUFDLCtCQUErQixFQUFFLENBQUM7Z0JBQy9DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7YUFDeEI7aUJBQU0sSUFBSSxJQUFJLENBQUMsOEJBQThCLEVBQUU7Z0JBQzlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQztnQkFDckUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzVCO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFUyxNQUFNLENBQUMsR0FBWTtRQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7YUFBTTtZQUNMLGNBQWMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUNPLG9CQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RSxDQUFDO0lBQ1MseUJBQXlCO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNTLGFBQWE7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVTLCtCQUErQjtRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNTLFdBQVcsQ0FBQyxTQUFrQixLQUFLO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM5QixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBQ1Esa0JBQWtCO1FBQ3pCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7eUdBeEptQixXQUFXOzZGQUFYLFdBQVcsMkVBRnJCLEVBQUU7NEZBRVEsV0FBVztrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2UsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXJyYXlDaGFuZ2VzLCBCYXNlLCBJT25BcnJheUNoYW5nZWRFdmVudCwgSVN1cnZleSwgU3VydmV5TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9lbWJlZGRlZC12aWV3LWNvbnRlbnQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogXCJcIlxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQW5ndWxhcjxUIGV4dGVuZHMgQmFzZSA9IEJhc2U+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=
@@ -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=
@@ -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 });
@@ -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: [{