@wavemaker/app-ng-runtime 12.0.0-next.45076 → 12.0.0-next.45080

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +8 -1
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +9 -2
  3. app-ng-runtime/build-task/fesm2022/index.mjs +8 -1
  4. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  5. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +49 -12
  6. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +11 -4
  7. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +51 -11
  8. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +50 -10
  9. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/components/base/bundles/index.umd.js +13 -3
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +14 -4
  12. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -2
  13. app-ng-runtime/components/base/fesm2022/index.mjs +14 -4
  14. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  15. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +1 -0
  16. app-ng-runtime/components/basic/search/bundles/index.umd.js +36 -24
  17. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +33 -24
  18. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +5 -2
  19. app-ng-runtime/components/basic/search/fesm2022/index.mjs +36 -24
  20. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  21. app-ng-runtime/components/basic/search/search.component.d.ts +3 -0
  22. app-ng-runtime/components/data/form/bundles/index.umd.js +23 -11
  23. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +24 -12
  24. app-ng-runtime/components/data/form/fesm2022/index.mjs +23 -11
  25. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  26. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  27. app-ng-runtime/components/input/default/base-form-custom.component.d.ts +2 -1
  28. app-ng-runtime/components/input/default/bundles/index.umd.js +13 -4
  29. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -2
  30. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +6 -1
  31. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +3 -1
  32. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +5 -5
  33. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +3 -1
  34. app-ng-runtime/components/input/default/fesm2022/index.mjs +13 -4
  35. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  36. app-ng-runtime/core/bundles/index.umd.js +6 -6
  37. app-ng-runtime/core/enums/enums.d.ts +2 -2
  38. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -2
  39. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -6
  40. app-ng-runtime/core/fesm2022/index.mjs +6 -6
  41. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  42. app-ng-runtime/package.json +1 -1
  43. app-ng-runtime/runtime/base/bundles/index.umd.js +9 -0
  44. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +2 -0
  45. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +10 -1
  46. app-ng-runtime/runtime/base/fesm2022/index.mjs +9 -0
  47. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
@@ -1012,6 +1012,13 @@
1012
1012
  }
1013
1013
  };
1014
1014
  const getWidgetTemplate = (attrs, options) => {
1015
+ let customAttrs = ``;
1016
+ if (options.widgetType === "custom-widget") {
1017
+ for (let [key, value] of attrs) {
1018
+ if (key.startsWith('prop-'))
1019
+ customAttrs += key + '="' + value + '" ';
1020
+ }
1021
+ }
1015
1022
  const name = attrs.get('name');
1016
1023
  const customWidgetName = attrs.get('widgetname');
1017
1024
  const fieldName = (attrs.get('key') || name || '').trim();
@@ -1019,7 +1026,7 @@
1019
1026
  const tmplRef = options.isMaxWidget ? `#formWidgetMax` : `#formWidget`;
1020
1027
  const widgetName = name ? (options.isMaxWidget ? `name="${name}_formWidgetMax"` : `name="${name}_formWidget"`) : '';
1021
1028
  const conditionalClass = `[ngClass]="${attrs.get('ngclass')}"`;
1022
- const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName}` : ''}`;
1029
+ const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName} ${customAttrs}` : ''}`;
1023
1030
  return core.getFormWidgetTemplate(options.widgetType, defaultTmpl, attrs, { counter: options.counter, pCounter: options.pCounter });
1024
1031
  };
1025
1032
  const getTemplate = (attrs, widgetType, eventsTmpl, counter, pCounter, isInList) => {
@@ -52,6 +52,13 @@ const setDefaultPlaceholder = (attrs, widgetType, index) => {
52
52
  }
53
53
  };
54
54
  const getWidgetTemplate = (attrs, options) => {
55
+ let customAttrs = ``;
56
+ if (options.widgetType === "custom-widget") {
57
+ for (let [key, value] of attrs) {
58
+ if (key.startsWith('prop-'))
59
+ customAttrs += key + '="' + value + '" ';
60
+ }
61
+ }
55
62
  const name = attrs.get('name');
56
63
  const customWidgetName = attrs.get('widgetname');
57
64
  const fieldName = (attrs.get('key') || name || '').trim();
@@ -59,7 +66,7 @@ const getWidgetTemplate = (attrs, options) => {
59
66
  const tmplRef = options.isMaxWidget ? `#formWidgetMax` : `#formWidget`;
60
67
  const widgetName = name ? (options.isMaxWidget ? `name="${name}_formWidgetMax"` : `name="${name}_formWidget"`) : '';
61
68
  const conditionalClass = `[ngClass]="${attrs.get('ngclass')}"`;
62
- const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName}` : ''}`;
69
+ const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName} ${customAttrs}` : ''}`;
63
70
  return getFormWidgetTemplate(options.widgetType, defaultTmpl, attrs, { counter: options.counter, pCounter: options.pCounter });
64
71
  };
