@valtimo/dashboard 12.6.1 → 12.8.0

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.
Files changed (51) hide show
  1. package/esm2022/lib/data-sources/case-count/case-count.specification.mjs +4 -4
  2. package/esm2022/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +8 -6
  3. package/esm2022/lib/data-sources/case-counts/case-counts.specification.mjs +4 -4
  4. package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.mjs +12 -8
  5. package/esm2022/lib/data-sources/case-group-by/case-group-by.module.mjs +7 -4
  6. package/esm2022/lib/data-sources/case-group-by/case-group-by.specification.mjs +4 -4
  7. package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.mjs +11 -8
  8. package/esm2022/lib/data-sources/data-sources.module.mjs +16 -4
  9. package/esm2022/lib/data-sources/index.mjs +2 -1
  10. package/esm2022/lib/data-sources/shared/conditions.mjs +4 -4
  11. package/esm2022/lib/data-sources/task-count/components/index.mjs +17 -0
  12. package/esm2022/lib/data-sources/task-count/components/task-count-configuration/index.mjs +17 -0
  13. package/esm2022/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.mjs +122 -0
  14. package/esm2022/lib/data-sources/task-count/index.mjs +20 -0
  15. package/esm2022/lib/data-sources/task-count/models/index.mjs +17 -0
  16. package/esm2022/lib/data-sources/task-count/models/task-count.model.mjs +17 -0
  17. package/esm2022/lib/data-sources/task-count/task-count.module.mjs +57 -0
  18. package/esm2022/lib/data-sources/task-count/task-count.specification.mjs +69 -0
  19. package/fesm2022/valtimo-dashboard.mjs +364 -39
  20. package/fesm2022/valtimo-dashboard.mjs.map +1 -1
  21. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts +3 -2
  22. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts.map +1 -1
  23. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts +4 -3
  24. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts.map +1 -1
  25. package/lib/data-sources/case-group-by/case-group-by.module.d.ts +1 -1
  26. package/lib/data-sources/case-group-by/case-group-by.module.d.ts.map +1 -1
  27. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts +4 -3
  28. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts.map +1 -1
  29. package/lib/data-sources/data-sources.module.d.ts +2 -1
  30. package/lib/data-sources/data-sources.module.d.ts.map +1 -1
  31. package/lib/data-sources/index.d.ts +1 -0
  32. package/lib/data-sources/index.d.ts.map +1 -1
  33. package/lib/data-sources/shared/conditions.d.ts +3 -3
  34. package/lib/data-sources/shared/conditions.d.ts.map +1 -1
  35. package/lib/data-sources/task-count/components/index.d.ts +2 -0
  36. package/lib/data-sources/task-count/components/index.d.ts.map +1 -0
  37. package/lib/data-sources/task-count/components/task-count-configuration/index.d.ts +2 -0
  38. package/lib/data-sources/task-count/components/task-count-configuration/index.d.ts.map +1 -0
  39. package/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.d.ts +36 -0
  40. package/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.d.ts.map +1 -0
  41. package/lib/data-sources/task-count/index.d.ts +5 -0
  42. package/lib/data-sources/task-count/index.d.ts.map +1 -0
  43. package/lib/data-sources/task-count/models/index.d.ts +2 -0
  44. package/lib/data-sources/task-count/models/index.d.ts.map +1 -0
  45. package/lib/data-sources/task-count/models/task-count.model.d.ts +6 -0
  46. package/lib/data-sources/task-count/models/task-count.model.d.ts.map +1 -0
  47. package/lib/data-sources/task-count/task-count.module.d.ts +13 -0
  48. package/lib/data-sources/task-count/task-count.module.d.ts.map +1 -0
  49. package/lib/data-sources/task-count/task-count.specification.d.ts +3 -0
  50. package/lib/data-sources/task-count/task-count.specification.d.ts.map +1 -0
  51. package/package.json +1 -1
@@ -33,7 +33,7 @@ export const caseCountDataSourceSpecification = {
33
33
  operator: 'Operator',
34
34
  value: 'Wert',
35
35
  conditions: 'Bedingungen',
36
- conditionsHelperText: `Geben Sie optionale Bedingungen zum Abrufen der Anzahl der Fälle für den ausgewählten Falltyp an. ${CONDITIONS_HELPER_TEXTS.DE}`,
36
+ conditionsHelperText: `Geben Sie optionale Bedingungen zum Abrufen der Anzahl der Fälle für den ausgewählten Falltyp an. ${CONDITIONS_HELPER_TEXTS.DE()}`,
37
37
  addCondition: 'Bedingung hinzufügen',
38
38
  },
