igniteui-angular 14.2.30 → 14.2.31

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.
@@ -24,9 +24,9 @@ export class IgxGridValidationService {
24
24
  const value = resolveNestedPath(data || {}, col.field);
25
25
  const field = this.getFieldKey(col.field);
26
26
  const control = new FormControl(value, { updateOn: this.grid.validationTrigger });
27
- control.setValue(value);
28
27
  control.addValidators(col.validators);
29
28
  formGroup.addControl(field, control);
29
+ control.setValue(value);
30
30
  }
31
31
  const args = {
32
32
  formGroup,
@@ -115,12 +115,28 @@ export class IgxGridValidationService {
115
115
  for (const key of keys) {
116
116
  const colKey = this.getFieldKey(key);
117
117
  const control = rowGroup?.get(colKey);
118
- if (control) {
118
+ if (control && control.value !== rowData[key]) {
119
119
  control.setValue(rowData[key], { emitEvent: false });
120
120
  }
121
121
  }
122
122
  this.updateStatus();
123
123
  }
124
+ /**
125
+ * @hidden
126
+ * @internal
127
+ * Update validity based on new data.
128
+ */
129
+ updateAll(newData) {
130
+ if (!newData || this._validityStates.size === 0)
131
+ return;
132
+ for (const rec of newData) {
133
+ const rowId = rec[this.grid.primaryKey] || rec;
134
+ if (this.getFormGroup(rowId)) {
135
+ const recAggregatedData = this.grid.transactions.getAggregatedValue(rowId, true) || rec;
136
+ this.update(rowId, recAggregatedData);
137
+ }
138
+ }
139
+ }
124
140
  /** Marks the associated record or field as touched.
125
141
  * @param key The id of the record that will be marked as touched.
126
142
  * @param field Optional. The field from the record that will be marked as touched. If not provided all fields will be touched.
@@ -165,4 +181,4 @@ IgxGridValidationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
165
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxGridValidationService, decorators: [{
166
182
  type: Injectable
167
183
  }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSXJELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFPWSxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzVDLFdBQU0sR0FBRyxJQUFJLENBQUM7S0FxS3pCO0lBbEtHO01BQ0U7SUFDRixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcs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QUUsQ0FBQztJQUN4QixDQUFDOztxSEExS1Esd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElGaWVsZFZhbGlkYXRpb25TdGF0ZSwgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzLCBJUmVjb3JkVmFsaWRhdGlvblN0YXRlLCBWYWxpZGF0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBncmlkOiBHcmlkVHlwZTtcbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8YW55LCBGb3JtR3JvdXA+KCk7XG4gICAgcHJpdmF0ZSBfdmFsaWQgPSB0cnVlO1xuXG5cbiAgICAvKiogR2V0cyB3aGV0aGVyIHN0YXRlIGlzIHZhbGlkLlxuICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZCgpIDogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShyb3dJZCwgZGF0YSkge1xuICAgICAgICBsZXQgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBpZiAoIWZvcm1Hcm91cCkge1xuICAgICAgICAgICAgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgoZGF0YSB8fCB7fSwgY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRLZXkoY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKHZhbHVlLCB7IHVwZGF0ZU9uOiB0aGlzLmdyaWQudmFsaWRhdGlvblRyaWdnZXIgfSk7XG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udHJvbC5hZGRWYWxpZGF0b3JzKGNvbC52YWxpZGF0b3JzKTtcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZCwgY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhcmdzOiBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgIG93bmVyOiB0aGlzLmdyaWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmdyaWQuZm9ybUdyb3VwQ3JlYXRlZC5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5hZGQocm93SWQsIGZvcm1Hcm91cCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXNldCB0byBwcmlzdGluZS5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIHRoaXMuZ3JpZC5jb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRGaWVsZEtleShwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoPy5zcGxpdCgnLicpID8/IFtdO1xuICAgICAgICByZXR1cm4gcGFydHMuam9pbignXycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Rm9ybUdyb3VwKGlkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldChpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGb3JtQ29udHJvbChyb3dJZDogYW55LCBjb2x1bW5LZXk6IHN0cmluZykge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2V0Rm9ybUdyb3VwKHJvd0lkKTtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkS2V5KGNvbHVtbktleSk7XG4gICAgICAgIHJldHVybiBmb3JtQ29udHJvbD8uZ2V0KGZpZWxkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFkZChyb3dJZDogYW55LCBmb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KHJvd0lkLCBmb3JtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGl0eSgpOiBJUmVjb3JkVmFsaWRhdGlvblN0YXRlW10ge1xuICAgICAgICBjb25zdCBzdGF0ZXM6IElSZWNvcmRWYWxpZGF0aW9uU3RhdGVbXSA9IFtdO1xuICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5mb3JFYWNoKChmb3JtR3JvdXAsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IElGaWVsZFZhbGlkYXRpb25TdGF0ZVtdID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbEtleSA9IHRoaXMuZ2V0RmllbGRLZXkoY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb2xLZXkpO1xuICAgICAgICAgICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLnB1c2goeyBmaWVsZDogY29sS2V5LCBzdGF0dXM6IGNvbnRyb2wuc3RhdHVzIGFzIFZhbGlkYXRpb25TdGF0dXMsIGVycm9yczogY29udHJvbC5lcnJvcnMgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZXMucHVzaCh7IGtleToga2V5LCBzdGF0dXM6IGZvcm1Hcm91cC5zdGF0dXMgYXMgVmFsaWRhdGlvblN0YXR1cywgZmllbGRzOiBzdGF0ZSwgZXJyb3JzOiBmb3JtR3JvdXAuZXJyb3JzIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHN0YXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBpbnZhbGlkIHJlY29yZCBzdGF0ZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldEludmFsaWQoKTogSVJlY29yZFZhbGlkYXRpb25TdGF0ZVtdIHtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLmdldFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiB2YWxpZGl0eS5maWx0ZXIoeCA9PiB4LnN0YXR1cyA9PT0gJ0lOVkFMSUQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShyb3dJZDogYW55LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgaWYgKCFyb3dEYXRhKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyb3dEYXRhKTtcbiAgICAgICAgY29uc3Qgcm93R3JvdXAgPSB0aGlzLmdldEZvcm1Hcm91cChyb3dJZCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbEtleSA9IHRoaXMuZ2V0RmllbGRLZXkoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSByb3dHcm91cD8uZ2V0KGNvbEtleSk7XG4gICAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocm93RGF0YVtrZXldLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgIH1cblxuICAgIC8qKiBNYXJrcyB0aGUgYXNzb2NpYXRlZCByZWNvcmQgb3IgZmllbGQgYXMgdG91Y2hlZC5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBpZCBvZiB0aGUgcmVjb3JkIHRoYXQgd2lsbCBiZSBtYXJrZWQgYXMgdG91Y2hlZC5cbiAgICAgKiBAcGFyYW0gZmllbGQgT3B0aW9uYWwuIFRoZSBmaWVsZCBmcm9tIHRoZSByZWNvcmQgdGhhdCB3aWxsIGJlIG1hcmtlZCBhcyB0b3VjaGVkLiBJZiBub3QgcHJvdmlkZWQgYWxsIGZpZWxkcyB3aWxsIGJlIHRvdWNoZWQuXG4gICAgKi9cbiAgICBwdWJsaWMgbWFya0FzVG91Y2hlZChrZXk6IGFueSwgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgcm93R3JvdXAgPSB0aGlzLmdldEZvcm1Hcm91cChrZXkpO1xuICAgICAgICBpZiAoIXJvd0dyb3VwKSByZXR1cm47XG4gICAgICAgIHJvd0dyb3VwLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gZmllbGQgPyBbZmllbGRdIDogdGhpcy5ncmlkLmNvbHVtbnMubWFwKHggPT4geC5maWVsZCk7XG4gICAgICAgIGZvciAoY29uc3QgY3VyckZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgY29uc3QgY29sS2V5ID0gdGhpcy5nZXRGaWVsZEtleShjdXJyRmllbGQpO1xuICAgICAgICAgICAgcm93R3JvdXA/LmdldChjb2xLZXkpPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVTdGF0dXMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWxpZCA9IHRoaXMudmFsaWQ7XG4gICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5nZXRJbnZhbGlkKCkubGVuZ3RoID09PSAwO1xuICAgICAgICBpZiAodGhpcy52YWxpZCAhPT0gY3VycmVudFZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQudmFsaWRhdGlvblN0YXR1c0NoYW5nZS5lbWl0KHsgc3RhdHVzOiB0aGlzLnZhbGlkID8gJ1ZBTElEJyA6ICdJTlZBTElEJywgb3duZXI6IHRoaXMuZ3JpZCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDbGVhcnMgdmFsaWRhdGlvbiBzdGF0ZSBieSBrZXkgb3IgYWxsIHN0YXRlcyBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSBrZXkgT3B0aW9uYWwuIFRoZSBrZXkgb2YgdGhlIHJlY29yZCBmb3Igd2hpY2ggdG8gY2xlYXIgc3RhdGUuXG4gICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoa2V5PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuZGVsZXRlKGtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgfVxuXG59XG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSXJELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFPWSxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzVDLFdBQU0sR0FBRyxJQUFJLENBQUM7S0FxTHpCO0lBbExHO01BQ0U7SUFDRixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcs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O1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDekc7SUFDTCxDQUFDO0lBRUQ7O01BRUU7SUFDSyxLQUFLLENBQUMsR0FBUztRQUNsQixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7cUhBMUxRLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcmVzb2x2ZU5lc3RlZFBhdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEdyaWRUeXBlLCBJRmllbGRWYWxpZGF0aW9uU3RhdGUsIElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncywgSVJlY29yZFZhbGlkYXRpb25TdGF0ZSwgVmFsaWRhdGlvblN0YXR1cyB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ3JpZDogR3JpZFR5cGU7XG4gICAgcHJpdmF0ZSBfdmFsaWRpdHlTdGF0ZXMgPSBuZXcgTWFwPGFueSwgRm9ybUdyb3VwPigpO1xuICAgIHByaXZhdGUgX3ZhbGlkID0gdHJ1ZTtcblxuXG4gICAgLyoqIEdldHMgd2hldGhlciBzdGF0ZSBpcyB2YWxpZC5cbiAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWQoKSA6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUocm93SWQsIGRhdGEpIHtcbiAgICAgICAgbGV0IGZvcm1Hcm91cCA9IHRoaXMuZ2V0Rm9ybUdyb3VwKHJvd0lkKTtcbiAgICAgICAgaWYgKCFmb3JtR3JvdXApIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgdGhpcy5ncmlkLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVOZXN0ZWRQYXRoKGRhdGEgfHwge30sIGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkS2V5KGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh2YWx1ZSwgeyB1cGRhdGVPbjogdGhpcy5ncmlkLnZhbGlkYXRpb25UcmlnZ2VyIH0pO1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyhjb2wudmFsaWRhdG9ycyk7XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woZmllbGQsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXJnczogSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIGZvcm1Hcm91cCxcbiAgICAgICAgICAgICAgICBvd25lcjogdGhpcy5ncmlkXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5ncmlkLmZvcm1Hcm91cENyZWF0ZWQuZW1pdChhcmdzKTtcbiAgICAgICAgICAgIHRoaXMuYWRkKHJvd0lkLCBmb3JtR3JvdXApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcmVzZXQgdG8gcHJpc3RpbmUuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gZm9ybUdyb3VwLmdldChjb2wuZmllbGQpO1xuICAgICAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RmllbGRLZXkocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aD8uc3BsaXQoJy4nKSA/PyBbXTtcbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJ18nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldEZvcm1Hcm91cChpZDogYW55KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Rm9ybUNvbnRyb2wocm93SWQ6IGFueSwgY29sdW1uS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmdldEZvcm1Hcm91cChyb3dJZCk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZEtleShjb2x1bW5LZXkpO1xuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2w/LmdldChmaWVsZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGQocm93SWQ6IGFueSwgZm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLnNldChyb3dJZCwgZm9ybSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VmFsaWRpdHkoKTogSVJlY29yZFZhbGlkYXRpb25TdGF0ZVtdIHtcbiAgICAgICAgY29uc3Qgc3RhdGVzOiBJUmVjb3JkVmFsaWRhdGlvblN0YXRlW10gPSBbXTtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuZm9yRWFjaCgoZm9ybUdyb3VwLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgdGhpcy5ncmlkLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xLZXkgPSB0aGlzLmdldEZpZWxkS2V5KGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29sS2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5wdXNoKHsgZmllbGQ6IGNvbEtleSwgc3RhdHVzOiBjb250cm9sLnN0YXR1cyBhcyBWYWxpZGF0aW9uU3RhdHVzLCBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhdGVzLnB1c2goeyBrZXk6IGtleSwgc3RhdHVzOiBmb3JtR3JvdXAuc3RhdHVzIGFzIFZhbGlkYXRpb25TdGF0dXMsIGZpZWxkczogc3RhdGUsIGVycm9yczogZm9ybUdyb3VwLmVycm9ycyB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdGF0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgaW52YWxpZCByZWNvcmQgc3RhdGVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbnZhbGlkKCk6IElSZWNvcmRWYWxpZGF0aW9uU3RhdGVbXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID0gdGhpcy5nZXRWYWxpZGl0eSgpO1xuICAgICAgICByZXR1cm4gdmFsaWRpdHkuZmlsdGVyKHggPT4geC5zdGF0dXMgPT09ICdJTlZBTElEJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUocm93SWQ6IGFueSwgcm93RGF0YTogYW55KSB7XG4gICAgICAgIGlmICghcm93RGF0YSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocm93RGF0YSk7XG4gICAgICAgIGNvbnN0IHJvd0dyb3VwID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xLZXkgPSB0aGlzLmdldEZpZWxkS2V5KGtleSk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gcm93R3JvdXA/LmdldChjb2xLZXkpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAhPT0gcm93RGF0YVtrZXldKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShyb3dEYXRhW2tleV0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIFVwZGF0ZSB2YWxpZGl0eSBiYXNlZCBvbiBuZXcgZGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlQWxsKG5ld0RhdGE6IGFueSkge1xuICAgICAgICBpZiAoIW5ld0RhdGEgfHwgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2l6ZSA9PT0gMCkgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IHJlYyBvZiBuZXdEYXRhKSB7XG4gICAgICAgICAgICBjb25zdCByb3dJZCA9IHJlY1t0aGlzLmdyaWQucHJpbWFyeUtleV0gfHwgcmVjO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Rm9ybUdyb3VwKHJvd0lkKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY0FnZ3JlZ2F0ZWREYXRhID0gdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5nZXRBZ2dyZWdhdGVkVmFsdWUocm93SWQsIHRydWUpIHx8IHJlYztcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZShyb3dJZCwgcmVjQWdncmVnYXRlZERhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1hcmtzIHRoZSBhc3NvY2lhdGVkIHJlY29yZCBvciBmaWVsZCBhcyB0b3VjaGVkLlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGlkIG9mIHRoZSByZWNvcmQgdGhhdCB3aWxsIGJlIG1hcmtlZCBhcyB0b3VjaGVkLlxuICAgICAqIEBwYXJhbSBmaWVsZCBPcHRpb25hbC4gVGhlIGZpZWxkIGZyb20gdGhlIHJlY29yZCB0aGF0IHdpbGwgYmUgbWFya2VkIGFzIHRvdWNoZWQuIElmIG5vdCBwcm92aWRlZCBhbGwgZmllbGRzIHdpbGwgYmUgdG91Y2hlZC5cbiAgICAqL1xuICAgIHB1YmxpYyBtYXJrQXNUb3VjaGVkKGtleTogYW55LCBmaWVsZD86IHN0cmluZykge1xuICAgICAgICBjb25zdCByb3dHcm91cCA9IHRoaXMuZ2V0Rm9ybUdyb3VwKGtleSk7XG4gICAgICAgIGlmICghcm93R3JvdXApIHJldHVybjtcbiAgICAgICAgcm93R3JvdXAubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBmaWVsZCA/IFtmaWVsZF0gOiB0aGlzLmdyaWQuY29sdW1ucy5tYXAoeCA9PiB4LmZpZWxkKTtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyRmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xLZXkgPSB0aGlzLmdldEZpZWxkS2V5KGN1cnJGaWVsZCk7XG4gICAgICAgICAgICByb3dHcm91cD8uZ2V0KGNvbEtleSk/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXR1cygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbGlkID0gdGhpcy52YWxpZDtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLmdldEludmFsaWQoKS5sZW5ndGggPT09IDA7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkICE9PSBjdXJyZW50VmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC52YWxpZGF0aW9uU3RhdHVzQ2hhbmdlLmVtaXQoeyBzdGF0dXM6IHRoaXMudmFsaWQgPyAnVkFMSUQnIDogJ0lOVkFMSUQnLCBvd25lcjogdGhpcy5ncmlkIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENsZWFycyB2YWxpZGF0aW9uIHN0YXRlIGJ5IGtleSBvciBhbGwgc3RhdGVzIGlmIG5vbmUgaXMgcHJvdmlkZWQuXG4gICAgICogQHBhcmFtIGtleSBPcHRpb25hbC4gVGhlIGtleSBvZiB0aGUgcmVjb3JkIGZvciB3aGljaCB0byBjbGVhciBzdGF0ZS5cbiAgICAqL1xuICAgIHB1YmxpYyBjbGVhcihrZXk/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5kZWxldGUoa2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoKTtcbiAgICB9XG5cbn1cbiJdfQ==