@seniorsistemas/data-seniorx-core 2.0.1 → 2.1.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 (81) hide show
  1. package/core/config/dynamic-view-builder.config.d.ts +3 -0
  2. package/core/constants/dynamic-view-builder.const.d.ts +15 -0
  3. package/core/constants/picklist.const.d.ts +4 -0
  4. package/core/constants/timeline.const.d.ts +6 -0
  5. package/core/types/confirm.type.d.ts +1 -0
  6. package/core/types/dynamic-view-builder.type.d.ts +130 -0
  7. package/core/types/row-card.type.d.ts +10 -0
  8. package/core/types/timeline.type.d.ts +22 -0
  9. package/esm2022/core/config/dynamic-view-builder.config.mjs +396 -0
  10. package/esm2022/core/config/row-card.type.config.mjs +2 -1
  11. package/esm2022/core/constants/dynamic-view-builder.const.mjs +24 -0
  12. package/esm2022/core/constants/picklist.const.mjs +5 -1
  13. package/esm2022/core/constants/timeline.const.mjs +6 -0
  14. package/esm2022/core/handlers/sqlFormatter.mjs +3 -2
  15. package/esm2022/core/types/confirm.type.mjs +1 -1
  16. package/esm2022/core/types/dynamic-view-builder.type.mjs +2 -0
  17. package/esm2022/core/types/row-card.type.mjs +1 -1
  18. package/esm2022/core/types/timeline.type.mjs +2 -0
  19. package/esm2022/core/utils/layout.util.mjs +4 -4
  20. package/esm2022/core/utils/number-input.util.mjs +2 -2
  21. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +21 -3
  22. package/esm2022/features/button/button.component.mjs +5 -5
  23. package/esm2022/features/card-list/card/card.component.mjs +4 -6
  24. package/esm2022/features/card-list/card-list.component.mjs +4 -7
  25. package/esm2022/features/code-editor/code-editor.component.mjs +5 -5
  26. package/esm2022/features/color-picker/color-picker.component.mjs +4 -4
  27. package/esm2022/features/combobox/combobox.component.mjs +8 -8
  28. package/esm2022/features/confirm/confirm.component.mjs +8 -4
  29. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +6 -8
  30. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  31. package/esm2022/features/hyperlink/hyperlink.component.mjs +10 -12
  32. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  33. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  34. package/esm2022/features/list/list.component.mjs +1 -1
  35. package/esm2022/features/loading-state/loading-state.component.mjs +20 -25
  36. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  37. package/esm2022/features/mask/mask.component.mjs +4 -4
  38. package/esm2022/features/modal/modal.component.mjs +5 -5
  39. package/esm2022/features/modalc/modalc.component.mjs +1 -1
  40. package/esm2022/features/number-input/number-input.component.mjs +4 -4
  41. package/esm2022/features/numeric/numeric.component.mjs +4 -6
  42. package/esm2022/features/paginator/paginator.component.mjs +2 -2
  43. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  44. package/esm2022/features/picklist/picklist.component.mjs +50 -9
  45. package/esm2022/features/radio/radio.component.mjs +12 -12
  46. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +32 -9
  47. package/esm2022/features/row-card-list/row-card-list.component.mjs +3 -3
  48. package/esm2022/features/searchbox/searchbox.component.mjs +1 -1
  49. package/esm2022/features/sidebar/sidebar.component.mjs +7 -3
  50. package/esm2022/features/switch/switch.component.mjs +3 -3
  51. package/esm2022/features/table/table.component.mjs +3 -3
  52. package/esm2022/features/textarea/textarea.component.mjs +4 -4
  53. package/esm2022/features/textbox/textbox.component.mjs +4 -4
  54. package/esm2022/features/timeline/timeline.component.mjs +90 -0
  55. package/esm2022/features/toast/toast.component.mjs +4 -6
  56. package/esm2022/features/tooltip/tooltip.component.mjs +3 -3
  57. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2810 -0
  58. package/esm2022/locales/en.json +202 -1
  59. package/esm2022/locales/es-CO.json +202 -1
  60. package/esm2022/locales/pt.json +202 -1
  61. package/esm2022/public-api.mjs +6 -1
  62. package/features/breadcrumb/breadcrumb.component.d.ts +2 -0
  63. package/features/button/button.component.d.ts +2 -2
  64. package/features/code-editor/code-editor.component.d.ts +2 -2
  65. package/features/hyperlink/hyperlink.component.d.ts +3 -3
  66. package/features/loading-state/loading-state.component.d.ts +3 -4
  67. package/features/modal/modal.component.d.ts +2 -2
  68. package/features/picklist/picklist.component.d.ts +10 -1
  69. package/features/radio/radio.component.d.ts +4 -4
  70. package/features/row-card-list/row-card/row-card.component.d.ts +8 -1
  71. package/features/sidebar/sidebar.component.d.ts +2 -1
  72. package/features/timeline/timeline.component.d.ts +27 -0
  73. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +560 -0
  74. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +4161 -176
  75. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  76. package/package.json +2 -2
  77. package/public-api.d.ts +7 -0
  78. package/src/locales/en.json +211 -1
  79. package/src/locales/es-CO.json +211 -1
  80. package/src/locales/pt.json +211 -1
  81. package/styles.css +1 -1
@@ -19,10 +19,10 @@ export class RadioComponent {
19
19
  labelPlacement = 'right';
20
20
  required = false;
21
21
  disabled = false;
22
- change = new EventEmitter();
22
+ selectionChange = new EventEmitter();
23
23
  valueChange = new EventEmitter();
24
- focus = new EventEmitter();
25
- blur = new EventEmitter();
24
+ focused = new EventEmitter();
25
+ blurred = new EventEmitter();
26
26
  radios;
27
27
  _value = null;
28
28
  onChangeFn = () => { };
@@ -40,7 +40,7 @@ export class RadioComponent {
40
40
  }
41
41
  this._value = value;
42
42
  this.onChangeFn(value);
43
- this.change.emit(value);
43
+ this.selectionChange.emit(value);
44
44
  this.valueChange.emit(value);
45
45
  this.cdr.markForCheck();
46
46
  }
@@ -78,7 +78,7 @@ export class RadioComponent {
78
78
  }
79
79
  onBlur() {
80
80
  this.onTouchedFn();
81
- this.blur.emit();
81
+ this.blurred.emit();
82
82
  }