39
39
  en: {
@@ -50,7 +50,7 @@ export const caseCountDataSourceSpecification = {
50
50
  operator: 'Operator',
51
51
  value: 'Value',
52
52
  conditions: 'Conditions',
53
- conditionsHelperText: `Specify optional conditions for retrieving the number of cases for the selected case type. ${CONDITIONS_HELPER_TEXTS.EN}`,
53
+ conditionsHelperText: `Specify optional conditions for retrieving the number of cases for the selected case type. ${CONDITIONS_HELPER_TEXTS.EN()}`,
54
54
  addCondition: 'Add condition',
55
55
  },
56
56
  nl: {
@@ -67,9 +67,9 @@ export const caseCountDataSourceSpecification = {
67
67
  operator: 'Operator',
68
68
  value: 'Waarde',
69
69
  conditions: 'Condities',
70
- conditionsHelperText: `Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde dossiertype. ${CONDITIONS_HELPER_TEXTS.NL}}`,
70
+ conditionsHelperText: `Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde dossiertype. ${CONDITIONS_HELPER_TEXTS.NL()}}`,
71
71
  addCondition: 'Conditie toevoegen',
72
72
  },
73
73
  },
74
74
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC5zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQvc3JjL2xpYi9kYXRhLXNvdXJjZXMvY2FzZS1jb3VudC9jYXNlLWNvdW50LnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUE0QjtJQUN2RSxhQUFhLEVBQUUsWUFBWTtJQUMzQixzQkFBc0IsRUFBRSwrQkFBK0I7SUFDdkQsWUFBWSxFQUFFO1FBQ1osRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLFVBQVU7WUFDakIsa0JBQWtCLEVBQUUsd0JBQXdCO1lBQzVDLDRCQUE0QixFQUFFLGdEQUFnRDtZQUM5RSxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLElBQUksRUFBRSxRQUFRO1lBQ2QsR0FBRyxFQUFFLFlBQVk7WUFDakIsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxHQUFHLEVBQUUsYUFBYTtZQUNsQixJQUFJLEVBQUUseUJBQXlCO1lBQy9CLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsYUFBYTtZQUN6QixvQkFBb0IsRUFBRSxxR0FBcUcsdUJBQXVCLENBQUMsRUFBRSxFQUFFO1lBQ3ZKLFlBQVksRUFBRSxzQkFBc0I7U0FDckM7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsWUFBWTtZQUNuQixrQkFBa0IsRUFBRSxzQkFBc0I7WUFDMUMsNEJBQTRCLEVBQUUsZ0RBQWdEO1lBQzlFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLEdBQUcsRUFBRSxjQUFjO1lBQ25CLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsR0FBRyxFQUFFLFdBQVc7WUFDaEIsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLFlBQVk7WUFDeEIsb0JBQW9CLEVBQUUsOEZBQThGLHVCQUF1QixDQUFDLEVBQUUsRUFBRTtZQUNoSixZQUFZLEVBQUUsZUFBZTtTQUM5QjtRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsa0JBQWtCLEVBQUUsdUJBQXVCO1lBQzNDLDRCQUE0QixFQUFFLHFEQUFxRDtZQUNuRixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLElBQUksRUFBRSxZQUFZO1lBQ2xCLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsR0FBRyxFQUFFLFlBQVk7WUFDakIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLFdBQVc7WUFDdkIsb0JBQW9CLEVBQUUseUdBQXlHLHVCQUF1QixDQUFDLEVBQUUsR0FBRztZQUM1SixZQUFZLEVBQUUsb0JBQW9CO1NBQ25DO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtEYXRhU291cmNlU3BlY2lmaWNhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Q2FzZUNvdW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7Q09ORElUSU9OU19IRUxQRVJfVEVYVFN9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmV4cG9ydCBjb25zdCBjYXNlQ291bnREYXRhU291cmNlU3BlY2lmaWNhdGlvbjogRGF0YVNvdXJjZVNwZWNpZmljYXRpb24gPSB7XG4gIGRhdGFTb3VyY2VLZXk6ICdjYXNlLWNvdW50JyxcbiAgY29uZmlndXJhdGlvbkNvbXBvbmVudDogQ2FzZUNvdW50Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgdHJhbnNsYXRpb25zOiB7XG4gICAgZGU6IHtcbiAgICAgIHRpdGxlOiAnRmFsbHphaGwnLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnRmFsbHR5cCAoZXJmb3JkZXJsaWNoKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnRGVyIEZhbGx0eXAsIGbDvHIgZGVuIGRpZSBBbnphaGwgYWJnZXJ1ZmVuIHdpcmQnLFxuICAgICAgJyE9JzogJ05pY2h0IGdsZWljaHp1c2V0emVuIG1pdCcsXG4gICAgICAnPT0nOiAnR2xlaWNoJyxcbiAgICAgICc+JzogJ0dyw7bDn2VyIGFscycsXG4gICAgICAnPj0nOiAnR3LDtsOfZXIgYWxzIG9kZXIgZ2xlaWNoIHdpZScsXG4gICAgICAnPCc6ICdXZW5pZ2VyIGFscycsXG4gICAgICAnPD0nOiAnR2xlaWNoIG9kZXIga2xlaW5lciBhbHMnLFxuICAgICAgcGF0aDogJ1BmYWQnLFxuICAgICAgb3BlcmF0b3I6ICdPcGVyYXRvcicsXG4gICAgICB2YWx1ZTogJ1dlcnQnLFxuICAgICAgY29uZGl0aW9uczogJ0JlZGluZ3VuZ2VuJyxcbiAgICAgIGNvbmRpdGlvbnNIZWxwZXJUZXh0OiBgR2ViZW4gU2llIG9wdGlvbmFsZSBCZWRpbmd1bmdlbiB6dW0gQWJydWZlbiBkZXIgQW56YWhsIGRlciBGw6RsbGUgZsO8ciBkZW4gYXVzZ2V3w6RobHRlbiBGYWxsdHlwIGFuLiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLkRFfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdCZWRpbmd1bmcgaGluenVmw7xnZW4nLFxuICAgIH0sXG4gICAgZW46IHtcbiAgICAgIHRpdGxlOiAnQ2FzZSBjb3VudCcsXG4gICAgICBkb2N1bWVudERlZmluaXRpb246ICdDYXNlIHR5cGUgKHJlcXVpcmVkKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnVGhlIGNhc2UgdHlwZSBmb3Igd2hpY2ggdGhlIGNvdW50IGlzIHJldHJpZXZlZCcsXG4gICAgICAnIT0nOiAnTm90IGVxdWFsIHRvJyxcbiAgICAgICc9PSc6ICdFcXVhbCB0bycsXG4gICAgICAnPic6ICdHcmVhdGVyIHRoYW4nLFxuICAgICAgJz49JzogJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICAnPCc6ICdMZXNzIHRoYW4nLFxuICAgICAgJzw9JzogJ0xlc3MgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICBwYXRoOiAnUGF0aCAocmVxdWlyZWQpJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdWYWx1ZScsXG4gICAgICBjb25kaXRpb25zOiAnQ29uZGl0aW9ucycsXG4gICAgICBjb25kaXRpb25zSGVscGVyVGV4dDogYFNwZWNpZnkgb3B0aW9uYWwgY29uZGl0aW9ucyBmb3IgcmV0cmlldmluZyB0aGUgbnVtYmVyIG9mIGNhc2VzIGZvciB0aGUgc2VsZWN0ZWQgY2FzZSB0eXBlLiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLkVOfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdBZGQgY29uZGl0aW9uJyxcbiAgICB9LFxuICAgIG5sOiB7XG4gICAgICB0aXRsZTogJ0FhbnRhbCBkb3NzaWVycycsXG4gICAgICBkb2N1bWVudERlZmluaXRpb246ICdEb3NzaWVydHlwZSAodmVyZWlzdCknLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dDogJ0hldCBkb3NzaWVydHlwZSB3YWFydm9vciBkZSB0ZWxsaW5nIHdvcmR0IG9wZ2VoYWFsZCcsXG4gICAgICAnIT0nOiAnTmlldCBnZWxpamsgYWFuJyxcbiAgICAgICc9PSc6ICdHZWxpamsgYWFuJyxcbiAgICAgICc+JzogJ0dyb3RlciBkYW4nLFxuICAgICAgJz49JzogJ0dyb3RlciBkYW4gb2YgZ2VsaWprIGFhbicsXG4gICAgICAnPCc6ICdNaW5kZXIgZGFuJyxcbiAgICAgICc8PSc6ICdNaW5kZXIgZGFuIG9mIGdlbGlqayBhYW4nLFxuICAgICAgcGF0aDogJ1BhZCcsXG4gICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJyxcbiAgICAgIHZhbHVlOiAnV2FhcmRlJyxcbiAgICAgIGNvbmRpdGlvbnM6ICdDb25kaXRpZXMnLFxuICAgICAgY29uZGl0aW9uc0hlbHBlclRleHQ6IGBHZWVmIG9wdGlvbmVsZSBjb25kaXRpZXMgb3Agdm9vciBoZXQgb3BoYWxlbiB2YW4gaGV0IGFhbnRhbCB6YWtlbiB2b29yIGhldCBnZXNlbGVjdGVlcmRlIGRvc3NpZXJ0eXBlLiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLk5MfX1gLFxuICAgICAgYWRkQ29uZGl0aW9uOiAnQ29uZGl0aWUgdG9ldm9lZ2VuJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC5zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQvc3JjL2xpYi9kYXRhLXNvdXJjZXMvY2FzZS1jb3VudC9jYXNlLWNvdW50LnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUE0QjtJQUN2RSxhQUFhLEVBQUUsWUFBWTtJQUMzQixzQkFBc0IsRUFBRSwrQkFBK0I7SUFDdkQsWUFBWSxFQUFFO1FBQ1osRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLFVBQVU7WUFDakIsa0JBQWtCLEVBQUUsd0JBQXdCO1lBQzVDLDRCQUE0QixFQUFFLGdEQUFnRDtZQUM5RSxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLElBQUksRUFBRSxRQUFRO1lBQ2QsR0FBRyxFQUFFLFlBQVk7WUFDakIsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxHQUFHLEVBQUUsYUFBYTtZQUNsQixJQUFJLEVBQUUseUJBQXlCO1lBQy9CLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsYUFBYTtZQUN6QixvQkFBb0IsRUFBRSxxR0FBcUcsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDekosWUFBWSxFQUFFLHNCQUFzQjtTQUNyQztRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxZQUFZO1lBQ25CLGtCQUFrQixFQUFFLHNCQUFzQjtZQUMxQyw0QkFBNEIsRUFBRSxnREFBZ0Q7WUFDOUUsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsR0FBRyxFQUFFLGNBQWM7WUFDbkIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxHQUFHLEVBQUUsV0FBVztZQUNoQixJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE9BQU87WUFDZCxVQUFVLEVBQUUsWUFBWTtZQUN4QixvQkFBb0IsRUFBRSw4RkFBOEYsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDbEosWUFBWSxFQUFFLGVBQWU7U0FDOUI7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLGtCQUFrQixFQUFFLHVCQUF1QjtZQUMzQyw0QkFBNEIsRUFBRSxxREFBcUQ7WUFDbkYsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsWUFBWTtZQUNsQixHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLG9CQUFvQixFQUFFLHlHQUF5Ryx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsR0FBRztZQUM5SixZQUFZLEVBQUUsb0JBQW9CO1NBQ25DO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtEYXRhU291cmNlU3BlY2lmaWNhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Q2FzZUNvdW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7Q09ORElUSU9OU19IRUxQRVJfVEVYVFN9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmV4cG9ydCBjb25zdCBjYXNlQ291bnREYXRhU291cmNlU3BlY2lmaWNhdGlvbjogRGF0YVNvdXJjZVNwZWNpZmljYXRpb24gPSB7XG4gIGRhdGFTb3VyY2VLZXk6ICdjYXNlLWNvdW50JyxcbiAgY29uZmlndXJhdGlvbkNvbXBvbmVudDogQ2FzZUNvdW50Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgdHJhbnNsYXRpb25zOiB7XG4gICAgZGU6IHtcbiAgICAgIHRpdGxlOiAnRmFsbHphaGwnLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnRmFsbHR5cCAoZXJmb3JkZXJsaWNoKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnRGVyIEZhbGx0eXAsIGbDvHIgZGVuIGRpZSBBbnphaGwgYWJnZXJ1ZmVuIHdpcmQnLFxuICAgICAgJyE9JzogJ05pY2h0IGdsZWljaHp1c2V0emVuIG1pdCcsXG4gICAgICAnPT0nOiAnR2xlaWNoJyxcbiAgICAgICc+JzogJ0dyw7bDn2VyIGFscycsXG4gICAgICAnPj0nOiAnR3LDtsOfZXIgYWxzIG9kZXIgZ2xlaWNoIHdpZScsXG4gICAgICAnPCc6ICdXZW5pZ2VyIGFscycsXG4gICAgICAnPD0nOiAnR2xlaWNoIG9kZXIga2xlaW5lciBhbHMnLFxuICAgICAgcGF0aDogJ1BmYWQnLFxuICAgICAgb3BlcmF0b3I6ICdPcGVyYXRvcicsXG4gICAgICB2YWx1ZTogJ1dlcnQnLFxuICAgICAgY29uZGl0aW9uczogJ0JlZGluZ3VuZ2VuJyxcbiAgICAgIGNvbmRpdGlvbnNIZWxwZXJUZXh0OiBgR2ViZW4gU2llIG9wdGlvbmFsZSBCZWRpbmd1bmdlbiB6dW0gQWJydWZlbiBkZXIgQW56YWhsIGRlciBGw6RsbGUgZsO8ciBkZW4gYXVzZ2V3w6RobHRlbiBGYWxsdHlwIGFuLiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLkRFKCl9YCxcbiAgICAgIGFkZENvbmRpdGlvbjogJ0JlZGluZ3VuZyBoaW56dWbDvGdlbicsXG4gICAgfSxcbiAgICBlbjoge1xuICAgICAgdGl0bGU6ICdDYXNlIGNvdW50JyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogJ0Nhc2UgdHlwZSAocmVxdWlyZWQpJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQ6ICdUaGUgY2FzZSB0eXBlIGZvciB3aGljaCB0aGUgY291bnQgaXMgcmV0cmlldmVkJyxcbiAgICAgICchPSc6ICdOb3QgZXF1YWwgdG8nLFxuICAgICAgJz09JzogJ0VxdWFsIHRvJyxcbiAgICAgICc+JzogJ0dyZWF0ZXIgdGhhbicsXG4gICAgICAnPj0nOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgICc8JzogJ0xlc3MgdGhhbicsXG4gICAgICAnPD0nOiAnTGVzcyB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgIHBhdGg6ICdQYXRoIChyZXF1aXJlZCknLFxuICAgICAgb3BlcmF0b3I6ICdPcGVyYXRvcicsXG4gICAgICB2YWx1ZTogJ1ZhbHVlJyxcbiAgICAgIGNvbmRpdGlvbnM6ICdDb25kaXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbnNIZWxwZXJUZXh0OiBgU3BlY2lmeSBvcHRpb25hbCBjb25kaXRpb25zIGZvciByZXRyaWV2aW5nIHRoZSBudW1iZXIgb2YgY2FzZXMgZm9yIHRoZSBzZWxlY3RlZCBjYXNlIHR5cGUuICR7Q09ORElUSU9OU19IRUxQRVJfVEVYVFMuRU4oKX1gLFxuICAgICAgYWRkQ29uZGl0aW9uOiAnQWRkIGNvbmRpdGlvbicsXG4gICAgfSxcbiAgICBubDoge1xuICAgICAgdGl0bGU6ICdBYW50YWwgZG9zc2llcnMnLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnRG9zc2llcnR5cGUgKHZlcmVpc3QpJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQ6ICdIZXQgZG9zc2llcnR5cGUgd2FhcnZvb3IgZGUgdGVsbGluZyB3b3JkdCBvcGdlaGFhbGQnLFxuICAgICAgJyE9JzogJ05pZXQgZ2VsaWprIGFhbicsXG4gICAgICAnPT0nOiAnR2VsaWprIGFhbicsXG4gICAgICAnPic6ICdHcm90ZXIgZGFuJyxcbiAgICAgICc+PSc6ICdHcm90ZXIgZGFuIG9mIGdlbGlqayBhYW4nLFxuICAgICAgJzwnOiAnTWluZGVyIGRhbicsXG4gICAgICAnPD0nOiAnTWluZGVyIGRhbiBvZiBnZWxpamsgYWFuJyxcbiAgICAgIHBhdGg6ICdQYWQnLFxuICAgICAgb3BlcmF0b3I6ICdPcGVyYXRvcicsXG4gICAgICB2YWx1ZTogJ1dhYXJkZScsXG4gICAgICBjb25kaXRpb25zOiAnQ29uZGl0aWVzJyxcbiAgICAgIGNvbmRpdGlvbnNIZWxwZXJUZXh0OiBgR2VlZiBvcHRpb25lbGUgY29uZGl0aWVzIG9wIHZvb3IgaGV0IG9waGFsZW4gdmFuIGhldCBhYW50YWwgemFrZW4gdm9vciBoZXQgZ2VzZWxlY3RlZXJkZSBkb3NzaWVydHlwZS4gJHtDT05ESVRJT05TX0hFTFBFUl9URVhUUy5OTCgpfX1gLFxuICAgICAgYWRkQ29uZGl0aW9uOiAnQ29uZGl0aWUgdG9ldm9lZ2VuJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -17,6 +17,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
17
17
  import { Operator } from '../../../../models';
18
18
  import { BehaviorSubject, combineLatest, map, startWith, Subscription } from 'rxjs';
19
19
  import { Validators } from '@angular/forms';
20
+ import { ValuePathSelectorPrefix, } from '@valtimo/components';
20
21
  import * as i0 from "@angular/core";
21
22
  import * as i1 from "@angular/forms";
22
23
  import * as i2 from "@valtimo/document";
@@ -64,10 +65,10 @@ export class CaseCountConfigurationComponent {
64
65
  documentDefinition: this.fb.control(null, [Validators.required]),
65
66
  queryConditions: this.fb.control(null),
66
67
  });
67
- this._selectedDocumentDefinition$ = new BehaviorSubject('');
68
+ this.selectedDocumentDefinition$ = new BehaviorSubject('');
68
69
  this.documentItems$ = combineLatest([
69
70
  this.documentService.getAllDefinitions(),
70
- this._selectedDocumentDefinition$,
71
+ this.selectedDocumentDefinition$,
71
72
  ]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
72
73
  content: definition.id.name,
73
74
  selected: definition.id.name === selectedDocumentDefintion,
@@ -90,6 +91,7 @@ export class CaseCountConfigurationComponent {
90
91
  this.defaultConditionValues$ = new BehaviorSubject(null);
91
92
  this.allConditionsValid$ = new BehaviorSubject(true);
92
93
  this.configurationEvent = new EventEmitter();
94
+ this.ValuePathSelectorPrefix = ValuePathSelectorPrefix;
93
95
  this._subscriptions = new Subscription();
94
96
  }
95
97
  ngOnInit() {
@@ -102,7 +104,7 @@ export class CaseCountConfigurationComponent {
102
104
  if (!documentDefinitionItem) {
103
105
  return;
104
106
  }
105
- this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
107
+ this.selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
106
108
  this.documentDefinition.setValue(documentDefinitionItem?.item?.content);
107
109
  }
108
110
  conditionsValueChange(values) {
@@ -132,11 +134,11 @@ export class CaseCountConfigurationComponent {
132
134
  }));
133
135
  }
134
136
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseCountConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DocumentService }, { token: i3.TranslateService }, { token: i4.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
135
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseCountConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseCountConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"selectedDocumentDefinition$ | async\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
136
138
  }