65
72
  const getTemplate = (attrs, widgetType, eventsTmpl, counter, pCounter, isInList) => {
@@ -158,4 +165,4 @@ const registerFormField = (isFormField) => {
158
165
  register('wm-form-field', registerFormField.bind(this, true));
159
166
  register('wm-filter-field', registerFormField.bind(this, false));
160
167
  export default () => { };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNkLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7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QXR0ciwgSUJ1aWxkVGFza0RlZiwgcmVnaXN0ZXJ9IGZyb20gJ0B3bS90cmFuc3BpbGVyJztcbmltcG9ydCB7XG4gICAgRm9ybVdpZGdldFR5cGUsXG4gICAgZ2VuZXJhdGVHVUlkLFxuICAgIGdldEZvcm1XaWRnZXRUZW1wbGF0ZSxcbiAgICBnZXRSZXF1aXJlZEZvcm1XaWRnZXQsXG4gICAgSURHZW5lcmF0b3IsXG4gICAgaXNNb2JpbGVBcHBcbn0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQge0FMTEZJRUxEUywgaXNEYXRhU2V0V2lkZ2V0fSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlscyc7XG5cbmNvbnN0IHRhZ05hbWUgPSAnZGl2JztcbmNvbnN0IGlkR2VuID0gbmV3IElER2VuZXJhdG9yKCdmb3JtZmllbGRfJyk7XG5cbmNvbnN0IGdldEV2ZW50c1RlbXBsYXRlID0gKGF0dHJzKSA9PiB7XG4gICAgY29uc3QgZXZlbnRBdHRycyA9IG5ldyBNYXAoKTtcbiAgICBpZiAoIWF0dHJzLmhhcygnZm9jdXMuZXZlbnQnKSkge1xuICAgICAgICBhdHRycy5zZXQoJ2ZvY3VzLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBpZiAoIWF0dHJzLmhhcygnYmx1ci5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnYmx1ci5ldmVudCcsICcnKTtcbiAgICB9XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgIGlmIChrZXkuZW5kc1dpdGgoJy5ldmVudCcpKSB7XG4gICAgICAgICAgIGlmIChrZXkgPT09ICdmb2N1cy5ldmVudCcpIHtcbiAgICAgICAgICAgICAgIHZhbHVlID0gYF9vbkZvY3VzRmllbGQoJGV2ZW50KTske3ZhbHVlfWA7XG4gICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYmx1ci5ldmVudCcpIHtcbiAgICAgICAgICAgICAgIHZhbHVlID0gYF9vbkJsdXJGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfVxuICAgICAgICAgICBldmVudEF0dHJzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgYXR0cnMuZGVsZXRlKGtleSk7XG4gICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBnZXRGb3JtTWFya3VwQXR0cihldmVudEF0dHJzKTtcbn07XG5cbmNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVJTID0gbmV3IE1hcChbXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlNFTEVDVCwgWydTZWxlY3QgTWluIHZhbHVlJywgJ1NlbGVjdCBNYXggdmFsdWUnLCAnU2VsZWN0IHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSwgWydTZWxlY3QgTWluIGRhdGUgdGltZScsICdTZWxlY3QgTWF4IGRhdGUgdGltZScsICdTZWxlY3QgZGF0ZSB0aW1lJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5USU1FLCBbJ1NlbGVjdCBNaW4gdGltZScsICdTZWxlY3QgTWF4IHRpbWUnLCAnU2VsZWN0IHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEUsIFsnU2VsZWN0IE1pbiBkYXRlJywgJ1NlbGVjdCBNYXggZGF0ZScsICdTZWxlY3QgZGF0ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVEVYVEFSRUEsIFsnJywgJycsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuUklDSFRFWFQsIFsnJywgJycsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ09MT1JQSUNLRVIsIFsnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvcicsICdTZWxlY3QgQ29sb3InXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNISVBTLCBbJycsICcnLCAnVHlwZSBoZXJlLi4uJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5QQVNTV09SRCwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5OVU1CRVIsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVEVYVCwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWSwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEUsIFsnJywgJycsICdTZWFyY2gnXV0sXG5dKTtcblxuY29uc3Qgc2V0RGVmYXVsdFBsYWNlaG9sZGVyID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHByb3AgPSBpbmRleCA9PT0gMSA/ICdtYXhwbGFjZWhvbGRlcicgOiAncGxhY2Vob2xkZXInO1xuICAgIGxldCBwbGFjZWhvbGRlciA9IGF0dHJzLmdldChwcm9wKTtcbiAgICBpZiAocGxhY2Vob2xkZXIgfHwgcGxhY2Vob2xkZXIgPT09ICcnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGxhY2Vob2xkZXIgPSBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSkgJiYgREVGQVVMVF9QTEFDRUhPTERFUlMuZ2V0KHdpZGdldFR5cGUpW2luZGV4XTtcbiAgICBpZiAocGxhY2Vob2xkZXIpIHtcbiAgICAgICAgYXR0cnMuc2V0KHByb3AsIHBsYWNlaG9sZGVyKTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRXaWRnZXRUZW1wbGF0ZSA9IChhdHRycywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSBhdHRycy5nZXQoJ25hbWUnKTtcbiAgICBjb25zdCBjdXN0b21XaWRnZXROYW1lID0gYXR0cnMuZ2V0KCd3aWRnZXRuYW1lJyk7XG4gICAgY29uc3QgZmllbGROYW1lID0gKGF0dHJzLmdldCgna2V5JykgfHwgbmFtZSB8fCAnJykudHJpbSgpO1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1fbWF4XCJgIDogKG9wdGlvbnMuaXNJbkxpc3QgPyBgW2Zvcm1Db250cm9sTmFtZV09XCIke29wdGlvbnMuY291bnRlcn0uX2ZpZWxkTmFtZVwiYCA6IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1cImApO1xuICAgIGNvbnN0IHRtcGxSZWYgPSBvcHRpb25zLmlzTWF4V2lkZ2V0ID8gYCNmb3JtV2lkZ2V0TWF4YCA6IGAjZm9ybVdpZGdldGA7XG4gICAgY29uc3Qgd2lkZ2V0TmFtZSA9IG5hbWUgPyAob3B0aW9ucy5pc01heFdpZGdldCA/IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0TWF4XCJgIDogYG5hbWU9XCIke25hbWV9X2Zvcm1XaWRnZXRcImApIDogJyc7XG4gICAgY29uc3QgY29uZGl0aW9uYWxDbGFzcyA9IGBbbmdDbGFzc109XCIke2F0dHJzLmdldCgnbmdjbGFzcycpfVwiYDtcbiAgICBjb25zdCBkZWZhdWx0VG1wbCA9IGBbY2xhc3MuaGlkZGVuXT1cIiEke29wdGlvbnMucENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke29wdGlvbnMuY291bnRlcn0udmlld21vZGV3aWRnZXQgIT09ICdkZWZhdWx0J1wiICR7Zm9ybUNvbnRyb2x9ICR7b3B0aW9ucy5ldmVudHNUbXBsfSAke2NvbmRpdGlvbmFsQ2xhc3N9ICR7dG1wbFJlZn0gJHt3aWRnZXROYW1lfSAke2N1c3RvbVdpZGdldE5hbWUgPyBgd2lkZ2V0bmFtZT0ke2N1c3RvbVdpZGdldE5hbWV9YDonJ31gIDtcbiAgICByZXR1cm4gZ2V0Rm9ybVdpZGdldFRlbXBsYXRlKG9wdGlvbnMud2lkZ2V0VHlwZSwgZGVmYXVsdFRtcGwsIGF0dHJzLCB7Y291bnRlcjogb3B0aW9ucy5jb3VudGVyLCBwQ291bnRlcjogb3B0aW9ucy5wQ291bnRlcn0pO1xufTtcblxuXG5jb25zdCBnZXRUZW1wbGF0ZSA9IChhdHRycywgd2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzSW5MaXN0KSA9PiB7XG4gICAgY29uc3QgaXNSYW5nZSA9IGF0dHJzLmdldCgnaXMtcmFuZ2UnKSA9PT0gJ3RydWUnO1xuICAgIGlmICghaXNSYW5nZSkge1xuICAgICAgICByZXR1cm4gZ2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3R9KTtcbiAgICB9XG4gICAgY29uc3QgbGF5b3V0Q2xhc3MgPSBpc01vYmlsZUFwcCgpID8gJ2NvbC14cy02JyA6ICdjb2wtc20tNic7XG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXJ9KX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzTWF4V2lkZ2V0OiB0cnVlfSl9PC9kaXY+YDtcbn07XG5cbmNvbnN0IGdldENhcHRpb25CeVdpZGdldCA9IChhdHRycywgd2lkZ2V0VHlwZSwgY291bnRlcikgPT4ge1xuICAgIGlmIChhdHRycy5nZXQoJ2lzLXJlbGF0ZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEKSB7XG4gICAgICAgIHJldHVybiAnXFwnKioqKioqKipcXCcnO1xuICAgIH1cbiAgICBsZXQgY2FwdGlvbiA9IGAke2NvdW50ZXJ9LnZhbHVlYDtcbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURVRJTUUgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QKSB7XG4gICAgICAgIGNhcHRpb24gKz0gYCB8IHRvRGF0ZToke2NvdW50ZXJ9LmZvcm1XaWRnZXQuZGF0ZXBhdHRlcm4gfHwgJ3l5eXktTU0tZGQgaGg6bW06c3MgYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlRJTUUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC50aW1lcGF0dGVybiB8fCAnaGg6bW0gYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkRBVEUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAgJ3l5eXktTU1NLWRkJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUkFUSU5HIHx8IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChpc0RhdGFTZXRXaWRnZXQod2lkZ2V0VHlwZSkgJiYgYXR0cnMuZ2V0KCdkYXRhZmllbGQnKSA9PT0gQUxMRklFTERTKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldENhcHRpb24oKWA7XG59O1xuXG5jb25zdCByZWdpc3RlckZvcm1GaWVsZCA9IChpc0Zvcm1GaWVsZCk6IElCdWlsZFRhc2tEZWYgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVzOiBbJ3dtLWZvcm0nLCAnd20tbGl2ZWZvcm0nLCAnd20tbGl2ZWZpbHRlcicsICd3bS1saXN0J10sXG4gICAgICAgIHByZTogKGF0dHJzLCBzaGFyZWQsIHBhcmVudEZvcm0sIHBhcmVudExpdmVGb3JtLCBwYXJlbnRGaWx0ZXIsIHBhcmVudExpc3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBpZEdlbi5uZXh0VWlkKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBwYXJlbnRGb3JtIHx8IHBhcmVudExpdmVGb3JtIHx8IHBhcmVudEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHBDb3VudGVyID0gKHBhcmVudCAmJiBwYXJlbnQuZ2V0KCdmb3JtX3JlZmVyZW5jZScpKSB8fCAnZm9ybSc7XG4gICAgICAgICAgICBjb25zdCB3aWRnZXRUeXBlID0gYXR0cnMuZ2V0KCd3aWRnZXQnKSB8fCBGb3JtV2lkZ2V0VHlwZS5URVhUO1xuICAgICAgICAgICAgY29uc3QgZGF0YVJvbGUgPSBpc0Zvcm1GaWVsZCA/ICdmb3JtLWZpZWxkJyA6ICdmaWx0ZXItZmllbGQnO1xuICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkRXJyb3JNc2dJZCA9ICd3bWZvcm0tZmllbGQtZXJyb3ItJyArIGdlbmVyYXRlR1VJZCgpO1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1zZyA9IGlzRm9ybUZpZWxkID8gYDxwICpuZ0lmPVwiJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayB0ZXh0LWRhbmdlclwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIiR7Y291bnRlcn0udmFsaWRhdGlvbm1lc3NhZ2VcIiBpZD1cIiR7Zm9ybUZpZWxkRXJyb3JNc2dJZH1cIj48c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiPjwvc3Bhbj48L3A+YCA6ICcnO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRzVG1wbCA9IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCA/ICcnIDogZ2V0RXZlbnRzVGVtcGxhdGUoYXR0cnMpO1xuICAgICAgICAgICAgY29uc3QgY29udHJvbExheW91dCA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTEyJyA6ICdjb2wtc20tMTInO1xuICAgICAgICAgICAgY29uc3QgaXNJbkxpc3QgPSBwQ291bnRlciA9PT0gKHBhcmVudExpc3QgJiYgcGFyZW50TGlzdC5nZXQoJ3BhcmVudF9mb3JtX3JlZmVyZW5jZScpKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX192YWxpZGF0aW9uSWQnLCBmb3JtRmllbGRFcnJvck1zZ0lkKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX193aWRnZXRUeXBlJywgd2lkZ2V0VHlwZSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ3dpZGdldCcpO1xuICAgICAgICAgICAgc2hhcmVkLnNldCgnY291bnRlcicsIGNvdW50ZXIpO1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDApO1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgPCR7dGFnTmFtZX0gZGF0YS1yb2xlPVwiJHtkYXRhUm9sZX1cIiBbZm9ybUdyb3VwXT1cIiR7cENvdW50ZXJ9Lm5nZm9ybVwiIHdtRm9ybUZpZWxkIHdtQ2FwdGlvblBvc2l0aW9uICMke2NvdW50ZXJ9PVwid21Gb3JtRmllbGRcIiB3aWRnZXR0eXBlPVwiJHt3aWRnZXRUeXBlfVwiICR7Z2V0Rm9ybU1hcmt1cEF0dHIoYXR0cnMpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXZlLWZpZWxkIGZvcm0tZ3JvdXAgYXBwLWNvbXBvc2l0ZS13aWRnZXQgY2xlYXJmaXggY2FwdGlvbi17eyR7cENvdW50ZXJ9LmNhcHRpb25wb3NpdGlvbn19XCIgd2lkZ2V0PVwiJHt3aWRnZXRUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbaGlkZGVuXT1cIiEke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCIgY2xhc3M9XCJhcHAtbGFiZWwgY29udHJvbC1sYWJlbCBmb3JtZmllbGQtbGFiZWwge3ske3BDb3VudGVyfS5fY2FwdGlvbkNsYXNzfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogJHtwQ291bnRlcn0uY2FwdGlvbnNpemV9XCIgW25nQ2xhc3NdPVwieyd0ZXh0LWRhbmdlcic6ICR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtjb3VudGVyfS5yZXF1aXJlZH1cIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZVwiPiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZSA/ICR7cENvdW50ZXJ9Ll93aWRnZXRDbGFzcyA6ICcke2NvbnRyb2xMYXlvdXR9J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpYyBhcHAtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgfHwgJHtjb3VudGVyfS52aWV3bW9kZXdpZGdldCA9PT0gJ2RlZmF1bHQnIHx8ICR7Y291bnRlcn0ud2lkZ2V0dHlwZSA9PT0gJ3VwbG9hZCdcIiBbaW5uZXJIVE1MXT1cIiR7Z2V0Q2FwdGlvbkJ5V2lkZ2V0KGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKX1cIj48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2dldFRlbXBsYXRlKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiAqbmdJZj1cIiR7Y291bnRlcn0uc2hvd1BlbmRpbmdTcGlubmVyXCIgY2xhc3M9XCJmb3JtLWZpZWxkLXNwaW5uZXIgZmEgZmEtY2lyY2xlLW8tbm90Y2ggZmEtc3BpbiBmb3JtLWNvbnRyb2wtZmVlZGJhY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiISgke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQpICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmhpbnRcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsaWRhdGlvbk1zZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8LyR7dGFnTmFtZX0+YCxcbiAgICAgICAgcHJvdmlkZTogKGF0dHJzLCBzaGFyZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgcHJvdmlkZXIuc2V0KCdmb3JtX3JlZmVyZW5jZScsIHNoYXJlZC5nZXQoJ2NvdW50ZXInKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGltcG9ydHM6IChhdHRyczogTWFwPFN0cmluZywgU3RyaW5nPik6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkV2lkZ2V0ID0gZ2V0UmVxdWlyZWRGb3JtV2lkZ2V0KGF0dHJzLmdldCgnX193aWRnZXRUeXBlJykgfHwgYXR0cnMuZ2V0KCd0eXBlJykpO1xuICAgICAgICAgICAgYXR0cnMuZGVsZXRlKCdfX3dpZGdldFR5cGUnKTtcbiAgICAgICAgICAgIHJldHVybiBbcmVxdWlyZWRXaWRnZXQsICd3bS1mb3JtJ107XG4gICAgICAgIH1cbiAgICB9O1xufTtcblxucmVnaXN0ZXIoJ3dtLWZvcm0tZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIHRydWUpKTtcbnJlZ2lzdGVyKCd3bS1maWx0ZXItZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIGZhbHNlKSk7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNkLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7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QyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLFFBQVEsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakUsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEZvcm1NYXJrdXBBdHRyLCBJQnVpbGRUYXNrRGVmLCByZWdpc3Rlcn0gZnJvbSAnQHdtL3RyYW5zcGlsZXInO1xuaW1wb3J0IHtcbiAgICBGb3JtV2lkZ2V0VHlwZSxcbiAgICBnZW5lcmF0ZUdVSWQsXG4gICAgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLFxuICAgIGdldFJlcXVpcmVkRm9ybVdpZGdldCxcbiAgICBJREdlbmVyYXRvcixcbiAgICBpc01vYmlsZUFwcFxufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7QUxMRklFTERTLCBpc0RhdGFTZXRXaWRnZXR9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7Zm9yRWFjaH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCB0YWdOYW1lID0gJ2Rpdic7XG5jb25zdCBpZEdlbiA9IG5ldyBJREdlbmVyYXRvcignZm9ybWZpZWxkXycpO1xuXG5jb25zdCBnZXRFdmVudHNUZW1wbGF0ZSA9IChhdHRycykgPT4ge1xuICAgIGNvbnN0IGV2ZW50QXR0cnMgPSBuZXcgTWFwKCk7XG4gICAgaWYgKCFhdHRycy5oYXMoJ2ZvY3VzLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdmb2N1cy5ldmVudCcsICcnKTtcbiAgICB9XG4gICAgaWYgKCFhdHRycy5oYXMoJ2JsdXIuZXZlbnQnKSkge1xuICAgICAgICBhdHRycy5zZXQoJ2JsdXIuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGF0dHJzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICBpZiAoa2V5LmVuZHNXaXRoKCcuZXZlbnQnKSkge1xuICAgICAgICAgICBpZiAoa2V5ID09PSAnZm9jdXMuZXZlbnQnKSB7XG4gICAgICAgICAgICAgICB2YWx1ZSA9IGBfb25Gb2N1c0ZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2JsdXIuZXZlbnQnKSB7XG4gICAgICAgICAgICAgICB2YWx1ZSA9IGBfb25CbHVyRmllbGQoJGV2ZW50KTske3ZhbHVlfWA7XG4gICAgICAgICAgIH1cbiAgICAgICAgICAgZXZlbnRBdHRycy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgIGF0dHJzLmRlbGV0ZShrZXkpO1xuICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZ2V0Rm9ybU1hcmt1cEF0dHIoZXZlbnRBdHRycyk7XG59O1xuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSUyA9IG5ldyBNYXAoW1xuICAgIFtGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIFsnU2VsZWN0IE1pbiB2YWx1ZScsICdTZWxlY3QgTWF4IHZhbHVlJywgJ1NlbGVjdCB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURVRJTUUsIFsnU2VsZWN0IE1pbiBkYXRlIHRpbWUnLCAnU2VsZWN0IE1heCBkYXRlIHRpbWUnLCAnU2VsZWN0IGRhdGUgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVElNRSwgWydTZWxlY3QgTWluIHRpbWUnLCAnU2VsZWN0IE1heCB0aW1lJywgJ1NlbGVjdCB0aW1lJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5EQVRFLCBbJ1NlbGVjdCBNaW4gZGF0ZScsICdTZWxlY3QgTWF4IGRhdGUnLCAnU2VsZWN0IGRhdGUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRFWFRBUkVBLCBbJycsICcnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlJJQ0hURVhULCBbJycsICcnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSLCBbJ1NlbGVjdCBDb2xvcicsICdTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DSElQUywgWycnLCAnJywgJ1R5cGUgaGVyZS4uLiddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuTlVNQkVSLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRFWFQsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1ksIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFLCBbJycsICcnLCAnU2VhcmNoJ11dLFxuXSk7XG5cbmNvbnN0IHNldERlZmF1bHRQbGFjZWhvbGRlciA9IChhdHRycywgd2lkZ2V0VHlwZSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwcm9wID0gaW5kZXggPT09IDEgPyAnbWF4cGxhY2Vob2xkZXInIDogJ3BsYWNlaG9sZGVyJztcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSBhdHRycy5nZXQocHJvcCk7XG4gICAgaWYgKHBsYWNlaG9sZGVyIHx8IHBsYWNlaG9sZGVyID09PSAnJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHBsYWNlaG9sZGVyID0gREVGQVVMVF9QTEFDRUhPTERFUlMuZ2V0KHdpZGdldFR5cGUpICYmIERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKVtpbmRleF07XG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIGF0dHJzLnNldChwcm9wLCBwbGFjZWhvbGRlcik7XG4gICAgfVxufTtcblxuY29uc3QgZ2V0V2lkZ2V0VGVtcGxhdGUgPSAoYXR0cnMsIG9wdGlvbnMpID0+IHtcbiAgICBsZXQgY3VzdG9tQXR0cnMgPSBgYDtcbiAgICBpZihvcHRpb25zLndpZGdldFR5cGUgPT09IFwiY3VzdG9tLXdpZGdldFwiKSB7XG4gICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBhdHRycykge1xuICAgICAgICAgICAgaWYoa2V5LnN0YXJ0c1dpdGgoJ3Byb3AtJykpXG4gICAgICAgICAgICAgICAgY3VzdG9tQXR0cnMgKz0ga2V5ICsgJz1cIicgKyB2YWx1ZSArICdcIiAnO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSBhdHRycy5nZXQoJ25hbWUnKTtcbiAgICBjb25zdCBjdXN0b21XaWRnZXROYW1lID0gYXR0cnMuZ2V0KCd3aWRnZXRuYW1lJyk7XG4gICAgY29uc3QgZmllbGROYW1lID0gKGF0dHJzLmdldCgna2V5JykgfHwgbmFtZSB8fCAnJykudHJpbSgpO1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1fbWF4XCJgIDogKG9wdGlvbnMuaXNJbkxpc3QgPyBgW2Zvcm1Db250cm9sTmFtZV09XCIke29wdGlvbnMuY291bnRlcn0uX2ZpZWxkTmFtZVwiYCA6IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1cImApO1xuICAgIGNvbnN0IHRtcGxSZWYgPSBvcHRpb25zLmlzTWF4V2lkZ2V0ID8gYCNmb3JtV2lkZ2V0TWF4YCA6IGAjZm9ybVdpZGdldGA7XG4gICAgY29uc3Qgd2lkZ2V0TmFtZSA9IG5hbWUgPyAob3B0aW9ucy5pc01heFdpZGdldCA/IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0TWF4XCJgIDogYG5hbWU9XCIke25hbWV9X2Zvcm1XaWRnZXRcImApIDogJyc7XG4gICAgY29uc3QgY29uZGl0aW9uYWxDbGFzcyA9IGBbbmdDbGFzc109XCIke2F0dHJzLmdldCgnbmdjbGFzcycpfVwiYDtcbiAgICBjb25zdCBkZWZhdWx0VG1wbCA9IGBbY2xhc3MuaGlkZGVuXT1cIiEke29wdGlvbnMucENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke29wdGlvbnMuY291bnRlcn0udmlld21vZGV3aWRnZXQgIT09ICdkZWZhdWx0J1wiICR7Zm9ybUNvbnRyb2x9ICR7b3B0aW9ucy5ldmVudHNUbXBsfSAke2NvbmRpdGlvbmFsQ2xhc3N9ICR7dG1wbFJlZn0gJHt3aWRnZXROYW1lfSAke2N1c3RvbVdpZGdldE5hbWUgPyBgd2lkZ2V0bmFtZT0ke2N1c3RvbVdpZGdldE5hbWV9ICR7Y3VzdG9tQXR0cnN9YDonJ31gIDtcbiAgICByZXR1cm4gZ2V0Rm9ybVdpZGdldFRlbXBsYXRlKG9wdGlvbnMud2lkZ2V0VHlwZSwgZGVmYXVsdFRtcGwsIGF0dHJzLCB7Y291bnRlcjogb3B0aW9ucy5jb3VudGVyLCBwQ291bnRlcjogb3B0aW9ucy5wQ291bnRlcn0pO1xufTtcblxuXG5jb25zdCBnZXRUZW1wbGF0ZSA9IChhdHRycywgd2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzSW5MaXN0KSA9PiB7XG4gICAgY29uc3QgaXNSYW5nZSA9IGF0dHJzLmdldCgnaXMtcmFuZ2UnKSA9PT0gJ3RydWUnO1xuICAgIGlmICghaXNSYW5nZSkge1xuICAgICAgICByZXR1cm4gZ2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3R9KTtcbiAgICB9XG4gICAgY29uc3QgbGF5b3V0Q2xhc3MgPSBpc01vYmlsZUFwcCgpID8gJ2NvbC14cy02JyA6ICdjb2wtc20tNic7XG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXJ9KX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzTWF4V2lkZ2V0OiB0cnVlfSl9PC9kaXY+YDtcbn07XG5cbmNvbnN0IGdldENhcHRpb25CeVdpZGdldCA9IChhdHRycywgd2lkZ2V0VHlwZSwgY291bnRlcikgPT4ge1xuICAgIGlmIChhdHRycy5nZXQoJ2lzLXJlbGF0ZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEKSB7XG4gICAgICAgIHJldHVybiAnXFwnKioqKioqKipcXCcnO1xuICAgIH1cbiAgICBsZXQgY2FwdGlvbiA9IGAke2NvdW50ZXJ9LnZhbHVlYDtcbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURVRJTUUgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QKSB7XG4gICAgICAgIGNhcHRpb24gKz0gYCB8IHRvRGF0ZToke2NvdW50ZXJ9LmZvcm1XaWRnZXQuZGF0ZXBhdHRlcm4gfHwgJ3l5eXktTU0tZGQgaGg6bW06c3MgYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlRJTUUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC50aW1lcGF0dGVybiB8fCAnaGg6bW0gYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkRBVEUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAgJ3l5eXktTU1NLWRkJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUkFUSU5HIHx8IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChpc0RhdGFTZXRXaWRnZXQod2lkZ2V0VHlwZSkgJiYgYXR0cnMuZ2V0KCdkYXRhZmllbGQnKSA9PT0gQUxMRklFTERTKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldENhcHRpb24oKWA7XG59O1xuXG5jb25zdCByZWdpc3RlckZvcm1GaWVsZCA9IChpc0Zvcm1GaWVsZCk6IElCdWlsZFRhc2tEZWYgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVzOiBbJ3dtLWZvcm0nLCAnd20tbGl2ZWZvcm0nLCAnd20tbGl2ZWZpbHRlcicsICd3bS1saXN0J10sXG4gICAgICAgIHByZTogKGF0dHJzLCBzaGFyZWQsIHBhcmVudEZvcm0sIHBhcmVudExpdmVGb3JtLCBwYXJlbnRGaWx0ZXIsIHBhcmVudExpc3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBpZEdlbi5uZXh0VWlkKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBwYXJlbnRGb3JtIHx8IHBhcmVudExpdmVGb3JtIHx8IHBhcmVudEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHBDb3VudGVyID0gKHBhcmVudCAmJiBwYXJlbnQuZ2V0KCdmb3JtX3JlZmVyZW5jZScpKSB8fCAnZm9ybSc7XG4gICAgICAgICAgICBjb25zdCB3aWRnZXRUeXBlID0gYXR0cnMuZ2V0KCd3aWRnZXQnKSB8fCBGb3JtV2lkZ2V0VHlwZS5URVhUO1xuICAgICAgICAgICAgY29uc3QgZGF0YVJvbGUgPSBpc0Zvcm1GaWVsZCA/ICdmb3JtLWZpZWxkJyA6ICdmaWx0ZXItZmllbGQnO1xuICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkRXJyb3JNc2dJZCA9ICd3bWZvcm0tZmllbGQtZXJyb3ItJyArIGdlbmVyYXRlR1VJZCgpO1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1zZyA9IGlzRm9ybUZpZWxkID8gYDxwICpuZ0lmPVwiJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayB0ZXh0LWRhbmdlclwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIiR7Y291bnRlcn0udmFsaWRhdGlvbm1lc3NhZ2VcIiBpZD1cIiR7Zm9ybUZpZWxkRXJyb3JNc2dJZH1cIj48c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiPjwvc3Bhbj48L3A+YCA6ICcnO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRzVG1wbCA9IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCA/ICcnIDogZ2V0RXZlbnRzVGVtcGxhdGUoYXR0cnMpO1xuICAgICAgICAgICAgY29uc3QgY29udHJvbExheW91dCA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTEyJyA6ICdjb2wtc20tMTInO1xuICAgICAgICAgICAgY29uc3QgaXNJbkxpc3QgPSBwQ291bnRlciA9PT0gKHBhcmVudExpc3QgJiYgcGFyZW50TGlzdC5nZXQoJ3BhcmVudF9mb3JtX3JlZmVyZW5jZScpKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX192YWxpZGF0aW9uSWQnLCBmb3JtRmllbGRFcnJvck1zZ0lkKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX193aWRnZXRUeXBlJywgd2lkZ2V0VHlwZSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ3dpZGdldCcpO1xuICAgICAgICAgICAgc2hhcmVkLnNldCgnY291bnRlcicsIGNvdW50ZXIpO1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDApO1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgPCR7dGFnTmFtZX0gZGF0YS1yb2xlPVwiJHtkYXRhUm9sZX1cIiBbZm9ybUdyb3VwXT1cIiR7cENvdW50ZXJ9Lm5nZm9ybVwiIHdtRm9ybUZpZWxkIHdtQ2FwdGlvblBvc2l0aW9uICMke2NvdW50ZXJ9PVwid21Gb3JtRmllbGRcIiB3aWRnZXR0eXBlPVwiJHt3aWRnZXRUeXBlfVwiICR7Z2V0Rm9ybU1hcmt1cEF0dHIoYXR0cnMpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXZlLWZpZWxkIGZvcm0tZ3JvdXAgYXBwLWNvbXBvc2l0ZS13aWRnZXQgY2xlYXJmaXggY2FwdGlvbi17eyR7cENvdW50ZXJ9LmNhcHRpb25wb3NpdGlvbn19XCIgd2lkZ2V0PVwiJHt3aWRnZXRUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbaGlkZGVuXT1cIiEke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCIgY2xhc3M9XCJhcHAtbGFiZWwgY29udHJvbC1sYWJlbCBmb3JtZmllbGQtbGFiZWwge3ske3BDb3VudGVyfS5fY2FwdGlvbkNsYXNzfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogJHtwQ291bnRlcn0uY2FwdGlvbnNpemV9XCIgW25nQ2xhc3NdPVwieyd0ZXh0LWRhbmdlcic6ICR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtjb3VudGVyfS5yZXF1aXJlZH1cIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZVwiPiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZSA/ICR7cENvdW50ZXJ9Ll93aWRnZXRDbGFzcyA6ICcke2NvbnRyb2xMYXlvdXR9J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpYyBhcHAtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgfHwgJHtjb3VudGVyfS52aWV3bW9kZXdpZGdldCA9PT0gJ2RlZmF1bHQnIHx8ICR7Y291bnRlcn0ud2lkZ2V0dHlwZSA9PT0gJ3VwbG9hZCdcIiBbaW5uZXJIVE1MXT1cIiR7Z2V0Q2FwdGlvbkJ5V2lkZ2V0KGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKX1cIj48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2dldFRlbXBsYXRlKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiAqbmdJZj1cIiR7Y291bnRlcn0uc2hvd1BlbmRpbmdTcGlubmVyXCIgY2xhc3M9XCJmb3JtLWZpZWxkLXNwaW5uZXIgZmEgZmEtY2lyY2xlLW8tbm90Y2ggZmEtc3BpbiBmb3JtLWNvbnRyb2wtZmVlZGJhY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiISgke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQpICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmhpbnRcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dmFsaWRhdGlvbk1zZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8LyR7dGFnTmFtZX0+YCxcbiAgICAgICAgcHJvdmlkZTogKGF0dHJzLCBzaGFyZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgcHJvdmlkZXIuc2V0KCdmb3JtX3JlZmVyZW5jZScsIHNoYXJlZC5nZXQoJ2NvdW50ZXInKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGltcG9ydHM6IChhdHRyczogTWFwPFN0cmluZywgU3RyaW5nPik6IHN0cmluZ1tdID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkV2lkZ2V0ID0gZ2V0UmVxdWlyZWRGb3JtV2lkZ2V0KGF0dHJzLmdldCgnX193aWRnZXRUeXBlJykgfHwgYXR0cnMuZ2V0KCd0eXBlJykpO1xuICAgICAgICAgICAgYXR0cnMuZGVsZXRlKCdfX3dpZGdldFR5cGUnKTtcbiAgICAgICAgICAgIHJldHVybiBbcmVxdWlyZWRXaWRnZXQsICd3bS1mb3JtJ107XG4gICAgICAgIH1cbiAgICB9O1xufTtcblxucmVnaXN0ZXIoJ3dtLWZvcm0tZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIHRydWUpKTtcbnJlZ2lzdGVyKCd3bS1maWx0ZXItZmllbGQnLCByZWdpc3RlckZvcm1GaWVsZC5iaW5kKHRoaXMsIGZhbHNlKSk7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
@@ -1012,6 +1012,13 @@ const setDefaultPlaceholder = (attrs, widgetType, index) => {
1012
1012
  }
1013
1013
  };
1014
1014
  const getWidgetTemplate = (attrs, options) => {
1015
+ let customAttrs = ``;
1016
+ if (options.widgetType === "custom-widget") {
1017
+ for (let [key, value] of attrs) {
1018
+ if (key.startsWith('prop-'))
1019
+ customAttrs += key + '="' + value + '" ';
1020
+ }
1021
+ }
1015
1022
  const name = attrs.get('name');
1016
1023
  const customWidgetName = attrs.get('widgetname');
1017
1024
  const fieldName = (attrs.get('key') || name || '').trim();
@@ -1019,7 +1026,7 @@ const getWidgetTemplate = (attrs, options) => {
1019
1026
  const tmplRef = options.isMaxWidget ? `#formWidgetMax` : `#formWidget`;
1020
1027
  const widgetName = name ? (options.isMaxWidget ? `name="${name}_formWidgetMax"` : `name="${name}_formWidget"`) : '';
1021
1028
  const conditionalClass = `[ngClass]="${attrs.get('ngclass')}"`;
1022
- const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName}` : ''}`;
1029
+ const defaultTmpl = `[class.hidden]="!${options.pCounter}.isUpdateMode && ${options.counter}.viewmodewidget !== 'default'" ${formControl} ${options.eventsTmpl} ${conditionalClass} ${tmplRef} ${widgetName} ${customWidgetName ? `widgetname=${customWidgetName} ${customAttrs}` : ''}`;
1023
1030
  return getFormWidgetTemplate(options.widgetType, defaultTmpl, attrs, { counter: options.counter, pCounter: options.pCounter });
1024
1031
  };
1025
1032
  const getTemplate = (attrs, widgetType, eventsTmpl, counter, pCounter, isInList) => {