83
83
  optionId(index) {
84
84
  return `${this.groupId}-opt-${index}`;
@@ -120,7 +120,7 @@ export class RadioComponent {
120
120
  return `${labelPart}${hintPart}, ${statusPart}`;
121
121
  }
122
122
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RadioComponent, isStandalone: true, selector: "sdc-radio", inputs: { options: "options", name: "name", label: "label", hint: "hint", error: "error", orientation: "orientation", size: "size", labelPlacement: "labelPlacement", required: "required", disabled: "disabled" }, outputs: { change: "change", valueChange: "valueChange", focus: "focus", blur: "blur" }, providers: [
123
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RadioComponent, isStandalone: true, selector: "sdc-radio", inputs: { options: "options", name: "name", label: "label", hint: "hint", error: "error", orientation: "orientation", size: "size", labelPlacement: "labelPlacement", required: "required", disabled: "disabled" }, outputs: { selectionChange: "selectionChange", valueChange: "valueChange", focused: "focused", blurred: "blurred" }, providers: [
124
124
  {
125
125
  provide: NG_VALUE_ACCESSOR,
126
126
  useExisting: forwardRef(() => RadioComponent),
@@ -131,7 +131,7 @@ export class RadioComponent {
131
131
  useExisting: forwardRef(() => RadioComponent),
132
132
  multi: true
133
133
  }
134
- ], viewQueries: [{ propertyName: "radios", predicate: ["radioInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n role=\"radiogroup\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-labelledby]=\"label ? groupId + '-label' : null\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n @if (label || hint) {\n <div class=\"sdc-radio__header\">\n @if (label) {\n <div class=\"sdc-radio__group-label\" [id]=\"groupId + '-label'\">{{ label | translate }}</div>\n } @if (hint) {\n <div class=\"sdc-radio__hint\" [id]=\"groupId + '-hint'\">{{ hint | translate }}</div>\n }\n </div>\n }\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n @for (opt of options; track opt.value; let i = $index) {\n <label\n class=\"sdc-radio__option\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n >\n <input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n [attr.aria-label]=\"getOptionAriaLabel(opt)\"\n (change)=\"select(opt.value)\"\n (focus)=\"focus.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label | translate }}</span>\n @if (opt.hint) {\n <span class=\"sdc-radio__sublabel\">{{ opt.hint | translate }}</span>\n }\n </span>\n </label>\n }\n </div>\n\n @if (error) {\n <div class=\"sdc-radio__error\" role=\"alert\" aria-live=\"polite\">{{ error | translate }}</div>\n }\n</div>", styles: [":host{display:block}.sdc-radio{outline:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);min-height:var(--sdc-formfield-default-height)}.sdc-radio.disabled{opacity:var(--sdc-radio-disabled-opacity);pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column;align-items:flex-start}.sdc-radio__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);margin:0;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0;flex:1 1 auto}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text);line-height:var(--sdc-form-label-lh);min-width:0}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted);line-height:1.1;white-space:nowrap}.sdc-radio__options{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:var(--sdc-control-gap-lg);flex:0 0 auto;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:var(--sdc-radio-focus-shadow);outline:var(--sdc-radio-focus-outline);outline-offset:2px}.sdc-radio__option{display:inline-flex;align-items:center;gap:var(--sdc-control-gap);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem;min-height:24px;min-width:24px}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:var(--sdc-checkbox-disabled-opacity)}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__option:hover:not(.opt-disabled) .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{width:100%;margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
134
+ ], viewQueries: [{ propertyName: "radios", predicate: ["radioInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n role=\"radiogroup\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-labelledby]=\"label ? groupId + '-label' : null\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n @if (label || hint) {\n <div class=\"sdc-radio__header\">\n @if (label) {\n <div class=\"sdc-radio__group-label\" [id]=\"groupId + '-label'\">{{ label | translate }}</div>\n } @if (hint) {\n <div class=\"sdc-radio__hint\" [id]=\"groupId + '-hint'\">{{ hint | translate }}</div>\n }\n </div>\n }\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n @for (opt of options; track opt.value; let i = $index) {\n <label\n class=\"sdc-radio__option\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n >\n <input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n [attr.aria-label]=\"getOptionAriaLabel(opt)\"\n (change)=\"select(opt.value)\"\n (focus)=\"focused.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label | translate }}</span>\n @if (opt.hint) {\n <span class=\"sdc-radio__sublabel\">{{ opt.hint | translate }}</span>\n }\n </span>\n </label>\n }\n </div>\n\n @if (error) {\n <div class=\"sdc-radio__error\" role=\"alert\" aria-live=\"polite\">{{ error | translate }}</div>\n }\n</div>", styles: [":host{display:block}.sdc-radio{outline:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);min-height:var(--sdc-formfield-default-height)}.sdc-radio.disabled{opacity:var(--sdc-radio-disabled-opacity);pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column;align-items:flex-start}.sdc-radio__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);margin:0;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0;flex:1 1 auto}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text);line-height:var(--sdc-form-label-lh);min-width:0}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted);line-height:1.1;white-space:nowrap}.sdc-radio__options{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:var(--sdc-control-gap-lg);flex:0 0 auto;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:var(--sdc-radio-focus-shadow);outline:var(--sdc-radio-focus-outline);outline-offset:2px}.sdc-radio__option{display:inline-flex;align-items:center;gap:var(--sdc-control-gap);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem;min-height:24px;min-width:24px}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:var(--sdc-checkbox-disabled-opacity)}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__option:hover:not(.opt-disabled) .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{width:100%;margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioComponent, decorators: [{
137
137
  type: Component,
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
146
146
  useExisting: forwardRef(() => RadioComponent),
147
147
  multi: true
148
148
  }
149
- ], template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n role=\"radiogroup\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-labelledby]=\"label ? groupId + '-label' : null\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n @if (label || hint) {\n <div class=\"sdc-radio__header\">\n @if (label) {\n <div class=\"sdc-radio__group-label\" [id]=\"groupId + '-label'\">{{ label | translate }}</div>\n } @if (hint) {\n <div class=\"sdc-radio__hint\" [id]=\"groupId + '-hint'\">{{ hint | translate }}</div>\n }\n </div>\n }\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n @for (opt of options; track opt.value; let i = $index) {\n <label\n class=\"sdc-radio__option\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n >\n <input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n [attr.aria-label]=\"getOptionAriaLabel(opt)\"\n (change)=\"select(opt.value)\"\n (focus)=\"focus.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label | translate }}</span>\n @if (opt.hint) {\n <span class=\"sdc-radio__sublabel\">{{ opt.hint | translate }}</span>\n }\n </span>\n </label>\n }\n </div>\n\n @if (error) {\n <div class=\"sdc-radio__error\" role=\"alert\" aria-live=\"polite\">{{ error | translate }}</div>\n }\n</div>", styles: [":host{display:block}.sdc-radio{outline:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);min-height:var(--sdc-formfield-default-height)}.sdc-radio.disabled{opacity:var(--sdc-radio-disabled-opacity);pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column;align-items:flex-start}.sdc-radio__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);margin:0;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0;flex:1 1 auto}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text);line-height:var(--sdc-form-label-lh);min-width:0}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted);line-height:1.1;white-space:nowrap}.sdc-radio__options{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:var(--sdc-control-gap-lg);flex:0 0 auto;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:var(--sdc-radio-focus-shadow);outline:var(--sdc-radio-focus-outline);outline-offset:2px}.sdc-radio__option{display:inline-flex;align-items:center;gap:var(--sdc-control-gap);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem;min-height:24px;min-width:24px}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:var(--sdc-checkbox-disabled-opacity)}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__option:hover:not(.opt-disabled) .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{width:100%;margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"] }]
149
+ ], template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n role=\"radiogroup\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-labelledby]=\"label ? groupId + '-label' : null\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n @if (label || hint) {\n <div class=\"sdc-radio__header\">\n @if (label) {\n <div class=\"sdc-radio__group-label\" [id]=\"groupId + '-label'\">{{ label | translate }}</div>\n } @if (hint) {\n <div class=\"sdc-radio__hint\" [id]=\"groupId + '-hint'\">{{ hint | translate }}</div>\n }\n </div>\n }\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n @for (opt of options; track opt.value; let i = $index) {\n <label\n class=\"sdc-radio__option\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n >\n <input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n [attr.aria-label]=\"getOptionAriaLabel(opt)\"\n (change)=\"select(opt.value)\"\n (focus)=\"focused.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label | translate }}</span>\n @if (opt.hint) {\n <span class=\"sdc-radio__sublabel\">{{ opt.hint | translate }}</span>\n }\n </span>\n </label>\n }\n </div>\n\n @if (error) {\n <div class=\"sdc-radio__error\" role=\"alert\" aria-live=\"polite\">{{ error | translate }}</div>\n }\n</div>", styles: [":host{display:block}.sdc-radio{outline:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);min-height:var(--sdc-formfield-default-height)}.sdc-radio.disabled{opacity:var(--sdc-radio-disabled-opacity);pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column;align-items:flex-start}.sdc-radio__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sdc-control-gap-lg);margin:0;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0;flex:1 1 auto}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text);line-height:var(--sdc-form-label-lh);min-width:0}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted);line-height:1.1;white-space:nowrap}.sdc-radio__options{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:var(--sdc-control-gap-lg);flex:0 0 auto;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:var(--sdc-radio-focus-shadow);outline:var(--sdc-radio-focus-outline);outline-offset:2px}.sdc-radio__option{display:inline-flex;align-items:center;gap:var(--sdc-control-gap);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem;min-height:24px;min-width:24px}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:var(--sdc-checkbox-disabled-opacity)}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__option:hover:not(.opt-disabled) .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{width:100%;margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"] }]
150
150
  }], propDecorators: { options: [{
151
151
  type: Input
152
152
  }], name: [{
@@ -167,16 +167,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
167
167
  type: Input
168
168
  }], disabled: [{
169
169
  type: Input
170
- }], change: [{
170
+ }], selectionChange: [{
171
171
  type: Output
172
172
  }], valueChange: [{
173
173
  type: Output
174
- }], focus: [{
174
+ }], focused: [{
175
175
  type: Output
176
- }], blur: [{
176
+ }], blurred: [{
177
177
  type: Output
178
178
  }], radios: [{
179
179
  type: ViewChildren,
180
180
  args: ['radioInput']
181
181
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsNkJBQTZCLEVBQzdCLHlCQUF5QixFQUMxQixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUF1QjVELE1BQU0sT0FBTyxjQUFjO0lBQ1IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxPQUFPLEdBQStCLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQVU7SUFDZCxLQUFLLENBQVU7SUFDZixJQUFJLENBQVU7SUFDZCxLQUFLLENBQVU7SUFDZixXQUFXLEdBQXlCLFFBQVEsQ0FBQztJQUM3QyxJQUFJLEdBQXVCLElBQUksQ0FBQztJQUNoQyxjQUFjLEdBQXFCLE9BQU8sQ0FBQztJ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c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUVzQyxNQUFNO3NCQUFsRCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge1xuICBSQURJT19OQVZJR0FUSU9OX0tFWVMsXG4gIFJBRElPX09QVElPTl9OT1RfU0VMRUNURURfS0VZLFxuICBSQURJT19PUFRJT05fU0VMRUNURURfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL3JhZGlvLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUmFkaW9PcHRpb24sIFJhZGlvVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3JhZGlvLnR5cGUnO1xuaW1wb3J0IHsgbmV4dFNlcXVlbnRpYWxJZCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaWQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgb3B0aW9uczogUmVhZG9ubHlBcnJheTxSYWRpb09wdGlvbj4gPSBbXTtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpbnQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2lubGluZScgfCAnc3RhY2tlZCcgPSAnaW5saW5lJztcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ21kJztcbiAgQElucHV0KCkgbGFiZWxQbGFjZW1lbnQ6ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJhZGlvVmFsdWU+KCk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9WYWx1ZT4oKTtcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkcmVuKCdyYWRpb0lucHV0JykgcHJpdmF0ZSByZWFkb25seSByYWRpb3MhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IFJhZGlvVmFsdWUgPSBudWxsO1xuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogUmFkaW9WYWx1ZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcmVhZG9ubHkgZ3JvdXBJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1yYWRpbycpO1xuXG4gIGdldCBncm91cE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID8/IHRoaXMuZ3JvdXBJZDtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBSYWRpb1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IFJhZGlvVmFsdWUpIHtcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlRm4odmFsdWUpO1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBSYWRpb1ZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSA/PyBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBSYWRpb1ZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdmFsaWRhdGUoXzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlID09PSBudWxsIHx8IHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpc0NoZWNrZWQodmFsdWU6IFJhZGlvVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gdmFsdWU7XG4gIH1cblxuICBpc09wdGlvbkRpc2FibGVkKG9wdGlvbjogUmFkaW9PcHRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCAhIW9wdGlvbi5kaXNhYmxlZDtcbiAgfVxuXG4gIHNlbGVjdCh2YWx1ZTogUmFkaW9WYWx1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICB9XG5cbiAgb3B0aW9uSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ3JvdXBJZH0tb3B0LSR7aW5kZXh9YDtcbiAgfVxuXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zPy5sZW5ndGggfHwgIVJBRElPX05BVklHQVRJT05fS0VZUy5pbmNsdWRlcyhldmVudC5rZXkgYXMgKHR5cGVvZiBSQURJT19OQVZJR0FUSU9OX0tFWVMpW251bWJlcl0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLm9wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiAoeyBvcHRpb24sIGluZGV4IH0pKS5maWx0ZXIoKGVudHJ5KSA9PiAhdGhpcy5pc09wdGlvbkRpc2FibGVkKGVudHJ5Lm9wdGlvbikpO1xuICAgIGlmICghZW5hYmxlZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50SWR4ID0gZW5hYmxlZC5maW5kSW5kZXgoKGVudHJ5KSA9PiB0aGlzLmlzQ2hlY2tlZChlbnRyeS5vcHRpb24udmFsdWUpKTtcbiAgICBsZXQgdGFyZ2V0SWR4ID0gY3VycmVudElkeDtcblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0YXJnZXRJZHggPSAoY3VycmVudElkeCArIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgdGFyZ2V0SWR4ID0gKGN1cnJlbnRJZHggLSAxICsgZW5hYmxlZC5sZW5ndGgpICUgZW5hYmxlZC5sZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICB0YXJnZXRJZHggPSAwO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICB0YXJnZXRJZHggPSBlbmFibGVkLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0gZW5hYmxlZFt0YXJnZXRJZHhdID8/IGVuYWJsZWRbMF07XG4gICAgdGhpcy5zZWxlY3QodGFyZ2V0Lm9wdGlvbi52YWx1ZSk7XG5cbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLnJhZGlvcz8udG9BcnJheSgpID8/IFtdO1xuICAgIGlucHV0c1t0YXJnZXQuaW5kZXhdPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgdHJhY2tCeUlkeCA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBSYWRpb09wdGlvbikgPT4gaXRlbT8udmFsdWUgPz8gaW5kZXg7XG5cbiAgZ2V0T3B0aW9uQXJpYUxhYmVsKG9wdGlvbjogUmFkaW9PcHRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXR1c0tleSA9IHRoaXMuaXNDaGVja2VkKG9wdGlvbi52YWx1ZSkgPyBSQURJT19PUFRJT05fU0VMRUNURURfS0VZIDogUkFESU9fT1BUSU9OX05PVF9TRUxFQ1RFRF9LRVk7XG4gICAgY29uc3QgbGFiZWxQYXJ0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChvcHRpb24ubGFiZWwpO1xuICAgIGNvbnN0IGhpbnRQYXJ0ID0gb3B0aW9uLmhpbnQgPyBgLCAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQob3B0aW9uLmhpbnQpfWAgOiAnJztcbiAgICBjb25zdCBzdGF0dXNQYXJ0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChzdGF0dXNLZXkpO1xuXG4gICAgcmV0dXJuIGAke2xhYmVsUGFydH0ke2hpbnRQYXJ0fSwgJHtzdGF0dXNQYXJ0fWA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtcmFkaW9cIlxuICBbY2xhc3MuaW5saW5lXT1cIm9yaWVudGF0aW9uID09PSAnaW5saW5lJ1wiXG4gIFtjbGFzcy5zdGFja2VkXT1cIm9yaWVudGF0aW9uID09PSAnc3RhY2tlZCdcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaW52YWxpZF09XCIhIWVycm9yXCJcbiAgcm9sZT1cInJhZGlvZ3JvdXBcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIWVycm9yXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsID8gZ3JvdXBJZCArICctbGFiZWwnIDogbnVsbFwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludCA/IGdyb3VwSWQgKyAnLWhpbnQnIDogbnVsbFwiXG4gIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgdGFiaW5kZXg9XCItMVwiXG4+XG4gIEBpZiAobGFiZWwgfHwgaGludCkge1xuICA8ZGl2IGNsYXNzPVwic2RjLXJhZGlvX19oZWFkZXJcIj5cbiAgICBAaWYgKGxhYmVsKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1yYWRpb19fZ3JvdXAtbGFiZWxcIiBbaWRdPVwiZ3JvdXBJZCArICctbGFiZWwnXCI+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICB9IEBpZiAoaGludCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtcmFkaW9fX2hpbnRcIiBbaWRdPVwiZ3JvdXBJZCArICctaGludCdcIj57eyBoaW50IHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNkYy1yYWRpb19fb3B0aW9uc1wiXG4gICAgW2NsYXNzLnNpemUtc21dPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gICAgW2NsYXNzLnNpemUtbWRdPVwic2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLnNpemUtbGddPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gID5cbiAgICBAZm9yIChvcHQgb2Ygb3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtcmFkaW9fX29wdGlvblwiXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJpc0NoZWNrZWQob3B0LnZhbHVlKVwiXG4gICAgICBbY2xhc3Mub3B0LWRpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0KVwiXG4gICAgICBbY2xhc3MubGFiZWwtbGVmdF09XCJsYWJlbFBsYWNlbWVudCA9PT0gJ2xlZnQnXCJcbiAgICAgIFthdHRyLmZvcl09XCJvcHRpb25JZChpKVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNyYWRpb0lucHV0XG4gICAgICAgIGNsYXNzPVwic2RjLXJhZGlvX19pbnB1dFwiXG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIFtpZF09XCJvcHRpb25JZChpKVwiXG4gICAgICAgIFtuYW1lXT1cImdyb3VwTmFtZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc09wdGlvbkRpc2FibGVkKG9wdClcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQob3B0LnZhbHVlKVwiXG4gICAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE9wdGlvbkFyaWFMYWJlbChvcHQpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3Qob3B0LnZhbHVlKVwiXG4gICAgICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX2NvbnRyb2xcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1yYWRpb19fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1yYWRpb19fbGFiZWxcIj57eyBvcHQubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIEBpZiAob3B0LmhpbnQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX3N1YmxhYmVsXCI+e3sgb3B0LmhpbnQgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmIChlcnJvcikge1xuICA8ZGl2IGNsYXNzPVwic2RjLXJhZGlvX19lcnJvclwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPnt7IGVycm9yIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gIH1cbjwvZGl2PiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsNkJBQTZCLEVBQzdCLHlCQUF5QixFQUMxQixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUF1QjVELE1BQU0sT0FBTyxjQUFjO0lBQ1IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxPQUFPLEdBQStCLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQVU7SUFDZCxLQUFLLENBQVU7SUFDZixJQUFJLENBQVU7SUFDZCxLQUFLLENBQVU7SUFDZixXQUFXLEdBQXlCLFFBQVEsQ0FBQztJQUM3QyxJQUFJLEdBQXVCLElBQUksQ0FBQztJQUNoQyxjQUFjLEdBQXFCLE9BQU8sQ0FBQztJ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c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUVzQyxNQUFNO3NCQUFsRCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge1xuICBSQURJT19OQVZJR0FUSU9OX0tFWVMsXG4gIFJBRElPX09QVElPTl9OT1RfU0VMRUNURURfS0VZLFxuICBSQURJT19PUFRJT05fU0VMRUNURURfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL3JhZGlvLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUmFkaW9PcHRpb24sIFJhZGlvVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3JhZGlvLnR5cGUnO1xuaW1wb3J0IHsgbmV4dFNlcXVlbnRpYWxJZCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaWQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgb3B0aW9uczogUmVhZG9ubHlBcnJheTxSYWRpb09wdGlvbj4gPSBbXTtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpbnQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2lubGluZScgfCAnc3RhY2tlZCcgPSAnaW5saW5lJztcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ21kJztcbiAgQElucHV0KCkgbGFiZWxQbGFjZW1lbnQ6ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJhZGlvVmFsdWU+KCk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9WYWx1ZT4oKTtcbiAgQE91dHB1dCgpIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ3JhZGlvSW5wdXQnKSBwcml2YXRlIHJlYWRvbmx5IHJhZGlvcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PjtcblxuICBwcml2YXRlIF92YWx1ZTogUmFkaW9WYWx1ZSA9IG51bGw7XG4gIHByaXZhdGUgb25DaGFuZ2VGbjogKHZhbHVlOiBSYWRpb1ZhbHVlKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICByZWFkb25seSBncm91cElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLXJhZGlvJyk7XG5cbiAgZ2V0IGdyb3VwTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPz8gdGhpcy5ncm91cElkO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFJhZGlvVmFsdWUge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWx1ZTogUmFkaW9WYWx1ZSkge1xuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2VGbih2YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJhZGlvVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFJhZGlvVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB2YWxpZGF0ZShfOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgKHRoaXMudmFsdWUgPT09IG51bGwgfHwgdGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlzQ2hlY2tlZCh2YWx1ZTogUmFkaW9WYWx1ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSB2YWx1ZTtcbiAgfVxuXG4gIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uOiBSYWRpb09wdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICEhb3B0aW9uLmRpc2FibGVkO1xuICB9XG5cbiAgc2VsZWN0KHZhbHVlOiBSYWRpb1ZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XG4gIH1cblxuICBvcHRpb25JZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5ncm91cElkfS1vcHQtJHtpbmRleH1gO1xuICB9XG5cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnM/Lmxlbmd0aCB8fCAhUkFESU9fTkFWSUdBVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSBhcyAodHlwZW9mIFJBRElPX05BVklHQVRJT05fS0VZUylbbnVtYmVyXSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZW5hYmxlZCA9IHRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+ICh7IG9wdGlvbiwgaW5kZXggfSkpLmZpbHRlcigoZW50cnkpID0+ICF0aGlzLmlzT3B0aW9uRGlzYWJsZWQoZW50cnkub3B0aW9uKSk7XG4gICAgaWYgKCFlbmFibGVkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJZHggPSBlbmFibGVkLmZpbmRJbmRleCgoZW50cnkpID0+IHRoaXMuaXNDaGVja2VkKGVudHJ5Lm9wdGlvbi52YWx1ZSkpO1xuICAgIGxldCB0YXJnZXRJZHggPSBjdXJyZW50SWR4O1xuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRhcmdldElkeCA9IChjdXJyZW50SWR4ICsgMSArIGVuYWJsZWQubGVuZ3RoKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0YXJnZXRJZHggPSAoY3VycmVudElkeCAtIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRhcmdldElkeCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIHRhcmdldElkeCA9IGVuYWJsZWQubGVuZ3RoIC0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldElkeF0gPz8gZW5hYmxlZFswXTtcbiAgICB0aGlzLnNlbGVjdCh0YXJnZXQub3B0aW9uLnZhbHVlKTtcblxuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMucmFkaW9zPy50b0FycmF5KCkgPz8gW107XG4gICAgaW5wdXRzW3RhcmdldC5pbmRleF0/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICB0cmFja0J5SWR4ID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IFJhZGlvT3B0aW9uKSA9PiBpdGVtPy52YWx1ZSA/PyBpbmRleDtcblxuICBnZXRPcHRpb25BcmlhTGFiZWwob3B0aW9uOiBSYWRpb09wdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzS2V5ID0gdGhpcy5pc0NoZWNrZWQob3B0aW9uLnZhbHVlKSA/IFJBRElPX09QVElPTl9TRUxFQ1RFRF9LRVkgOiBSQURJT19PUFRJT05fTk9UX1NFTEVDVEVEX0tFWTtcbiAgICBjb25zdCBsYWJlbFBhcnQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG9wdGlvbi5sYWJlbCk7XG4gICAgY29uc3QgaGludFBhcnQgPSBvcHRpb24uaGludCA/IGAsICR7dGhpcy50cmFuc2xhdGUuaW5zdGFudChvcHRpb24uaGludCl9YCA6ICcnO1xuICAgIGNvbnN0IHN0YXR1c1BhcnQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN0YXR1c0tleSk7XG5cbiAgICByZXR1cm4gYCR7bGFiZWxQYXJ0fSR7aGludFBhcnR9LCAke3N0YXR1c1BhcnR9YDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNkYy1yYWRpb1wiXG4gIFtjbGFzcy5pbmxpbmVdPVwib3JpZW50YXRpb24gPT09ICdpbmxpbmUnXCJcbiAgW2NsYXNzLnN0YWNrZWRdPVwib3JpZW50YXRpb24gPT09ICdzdGFja2VkJ1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pbnZhbGlkXT1cIiEhZXJyb3JcIlxuICByb2xlPVwicmFkaW9ncm91cFwiXG4gIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZXJyb3JcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWwgPyBncm91cElkICsgJy1sYWJlbCcgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50ID8gZ3JvdXBJZCArICctaGludCcgOiBudWxsXCJcbiAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgQGlmIChsYWJlbCB8fCBoaW50KSB7XG4gIDxkaXYgY2xhc3M9XCJzZGMtcmFkaW9fX2hlYWRlclwiPlxuICAgIEBpZiAobGFiZWwpIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLXJhZGlvX19ncm91cC1sYWJlbFwiIFtpZF09XCJncm91cElkICsgJy1sYWJlbCdcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIH0gQGlmIChoaW50KSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1yYWRpb19faGludFwiIFtpZF09XCJncm91cElkICsgJy1oaW50J1wiPnt7IGhpbnQgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICB9XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2RjLXJhZGlvX19vcHRpb25zXCJcbiAgICBbY2xhc3Muc2l6ZS1zbV09XCJzaXplID09PSAnc20nXCJcbiAgICBbY2xhc3Muc2l6ZS1tZF09XCJzaXplID09PSAnbWQnXCJcbiAgICBbY2xhc3Muc2l6ZS1sZ109XCJzaXplID09PSAnbGcnXCJcbiAgPlxuICAgIEBmb3IgKG9wdCBvZiBvcHRpb25zOyB0cmFjayBvcHQudmFsdWU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cInNkYy1yYWRpb19fb3B0aW9uXCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImlzQ2hlY2tlZChvcHQudmFsdWUpXCJcbiAgICAgIFtjbGFzcy5vcHQtZGlzYWJsZWRdPVwiaXNPcHRpb25EaXNhYmxlZChvcHQpXCJcbiAgICAgIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUGxhY2VtZW50ID09PSAnbGVmdCdcIlxuICAgICAgW2F0dHIuZm9yXT1cIm9wdGlvbklkKGkpXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI3JhZGlvSW5wdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtcmFkaW9fX2lucHV0XCJcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2lkXT1cIm9wdGlvbklkKGkpXCJcbiAgICAgICAgW25hbWVdPVwiZ3JvdXBOYW1lXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0KVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChvcHQudmFsdWUpXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdC52YWx1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0T3B0aW9uQXJpYUxhYmVsKG9wdClcIlxuICAgICAgICAoY2hhbmdlKT1cInNlbGVjdChvcHQudmFsdWUpXCJcbiAgICAgICAgKGZvY3VzKT1cImZvY3VzZWQuZW1pdCgpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhZGlvX19jb250cm9sXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX3RleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX2xhYmVsXCI+e3sgb3B0LmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICBAaWYgKG9wdC5oaW50KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhZGlvX19zdWJsYWJlbFwiPnt7IG9wdC5oaW50IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAoZXJyb3IpIHtcbiAgPGRpdiBjbGFzcz1cInNkYy1yYWRpb19fZXJyb3JcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj57eyBlcnJvciB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICB9XG48L2Rpdj4iXX0=
@@ -3,8 +3,9 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewCh
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { resolveTranslatableText } from '../../../core/utils/i18n.util';
5
5
  import { isMobile } from '../../../core/utils/layout.util';
6
+ import { BadgeComponent } from '../../badge/badge.component';
6
7
  import { ButtonComponent } from '../../button/button.component';
7
- import { TooltipComponent } from '../../tooltip/tooltip.component';
8
+ import { InfoSignComponent } from '../../info-sign/info-sign.component';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@ngx-translate/core";
10
11
  export class RowCardComponent {
@@ -20,6 +21,7 @@ export class RowCardComponent {
20
21
  isExpanded = false;
21
22
  detailTemplate;
22
23
  infoTooltip = null;
24
+ statusTooltip = null;
23
25
  cardClick = new EventEmitter();
24
26
  cardButtonClick = new EventEmitter();
25
27
  contentWrapper;
@@ -33,21 +35,36 @@ export class RowCardComponent {
33
35
  get leftSubtitleText() {
34
36
  return this.translateLabel(this.data?.left_subtitle);
35
37
  }
38
+ get rightTitleText() {
39
+ return this.translateLabel(this.data?.right_title);
40
+ }
36
41
  get tagText() {
37
42
  return this.translateLabel(this.data?.tag);
38
43
  }
39
44
  get rightSubtitleText() {
40
45
  return this.translateLabel(this.data?.right_subtitle);
41
46
  }
47
+ get statusTitleText() {
48
+ return this.rightTitleText || this.translateLabel(this.options?.badgeTitle);
49
+ }
50
+ get hasStatusColumn() {
51
+ return !!(this.statusTitleText || this.data?.badge);
52
+ }
42
53
  get wrapperDetailText() {
43
54
  return this.translateLabel(this.data?.wrapperDetail);
44
55
  }
45
56
  get buttonLabelText() {
46
- return this.translateLabel(this.options?.buttonLabel);
57
+ return this.translateLabel(this.data?.buttonLabel ?? this.options?.buttonLabel);
58
+ }
59
+ get badgeColor() {
60
+ return this.data?.badge?.color ?? 'blue';
47
61
  }
48
62
  get infoTooltipText() {
49
63
  return resolveTranslatableText(this.translate, this.infoTooltip) || null;
50
64
  }
65
+ get statusTooltipText() {
66
+ return resolveTranslatableText(this.translate, this.statusTooltip) || null;
67
+ }
51
68
  ngOnChanges(changes) {
52
69
  if (changes['isExpanded'] || changes['options']) {
53
70
  queueMicrotask(() => this.updateCollapseHeight());
@@ -85,7 +102,10 @@ export class RowCardComponent {
85
102
  getCardAriaLabel() {
86
103
  const parts = [
87
104
  this.translateLabel(this.data.left_title),
88
- this.translateLabel(this.data.left_subtitle)
105
+ this.translateLabel(this.data.left_subtitle),
106
+ this.statusTitleText,
107
+ this.translateLabel(this.data.badge?.label),
108
+ this.rightSubtitleText
89
109
  ].filter(Boolean);
90
110
  if (this.options?.expandable) {
91
111
  parts.push(this.translate.instant(this.expanded
@@ -95,7 +115,7 @@ export class RowCardComponent {
95
115
  return parts.join(', ');
96
116
  }
97
117
  getButtonAriaLabel() {
98
- const action = resolveTranslatableText(this.translate, this.options?.buttonLabel, 'platform.datacore.list.default_action_label');
118
+ const action = resolveTranslatableText(this.translate, this.data?.buttonLabel ?? this.options?.buttonLabel, 'platform.datacore.list.default_action_label');
99
119
  const title = this.leftTitleText;
100
120
  return this.translate.instant('platform.datacore.accessibility.row_card_button_action', { action, title });
101
121
  }
@@ -114,16 +134,17 @@ export class RowCardComponent {
114
134
  return resolveTranslatableText(this.translate, value);
115
135
  }
116
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
117
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content flex flex-wrap md:flex-nowrap align-items-start md:align-items-center w-full gap-4\">\n <div class=\"flex-shrink-0 row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main flex-1 min-w-0\">\n <div class=\"sdc-title-row font-semibold flex align-items-center gap-2\" [ngClass]=\"options?.leftTitleColor\">\n <sdc-tooltip\n class=\"sdc-info-tooltip-wrap\"\n [pTooltip]=\"infoTooltipText\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\">\n {{ leftTitleText }}\n </span>\n\n @if (infoTooltip) {\n <i class=\"fas fa-info-circle sdc-info-tooltip\" aria-hidden=\"true\"></i>\n }\n </sdc-tooltip>\n </div>\n\n <div class=\"text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n\n <div class=\"mt-2 flex flex-wrap gap-2 align-items-center\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n </div>\n\n <div class=\"row-card-actions flex-1 flex justify-content-end align-items-start md:align-items-center gap-4 w-full\">\n <div class=\"text-right text-sm flex flex-column gap-1 md:align-items-end row-card-summary\">\n <span [ngClass]=\"options?.rightSubtitleColor\">{{ rightSubtitleText }}</span>\n </div>\n\n <div class=\"ml-auto w-full md:w-auto flex justify-content-end flex-shrink-0 pr-2\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n class=\"w-full md:w-auto\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{width:100%}.row-card-main{display:flex;flex-direction:column;justify-content:center;min-height:100%}.row-card-actions{align-items:center}.row-card-icon{display:flex;align-items:center;justify-content:center;align-self:center}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 6px);padding:var(--sdc-row-card-tag-padding, .1rem .3rem);border:.1rem solid var(--sdc-row-card-tag-border, #96b7cb);background:var(--sdc-row-card-tag-bg, #d5e8ec);color:var(--sdc-row-card-tag-color, #212233);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:600;min-width:var(--sdc-row-card-tag-min-width, 4rem);line-height:1rem}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.row-card-summary{min-width:13rem}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible}.sdc-info-tooltip-wrap{display:inline-flex;align-items:center;flex:0 0 auto}.sdc-row-card-title{font-size:var(--sdc-row-card-title-size, 1.1rem);min-width:0;padding:0;margin:0}.sdc-info-tooltip{font-size:var(--sdc-row-card-tooltip-size, .9rem);padding-top:var(--sdc-row-card-tooltip-padding-top, .3rem);padding-left:var(--sdc-row-card-tooltip-padding-left, .2rem);line-height:1;margin-left:var(--sdc-row-card-tooltip-margin-left, .25rem);cursor:pointer;opacity:1}.sdc-info-tooltip:hover{opacity:1}@media (min-width: 768px){.row-card-content{min-height:calc(var(--sdc-row-card-height, 6.5rem) - var(--sdc-row-card-padding) * 2);align-items:center}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["onClick"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip", statusTooltip: "statusTooltip" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.1;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.1}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: InfoSignComponent, selector: "sdc-info-sign", inputs: ["label", "labelParams", "tooltip", "tooltipParams", "iconClass", "iconAriaLabel", "tooltipPosition", "tooltipEvent", "inline"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
138
  }
119
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, decorators: [{
120
140
  type: Component,
121
141
  args: [{ standalone: true, selector: 'sdc-row-card', imports: [
142
+ BadgeComponent,
122
143
  ButtonComponent,
144
+ InfoSignComponent,
123
145
  NgClass,
124
- NgTemplateOutlet,
125
- TooltipComponent
126
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content flex flex-wrap md:flex-nowrap align-items-start md:align-items-center w-full gap-4\">\n <div class=\"flex-shrink-0 row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main flex-1 min-w-0\">\n <div class=\"sdc-title-row font-semibold flex align-items-center gap-2\" [ngClass]=\"options?.leftTitleColor\">\n <sdc-tooltip\n class=\"sdc-info-tooltip-wrap\"\n [pTooltip]=\"infoTooltipText\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\">\n {{ leftTitleText }}\n </span>\n\n @if (infoTooltip) {\n <i class=\"fas fa-info-circle sdc-info-tooltip\" aria-hidden=\"true\"></i>\n }\n </sdc-tooltip>\n </div>\n\n <div class=\"text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n\n <div class=\"mt-2 flex flex-wrap gap-2 align-items-center\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n </div>\n\n <div class=\"row-card-actions flex-1 flex justify-content-end align-items-start md:align-items-center gap-4 w-full\">\n <div class=\"text-right text-sm flex flex-column gap-1 md:align-items-end row-card-summary\">\n <span [ngClass]=\"options?.rightSubtitleColor\">{{ rightSubtitleText }}</span>\n </div>\n\n <div class=\"ml-auto w-full md:w-auto flex justify-content-end flex-shrink-0 pr-2\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n class=\"w-full md:w-auto\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{width:100%}.row-card-main{display:flex;flex-direction:column;justify-content:center;min-height:100%}.row-card-actions{align-items:center}.row-card-icon{display:flex;align-items:center;justify-content:center;align-self:center}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 6px);padding:var(--sdc-row-card-tag-padding, .1rem .3rem);border:.1rem solid var(--sdc-row-card-tag-border, #96b7cb);background:var(--sdc-row-card-tag-bg, #d5e8ec);color:var(--sdc-row-card-tag-color, #212233);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:600;min-width:var(--sdc-row-card-tag-min-width, 4rem);line-height:1rem}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.row-card-summary{min-width:13rem}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible}.sdc-info-tooltip-wrap{display:inline-flex;align-items:center;flex:0 0 auto}.sdc-row-card-title{font-size:var(--sdc-row-card-title-size, 1.1rem);min-width:0;padding:0;margin:0}.sdc-info-tooltip{font-size:var(--sdc-row-card-tooltip-size, .9rem);padding-top:var(--sdc-row-card-tooltip-padding-top, .3rem);padding-left:var(--sdc-row-card-tooltip-padding-left, .2rem);line-height:1;margin-left:var(--sdc-row-card-tooltip-margin-left, .25rem);cursor:pointer;opacity:1}.sdc-info-tooltip:hover{opacity:1}@media (min-width: 768px){.row-card-content{min-height:calc(var(--sdc-row-card-height, 6.5rem) - var(--sdc-row-card-padding) * 2);align-items:center}}\n"] }]
146
+ NgTemplateOutlet
147
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.1;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.1}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"] }]
127
148
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { data: [{
128
149
  type: Input
129
150
  }], options: [{
@@ -134,6 +155,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
134
155
  type: Input
135
156
  }], infoTooltip: [{
136
157
  type: Input
158
+ }], statusTooltip: [{
159
+ type: Input
137
160
  }], cardClick: [{
138
161
  type: Output
139
162
  }], cardButtonClick: [{
@@ -142,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
165
  type: ViewChild,
143
166
  args: ['contentWrapper']
144
167
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUloRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFnQm5FLE1BQU0sT0FBTyxnQkFBZ0I7SUFFUjtJQUNBO0lBRm5CLFlBQ21CLEdBQXNCLEVBQ3RCLFNBQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBRTVDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNs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bXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgT3B0aW9uc1Jvd0NhcmQsIFJvd0NhcmQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3Jvdy1jYXJkLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtcm93LWNhcmQnLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUb29sdGlwQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YSE6IFJvd0NhcmQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zUm93Q2FyZDtcbiAgQElucHV0KCkgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcbiAgQE91dHB1dCgpIGNhcmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2FyZD4oKTtcblxuICBAVmlld0NoaWxkKCdjb250ZW50V3JhcHBlcicpIGNvbnRlbnRXcmFwcGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcblxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zPy5leHBhbmRhYmxlICYmICEhdGhpcy5pc0V4cGFuZGVkO1xuICB9XG5cbiAgZ2V0IGxlZnRUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LmxlZnRfdGl0bGUpO1xuICB9XG5cbiAgZ2V0IGxlZnRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LmxlZnRfc3VidGl0bGUpO1xuICB9XG5cbiAgZ2V0IHRhZ1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnRhZyk7XG4gIH1cblxuICBnZXQgcmlnaHRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnJpZ2h0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyRGV0YWlsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ud3JhcHBlckRldGFpbCk7XG4gIH1cblxuICBnZXQgYnV0dG9uTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5vcHRpb25zPy5idXR0b25MYWJlbCk7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXNFeHBhbmRlZCddIHx8IGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZUhlaWdodCgpKTtcbiAgICB9XG4gIH1cblxuICBvbkNhcmRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBvbkV4cGFuZENhcmRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJ3NkYy1idXR0b24nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkNhcmRCdXR0b25DbGljayhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbj8uKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jYXJkQnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZUhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsLnN0eWxlLmhlaWdodCA9IHRoaXMuZXhwYW5kZWQgPyBgJHtlbC5zY3JvbGxIZWlnaHR9cHhgIDogJzBweCc7XG4gIH1cblxuICBnZXRDYXJkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5sZWZ0X3RpdGxlKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfc3VidGl0bGUpXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIHRoaXMuZXhwYW5kZWRcbiAgICAgICAgICAgID8gJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucm93X2NhcmRfZXhwYW5kZWQnXG4gICAgICAgICAgICA6ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2NvbGxhcHNlZCdcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldEJ1dHRvbkFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFjdGlvbiA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KFxuICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsLFxuICAgICAgJ3BsYXRmb3JtLmRhdGFjb3JlLmxpc3QuZGVmYXVsdF9hY3Rpb25fbGFiZWwnXG4gICAgKTtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMubGVmdFRpdGxlVGV4dDtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2J1dHRvbl9hY3Rpb24nLCB7IGFjdGlvbiwgdGl0bGUgfSk7XG4gIH1cblxuICBvbktleWJvYXJkQWN0aXZhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgICB0aGlzLm9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DYXJkQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVsKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBvbkV4cGFuZENhcmRDbGljaygkZXZlbnQpIDogb25DYXJkQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5Ym9hcmRBY3RpdmF0ZSgkZXZlbnQpXCJcbiAgW2NsYXNzLmJvcmRlci1sZWZ0XT1cImRhdGEuaGFzQm9yZGVyXCJcbiAgY2xhc3M9XCJyb3ctY2FyZCB0cmFuc2l0aW9uLWFsbCBjdXJzb3ItcG9pbnRlciB3LWZ1bGxcIlxuICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRDYXJkQXJpYUxhYmVsKClcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBleHBhbmRlZCA6IG51bGxcIlxuPlxuICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtY29udGVudCBmbGV4IGZsZXgtd3JhcCBtZDpmbGV4LW5vd3JhcCBhbGlnbi1pdGVtcy1zdGFydCBtZDphbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsIGdhcC00XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgcm93LWNhcmQtaWNvblwiPlxuICAgICAgQGlmIChvcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICA8aSBbY2xhc3MuZmEtbWludXNdPVwiZXhwYW5kZWRcIiBbY2xhc3MuZmEtcGx1c109XCIhZXhwYW5kZWRcIiBjbGFzcz1cImZhc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcm9ja2V0IHAtMiBtbC0yIHRleHQteGxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtbWFpbiBmbGV4LTEgbWluLXctMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy10aXRsZS1yb3cgZm9udC1zZW1pYm9sZCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LmxlZnRUaXRsZUNvbG9yXCI+XG4gICAgICAgIDxzZGMtdG9vbHRpcFxuICAgICAgICAgIGNsYXNzPVwic2RjLWluZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBUZXh0XCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJvdy1jYXJkLXRpdGxlIHRleHQtb3ZlcmZsb3ctZWxsaXBzaXMgd2hpdGUtc3BhY2Utbm93cmFwIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAge3sgbGVmdFRpdGxlVGV4dCB9fVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIEBpZiAoaW5mb1Rvb2x0aXApIHtcbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtaW5mby10b29sdGlwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LmxlZnRTdWJ0aXRsZUNvbG9yXCI+XG4gICAgICAgIHt7IGxlZnRTdWJ0aXRsZVRleHQgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmbGV4IGZsZXgtd3JhcCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFnXCI+e3sgdGFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWFjdGlvbnMgZmxleC0xIGZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtZDphbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTQgdy1mdWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodCB0ZXh0LXNtIGZsZXggZmxleC1jb2x1bW4gZ2FwLTEgbWQ6YWxpZ24taXRlbXMtZW5kIHJvdy1jYXJkLXN1bW1hcnlcIj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwib3B0aW9ucz8ucmlnaHRTdWJ0aXRsZUNvbG9yXCI+e3sgcmlnaHRTdWJ0aXRsZVRleHQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1sLWF1dG8gdy1mdWxsIG1kOnctYXV0byBmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC1zaHJpbmstMCBwci0yXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWQhXCJcbiAgICAgICAgICBbaWNvbl09XCJvcHRpb25zPy5idXR0b25JY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNNb2JpbGUgPyAnJyA6IGJ1dHRvbkxhYmVsVGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEJ1dHRvbkFyaWFMYWJlbCgpXCJcbiAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKG9wdGlvbnM/LmV4cGFuZGFibGUpIHtcbiAgPGRpdlxuICAgICNjb250ZW50V3JhcHBlclxuICAgIGNsYXNzPVwiY29sbGFwc2Utd3JhcHBlclwiXG4gICAgW2NsYXNzLnNob3ddPVwiZXhwYW5kZWRcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtaW5uZXJcIj5cbiAgICAgIEBpZiAoZGV0YWlsVGVtcGxhdGUpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGF0YSwgZGF0YTogZGF0YSB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LTcwMFwiPnt7IHdyYXBwZXJEZXRhaWxUZXh0IH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUtoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBaUJ4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRVI7SUFDQTtJQUZuQixZQUNtQixHQUFzQixFQUN0QixTQUEyQjtRQUQzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJ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RUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXFCO1FBQzFDLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO3dHQWhLVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw4YkN6QzdCLDQySEF1SEEseTVJRHpGSSxjQUFjLDBRQUNkLGVBQWUsOFNBQ2YsaUJBQWlCLG1NQUNqQixPQUFPLG9GQUNQLGdCQUFnQjs7NEZBT1AsZ0JBQWdCO2tCQWY1QixTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLFdBQ2Y7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsT0FBTzt3QkFDUCxnQkFBZ0I7cUJBQ2pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3FIQVVoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBCYWRnZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9iYWRnZS50eXBlJztcbmltcG9ydCB0eXBlIHsgT3B0aW9uc1Jvd0NhcmQsIFJvd0NhcmQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3Jvdy1jYXJkLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mb1NpZ25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZvLXNpZ24vaW5mby1zaWduLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1yb3ctY2FyZCcsXG4gIGltcG9ydHM6IFtcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW5mb1NpZ25Db21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YSE6IFJvd0NhcmQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zUm93Q2FyZDtcbiAgQElucHV0KCkgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN0YXR1c1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG4gIEBPdXRwdXQoKSBjYXJkQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFdyYXBwZXInKSBjb250ZW50V3JhcHBlcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG5cbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxuXG4gIGdldCBsZWZ0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3RpdGxlKTtcbiAgfVxuXG4gIGdldCBsZWZ0U3VidGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCByaWdodFRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ucmlnaHRfdGl0bGUpO1xuICB9XG5cbiAgZ2V0IHRhZ1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnRhZyk7XG4gIH1cblxuICBnZXQgcmlnaHRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnJpZ2h0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCBzdGF0dXNUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yaWdodFRpdGxlVGV4dCB8fCB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMub3B0aW9ucz8uYmFkZ2VUaXRsZSk7XG4gIH1cblxuICBnZXQgaGFzU3RhdHVzQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnN0YXR1c1RpdGxlVGV4dCB8fCB0aGlzLmRhdGE/LmJhZGdlKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyRGV0YWlsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ud3JhcHBlckRldGFpbCk7XG4gIH1cblxuICBnZXQgYnV0dG9uTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsKTtcbiAgfVxuXG4gIGdldCBiYWRnZUNvbG9yKCk6IEJhZGdlQ29sb3Ige1xuICAgIHJldHVybiB0aGlzLmRhdGE/LmJhZGdlPy5jb2xvciA/PyAnYmx1ZSc7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIGdldCBzdGF0dXNUb29sdGlwVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuc3RhdHVzVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXNFeHBhbmRlZCddIHx8IGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZUhlaWdodCgpKTtcbiAgICB9XG4gIH1cblxuICBvbkNhcmRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBvbkV4cGFuZENhcmRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJ3NkYy1idXR0b24nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkNhcmRCdXR0b25DbGljayhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbj8uKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jYXJkQnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZUhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsLnN0eWxlLmhlaWdodCA9IHRoaXMuZXhwYW5kZWQgPyBgJHtlbC5zY3JvbGxIZWlnaHR9cHhgIDogJzBweCc7XG4gIH1cblxuICBnZXRDYXJkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5sZWZ0X3RpdGxlKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfc3VidGl0bGUpLFxuICAgICAgdGhpcy5zdGF0dXNUaXRsZVRleHQsXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5iYWRnZT8ubGFiZWwpLFxuICAgICAgdGhpcy5yaWdodFN1YnRpdGxlVGV4dFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkXG4gICAgICAgICAgICA/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2V4cGFuZGVkJ1xuICAgICAgICAgICAgOiAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dfY2FyZF9jb2xsYXBzZWQnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXRCdXR0b25BcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3Rpb24gPSByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dChcbiAgICAgIHRoaXMudHJhbnNsYXRlLFxuICAgICAgdGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsLFxuICAgICAgJ3BsYXRmb3JtLmRhdGFjb3JlLmxpc3QuZGVmYXVsdF9hY3Rpb25fbGFiZWwnXG4gICAgKTtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMubGVmdFRpdGxlVGV4dDtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2J1dHRvbl9hY3Rpb24nLCB7IGFjdGlvbiwgdGl0bGUgfSk7XG4gIH1cblxuICBvbktleWJvYXJkQWN0aXZhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgICB0aGlzLm9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DYXJkQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVsKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBvbkV4cGFuZENhcmRDbGljaygkZXZlbnQpIDogb25DYXJkQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5Ym9hcmRBY3RpdmF0ZSgkZXZlbnQpXCJcbiAgW2NsYXNzLmJvcmRlci1sZWZ0XT1cImRhdGEuaGFzQm9yZGVyXCJcbiAgY2xhc3M9XCJyb3ctY2FyZCB0cmFuc2l0aW9uLWFsbCBjdXJzb3ItcG9pbnRlciB3LWZ1bGxcIlxuICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRDYXJkQXJpYUxhYmVsKClcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBleHBhbmRlZCA6IG51bGxcIlxuPlxuICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1pY29uXCI+XG4gICAgICBAaWYgKG9wdGlvbnM/LmV4cGFuZGFibGUpIHtcbiAgICAgIDxpIFtjbGFzcy5mYS1taW51c109XCJleHBhbmRlZFwiIFtjbGFzcy5mYS1wbHVzXT1cIiFleHBhbmRlZFwiIGNsYXNzPVwiZmFzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1yb2NrZXQgcC0yIG1sLTIgdGV4dC14bFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1tYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXRpdGxlLXJvdyBmb250LXNlbWlib2xkXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ubGVmdFRpdGxlQ29sb3JcIj5cbiAgICAgICAgQGlmIChpbmZvVG9vbHRpcCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnblxuICAgICAgICAgIGNsYXNzPVwicm93LWNhcmQtaW5mby1zaWduXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGUgdGV4dC1vdmVyZmxvdy1lbGxpcHNpcyB3aGl0ZS1zcGFjZS1ub3dyYXAgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNkYy1yb3ctY2FyZC10aXRsZSB0ZXh0LW92ZXJmbG93LWVsbGlwc2lzIHdoaXRlLXNwYWNlLW5vd3JhcCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobGVmdFN1YnRpdGxlVGV4dCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLXN1YnRpdGxlIHRleHQtc21cIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyBsZWZ0U3VidGl0bGVUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh0YWdUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtdGFnLXdyYXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFnXCI+e3sgdGFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNTdGF0dXNDb2x1bW4pIHtcbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzXCI+XG4gICAgICBAaWYgKHN0YXR1c1RpdGxlVGV4dCkge1xuICAgICAgICBAaWYgKHN0YXR1c1Rvb2x0aXApIHtcbiAgICAgICAgPHNkYy1pbmZvLXNpZ25cbiAgICAgICAgICBjbGFzcz1cInJvdy1jYXJkLWluZm8tc2lnblwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwic3RhdHVzVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXN0YXR1cy10aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0VGl0bGVDb2xvclwiPnt7IHN0YXR1c1RpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXMtdGl0bGVcIiBbbmdDbGFzc109XCJvcHRpb25zPy5yaWdodFRpdGxlQ29sb3JcIj57eyBzdGF0dXNUaXRsZVRleHQgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmIChkYXRhLmJhZGdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzLWJhZGdlXCI+XG4gICAgICAgIDxzZGMtYmFkZ2UgW3RleHRdPVwiZGF0YS5iYWRnZS5sYWJlbFwiIFtjb2xvcl09XCJiYWRnZUNvbG9yXCI+PC9zZGMtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtYWN0aW9uc1wiPlxuICAgICAgQGlmIChyaWdodFN1YnRpdGxlVGV4dCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1yaWdodC1zdWJ0aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyByaWdodFN1YnRpdGxlVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWJ1dHRvbi13cmFwXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWQhXCJcbiAgICAgICAgICBbaWNvbl09XCJvcHRpb25zPy5idXR0b25JY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNNb2JpbGUgPyAnJyA6IGJ1dHRvbkxhYmVsVGV4dFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRCdXR0b25BcmlhTGFiZWwoKVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgQGlmIChvcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gIDxkaXZcbiAgICAjY29udGVudFdyYXBwZXJcbiAgICBjbGFzcz1cImNvbGxhcHNlLXdyYXBwZXJcIlxuICAgIFtjbGFzcy5zaG93XT1cImV4cGFuZGVkXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWlubmVyXCI+XG4gICAgICBAaWYgKGRldGFpbFRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRhdGEsIGRhdGE6IGRhdGEgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdGV4dC03MDBcIj57eyB3cmFwcGVyRGV0YWlsVGV4dCB9fTwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=