@cqa-lib/cqa-ui 1.1.191 → 1.1.193

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 (32) hide show
  1. package/esm2020/lib/autocomplete/autocomplete.component.mjs +156 -0
  2. package/esm2020/lib/autocomplete/autocomplete.model.mjs +2 -0
  3. package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +610 -11
  4. package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +505 -17
  5. package/esm2020/lib/test-case-details/delete-steps/delete-steps.component.mjs +32 -11
  6. package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +131 -9
  7. package/esm2020/lib/test-case-details/step-details-drawer/step-details-drawer-data.mjs +67 -1
  8. package/esm2020/lib/test-case-details/step-details-drawer/step-details-drawer-field.config.mjs +66 -1
  9. package/esm2020/lib/test-case-details/step-details-drawer/step-details-drawer.component.mjs +112 -191
  10. package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +31 -3
  11. package/esm2020/lib/test-case-details/test-case-details-renderer/test-case-details-renderer.component.mjs +128 -6
  12. package/esm2020/lib/ui-kit.module.mjs +6 -1
  13. package/esm2020/public-api.mjs +3 -1
  14. package/fesm2015/cqa-lib-cqa-ui.mjs +2153 -582
  15. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  16. package/fesm2020/cqa-lib-cqa-ui.mjs +2038 -451
  17. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  18. package/lib/autocomplete/autocomplete.component.d.ts +48 -0
  19. package/lib/autocomplete/autocomplete.model.d.ts +10 -0
  20. package/lib/test-case-details/api-edit-step/api-edit-step.component.d.ts +96 -8
  21. package/lib/test-case-details/condition-step/condition-step.component.d.ts +73 -4
  22. package/lib/test-case-details/delete-steps/delete-steps.component.d.ts +18 -2
  23. package/lib/test-case-details/loop-step/loop-step.component.d.ts +34 -4
  24. package/lib/test-case-details/step-details-drawer/step-details-drawer-data.d.ts +56 -0
  25. package/lib/test-case-details/step-details-drawer/step-details-drawer-field.config.d.ts +6 -0
  26. package/lib/test-case-details/step-details-drawer/step-details-drawer.component.d.ts +33 -27
  27. package/lib/test-case-details/step-group/step-group.component.d.ts +15 -1
  28. package/lib/test-case-details/test-case-details-renderer/test-case-details-renderer.component.d.ts +31 -5
  29. package/lib/ui-kit.module.d.ts +127 -126
  30. package/package.json +1 -1
  31. package/public-api.d.ts +2 -0
  32. package/styles.css +1 -1
@@ -1,3 +1,69 @@
1
1
  import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Supported API type values mapped to DynamicFieldConfig.type.
