kwikid-forms 0.6.40 → 0.6.42

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.
@@ -7,12 +7,12 @@ import { FormValidation } from "./helpers/form-view.form-validations.helper";
7
7
  export class KwikIDFormViewService {
8
8
  constructor() { }
9
9
  // 'init' stage of the form
10
- createFormGroup(fields, formData, previousFormData, allFormsData, takeAction) {
10
+ createFormGroup(fields, formData, previousFormData, allFormsData, extraData, takeAction) {
11
11
  return __awaiter(this, void 0, void 0, function* () {
12
12
  let formGroup = new FormGroup({});
13
13
  for (let field of fields) {
14
14
  if (field.isFormElement) {
15
- const defaults = new Defaults(field, fields, allFormsData, formData, previousFormData, takeAction);
15
+ const defaults = new Defaults(field, fields, allFormsData, formData, previousFormData, extraData, takeAction);
16
16
  let value = "";
17
17
  if (checkObjectKeyExists(field, "default")) {
18
18
  if (checkObjectKeyExists(field.default, "value")) {
@@ -43,4 +43,4 @@ export class KwikIDFormViewService {
43
43
  __decorate([
44
44
  logMethod
45
45
  ], KwikIDFormViewService.prototype, "createFormGroup", null);
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUVoQiwyQkFBMkI7SUFFckIsZUFBZSxDQUNuQixNQUFXLEVBQ1gsUUFBYSxFQUNiLGdCQUFxQixFQUNyQixZQUFpQixFQUNqQixVQUFvQjs7WUFFcEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEMsS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtvQkFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsVUFBVSxDQUNYLENBQUM7b0JBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNmLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO3dCQUMxQyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7NEJBQ2hELEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO3lCQUM1QztxQkFDRjtvQkFFRCxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDMUMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFOzRCQUM5QyxNQUFNLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO3lCQUN2QztxQkFDRjtvQkFFRCxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDMUMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFOzRCQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0NBQ3RELE1BQU0sUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7NkJBQ3RDO3lCQUNGO3FCQUNGO29CQUVELEtBQUssR0FBRyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBRTFELE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRXRFLFNBQVMsQ0FBQyxVQUFVLENBQ2xCLEtBQUssQ0FBQyxHQUFHLEVBQ1QsSUFBSSxXQUFXLENBQ2IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQzFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUMzQixDQUNGLENBQUM7aUJBQ0g7YUFDRjtZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7S0FBQTtDQUNGO0FBeERDO0lBREMsU0FBUzs0REF3RFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgZ2V0T2JqZWN0RGVlcENvcHksXG4gIGxvZ01ldGhvZFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IERlZmF1bHRzIH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZGVmYXVsdHMuaGVscGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0Rm9ybUZpZWxkVmFsdWVUb0t3aWtVSUZvcm1hdCB9IGZyb20gXCIuL2hlbHBlcnMvZm9ybS12aWV3LmZpZWxkcy5oZWxwZXJcIjtcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uIH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZm9ybS12YWxpZGF0aW9ucy5oZWxwZXJcIjtcbmltcG9ydCB7IEVGaWVsZFR5cGUgfSBmcm9tIFwiLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyAnaW5pdCcgc3RhZ2Ugb2YgdGhlIGZvcm1cbiAgQGxvZ01ldGhvZFxuICBhc3luYyBjcmVhdGVGb3JtR3JvdXAoXG4gICAgZmllbGRzOiBhbnksXG4gICAgZm9ybURhdGE6IGFueSxcbiAgICBwcmV2aW91c0Zvcm1EYXRhOiBhbnksXG4gICAgYWxsRm9ybXNEYXRhOiBhbnksXG4gICAgdGFrZUFjdGlvbjogRnVuY3Rpb25cbiAgKSB7XG4gICAgbGV0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBjb25zdCBkZWZhdWx0cyA9IG5ldyBEZWZhdWx0cyhcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgYWxsRm9ybXNEYXRhLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICAgIHByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgICAgdGFrZUFjdGlvblxuICAgICAgICApO1xuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5kZWZhdWx0LCBcInZhbHVlXCIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJhcGlcIikpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZEFwaVZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJvcHRpb25zXCIpKSB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZGVmYXVsdC5vcHRpb25zLnRyaWdnZXJzLmluY2x1ZGVzKFwiT05fSU5JVFwiKSkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWZhdWx0cy5nZXRGb3JtRmllbGRPcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVmFsdWVUb0t3aWtVSUZvcm1hdChmaWVsZCwgdmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBuZXcgRm9ybVZhbGlkYXRpb24oKS5nZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkKTtcblxuICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICBmaWVsZC5rZXksXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogdmFsdWUsIGRpc2FibGVkOiBmaWVsZC5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Hcm91cDtcbiAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUVoQiwyQkFBMkI7SUFFckIsZUFBZSxDQUNuQixNQUFXLEVBQ1gsUUFBYSxFQUNiLGdCQUFxQixFQUNyQixZQUFpQixFQUNqQixTQUFjLEVBQ2QsVUFBb0I7O1lBRXBCLElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUN4QixJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7b0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUMzQixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLENBQ1gsQ0FBQztvQkFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQzFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRTs0QkFDaEQsS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7eUJBQzVDO3FCQUNGO29CQUVELElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO3dCQUMxQyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7NEJBQzlDLE1BQU0sUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7eUJBQ3ZDO3FCQUNGO29CQUVELElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO3dCQUMxQyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUU7NEJBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQ0FDdEQsTUFBTSxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzs2QkFDdEM7eUJBQ0Y7cUJBQ0Y7b0JBRUQsS0FBSyxHQUFHLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFdEUsU0FBUyxDQUFDLFVBQVUsQ0FDbEIsS0FBSyxDQUFDLEdBQUcsRUFDVCxJQUFJLFdBQVcsQ0FDYixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFDMUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQzNCLENBQ0YsQ0FBQztpQkFDSDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztLQUFBO0NBQ0Y7QUExREM7SUFEQyxTQUFTOzREQTBEVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBnZXRPYmplY3REZWVwQ29weSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRGVmYXVsdHMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvS3dpa1VJRm9ybWF0IH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb24gfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5mb3JtLXZhbGlkYXRpb25zLmhlbHBlclwiO1xuaW1wb3J0IHsgRUZpZWxkVHlwZSB9IGZyb20gXCIuL2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgS3dpa0lERm9ybVZpZXdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8vICdpbml0JyBzdGFnZSBvZiB0aGUgZm9ybVxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGNyZWF0ZUZvcm1Hcm91cChcbiAgICBmaWVsZHM6IGFueSxcbiAgICBmb3JtRGF0YTogYW55LFxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcbiAgICBhbGxGb3Jtc0RhdGE6IGFueSxcbiAgICBleHRyYURhdGE6IGFueSxcbiAgICB0YWtlQWN0aW9uOiBGdW5jdGlvblxuICApIHtcbiAgICBsZXQgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gbmV3IERlZmF1bHRzKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICBhbGxGb3Jtc0RhdGEsXG4gICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICAgcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICBleHRyYURhdGEsXG4gICAgICAgICAgdGFrZUFjdGlvblxuICAgICAgICApO1xuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5kZWZhdWx0LCBcInZhbHVlXCIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJhcGlcIikpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZEFwaVZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJvcHRpb25zXCIpKSB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZGVmYXVsdC5vcHRpb25zLnRyaWdnZXJzLmluY2x1ZGVzKFwiT05fSU5JVFwiKSkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWZhdWx0cy5nZXRGb3JtRmllbGRPcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVmFsdWVUb0t3aWtVSUZvcm1hdChmaWVsZCwgdmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBuZXcgRm9ybVZhbGlkYXRpb24oKS5nZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkKTtcblxuICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICBmaWVsZC5rZXksXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgeyB2YWx1ZTogdmFsdWUsIGRpc2FibGVkOiBmaWVsZC5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Hcm91cDtcbiAgfVxufVxuIl19
@@ -1,13 +1,14 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
2
  import { checkObjectKeyExists, logMethod, Source } from "kwikid-toolkit";
3
3
  export class CameraHelper {
4
- constructor(field, formFields, allFormsData, formData, previousFormData) {
4
+ constructor(field, formFields, allFormsData, formData, previousFormData, extraData) {
5
5
  this.cameraData = {};
6
6
  this._field = field;
7
7
  this._formFields = formFields;
8
8
  this._allFormsData = allFormsData;
9
9
  this._formData = formData;
10
10
  this._previousFormData = previousFormData;
11
+ this._extraData = extraData;
11
12
  }
12
13
  getCameraWatermarkData() {
13
14
  return __awaiter(this, void 0, void 0, function* () {
@@ -18,7 +19,8 @@ export class CameraHelper {
18
19
  FORM_FIELDS: this._formFields,
19
20
  FORM_DATA: this._formData,
20
21
  PREVIOUS_FORM_DATA: this._previousFormData,
21
- ALL_FORMS_DATA: this._allFormsData
22
+ ALL_FORMS_DATA: this._allFormsData,
23
+ EXTRA_DATA: this._extraData
22
24
  });
23
25
  const value = yield sources.getValueFromSource(source);
24
26
  if (checkObjectKeyExists(source, "id")) {
@@ -32,4 +34,4 @@ export class CameraHelper {
32
34
  __decorate([
33
35
  logMethod
34
36
  ], CameraHelper.prototype, "getCameraWatermarkData", null);
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmNhbWVyYS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuY2FtZXJhLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU16RSxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUNFLEtBQW9CLEVBQ3BCLFVBQWlCLEVBQ2pCLFlBQWlCLEVBQ2pCLFFBQWEsRUFDYixnQkFBcUI7UUFQZixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBUzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUM1QyxDQUFDO0lBR0ssc0JBQXNCOztZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBRS9ELEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQztvQkFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtvQkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO2lCQUNuQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRXZELElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQ3BDO2FBQ0Y7WUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQztLQUFBO0NBQ0Y7QUFwQkM7SUFEQyxTQUFTOzBEQW9CVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrT2JqZWN0S2V5RXhpc3RzLCBsb2dNZXRob2QsIFNvdXJjZSB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHtcbiAgVEZpZWxkLFxuICBURmllbGRDYXB0dXJlXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIENhbWVyYUhlbHBlciB7XG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xuICBwcml2YXRlIF9maWVsZDogVEZpZWxkO1xuICBwcml2YXRlIF9mb3JtRmllbGRzOiBhbnlbXTtcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtRGF0YTogYW55O1xuICBwcml2YXRlIGNhbWVyYURhdGE6IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZpZWxkOiBURmllbGRDYXB0dXJlLFxuICAgIGZvcm1GaWVsZHM6IGFueVtdLFxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxuICAgIGZvcm1EYXRhOiBhbnksXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55XG4gICkge1xuICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy5fZm9ybUZpZWxkcyA9IGZvcm1GaWVsZHM7XG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gZm9ybURhdGE7XG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHByZXZpb3VzRm9ybURhdGE7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGdldENhbWVyYVdhdGVybWFya0RhdGEoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzb3VyY2VzID0gdGhpcy5fZmllbGQucHJvcGVydGllc1tcIndhdGVybWFya0RhdGFTb3VyY2VzXCJdO1xuXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlKHtcbiAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxuICAgICAgfSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHNvdXJjZXMuZ2V0VmFsdWVGcm9tU291cmNlKHNvdXJjZSk7XG5cbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhzb3VyY2UsIFwiaWRcIikpIHtcbiAgICAgICAgdGhpcy5jYW1lcmFEYXRhW3NvdXJjZS5pZF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYW1lcmFEYXRhO1xuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmNhbWVyYS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuY2FtZXJhLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU16RSxNQUFNLE9BQU8sWUFBWTtJQVN2QixZQUNFLEtBQW9CLEVBQ3BCLFVBQWlCLEVBQ2pCLFlBQWlCLEVBQ2pCLFFBQWEsRUFDYixnQkFBcUIsRUFDckIsU0FBYztRQVJSLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFVM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFHSyxzQkFBc0I7O1lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFFL0QsS0FBSyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDO29CQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO29CQUMxQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUV2RCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQzthQUNGO1lBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7S0FBQTtDQUNGO0FBckJDO0lBREMsU0FBUzswREFxQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaGVja09iamVjdEtleUV4aXN0cywgbG9nTWV0aG9kLCBTb3VyY2UgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7XG4gIFRGaWVsZCxcbiAgVEZpZWxkQ2FwdHVyZVxufSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBDYW1lcmFIZWxwZXIge1xuICBwcml2YXRlIF9hbGxGb3Jtc0RhdGE6IGFueTtcbiAgcHJpdmF0ZSBfZmllbGQ6IFRGaWVsZDtcbiAgcHJpdmF0ZSBfZm9ybUZpZWxkczogYW55W107XG4gIHByaXZhdGUgX2Zvcm1EYXRhOiBhbnk7XG4gIHByaXZhdGUgX3ByZXZpb3VzRm9ybURhdGE6IGFueTtcbiAgcHJpdmF0ZSBfZXh0cmFEYXRhOiBhbnk7XG4gIHByaXZhdGUgY2FtZXJhRGF0YTogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZmllbGQ6IFRGaWVsZENhcHR1cmUsXG4gICAgZm9ybUZpZWxkczogYW55W10sXG4gICAgYWxsRm9ybXNEYXRhOiBhbnksXG4gICAgZm9ybURhdGE6IGFueSxcbiAgICBwcmV2aW91c0Zvcm1EYXRhOiBhbnksXG4gICAgZXh0cmFEYXRhOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5fZmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLl9mb3JtRmllbGRzID0gZm9ybUZpZWxkcztcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhID0gcHJldmlvdXNGb3JtRGF0YTtcbiAgICB0aGlzLl9leHRyYURhdGEgPSBleHRyYURhdGE7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGdldENhbWVyYVdhdGVybWFya0RhdGEoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzb3VyY2VzID0gdGhpcy5fZmllbGQucHJvcGVydGllc1tcIndhdGVybWFya0RhdGFTb3VyY2VzXCJdO1xuXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlKHtcbiAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YSxcbiAgICAgICAgRVhUUkFfREFUQTogdGhpcy5fZXh0cmFEYXRhXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgc291cmNlcy5nZXRWYWx1ZUZyb21Tb3VyY2Uoc291cmNlKTtcblxuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKHNvdXJjZSwgXCJpZFwiKSkge1xuICAgICAgICB0aGlzLmNhbWVyYURhdGFbc291cmNlLmlkXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhbWVyYURhdGE7XG4gIH1cbn1cbiJdfQ==
@@ -2,12 +2,13 @@ import { __awaiter, __decorate } from "tslib";
2
2
  import { Action, Condition, isEmptyValue, logMethod, Rule, setValueToObjectPath, Source } from "kwikid-toolkit";
3
3
  import { convertFormFieldEmptyValueToKwikUIFormat } from "./form-view.fields.helper";
4
4
  export class Defaults {
5
- constructor(field, formFields, allFormsData, formData, previousFormData, takeAction) {
5
+ constructor(field, formFields, allFormsData, formData, previousFormData, extraData, takeAction) {
6
6
  this._field = field;
7
7
  this._formFields = formFields;
8
8
  this._allFormsData = allFormsData;
9
9
  this._formData = formData;
10
10
  this._previousFormData = previousFormData;
11
+ this._extraData = extraData;
11
12
  this._takeAction = takeAction;
12
13
  }
13
14
  getFormFieldValue() {
@@ -21,7 +22,8 @@ export class Defaults {
21
22
  FORM_FIELDS: this._formFields,
22
23
  FORM_DATA: this._formData,
23
24
  PREVIOUS_FORM_DATA: this._previousFormData,
24
- ALL_FORMS_DATA: this._allFormsData
25
+ ALL_FORMS_DATA: this._allFormsData,
26
+ EXTRA_DATA: this._extraData
25
27
  });
26
28
  const value = sources.getValueFromSource(source);
27
29
  // Set the Value of current source.
@@ -35,7 +37,8 @@ export class Defaults {
35
37
  FORM_FIELDS: this._formFields,
36
38
  FORM_DATA: this._formData,
37
39
  PREVIOUS_FORM_DATA: this._previousFormData,
38
- ALL_FORMS_DATA: this._allFormsData
40
+ ALL_FORMS_DATA: this._allFormsData,
41
+ EXTRA_DATA: this._extraData
39
42
  }).mapping();
40
43
  for (let action of actions) {
41
44
  const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
@@ -45,7 +48,8 @@ export class Defaults {
45
48
  FORM_FIELDS: this._formFields,
46
49
  FORM_DATA: this._formData,
47
50
  PREVIOUS_FORM_DATA: this._previousFormData,
48
- ALL_FORMS_DATA: this._allFormsData
51
+ ALL_FORMS_DATA: this._allFormsData,
52
+ EXTRA_DATA: this._extraData
49
53
  }, this._takeAction);
50
54
  yield actions.execute();
51
55
  }
@@ -69,7 +73,8 @@ export class Defaults {
69
73
  FORM_FIELDS: this._formFields,
70
74
  FORM_DATA: this._formData,
71
75
  PREVIOUS_FORM_DATA: this._previousFormData,
72
- ALL_FORMS_DATA: this._allFormsData
76
+ ALL_FORMS_DATA: this._allFormsData,
77
+ EXTRA_DATA: this._extraData
73
78
  }).mapping();
74
79
  for (let action of actions) {
75
80
  const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
@@ -79,7 +84,8 @@ export class Defaults {
79
84
  FORM_FIELDS: this._formFields,
80
85
  FORM_DATA: this._formData,
81
86
  PREVIOUS_FORM_DATA: this._previousFormData,
82
- ALL_FORMS_DATA: this._allFormsData
87
+ ALL_FORMS_DATA: this._allFormsData,
88
+ EXTRA_DATA: this._extraData
83
89
  }, this._takeAction);
84
90
  yield actions.execute();
85
91
  }
@@ -96,7 +102,8 @@ export class Defaults {
96
102
  FORM_FIELDS: this._formFields,
97
103
  FORM_DATA: this._formData,
98
104
  PREVIOUS_FORM_DATA: this._previousFormData,
99
- ALL_FORMS_DATA: this._allFormsData
105
+ ALL_FORMS_DATA: this._allFormsData,
106
+ EXTRA_DATA: this._extraData
100
107
  }).mapping();
101
108
  for (let action of actions) {
102
109
  const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
@@ -106,7 +113,8 @@ export class Defaults {
106
113
  FORM_FIELDS: this._formFields,
107
114
  FORM_DATA: this._formData,
108
115
  PREVIOUS_FORM_DATA: this._previousFormData,
109
- ALL_FORMS_DATA: this._allFormsData
116
+ ALL_FORMS_DATA: this._allFormsData,
117
+ EXTRA_DATA: this._extraData
110
118
  }, this._takeAction);
111
119
  yield actions.execute();
112
120
  }
@@ -123,4 +131,4 @@ __decorate([
123
131
  __decorate([
124
132
  logMethod
125
133
  ], Defaults.prototype, "getFormFieldOptions", null);
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmRlZmF1bHRzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxFQUNKLG9CQUFvQixFQUNwQixNQUFNLEVBSVAsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRixNQUFNLE9BQU8sUUFBUTtJQVFuQixZQUNFLEtBQWEsRUFDYixVQUFpQixFQUNqQixZQUFpQixFQUNqQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBR0ssaUJBQWlCOztZQUNyQixJQUFJLFlBQWlCLENBQUM7WUFFdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUVsRCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDcEIsS0FBSyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDO29C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QUUsQ0FBQztZQUViLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLG1CQUFtQixHQUFHLElBQUksU0FBUyxDQUN2QyxNQUFNLENBQUMsU0FBUyxFQUNoQixZQUFZLENBQ2IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFFYixJQUFJLG1CQUFtQixFQUFFO29CQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FDeEIsTUFBTSxFQUNOLFlBQVksRUFDWjt3QkFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN6QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO3dCQUMxQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWE7cUJBQ25DLEVBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztvQkFFRixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUM7S0FBQTtDQUNGO0FBeEpDO0lBREMsU0FBUztpREF3RVQ7QUFHRDtJQURDLFNBQVM7b0RBc0NUO0FBR0Q7SUFEQyxTQUFTO21EQXNDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGlvbixcbiAgQ29uZGl0aW9uLFxuICBpc0VtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZCxcbiAgUnVsZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGgsXG4gIFNvdXJjZSxcbiAgVEFjdGlvbixcbiAgVFJ1bGUsXG4gIFRFbmdpbmVcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBURmllbGQgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVHJpZ2dlciB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcudHJpZ2dlcnMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1GaWVsZEVtcHR5VmFsdWVUb0t3aWtVSUZvcm1hdCB9IGZyb20gXCIuL2Zvcm0tdmlldy5maWVsZHMuaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0cyB7XG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xuICBwcml2YXRlIF9maWVsZDogVEZpZWxkO1xuICBwcml2YXRlIF9mb3JtRmllbGRzOiBhbnlbXTtcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtRGF0YTogYW55O1xuICBwcml2YXRlIF90YWtlQWN0aW9uOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaWVsZDogVEZpZWxkLFxuICAgIGZvcm1GaWVsZHM6IGFueVtdLFxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxuICAgIGZvcm1EYXRhOiBhbnksXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55LFxuICAgIHRha2VBY3Rpb246IEZ1bmN0aW9uXG4gICkge1xuICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy5fZm9ybUZpZWxkcyA9IGZvcm1GaWVsZHM7XG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gZm9ybURhdGE7XG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHByZXZpb3VzRm9ybURhdGE7XG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGdldEZvcm1GaWVsZFZhbHVlKCkge1xuICAgIGxldCBkZWZhdWx0VmFsdWU6IGFueTtcblxuICAgIGNvbnN0IHNvdXJjZXMgPSB0aGlzLl9maWVsZC5kZWZhdWx0LnZhbHVlLnNvdXJjZXM7XG5cbiAgICBsZXQgc291cmNlSW5kZXggPSAwO1xuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICBjb25zdCBzb3VyY2VzID0gbmV3IFNvdXJjZSh7XG4gICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXG4gICAgICAgIEZPUk1fRklFTERTOiB0aGlzLl9mb3JtRmllbGRzLFxuICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdmFsdWUgPSBzb3VyY2VzLmdldFZhbHVlRnJvbVNvdXJjZShzb3VyY2UpO1xuXG4gICAgICAvLyBTZXQgdGhlIFZhbHVlIG9mIGN1cnJlbnQgc291cmNlLlxuICAgICAgdGhpcy5fZmllbGQgPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgdGhpcy5fZmllbGQsXG4gICAgICAgIGBkZWZhdWx0LnZhbHVlLnNvdXJjZXMuWyR7c291cmNlSW5kZXh9XS52YWx1ZWAsXG4gICAgICAgIHZhbHVlXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2YWxpZGF0aW9uOiBURW5naW5lID0gKHNvdXJjZSBhcyBhbnkpLnZhbGlkYXRpb247XG5cbiAgICAgIGNvbnN0IHRyaWdnZXJzOiBBcnJheTxUVHJpZ2dlcj4gPSB2YWxpZGF0aW9uLnRyaWdnZXJzO1xuICAgICAgY29uc3QgcnVsZXM6IEFycmF5PFRSdWxlPiA9IHZhbGlkYXRpb24ucnVsZXM7XG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPiA9IHZhbGlkYXRpb24uYWN0aW9ucztcblxuICAgICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGUocnVsZXMsIHtcbiAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxuICAgICAgfSkubWFwcGluZygpO1xuXG4gICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICBjb25zdCBjb25kaXRpb25FdmFsdWF0aW9uID0gbmV3IENvbmRpdGlvbihcbiAgICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICAgIHJ1bGVzTWFwcGluZ1xuICAgICAgICApLmV2YWx1YXRlKCk7XG5cbiAgICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcbiAgICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbihcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIHJ1bGVzTWFwcGluZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc291cmNlSW5kZXgrKztcbiAgICB9XG5cbiAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLl9maWVsZC5kZWZhdWx0LnZhbHVlLnZhbHVlO1xuXG4gICAgaWYgKGlzRW1wdHlWYWx1ZShkZWZhdWx0VmFsdWUpKSB7XG4gICAgICBkZWZhdWx0VmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkRW1wdHlWYWx1ZVRvS3dpa1VJRm9ybWF0KHRoaXMuX2ZpZWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3luYyBnZXRGb3JtRmllbGRBcGlWYWx1ZSgpIHtcbiAgICBjb25zdCBhcGlDb25maWcgPSB0aGlzLl9maWVsZC5kZWZhdWx0LmFwaTtcblxuICAgIGNvbnN0IHJ1bGVzID0gYXBpQ29uZmlnLnJ1bGVzO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhcGlDb25maWcuYWN0aW9ucztcblxuICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlKHJ1bGVzLCB7XG4gICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxuICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxuICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxuICAgIH0pLm1hcHBpbmcoKTtcblxuICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XG4gICAgICBjb25zdCBjb25kaXRpb25FdmFsdWF0aW9uID0gbmV3IENvbmRpdGlvbihcbiAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgcnVsZXNNYXBwaW5nXG4gICAgICApLmV2YWx1YXRlKCk7XG5cbiAgICAgIGlmIChjb25kaXRpb25FdmFsdWF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBuZXcgQWN0aW9uKFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBydWxlc01hcHBpbmcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgIEZPUk1fRklFTERTOiB0aGlzLl9mb3JtRmllbGRzLFxuICAgICAgICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcbiAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cbiAgICAgICAgKTtcblxuICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGdldEZvcm1GaWVsZE9wdGlvbnMoKSB7XG4gICAgY29uc3Qgb3B0aW9uc0NvbmZpZyA9IHRoaXMuX2ZpZWxkLmRlZmF1bHQub3B0aW9ucztcblxuICAgIGNvbnN0IHJ1bGVzID0gb3B0aW9uc0NvbmZpZy5ydWxlcztcbiAgICBjb25zdCBhY3Rpb25zID0gb3B0aW9uc0NvbmZpZy5hY3Rpb25zO1xuXG4gICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGUocnVsZXMsIHtcbiAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXG4gICAgICBGT1JNX0ZJRUxEUzogdGhpcy5fZm9ybUZpZWxkcyxcbiAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgfSkubWFwcGluZygpO1xuXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICBydWxlc01hcHBpbmdcbiAgICAgICkuZXZhbHVhdGUoKTtcblxuICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb24oXG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIHJ1bGVzTWFwcGluZyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxuICAgICAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxuICAgICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxuICAgICAgICApO1xuXG4gICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmRlZmF1bHRzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxFQUNKLG9CQUFvQixFQUNwQixNQUFNLEVBSVAsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRixNQUFNLE9BQU8sUUFBUTtJQVNuQixZQUNFLEtBQWEsRUFDYixVQUFpQixFQUNqQixZQUFpQixFQUNqQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFNBQWMsRUFDZCxVQUFvQjtRQUVwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUdLLGlCQUFpQjs7WUFDckIsSUFBSSxZQUFpQixDQUFDO1lBRXRCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFFbEQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLEtBQUssSUFBSSxNQUFNLElBQUksT0FB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QUFJLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUMxQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM1QixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFYixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsRUFDaEIsWUFBWSxDQUNiLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRWIsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQ3hCLE1BQU0sRUFDTixZQUFZLEVBQ1o7d0JBQ0UsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNO3dCQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7d0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjt3QkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO3dCQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7cUJBQzVCLEVBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztvQkFFRixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUM7S0FBQTtDQUNGO0FBL0pDO0lBREMsU0FBUztpREEyRVQ7QUFHRDtJQURDLFNBQVM7b0RBd0NUO0FBR0Q7SUFEQyxTQUFTO21EQXdDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGlvbixcbiAgQ29uZGl0aW9uLFxuICBpc0VtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZCxcbiAgUnVsZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGgsXG4gIFNvdXJjZSxcbiAgVEFjdGlvbixcbiAgVFJ1bGUsXG4gIFRFbmdpbmVcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBURmllbGQgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVHJpZ2dlciB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcudHJpZ2dlcnMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1GaWVsZEVtcHR5VmFsdWVUb0t3aWtVSUZvcm1hdCB9IGZyb20gXCIuL2Zvcm0tdmlldy5maWVsZHMuaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0cyB7XG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xuICBwcml2YXRlIF9maWVsZDogVEZpZWxkO1xuICBwcml2YXRlIF9mb3JtRmllbGRzOiBhbnlbXTtcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtRGF0YTogYW55O1xuICBwcml2YXRlIF9leHRyYURhdGE6IGFueTtcbiAgcHJpdmF0ZSBfdGFrZUFjdGlvbjogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZmllbGQ6IFRGaWVsZCxcbiAgICBmb3JtRmllbGRzOiBhbnlbXSxcbiAgICBhbGxGb3Jtc0RhdGE6IGFueSxcbiAgICBmb3JtRGF0YTogYW55LFxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcbiAgICBleHRyYURhdGE6IGFueSxcbiAgICB0YWtlQWN0aW9uOiBGdW5jdGlvblxuICApIHtcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMuX2Zvcm1GaWVsZHMgPSBmb3JtRmllbGRzO1xuICAgIHRoaXMuX2FsbEZvcm1zRGF0YSA9IGFsbEZvcm1zRGF0YTtcbiAgICB0aGlzLl9mb3JtRGF0YSA9IGZvcm1EYXRhO1xuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xuICAgIHRoaXMuX2V4dHJhRGF0YSA9IGV4dHJhRGF0YTtcbiAgICB0aGlzLl90YWtlQWN0aW9uID0gdGFrZUFjdGlvbjtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgZ2V0Rm9ybUZpZWxkVmFsdWUoKSB7XG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogYW55O1xuXG4gICAgY29uc3Qgc291cmNlcyA9IHRoaXMuX2ZpZWxkLmRlZmF1bHQudmFsdWUuc291cmNlcztcblxuICAgIGxldCBzb3VyY2VJbmRleCA9IDA7XG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlKHtcbiAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YSxcbiAgICAgICAgRVhUUkFfREFUQTogdGhpcy5fZXh0cmFEYXRhXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlcy5nZXRWYWx1ZUZyb21Tb3VyY2Uoc291cmNlKTtcblxuICAgICAgLy8gU2V0IHRoZSBWYWx1ZSBvZiBjdXJyZW50IHNvdXJjZS5cbiAgICAgIHRoaXMuX2ZpZWxkID0gc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgIHRoaXMuX2ZpZWxkLFxuICAgICAgICBgZGVmYXVsdC52YWx1ZS5zb3VyY2VzLlske3NvdXJjZUluZGV4fV0udmFsdWVgLFxuICAgICAgICB2YWx1ZVxuICAgICAgKTtcblxuICAgICAgY29uc3QgdmFsaWRhdGlvbjogVEVuZ2luZSA9IChzb3VyY2UgYXMgYW55KS52YWxpZGF0aW9uO1xuXG4gICAgICBjb25zdCB0cmlnZ2VyczogQXJyYXk8VFRyaWdnZXI+ID0gdmFsaWRhdGlvbi50cmlnZ2VycztcbiAgICAgIGNvbnN0IHJ1bGVzOiBBcnJheTxUUnVsZT4gPSB2YWxpZGF0aW9uLnJ1bGVzO1xuICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSB2YWxpZGF0aW9uLmFjdGlvbnM7XG5cbiAgICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlKHJ1bGVzLCB7XG4gICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXG4gICAgICAgIEZPUk1fRklFTERTOiB0aGlzLl9mb3JtRmllbGRzLFxuICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGEsXG4gICAgICAgIEVYVFJBX0RBVEE6IHRoaXMuX2V4dHJhRGF0YVxuICAgICAgfSkubWFwcGluZygpO1xuXG4gICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICBjb25zdCBjb25kaXRpb25FdmFsdWF0aW9uID0gbmV3IENvbmRpdGlvbihcbiAgICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICAgIHJ1bGVzTWFwcGluZ1xuICAgICAgICApLmV2YWx1YXRlKCk7XG5cbiAgICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcbiAgICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbihcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIHJ1bGVzTWFwcGluZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YSxcbiAgICAgICAgICAgICAgRVhUUkFfREFUQTogdGhpcy5fZXh0cmFEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzb3VyY2VJbmRleCsrO1xuICAgIH1cblxuICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuX2ZpZWxkLmRlZmF1bHQudmFsdWUudmFsdWU7XG5cbiAgICBpZiAoaXNFbXB0eVZhbHVlKGRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IGNvbnZlcnRGb3JtRmllbGRFbXB0eVZhbHVlVG9Ld2lrVUlGb3JtYXQodGhpcy5fZmllbGQpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGdldEZvcm1GaWVsZEFwaVZhbHVlKCkge1xuICAgIGNvbnN0IGFwaUNvbmZpZyA9IHRoaXMuX2ZpZWxkLmRlZmF1bHQuYXBpO1xuXG4gICAgY29uc3QgcnVsZXMgPSBhcGlDb25maWcucnVsZXM7XG4gICAgY29uc3QgYWN0aW9ucyA9IGFwaUNvbmZpZy5hY3Rpb25zO1xuXG4gICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGUocnVsZXMsIHtcbiAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXG4gICAgICBGT1JNX0ZJRUxEUzogdGhpcy5fZm9ybUZpZWxkcyxcbiAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhLFxuICAgICAgRVhUUkFfREFUQTogdGhpcy5fZXh0cmFEYXRhXG4gICAgfSkubWFwcGluZygpO1xuXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICBydWxlc01hcHBpbmdcbiAgICAgICkuZXZhbHVhdGUoKTtcblxuICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb24oXG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIHJ1bGVzTWFwcGluZyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxuICAgICAgICAgICAgRk9STV9GSUVMRFM6IHRoaXMuX2Zvcm1GaWVsZHMsXG4gICAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxuICAgICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YSxcbiAgICAgICAgICAgIEVYVFJBX0RBVEE6IHRoaXMuX2V4dHJhRGF0YVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxuICAgICAgICApO1xuXG4gICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgZ2V0Rm9ybUZpZWxkT3B0aW9ucygpIHtcbiAgICBjb25zdCBvcHRpb25zQ29uZmlnID0gdGhpcy5fZmllbGQuZGVmYXVsdC5vcHRpb25zO1xuXG4gICAgY29uc3QgcnVsZXMgPSBvcHRpb25zQ29uZmlnLnJ1bGVzO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBvcHRpb25zQ29uZmlnLmFjdGlvbnM7XG5cbiAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZShydWxlcywge1xuICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgIEZPUk1fRklFTERTOiB0aGlzLl9mb3JtRmllbGRzLFxuICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcbiAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGEsXG4gICAgICBFWFRSQV9EQVRBOiB0aGlzLl9leHRyYURhdGFcbiAgICB9KS5tYXBwaW5nKCk7XG5cbiAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgY29uc3QgY29uZGl0aW9uRXZhbHVhdGlvbiA9IG5ldyBDb25kaXRpb24oXG4gICAgICAgIGFjdGlvbi5jb25kaXRpb24sXG4gICAgICAgIHJ1bGVzTWFwcGluZ1xuICAgICAgKS5ldmFsdWF0ZSgpO1xuXG4gICAgICBpZiAoY29uZGl0aW9uRXZhbHVhdGlvbikge1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbihcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgcnVsZXNNYXBwaW5nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXG4gICAgICAgICAgICBGT1JNX0ZJRUxEUzogdGhpcy5fZm9ybUZpZWxkcyxcbiAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhLFxuICAgICAgICAgICAgRVhUUkFfREFUQTogdGhpcy5fZXh0cmFEYXRhXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLl90YWtlQWN0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=