137
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseCountConfigurationComponent, decorators: [{
138
140
  type: Component,
139
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
141
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"selectedDocumentDefinition$ | async\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
140
142
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DocumentService }, { type: i3.TranslateService }, { type: i4.WidgetTranslationService }], propDecorators: { dataSourceKey: [{
141
143
  type: Input
142
144
  }], disabled: [{
@@ -146,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
146
148
  }], configurationEvent: [{
147
149
  type: Output
148
150
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvY29tcG9uZW50cy9jYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvY29tcG9uZW50cy9jYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3RCxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFhdkQsTUFBTSxPQUFPLCtCQUErQjtJQVUxQyxJQUFvQixRQUFRLENBQUMsYUFBc0I7UUFDakQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztR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Q0FDSixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxrQkFBMkI7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsbUJBQW1CO1NBQ3pCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLGtCQUFrQjtnQkFDNUMsSUFBSSxFQUFFLFNBQW1DO2FBQzFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQTdJVSwrQkFBK0I7bUdBQS9CLCtCQUErQiwyTkN4QzVDLGsvRUF5REE7OzRGRGpCYSwrQkFBK0I7a0JBTDNDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTTtvTEFNL0IsYUFBYTtzQkFBNUIsS0FBSztnQkFPYyxRQUFRO3NCQUEzQixLQUFLO2dCQXNETyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBaUJXLGtCQUFrQjtzQkFBbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uT3V0cHV0LCBEYXRhU291cmNlQ29uZmlndXJhdGlvbkNvbXBvbmVudCwgT3BlcmF0b3J9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Nhc2VDb3VudENvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0xpc3RJdGVtV2l0aElkLCBNdWx0aUlucHV0S2V5VmFsdWUsIE11bHRpSW5wdXRWYWx1ZXN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtY291bnQtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlQ291bnRDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhU291cmNlS2V5OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkb2N1bWVudERlZmluaXRpb246IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5mYi5jb250cm9sKG51bGwpLFxuICB9KTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25zLCBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uXSkgPT5cbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBkZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBkZWZpbml0aW9uLmlkLm5hbWUgPT09IHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb24sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfT1BFUkFUT1JTOiBBcnJheTxPcGVyYXRvcj4gPSBbXG4gICAgT3BlcmF0b3IuTk9UX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkVRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTixcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgIC5zdHJlYW0oJ2tleScpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKCkgPT5cbiAgICAgICAgdGhpcy5fT1BFUkFUT1JTLm1hcChvcGVyYXRvciA9PiAoe1xuICAgICAgICAgIGlkOiBvcGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KG9wZXJhdG9yLCB0aGlzLmRhdGFTb3VyY2VLZXkpLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbmRpdGlvblZhbHVlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE11bHRpSW5wdXRWYWx1ZXMgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbENvbmRpdGlvbnNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyBnZXQgZG9jdW1lbnREZWZpbml0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkb2N1bWVudERlZmluaXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlDb25kaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUNvbmRpdGlvbnMnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwcmVmaWxsQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uVmFsdWU6IENhc2VDb3VudENvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoY29uZmlndXJhdGlvblZhbHVlKSB7XG4gICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKHtcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgIGNvbnRlbnQ6IGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24sXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSk7XG4gICAgICB0aGlzLmRlZmF1bHRDb25kaXRpb25WYWx1ZXMkLm5leHQoXG4gICAgICAgIGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgICAgICBkcm9wZG93bjogY29uZGl0aW9uLnF1ZXJ5T3BlcmF0b3IsXG4gICAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi5xdWVyeVZhbHVlLFxuICAgICAgICB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb25maWd1cmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIENvbmZpZ3VyYXRpb25PdXRwdXQ8Q2FzZUNvdW50Q29uZmlndXJhdGlvbj5cbiAgPigpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRUcmFuc2xhdGlvblNlcnZpY2U6IFdpZGdldFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkZvcm1TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZG9jdW1lbnREZWZpbml0aW9uU2VsZWN0ZWQoZG9jdW1lbnREZWZpbml0aW9uSXRlbTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWRvY3VtZW50RGVmaW5pdGlvbkl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQubmV4dChkb2N1bWVudERlZmluaXRpb25JdGVtPy5pdGVtPy5jb250ZW50KTtcbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbi5zZXRWYWx1ZShkb2N1bWVudERlZmluaXRpb25JdGVtPy5pdGVtPy5jb250ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjb25kaXRpb25zVmFsdWVDaGFuZ2UodmFsdWVzOiBBcnJheTxNdWx0aUlucHV0S2V5VmFsdWU+KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnNldFZhbHVlKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5Q29uZGl0aW9ucy5zZXRWYWx1ZShcbiAgICAgICAgdmFsdWVzLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICAgIHF1ZXJ5UGF0aDogdmFsdWUua2V5LFxuICAgICAgICAgIHF1ZXJ5T3BlcmF0b3I6IHZhbHVlLmRyb3Bkb3duLFxuICAgICAgICAgIHF1ZXJ5VmFsdWU6IHZhbHVlLnZhbHVlLFxuICAgICAgICB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb25BbGxDb25kaXRpb25zVmFsaWQoYWxsQ29uZGl0aW9uc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hbGxDb25kaXRpb25zVmFsaWQkLm5leHQoYWxsQ29uZGl0aW9uc1ZhbGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUpKSxcbiAgICAgICAgdGhpcy5hbGxDb25kaXRpb25zVmFsaWQkLFxuICAgICAgXSkuc3Vic2NyaWJlKChbZm9ybVZhbHVlLCBhbGxDb25kaXRpb25zVmFsaWRdKSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkV2ZW50LmVtaXQoe1xuICAgICAgICAgIHZhbGlkOiB0aGlzLmZvcm0udmFsaWQgJiYgYWxsQ29uZGl0aW9uc1ZhbGlkLFxuICAgICAgICAgIGRhdGE6IGZvcm1WYWx1ZSBhcyBDYXNlQ291bnRDb25maWd1cmF0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cImNhc2UtY291bnQtY29uZmlndXJhdGlvbi1mb3JtXCJcbiAgKm5nSWY9XCJ7ZG9jdW1lbnRJdGVtczogZG9jdW1lbnRJdGVtcyQgfCBhc3luYywgb3BlcmF0b3JJdGVtczogb3BlcmF0b3JJdGVtcyR9IGFzIG9ic1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgW2FwcGVuZElubGluZV09XCJ0cnVlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50RGVmaW5pdGlvblwiXG4gICAgICBbaGVscGVyVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZFRleHRdPVwiJ2RvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2ludmFsaWRdPVwiZG9jdW1lbnREZWZpbml0aW9uLmRpcnR5ICYmIGRvY3VtZW50RGVmaW5pdGlvbi5pbnZhbGlkXCJcbiAgICAgIFtsYWJlbF09XCInZG9jdW1lbnREZWZpbml0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RlZCk9XCJkb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icz8uZG9jdW1lbnRJdGVtcyB8fCBbXVwiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50IGNvbmRpdGlvbnMtbXVsdGktaW5wdXRcIj5cbiAgICA8Y2RzLWxhYmVsXG4gICAgICBbaGVscGVyVGV4dF09XCInY29uZGl0aW9uc0hlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJjb25kaXRpb25zLWxhYmVsXCJcbiAgICAgID57eyAnY29uZGl0aW9ucycgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luYyB9fTwvY2RzLWxhYmVsXG4gICAgPlxuICAgIDx2YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dFxuICAgICAgW2FkZFJvd1RleHRdPVwiJ2FkZENvbmRpdGlvbicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJkZWZhdWx0Q29uZGl0aW9uVmFsdWVzJCB8IGFzeW5jXCJcbiAgICAgIFtkcm9wZG93bkNvbHVtblRpdGxlXT1cIidvcGVyYXRvcicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZHJvcGRvd25JdGVtc109XCJvcGVyYXRvckl0ZW1zJCB8IGFzeW5jXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFtrZXlDb2x1bW5UaXRsZV09XCIncGF0aCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbbWluaW11bUFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid2YWx1ZScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICB0eXBlPVwia2V5RHJvcGRvd25WYWx1ZVwiXG4gICAgICAoYWxsVmFsdWVzVmFsaWRFdmVudCk9XCJvbkFsbENvbmRpdGlvbnNWYWxpZCgkZXZlbnQpXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb25kaXRpb25zVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvdmFsdGltby1jYXJib24tbXVsdGktaW5wdXQ+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvY29tcG9uZW50cy9jYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvY29tcG9uZW50cy9jYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3RCxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkQsT0FBTyxFQUlMLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBUzdCLE1BQU0sT0FBTywrQkFBK0I7SUFVMUMsSUFBb0IsUUFBUSxDQUFDLGFBQXNCO1FBQ2pELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0s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cEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUs7YUFDeEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsa0JBQTJCO1FBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixhQUFhLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLG1CQUFtQjtTQUN6QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxrQkFBa0I7Z0JBQzVDLElBQUksRUFBRSxTQUFtQzthQUMxQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0EvSVUsK0JBQStCO21HQUEvQiwrQkFBK0IsMk5DN0M1Qyx1NEZBZ0VBOzs0RkRuQmEsK0JBQStCO2tCQUwzQyxTQUFTO3NDQUVTLHVCQUF1QixDQUFDLE1BQU07b0xBTS9CLGFBQWE7c0JBQTVCLEtBQUs7Z0JBT2MsUUFBUTtzQkFBM0IsS0FBSztnQkFzRE8sb0JBQW9CO3NCQUFoQyxLQUFLO2dCQWlCVyxrQkFBa0I7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbk91dHB1dCwgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnQsIE9wZXJhdG9yfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDYXNlQ291bnRDb25maWd1cmF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgTGlzdEl0ZW1XaXRoSWQsXG4gIE11bHRpSW5wdXRLZXlWYWx1ZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbiAgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtY291bnQtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlQ291bnRDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhU291cmNlS2V5OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkb2N1bWVudERlZmluaXRpb246IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5mYi5jb250cm9sKG51bGwpLFxuICB9KTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0QWxsRGVmaW5pdGlvbnMoKSxcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25zLCBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uXSkgPT5cbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBkZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBkZWZpbml0aW9uLmlkLm5hbWUgPT09IHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb24sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfT1BFUkFUT1JTOiBBcnJheTxPcGVyYXRvcj4gPSBbXG4gICAgT3BlcmF0b3IuTk9UX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkVRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTixcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgIC5zdHJlYW0oJ2tleScpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKCkgPT5cbiAgICAgICAgdGhpcy5fT1BFUkFUT1JTLm1hcChvcGVyYXRvciA9PiAoe1xuICAgICAgICAgIGlkOiBvcGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KG9wZXJhdG9yLCB0aGlzLmRhdGFTb3VyY2VLZXkpLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbmRpdGlvblZhbHVlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE11bHRpSW5wdXRWYWx1ZXMgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbENvbmRpdGlvbnNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyBnZXQgZG9jdW1lbnREZWZpbml0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkb2N1bWVudERlZmluaXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlDb25kaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUNvbmRpdGlvbnMnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwcmVmaWxsQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uVmFsdWU6IENhc2VDb3VudENvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoY29uZmlndXJhdGlvblZhbHVlKSB7XG4gICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKHtcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgIGNvbnRlbnQ6IGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24sXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSk7XG4gICAgICB0aGlzLmRlZmF1bHRDb25kaXRpb25WYWx1ZXMkLm5leHQoXG4gICAgICAgIGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgICAgICBkcm9wZG93bjogY29uZGl0aW9uLnF1ZXJ5T3BlcmF0b3IsXG4gICAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi5xdWVyeVZhbHVlLFxuICAgICAgICB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb25maWd1cmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIENvbmZpZ3VyYXRpb25PdXRwdXQ8Q2FzZUNvdW50Q29uZmlndXJhdGlvbj5cbiAgPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBWYWx1ZVBhdGhTZWxlY3RvclByZWZpeCA9IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4O1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRUcmFuc2xhdGlvblNlcnZpY2U6IFdpZGdldFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkZvcm1TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZG9jdW1lbnREZWZpbml0aW9uU2VsZWN0ZWQoZG9jdW1lbnREZWZpbml0aW9uSXRlbTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWRvY3VtZW50RGVmaW5pdGlvbkl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJC5uZXh0KGRvY3VtZW50RGVmaW5pdGlvbkl0ZW0/Lml0ZW0/LmNvbnRlbnQpO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uLnNldFZhbHVlKGRvY3VtZW50RGVmaW5pdGlvbkl0ZW0/Lml0ZW0/LmNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIGNvbmRpdGlvbnNWYWx1ZUNoYW5nZSh2YWx1ZXM6IEFycmF5PE11bHRpSW5wdXRLZXlWYWx1ZT4pOiB2b2lkIHtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5xdWVyeUNvbmRpdGlvbnMuc2V0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnNldFZhbHVlKFxuICAgICAgICB2YWx1ZXMubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgcXVlcnlQYXRoOiB2YWx1ZS5rZXksXG4gICAgICAgICAgcXVlcnlPcGVyYXRvcjogdmFsdWUuZHJvcGRvd24sXG4gICAgICAgICAgcXVlcnlWYWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkFsbENvbmRpdGlvbnNWYWxpZChhbGxDb25kaXRpb25zVmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFsbENvbmRpdGlvbnNWYWxpZCQubmV4dChhbGxDb25kaXRpb25zVmFsaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRm9ybVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS52YWx1ZSkpLFxuICAgICAgICB0aGlzLmFsbENvbmRpdGlvbnNWYWxpZCQsXG4gICAgICBdKS5zdWJzY3JpYmUoKFtmb3JtVmFsdWUsIGFsbENvbmRpdGlvbnNWYWxpZF0pID0+IHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uRXZlbnQuZW1pdCh7XG4gICAgICAgICAgdmFsaWQ6IHRoaXMuZm9ybS52YWxpZCAmJiBhbGxDb25kaXRpb25zVmFsaWQsXG4gICAgICAgICAgZGF0YTogZm9ybVZhbHVlIGFzIENhc2VDb3VudENvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwiY2FzZS1jb3VudC1jb25maWd1cmF0aW9uLWZvcm1cIlxuICAqbmdJZj1cIntkb2N1bWVudEl0ZW1zOiBkb2N1bWVudEl0ZW1zJCB8IGFzeW5jLCBvcGVyYXRvckl0ZW1zOiBvcGVyYXRvckl0ZW1zJH0gYXMgb2JzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtpbnZhbGlkVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZF09XCJkb2N1bWVudERlZmluaXRpb24uZGlydHkgJiYgZG9jdW1lbnREZWZpbml0aW9uLmludmFsaWRcIlxuICAgICAgW2xhYmVsXT1cIidkb2N1bWVudERlZmluaXRpb24nIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdGVkKT1cImRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzPy5kb2N1bWVudEl0ZW1zIHx8IFtdXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1kcm9wZG93bj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnQgY29uZGl0aW9ucy1tdWx0aS1pbnB1dFwiPlxuICAgIDxjZHMtbGFiZWxcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidjb25kaXRpb25zSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBjbGFzcz1cImNvbmRpdGlvbnMtbGFiZWxcIlxuICAgICAgPnt7ICdjb25kaXRpb25zJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jIH19PC9jZHMtbGFiZWxcbiAgICA+XG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICB0eXBlPVwidmFsdWVQYXRoU2VsZWN0b3JEcm9wZG93blZhbHVlXCJcbiAgICAgIFthZGRSb3dUZXh0XT1cIidhZGRDb25kaXRpb24nIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2RlZmF1bHRWYWx1ZXNdPVwiZGVmYXVsdENvbmRpdGlvblZhbHVlcyQgfCBhc3luY1wiXG4gICAgICBbZHJvcGRvd25Db2x1bW5UaXRsZV09XCInb3BlcmF0b3InIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2Ryb3Bkb3duSXRlbXNdPVwib3BlcmF0b3JJdGVtcyQgfCBhc3luY1wiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2luaXRpYWxBbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCIndmFsdWUnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgKGFsbFZhbHVlc1ZhbGlkRXZlbnQpPVwib25BbGxDb25kaXRpb25zVmFsaWQoJGV2ZW50KVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiY29uZGl0aW9uc1ZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgdmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbj1cImRvdHNcIlxuICAgICAgW3ZhbHVlUGF0aFNlbGVjdG9yUHJlZml4ZXNdPVwiW1ZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LkRPQywgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXguQ0FTRV1cIlxuICAgICAgW3ZhbHVlUGF0aFNlbGVjdG9yU2hvd0RvY3VtZW50RGVmaW5pdGlvblNlbGVjdG9yXT1cImZhbHNlXCJcbiAgICAgIFt2YWx1ZVBhdGhTZWxlY3RvckRvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwic2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kIHwgYXN5bmNcIlxuICAgICAgW2tleUNvbHVtbkZsZXhdPVwiMlwiXG4gICAgICBbZHJvcGRvd25Db2x1bW5GbGV4XT1cIjFcIlxuICAgICAgW3ZhbHVlQ29sdW1uRmxleF09XCIxXCJcbiAgICA+PC92YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dD5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -33,7 +33,7 @@ export const caseCountsDataSourceSpecification = {
33
33
  operator: 'Operator',
34
34
  value: 'Wert',
35
35
  counts: 'Anzahllen',
36
- countsHelperText: `Geben Sie eine oder mehrere Bedingungen für jede anzuzeigende Zählung an. Konfigurieren Sie mindestens zwei Zählungen und mindestens eine Bedingung pro Zählung. ${CONDITIONS_HELPER_TEXTS.DE}`,
36
+ countsHelperText: `Geben Sie eine oder mehrere Bedingungen für jede anzuzeigende Zählung an. Konfigurieren Sie mindestens zwei Zählungen und mindestens eine Bedingung pro Zählung. ${CONDITIONS_HELPER_TEXTS.DE()}`,
37
37
  addCondition: 'Bedingung hinzufügen',
38
38
  countTitle: 'Anzahltitel',
39
39
  },
@@ -51,7 +51,7 @@ export const caseCountsDataSourceSpecification = {
51
51
  operator: 'Operator',
52
52
  value: 'Value',
53
53
  counts: 'Counts',
54
- countsHelperText: `Specify one or more conditions for each count that should be displayed. Configure at least two counts and at least one condition per count. ${CONDITIONS_HELPER_TEXTS.EN}`,
54
+ countsHelperText: `Specify one or more conditions for each count that should be displayed. Configure at least two counts and at least one condition per count. ${CONDITIONS_HELPER_TEXTS.EN()}`,
55
55
  addCondition: 'Add condition',
56
56
  countTitle: 'Count title',
57
57
  },
@@ -69,10 +69,10 @@ export const caseCountsDataSourceSpecification = {
69
69
  operator: 'Operator',
70
70
  value: 'Waarde',
71
71
  counts: 'Aantallen',
72
- countsHelperText: `Geef een of meer condities op voor elk aantal dat moet worden weergegeven. Configureer minimaal twee aantallen en minimaal één conditie per aantal. ${CONDITIONS_HELPER_TEXTS.NL}`,
72
+ countsHelperText: `Geef een of meer condities op voor elk aantal dat moet worden weergegeven. Configureer minimaal twee aantallen en minimaal één conditie per aantal. ${CONDITIONS_HELPER_TEXTS.NL()}`,
73
73
  addCondition: 'Conditie toevoegen',
74
74
  countTitle: 'Aantaltitel',
75
75
  },
76
76
  },
77
77
  };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMuc3BlY2lmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnRzL2Nhc2UtY291bnRzLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUE0QjtJQUN4RSxhQUFhLEVBQUUsYUFBYTtJQUM1QixzQkFBc0IsRUFBRSxnQ0FBZ0M7SUFDeEQsWUFBWSxFQUFFO1FBQ1osRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixrQkFBa0IsRUFBRSx3QkFBd0I7WUFDNUMsNEJBQTRCLEVBQUUsb0RBQW9EO1lBQ2xGLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsNEJBQTRCO1lBQ2xDLEdBQUcsRUFBRSxhQUFhO1lBQ2xCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUFFLG9LQUFvSyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDbE4sWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxVQUFVLEVBQUUsYUFBYTtTQUMxQjtRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxzQkFBc0I7WUFDN0Isa0JBQWtCLEVBQUUsc0JBQXNCO1lBQzFDLDRCQUE0QixFQUFFLGtEQUFrRDtZQUNoRixJQUFJLEVBQUUsY0FBYztZQUNwQixJQUFJLEVBQUUsVUFBVTtZQUNoQixHQUFHLEVBQUUsY0FBYztZQUNuQixJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEdBQUcsRUFBRSxXQUFXO1lBQ2hCLElBQUksRUFBRSx1QkFBdUI7WUFDN0IsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGdCQUFnQixFQUFFLCtJQUErSSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDN0wsWUFBWSxFQUFFLGVBQWU7WUFDN0IsVUFBVSxFQUFFLGFBQWE7U0FDMUI7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLGtCQUFrQixFQUFFLHVCQUF1QjtZQUMzQyw0QkFBNEIsRUFBRSx3REFBd0Q7WUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsWUFBWTtZQUNsQixHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUFFLHVKQUF1Six1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDck0sWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUUsYUFBYTtTQUMxQjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RGF0YVNvdXJjZVNwZWNpZmljYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Nhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDT05ESVRJT05TX0hFTFBFUl9URVhUU30gZnJvbSAnLi4vc2hhcmVkJztcblxuZXhwb3J0IGNvbnN0IGNhc2VDb3VudHNEYXRhU291cmNlU3BlY2lmaWNhdGlvbjogRGF0YVNvdXJjZVNwZWNpZmljYXRpb24gPSB7XG4gIGRhdGFTb3VyY2VLZXk6ICdjYXNlLWNvdW50cycsXG4gIGNvbmZpZ3VyYXRpb25Db21wb25lbnQ6IENhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICB0cmFuc2xhdGlvbnM6IHtcbiAgICBkZToge1xuICAgICAgdGl0bGU6ICdNZWhyZXJlIEZhbGxhbnphaGxsZW4nLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnRmFsbHR5cCAoZXJmb3JkZXJsaWNoKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnRGVyIEZhbGx0eXAsIGbDvHIgZGVuIGRpZSBBbnphaGxsZW4gYWJnZXJ1ZnQgd2lyZGVuJyxcbiAgICAgICchPSc6ICdOaWNodCBnbGVpY2h6dXNldHplbiBtaXQnLFxuICAgICAgJz09JzogJ0dsZWljaCcsXG4gICAgICAnPic6ICdHcsO2w59lciBhbHMnLFxuICAgICAgJz49JzogJ0dyw7bDn2VyIGFscyBvZGVyIGdsZWljaCB3aWUnLFxuICAgICAgJzwnOiAnV2VuaWdlciBhbHMnLFxuICAgICAgJzw9JzogJ0dsZWljaCBvZGVyIGtsZWluZXIgYWxzJyxcbiAgICAgIHBhdGg6ICdQZmFkJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdXZXJ0JyxcbiAgICAgIGNvdW50czogJ0FuemFobGxlbicsXG4gICAgICBjb3VudHNIZWxwZXJUZXh0OiBgR2ViZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEJlZGluZ3VuZ2VuIGbDvHIgamVkZSBhbnp1emVpZ2VuZGUgWsOkaGx1bmcgYW4uIEtvbmZpZ3VyaWVyZW4gU2llIG1pbmRlc3RlbnMgendlaSBaw6RobHVuZ2VuIHVuZCBtaW5kZXN0ZW5zIGVpbmUgQmVkaW5ndW5nIHBybyBaw6RobHVuZy4gJHtDT05ESVRJT05TX0hFTFBFUl9URVhUUy5ERX1gLFxuICAgICAgYWRkQ29uZGl0aW9uOiAnQmVkaW5ndW5nIGhpbnp1ZsO8Z2VuJyxcbiAgICAgIGNvdW50VGl0bGU6ICdBbnphaGx0aXRlbCcsXG4gICAgfSxcbiAgICBlbjoge1xuICAgICAgdGl0bGU6ICdNdWx0aXBsZSBjYXNlIGNvdW50cycsXG4gICAgICBkb2N1bWVudERlZmluaXRpb246ICdDYXNlIHR5cGUgKHJlcXVpcmVkKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnVGhlIGNhc2UgdHlwZSBmb3Igd2hpY2ggdGhlIGNvdW50cyBhcmUgcmV0cmlldmVkJyxcbiAgICAgICchPSc6ICdOb3QgZXF1YWwgdG8nLFxuICAgICAgJz09JzogJ0VxdWFsIHRvJyxcbiAgICAgICc+JzogJ0dyZWF0ZXIgdGhhbicsXG4gICAgICAnPj0nOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgICc8JzogJ0xlc3MgdGhhbicsXG4gICAgICAnPD0nOiAnTGVzcyB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgIHBhdGg6ICdQYXRoIChyZXF1aXJlZCknLFxuICAgICAgb3BlcmF0b3I6ICdPcGVyYXRvcicsXG4gICAgICB2YWx1ZTogJ1ZhbHVlJyxcbiAgICAgIGNvdW50czogJ0NvdW50cycsXG4gICAgICBjb3VudHNIZWxwZXJUZXh0OiBgU3BlY2lmeSBvbmUgb3IgbW9yZSBjb25kaXRpb25zIGZvciBlYWNoIGNvdW50IHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZC4gQ29uZmlndXJlIGF0IGxlYXN0IHR3byBjb3VudHMgYW5kIGF0IGxlYXN0IG9uZSBjb25kaXRpb24gcGVyIGNvdW50LiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLkVOfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdBZGQgY29uZGl0aW9uJyxcbiAgICAgIGNvdW50VGl0bGU6ICdDb3VudCB0aXRsZScsXG4gICAgfSxcbiAgICBubDoge1xuICAgICAgdGl0bGU6ICdNZWVyZGVyZSBkb3NzaWVyYWFudGFsbGVuJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogJ0Rvc3NpZXJ0eXBlICh2ZXJlaXN0KScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnSGV0IGRvc3NpZXJ0eXBlIHdhYXJ2b29yIGRlIGFhbnRhbGxlbiB3b3JkZW4gb3BnZWhhYWxkJyxcbiAgICAgICchPSc6ICdOaWV0IGdlbGlqayBhYW4nLFxuICAgICAgJz09JzogJ0dlbGlqayBhYW4nLFxuICAgICAgJz4nOiAnR3JvdGVyIGRhbicsXG4gICAgICAnPj0nOiAnR3JvdGVyIGRhbiBvZiBnZWxpamsgYWFuJyxcbiAgICAgICc8JzogJ01pbmRlciBkYW4nLFxuICAgICAgJzw9JzogJ01pbmRlciBkYW4gb2YgZ2VsaWprIGFhbicsXG4gICAgICBwYXRoOiAnUGFkJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdXYWFyZGUnLFxuICAgICAgY291bnRzOiAnQWFudGFsbGVuJyxcbiAgICAgIGNvdW50c0hlbHBlclRleHQ6IGBHZWVmIGVlbiBvZiBtZWVyIGNvbmRpdGllcyBvcCB2b29yIGVsayBhYW50YWwgZGF0IG1vZXQgd29yZGVuIHdlZXJnZWdldmVuLiBDb25maWd1cmVlciBtaW5pbWFhbCB0d2VlIGFhbnRhbGxlbiBlbiBtaW5pbWFhbCDDqcOpbiBjb25kaXRpZSBwZXIgYWFudGFsLiAke0NPTkRJVElPTlNfSEVMUEVSX1RFWFRTLk5MfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdDb25kaXRpZSB0b2V2b2VnZW4nLFxuICAgICAgY291bnRUaXRsZTogJ0FhbnRhbHRpdGVsJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMuc3BlY2lmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnRzL2Nhc2UtY291bnRzLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUE0QjtJQUN4RSxhQUFhLEVBQUUsYUFBYTtJQUM1QixzQkFBc0IsRUFBRSxnQ0FBZ0M7SUFDeEQsWUFBWSxFQUFFO1FBQ1osRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixrQkFBa0IsRUFBRSx3QkFBd0I7WUFDNUMsNEJBQTRCLEVBQUUsb0RBQW9EO1lBQ2xGLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsNEJBQTRCO1lBQ2xDLEdBQUcsRUFBRSxhQUFhO1lBQ2xCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUFFLG9LQUFvSyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNwTixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLFVBQVUsRUFBRSxhQUFhO1NBQzFCO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLHNCQUFzQjtZQUM3QixrQkFBa0IsRUFBRSxzQkFBc0I7WUFDMUMsNEJBQTRCLEVBQUUsa0RBQWtEO1lBQ2hGLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLEdBQUcsRUFBRSxjQUFjO1lBQ25CLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsR0FBRyxFQUFFLFdBQVc7WUFDaEIsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsZ0JBQWdCLEVBQUUsK0lBQStJLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQy9MLFlBQVksRUFBRSxlQUFlO1lBQzdCLFVBQVUsRUFBRSxhQUFhO1NBQzFCO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxrQkFBa0IsRUFBRSx1QkFBdUI7WUFDM0MsNEJBQTRCLEVBQUUsd0RBQXdEO1lBQ3RGLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsR0FBRyxFQUFFLFlBQVk7WUFDakIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLElBQUksRUFBRSxLQUFLO1lBQ1gsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLFFBQVE7WUFDZixNQUFNLEVBQUUsV0FBVztZQUNuQixnQkFBZ0IsRUFBRSx1SkFBdUosdUJBQXVCLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDdk0sWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUUsYUFBYTtTQUMxQjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RGF0YVNvdXJjZVNwZWNpZmljYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Nhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDT05ESVRJT05TX0hFTFBFUl9URVhUU30gZnJvbSAnLi4vc2hhcmVkJztcblxuZXhwb3J0IGNvbnN0IGNhc2VDb3VudHNEYXRhU291cmNlU3BlY2lmaWNhdGlvbjogRGF0YVNvdXJjZVNwZWNpZmljYXRpb24gPSB7XG4gIGRhdGFTb3VyY2VLZXk6ICdjYXNlLWNvdW50cycsXG4gIGNvbmZpZ3VyYXRpb25Db21wb25lbnQ6IENhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICB0cmFuc2xhdGlvbnM6IHtcbiAgICBkZToge1xuICAgICAgdGl0bGU6ICdNZWhyZXJlIEZhbGxhbnphaGxsZW4nLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnRmFsbHR5cCAoZXJmb3JkZXJsaWNoKScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnRGVyIEZhbGx0eXAsIGbDvHIgZGVuIGRpZSBBbnphaGxsZW4gYWJnZXJ1ZnQgd2lyZGVuJyxcbiAgICAgICchPSc6ICdOaWNodCBnbGVpY2h6dXNldHplbiBtaXQnLFxuICAgICAgJz09JzogJ0dsZWljaCcsXG4gICAgICAnPic6ICdHcsO2w59lciBhbHMnLFxuICAgICAgJz49JzogJ0dyw7bDn2VyIGFscyBvZGVyIGdsZWljaCB3aWUnLFxuICAgICAgJzwnOiAnV2VuaWdlciBhbHMnLFxuICAgICAgJzw9JzogJ0dsZWljaCBvZGVyIGtsZWluZXIgYWxzJyxcbiAgICAgIHBhdGg6ICdQZmFkJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdXZXJ0JyxcbiAgICAgIGNvdW50czogJ0FuemFobGxlbicsXG4gICAgICBjb3VudHNIZWxwZXJUZXh0OiBgR2ViZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEJlZGluZ3VuZ2VuIGbDvHIgamVkZSBhbnp1emVpZ2VuZGUgWsOkaGx1bmcgYW4uIEtvbmZpZ3VyaWVyZW4gU2llIG1pbmRlc3RlbnMgendlaSBaw6RobHVuZ2VuIHVuZCBtaW5kZXN0ZW5zIGVpbmUgQmVkaW5ndW5nIHBybyBaw6RobHVuZy4gJHtDT05ESVRJT05TX0hFTFBFUl9URVhUUy5ERSgpfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdCZWRpbmd1bmcgaGluenVmw7xnZW4nLFxuICAgICAgY291bnRUaXRsZTogJ0FuemFobHRpdGVsJyxcbiAgICB9LFxuICAgIGVuOiB7XG4gICAgICB0aXRsZTogJ011bHRpcGxlIGNhc2UgY291bnRzJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogJ0Nhc2UgdHlwZSAocmVxdWlyZWQpJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQ6ICdUaGUgY2FzZSB0eXBlIGZvciB3aGljaCB0aGUgY291bnRzIGFyZSByZXRyaWV2ZWQnLFxuICAgICAgJyE9JzogJ05vdCBlcXVhbCB0bycsXG4gICAgICAnPT0nOiAnRXF1YWwgdG8nLFxuICAgICAgJz4nOiAnR3JlYXRlciB0aGFuJyxcbiAgICAgICc+PSc6ICdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgICAgJzwnOiAnTGVzcyB0aGFuJyxcbiAgICAgICc8PSc6ICdMZXNzIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgICAgcGF0aDogJ1BhdGggKHJlcXVpcmVkKScsXG4gICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJyxcbiAgICAgIHZhbHVlOiAnVmFsdWUnLFxuICAgICAgY291bnRzOiAnQ291bnRzJyxcbiAgICAgIGNvdW50c0hlbHBlclRleHQ6IGBTcGVjaWZ5IG9uZSBvciBtb3JlIGNvbmRpdGlvbnMgZm9yIGVhY2ggY291bnQgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkLiBDb25maWd1cmUgYXQgbGVhc3QgdHdvIGNvdW50cyBhbmQgYXQgbGVhc3Qgb25lIGNvbmRpdGlvbiBwZXIgY291bnQuICR7Q09ORElUSU9OU19IRUxQRVJfVEVYVFMuRU4oKX1gLFxuICAgICAgYWRkQ29uZGl0aW9uOiAnQWRkIGNvbmRpdGlvbicsXG4gICAgICBjb3VudFRpdGxlOiAnQ291bnQgdGl0bGUnLFxuICAgIH0sXG4gICAgbmw6IHtcbiAgICAgIHRpdGxlOiAnTWVlcmRlcmUgZG9zc2llcmFhbnRhbGxlbicsXG4gICAgICBkb2N1bWVudERlZmluaXRpb246ICdEb3NzaWVydHlwZSAodmVyZWlzdCknLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dDogJ0hldCBkb3NzaWVydHlwZSB3YWFydm9vciBkZSBhYW50YWxsZW4gd29yZGVuIG9wZ2VoYWFsZCcsXG4gICAgICAnIT0nOiAnTmlldCBnZWxpamsgYWFuJyxcbiAgICAgICc9PSc6ICdHZWxpamsgYWFuJyxcbiAgICAgICc+JzogJ0dyb3RlciBkYW4nLFxuICAgICAgJz49JzogJ0dyb3RlciBkYW4gb2YgZ2VsaWprIGFhbicsXG4gICAgICAnPCc6ICdNaW5kZXIgZGFuJyxcbiAgICAgICc8PSc6ICdNaW5kZXIgZGFuIG9mIGdlbGlqayBhYW4nLFxuICAgICAgcGF0aDogJ1BhZCcsXG4gICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJyxcbiAgICAgIHZhbHVlOiAnV2FhcmRlJyxcbiAgICAgIGNvdW50czogJ0FhbnRhbGxlbicsXG4gICAgICBjb3VudHNIZWxwZXJUZXh0OiBgR2VlZiBlZW4gb2YgbWVlciBjb25kaXRpZXMgb3Agdm9vciBlbGsgYWFudGFsIGRhdCBtb2V0IHdvcmRlbiB3ZWVyZ2VnZXZlbi4gQ29uZmlndXJlZXIgbWluaW1hYWwgdHdlZSBhYW50YWxsZW4gZW4gbWluaW1hYWwgw6nDqW4gY29uZGl0aWUgcGVyIGFhbnRhbC4gJHtDT05ESVRJT05TX0hFTFBFUl9URVhUUy5OTCgpfWAsXG4gICAgICBhZGRDb25kaXRpb246ICdDb25kaXRpZSB0b2V2b2VnZW4nLFxuICAgICAgY291bnRUaXRsZTogJ0FhbnRhbHRpdGVsJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -17,6 +17,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
17
17
  import { Operator } from '../../../../models';
18
18
  import { BehaviorSubject, combineLatest, distinctUntilChanged, map, startWith, Subscription, } from 'rxjs';
19
19
  import { Validators, } from '@angular/forms';
20
+ import { ValuePathSelectorPrefix } from '@valtimo/components';
20
21
  import { isEqual } from 'lodash';
21
22
  import { Add16, TrashCan16 } from '@carbon/icons';
22
23
  import * as i0 from "@angular/core";
@@ -78,10 +79,10 @@ export class CaseCountsConfigurationComponent {
78
79
  queryItems: this.fb.control([this._EMPTY_QUERY_ITEM_VALUE, this._EMPTY_QUERY_ITEM_VALUE], [this.queryItemsValidator()]),
79
80
  });