4
+ * All other values (or when type is missing) default to 'string' (textfield).
5
+ */
6
+ const API_TYPE_MAP = {
7
+ string: 'string',
8
+ number: 'number',
9
+ integer: 'number',
10
+ double: 'number',
11
+ boolean: 'boolean',
12
+ dropdown: 'dropdown',
13
+ textarea: 'textarea',
14
+ code: 'code',
15
+ regex: 'string',
16
+ url: 'string',
17
+ object: 'string',
18
+ array: 'string',
19
+ txt: 'string',
20
+ };
21
+ /**
22
+ * Humanizes a variable key for use as label (e.g. "iFrameLocator" → "I Frame Locator").
23
+ */
24
+ export function humanizeVariableKey(key) {
25
+ return key
26
+ .replace(/([A-Z])/g, ' $1')
27
+ .replace(/[-_.]+/g, ' ')
28
+ .replace(/^\s+|\s+$/g, '')
29
+ .replace(/\s+/g, ' ')
30
+ .replace(/^./, (s) => s.toUpperCase());
31
+ }
32
+ /**
33
+ * Maps API variables (e.g. natural_test_actions[].variables) to DynamicFieldConfig[].
34
+ * Use when the drawer is driven by API response instead of legacy step-type config.
35
+ */
36
+ export function mapApiVariablesToDynamicFields(variables, options) {
37
+ if (!variables || typeof variables !== 'object')
38
+ return [];
39
+ const labels = options?.labels ?? {};
40
+ const defaultSection = options?.section ?? 'main';
41
+ const result = [];
42
+ for (const key of Object.keys(variables)) {
43
+ const v = variables[key];
44
+ if (!v || typeof v !== 'object')
45
+ continue;
46
+ const label = labels[key] ?? humanizeVariableKey(key);
47
+ // When no type is provided, default to 'string' (textfield).
48
+ const apiType = (v.type ?? 'string');
49
+ const type = API_TYPE_MAP[apiType] ?? 'string';
50
+ let optionsList;
51
+ if (v.options && Array.isArray(v.options)) {
52
+ optionsList = v.options.map((o) => typeof o === 'object' && o !== null && 'label' in o && 'value' in o
53
+ ? { label: String(o.label), value: o.value }
54
+ : { label: String(o), value: o });
55
+ }
56
+ result.push({
57
+ key,
58
+ label,
59
+ type,
60
+ section: defaultSection,
61
+ options: optionsList?.length ? optionsList : undefined,
62
+ placeholder: v.default !== undefined && v.default !== null ? String(v.default) : undefined,
63
+ defaultValue: v.default,
64
+ });
65
+ }
66
+ return result;
67
+ }
2
68
  export const STEP_DETAILS_DRAWER_DATA = new InjectionToken('STEP_DETAILS_DRAWER_DATA');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1kZXRhaWxzLWRyYXdlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy9zdGVwLWRldGFpbHMtZHJhd2VyL3N0ZXAtZGV0YWlscy1kcmF3ZXItZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF3QiwwQkFBMEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlc3RDYXNlU3RlcENvbmZpZyB9IGZyb20gJy4uL3Rlc3QtY2FzZS1zdGVwLm1vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcERldGFpbHNEcmF3ZXJEYXRhIHtcbiAgc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnO1xuICBzdGVwTnVtYmVyOiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTVEVQX0RFVEFJTFNfRFJBV0VSX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RlcERldGFpbHNEcmF3ZXJEYXRhPignU1RFUF9ERVRBSUxTX0RSQVdFUl9EQVRBJyk7XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1kZXRhaWxzLWRyYXdlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy9zdGVwLWRldGFpbHMtZHJhd2VyL3N0ZXAtZGV0YWlscy1kcmF3ZXItZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBd0MvQzs7O0dBR0c7QUFDSCxNQUFNLFlBQVksR0FBK0M7SUFDL0QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsUUFBUTtJQUNmLEdBQUcsRUFBRSxRQUFRO0lBQ2IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLFFBQVE7SUFDZixHQUFHLEVBQUUsUUFBUTtDQUNkLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFXO0lBQzdDLE9BQU8sR0FBRztTQUNQLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1NBQ3ZCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ3pCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1NBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLFNBQTZDLEVBQzdDLE9BQXNGO0lBRXRGLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNELE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3JDLE1BQU0sY0FBYyxHQUFHLE9BQU8sRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUF5QixFQUFFLENBQUM7SUFDeEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7WUFBRSxTQUFTO1FBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RCw2REFBNkQ7UUFDN0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBVyxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxXQUE0RCxDQUFDO1FBQ2pFLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNoQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDO2dCQUNqRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFFLENBQXVDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFHLENBQXVDLENBQUMsS0FBSyxFQUFFO2dCQUMxSCxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FDbkMsQ0FBQztTQUNIO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLEdBQUc7WUFDSCxLQUFLO1lBQ0wsSUFBSTtZQUNKLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEQsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzFGLFlBQVksRUFBRSxDQUFDLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFXRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXN0Q2FzZVN0ZXBDb25maWcgfSBmcm9tICcuLi90ZXN0LWNhc2Utc3RlcC5tb2RlbHMnO1xuXG4vKipcbiAqIEFQSS1kcml2ZW4gZmllbGQgY29uZmlndXJhdGlvbiBmb3IgdGhlIFN0ZXAgRGV0YWlscyBEcmF3ZXIuXG4gKiBXaGVuIHR5cGUgaXMgdW5kZWZpbmVkIG9yIHVua25vd24sIHRyZWF0IGFzICdzdHJpbmcnICh0ZXh0IGlucHV0IC8gdGV4dGZpZWxkKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmllbGRDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFJlbmRlcmVkIGNvbnRyb2w6IHN0cmluZyAodGV4dGZpZWxkKSwgbnVtYmVyLCBib29sZWFuLCBkcm9wZG93biwgdGV4dGFyZWEsIGNvZGUuIFdoZW4gb21pdHRlZCwgZGVmYXVsdHMgdG8gJ3N0cmluZycuICovXG4gIHR5cGU/OiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ2Ryb3Bkb3duJyB8ICd0ZXh0YXJlYScgfCAnY29kZSc7XG4gIHNlY3Rpb24/OiAnbWFpbicgfCAnY29uc3RyYWludHMnIHwgJ2FkdmFuY2VkJztcbiAgb3B0aW9ucz86IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfVtdO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICByb3dzPzogbnVtYmVyO1xuICAvKiogT3B0aW9uYWwgZGVmYXVsdCB2YWx1ZSB3aGVuIHN0ZXAgaGFzIG5vIHZhbHVlIGZvciB0aGlzIGtleS4gKi9cbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbiAgLyoqIE9wdGlvbmFsIHN1Yi1sYWJlbCBmb3IgdG9nZ2xlcyAoZS5nLiBcIk9ubHkgdXNlIGVsZW1lbnRzIGZyb20gdGhlIGF0dGFjaGVkIGNvbnRleHRcIikuICovXG4gIHN1YkxhYmVsPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgdGlwIHRleHQgYmVsb3cgdGhlIGZpZWxkLiAqL1xuICB0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQVBJIHZhcmlhYmxlIHNjaGVtYSAoZS5nLiBmcm9tIG5hdHVyYWxfdGVzdF9hY3Rpb25zW10udmFyaWFibGVzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlWYXJpYWJsZVNjaGVtYSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiB1bmtub3duO1xuICBtdXRhYmxlPzogYm9vbGVhbjtcbiAgdHlwZT86IHN0cmluZztcbiAgLyoqIERyb3Bkb3duIG9wdGlvbnM6IGFycmF5IG9mIHN0cmluZ3MgKHZhbHVlIGFuZCBsYWJlbCkgb3IgeyBsYWJlbCwgdmFsdWUgfVtdLiAqL1xuICBvcHRpb25zPzogc3RyaW5nW10gfCB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH1bXTtcbn1cblxuLyoqIE1hcCBvZiB2YXJpYWJsZSBrZXkg4oaSIEFQSSB2YXJpYWJsZSBzY2hlbWEuICovXG5leHBvcnQgdHlwZSBBcGlWYXJpYWJsZXNNYXAgPSBSZWNvcmQ8c3RyaW5nLCBBcGlWYXJpYWJsZVNjaGVtYT47XG5cbi8qKlxuICogU3VwcG9ydGVkIEFQSSB0eXBlIHZhbHVlcyBtYXBwZWQgdG8gRHluYW1pY0ZpZWxkQ29uZmlnLnR5cGUuXG4gKiBBbGwgb3RoZXIgdmFsdWVzIChvciB3aGVuIHR5cGUgaXMgbWlzc2luZykgZGVmYXVsdCB0byAnc3RyaW5nJyAodGV4dGZpZWxkKS5cbiAqL1xuY29uc3QgQVBJX1RZUEVfTUFQOiBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljRmllbGRDb25maWdbJ3R5cGUnXT4gPSB7XG4gIHN0cmluZzogJ3N0cmluZycsXG4gIG51bWJlcjogJ251bWJlcicsXG4gIGludGVnZXI6ICdudW1iZXInLFxuICBkb3VibGU6ICdudW1iZXInLFxuICBib29sZWFuOiAnYm9vbGVhbicsXG4gIGRyb3Bkb3duOiAnZHJvcGRvd24nLFxuICB0ZXh0YXJlYTogJ3RleHRhcmVhJyxcbiAgY29kZTogJ2NvZGUnLFxuICByZWdleDogJ3N0cmluZycsXG4gIHVybDogJ3N0cmluZycsXG4gIG9iamVjdDogJ3N0cmluZycsXG4gIGFycmF5OiAnc3RyaW5nJyxcbiAgdHh0OiAnc3RyaW5nJyxcbn07XG5cbi8qKlxuICogSHVtYW5pemVzIGEgdmFyaWFibGUga2V5IGZvciB1c2UgYXMgbGFiZWwgKGUuZy4gXCJpRnJhbWVMb2NhdG9yXCIg4oaSIFwiSSBGcmFtZSBMb2NhdG9yXCIpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVWYXJpYWJsZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBrZXlcbiAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJylcbiAgICAucmVwbGFjZSgvWy1fLl0rL2csICcgJylcbiAgICAucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC5yZXBsYWNlKC9eLi8sIChzKSA9PiBzLnRvVXBwZXJDYXNlKCkpO1xufVxuXG4vKipcbiAqIE1hcHMgQVBJIHZhcmlhYmxlcyAoZS5nLiBuYXR1cmFsX3Rlc3RfYWN0aW9uc1tdLnZhcmlhYmxlcykgdG8gRHluYW1pY0ZpZWxkQ29uZmlnW10uXG4gKiBVc2Ugd2hlbiB0aGUgZHJhd2VyIGlzIGRyaXZlbiBieSBBUEkgcmVzcG9uc2UgaW5zdGVhZCBvZiBsZWdhY3kgc3RlcC10eXBlIGNvbmZpZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFwaVZhcmlhYmxlc1RvRHluYW1pY0ZpZWxkcyhcbiAgdmFyaWFibGVzOiBBcGlWYXJpYWJsZXNNYXAgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzogeyBsYWJlbHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyBzZWN0aW9uPzogRHluYW1pY0ZpZWxkQ29uZmlnWydzZWN0aW9uJ10gfVxuKTogRHluYW1pY0ZpZWxkQ29uZmlnW10ge1xuICBpZiAoIXZhcmlhYmxlcyB8fCB0eXBlb2YgdmFyaWFibGVzICE9PSAnb2JqZWN0JykgcmV0dXJuIFtdO1xuICBjb25zdCBsYWJlbHMgPSBvcHRpb25zPy5sYWJlbHMgPz8ge307XG4gIGNvbnN0IGRlZmF1bHRTZWN0aW9uID0gb3B0aW9ucz8uc2VjdGlvbiA/PyAnbWFpbic7XG4gIGNvbnN0IHJlc3VsdDogRHluYW1pY0ZpZWxkQ29uZmlnW10gPSBbXTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFyaWFibGVzKSkge1xuICAgIGNvbnN0IHYgPSB2YXJpYWJsZXNba2V5XTtcbiAgICBpZiAoIXYgfHwgdHlwZW9mIHYgIT09ICdvYmplY3QnKSBjb250aW51ZTtcbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsc1trZXldID8/IGh1bWFuaXplVmFyaWFibGVLZXkoa2V5KTtcbiAgICAvLyBXaGVuIG5vIHR5cGUgaXMgcHJvdmlkZWQsIGRlZmF1bHQgdG8gJ3N0cmluZycgKHRleHRmaWVsZCkuXG4gICAgY29uc3QgYXBpVHlwZSA9ICh2LnR5cGUgPz8gJ3N0cmluZycpIGFzIHN0cmluZztcbiAgICBjb25zdCB0eXBlID0gQVBJX1RZUEVfTUFQW2FwaVR5cGVdID8/ICdzdHJpbmcnO1xuICAgIGxldCBvcHRpb25zTGlzdDogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9W10gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHYub3B0aW9ucyAmJiBBcnJheS5pc0FycmF5KHYub3B0aW9ucykpIHtcbiAgICAgIG9wdGlvbnNMaXN0ID0gdi5vcHRpb25zLm1hcCgobykgPT5cbiAgICAgICAgdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIG8gIT09IG51bGwgJiYgJ2xhYmVsJyBpbiBvICYmICd2YWx1ZScgaW4gb1xuICAgICAgICAgID8geyBsYWJlbDogU3RyaW5nKChvIGFzIHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSkubGFiZWwpLCB2YWx1ZTogKG8gYXMgeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KS52YWx1ZSB9XG4gICAgICAgICAgOiB7IGxhYmVsOiBTdHJpbmcobyksIHZhbHVlOiBvIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgIGtleSxcbiAgICAgIGxhYmVsLFxuICAgICAgdHlwZSxcbiAgICAgIHNlY3Rpb246IGRlZmF1bHRTZWN0aW9uLFxuICAgICAgb3B0aW9uczogb3B0aW9uc0xpc3Q/Lmxlbmd0aCA/IG9wdGlvbnNMaXN0IDogdW5kZWZpbmVkLFxuICAgICAgcGxhY2Vob2xkZXI6IHYuZGVmYXVsdCAhPT0gdW5kZWZpbmVkICYmIHYuZGVmYXVsdCAhPT0gbnVsbCA/IFN0cmluZyh2LmRlZmF1bHQpIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdFZhbHVlOiB2LmRlZmF1bHQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwRGV0YWlsc0RyYXdlckRhdGEge1xuICBzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWc7XG4gIHN0ZXBOdW1iZXI6IG51bWJlciB8IHN0cmluZztcbiAgLyoqIER5bmFtaWMgZmllbGQgZGVmaW5pdGlvbnMgKGUuZy4gZnJvbSBBUEkgbmF0dXJhbF90ZXN0X2FjdGlvbnMudmFyaWFibGVzKS4gV2hlbiBwcm92aWRlZCwgZHJhd2VyIHJlbmRlcnMgZnJvbSB0aGlzIGFycmF5IG9ubHkuICovXG4gIGR5bmFtaWNGaWVsZHM6IER5bmFtaWNGaWVsZENvbmZpZ1tdO1xuICAvKiogT3B0aW9uYWwgZHJhd2VyIHRpdGxlIChlLmcuIFwiQVBJIFN0ZXAgRGV0YWlsc1wiKS4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBcIlN0ZXAgRGV0YWlsc1wiLiAqL1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFNURVBfREVUQUlMU19EUkFXRVJfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdGVwRGV0YWlsc0RyYXdlckRhdGE+KCdTVEVQX0RFVEFJTFNfRFJBV0VSX0RBVEEnKTtcbiJdfQ==