80
81
  this.configurationEvent = new EventEmitter();
81
- this._selectedDocumentDefinition$ = new BehaviorSubject('');
82
+ this.selectedDocumentDefinition$ = new BehaviorSubject('');
82
83
  this.documentItems$ = combineLatest([
83
84
  this.documentService.getAllDefinitions(),
84
- this._selectedDocumentDefinition$,
85
+ this.selectedDocumentDefinition$,
85
86
  ]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
86
87
  content: definition.id.name,
87
88
  selected: definition.id.name === selectedDocumentDefintion,
@@ -101,6 +102,7 @@ export class CaseCountsConfigurationComponent {
101
102
  content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
102
103
  selected: false,
103
104
  }))));
105
+ this.ValuePathSelectorPrefix = ValuePathSelectorPrefix;
104
106
  this._subscriptions = new Subscription();
105
107
  this.iconService.registerAll([Add16, TrashCan16]);
106
108
  }
@@ -111,10 +113,12 @@ export class CaseCountsConfigurationComponent {
111
113
  this._subscriptions.unsubscribe();
112
114
  }
113
115
  documentDefinitionSelected(documentDefinitionItem) {
114
- if (!documentDefinitionItem) {
116
+ const documentDefinitionName = documentDefinitionItem?.item?.content;
117
+ if (!documentDefinitionName) {
115
118
  return;
116
119
  }
117
- this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
120
+ this.selectedDocumentDefinition$.next(documentDefinitionName);
121
+ this.documentDefinition.setValue(documentDefinitionName);
118
122
  }
119
123
  conditionsValueChange(index, values) {
120
124
  const currentQueryItemsValues = this.queryItems.value;
@@ -141,7 +145,7 @@ export class CaseCountsConfigurationComponent {
141
145
  this.configurationEvent.emit({
142
146
  valid: this.form.valid,
143
147
  data: {
144
- documentDefinition: formValue?.documentDefinition?.content,
148
+ documentDefinition: formValue?.documentDefinition,
145
149
  queryItems: this.multiInputValuesToQueryItems(formValue.queryItems),
146
150
  },
147
151
  });
@@ -185,11 +189,11 @@ export class CaseCountsConfigurationComponent {
185
189
  };
186
190
  }
187
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseCountsConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DocumentService }, { token: i3.TranslateService }, { token: i4.WidgetTranslationService }, { token: i5.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CaseCountsConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" [cdsLayer]=\"1\">\n <div class=\"count-tile__input\" [cdsLayer]=\"0\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim"], outputs: ["valueChange"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "component", type: i5.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CaseCountsConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" [cdsLayer]=\"1\">\n <div class=\"count-tile__input\" [cdsLayer]=\"0\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim"], outputs: ["valueChange"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "component", type: i5.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
189
193
  }
190
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseCountsConfigurationComponent, decorators: [{
191
195
  type: Component,
192
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" [cdsLayer]=\"1\">\n <div class=\"count-tile__input\" [cdsLayer]=\"0\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
196
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" [cdsLayer]=\"1\">\n <div class=\"count-tile__input\" [cdsLayer]=\"0\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
193
197
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DocumentService }, { type: i3.TranslateService }, { type: i4.WidgetTranslationService }, { type: i5.IconService }], propDecorators: { dataSourceKey: [{
194
198
  type: Input
195
199
  }], disabled: [{
@@ -199,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
199
203
  }], configurationEvent: [{
200
204
  type: Output
201
205
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0QsUUFBUSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUtMLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBT3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFPaEQsTUFBTSxPQUFPLGdDQUFnQztJQWtCM0MsSUFBb0IsUUFBUSxDQUFDLGFBQXNCO1FBQ2pELElBQUksYUFBYSxF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ZSxDQUFDLE1BQU0sQ0FDakQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDMUUsQ0FBQztnQkFFRixPQUFPLENBQ0wsVUFBVTtvQkFDVixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQ3ZELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTTtnQkFDL0UsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDO29CQUNFLGlCQUFpQixFQUFFLFNBQVM7aUJBQzdCLENBQUM7UUFDUixDQUFDLENBQUM7SUFDSixDQUFDOytHQWpPVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQywyTkN4RDdDLGt2SEFxR0E7OzRGRDdDYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTTs4TUFNL0IsYUFBYTtzQkFBNUIsS0FBSztnQkFlYyxRQUFRO3NCQUEzQixLQUFLO2dCQStCTyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBYVcsa0JBQWtCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25PdXRwdXQsIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50LCBPcGVyYXRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2FzZUNvdW50c0NvbmZpZ3VyYXRpb24sIENhc2VDb3VudHNRdWVyeUl0ZW0sIENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2UsIExpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7TGlzdEl0ZW1XaXRoSWQsIE11bHRpSW5wdXRWYWx1ZXN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0FkZDE2LCBUcmFzaENhbjE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWNvdW50cy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUNvdW50c0NvbmZpZ3VyYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnRcbntcbiAgQElucHV0KCkgcHVibGljIGRhdGFTb3VyY2VLZXk6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFOiBDYXNlQ291bnRzUXVlcnlJdGVtRm9ybSA9IHtcbiAgICBsYWJlbDogJycsXG4gICAgcXVlcnlDb25kaXRpb25zOiBbe2tleTogJycsIHZhbHVlOiAnJywgZHJvcGRvd246ICcnfV0sXG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkb2N1bWVudERlZmluaXRpb246IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHF1ZXJ5SXRlbXM6IHRoaXMuZmIuY29udHJvbChcbiAgICAgIFt0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFLCB0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFXSxcbiAgICAgIFt0aGlzLnF1ZXJ5SXRlbXNWYWxpZGF0b3IoKV1cbiAgICApLFxuICB9KTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlJdGVtcygpOiBBYnN0cmFjdENvbnRyb2w8Q2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm1bXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUl0ZW1zJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5SXRlbXNWYWx1ZSQoKTogT2JzZXJ2YWJsZTxDYXNlQ291bnRzUXVlcnlJdGVtRm9ybVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlJdGVtcy52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5xdWVyeUl0ZW1zLnZhbHVlIHx8IFtdKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5SXRlbXNMaXN0JCgpOiBPYnNlcnZhYmxlPG51bGxbXT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5SXRlbXNWYWx1ZSQucGlwZShcbiAgICAgIG1hcChxdWVyeUl0ZW1zVmFsdWUgPT4gcXVlcnlJdGVtc1ZhbHVlLm1hcCgoKSA9PiBudWxsKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IGlzRXF1YWwocHJldmlvdXMsIGN1cnJlbnQpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRvY3VtZW50RGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZG9jdW1lbnREZWZpbml0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmRpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHByZWZpbGxDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25WYWx1ZTogQ2FzZUNvdW50c0NvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25WYWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCh7XG4gICAgICBpdGVtOiB7XG4gICAgICAgIGNvbnRlbnQ6IGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24sXG4gICAgICB9LFxuICAgIH0gYXMgYW55KTtcbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbi5wYXRjaFZhbHVlKGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24pO1xuXG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUodGhpcy5xdWVyeUl0ZW1zVG9NdWx0aUlucHV0VmFsdWVzKGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUl0ZW1zKSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIGNvbmZpZ3VyYXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQ29uZmlndXJhdGlvbk91dHB1dDxDYXNlQ291bnRzQ29uZmlndXJhdGlvbj5cbiAgPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25zLCBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uXSkgPT5cbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBkZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBkZWZpbml0aW9uLmlkLm5hbWUgPT09IHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb24sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfT1BFUkFUT1JTOiBBcnJheTxPcGVyYXRvcj4gPSBbXG4gICAgT3BlcmF0b3IuTk9UX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkVRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTixcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgIC5zdHJlYW0oJ2tleScpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKCkgPT5cbiAgICAgICAgdGhpcy5fT1BFUkFUT1JTLm1hcChvcGVyYXRvciA9PiAoe1xuICAgICAgICAgIGlkOiBvcGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KG9wZXJhdG9yLCB0aGlzLmRhdGFTb3VyY2VLZXkpLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlOiBXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbQWRkMTYsIFRyYXNoQ2FuMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKGRvY3VtZW50RGVmaW5pdGlvbkl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgaWYgKCFkb2N1bWVudERlZmluaXRpb25JdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kLm5leHQoZG9jdW1lbnREZWZpbml0aW9uSXRlbT8uaXRlbT8uY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgY29uZGl0aW9uc1ZhbHVlQ2hhbmdlKGluZGV4OiBudW1iZXIsIHZhbHVlczogTXVsdGlJbnB1dFZhbHVlcyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzID0gdGhpcy5xdWVyeUl0ZW1zLnZhbHVlO1xuXG4gICAgaWYgKGlzRXF1YWwoY3VycmVudFF1ZXJ5SXRlbXNWYWx1ZXNbaW5kZXhdLnF1ZXJ5Q29uZGl0aW9ucywgdmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoXG4gICAgICBjdXJyZW50UXVlcnlJdGVtc1ZhbHVlcy5tYXAoKGl0ZW0sIGl0ZW1JbmRleCkgPT5cbiAgICAgICAgaXRlbUluZGV4ID09PSBpbmRleCA/IHsuLi5pdGVtLCBxdWVyeUNvbmRpdGlvbnM6IHZhbHVlc30gOiBpdGVtXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBsYWJlbFZhbHVlQ2hhbmdlKGluZGV4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UXVlcnlJdGVtc1ZhbHVlcyA9IHRoaXMucXVlcnlJdGVtcy52YWx1ZTtcblxuICAgIGlmIChjdXJyZW50UXVlcnlJdGVtc1ZhbHVlc1tpbmRleF0ubGFiZWwgPT09IHZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnF1ZXJ5SXRlbXMucGF0Y2hWYWx1ZShcbiAgICAgIGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzLm1hcCgoaXRlbSwgaXRlbUluZGV4KSA9PlxuICAgICAgICBpdGVtSW5kZXggPT09IGluZGV4ID8gey4uLml0ZW0sIGxhYmVsOiB2YWx1ZX0gOiBpdGVtXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRRdWVyeUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFF1ZXJ5SXRlbXMgPSB0aGlzLnF1ZXJ5SXRlbXMudmFsdWU7XG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoWy4uLmN1cnJlbnRRdWVyeUl0ZW1zLCB0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFXSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ291bnQoaTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFF1ZXJ5SXRlbXMgPSB0aGlzLnF1ZXJ5SXRlbXMudmFsdWU7XG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoY3VycmVudFF1ZXJ5SXRlbXMuZmlsdGVyKChfLCBpbmRleCkgPT4gaW5kZXggIT09IGkpKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25FdmVudC5lbWl0KHtcbiAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogZm9ybVZhbHVlPy5kb2N1bWVudERlZmluaXRpb24/LmNvbnRlbnQsXG4gICAgICAgICAgICBxdWVyeUl0ZW1zOiB0aGlzLm11bHRpSW5wdXRWYWx1ZXNUb1F1ZXJ5SXRlbXMoZm9ybVZhbHVlLnF1ZXJ5SXRlbXMpLFxuICAgICAgICAgIH0gYXMgQ2FzZUNvdW50c0NvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeUl0ZW1zVG9NdWx0aUlucHV0VmFsdWVzKFxuICAgIHF1ZXJ5SXRlbXM6IENhc2VDb3VudHNRdWVyeUl0ZW1bXVxuICApOiBDYXNlQ291bnRzUXVlcnlJdGVtRm9ybVtdIHtcbiAgICByZXR1cm4gcXVlcnlJdGVtcy5tYXAocXVlcnlJdGVtID0+ICh7XG4gICAgICAuLi5xdWVyeUl0ZW0sXG4gICAgICBxdWVyeUNvbmRpdGlvbnM6IHF1ZXJ5SXRlbS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICBrZXk6IGNvbmRpdGlvbi5xdWVyeVBhdGgsXG4gICAgICAgIGRyb3Bkb3duOiBjb25kaXRpb24ucXVlcnlPcGVyYXRvcixcbiAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi5xdWVyeVZhbHVlLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgbXVsdGlJbnB1dFZhbHVlc1RvUXVlcnlJdGVtcyhcbiAgICBtdWx0aUlucHV0VmFsdWVzOiBDYXNlQ291bnRzUXVlcnlJdGVtRm9ybVtdXG4gICk6IENhc2VDb3VudHNRdWVyeUl0ZW1bXSB7XG4gICAgcmV0dXJuIG11bHRpSW5wdXRWYWx1ZXMubWFwKHF1ZXJ5SXRlbSA9PiAoe1xuICAgICAgLi4ucXVlcnlJdGVtLFxuICAgICAgcXVlcnlDb25kaXRpb25zOiBxdWVyeUl0ZW0ucXVlcnlDb25kaXRpb25zLm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgICAgcXVlcnlQYXRoOiBjb25kaXRpb24ua2V5LFxuICAgICAgICBxdWVyeU9wZXJhdG9yOiBjb25kaXRpb24uZHJvcGRvd24sXG4gICAgICAgIHF1ZXJ5VmFsdWU6IGNvbmRpdGlvbi52YWx1ZSxcbiAgICAgIH0pKSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5SXRlbXNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sPENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW10+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgcXVlcnlJdGVtcyA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBjb25zdCB2YWxpZFF1ZXJ5SXRlbXMgPSBxdWVyeUl0ZW1zLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRMYWJlbCA9ICEhaXRlbS5sYWJlbDtcbiAgICAgICAgY29uc3QgdmFsaWRDb25kaXRpb25zID0gaXRlbS5xdWVyeUNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIGNvbmRpdGlvbiA9PiAhIWNvbmRpdGlvbi52YWx1ZSAmJiAhIWNvbmRpdGlvbi5rZXkgJiYgISFjb25kaXRpb24uZHJvcGRvd25cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHZhbGlkTGFiZWwgJiZcbiAgICAgICAgICB2YWxpZENvbmRpdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIGl0ZW0ucXVlcnlDb25kaXRpb25zLmxlbmd0aCA9PT0gdmFsaWRDb25kaXRpb25zLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB2YWxpZFF1ZXJ5SXRlbXMubGVuZ3RoID4gMSAmJiB2YWxpZFF1ZXJ5SXRlbXMubGVuZ3RoID09PSBxdWVyeUl0ZW1zLmxlbmd0aFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpbnZhbGlkUXVlcnlJdGVtczogJ2ludmFsaWQnLFxuICAgICAgICAgIH07XG4gICAgfTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cImNhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24tZm9ybVwiXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50SXRlbXM6IGRvY3VtZW50SXRlbXMkIHwgYXN5bmMsXG4gICAgb3BlcmF0b3JJdGVtczogb3BlcmF0b3JJdGVtcyQsXG4gICAgcXVlcnlJdGVtc1ZhbHVlOiBxdWVyeUl0ZW1zVmFsdWUkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtpbnZhbGlkVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZF09XCJkb2N1bWVudERlZmluaXRpb24uZGlydHkgJiYgZG9jdW1lbnREZWZpbml0aW9uLmludmFsaWRcIlxuICAgICAgW2xhYmVsXT1cIidkb2N1bWVudERlZmluaXRpb24nIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdGVkKT1cImRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzPy5kb2N1bWVudEl0ZW1zIHx8IFtdXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1kcm9wZG93bj5cbiAgPC9kaXY+XG5cbiAgPGNkcy1sYWJlbCBjbGFzcz1cImNvbmRpdGlvbnNfX2xhYmVsXCI+e3tcbiAgICAnY291bnRzJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXG4gIH19PC9jZHMtbGFiZWw+XG5cbiAgPHAgY2xhc3M9XCJjb25kaXRpb25zX19oZWxwZXItdGV4dCBjZHMtLWZvcm1fX2hlbHBlci10ZXh0XCI+XG4gICAge3sgJ2NvdW50c0hlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmMgfX1cbiAgPC9wPlxuXG4gIEBmb3IgKF8gb2YgcXVlcnlJdGVtc0xpc3QkIHwgYXN5bmM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8Y2RzLXRpbGUgY2xhc3M9XCJjb3VudC10aWxlXCIgW2Nkc0xheWVyXT1cIjFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb3VudC10aWxlX19pbnB1dFwiIFtjZHNMYXllcl09XCIwXCI+XG4gICAgICAgIDx2LWlucHV0XG4gICAgICAgICAgW3RpdGxlXT1cIidjb3VudFRpdGxlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwib2JzLnF1ZXJ5SXRlbXNWYWx1ZVtpXT8ubGFiZWxcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJsYWJlbFZhbHVlQ2hhbmdlKGksICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdi1pbnB1dD5cblxuICAgICAgICA8dmFsdGltby1jYXJib24tbXVsdGktaW5wdXRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURpc2FibGVkXCJcbiAgICAgICAgICBbYWRkUm93VGV4dF09XCInYWRkQ29uZGl0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMucXVlcnlJdGVtc1ZhbHVlW2ldPy5xdWVyeUNvbmRpdGlvbnNcIlxuICAgICAgICAgIFtkcm9wZG93bkNvbHVtblRpdGxlXT1cIidvcGVyYXRvcicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgW2Ryb3Bkb3duSXRlbXNdPVwib3BlcmF0b3JJdGVtcyQgfCBhc3luY1wiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIxXCJcbiAgICAgICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjFcIlxuICAgICAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid2YWx1ZScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgdHlwZT1cImtleURyb3Bkb3duVmFsdWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb25kaXRpb25zVmFsdWVDaGFuZ2UoaSwgJGV2ZW50KVwiXG4gICAgICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb3VudC10aWxlX19kZWxldGUtYnV0dG9uXCI+XG4gICAgICAgIDxjZHMtaWNvbi1idXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURpc2FibGVkIHx8IGkgPCAyXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQ291bnQoaSlcIlxuICAgICAgICAgIGtpbmQ9XCJkYW5nZXJcIlxuICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICAgIDwvY2RzLWljb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZHMtdGlsZT5cbiAgfVxuXG4gIDxidXR0b25cbiAgICBjbGFzcz1cImFkZC1jb3VudC1idXR0b25cIlxuICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJhZGRRdWVyeUl0ZW0oKVwiXG4gID5cbiAgICB7eyAnQWFudGFsIHRvZXZvZWdlbicgfX1cblxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0QsUUFBUSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUtMLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBbUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUc5RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBT2hELE1BQU0sT0FBTyxnQ0FBZ0M7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QUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDakQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDMUUsQ0FBQztnQkFFRixPQUFPLENBQ0wsVUFBVTtvQkFDVixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQ3ZELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTTtnQkFDL0UsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDO29CQUNFLGlCQUFpQixFQUFFLFNBQVM7aUJBQzdCLENBQUM7UUFDUixDQUFDLENBQUM7SUFDSixDQUFDOytHQXRPVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQywyTkN4RDdDLG91SUE2R0E7OzRGRHJEYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTTs4TUFNL0IsYUFBYTtzQkFBNUIsS0FBSztnQkFlYyxRQUFRO3NCQUEzQixLQUFLO2dCQStCTyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBYVcsa0JBQWtCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25PdXRwdXQsIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50LCBPcGVyYXRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2FzZUNvdW50c0NvbmZpZ3VyYXRpb24sIENhc2VDb3VudHNRdWVyeUl0ZW0sIENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2UsIExpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7TGlzdEl0ZW1XaXRoSWQsIE11bHRpSW5wdXRWYWx1ZXMsIFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4fSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1dpZGdldFRyYW5zbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtBZGQxNiwgVHJhc2hDYW4xNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLWNvdW50cy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhU291cmNlS2V5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfRU1QVFlfUVVFUllfSVRFTV9WQUxVRTogQ2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm0gPSB7XG4gICAgbGFiZWw6ICcnLFxuICAgIHF1ZXJ5Q29uZGl0aW9uczogW3trZXk6ICcnLCB2YWx1ZTogJycsIGRyb3Bkb3duOiAnJ31dLFxuICB9O1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgZG9jdW1lbnREZWZpbml0aW9uOiB0aGlzLmZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBxdWVyeUl0ZW1zOiB0aGlzLmZiLmNvbnRyb2woXG4gICAgICBbdGhpcy5fRU1QVFlfUVVFUllfSVRFTV9WQUxVRSwgdGhpcy5fRU1QVFlfUVVFUllfSVRFTV9WQUxVRV0sXG4gICAgICBbdGhpcy5xdWVyeUl0ZW1zVmFsaWRhdG9yKCldXG4gICAgKSxcbiAgfSk7XG5cbiAgQElucHV0KCkgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZFZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKGRpc2FibGVkVmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5SXRlbXMoKTogQWJzdHJhY3RDb250cm9sPENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW10+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgncXVlcnlJdGVtcycpO1xuICB9XG5cbiAgcHVibGljIGdldCBxdWVyeUl0ZW1zVmFsdWUkKCk6IE9ic2VydmFibGU8Q2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm1bXT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5SXRlbXMudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMucXVlcnlJdGVtcy52YWx1ZSB8fCBbXSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBxdWVyeUl0ZW1zTGlzdCQoKTogT2JzZXJ2YWJsZTxudWxsW10+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeUl0ZW1zVmFsdWUkLnBpcGUoXG4gICAgICBtYXAocXVlcnlJdGVtc1ZhbHVlID0+IHF1ZXJ5SXRlbXNWYWx1ZS5tYXAoKCkgPT4gbnVsbCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBpc0VxdWFsKHByZXZpb3VzLCBjdXJyZW50KSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkb2N1bWVudERlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2RvY3VtZW50RGVmaW5pdGlvbicpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5kaXNhYmxlZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwcmVmaWxsQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uVmFsdWU6IENhc2VDb3VudHNDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uVmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uU2VsZWN0ZWQoe1xuICAgICAgaXRlbToge1xuICAgICAgICBjb250ZW50OiBjb25maWd1cmF0aW9uVmFsdWUuZG9jdW1lbnREZWZpbml0aW9uLFxuICAgICAgfSxcbiAgICB9IGFzIGFueSk7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb24ucGF0Y2hWYWx1ZShjb25maWd1cmF0aW9uVmFsdWUuZG9jdW1lbnREZWZpbml0aW9uKTtcblxuICAgIHRoaXMucXVlcnlJdGVtcy5wYXRjaFZhbHVlKHRoaXMucXVlcnlJdGVtc1RvTXVsdGlJbnB1dFZhbHVlcyhjb25maWd1cmF0aW9uVmFsdWUucXVlcnlJdGVtcykpO1xuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb25maWd1cmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIENvbmZpZ3VyYXRpb25PdXRwdXQ8Q2FzZUNvdW50c0NvbmZpZ3VyYXRpb24+XG4gID4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldEFsbERlZmluaXRpb25zKCksXG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZG9jdW1lbnREZWZpbml0aW9ucywgc2VsZWN0ZWREb2N1bWVudERlZmludGlvbl0pID0+XG4gICAgICBkb2N1bWVudERlZmluaXRpb25zLmNvbnRlbnQubWFwKGRlZmluaXRpb24gPT4gKHtcbiAgICAgICAgY29udGVudDogZGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICBzZWxlY3RlZDogZGVmaW5pdGlvbi5pZC5uYW1lID09PSBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX09QRVJBVE9SUzogQXJyYXk8T3BlcmF0b3I+ID0gW1xuICAgIE9wZXJhdG9yLk5PVF9FUVVBTF9UTyxcbiAgICBPcGVyYXRvci5FUVVBTF9UTyxcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU4sXG4gICAgT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTixcbiAgICBPcGVyYXRvci5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sXG4gIF07XG5cbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdG9ySXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtV2l0aElkPj4gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAuc3RyZWFtKCdrZXknKVxuICAgIC5waXBlKFxuICAgICAgbWFwKCgpID0+XG4gICAgICAgIHRoaXMuX09QRVJBVE9SUy5tYXAob3BlcmF0b3IgPT4gKHtcbiAgICAgICAgICBpZDogb3BlcmF0b3IsXG4gICAgICAgICAgY29udGVudDogdGhpcy53aWRnZXRUcmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChvcGVyYXRvciwgdGhpcy5kYXRhU291cmNlS2V5KSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4ID0gVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXg7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFRyYW5zbGF0aW9uU2VydmljZTogV2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW0FkZDE2LCBUcmFzaENhbjE2XSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRm9ybVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb2N1bWVudERlZmluaXRpb25TZWxlY3RlZChkb2N1bWVudERlZmluaXRpb25JdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSBkb2N1bWVudERlZmluaXRpb25JdGVtPy5pdGVtPy5jb250ZW50O1xuXG4gICAgaWYgKCFkb2N1bWVudERlZmluaXRpb25OYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQubmV4dChkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbi5zZXRWYWx1ZShkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25kaXRpb25zVmFsdWVDaGFuZ2UoaW5kZXg6IG51bWJlciwgdmFsdWVzOiBNdWx0aUlucHV0VmFsdWVzKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFF1ZXJ5SXRlbXNWYWx1ZXMgPSB0aGlzLnF1ZXJ5SXRlbXMudmFsdWU7XG5cbiAgICBpZiAoaXNFcXVhbChjdXJyZW50UXVlcnlJdGVtc1ZhbHVlc1tpbmRleF0ucXVlcnlDb25kaXRpb25zLCB2YWx1ZXMpKSByZXR1cm47XG5cbiAgICB0aGlzLnF1ZXJ5SXRlbXMucGF0Y2hWYWx1ZShcbiAgICAgIGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzLm1hcCgoaXRlbSwgaXRlbUluZGV4KSA9PlxuICAgICAgICBpdGVtSW5kZXggPT09IGluZGV4ID8gey4uLml0ZW0sIHF1ZXJ5Q29uZGl0aW9uczogdmFsdWVzfSA6IGl0ZW1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGxhYmVsVmFsdWVDaGFuZ2UoaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzID0gdGhpcy5xdWVyeUl0ZW1zLnZhbHVlO1xuXG4gICAgaWYgKGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzW2luZGV4XS5sYWJlbCA9PT0gdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMucXVlcnlJdGVtcy5wYXRjaFZhbHVlKFxuICAgICAgY3VycmVudFF1ZXJ5SXRlbXNWYWx1ZXMubWFwKChpdGVtLCBpdGVtSW5kZXgpID0+XG4gICAgICAgIGl0ZW1JbmRleCA9PT0gaW5kZXggPyB7Li4uaXRlbSwgbGFiZWw6IHZhbHVlfSA6IGl0ZW1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFF1ZXJ5SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UXVlcnlJdGVtcyA9IHRoaXMucXVlcnlJdGVtcy52YWx1ZTtcbiAgICB0aGlzLnF1ZXJ5SXRlbXMucGF0Y2hWYWx1ZShbLi4uY3VycmVudFF1ZXJ5SXRlbXMsIHRoaXMuX0VNUFRZX1FVRVJZX0lURU1fVkFMVUVdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVDb3VudChpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UXVlcnlJdGVtcyA9IHRoaXMucXVlcnlJdGVtcy52YWx1ZTtcbiAgICB0aGlzLnF1ZXJ5SXRlbXMucGF0Y2hWYWx1ZShjdXJyZW50UXVlcnlJdGVtcy5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gaSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRm9ybVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlKSkuc3Vic2NyaWJlKGZvcm1WYWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkV2ZW50LmVtaXQoe1xuICAgICAgICAgIHZhbGlkOiB0aGlzLmZvcm0udmFsaWQsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiBmb3JtVmFsdWU/LmRvY3VtZW50RGVmaW5pdGlvbixcbiAgICAgICAgICAgIHF1ZXJ5SXRlbXM6IHRoaXMubXVsdGlJbnB1dFZhbHVlc1RvUXVlcnlJdGVtcyhmb3JtVmFsdWUucXVlcnlJdGVtcyksXG4gICAgICAgICAgfSBhcyBDYXNlQ291bnRzQ29uZmlndXJhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5SXRlbXNUb011bHRpSW5wdXRWYWx1ZXMoXG4gICAgcXVlcnlJdGVtczogQ2FzZUNvdW50c1F1ZXJ5SXRlbVtdXG4gICk6IENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW10ge1xuICAgIHJldHVybiBxdWVyeUl0ZW1zLm1hcChxdWVyeUl0ZW0gPT4gKHtcbiAgICAgIC4uLnF1ZXJ5SXRlbSxcbiAgICAgIHF1ZXJ5Q29uZGl0aW9uczogcXVlcnlJdGVtLnF1ZXJ5Q29uZGl0aW9ucy5tYXAoY29uZGl0aW9uID0+ICh7XG4gICAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgICAgZHJvcGRvd246IGNvbmRpdGlvbi5xdWVyeU9wZXJhdG9yLFxuICAgICAgICB2YWx1ZTogY29uZGl0aW9uLnF1ZXJ5VmFsdWUsXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aUlucHV0VmFsdWVzVG9RdWVyeUl0ZW1zKFxuICAgIG11bHRpSW5wdXRWYWx1ZXM6IENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW11cbiAgKTogQ2FzZUNvdW50c1F1ZXJ5SXRlbVtdIHtcbiAgICByZXR1cm4gbXVsdGlJbnB1dFZhbHVlcy5tYXAocXVlcnlJdGVtID0+ICh7XG4gICAgICAuLi5xdWVyeUl0ZW0sXG4gICAgICBxdWVyeUNvbmRpdGlvbnM6IHF1ZXJ5SXRlbS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICBxdWVyeVBhdGg6IGNvbmRpdGlvbi5rZXksXG4gICAgICAgIHF1ZXJ5T3BlcmF0b3I6IGNvbmRpdGlvbi5kcm9wZG93bixcbiAgICAgICAgcXVlcnlWYWx1ZTogY29uZGl0aW9uLnZhbHVlLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgcXVlcnlJdGVtc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8Q2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm1bXT4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBxdWVyeUl0ZW1zID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGNvbnN0IHZhbGlkUXVlcnlJdGVtcyA9IHF1ZXJ5SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB2YWxpZExhYmVsID0gISFpdGVtLmxhYmVsO1xuICAgICAgICBjb25zdCB2YWxpZENvbmRpdGlvbnMgPSBpdGVtLnF1ZXJ5Q29uZGl0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgY29uZGl0aW9uID0+ICEhY29uZGl0aW9uLnZhbHVlICYmICEhY29uZGl0aW9uLmtleSAmJiAhIWNvbmRpdGlvbi5kcm9wZG93blxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdmFsaWRMYWJlbCAmJlxuICAgICAgICAgIHZhbGlkQ29uZGl0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgaXRlbS5xdWVyeUNvbmRpdGlvbnMubGVuZ3RoID09PSB2YWxpZENvbmRpdGlvbnMubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHZhbGlkUXVlcnlJdGVtcy5sZW5ndGggPiAxICYmIHZhbGlkUXVlcnlJdGVtcy5sZW5ndGggPT09IHF1ZXJ5SXRlbXMubGVuZ3RoXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGludmFsaWRRdWVyeUl0ZW1zOiAnaW52YWxpZCcsXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwiY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi1mb3JtXCJcbiAgKm5nSWY9XCJ7XG4gICAgZG9jdW1lbnRJdGVtczogZG9jdW1lbnRJdGVtcyQgfCBhc3luYyxcbiAgICBvcGVyYXRvckl0ZW1zOiBvcGVyYXRvckl0ZW1zJCxcbiAgICBxdWVyeUl0ZW1zVmFsdWU6IHF1ZXJ5SXRlbXNWYWx1ZSQgfCBhc3luYyxcbiAgICBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbjogc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtpbnZhbGlkVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZF09XCJkb2N1bWVudERlZmluaXRpb24uZGlydHkgJiYgZG9jdW1lbnREZWZpbml0aW9uLmludmFsaWRcIlxuICAgICAgW2xhYmVsXT1cIidkb2N1bWVudERlZmluaXRpb24nIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdGVkKT1cImRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzPy5kb2N1bWVudEl0ZW1zIHx8IFtdXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1kcm9wZG93bj5cbiAgPC9kaXY+XG5cbiAgPGNkcy1sYWJlbCBjbGFzcz1cImNvbmRpdGlvbnNfX2xhYmVsXCI+e3tcbiAgICAnY291bnRzJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXG4gIH19PC9jZHMtbGFiZWw+XG5cbiAgPHAgY2xhc3M9XCJjb25kaXRpb25zX19oZWxwZXItdGV4dCBjZHMtLWZvcm1fX2hlbHBlci10ZXh0XCI+XG4gICAge3sgJ2NvdW50c0hlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmMgfX1cbiAgPC9wPlxuXG4gIEBmb3IgKF8gb2YgcXVlcnlJdGVtc0xpc3QkIHwgYXN5bmM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8Y2RzLXRpbGUgY2xhc3M9XCJjb3VudC10aWxlXCIgW2Nkc0xheWVyXT1cIjFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb3VudC10aWxlX19pbnB1dFwiIFtjZHNMYXllcl09XCIwXCI+XG4gICAgICAgIDx2LWlucHV0XG4gICAgICAgICAgW3RpdGxlXT1cIidjb3VudFRpdGxlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwib2JzLnF1ZXJ5SXRlbXNWYWx1ZVtpXT8ubGFiZWxcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJsYWJlbFZhbHVlQ2hhbmdlKGksICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdi1pbnB1dD5cblxuICAgICAgICA8dmFsdGltby1jYXJib24tbXVsdGktaW5wdXRcbiAgICAgICAgICB0eXBlPVwidmFsdWVQYXRoU2VsZWN0b3JEcm9wZG93blZhbHVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURpc2FibGVkXCJcbiAgICAgICAgICBbYWRkUm93VGV4dF09XCInYWRkQ29uZGl0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMucXVlcnlJdGVtc1ZhbHVlW2ldPy5xdWVyeUNvbmRpdGlvbnNcIlxuICAgICAgICAgIFtkcm9wZG93bkNvbHVtblRpdGxlXT1cIidvcGVyYXRvcicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgW2Ryb3Bkb3duSXRlbXNdPVwib3BlcmF0b3JJdGVtcyQgfCBhc3luY1wiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIxXCJcbiAgICAgICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjFcIlxuICAgICAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid2YWx1ZScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgdmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbj1cImRvdHNcIlxuICAgICAgICAgIFt2YWx1ZVBhdGhTZWxlY3RvclByZWZpeGVzXT1cIltWYWx1ZVBhdGhTZWxlY3RvclByZWZpeC5ET0MsIFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LkNBU0VdXCJcbiAgICAgICAgICBbdmFsdWVQYXRoU2VsZWN0b3JTaG93RG9jdW1lbnREZWZpbml0aW9uU2VsZWN0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgIFt2YWx1ZVBhdGhTZWxlY3RvckRvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwib2JzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgICAgICBba2V5Q29sdW1uRmxleF09XCIyXCJcbiAgICAgICAgICBbZHJvcGRvd25Db2x1bW5GbGV4XT1cIjFcIlxuICAgICAgICAgIFt2YWx1ZUNvbHVtbkZsZXhdPVwiMVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImNvbmRpdGlvbnNWYWx1ZUNoYW5nZShpLCAkZXZlbnQpXCJcbiAgICAgICAgPjwvdmFsdGltby1jYXJib24tbXVsdGktaW5wdXQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNvdW50LXRpbGVfX2RlbGV0ZS1idXR0b25cIj5cbiAgICAgICAgPGNkcy1pY29uLWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWQgfHwgaSA8IDJcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb3VudChpKVwiXG4gICAgICAgICAga2luZD1cImRhbmdlclwiXG4gICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJ0cmFzaC1jYW5cIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgPC9jZHMtaWNvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkcy10aWxlPlxuICB9XG5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYWRkLWNvdW50LWJ1dHRvblwiXG4gICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgW2Rpc2FibGVkXT1cImZvcm1EaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImFkZFF1ZXJ5SXRlbSgpXCJcbiAgPlxuICAgIHt7ICdBYW50YWwgdG9ldm9lZ2VuJyB9fVxuXG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==