@@ -185,4 +185,69 @@ export const ADVANCED_SUBFIELDS_BY_TYPE = {
185
185
  api: [],
186
186
  aiAgent: ['retryCount', 'iframeLocator', 'otherLocators'],
187
187
  };
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1kZXRhaWxzLWRyYXdlci1maWVsZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3N0ZXAtZGV0YWlscy1kcmF3ZXIvc3RlcC1kZXRhaWxzLWRyYXdlci1maWVsZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsbUJBQW1CLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUEyQmxDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQTJDO0lBQ2hGLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNoRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFLLElBQXlCLENBQUMsU0FBUyxLQUFLLFFBQVE7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUNuRyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF1RDtJQUM3RixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUM7SUFDN0QsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztJQUM3RSxPQUFPLEVBQUU7UUFDUCxXQUFXO1FBQ1gsTUFBTTtRQUNOLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLHdCQUF3QjtRQUN4Qiw4QkFBOEI7UUFDOUIsWUFBWTtRQUNaLFVBQVU7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VyxFQUFFLFFBQVE7UUFDckIsT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDO0FBRUYsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUEwQixDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTNGLDZGQUE2RjtBQUM3RixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBdUQ7SUFDNUYsTUFBTSxFQUFFLEVBQUU7SUFDVixHQUFHLEVBQUUsRUFBRTtJQUNQLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDO0NBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIFN0ZXAgRGV0YWlscyBEcmF3ZXIgKEVkaXQgSW4gRGVwdGgpLlxuICogRm9ybSBpcyBmdWxseSBkeW5hbWljIGJ5IFN0ZXAgVHlwZSDigJMgbm8gaGFyZGNvZGVkIGZpZWxkIGxpc3RzLlxuICovXG5cbmltcG9ydCB7XG4gIFRlc3RDYXNlU3RlcENvbmZpZyxcbiAgTm9ybWFsU3RlcENvbmZpZyxcbiAgQXBpU3RlcENvbmZpZyxcbiAgQWlBZ2VudFN0ZXBDb25maWcsXG4gIGlzTm9ybWFsU3RlcENvbmZpZyxcbiAgaXNBcGlTdGVwQ29uZmlnLFxuICBpc0FpQWdlbnRTdGVwQ29uZmlnLFxufSBmcm9tICcuLi90ZXN0LWNhc2Utc3RlcC5tb2RlbHMnO1xuXG4vKiogRmllbGQga2V5cyB1c2VkIGZvciBjb25maWd1cmF0aW9uLWJhc2VkIHJlbmRlcmluZy4gKi9cbmV4cG9ydCB0eXBlIFN0ZXBEZXRhaWxzRmllbGRLZXkgPVxuICB8ICdkZXNjcmlwdGlvbidcbiAgfCAnbWV0YWRhdGEnXG4gIHwgJ3JldHJ5Q291bnQnXG4gIHwgJ2FkdmFuY2VkJ1xuICB8ICdtZXRob2QnXG4gIHwgJ3VybCdcbiAgfCAnaGVhZGVycydcbiAgfCAnYm9keSdcbiAgfCAnc2F2ZU91dHB1dEFzVmFyaWFibGUnXG4gIHwgJ2FnZW50VGFzaydcbiAgfCAndHlwZSdcbiAgfCAnZW52aXJvbm1lbnQnXG4gIHwgJ21heFJldHJpZXMnXG4gIHwgJ29ubHlVc2VBdHRhY2hlZENvbnRleHQnXG4gIHwgJ3Rha2VTY3JlZW5zaG90c1doZW5WZXJpZnlpbmcnXG4gIHwgJ2lmcmFtZUxvY2F0b3InXG4gIHwgJ290aGVyTG9jYXRvcnMnXG4gIHwgJ2NvbnRpbnVlT25FcnJvcidcbiAgfCAnZGlzYWJsZWQnO1xuXG4vKiogU3RlcCB0eXBlIGZvciB0aGUgZHJhd2VyIChkcml2ZXMgd2hpY2ggZmllbGRzIGFyZSBzaG93bikuICovXG5leHBvcnQgdHlwZSBTdGVwRGV0YWlsc1N0ZXBUeXBlID0gJ2N1c3RvbScgfCAnYXBpJyB8ICdhaUFnZW50JztcblxuLyoqXG4gKiBSZXNvbHZlcyBkcmF3ZXIgc3RlcCB0eXBlIGZyb20gYSB0ZXN0IGNhc2Ugc3RlcCBjb25maWcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGVwRGV0YWlsc1N0ZXBUeXBlKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyB8IG51bGwgfCB1bmRlZmluZWQpOiBTdGVwRGV0YWlsc1N0ZXBUeXBlIHwgbnVsbCB7XG4gIGlmICghc3RlcCkgcmV0dXJuIG51bGw7XG4gIGlmIChpc0FwaVN0ZXBDb25maWcoc3RlcCkpIHJldHVybiAnYXBpJztcbiAgaWYgKGlzQWlBZ2VudFN0ZXBDb25maWcoc3RlcCkpIHJldHVybiAnYWlBZ2VudCc7XG4gIGlmIChpc05vcm1hbFN0ZXBDb25maWcoc3RlcCkgJiYgKHN0ZXAgYXMgTm9ybWFsU3RlcENvbmZpZykuZXZlbnRUeXBlID09PSAnY3VzdG9tJykgcmV0dXJuICdjdXN0b20nO1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBGaWVsZHMgc2hvd24gcGVyIHN0ZXAgdHlwZSAoY29uZmlndXJhdGlvbi1iYXNlZCkuXG4gKiBDdXN0b206IERlc2NyaXB0aW9uLCBNZXRhZGF0YSwgUmV0cnkgQ291bnQgKGlmIGNvbmZpZ3VyZWQpLCBBZHZhbmNlZCAoaWYgY29uZmlndXJlZCkuXG4gKiBBUEk6IE1ldGhvZCwgVVJMLCBIZWFkZXJzLCBCb2R5LCBTYXZlIE91dHB1dCBhcyBWYXJpYWJsZSwgQWR2YW5jZWQgKGlmIGNvbmZpZ3VyZWQpLlxuICogQUkgQWdlbnQ6IEFnZW50IFRhc2ssIFR5cGUsIE1ldGFkYXRhLCBFbnZpcm9ubWVudCwgRGVzY3JpcHRpb24sIENvbnN0cmFpbnRzICh0b2dnbGVzICsgTWF4IFJldHJpZXMpLCBBZHZhbmNlZCAodG9nZ2xlcyArIFJldHJ5IENvdW50LCBJZnJhbWUgbG9jYXRvciwgT3RoZXIgTG9jYXRvcnMpLlxuICovXG5leHBvcnQgY29uc3QgU1RFUF9ERVRBSUxTX0ZJRUxEU19CWV9UWVBFOiBSZWNvcmQ8U3RlcERldGFpbHNTdGVwVHlwZSwgU3RlcERldGFpbHNGaWVsZEtleVtdPiA9IHtcbiAgY3VzdG9tOiBbJ2Rlc2NyaXB0aW9uJywgJ21ldGFkYXRhJywgJ3JldHJ5Q291bnQnLCAnYWR2YW5jZWQnXSxcbiAgYXBpOiBbJ21ldGhvZCcsICd1cmwnLCAnaGVhZGVycycsICdib2R5JywgJ3NhdmVPdXRwdXRBc1ZhcmlhYmxlJywgJ2FkdmFuY2VkJ10sXG4gIGFpQWdlbnQ6IFtcbiAgICAnYWdlbnRUYXNrJyxcbiAgICAndHlwZScsXG4gICAgJ21ldGFkYXRhJyxcbiAgICAnZW52aXJvbm1lbnQnLFxuICAgICdkZXNjcmlwdGlvbicsXG4gICAgJ29ubHlVc2VBdHRhY2hlZENvbnRleHQnLFxuICAgICd0YWtlU2NyZWVuc2hvdHNXaGVuVmVyaWZ5aW5nJyxcbiAgICAnbWF4UmV0cmllcycsXG4gICAgJ2FkdmFuY2VkJyxcbiAgICAncmV0cnlDb3VudCcsXG4gICAgJ2lmcmFtZUxvY2F0b3InLFxuICAgICdvdGhlckxvY2F0b3JzJyxcbiAgXSxcbn07XG5cbi8qKiBTZWN0aW9uIGZvciBncm91cGluZyBmaWVsZHMgKG1haW4gZm9ybSwgY29uc3RyYWludHMsIG9yIGluc2lkZSBhZHZhbmNlZCkuICovXG5leHBvcnQgdHlwZSBTdGVwRGV0YWlsc0ZpZWxkU2VjdGlvbiA9ICdtYWluJyB8ICdjb25zdHJhaW50cycgfCAnYWR2YW5jZWQnO1xuXG4vKiogT3B0aW9uIGZvciBkcm9wZG93biBmaWVsZHMgKHZhbHVlL2xhYmVsKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcERldGFpbHNTZWxlY3RPcHRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKiogTWV0YWRhdGEgcGVyIGZpZWxkIChsYWJlbCwgcGxhY2Vob2xkZXIsIGNvbnRyb2wgdHlwZSwgdmlzaWJpbGl0eSkuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBEZXRhaWxzRmllbGRNZXRhIHtcbiAga2V5OiBTdGVwRGV0YWlsc0ZpZWxkS2V5O1xuICBsYWJlbDogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgY29udHJvbFR5cGU6ICd0ZXh0JyB8ICd0ZXh0YXJlYScgfCAnZHJvcGRvd24nIHwgJ2NvZGUnIHwgJ3RvZ2dsZUdyb3VwJyB8ICd0b2dnbGUnO1xuICAvKiogU2VjdGlvbiBmb3IgZ3JvdXBpbmc7IHVzZWQgZm9yIGNvbmRpdGlvbmFsIGhlYWRpbmdzIChlLmcuIFwiQ29uc3RyYWludHNcIikuICovXG4gIHNlY3Rpb24/OiBTdGVwRGV0YWlsc0ZpZWxkU2VjdGlvbjtcbiAgLyoqIERyb3Bkb3duIG9wdGlvbnMgKGZvciBjb250cm9sVHlwZSA9PT0gJ2Ryb3Bkb3duJykuICovXG4gIG9wdGlvbnM/OiBTdGVwRGV0YWlsc1NlbGVjdE9wdGlvbltdO1xuICAvKiogV2hldGhlciB0aGUgZmllbGQgaXMgcmVxdWlyZWQgKGUuZy4gc2hvdyBSZXF1aXJlZCBwaWxsKS4gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogVGV4dGFyZWEgcm93cy4gKi9cbiAgcm93cz86IG51bWJlcjtcbiAgLyoqIEhlbHBlciB0ZXh0IG9yIHRpcCBiZWxvdyB0aGUgZmllbGQuICovXG4gIHRpcD86IHN0cmluZztcbiAgLyoqIFN1Yi1sYWJlbCBvciBkZXNjcmlwdGlvbiBmb3IgdG9nZ2xlcyAoZS5nLiBcIk9ubHkgdXNlIGVsZW1lbnRzIGZyb20gdGhlIGF0dGFjaGVkIGNvbnRleHRcIikuICovXG4gIHN1YkxhYmVsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU1RFUF9ERVRBSUxTX0ZJRUxEX01FVEE6IFJlY29yZDxTdGVwRGV0YWlsc0ZpZWxkS2V5LCBTdGVwRGV0YWlsc0ZpZWxkTWV0YT4gPSB7XG4gIGRlc2NyaXB0aW9uOiB7IGtleTogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6ICdEZXNjcmlwdGlvbicsIHBsYWNlaG9sZGVyOiAnVGV4dCBJbnB1dCcsIGNvbnRyb2xUeXBlOiAndGV4dCcsIHNlY3Rpb246ICdtYWluJyB9LFxuICBtZXRhZGF0YTogeyBrZXk6ICdtZXRhZGF0YScsIGxhYmVsOiAnTWV0YWRhdGEnLCBwbGFjZWhvbGRlcjogJ1RleHQgSW5wdXQnLCBjb250cm9sVHlwZTogJ3RleHQnLCBzZWN0aW9uOiAnbWFpbicgfSxcbiAgcmV0cnlDb3VudDoge1xuICAgIGtleTogJ3JldHJ5Q291bnQnLFxuICAgIGxhYmVsOiAnUmV0cnkgQ291bnQnLFxuICAgIHBsYWNlaG9sZGVyOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ2FkdmFuY2VkJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnMCcsIGxhYmVsOiAnMCcgfSxcbiAgICAgIHsgdmFsdWU6ICcxJywgbGFiZWw6ICcxJyB9LFxuICAgICAgeyB2YWx1ZTogJzInLCBsYWJlbDogJzInIH0sXG4gICAgICB7IHZhbHVlOiAnMycsIGxhYmVsOiAnMycgfSxcbiAgICBdLFxuICB9LFxuICBhZHZhbmNlZDogeyBrZXk6ICdhZHZhbmNlZCcsIGxhYmVsOiAnQWR2YW5jZWQnLCBjb250cm9sVHlwZTogJ3RvZ2dsZUdyb3VwJyB9LFxuICBtZXRob2Q6IHtcbiAgICBrZXk6ICdtZXRob2QnLFxuICAgIGxhYmVsOiAnTWV0aG9kJyxcbiAgICBwbGFjZWhvbGRlcjogJ01ldGhvZCcsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ21haW4nLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdHRVQnLCBsYWJlbDogJ0dFVCcgfSxcbiAgICAgIHsgdmFsdWU6ICdQT1NUJywgbGFiZWw6ICdQT1NUJyB9LFxuICAgICAgeyB2YWx1ZTogJ1BVVCcsIGxhYmVsOiAnUFVUJyB9LFxuICAgICAgeyB2YWx1ZTogJ0RFTEVURScsIGxhYmVsOiAnREVMRVRFJyB9LFxuICAgICAgeyB2YWx1ZTogJ1BBVENIJywgbGFiZWw6ICdQQVRDSCcgfSxcbiAgICBdLFxuICB9LFxuICB1cmw6IHsga2V5OiAndXJsJywgbGFiZWw6ICdVUkwnLCBwbGFjZWhvbGRlcjogJ1VSTCcsIGNvbnRyb2xUeXBlOiAndGV4dCcsIHNlY3Rpb246ICdtYWluJyB9LFxuICBoZWFkZXJzOiB7IGtleTogJ2hlYWRlcnMnLCBsYWJlbDogJ0hlYWRlcnMnLCBjb250cm9sVHlwZTogJ3RleHQnLCBzZWN0aW9uOiAnbWFpbicgfSxcbiAgYm9keTogeyBrZXk6ICdib2R5JywgbGFiZWw6ICdCb2R5JywgcGxhY2Vob2xkZXI6ICdSZXF1ZXN0IGJvZHknLCBjb250cm9sVHlwZTogJ2NvZGUnLCBzZWN0aW9uOiAnbWFpbicgfSxcbiAgc2F2ZU91dHB1dEFzVmFyaWFibGU6IHtcbiAgICBrZXk6ICdzYXZlT3V0cHV0QXNWYXJpYWJsZScsXG4gICAgbGFiZWw6ICdTYXZlIE91dHB1dCBhcyBWYXJpYWJsZScsXG4gICAgcGxhY2Vob2xkZXI6ICdWYXJpYWJsZSBuYW1lJyxcbiAgICBjb250cm9sVHlwZTogJ3RleHQnLFxuICAgIHNlY3Rpb246ICdtYWluJyxcbiAgfSxcbiAgYWdlbnRUYXNrOiB7XG4gICAga2V5OiAnYWdlbnRUYXNrJyxcbiAgICBsYWJlbDogJ0FnZW50IFRhc2snLFxuICAgIHBsYWNlaG9sZGVyOiAnV2hhdCBzaG91bGQgdGhlIGFnZW50IGFjaGlldmU/JyxcbiAgICBjb250cm9sVHlwZTogJ3RleHRhcmVhJyxcbiAgICBzZWN0aW9uOiAnbWFpbicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgcm93czogNCxcbiAgICB0aXA6ICdUaXA6IFVzZSBudW1iZXJlZCBzdGVwcyBvciBidWxsZXQgcG9pbnRzIGZvciBjb21wbGV4IHRhc2tzLicsXG4gIH0sXG4gIHR5cGU6IHtcbiAgICBrZXk6ICd0eXBlJyxcbiAgICBsYWJlbDogJ1R5cGUnLFxuICAgIHBsYWNlaG9sZGVyOiAnVHlwZScsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ21haW4nLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdkZWZhdWx0JywgbGFiZWw6ICdEZWZhdWx0JyB9LFxuICAgICAgeyB2YWx1ZTogJ2Jyb3dzZXInLCBsYWJlbDogJ0Jyb3dzZXInIH0sXG4gICAgXSxcbiAgfSxcbiAgZW52aXJvbm1lbnQ6IHtcbiAgICBrZXk6ICdlbnZpcm9ubWVudCcsXG4gICAgbGFiZWw6ICdFbnZpcm9ubWVudCcsXG4gICAgcGxhY2Vob2xkZXI6ICdFbnZpcm9ubWVudCcsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ21haW4nLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdkZWZhdWx0JywgbGFiZWw6ICdEZWZhdWx0JyB9LFxuICAgICAgeyB2YWx1ZTogJ3N0YWdpbmcnLCBsYWJlbDogJ1N0YWdpbmcnIH0sXG4gICAgICB7IHZhbHVlOiAncHJvZCcsIGxhYmVsOiAnUHJvZHVjdGlvbicgfSxcbiAgICBdLFxuICB9LFxuICBtYXhSZXRyaWVzOiB7XG4gICAga2V5OiAnbWF4UmV0cmllcycsXG4gICAgbGFiZWw6ICdNYXggUmV0cmllcycsXG4gICAgcGxhY2Vob2xkZXI6ICczIHJldHJpZXMgKHJlY29tbWVuZGVkKScsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ2NvbnN0cmFpbnRzJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnMCcsIGxhYmVsOiAnMCcgfSxcbiAgICAgIHsgdmFsdWU6ICcxJywgbGFiZWw6ICcxJyB9LFxuICAgICAgeyB2YWx1ZTogJzInLCBsYWJlbDogJzInIH0sXG4gICAgICB7IHZhbHVlOiAnMycsIGxhYmVsOiAnMyByZXRyaWVzIChyZWNvbW1lbmRlZCknIH0sXG4gICAgXSxcbiAgfSxcbiAgb25seVVzZUF0dGFjaGVkQ29udGV4dDoge1xuICAgIGtleTogJ29ubHlVc2VBdHRhY2hlZENvbnRleHQnLFxuICAgIGxhYmVsOiAnVXNlIGV4aXN0aW5nIGVsZW1lbnRzIG9ubHknLFxuICAgIHN1YkxhYmVsOiAnT25seSB1c2UgZWxlbWVudHMgZnJvbSB0aGUgYXR0YWNoZWQgY29udGV4dCcsXG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIHNlY3Rpb246ICdjb25zdHJhaW50cycsXG4gIH0sXG4gIHRha2VTY3JlZW5zaG90c1doZW5WZXJpZnlpbmc6IHtcbiAgICBrZXk6ICd0YWtlU2NyZWVuc2hvdHNXaGVuVmVyaWZ5aW5nJyxcbiAgICBsYWJlbDogJ0NhcHR1cmUgZXZpZGVuY2UnLFxuICAgIHN1YkxhYmVsOiAnVGFrZSBzY3JlZW5zaG90cyB3aGVuIHZlcmlmeWluZyBjb25kaXRpb25zJyxcbiAgICBjb250cm9sVHlwZTogJ3RvZ2dsZScsXG4gICAgc2VjdGlvbjogJ2NvbnN0cmFpbnRzJyxcbiAgfSxcbiAgaWZyYW1lTG9jYXRvcjoge1xuICAgIGtleTogJ2lmcmFtZUxvY2F0b3InLFxuICAgIGxhYmVsOiAnSWZyYW1lIGxvY2F0b3InLFxuICAgIHBsYWNlaG9sZGVyOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ2FkdmFuY2VkJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnbWFudWFsJywgbGFiZWw6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyB9LFxuICAgIF0sXG4gIH0sXG4gIG90aGVyTG9jYXRvcnM6IHtcbiAgICBrZXk6ICdvdGhlckxvY2F0b3JzJyxcbiAgICBsYWJlbDogJ090aGVyIExvY2F0b3JzJyxcbiAgICBwbGFjZWhvbGRlcjogJ0R5bmFtaWMgc2VhcmNoIHNlbGVjdG9yIGZyb20gbGlicmFyeSBvciBtYW51YWwnLFxuICAgIGNvbnRyb2xUeXBlOiAnZHJvcGRvd24nLFxuICAgIHNlY3Rpb246ICdhZHZhbmNlZCcsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ21hbnVhbCcsIGxhYmVsOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcgfSxcbiAgICBdLFxuICB9LFxuICBjb250aW51ZU9uRXJyb3I6IHtcbiAgICBrZXk6ICdjb250aW51ZU9uRXJyb3InLFxuICAgIGxhYmVsOiAnQ29udGludWUgb24gRXJyb3InLFxuICAgIHN1YkxhYmVsOiBcIkRvbid0IGZhaWwgdGhlIHRlc3QgaWYgdGhpcyBzdGVwIGZhaWxzLlwiLFxuICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICBzZWN0aW9uOiAnYWR2YW5jZWQnLFxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIGtleTogJ2Rpc2FibGVkJyxcbiAgICBsYWJlbDogJ0Rpc2FibGVkJyxcbiAgICBzdWJMYWJlbDogJ1NraXAgdGhpcyBzdGVwIGR1cmluZyBleGVjdXRpb24uJyxcbiAgICBjb250cm9sVHlwZTogJ3RvZ2dsZScsXG4gICAgc2VjdGlvbjogJ2FkdmFuY2VkJyxcbiAgfSxcbn07XG5cbi8qKiBUb2dnbGUgZmllbGRzIGFsd2F5cyBzaG93biBpbnNpZGUgdGhlIEFkdmFuY2VkIHNlY3Rpb24uICovXG5leHBvcnQgY29uc3QgQURWQU5DRURfVE9HR0xFX0tFWVM6IFN0ZXBEZXRhaWxzRmllbGRLZXlbXSA9IFsnY29udGludWVPbkVycm9yJywgJ2Rpc2FibGVkJ107XG5cbi8qKiBGaWVsZCBrZXlzIHNob3duIGluc2lkZSBBZHZhbmNlZCAocGVyIHN0ZXAgdHlwZSksIGluIGFkZGl0aW9uIHRvIEFEVkFOQ0VEX1RPR0dMRV9LRVlTLiAqL1xuZXhwb3J0IGNvbnN0IEFEVkFOQ0VEX1NVQkZJRUxEU19CWV9UWVBFOiBSZWNvcmQ8U3RlcERldGFpbHNTdGVwVHlwZSwgU3RlcERldGFpbHNGaWVsZEtleVtdPiA9IHtcbiAgY3VzdG9tOiBbXSxcbiAgYXBpOiBbXSxcbiAgYWlBZ2VudDogWydyZXRyeUNvdW50JywgJ2lmcmFtZUxvY2F0b3InLCAnb3RoZXJMb2NhdG9ycyddLFxufTtcbiJdfQ==
188
+ /**
189
+ * Converts legacy step-type config to DynamicFieldConfig[] for backward compatibility.
190
+ * Use when opening the drawer without API-provided dynamic fields (e.g. Storybook, migration).
191
+ */
192
+ export function getDynamicFieldsFromLegacyConfig(step) {
193
+ const type = getStepDetailsStepType(step);
194
+ if (!type)
195
+ return [];
196
+ const keys = STEP_DETAILS_FIELDS_BY_TYPE[type].filter((k) => k !== 'advanced');
197
+ const result = [];
198
+ for (const key of keys) {
199
+ const meta = STEP_DETAILS_FIELD_META[key];
200
+ if (!meta)
201
+ continue;
202
+ const typeMap = {
203
+ text: 'string',
204
+ textarea: 'textarea',
205
+ code: 'code',
206
+ dropdown: 'dropdown',
207
+ toggle: 'boolean',
208
+ toggleGroup: undefined,
209
+ };
210
+ const fieldType = meta.controlType === 'toggleGroup' ? undefined : typeMap[meta.controlType];
211
+ result.push({
212
+ key: meta.key,
213
+ label: meta.label,
214
+ type: fieldType ?? 'string',
215
+ section: meta.section ?? 'main',
216
+ options: meta.options?.map((o) => ({ label: o.label, value: o.value })),
217
+ placeholder: meta.placeholder,
218
+ required: meta.required,
219
+ rows: meta.rows,
220
+ subLabel: meta.subLabel,
221
+ tip: meta.tip,
222
+ });
223
+ }
224
+ const advancedKeys = [...ADVANCED_TOGGLE_KEYS, ...ADVANCED_SUBFIELDS_BY_TYPE[type]];
225
+ for (const key of advancedKeys) {
226
+ const meta = STEP_DETAILS_FIELD_META[key];
227
+ if (!meta || result.some((f) => f.key === key))
228
+ continue;
229
+ const typeMap = {
230
+ text: 'string',
231
+ textarea: 'textarea',
232
+ code: 'code',
233
+ dropdown: 'dropdown',
234
+ toggle: 'boolean',
235
+ toggleGroup: undefined,
236
+ };
237
+ const fieldType = meta.controlType === 'toggleGroup' ? undefined : typeMap[meta.controlType];
238
+ result.push({
239
+ key: meta.key,
240
+ label: meta.label,
241
+ type: fieldType ?? 'string',
242
+ section: 'advanced',
243
+ options: meta.options?.map((o) => ({ label: o.label, value: o.value })),
244
+ placeholder: meta.placeholder,
245
+ required: meta.required,
246
+ rows: meta.rows,
247
+ subLabel: meta.subLabel,
248
+ tip: meta.tip,
249
+ });
250
+ }
251
+ return result;
252
+ }
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1kZXRhaWxzLWRyYXdlci1maWVsZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3N0ZXAtZGV0YWlscy1kcmF3ZXIvc3RlcC1kZXRhaWxzLWRyYXdlci1maWVsZC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsbUJBQW1CLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUEyQmxDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQTJDO0lBQ2hGLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNoRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFLLElBQXlCLENBQUMsU0FBUyxLQUFLLFFBQVE7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUNuRyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF1RDtJQUM3RixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUM7SUFDN0QsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztJQUM3RSxPQUFPLEVBQUU7UUFDUCxXQUFXO1FBQ1gsTUFBTTtRQUNOLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLHdCQUF3QjtRQUN4Qiw4QkFBOEI7UUFDOUIsWUFBWTtRQUNaLFVBQVU7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VUFBbUI7WUFDN0IsTUFBTSxFQUFFLFNBQWtCO1lBQzFCLFdBQVcsRUFBRSxTQUFTO1NBQ3ZCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDVixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsSUFBSSxFQUFFLFNBQVMsSUFBSSxRQUFRO1lBQzNCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN2RSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIFN0ZXAgRGV0YWlscyBEcmF3ZXIgKEVkaXQgSW4gRGVwdGgpLlxuICogRm9ybSBpcyBmdWxseSBkeW5hbWljIGJ5IFN0ZXAgVHlwZSDigJMgbm8gaGFyZGNvZGVkIGZpZWxkIGxpc3RzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRHluYW1pY0ZpZWxkQ29uZmlnIH0gZnJvbSAnLi9zdGVwLWRldGFpbHMtZHJhd2VyLWRhdGEnO1xuaW1wb3J0IHtcbiAgVGVzdENhc2VTdGVwQ29uZmlnLFxuICBOb3JtYWxTdGVwQ29uZmlnLFxuICBBcGlTdGVwQ29uZmlnLFxuICBBaUFnZW50U3RlcENvbmZpZyxcbiAgaXNOb3JtYWxTdGVwQ29uZmlnLFxuICBpc0FwaVN0ZXBDb25maWcsXG4gIGlzQWlBZ2VudFN0ZXBDb25maWcsXG59IGZyb20gJy4uL3Rlc3QtY2FzZS1zdGVwLm1vZGVscyc7XG5cbi8qKiBGaWVsZCBrZXlzIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24tYmFzZWQgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IHR5cGUgU3RlcERldGFpbHNGaWVsZEtleSA9XG4gIHwgJ2Rlc2NyaXB0aW9uJ1xuICB8ICdtZXRhZGF0YSdcbiAgfCAncmV0cnlDb3VudCdcbiAgfCAnYWR2YW5jZWQnXG4gIHwgJ21ldGhvZCdcbiAgfCAndXJsJ1xuICB8ICdoZWFkZXJzJ1xuICB8ICdib2R5J1xuICB8ICdzYXZlT3V0cHV0QXNWYXJpYWJsZSdcbiAgfCAnYWdlbnRUYXNrJ1xuICB8ICd0eXBlJ1xuICB8ICdlbnZpcm9ubWVudCdcbiAgfCAnbWF4UmV0cmllcydcbiAgfCAnb25seVVzZUF0dGFjaGVkQ29udGV4dCdcbiAgfCAndGFrZVNjcmVlbnNob3RzV2hlblZlcmlmeWluZydcbiAgfCAnaWZyYW1lTG9jYXRvcidcbiAgfCAnb3RoZXJMb2NhdG9ycydcbiAgfCAnY29udGludWVPbkVycm9yJ1xuICB8ICdkaXNhYmxlZCc7XG5cbi8qKiBTdGVwIHR5cGUgZm9yIHRoZSBkcmF3ZXIgKGRyaXZlcyB3aGljaCBmaWVsZHMgYXJlIHNob3duKS4gKi9cbmV4cG9ydCB0eXBlIFN0ZXBEZXRhaWxzU3RlcFR5cGUgPSAnY3VzdG9tJyB8ICdhcGknIHwgJ2FpQWdlbnQnO1xuXG4vKipcbiAqIFJlc29sdmVzIGRyYXdlciBzdGVwIHR5cGUgZnJvbSBhIHRlc3QgY2FzZSBzdGVwIGNvbmZpZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0ZXBEZXRhaWxzU3RlcFR5cGUoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFN0ZXBEZXRhaWxzU3RlcFR5cGUgfCBudWxsIHtcbiAgaWYgKCFzdGVwKSByZXR1cm4gbnVsbDtcbiAgaWYgKGlzQXBpU3RlcENvbmZpZyhzdGVwKSkgcmV0dXJuICdhcGknO1xuICBpZiAoaXNBaUFnZW50U3RlcENvbmZpZyhzdGVwKSkgcmV0dXJuICdhaUFnZW50JztcbiAgaWYgKGlzTm9ybWFsU3RlcENvbmZpZyhzdGVwKSAmJiAoc3RlcCBhcyBOb3JtYWxTdGVwQ29uZmlnKS5ldmVudFR5cGUgPT09ICdjdXN0b20nKSByZXR1cm4gJ2N1c3RvbSc7XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEZpZWxkcyBzaG93biBwZXIgc3RlcCB0eXBlIChjb25maWd1cmF0aW9uLWJhc2VkKS5cbiAqIEN1c3RvbTogRGVzY3JpcHRpb24sIE1ldGFkYXRhLCBSZXRyeSBDb3VudCAoaWYgY29uZmlndXJlZCksIEFkdmFuY2VkIChpZiBjb25maWd1cmVkKS5cbiAqIEFQSTogTWV0aG9kLCBVUkwsIEhlYWRlcnMsIEJvZHksIFNhdmUgT3V0cHV0IGFzIFZhcmlhYmxlLCBBZHZhbmNlZCAoaWYgY29uZmlndXJlZCkuXG4gKiBBSSBBZ2VudDogQWdlbnQgVGFzaywgVHlwZSwgTWV0YWRhdGEsIEVudmlyb25tZW50LCBEZXNjcmlwdGlvbiwgQ29uc3RyYWludHMgKHRvZ2dsZXMgKyBNYXggUmV0cmllcyksIEFkdmFuY2VkICh0b2dnbGVzICsgUmV0cnkgQ291bnQsIElmcmFtZSBsb2NhdG9yLCBPdGhlciBMb2NhdG9ycykuXG4gKi9cbmV4cG9ydCBjb25zdCBTVEVQX0RFVEFJTFNfRklFTERTX0JZX1RZUEU6IFJlY29yZDxTdGVwRGV0YWlsc1N0ZXBUeXBlLCBTdGVwRGV0YWlsc0ZpZWxkS2V5W10+ID0ge1xuICBjdXN0b206IFsnZGVzY3JpcHRpb24nLCAnbWV0YWRhdGEnLCAncmV0cnlDb3VudCcsICdhZHZhbmNlZCddLFxuICBhcGk6IFsnbWV0aG9kJywgJ3VybCcsICdoZWFkZXJzJywgJ2JvZHknLCAnc2F2ZU91dHB1dEFzVmFyaWFibGUnLCAnYWR2YW5jZWQnXSxcbiAgYWlBZ2VudDogW1xuICAgICdhZ2VudFRhc2snLFxuICAgICd0eXBlJyxcbiAgICAnbWV0YWRhdGEnLFxuICAgICdlbnZpcm9ubWVudCcsXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnb25seVVzZUF0dGFjaGVkQ29udGV4dCcsXG4gICAgJ3Rha2VTY3JlZW5zaG90c1doZW5WZXJpZnlpbmcnLFxuICAgICdtYXhSZXRyaWVzJyxcbiAgICAnYWR2YW5jZWQnLFxuICAgICdyZXRyeUNvdW50JyxcbiAgICAnaWZyYW1lTG9jYXRvcicsXG4gICAgJ290aGVyTG9jYXRvcnMnLFxuICBdLFxufTtcblxuLyoqIFNlY3Rpb24gZm9yIGdyb3VwaW5nIGZpZWxkcyAobWFpbiBmb3JtLCBjb25zdHJhaW50cywgb3IgaW5zaWRlIGFkdmFuY2VkKS4gKi9cbmV4cG9ydCB0eXBlIFN0ZXBEZXRhaWxzRmllbGRTZWN0aW9uID0gJ21haW4nIHwgJ2NvbnN0cmFpbnRzJyB8ICdhZHZhbmNlZCc7XG5cbi8qKiBPcHRpb24gZm9yIGRyb3Bkb3duIGZpZWxkcyAodmFsdWUvbGFiZWwpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwRGV0YWlsc1NlbGVjdE9wdGlvbiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8qKiBNZXRhZGF0YSBwZXIgZmllbGQgKGxhYmVsLCBwbGFjZWhvbGRlciwgY29udHJvbCB0eXBlLCB2aXNpYmlsaXR5KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcERldGFpbHNGaWVsZE1ldGEge1xuICBrZXk6IFN0ZXBEZXRhaWxzRmllbGRLZXk7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjb250cm9sVHlwZTogJ3RleHQnIHwgJ3RleHRhcmVhJyB8ICdkcm9wZG93bicgfCAnY29kZScgfCAndG9nZ2xlR3JvdXAnIHwgJ3RvZ2dsZSc7XG4gIC8qKiBTZWN0aW9uIGZvciBncm91cGluZzsgdXNlZCBmb3IgY29uZGl0aW9uYWwgaGVhZGluZ3MgKGUuZy4gXCJDb25zdHJhaW50c1wiKS4gKi9cbiAgc2VjdGlvbj86IFN0ZXBEZXRhaWxzRmllbGRTZWN0aW9uO1xuICAvKiogRHJvcGRvd24gb3B0aW9ucyAoZm9yIGNvbnRyb2xUeXBlID09PSAnZHJvcGRvd24nKS4gKi9cbiAgb3B0aW9ucz86IFN0ZXBEZXRhaWxzU2VsZWN0T3B0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZCAoZS5nLiBzaG93IFJlcXVpcmVkIHBpbGwpLiAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIC8qKiBUZXh0YXJlYSByb3dzLiAqL1xuICByb3dzPzogbnVtYmVyO1xuICAvKiogSGVscGVyIHRleHQgb3IgdGlwIGJlbG93IHRoZSBmaWVsZC4gKi9cbiAgdGlwPzogc3RyaW5nO1xuICAvKiogU3ViLWxhYmVsIG9yIGRlc2NyaXB0aW9uIGZvciB0b2dnbGVzIChlLmcuIFwiT25seSB1c2UgZWxlbWVudHMgZnJvbSB0aGUgYXR0YWNoZWQgY29udGV4dFwiKS4gKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTVEVQX0RFVEFJTFNfRklFTERfTUVUQTogUmVjb3JkPFN0ZXBEZXRhaWxzRmllbGRLZXksIFN0ZXBEZXRhaWxzRmllbGRNZXRhPiA9IHtcbiAgZGVzY3JpcHRpb246IHsga2V5OiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ0Rlc2NyaXB0aW9uJywgcGxhY2Vob2xkZXI6ICdUZXh0IElucHV0JywgY29udHJvbFR5cGU6ICd0ZXh0Jywgc2VjdGlvbjogJ21haW4nIH0sXG4gIG1ldGFkYXRhOiB7IGtleTogJ21ldGFkYXRhJywgbGFiZWw6ICdNZXRhZGF0YScsIHBsYWNlaG9sZGVyOiAnVGV4dCBJbnB1dCcsIGNvbnRyb2xUeXBlOiAndGV4dCcsIHNlY3Rpb246ICdtYWluJyB9LFxuICByZXRyeUNvdW50OiB7XG4gICAga2V5OiAncmV0cnlDb3VudCcsXG4gICAgbGFiZWw6ICdSZXRyeSBDb3VudCcsXG4gICAgcGxhY2Vob2xkZXI6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnYWR2YW5jZWQnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICcwJywgbGFiZWw6ICcwJyB9LFxuICAgICAgeyB2YWx1ZTogJzEnLCBsYWJlbDogJzEnIH0sXG4gICAgICB7IHZhbHVlOiAnMicsIGxhYmVsOiAnMicgfSxcbiAgICAgIHsgdmFsdWU6ICczJywgbGFiZWw6ICczJyB9LFxuICAgIF0sXG4gIH0sXG4gIGFkdmFuY2VkOiB7IGtleTogJ2FkdmFuY2VkJywgbGFiZWw6ICdBZHZhbmNlZCcsIGNvbnRyb2xUeXBlOiAndG9nZ2xlR3JvdXAnIH0sXG4gIG1ldGhvZDoge1xuICAgIGtleTogJ21ldGhvZCcsXG4gICAgbGFiZWw6ICdNZXRob2QnLFxuICAgIHBsYWNlaG9sZGVyOiAnTWV0aG9kJyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnbWFpbicsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ0dFVCcsIGxhYmVsOiAnR0VUJyB9LFxuICAgICAgeyB2YWx1ZTogJ1BPU1QnLCBsYWJlbDogJ1BPU1QnIH0sXG4gICAgICB7IHZhbHVlOiAnUFVUJywgbGFiZWw6ICdQVVQnIH0sXG4gICAgICB7IHZhbHVlOiAnREVMRVRFJywgbGFiZWw6ICdERUxFVEUnIH0sXG4gICAgICB7IHZhbHVlOiAnUEFUQ0gnLCBsYWJlbDogJ1BBVENIJyB9LFxuICAgIF0sXG4gIH0sXG4gIHVybDogeyBrZXk6ICd1cmwnLCBsYWJlbDogJ1VSTCcsIHBsYWNlaG9sZGVyOiAnVVJMJywgY29udHJvbFR5cGU6ICd0ZXh0Jywgc2VjdGlvbjogJ21haW4nIH0sXG4gIGhlYWRlcnM6IHsga2V5OiAnaGVhZGVycycsIGxhYmVsOiAnSGVhZGVycycsIGNvbnRyb2xUeXBlOiAndGV4dCcsIHNlY3Rpb246ICdtYWluJyB9LFxuICBib2R5OiB7IGtleTogJ2JvZHknLCBsYWJlbDogJ0JvZHknLCBwbGFjZWhvbGRlcjogJ1JlcXVlc3QgYm9keScsIGNvbnRyb2xUeXBlOiAnY29kZScsIHNlY3Rpb246ICdtYWluJyB9LFxuICBzYXZlT3V0cHV0QXNWYXJpYWJsZToge1xuICAgIGtleTogJ3NhdmVPdXRwdXRBc1ZhcmlhYmxlJyxcbiAgICBsYWJlbDogJ1NhdmUgT3V0cHV0IGFzIFZhcmlhYmxlJyxcbiAgICBwbGFjZWhvbGRlcjogJ1ZhcmlhYmxlIG5hbWUnLFxuICAgIGNvbnRyb2xUeXBlOiAndGV4dCcsXG4gICAgc2VjdGlvbjogJ21haW4nLFxuICB9LFxuICBhZ2VudFRhc2s6IHtcbiAgICBrZXk6ICdhZ2VudFRhc2snLFxuICAgIGxhYmVsOiAnQWdlbnQgVGFzaycsXG4gICAgcGxhY2Vob2xkZXI6ICdXaGF0IHNob3VsZCB0aGUgYWdlbnQgYWNoaWV2ZT8nLFxuICAgIGNvbnRyb2xUeXBlOiAndGV4dGFyZWEnLFxuICAgIHNlY3Rpb246ICdtYWluJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICByb3dzOiA0LFxuICAgIHRpcDogJ1RpcDogVXNlIG51bWJlcmVkIHN0ZXBzIG9yIGJ1bGxldCBwb2ludHMgZm9yIGNvbXBsZXggdGFza3MuJyxcbiAgfSxcbiAgdHlwZToge1xuICAgIGtleTogJ3R5cGUnLFxuICAgIGxhYmVsOiAnVHlwZScsXG4gICAgcGxhY2Vob2xkZXI6ICdUeXBlJyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnbWFpbicsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ2RlZmF1bHQnLCBsYWJlbDogJ0RlZmF1bHQnIH0sXG4gICAgICB7IHZhbHVlOiAnYnJvd3NlcicsIGxhYmVsOiAnQnJvd3NlcicgfSxcbiAgICBdLFxuICB9LFxuICBlbnZpcm9ubWVudDoge1xuICAgIGtleTogJ2Vudmlyb25tZW50JyxcbiAgICBsYWJlbDogJ0Vudmlyb25tZW50JyxcbiAgICBwbGFjZWhvbGRlcjogJ0Vudmlyb25tZW50JyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnbWFpbicsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ2RlZmF1bHQnLCBsYWJlbDogJ0RlZmF1bHQnIH0sXG4gICAgICB7IHZhbHVlOiAnc3RhZ2luZycsIGxhYmVsOiAnU3RhZ2luZycgfSxcbiAgICAgIHsgdmFsdWU6ICdwcm9kJywgbGFiZWw6ICdQcm9kdWN0aW9uJyB9LFxuICAgIF0sXG4gIH0sXG4gIG1heFJldHJpZXM6IHtcbiAgICBrZXk6ICdtYXhSZXRyaWVzJyxcbiAgICBsYWJlbDogJ01heCBSZXRyaWVzJyxcbiAgICBwbGFjZWhvbGRlcjogJzMgcmV0cmllcyAocmVjb21tZW5kZWQpJyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnY29uc3RyYWludHMnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICcwJywgbGFiZWw6ICcwJyB9LFxuICAgICAgeyB2YWx1ZTogJzEnLCBsYWJlbDogJzEnIH0sXG4gICAgICB7IHZhbHVlOiAnMicsIGxhYmVsOiAnMicgfSxcbiAgICAgIHsgdmFsdWU6ICczJywgbGFiZWw6ICczIHJldHJpZXMgKHJlY29tbWVuZGVkKScgfSxcbiAgICBdLFxuICB9LFxuICBvbmx5VXNlQXR0YWNoZWRDb250ZXh0OiB7XG4gICAga2V5OiAnb25seVVzZUF0dGFjaGVkQ29udGV4dCcsXG4gICAgbGFiZWw6ICdVc2UgZXhpc3RpbmcgZWxlbWVudHMgb25seScsXG4gICAgc3ViTGFiZWw6ICdPbmx5IHVzZSBlbGVtZW50cyBmcm9tIHRoZSBhdHRhY2hlZCBjb250ZXh0JyxcbiAgICBjb250cm9sVHlwZTogJ3RvZ2dsZScsXG4gICAgc2VjdGlvbjogJ2NvbnN0cmFpbnRzJyxcbiAgfSxcbiAgdGFrZVNjcmVlbnNob3RzV2hlblZlcmlmeWluZzoge1xuICAgIGtleTogJ3Rha2VTY3JlZW5zaG90c1doZW5WZXJpZnlpbmcnLFxuICAgIGxhYmVsOiAnQ2FwdHVyZSBldmlkZW5jZScsXG4gICAgc3ViTGFiZWw6ICdUYWtlIHNjcmVlbnNob3RzIHdoZW4gdmVyaWZ5aW5nIGNvbmRpdGlvbnMnLFxuICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICBzZWN0aW9uOiAnY29uc3RyYWludHMnLFxuICB9LFxuICBpZnJhbWVMb2NhdG9yOiB7XG4gICAga2V5OiAnaWZyYW1lTG9jYXRvcicsXG4gICAgbGFiZWw6ICdJZnJhbWUgbG9jYXRvcicsXG4gICAgcGxhY2Vob2xkZXI6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyxcbiAgICBjb250cm9sVHlwZTogJ2Ryb3Bkb3duJyxcbiAgICBzZWN0aW9uOiAnYWR2YW5jZWQnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdtYW51YWwnLCBsYWJlbDogJ0R5bmFtaWMgc2VhcmNoIHNlbGVjdG9yIGZyb20gbGlicmFyeSBvciBtYW51YWwnIH0sXG4gICAgXSxcbiAgfSxcbiAgb3RoZXJMb2NhdG9yczoge1xuICAgIGtleTogJ290aGVyTG9jYXRvcnMnLFxuICAgIGxhYmVsOiAnT3RoZXIgTG9jYXRvcnMnLFxuICAgIHBsYWNlaG9sZGVyOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcsXG4gICAgY29udHJvbFR5cGU6ICdkcm9wZG93bicsXG4gICAgc2VjdGlvbjogJ2FkdmFuY2VkJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnbWFudWFsJywgbGFiZWw6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyB9LFxuICAgIF0sXG4gIH0sXG4gIGNvbnRpbnVlT25FcnJvcjoge1xuICAgIGtleTogJ2NvbnRpbnVlT25FcnJvcicsXG4gICAgbGFiZWw6ICdDb250aW51ZSBvbiBFcnJvcicsXG4gICAgc3ViTGFiZWw6IFwiRG9uJ3QgZmFpbCB0aGUgdGVzdCBpZiB0aGlzIHN0ZXAgZmFpbHMuXCIsXG4gICAgY29udHJvbFR5cGU6ICd0b2dnbGUnLFxuICAgIHNlY3Rpb246ICdhZHZhbmNlZCcsXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAga2V5OiAnZGlzYWJsZWQnLFxuICAgIGxhYmVsOiAnRGlzYWJsZWQnLFxuICAgIHN1YkxhYmVsOiAnU2tpcCB0aGlzIHN0ZXAgZHVyaW5nIGV4ZWN1dGlvbi4nLFxuICAgIGNvbnRyb2xUeXBlOiAndG9nZ2xlJyxcbiAgICBzZWN0aW9uOiAnYWR2YW5jZWQnLFxuICB9LFxufTtcblxuLyoqIFRvZ2dsZSBmaWVsZHMgYWx3YXlzIHNob3duIGluc2lkZSB0aGUgQWR2YW5jZWQgc2VjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBBRFZBTkNFRF9UT0dHTEVfS0VZUzogU3RlcERldGFpbHNGaWVsZEtleVtdID0gWydjb250aW51ZU9uRXJyb3InLCAnZGlzYWJsZWQnXTtcblxuLyoqIEZpZWxkIGtleXMgc2hvd24gaW5zaWRlIEFkdmFuY2VkIChwZXIgc3RlcCB0eXBlKSwgaW4gYWRkaXRpb24gdG8gQURWQU5DRURfVE9HR0xFX0tFWVMuICovXG5leHBvcnQgY29uc3QgQURWQU5DRURfU1VCRklFTERTX0JZX1RZUEU6IFJlY29yZDxTdGVwRGV0YWlsc1N0ZXBUeXBlLCBTdGVwRGV0YWlsc0ZpZWxkS2V5W10+ID0ge1xuICBjdXN0b206IFtdLFxuICBhcGk6IFtdLFxuICBhaUFnZW50OiBbJ3JldHJ5Q291bnQnLCAnaWZyYW1lTG9jYXRvcicsICdvdGhlckxvY2F0b3JzJ10sXG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGxlZ2FjeSBzdGVwLXR5cGUgY29uZmlnIHRvIER5bmFtaWNGaWVsZENvbmZpZ1tdIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICogVXNlIHdoZW4gb3BlbmluZyB0aGUgZHJhd2VyIHdpdGhvdXQgQVBJLXByb3ZpZGVkIGR5bmFtaWMgZmllbGRzIChlLmcuIFN0b3J5Ym9vaywgbWlncmF0aW9uKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldER5bmFtaWNGaWVsZHNGcm9tTGVnYWN5Q29uZmlnKFxuICBzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiBEeW5hbWljRmllbGRDb25maWdbXSB7XG4gIGNvbnN0IHR5cGUgPSBnZXRTdGVwRGV0YWlsc1N0ZXBUeXBlKHN0ZXApO1xuICBpZiAoIXR5cGUpIHJldHVybiBbXTtcblxuICBjb25zdCBrZXlzID0gU1RFUF9ERVRBSUxTX0ZJRUxEU19CWV9UWVBFW3R5cGVdLmZpbHRlcigoaykgPT4gayAhPT0gJ2FkdmFuY2VkJyk7XG4gIGNvbnN0IHJlc3VsdDogRHluYW1pY0ZpZWxkQ29uZmlnW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgY29uc3QgbWV0YSA9IFNURVBfREVUQUlMU19GSUVMRF9NRVRBW2tleV07XG4gICAgaWYgKCFtZXRhKSBjb250aW51ZTtcblxuICAgIGNvbnN0IHR5cGVNYXAgPSB7XG4gICAgICB0ZXh0OiAnc3RyaW5nJyBhcyBjb25zdCxcbiAgICAgIHRleHRhcmVhOiAndGV4dGFyZWEnIGFzIGNvbnN0LFxuICAgICAgY29kZTogJ2NvZGUnIGFzIGNvbnN0LFxuICAgICAgZHJvcGRvd246ICdkcm9wZG93bicgYXMgY29uc3QsXG4gICAgICB0b2dnbGU6ICdib29sZWFuJyBhcyBjb25zdCxcbiAgICAgIHRvZ2dsZUdyb3VwOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICBjb25zdCBmaWVsZFR5cGUgPSBtZXRhLmNvbnRyb2xUeXBlID09PSAndG9nZ2xlR3JvdXAnID8gdW5kZWZpbmVkIDogdHlwZU1hcFttZXRhLmNvbnRyb2xUeXBlXTtcblxuICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgIGtleTogbWV0YS5rZXksXG4gICAgICBsYWJlbDogbWV0YS5sYWJlbCxcbiAgICAgIHR5cGU6IGZpZWxkVHlwZSA/PyAnc3RyaW5nJyxcbiAgICAgIHNlY3Rpb246IG1ldGEuc2VjdGlvbiA/PyAnbWFpbicsXG4gICAgICBvcHRpb25zOiBtZXRhLm9wdGlvbnM/Lm1hcCgobykgPT4gKHsgbGFiZWw6IG8ubGFiZWwsIHZhbHVlOiBvLnZhbHVlIH0pKSxcbiAgICAgIHBsYWNlaG9sZGVyOiBtZXRhLnBsYWNlaG9sZGVyLFxuICAgICAgcmVxdWlyZWQ6IG1ldGEucmVxdWlyZWQsXG4gICAgICByb3dzOiBtZXRhLnJvd3MsXG4gICAgICBzdWJMYWJlbDogbWV0YS5zdWJMYWJlbCxcbiAgICAgIHRpcDogbWV0YS50aXAsXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBhZHZhbmNlZEtleXMgPSBbLi4uQURWQU5DRURfVE9HR0xFX0tFWVMsIC4uLkFEVkFOQ0VEX1NVQkZJRUxEU19CWV9UWVBFW3R5cGVdXTtcbiAgZm9yIChjb25zdCBrZXkgb2YgYWR2YW5jZWRLZXlzKSB7XG4gICAgY29uc3QgbWV0YSA9IFNURVBfREVUQUlMU19GSUVMRF9NRVRBW2tleV07XG4gICAgaWYgKCFtZXRhIHx8IHJlc3VsdC5zb21lKChmKSA9PiBmLmtleSA9PT0ga2V5KSkgY29udGludWU7XG4gICAgY29uc3QgdHlwZU1hcCA9IHtcbiAgICAgIHRleHQ6ICdzdHJpbmcnIGFzIGNvbnN0LFxuICAgICAgdGV4dGFyZWE6ICd0ZXh0YXJlYScgYXMgY29uc3QsXG4gICAgICBjb2RlOiAnY29kZScgYXMgY29uc3QsXG4gICAgICBkcm9wZG93bjogJ2Ryb3Bkb3duJyBhcyBjb25zdCxcbiAgICAgIHRvZ2dsZTogJ2Jvb2xlYW4nIGFzIGNvbnN0LFxuICAgICAgdG9nZ2xlR3JvdXA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICAgIGNvbnN0IGZpZWxkVHlwZSA9IG1ldGEuY29udHJvbFR5cGUgPT09ICd0b2dnbGVHcm91cCcgPyB1bmRlZmluZWQgOiB0eXBlTWFwW21ldGEuY29udHJvbFR5cGVdO1xuICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgIGtleTogbWV0YS5rZXksXG4gICAgICBsYWJlbDogbWV0YS5sYWJlbCxcbiAgICAgIHR5cGU6IGZpZWxkVHlwZSA/PyAnc3RyaW5nJyxcbiAgICAgIHNlY3Rpb246ICdhZHZhbmNlZCcsXG4gICAgICBvcHRpb25zOiBtZXRhLm9wdGlvbnM/Lm1hcCgobykgPT4gKHsgbGFiZWw6IG8ubGFiZWwsIHZhbHVlOiBvLnZhbHVlIH0pKSxcbiAgICAgIHBsYWNlaG9sZGVyOiBtZXRhLnBsYWNlaG9sZGVyLFxuICAgICAgcmVxdWlyZWQ6IG1ldGEucmVxdWlyZWQsXG4gICAgICByb3dzOiBtZXRhLnJvd3MsXG4gICAgICBzdWJMYWJlbDogbWV0YS5zdWJMYWJlbCxcbiAgICAgIHRpcDogbWV0YS50aXAsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19