@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.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 (191) hide show
  1. package/core/constants/accordion.const.d.ts +4 -4
  2. package/core/constants/alert.const.d.ts +1 -1
  3. package/core/constants/autocomplete.const.d.ts +2 -2
  4. package/core/constants/badge.const.d.ts +1 -1
  5. package/core/constants/card.const.d.ts +8 -8
  6. package/core/constants/chips.const.d.ts +2 -2
  7. package/core/constants/code-editor.const.d.ts +4 -4
  8. package/core/constants/collapse-link.const.d.ts +2 -2
  9. package/core/constants/color-picker.const.d.ts +2 -2
  10. package/core/constants/combobox.const.d.ts +3 -3
  11. package/core/constants/context-selector.const.d.ts +1 -1
  12. package/core/constants/editable-overlay.const.d.ts +4 -4
  13. package/core/constants/fileupload.const.d.ts +3 -3
  14. package/core/constants/gantt.const.d.ts +1 -1
  15. package/core/constants/help-popover.const.d.ts +2 -2
  16. package/core/constants/hyperlink.const.d.ts +2 -2
  17. package/core/constants/info-sign.const.d.ts +1 -1
  18. package/core/constants/inline-edit.const.d.ts +4 -4
  19. package/core/constants/kanban.const.d.ts +2 -2
  20. package/core/constants/list.const.d.ts +1 -1
  21. package/core/constants/modalc.const.d.ts +1 -1
  22. package/core/constants/navigation-button.const.d.ts +3 -3
  23. package/core/constants/object-card.const.d.ts +2 -2
  24. package/core/constants/picklist.const.d.ts +2 -2
  25. package/core/constants/pin-code-field.const.d.ts +3 -3
  26. package/core/constants/popover.const.d.ts +1 -1
  27. package/core/constants/progressbar.const.d.ts +1 -1
  28. package/core/constants/radio.const.d.ts +2 -2
  29. package/core/constants/rating-scale.const.d.ts +1 -1
  30. package/core/constants/sidebar.const.d.ts +1 -1
  31. package/core/constants/slider.const.d.ts +1 -1
  32. package/core/constants/split-button.const.d.ts +2 -2
  33. package/core/constants/spotlight.const.d.ts +8 -8
  34. package/core/constants/star-rating.const.d.ts +2 -2
  35. package/core/constants/tab.const.d.ts +3 -3
  36. package/core/constants/table.const.d.ts +1 -0
  37. package/core/constants/thumbnails.const.d.ts +4 -4
  38. package/core/constants/token-list.const.d.ts +1 -1
  39. package/core/types/table-column.type.d.ts +4 -0
  40. package/core/types/table-options.type.d.ts +3 -0
  41. package/core/types/table-shared.type.d.ts +1 -1
  42. package/core/types/tile-select.type.d.ts +17 -0
  43. package/esm2022/core/constants/accordion.const.mjs +5 -5
  44. package/esm2022/core/constants/alert.const.mjs +2 -2
  45. package/esm2022/core/constants/autocomplete.const.mjs +3 -3
  46. package/esm2022/core/constants/badge.const.mjs +2 -2
  47. package/esm2022/core/constants/card.const.mjs +9 -9
  48. package/esm2022/core/constants/chips.const.mjs +3 -3
  49. package/esm2022/core/constants/code-editor.const.mjs +5 -5
  50. package/esm2022/core/constants/collapse-link.const.mjs +3 -3
  51. package/esm2022/core/constants/color-picker.const.mjs +3 -3
  52. package/esm2022/core/constants/combobox.const.mjs +7 -4
  53. package/esm2022/core/constants/context-selector.const.mjs +2 -2
  54. package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
  55. package/esm2022/core/constants/fileupload.const.mjs +4 -4
  56. package/esm2022/core/constants/gantt.const.mjs +2 -2
  57. package/esm2022/core/constants/help-popover.const.mjs +3 -3
  58. package/esm2022/core/constants/hyperlink.const.mjs +3 -3
  59. package/esm2022/core/constants/info-sign.const.mjs +2 -2
  60. package/esm2022/core/constants/inline-edit.const.mjs +5 -5
  61. package/esm2022/core/constants/kanban.const.mjs +3 -3
  62. package/esm2022/core/constants/list.const.mjs +2 -2
  63. package/esm2022/core/constants/loading-state.const.mjs +2 -2
  64. package/esm2022/core/constants/modalc.const.mjs +2 -2
  65. package/esm2022/core/constants/navigation-button.const.mjs +4 -4
  66. package/esm2022/core/constants/object-card.const.mjs +3 -3
  67. package/esm2022/core/constants/picklist.const.mjs +3 -3
  68. package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
  69. package/esm2022/core/constants/popover.const.mjs +8 -2
  70. package/esm2022/core/constants/progressbar.const.mjs +2 -2
  71. package/esm2022/core/constants/radio.const.mjs +3 -3
  72. package/esm2022/core/constants/rating-scale.const.mjs +2 -2
  73. package/esm2022/core/constants/sidebar.const.mjs +2 -2
  74. package/esm2022/core/constants/slider.const.mjs +2 -2
  75. package/esm2022/core/constants/split-button.const.mjs +3 -3
  76. package/esm2022/core/constants/spotlight.const.mjs +9 -9
  77. package/esm2022/core/constants/star-rating.const.mjs +3 -3
  78. package/esm2022/core/constants/tab.const.mjs +4 -4
  79. package/esm2022/core/constants/table.const.mjs +4 -3
  80. package/esm2022/core/constants/thumbnails.const.mjs +5 -5
  81. package/esm2022/core/constants/token-list.const.mjs +2 -2
  82. package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
  83. package/esm2022/core/types/table-column.type.mjs +1 -1
  84. package/esm2022/core/types/table-options.type.mjs +1 -1
  85. package/esm2022/core/types/table-shared.type.mjs +1 -1
  86. package/esm2022/core/types/tile-select.type.mjs +8 -0
  87. package/esm2022/core/utils/combobox.util.mjs +6 -6
  88. package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
  89. package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
  90. package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
  91. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
  92. package/esm2022/features/button/button.component.mjs +7 -3
  93. package/esm2022/features/card-list/card/card.component.mjs +2 -2
  94. package/esm2022/features/card-list/card-list.component.mjs +7 -3
  95. package/esm2022/features/chat/chat.component.mjs +4 -4
  96. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  97. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
  98. package/esm2022/features/chips/chips.component.mjs +3 -3
  99. package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
  100. package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
  101. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
  102. package/esm2022/features/currency/currency.component.mjs +1 -1
  103. package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
  104. package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
  105. package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
  106. package/esm2022/features/filters/filters.component.mjs +3 -3
  107. package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
  108. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  109. package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
  110. package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
  111. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  112. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  113. package/esm2022/features/list/list.component.mjs +7 -3
  114. package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
  115. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  116. package/esm2022/features/lookup/lookup.component.mjs +5 -5
  117. package/esm2022/features/mask/mask.component.mjs +4 -4
  118. package/esm2022/features/modal/modal.component.mjs +3 -3
  119. package/esm2022/features/modalc/modalc.component.mjs +3 -3
  120. package/esm2022/features/number-input/number-input.component.mjs +32 -5
  121. package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
  122. package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
  123. package/esm2022/features/object-card/object-card.component.mjs +2 -2
  124. package/esm2022/features/paginator/paginator.component.mjs +3 -3
  125. package/esm2022/features/panel/panel.component.mjs +6 -6
  126. package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
  127. package/esm2022/features/picklist/picklist.component.mjs +6 -4
  128. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
  129. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
  130. package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
  131. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
  132. package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
  133. package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
  134. package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
  135. package/esm2022/features/select-button/select-button.component.mjs +5 -5
  136. package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
  137. package/esm2022/features/slider/slider.component.mjs +3 -3
  138. package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
  139. package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
  140. package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
  141. package/esm2022/features/switch/switch.component.mjs +4 -4
  142. package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
  143. package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
  144. package/esm2022/features/table/table.component.mjs +46 -16
  145. package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
  146. package/esm2022/features/textarea/textarea.component.mjs +3 -3
  147. package/esm2022/features/textbox/textbox.component.mjs +3 -3
  148. package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
  149. package/esm2022/features/toast/toast.component.mjs +3 -3
  150. package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
  151. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  152. package/esm2022/locales/en.json +4760 -4749
  153. package/esm2022/locales/es-CO.json +4760 -4749
  154. package/esm2022/locales/pt.json +4760 -4749
  155. package/esm2022/providers/features.provider.mjs +3 -1
  156. package/esm2022/public-api.mjs +3 -1
  157. package/features/button/button.component.d.ts +2 -1
  158. package/features/card-list/card-list.component.d.ts +3 -1
  159. package/features/code-editor/code-editor.component.d.ts +2 -1
  160. package/features/help-popover/help-popover.component.d.ts +1 -1
  161. package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
  162. package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
  163. package/features/list/list.component.d.ts +3 -1
  164. package/features/navigation-button/navigation-button.component.d.ts +3 -3
  165. package/features/number-input/number-input.component.d.ts +7 -1
  166. package/features/panel/panel.component.d.ts +1 -1
  167. package/features/picklist/picklist.component.d.ts +3 -2
  168. package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
  169. package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
  170. package/features/row-card-list/row-card-list.component.d.ts +3 -1
  171. package/features/spotlight/spotlight.component.d.ts +8 -8
  172. package/features/table/components/table-cell-content.component.d.ts +4 -1
  173. package/features/table/table.component.d.ts +9 -2
  174. package/features/table/utils/table-visual.util.d.ts +5 -0
  175. package/features/textarea/textarea.component.d.ts +1 -1
  176. package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
  177. package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  178. package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
  179. package/features/tile-select/tile-select.component.d.ts +21 -0
  180. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
  181. package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
  182. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
  183. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  184. package/package.json +57 -22
  185. package/public-api.d.ts +3 -0
  186. package/src/locales/en.json +4760 -4749
  187. package/src/locales/es-CO.json +4760 -4749
  188. package/src/locales/pt.json +4760 -4749
  189. package/styles/sdc-global-variables.scss +2 -2
  190. package/styles.css +2 -2
  191. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
@@ -27,10 +27,10 @@ export class ProfilePicturePickerComponent {
27
27
  accept;
28
28
  supportedExtensions = [];
29
29
  confirmBeforeApply = false;
30
- confirmTitle = 'platform.datacore.profile_picture_picker.confirm_title';
31
- confirmMessage = 'platform.datacore.profile_picture_picker.confirm_message';
32
- confirmAcceptLabel = 'platform.datacore.profile_picture_picker.confirm_accept';
33
- confirmRejectLabel = 'platform.datacore.profile_picture_picker.confirm_reject';
30
+ confirmTitle = 'platform.datacore.profile_picture_picker_confirm_title';
31
+ confirmMessage = 'platform.datacore.profile_picture_picker_confirm_message';
32
+ confirmAcceptLabel = 'platform.datacore.profile_picture_picker_confirm_accept';
33
+ confirmRejectLabel = 'platform.datacore.profile_picture_picker_confirm_reject';
34
34
  set image(value) {
35
35
  this._image = value;
36
36
  this.cdr.markForCheck();
@@ -65,16 +65,16 @@ export class ProfilePicturePickerComponent {
65
65
  return this.pendingImageData?.base64 ?? null;
66
66
  }
67
67
  get resolvedRemoveLabel() {
68
- return this.removeButtonLabel ?? 'platform.datacore.profile_picture_picker.remove';
68
+ return this.removeButtonLabel ?? 'platform.datacore.profile_picture_picker_remove';
69
69
  }
70
70
  get resolvedChangeLabel() {
71
- return this.changeButtonLabel ?? 'platform.datacore.profile_picture_picker.change';
71
+ return this.changeButtonLabel ?? 'platform.datacore.profile_picture_picker_change';
72
72
  }
73
73
  get resolvedSimpleTitle() {
74
- return this.simpleTitle ?? 'platform.datacore.profile_picture_picker.drag_or';
74
+ return this.simpleTitle ?? 'platform.datacore.profile_picture_picker_drag_or';
75
75
  }
76
76
  get resolvedActionTitle() {
77
- return this.actionTitle ?? 'platform.datacore.profile_picture_picker.select_file';
77
+ return this.actionTitle ?? 'platform.datacore.profile_picture_picker_select_file';
78
78
  }
79
79
  labelKey() {
80
80
  return typeof this.label === 'string' ? this.label : '';
@@ -281,7 +281,7 @@ export class ProfilePicturePickerComponent {
281
281
  useExisting: forwardRef(() => ProfilePicturePickerComponent),
282
282
  multi: true
283
283
  }
284
- ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "@if (labelKey()) {\n <div class=\"sdc-profile-picture-picker__label-row\">\n <div class=\"sdc-profile-picture-picker__label\" [id]=\"componentId + '-label'\">\n <span class=\"sdc-profile-picture-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n}\n\n<div\n class=\"sdc-profile-picture-picker\"\n [class.sdc-profile-picture-picker--dragover]=\"dragActive\"\n [attr.aria-labelledby]=\"labelKey() ? componentId + '-label' : null\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__avatar\"\n [class.sdc-profile-picture-picker__avatar--clickable]=\"!hasImage\"\n (click)=\"onAvatarClick()\"\n [disabled]=\"hasImage\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n >\n @if (hasImage) {\n <img\n class=\"sdc-profile-picture-picker__avatar-img\"\n [src]=\"imageBase64\"\n width=\"128\"\n height=\"128\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @else {\n <i class=\"far fa-user sdc-profile-picture-picker__avatar-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div class=\"sdc-profile-picture-picker__info\">\n @if (hasImage) {\n <div class=\"sdc-profile-picture-picker__buttons\">\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--change\"\n (click)=\"onChangeClick()\"\n >\n {{ resolvedChangeLabel | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--remove\"\n (click)=\"onRemoveClick()\"\n >\n {{ resolvedRemoveLabel | translate }}\n </button>\n </div>\n } @else {\n <div class=\"sdc-profile-picture-picker__title\">\n <span class=\"sdc-profile-picture-picker__simple-title\">{{ resolvedSimpleTitle | translate }}</span>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__action action\"\n (click)=\"onActionClick()\"\n >\n {{ resolvedActionTitle | translate }}\n </button>\n </div>\n }\n\n @if (subtitle) {\n <div class=\"sdc-profile-picture-picker__subtitle\">\n {{ subtitle | translate }}\n </div>\n }\n </div>\n\n <input\n #fileInput\n [id]=\"'profile-picture-input-' + componentId\"\n type=\"file\"\n class=\"sdc-profile-picture-picker__file-input\"\n [accept]=\"accept\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileSelected($event)\"\n />\n\n <sdc-modal\n [visible]=\"confirmVisible\"\n (visibleChange)=\"onConfirmVisibleChange($event)\"\n [header]=\"confirmTitle\"\n [width]=\"'33.75rem'\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"true\"\n [appendToBody]=\"true\"\n [footerButtons]=\"confirmFooterButtons\"\n styleClass=\"sdc-profile-picture-picker__confirm-modal\"\n >\n <div class=\"sdc-profile-picture-picker__confirm-content\">\n <p class=\"sdc-profile-picture-picker__confirm-message\">\n {{ confirmMessage | translate }}\n </p>\n\n @if (confirmPreview) {\n <div\n class=\"sdc-profile-picture-picker__confirm-preview\"\n [class.sdc-profile-picture-picker__confirm-preview--rounded]=\"usesRoundedCrop\"\n >\n <img\n class=\"sdc-profile-picture-picker__confirm-preview-image\"\n [class.sdc-profile-picture-picker__confirm-preview-image--rounded]=\"usesRoundedCrop\"\n [style.aspect-ratio]=\"confirmPreviewAspectRatio\"\n [src]=\"confirmPreview\"\n alt=\"preview\"\n width=\"280\"\n height=\"280\"\n />\n </div>\n }\n </div>\n </sdc-modal>\n</div>\n", styles: [":host{display:block}.sdc-profile-picture-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-profile-picture-picker__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-profile-picture-picker__label-text{display:inline-flex;align-items:center}.sdc-profile-picture-picker{--sdc-ppp-avatar-size: 5rem;--sdc-ppp-avatar-bg: #e5eaea;--sdc-ppp-avatar-color: #697882;--sdc-ppp-action-color: #428bca;--sdc-ppp-subtitle-color: #697882;--sdc-ppp-subtitle-size: .75rem;--sdc-ppp-btn-gap: .5rem;--sdc-ppp-btn-color-change: #428bca;--sdc-ppp-btn-color-remove: #d9534f;display:flex;align-items:center;gap:1.25rem;padding:.5rem;border:1px dashed transparent;border-radius:.75rem;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.sdc-profile-picture-picker--dragover{border-color:var(--sdc-ppp-action-color);background:#428bca0f;box-shadow:0 0 0 3px #428bca1f}.sdc-profile-picture-picker__avatar{flex-shrink:0;width:var(--sdc-ppp-avatar-size);height:var(--sdc-ppp-avatar-size);border-radius:50%;background-color:var(--sdc-ppp-avatar-bg);color:var(--sdc-ppp-avatar-color);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:calc(var(--sdc-ppp-avatar-size) * .45)}.sdc-profile-picture-picker__avatar--clickable{cursor:pointer}.sdc-profile-picture-picker__avatar--clickable:hover{opacity:.85}.sdc-profile-picture-picker__avatar--clickable:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px}.sdc-profile-picture-picker__avatar-img{width:100%;height:100%;object-fit:cover;display:block}.sdc-profile-picture-picker__avatar-icon{pointer-events:none}.sdc-profile-picture-picker__info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.sdc-profile-picture-picker__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem}.sdc-profile-picture-picker__simple-title{color:inherit}.sdc-profile-picture-picker__action{cursor:pointer;color:var(--sdc-ppp-action-color);text-decoration:underline;background:none;border:none;padding:0;font:inherit}.sdc-profile-picture-picker__action:hover{opacity:.8}.sdc-profile-picture-picker__action:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__subtitle{font-size:var(--sdc-ppp-subtitle-size);color:var(--sdc-ppp-subtitle-color)}.sdc-profile-picture-picker__buttons{display:flex;gap:var(--sdc-ppp-btn-gap);flex-wrap:wrap}.sdc-profile-picture-picker__btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.sdc-profile-picture-picker__btn--change{color:var(--sdc-ppp-btn-color-change)}.sdc-profile-picture-picker__btn--remove{color:var(--sdc-ppp-btn-color-remove)}.sdc-profile-picture-picker__btn:hover{opacity:.8}.sdc-profile-picture-picker__btn:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__file-input{display:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none}.sdc-profile-picture-picker__confirm-content{display:flex;flex-direction:column;gap:1rem}.sdc-profile-picture-picker__confirm-message{margin:0;color:#45535e;font-size:.9375rem;line-height:1.5}.sdc-profile-picture-picker__confirm-preview{display:flex;justify-content:center;padding:1rem;border:1px solid #d7e1e8;border-radius:1rem;background:linear-gradient(180deg,#fcfdff,#f4f8fb)}.sdc-profile-picture-picker__confirm-preview--rounded{border-radius:999px}.sdc-profile-picture-picker__confirm-preview-image{display:block;width:min(100%,15rem);aspect-ratio:1/1;border-radius:1rem;object-fit:cover;box-shadow:0 10px 24px #0f172a24}.sdc-profile-picture-picker__confirm-preview-image--rounded{border-radius:50%}@media (max-width: 640px){.sdc-profile-picture-picker{align-items:flex-start;flex-direction:column}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "headerActions", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
284
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "@if (labelKey()) {\n <div class=\"sdc-profile-picture-picker__label-row\">\n <div class=\"sdc-profile-picture-picker__label\" [id]=\"componentId + '-label'\">\n <span class=\"sdc-profile-picture-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n}\n\n<div\n class=\"sdc-profile-picture-picker\"\n [class.sdc-profile-picture-picker--dragover]=\"dragActive\"\n [attr.aria-labelledby]=\"labelKey() ? componentId + '-label' : null\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__avatar\"\n [class.sdc-profile-picture-picker__avatar--clickable]=\"!hasImage\"\n (click)=\"onAvatarClick()\"\n [disabled]=\"hasImage\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n >\n @if (hasImage) {\n <img\n class=\"sdc-profile-picture-picker__avatar-img\"\n [src]=\"imageBase64\"\n width=\"128\"\n height=\"128\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @else {\n <i class=\"far fa-user sdc-profile-picture-picker__avatar-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div class=\"sdc-profile-picture-picker__info\">\n @if (hasImage) {\n <div class=\"sdc-profile-picture-picker__buttons\">\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--change\"\n (click)=\"onChangeClick()\"\n >\n {{ resolvedChangeLabel | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--remove\"\n (click)=\"onRemoveClick()\"\n >\n {{ resolvedRemoveLabel | translate }}\n </button>\n </div>\n } @else {\n <div class=\"sdc-profile-picture-picker__title\">\n <span class=\"sdc-profile-picture-picker__simple-title\">{{ resolvedSimpleTitle | translate }}</span>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__action action\"\n (click)=\"onActionClick()\"\n >\n {{ resolvedActionTitle | translate }}\n </button>\n </div>\n }\n\n @if (subtitle) {\n <div class=\"sdc-profile-picture-picker__subtitle\">\n {{ subtitle | translate }}\n </div>\n }\n </div>\n\n <input\n #fileInput\n [id]=\"'profile-picture-input-' + componentId\"\n type=\"file\"\n class=\"sdc-profile-picture-picker__file-input\"\n [accept]=\"accept\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileSelected($event)\"\n />\n\n <sdc-modal\n [visible]=\"confirmVisible\"\n (visibleChange)=\"onConfirmVisibleChange($event)\"\n [header]=\"confirmTitle\"\n [width]=\"'33.75rem'\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"true\"\n [appendToBody]=\"true\"\n [footerButtons]=\"confirmFooterButtons\"\n styleClass=\"sdc-profile-picture-picker__confirm-modal\"\n >\n <div class=\"sdc-profile-picture-picker__confirm-content\">\n <p class=\"sdc-profile-picture-picker__confirm-message\">\n {{ confirmMessage | translate }}\n </p>\n\n @if (confirmPreview) {\n <div\n class=\"sdc-profile-picture-picker__confirm-preview\"\n [class.sdc-profile-picture-picker__confirm-preview--rounded]=\"usesRoundedCrop\"\n >\n <img\n class=\"sdc-profile-picture-picker__confirm-preview-image\"\n [class.sdc-profile-picture-picker__confirm-preview-image--rounded]=\"usesRoundedCrop\"\n [style.aspect-ratio]=\"confirmPreviewAspectRatio\"\n [src]=\"confirmPreview\"\n alt=\"preview\"\n width=\"280\"\n height=\"280\"\n />\n </div>\n }\n </div>\n </sdc-modal>\n</div>\n", styles: [":host{display:block}.sdc-profile-picture-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-profile-picture-picker__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-profile-picture-picker__label-text{display:inline-flex;align-items:center}.sdc-profile-picture-picker{--sdc-ppp-avatar-size: 5rem;--sdc-ppp-avatar-bg: #e5eaea;--sdc-ppp-avatar-color: #697882;--sdc-ppp-action-color: #428bca;--sdc-ppp-subtitle-color: #697882;--sdc-ppp-subtitle-size: .75rem;--sdc-ppp-btn-gap: .5rem;--sdc-ppp-btn-color-change: #428bca;--sdc-ppp-btn-color-remove: #d9534f;display:flex;align-items:center;gap:1.25rem;padding:.5rem;border:1px dashed transparent;border-radius:.75rem;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.sdc-profile-picture-picker--dragover{border-color:var(--sdc-ppp-action-color);background:#428bca0f;box-shadow:0 0 0 3px #428bca1f}.sdc-profile-picture-picker__avatar{flex-shrink:0;width:var(--sdc-ppp-avatar-size);height:var(--sdc-ppp-avatar-size);border-radius:50%;background-color:var(--sdc-ppp-avatar-bg);color:var(--sdc-ppp-avatar-color);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:calc(var(--sdc-ppp-avatar-size) * .45)}.sdc-profile-picture-picker__avatar--clickable{cursor:pointer}.sdc-profile-picture-picker__avatar--clickable:hover{opacity:.85}.sdc-profile-picture-picker__avatar--clickable:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px}.sdc-profile-picture-picker__avatar-img{width:100%;height:100%;object-fit:cover;display:block}.sdc-profile-picture-picker__avatar-icon{pointer-events:none}.sdc-profile-picture-picker__info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.sdc-profile-picture-picker__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem}.sdc-profile-picture-picker__simple-title{color:inherit}.sdc-profile-picture-picker__action{cursor:pointer;color:var(--sdc-ppp-action-color);text-decoration:underline;background:none;border:none;padding:0;font:inherit}.sdc-profile-picture-picker__action:hover{opacity:.8}.sdc-profile-picture-picker__action:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__subtitle{font-size:var(--sdc-ppp-subtitle-size);color:var(--sdc-ppp-subtitle-color)}.sdc-profile-picture-picker__buttons{display:flex;gap:var(--sdc-ppp-btn-gap);flex-wrap:wrap}.sdc-profile-picture-picker__btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.sdc-profile-picture-picker__btn--change{color:var(--sdc-ppp-btn-color-change)}.sdc-profile-picture-picker__btn--remove{color:var(--sdc-ppp-btn-color-remove)}.sdc-profile-picture-picker__btn:hover{opacity:.8}.sdc-profile-picture-picker__btn:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__file-input{display:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none}.sdc-profile-picture-picker__confirm-content{display:flex;flex-direction:column;gap:1rem}.sdc-profile-picture-picker__confirm-message{margin:0;color:#45535e;font-size:.9375rem;line-height:1.5}.sdc-profile-picture-picker__confirm-preview{display:flex;justify-content:center;padding:1rem;border:1px solid #d7e1e8;border-radius:1rem;background:linear-gradient(180deg,#fcfdff,#f4f8fb)}.sdc-profile-picture-picker__confirm-preview--rounded{border-radius:999px}.sdc-profile-picture-picker__confirm-preview-image{display:block;width:min(100%,15rem);aspect-ratio:1/1;border-radius:1rem;object-fit:cover;box-shadow:0 10px 24px #0f172a24}.sdc-profile-picture-picker__confirm-preview-image--rounded{border-radius:50%}@media (max-width: 640px){.sdc-profile-picture-picker{align-items:flex-start;flex-direction:column}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "headerActions", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
285
285
  }
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfilePicturePickerComponent, decorators: [{
287
287
  type: Component,
@@ -291,7 +291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
291
291
  useExisting: forwardRef(() => ProfilePicturePickerComponent),
292
292
  multi: true
293
293
  }
294
- ], template: "@if (labelKey()) {\n <div class=\"sdc-profile-picture-picker__label-row\">\n <div class=\"sdc-profile-picture-picker__label\" [id]=\"componentId + '-label'\">\n <span class=\"sdc-profile-picture-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n}\n\n<div\n class=\"sdc-profile-picture-picker\"\n [class.sdc-profile-picture-picker--dragover]=\"dragActive\"\n [attr.aria-labelledby]=\"labelKey() ? componentId + '-label' : null\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__avatar\"\n [class.sdc-profile-picture-picker__avatar--clickable]=\"!hasImage\"\n (click)=\"onAvatarClick()\"\n [disabled]=\"hasImage\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n >\n @if (hasImage) {\n <img\n class=\"sdc-profile-picture-picker__avatar-img\"\n [src]=\"imageBase64\"\n width=\"128\"\n height=\"128\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @else {\n <i class=\"far fa-user sdc-profile-picture-picker__avatar-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div class=\"sdc-profile-picture-picker__info\">\n @if (hasImage) {\n <div class=\"sdc-profile-picture-picker__buttons\">\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--change\"\n (click)=\"onChangeClick()\"\n >\n {{ resolvedChangeLabel | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--remove\"\n (click)=\"onRemoveClick()\"\n >\n {{ resolvedRemoveLabel | translate }}\n </button>\n </div>\n } @else {\n <div class=\"sdc-profile-picture-picker__title\">\n <span class=\"sdc-profile-picture-picker__simple-title\">{{ resolvedSimpleTitle | translate }}</span>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__action action\"\n (click)=\"onActionClick()\"\n >\n {{ resolvedActionTitle | translate }}\n </button>\n </div>\n }\n\n @if (subtitle) {\n <div class=\"sdc-profile-picture-picker__subtitle\">\n {{ subtitle | translate }}\n </div>\n }\n </div>\n\n <input\n #fileInput\n [id]=\"'profile-picture-input-' + componentId\"\n type=\"file\"\n class=\"sdc-profile-picture-picker__file-input\"\n [accept]=\"accept\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileSelected($event)\"\n />\n\n <sdc-modal\n [visible]=\"confirmVisible\"\n (visibleChange)=\"onConfirmVisibleChange($event)\"\n [header]=\"confirmTitle\"\n [width]=\"'33.75rem'\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"true\"\n [appendToBody]=\"true\"\n [footerButtons]=\"confirmFooterButtons\"\n styleClass=\"sdc-profile-picture-picker__confirm-modal\"\n >\n <div class=\"sdc-profile-picture-picker__confirm-content\">\n <p class=\"sdc-profile-picture-picker__confirm-message\">\n {{ confirmMessage | translate }}\n </p>\n\n @if (confirmPreview) {\n <div\n class=\"sdc-profile-picture-picker__confirm-preview\"\n [class.sdc-profile-picture-picker__confirm-preview--rounded]=\"usesRoundedCrop\"\n >\n <img\n class=\"sdc-profile-picture-picker__confirm-preview-image\"\n [class.sdc-profile-picture-picker__confirm-preview-image--rounded]=\"usesRoundedCrop\"\n [style.aspect-ratio]=\"confirmPreviewAspectRatio\"\n [src]=\"confirmPreview\"\n alt=\"preview\"\n width=\"280\"\n height=\"280\"\n />\n </div>\n }\n </div>\n </sdc-modal>\n</div>\n", styles: [":host{display:block}.sdc-profile-picture-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-profile-picture-picker__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-profile-picture-picker__label-text{display:inline-flex;align-items:center}.sdc-profile-picture-picker{--sdc-ppp-avatar-size: 5rem;--sdc-ppp-avatar-bg: #e5eaea;--sdc-ppp-avatar-color: #697882;--sdc-ppp-action-color: #428bca;--sdc-ppp-subtitle-color: #697882;--sdc-ppp-subtitle-size: .75rem;--sdc-ppp-btn-gap: .5rem;--sdc-ppp-btn-color-change: #428bca;--sdc-ppp-btn-color-remove: #d9534f;display:flex;align-items:center;gap:1.25rem;padding:.5rem;border:1px dashed transparent;border-radius:.75rem;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.sdc-profile-picture-picker--dragover{border-color:var(--sdc-ppp-action-color);background:#428bca0f;box-shadow:0 0 0 3px #428bca1f}.sdc-profile-picture-picker__avatar{flex-shrink:0;width:var(--sdc-ppp-avatar-size);height:var(--sdc-ppp-avatar-size);border-radius:50%;background-color:var(--sdc-ppp-avatar-bg);color:var(--sdc-ppp-avatar-color);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:calc(var(--sdc-ppp-avatar-size) * .45)}.sdc-profile-picture-picker__avatar--clickable{cursor:pointer}.sdc-profile-picture-picker__avatar--clickable:hover{opacity:.85}.sdc-profile-picture-picker__avatar--clickable:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px}.sdc-profile-picture-picker__avatar-img{width:100%;height:100%;object-fit:cover;display:block}.sdc-profile-picture-picker__avatar-icon{pointer-events:none}.sdc-profile-picture-picker__info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.sdc-profile-picture-picker__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem}.sdc-profile-picture-picker__simple-title{color:inherit}.sdc-profile-picture-picker__action{cursor:pointer;color:var(--sdc-ppp-action-color);text-decoration:underline;background:none;border:none;padding:0;font:inherit}.sdc-profile-picture-picker__action:hover{opacity:.8}.sdc-profile-picture-picker__action:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__subtitle{font-size:var(--sdc-ppp-subtitle-size);color:var(--sdc-ppp-subtitle-color)}.sdc-profile-picture-picker__buttons{display:flex;gap:var(--sdc-ppp-btn-gap);flex-wrap:wrap}.sdc-profile-picture-picker__btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.sdc-profile-picture-picker__btn--change{color:var(--sdc-ppp-btn-color-change)}.sdc-profile-picture-picker__btn--remove{color:var(--sdc-ppp-btn-color-remove)}.sdc-profile-picture-picker__btn:hover{opacity:.8}.sdc-profile-picture-picker__btn:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__file-input{display:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none}.sdc-profile-picture-picker__confirm-content{display:flex;flex-direction:column;gap:1rem}.sdc-profile-picture-picker__confirm-message{margin:0;color:#45535e;font-size:.9375rem;line-height:1.5}.sdc-profile-picture-picker__confirm-preview{display:flex;justify-content:center;padding:1rem;border:1px solid #d7e1e8;border-radius:1rem;background:linear-gradient(180deg,#fcfdff,#f4f8fb)}.sdc-profile-picture-picker__confirm-preview--rounded{border-radius:999px}.sdc-profile-picture-picker__confirm-preview-image{display:block;width:min(100%,15rem);aspect-ratio:1/1;border-radius:1rem;object-fit:cover;box-shadow:0 10px 24px #0f172a24}.sdc-profile-picture-picker__confirm-preview-image--rounded{border-radius:50%}@media (max-width: 640px){.sdc-profile-picture-picker{align-items:flex-start;flex-direction:column}}\n"] }]
294
+ ], template: "@if (labelKey()) {\n <div class=\"sdc-profile-picture-picker__label-row\">\n <div class=\"sdc-profile-picture-picker__label\" [id]=\"componentId + '-label'\">\n <span class=\"sdc-profile-picture-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n}\n\n<div\n class=\"sdc-profile-picture-picker\"\n [class.sdc-profile-picture-picker--dragover]=\"dragActive\"\n [attr.aria-labelledby]=\"labelKey() ? componentId + '-label' : null\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__avatar\"\n [class.sdc-profile-picture-picker__avatar--clickable]=\"!hasImage\"\n (click)=\"onAvatarClick()\"\n [disabled]=\"hasImage\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n >\n @if (hasImage) {\n <img\n class=\"sdc-profile-picture-picker__avatar-img\"\n [src]=\"imageBase64\"\n width=\"128\"\n height=\"128\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @else {\n <i class=\"far fa-user sdc-profile-picture-picker__avatar-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div class=\"sdc-profile-picture-picker__info\">\n @if (hasImage) {\n <div class=\"sdc-profile-picture-picker__buttons\">\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--change\"\n (click)=\"onChangeClick()\"\n >\n {{ resolvedChangeLabel | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__btn sdc-profile-picture-picker__btn--remove\"\n (click)=\"onRemoveClick()\"\n >\n {{ resolvedRemoveLabel | translate }}\n </button>\n </div>\n } @else {\n <div class=\"sdc-profile-picture-picker__title\">\n <span class=\"sdc-profile-picture-picker__simple-title\">{{ resolvedSimpleTitle | translate }}</span>\n <button\n type=\"button\"\n class=\"sdc-profile-picture-picker__action action\"\n (click)=\"onActionClick()\"\n >\n {{ resolvedActionTitle | translate }}\n </button>\n </div>\n }\n\n @if (subtitle) {\n <div class=\"sdc-profile-picture-picker__subtitle\">\n {{ subtitle | translate }}\n </div>\n }\n </div>\n\n <input\n #fileInput\n [id]=\"'profile-picture-input-' + componentId\"\n type=\"file\"\n class=\"sdc-profile-picture-picker__file-input\"\n [accept]=\"accept\"\n [attr.aria-label]=\"resolvedActionTitle | translate\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileSelected($event)\"\n />\n\n <sdc-modal\n [visible]=\"confirmVisible\"\n (visibleChange)=\"onConfirmVisibleChange($event)\"\n [header]=\"confirmTitle\"\n [width]=\"'33.75rem'\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"true\"\n [appendToBody]=\"true\"\n [footerButtons]=\"confirmFooterButtons\"\n styleClass=\"sdc-profile-picture-picker__confirm-modal\"\n >\n <div class=\"sdc-profile-picture-picker__confirm-content\">\n <p class=\"sdc-profile-picture-picker__confirm-message\">\n {{ confirmMessage | translate }}\n </p>\n\n @if (confirmPreview) {\n <div\n class=\"sdc-profile-picture-picker__confirm-preview\"\n [class.sdc-profile-picture-picker__confirm-preview--rounded]=\"usesRoundedCrop\"\n >\n <img\n class=\"sdc-profile-picture-picker__confirm-preview-image\"\n [class.sdc-profile-picture-picker__confirm-preview-image--rounded]=\"usesRoundedCrop\"\n [style.aspect-ratio]=\"confirmPreviewAspectRatio\"\n [src]=\"confirmPreview\"\n alt=\"preview\"\n width=\"280\"\n height=\"280\"\n />\n </div>\n }\n </div>\n </sdc-modal>\n</div>\n", styles: [":host{display:block}.sdc-profile-picture-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-profile-picture-picker__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-profile-picture-picker__label-text{display:inline-flex;align-items:center}.sdc-profile-picture-picker{--sdc-ppp-avatar-size: 5rem;--sdc-ppp-avatar-bg: #e5eaea;--sdc-ppp-avatar-color: #697882;--sdc-ppp-action-color: #428bca;--sdc-ppp-subtitle-color: #697882;--sdc-ppp-subtitle-size: .75rem;--sdc-ppp-btn-gap: .5rem;--sdc-ppp-btn-color-change: #428bca;--sdc-ppp-btn-color-remove: #d9534f;display:flex;align-items:center;gap:1.25rem;padding:.5rem;border:1px dashed transparent;border-radius:.75rem;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.sdc-profile-picture-picker--dragover{border-color:var(--sdc-ppp-action-color);background:#428bca0f;box-shadow:0 0 0 3px #428bca1f}.sdc-profile-picture-picker__avatar{flex-shrink:0;width:var(--sdc-ppp-avatar-size);height:var(--sdc-ppp-avatar-size);border-radius:50%;background-color:var(--sdc-ppp-avatar-bg);color:var(--sdc-ppp-avatar-color);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:calc(var(--sdc-ppp-avatar-size) * .45)}.sdc-profile-picture-picker__avatar--clickable{cursor:pointer}.sdc-profile-picture-picker__avatar--clickable:hover{opacity:.85}.sdc-profile-picture-picker__avatar--clickable:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px}.sdc-profile-picture-picker__avatar-img{width:100%;height:100%;object-fit:cover;display:block}.sdc-profile-picture-picker__avatar-icon{pointer-events:none}.sdc-profile-picture-picker__info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.sdc-profile-picture-picker__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem}.sdc-profile-picture-picker__simple-title{color:inherit}.sdc-profile-picture-picker__action{cursor:pointer;color:var(--sdc-ppp-action-color);text-decoration:underline;background:none;border:none;padding:0;font:inherit}.sdc-profile-picture-picker__action:hover{opacity:.8}.sdc-profile-picture-picker__action:focus-visible{outline:2px solid var(--sdc-ppp-action-color);outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__subtitle{font-size:var(--sdc-ppp-subtitle-size);color:var(--sdc-ppp-subtitle-color)}.sdc-profile-picture-picker__buttons{display:flex;gap:var(--sdc-ppp-btn-gap);flex-wrap:wrap}.sdc-profile-picture-picker__btn{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.sdc-profile-picture-picker__btn--change{color:var(--sdc-ppp-btn-color-change)}.sdc-profile-picture-picker__btn--remove{color:var(--sdc-ppp-btn-color-remove)}.sdc-profile-picture-picker__btn:hover{opacity:.8}.sdc-profile-picture-picker__btn:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}.sdc-profile-picture-picker__file-input{display:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none}.sdc-profile-picture-picker__confirm-content{display:flex;flex-direction:column;gap:1rem}.sdc-profile-picture-picker__confirm-message{margin:0;color:#45535e;font-size:.9375rem;line-height:1.5}.sdc-profile-picture-picker__confirm-preview{display:flex;justify-content:center;padding:1rem;border:1px solid #d7e1e8;border-radius:1rem;background:linear-gradient(180deg,#fcfdff,#f4f8fb)}.sdc-profile-picture-picker__confirm-preview--rounded{border-radius:999px}.sdc-profile-picture-picker__confirm-preview-image{display:block;width:min(100%,15rem);aspect-ratio:1/1;border-radius:1rem;object-fit:cover;box-shadow:0 10px 24px #0f172a24}.sdc-profile-picture-picker__confirm-preview-image--rounded{border-radius:50%}@media (max-width: 640px){.sdc-profile-picture-picker{align-items:flex-start;flex-direction:column}}\n"] }]
295
295
  }], propDecorators: { fileInput: [{
296
296
  type: ViewChild,
297
297
  args: ['fileInput']
@@ -336,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
336
336
  }], invalidFile: [{
337
337
  type: Output
338
338
  }] } });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIvcHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIvcHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBb0IxRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLE1BQU0sQ0FBQyxtQkFBbUI7UUFDaEMsTUFBTSxNQUFNLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxDQUFDO1FBQ3BELDZCQUE2QixDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTywwQkFBMEIsTUFBTSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUV1QixTQUFTLENBQWdDO0lBRTlDLFdBQVcsR0FBRyw2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QUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFTyxLQUFLO3NCQUFqQixLQUFLO2dCQVNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpbGVWYWxpZGF0aW9uRXJyb3JzLFxuICBQcm9maWxlUGljdHVyZVBpY2tlckRhdGFcbn0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9wcm9maWxlLXBpY3R1cmUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IEltYWdlQ3JvcHBlclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1jcm9wcGVyL3NlcnZpY2VzL2ltYWdlLWNyb3BwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5cbnR5cGUgUHJvZmlsZVBpY3R1cmVWYWx1ZSA9IHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSB8IG51bGw7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLXBpY3R1cmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYWxsb2NhdGVDb21wb25lbnRJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5leHRJZCA9IFByb2ZpbGVQaWN0dXJlUGlja2VyQ29tcG9uZW50Lm5leHRJZDtcbiAgICBQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudC5uZXh0SWQgKz0gMTtcbiAgICByZXR1cm4gYHByb2ZpbGUtcGljdHVyZS1waWNrZXItJHtuZXh0SWR9YDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbXBvbmVudElkID0gUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQuYWxsb2NhdGVDb21wb25lbnRJZCgpO1xuXG4gIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaW1wbGVUaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlbW92ZUJ1dHRvbkxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBjaGFuZ2VCdXR0b25MYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgYXNwZWN0UmF0aW8gPSAxO1xuICBASW5wdXQoKSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzdXBwb3J0ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBjb25maXJtQmVmb3JlQXBwbHkgPSBmYWxzZTtcbiAgQElucHV0KCkgY29uZmlybVRpdGxlID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXIuY29uZmlybV90aXRsZSc7XG4gIEBJbnB1dCgpIGNvbmZpcm1NZXNzYWdlID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXIuY29uZmlybV9tZXNzYWdlJztcbiAgQElucHV0KCkgY29uZmlybUFjY2VwdExhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXIuY29uZmlybV9hY2NlcHQnO1xuICBASW5wdXQoKSBjb25maXJtUmVqZWN0TGFiZWwgPSAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlci5jb25maXJtX3JlamVjdCc7XG5cbiAgQElucHV0KCkgc2V0IGltYWdlKHZhbHVlOiBQcm9maWxlUGljdHVyZVZhbHVlKSB7XG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBpbWFnZSgpOiBQcm9maWxlUGljdHVyZVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gIH1cblxuICBAT3V0cHV0KCkgaW1hZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YT4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZWRJbWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGludmFsaWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVmFsaWRhdGlvbkVycm9ycz4oKTtcblxuICBwcm90ZWN0ZWQgY29uZmlybVZpc2libGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGRyYWdBY3RpdmUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbWFnZTogUHJvZmlsZVBpY3R1cmVWYWx1ZSA9IG51bGw7XG4gIHByaXZhdGUgcGVuZGluZ0ltYWdlRGF0YTogUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbWFnZUNyb3BwZXJTZXJ2aWNlID0gaW5qZWN0KEltYWdlQ3JvcHBlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgZ2V0IGltYWdlQmFzZTY0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5faW1hZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5faW1hZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlLmJhc2U2NDtcbiAgfVxuXG4gIGdldCBoYXNJbWFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmltYWdlQmFzZTY0O1xuICB9XG5cbiAgZ2V0IGNvbmZpcm1QcmV2aWV3KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdJbWFnZURhdGE/LmJhc2U2NCA/PyBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUmVtb3ZlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVCdXR0b25MYWJlbCA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlci5yZW1vdmUnO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQ2hhbmdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VCdXR0b25MYWJlbCA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlci5jaGFuZ2UnO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkU2ltcGxlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zaW1wbGVUaXRsZSA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlci5kcmFnX29yJztcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFjdGlvblRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uVGl0bGUgPz8gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXIuc2VsZWN0X2ZpbGUnO1xuICB9XG5cbiAgbGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubGFiZWwgPT09ICdzdHJpbmcnID8gdGhpcy5sYWJlbCA6ICcnO1xuICB9XG5cbiAgZ2V0IHVzZXNSb3VuZGVkQ3JvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5hc3BlY3RSYXRpbyAtIDEpIDwgMC4wMDE7XG4gIH1cblxuICBnZXQgY29uZmlybVByZXZpZXdBc3BlY3RSYXRpbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVzZXNSb3VuZGVkQ3JvcCA/ICcxIC8gMScgOiBgJHt0aGlzLmFzcGVjdFJhdGlvfWA7XG4gIH1cblxuICBnZXQgY29uZmlybUZvb3RlckJ1dHRvbnMoKTogTW9kYWxCdXR0b25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdwcm9maWxlLXBpY3R1cmUtY29uZmlybS1yZWplY3QnLFxuICAgICAgICBsYWJlbDogdGhpcy5jb25maXJtUmVqZWN0TGFiZWwsXG4gICAgICAgIHNldmVyaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnJlamVjdFBlbmRpbmdJbWFnZSgpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3Byb2ZpbGUtcGljdHVyZS1jb25maXJtLWFjY2VwdCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLmNvbmZpcm1BY2NlcHRMYWJlbCxcbiAgICAgICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmFjY2VwdFBlbmRpbmdJbWFnZSgpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIG9uQXZhdGFyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzSW1hZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKTtcbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNsaWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkZpbGVTZWxlY3RvcigpO1xuICB9XG5cbiAgb25SZW1vdmVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbWFnZSA9IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMucmVtb3ZlZEltYWdlLmVtaXQoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG5cbiAgICBpZiAoIWlucHV0LmZpbGVzIHx8ICFmaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdmFsdWUgc28gc2FtZSBmaWxlIGNhbiBiZSBzZWxlY3RlZCBhZ2FpblxuICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgfVxuXG4gIG9uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5oYXNEcmFnZ2VkRmlsZShldmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkRyYWdFbnRlcihldmVudCk7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG5cbiAgICBpZiAocmVsYXRlZFRhcmdldCAmJiAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwpPy5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZ0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZHJhZ0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXM/LlswXTtcblxuICAgIGlmICghZmlsZSkge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgfVxuXG4gIG9uQ29uZmlybVZpc2libGVDaGFuZ2UodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29uZmlybVZpc2libGUgPSB2aXNpYmxlO1xuXG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLnBlbmRpbmdJbWFnZURhdGEgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUHJvZmlsZVBpY3R1cmVWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2ltYWdlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFByb2ZpbGVQaWN0dXJlVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKF9pc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgaGFuZGxpbmcgY2FuIGJlIGV4dGVuZGVkIGluIHBoYXNlIDJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZpbGVTZWxlY3RvcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dD8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gdGhpcy52YWxpZGF0ZUZpbGUoZmlsZSk7XG5cbiAgICBpZiAodmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiB2YWxpZGF0aW9uRXJyb3IgfSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgY29uc3QgYmFzZTY0ID0gZS50YXJnZXQ/LnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICB0aGlzLm9wZW5Dcm9wcGVyV2l0aEZpbGUoZmlsZSwgYmFzZTY0KTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSk6IGltcG9ydCgnLi4vLi4vY29yZS90eXBlcy9wcm9maWxlLXBpY3R1cmUtcGlja2VyLnR5cGUnKS5GaWxlVmFsaWRhdGlvbiB8IG51bGwge1xuICAgIGlmICghZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XG4gICAgICByZXR1cm4gJ3R5cGVJbnZhbGlkJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4dCA9IHRoaXMuZ2V0RXh0ZW5zaW9uKGZpbGUubmFtZSk7XG4gICAgICBjb25zdCBzdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLm1hcCgoZW50cnkpID0+IHRoaXMubm9ybWFsaXplRXh0ZW5zaW9uKGVudHJ5KSk7XG4gICAgICBpZiAoIXN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0KSkge1xuICAgICAgICByZXR1cm4gJ3Vuc3VwcG9ydGVkRXh0ZW5zaW9uJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSAhPT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgIHJldHVybiAnbWF4RmlsZVNpemUnO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHRlbnNpb24oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBmaWxlbmFtZS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBwYXJ0cy5sZW5ndGggPiAxID8gdGhpcy5ub3JtYWxpemVFeHRlbnNpb24ocGFydHNbcGFydHMubGVuZ3RoIC0gMV0pIDogJyc7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUV4dGVuc2lvbihleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IGV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZC5zdGFydHNXaXRoKCcuJykgPyBub3JtYWxpemVkIDogYC4ke25vcm1hbGl6ZWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNyb3BwZXJXaXRoRmlsZShmaWxlOiBGaWxlLCBiYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VDcm9wcGVyU2VydmljZS5zaG93KHtcbiAgICAgIGltYWdlU291cmNlOiBiYXNlNjQsXG4gICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcbiAgICAgIHJvdW5kZWQ6IHRoaXMudXNlc1JvdW5kZWRDcm9wLFxuICAgICAgYWxsb3dSZW1vdmU6IGZhbHNlLFxuICAgICAgYWxsb3dTZWxlY3RBbm90aGVyOiB0cnVlLFxuICAgICAgY2hhbmdlSW1hZ2U6ICgpID0+IHRoaXMub3BlbkZpbGVTZWxlY3RvcigpLFxuICAgICAgY3JvcHBlZEltYWdlOiAoY3JvcHBlZEJhc2U2NDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGE6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSA9IHtcbiAgICAgICAgICBzb3VyY2U6IGZpbGUsXG4gICAgICAgICAgYmFzZTY0OiBjcm9wcGVkQmFzZTY0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlQ3JvcHBlZEltYWdlRGF0YShkYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ3JvcHBlZEltYWdlRGF0YShkYXRhOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlybUJlZm9yZUFwcGx5KSB7XG4gICAgICB0aGlzLmFwcGx5SW1hZ2VEYXRhKGRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0ltYWdlRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jb25maXJtVmlzaWJsZSA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SW1hZ2VEYXRhKGRhdGE6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuX2ltYWdlID0gZGF0YTtcbiAgICB0aGlzLm9uQ2hhbmdlKGRhdGEpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5pbWFnZUNoYW5nZS5lbWl0KGRhdGEpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY2NlcHRQZW5kaW5nSW1hZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGVuZGluZ0ltYWdlRGF0YSkge1xuICAgICAgdGhpcy5hcHBseUltYWdlRGF0YSh0aGlzLnBlbmRpbmdJbWFnZURhdGEpO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0ltYWdlRGF0YSA9IG51bGw7XG4gICAgdGhpcy5jb25maXJtVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWplY3RQZW5kaW5nSW1hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nSW1hZ2VEYXRhID0gbnVsbDtcbiAgICB0aGlzLmNvbmZpcm1WaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhc0RyYWdnZWRGaWxlKGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0eXBlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8udHlwZXM7XG4gICAgcmV0dXJuICEhdHlwZXMgJiYgQXJyYXkuZnJvbSh0eXBlcykuaW5jbHVkZXMoJ0ZpbGVzJyk7XG4gIH1cbn1cbiIsIkBpZiAobGFiZWxLZXkoKSkge1xuICA8ZGl2IGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2xhYmVsLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fbGFiZWxcIiBbaWRdPVwiY29tcG9uZW50SWQgKyAnLWxhYmVsJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fbGFiZWwtdGV4dFwiPlxuICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5cbjxkaXZcbiAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlclwiXG4gIFtjbGFzcy5zZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlci0tZHJhZ292ZXJdPVwiZHJhZ0FjdGl2ZVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbEtleSgpID8gY29tcG9uZW50SWQgKyAnLWxhYmVsJyA6IG51bGxcIlxuICAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYXZhdGFyXCJcbiAgICBbY2xhc3Muc2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2F2YXRhci0tY2xpY2thYmxlXT1cIiFoYXNJbWFnZVwiXG4gICAgKGNsaWNrKT1cIm9uQXZhdGFyQ2xpY2soKVwiXG4gICAgW2Rpc2FibGVkXT1cImhhc0ltYWdlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQWN0aW9uVGl0bGUgfCB0cmFuc2xhdGVcIlxuICA+XG4gICAgQGlmIChoYXNJbWFnZSkge1xuICAgICAgPGltZ1xuICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19hdmF0YXItaW1nXCJcbiAgICAgICAgW3NyY109XCJpbWFnZUJhc2U2NFwiXG4gICAgICAgIHdpZHRoPVwiMTI4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTI4XCJcbiAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aSBjbGFzcz1cImZhciBmYS11c2VyIHNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19hdmF0YXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICB9XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9faW5mb1wiPlxuICAgIEBpZiAoaGFzSW1hZ2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYnRuIHNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19idG4tLWNoYW5nZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyByZXNvbHZlZENoYW5nZUxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19idG4gc2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2J0bi0tcmVtb3ZlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVDbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHJlc29sdmVkUmVtb3ZlTGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fc2ltcGxlLXRpdGxlXCI+e3sgcmVzb2x2ZWRTaW1wbGVUaXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2FjdGlvbiBhY3Rpb25cIlxuICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcmVzb2x2ZWRBY3Rpb25UaXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fc3VidGl0bGVcIj5cbiAgICAgICAge3sgc3VidGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIFtpZF09XCIncHJvZmlsZS1waWN0dXJlLWlucHV0LScgKyBjb21wb25lbnRJZFwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2ZpbGUtaW5wdXRcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQWN0aW9uVGl0bGUgfCB0cmFuc2xhdGVcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgLz5cblxuICA8c2RjLW1vZGFsXG4gICAgW3Zpc2libGVdPVwiY29uZmlybVZpc2libGVcIlxuICAgICh2aXNpYmxlQ2hhbmdlKT1cIm9uQ29uZmlybVZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2hlYWRlcl09XCJjb25maXJtVGl0bGVcIlxuICAgIFt3aWR0aF09XCInMzMuNzVyZW0nXCJcbiAgICBbY2xvc2FibGVdPVwidHJ1ZVwiXG4gICAgW21heGltaXphYmxlXT1cImZhbHNlXCJcbiAgICBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFtmb290ZXJCdXR0b25zXT1cImNvbmZpcm1Gb290ZXJCdXR0b25zXCJcbiAgICBzdHlsZUNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2NvbmZpcm0tbW9kYWxcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLWNvbnRlbnRcIj5cbiAgICAgIDxwIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2NvbmZpcm0tbWVzc2FnZVwiPlxuICAgICAgICB7eyBjb25maXJtTWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuXG4gICAgICBAaWYgKGNvbmZpcm1QcmV2aWV3KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXdcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fY29uZmlybS1wcmV2aWV3LS1yb3VuZGVkXT1cInVzZXNSb3VuZGVkQ3JvcFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXctaW1hZ2VcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXctaW1hZ2UtLXJvdW5kZWRdPVwidXNlc1JvdW5kZWRDcm9wXCJcbiAgICAgICAgICAgIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiY29uZmlybVByZXZpZXdBc3BlY3RSYXRpb1wiXG4gICAgICAgICAgICBbc3JjXT1cImNvbmZpcm1QcmV2aWV3XCJcbiAgICAgICAgICAgIGFsdD1cInByZXZpZXdcIlxuICAgICAgICAgICAgd2lkdGg9XCIyODBcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMjgwXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9zZGMtbW9kYWw+XG48L2Rpdj5cbiJdfQ==
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIvcHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIvcHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBb0IxRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLE1BQU0sQ0FBQyxtQkFBbUI7UUFDaEMsTUFBTSxNQUFNLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxDQUFDO1FBQ3BELDZCQUE2QixDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTywwQkFBMEIsTUFBTSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUV1QixTQUFTLENBQWdDO0lBRTlDLFdBQVcsR0FBRyw2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QUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFTyxLQUFLO3NCQUFqQixLQUFLO2dCQVNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpbGVWYWxpZGF0aW9uRXJyb3JzLFxuICBQcm9maWxlUGljdHVyZVBpY2tlckRhdGFcbn0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9wcm9maWxlLXBpY3R1cmUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IEltYWdlQ3JvcHBlclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1jcm9wcGVyL3NlcnZpY2VzL2ltYWdlLWNyb3BwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5cbnR5cGUgUHJvZmlsZVBpY3R1cmVWYWx1ZSA9IHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSB8IG51bGw7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLXBpY3R1cmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYWxsb2NhdGVDb21wb25lbnRJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5leHRJZCA9IFByb2ZpbGVQaWN0dXJlUGlja2VyQ29tcG9uZW50Lm5leHRJZDtcbiAgICBQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudC5uZXh0SWQgKz0gMTtcbiAgICByZXR1cm4gYHByb2ZpbGUtcGljdHVyZS1waWNrZXItJHtuZXh0SWR9YDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbXBvbmVudElkID0gUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQuYWxsb2NhdGVDb21wb25lbnRJZCgpO1xuXG4gIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaW1wbGVUaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlbW92ZUJ1dHRvbkxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBjaGFuZ2VCdXR0b25MYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgYXNwZWN0UmF0aW8gPSAxO1xuICBASW5wdXQoKSBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzdXBwb3J0ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBjb25maXJtQmVmb3JlQXBwbHkgPSBmYWxzZTtcbiAgQElucHV0KCkgY29uZmlybVRpdGxlID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXJfY29uZmlybV90aXRsZSc7XG4gIEBJbnB1dCgpIGNvbmZpcm1NZXNzYWdlID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXJfY29uZmlybV9tZXNzYWdlJztcbiAgQElucHV0KCkgY29uZmlybUFjY2VwdExhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXJfY29uZmlybV9hY2NlcHQnO1xuICBASW5wdXQoKSBjb25maXJtUmVqZWN0TGFiZWwgPSAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlcl9jb25maXJtX3JlamVjdCc7XG5cbiAgQElucHV0KCkgc2V0IGltYWdlKHZhbHVlOiBQcm9maWxlUGljdHVyZVZhbHVlKSB7XG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBpbWFnZSgpOiBQcm9maWxlUGljdHVyZVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gIH1cblxuICBAT3V0cHV0KCkgaW1hZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YT4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZWRJbWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGludmFsaWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVmFsaWRhdGlvbkVycm9ycz4oKTtcblxuICBwcm90ZWN0ZWQgY29uZmlybVZpc2libGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGRyYWdBY3RpdmUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbWFnZTogUHJvZmlsZVBpY3R1cmVWYWx1ZSA9IG51bGw7XG4gIHByaXZhdGUgcGVuZGluZ0ltYWdlRGF0YTogUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbWFnZUNyb3BwZXJTZXJ2aWNlID0gaW5qZWN0KEltYWdlQ3JvcHBlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgZ2V0IGltYWdlQmFzZTY0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5faW1hZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5faW1hZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlLmJhc2U2NDtcbiAgfVxuXG4gIGdldCBoYXNJbWFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmltYWdlQmFzZTY0O1xuICB9XG5cbiAgZ2V0IGNvbmZpcm1QcmV2aWV3KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdJbWFnZURhdGE/LmJhc2U2NCA/PyBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUmVtb3ZlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVCdXR0b25MYWJlbCA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlcl9yZW1vdmUnO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQ2hhbmdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VCdXR0b25MYWJlbCA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlcl9jaGFuZ2UnO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkU2ltcGxlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zaW1wbGVUaXRsZSA/PyAncGxhdGZvcm0uZGF0YWNvcmUucHJvZmlsZV9waWN0dXJlX3BpY2tlcl9kcmFnX29yJztcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFjdGlvblRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uVGl0bGUgPz8gJ3BsYXRmb3JtLmRhdGFjb3JlLnByb2ZpbGVfcGljdHVyZV9waWNrZXJfc2VsZWN0X2ZpbGUnO1xuICB9XG5cbiAgbGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubGFiZWwgPT09ICdzdHJpbmcnID8gdGhpcy5sYWJlbCA6ICcnO1xuICB9XG5cbiAgZ2V0IHVzZXNSb3VuZGVkQ3JvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5hc3BlY3RSYXRpbyAtIDEpIDwgMC4wMDE7XG4gIH1cblxuICBnZXQgY29uZmlybVByZXZpZXdBc3BlY3RSYXRpbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVzZXNSb3VuZGVkQ3JvcCA/ICcxIC8gMScgOiBgJHt0aGlzLmFzcGVjdFJhdGlvfWA7XG4gIH1cblxuICBnZXQgY29uZmlybUZvb3RlckJ1dHRvbnMoKTogTW9kYWxCdXR0b25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdwcm9maWxlLXBpY3R1cmUtY29uZmlybS1yZWplY3QnLFxuICAgICAgICBsYWJlbDogdGhpcy5jb25maXJtUmVqZWN0TGFiZWwsXG4gICAgICAgIHNldmVyaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnJlamVjdFBlbmRpbmdJbWFnZSgpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3Byb2ZpbGUtcGljdHVyZS1jb25maXJtLWFjY2VwdCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLmNvbmZpcm1BY2NlcHRMYWJlbCxcbiAgICAgICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmFjY2VwdFBlbmRpbmdJbWFnZSgpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIG9uQXZhdGFyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzSW1hZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKTtcbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNsaWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkZpbGVTZWxlY3RvcigpO1xuICB9XG5cbiAgb25SZW1vdmVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbWFnZSA9IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMucmVtb3ZlZEltYWdlLmVtaXQoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG5cbiAgICBpZiAoIWlucHV0LmZpbGVzIHx8ICFmaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdmFsdWUgc28gc2FtZSBmaWxlIGNhbiBiZSBzZWxlY3RlZCBhZ2FpblxuICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgfVxuXG4gIG9uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5oYXNEcmFnZ2VkRmlsZShldmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkRyYWdFbnRlcihldmVudCk7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG5cbiAgICBpZiAocmVsYXRlZFRhcmdldCAmJiAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwpPy5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZ0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZHJhZ0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXM/LlswXTtcblxuICAgIGlmICghZmlsZSkge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgfVxuXG4gIG9uQ29uZmlybVZpc2libGVDaGFuZ2UodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29uZmlybVZpc2libGUgPSB2aXNpYmxlO1xuXG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLnBlbmRpbmdJbWFnZURhdGEgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUHJvZmlsZVBpY3R1cmVWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2ltYWdlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFByb2ZpbGVQaWN0dXJlVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKF9pc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgaGFuZGxpbmcgY2FuIGJlIGV4dGVuZGVkIGluIHBoYXNlIDJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZpbGVTZWxlY3RvcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dD8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gdGhpcy52YWxpZGF0ZUZpbGUoZmlsZSk7XG5cbiAgICBpZiAodmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiB2YWxpZGF0aW9uRXJyb3IgfSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgY29uc3QgYmFzZTY0ID0gZS50YXJnZXQ/LnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICB0aGlzLm9wZW5Dcm9wcGVyV2l0aEZpbGUoZmlsZSwgYmFzZTY0KTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSk6IGltcG9ydCgnLi4vLi4vY29yZS90eXBlcy9wcm9maWxlLXBpY3R1cmUtcGlja2VyLnR5cGUnKS5GaWxlVmFsaWRhdGlvbiB8IG51bGwge1xuICAgIGlmICghZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XG4gICAgICByZXR1cm4gJ3R5cGVJbnZhbGlkJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4dCA9IHRoaXMuZ2V0RXh0ZW5zaW9uKGZpbGUubmFtZSk7XG4gICAgICBjb25zdCBzdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLm1hcCgoZW50cnkpID0+IHRoaXMubm9ybWFsaXplRXh0ZW5zaW9uKGVudHJ5KSk7XG4gICAgICBpZiAoIXN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0KSkge1xuICAgICAgICByZXR1cm4gJ3Vuc3VwcG9ydGVkRXh0ZW5zaW9uJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSAhPT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgIHJldHVybiAnbWF4RmlsZVNpemUnO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHRlbnNpb24oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBmaWxlbmFtZS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBwYXJ0cy5sZW5ndGggPiAxID8gdGhpcy5ub3JtYWxpemVFeHRlbnNpb24ocGFydHNbcGFydHMubGVuZ3RoIC0gMV0pIDogJyc7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUV4dGVuc2lvbihleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IGV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZC5zdGFydHNXaXRoKCcuJykgPyBub3JtYWxpemVkIDogYC4ke25vcm1hbGl6ZWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNyb3BwZXJXaXRoRmlsZShmaWxlOiBGaWxlLCBiYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VDcm9wcGVyU2VydmljZS5zaG93KHtcbiAgICAgIGltYWdlU291cmNlOiBiYXNlNjQsXG4gICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcbiAgICAgIHJvdW5kZWQ6IHRoaXMudXNlc1JvdW5kZWRDcm9wLFxuICAgICAgYWxsb3dSZW1vdmU6IGZhbHNlLFxuICAgICAgYWxsb3dTZWxlY3RBbm90aGVyOiB0cnVlLFxuICAgICAgY2hhbmdlSW1hZ2U6ICgpID0+IHRoaXMub3BlbkZpbGVTZWxlY3RvcigpLFxuICAgICAgY3JvcHBlZEltYWdlOiAoY3JvcHBlZEJhc2U2NDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGE6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSA9IHtcbiAgICAgICAgICBzb3VyY2U6IGZpbGUsXG4gICAgICAgICAgYmFzZTY0OiBjcm9wcGVkQmFzZTY0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlQ3JvcHBlZEltYWdlRGF0YShkYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ3JvcHBlZEltYWdlRGF0YShkYXRhOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlybUJlZm9yZUFwcGx5KSB7XG4gICAgICB0aGlzLmFwcGx5SW1hZ2VEYXRhKGRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0ltYWdlRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jb25maXJtVmlzaWJsZSA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SW1hZ2VEYXRhKGRhdGE6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuX2ltYWdlID0gZGF0YTtcbiAgICB0aGlzLm9uQ2hhbmdlKGRhdGEpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5pbWFnZUNoYW5nZS5lbWl0KGRhdGEpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY2NlcHRQZW5kaW5nSW1hZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGVuZGluZ0ltYWdlRGF0YSkge1xuICAgICAgdGhpcy5hcHBseUltYWdlRGF0YSh0aGlzLnBlbmRpbmdJbWFnZURhdGEpO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0ltYWdlRGF0YSA9IG51bGw7XG4gICAgdGhpcy5jb25maXJtVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWplY3RQZW5kaW5nSW1hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nSW1hZ2VEYXRhID0gbnVsbDtcbiAgICB0aGlzLmNvbmZpcm1WaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhc0RyYWdnZWRGaWxlKGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0eXBlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8udHlwZXM7XG4gICAgcmV0dXJuICEhdHlwZXMgJiYgQXJyYXkuZnJvbSh0eXBlcykuaW5jbHVkZXMoJ0ZpbGVzJyk7XG4gIH1cbn1cbiIsIkBpZiAobGFiZWxLZXkoKSkge1xuICA8ZGl2IGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2xhYmVsLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fbGFiZWxcIiBbaWRdPVwiY29tcG9uZW50SWQgKyAnLWxhYmVsJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fbGFiZWwtdGV4dFwiPlxuICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5cbjxkaXZcbiAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlclwiXG4gIFtjbGFzcy5zZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlci0tZHJhZ292ZXJdPVwiZHJhZ0FjdGl2ZVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbEtleSgpID8gY29tcG9uZW50SWQgKyAnLWxhYmVsJyA6IG51bGxcIlxuICAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYXZhdGFyXCJcbiAgICBbY2xhc3Muc2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2F2YXRhci0tY2xpY2thYmxlXT1cIiFoYXNJbWFnZVwiXG4gICAgKGNsaWNrKT1cIm9uQXZhdGFyQ2xpY2soKVwiXG4gICAgW2Rpc2FibGVkXT1cImhhc0ltYWdlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQWN0aW9uVGl0bGUgfCB0cmFuc2xhdGVcIlxuICA+XG4gICAgQGlmIChoYXNJbWFnZSkge1xuICAgICAgPGltZ1xuICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19hdmF0YXItaW1nXCJcbiAgICAgICAgW3NyY109XCJpbWFnZUJhc2U2NFwiXG4gICAgICAgIHdpZHRoPVwiMTI4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTI4XCJcbiAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aSBjbGFzcz1cImZhciBmYS11c2VyIHNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19hdmF0YXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICB9XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9faW5mb1wiPlxuICAgIEBpZiAoaGFzSW1hZ2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fYnRuIHNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19idG4tLWNoYW5nZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyByZXNvbHZlZENoYW5nZUxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19idG4gc2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2J0bi0tcmVtb3ZlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVDbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHJlc29sdmVkUmVtb3ZlTGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fc2ltcGxlLXRpdGxlXCI+e3sgcmVzb2x2ZWRTaW1wbGVUaXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2FjdGlvbiBhY3Rpb25cIlxuICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcmVzb2x2ZWRBY3Rpb25UaXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fc3VidGl0bGVcIj5cbiAgICAgICAge3sgc3VidGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIFtpZF09XCIncHJvZmlsZS1waWN0dXJlLWlucHV0LScgKyBjb21wb25lbnRJZFwiXG4gICAgdHlwZT1cImZpbGVcIlxuICAgIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2ZpbGUtaW5wdXRcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQWN0aW9uVGl0bGUgfCB0cmFuc2xhdGVcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgLz5cblxuICA8c2RjLW1vZGFsXG4gICAgW3Zpc2libGVdPVwiY29uZmlybVZpc2libGVcIlxuICAgICh2aXNpYmxlQ2hhbmdlKT1cIm9uQ29uZmlybVZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2hlYWRlcl09XCJjb25maXJtVGl0bGVcIlxuICAgIFt3aWR0aF09XCInMzMuNzVyZW0nXCJcbiAgICBbY2xvc2FibGVdPVwidHJ1ZVwiXG4gICAgW21heGltaXphYmxlXT1cImZhbHNlXCJcbiAgICBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFtmb290ZXJCdXR0b25zXT1cImNvbmZpcm1Gb290ZXJCdXR0b25zXCJcbiAgICBzdHlsZUNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2NvbmZpcm0tbW9kYWxcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLWNvbnRlbnRcIj5cbiAgICAgIDxwIGNsYXNzPVwic2RjLXByb2ZpbGUtcGljdHVyZS1waWNrZXJfX2NvbmZpcm0tbWVzc2FnZVwiPlxuICAgICAgICB7eyBjb25maXJtTWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuXG4gICAgICBAaWYgKGNvbmZpcm1QcmV2aWV3KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXdcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtcHJvZmlsZS1waWN0dXJlLXBpY2tlcl9fY29uZmlybS1wcmV2aWV3LS1yb3VuZGVkXT1cInVzZXNSb3VuZGVkQ3JvcFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXctaW1hZ2VcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy1wcm9maWxlLXBpY3R1cmUtcGlja2VyX19jb25maXJtLXByZXZpZXctaW1hZ2UtLXJvdW5kZWRdPVwidXNlc1JvdW5kZWRDcm9wXCJcbiAgICAgICAgICAgIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiY29uZmlybVByZXZpZXdBc3BlY3RSYXRpb1wiXG4gICAgICAgICAgICBbc3JjXT1cImNvbmZpcm1QcmV2aWV3XCJcbiAgICAgICAgICAgIGFsdD1cInByZXZpZXdcIlxuICAgICAgICAgICAgd2lkdGg9XCIyODBcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMjgwXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9zZGMtbW9kYWw+XG48L2Rpdj5cbiJdfQ==
@@ -75,7 +75,7 @@ export class RatingScaleComponent {
75
75
  useExisting: forwardRef(() => RatingScaleComponent),
76
76
  multi: true
77
77
  }
78
- ], ngImport: i0, template: "<div\n class=\"sdc-rating-scale\"\n [class.sdc-rating-scale--disabled]=\"disabled\"\n>\n @if (labelKey()) {\n <div class=\"sdc-rating-scale__label-row\">\n <div class=\"sdc-rating-scale__group-label\" [id]=\"groupLabelId\">\n <span class=\"sdc-rating-scale__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n }\n\n <div class=\"sdc-rating-scale__track\">\n @if (startLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--start\">\n {{ startLabel | translate }}\n </span>\n }\n\n <div\n class=\"sdc-rating-scale__nodes\"\n role=\"radiogroup\"\n [attr.aria-label]=\"labelKey() ? null : groupAriaLabel\"\n [attr.aria-labelledby]=\"labelKey() ? groupLabelId : null\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n @for (node of nodes; track node.id) {\n <button\n type=\"button\"\n class=\"sdc-rating-scale__node\"\n [class.sdc-rating-scale__node--selected]=\"isSelected(node)\"\n [attr.aria-label]=\"getNodeAriaLabel(node)\"\n [disabled]=\"disabled\"\n (click)=\"selectNode(node)\"\n >\n @if (node.icon) {\n <i class=\"sdc-rating-scale__node-icon fa {{ node.icon }}\" aria-hidden=\"true\"></i>\n }\n\n @if (node.title) {\n <span class=\"sdc-rating-scale__node-title\">{{ node.title | translate }}</span>\n }\n </button>\n }\n </div>\n\n @if (endLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--end\">\n {{ endLabel | translate }}\n </span>\n }\n </div>\n\n @if (messageKey()) {\n <small class=\"sdc-rating-scale__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:block}.sdc-rating-scale{--sdc-rating-scale-node-bg: #fff;--sdc-rating-scale-node-border: #7892a1;--sdc-rating-scale-node-radius: 6px;--sdc-rating-scale-node-selected-bg: #d5e8ec;--sdc-rating-scale-node-selected-border: #428bca;--sdc-rating-scale-node-selected-color: #428bca;--sdc-rating-scale-node-hover-bg: #dedce5;--sdc-rating-scale-icon-color: #6e7280;--sdc-rating-scale-label-color: #212533;--sdc-rating-scale-extreme-label-color: #080808;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif)}.sdc-rating-scale--disabled{cursor:not-allowed;opacity:.65}.sdc-rating-scale__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-rating-scale__group-label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-rating-scale__group-label-text{display:inline-flex;align-items:center}.sdc-rating-scale__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-rating-scale__message.invalid{color:var(--sdc-form-required-color)}.sdc-rating-scale__track{align-items:center;display:flex;gap:.75rem}.sdc-rating-scale__nodes{align-items:center;display:flex;flex:1;gap:.5rem;justify-content:center}.sdc-rating-scale__node{align-items:center;background:var(--sdc-rating-scale-node-bg);border:1px solid var(--sdc-rating-scale-node-border);border-radius:var(--sdc-rating-scale-node-radius);box-sizing:border-box;color:var(--sdc-rating-scale-label-color);cursor:pointer;display:inline-flex;flex:1 1 0%;flex-direction:column;font-family:inherit;font-size:.875rem;gap:.25rem;justify-content:center;max-width:5.5rem;min-height:2.5rem;min-width:2.5rem;padding:.375rem .5rem;transition:background var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),color var(--sdc-transition-fast, .18s ease)}.sdc-rating-scale__node:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-rating-scale__node:disabled{cursor:not-allowed;pointer-events:none}.sdc-rating-scale__node:hover:not(:disabled){background:var(--sdc-rating-scale-node-hover-bg)}.sdc-rating-scale__node--selected{background:var(--sdc-rating-scale-node-selected-bg);border-color:var(--sdc-rating-scale-node-selected-border);color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-icon-color);font-size:1.125rem}.sdc-rating-scale__node--selected .sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-title{font-size:.75rem;line-height:1}.sdc-rating-scale__extreme-label{color:var(--sdc-rating-scale-extreme-label-color);font-size:.75rem;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
+ ], ngImport: i0, template: "<div\n class=\"sdc-rating-scale\"\n [class.sdc-rating-scale--disabled]=\"disabled\"\n>\n @if (labelKey()) {\n <div class=\"sdc-rating-scale__label-row\">\n <div class=\"sdc-rating-scale__group-label\" [id]=\"groupLabelId\">\n <span class=\"sdc-rating-scale__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n }\n\n <div class=\"sdc-rating-scale__track\">\n @if (startLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--start\">\n {{ startLabel | translate }}\n </span>\n }\n\n <div\n class=\"sdc-rating-scale__nodes\"\n role=\"radiogroup\"\n [attr.aria-label]=\"labelKey() ? null : groupAriaLabel\"\n [attr.aria-labelledby]=\"labelKey() ? groupLabelId : null\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n @for (node of nodes; track node.id) {\n <button\n type=\"button\"\n class=\"sdc-rating-scale__node\"\n [class.sdc-rating-scale__node--selected]=\"isSelected(node)\"\n [attr.aria-label]=\"getNodeAriaLabel(node)\"\n [disabled]=\"disabled\"\n (click)=\"selectNode(node)\"\n >\n @if (node.icon) {\n <i class=\"sdc-rating-scale__node-icon fa {{ node.icon }}\" aria-hidden=\"true\"></i>\n }\n\n @if (node.title) {\n <span class=\"sdc-rating-scale__node-title\">{{ node.title | translate }}</span>\n }\n </button>\n }\n </div>\n\n @if (endLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--end\">\n {{ endLabel | translate }}\n </span>\n }\n </div>\n\n @if (messageKey()) {\n <small class=\"sdc-rating-scale__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:block}.sdc-rating-scale{--sdc-rating-scale-node-bg: #fff;--sdc-rating-scale-node-border: #7892a1;--sdc-rating-scale-node-radius: 6px;--sdc-rating-scale-node-selected-bg: #d5e8ec;--sdc-rating-scale-node-selected-border: #428bca;--sdc-rating-scale-node-selected-color: #428bca;--sdc-rating-scale-node-hover-bg: #dedce5;--sdc-rating-scale-icon-color: #6e7280;--sdc-rating-scale-label-color: #212533;--sdc-rating-scale-extreme-label-color: #080808;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif)}.sdc-rating-scale--disabled{cursor:not-allowed;opacity:.65}.sdc-rating-scale__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-rating-scale__group-label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-rating-scale__group-label-text{display:inline-flex;align-items:center}.sdc-rating-scale__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-rating-scale__message.invalid{color:var(--sdc-form-required-color)}.sdc-rating-scale__track{align-items:center;display:flex;gap:.75rem}.sdc-rating-scale__nodes{align-items:center;display:flex;flex:1;gap:.5rem;justify-content:center}.sdc-rating-scale__node{align-items:center;background:var(--sdc-rating-scale-node-bg);border:1px solid var(--sdc-rating-scale-node-border);border-radius:var(--sdc-rating-scale-node-radius);box-sizing:border-box;color:var(--sdc-rating-scale-label-color);cursor:pointer;display:inline-flex;flex:1 1 0%;flex-direction:column;font-family:inherit;font-size:.875rem;gap:.25rem;justify-content:center;max-width:5.5rem;min-height:2.5rem;min-width:2.5rem;padding:.375rem .5rem;transition:background var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),color var(--sdc-transition-fast, .18s ease)}.sdc-rating-scale__node:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-rating-scale__node:disabled{cursor:not-allowed;pointer-events:none}.sdc-rating-scale__node:hover:not(:disabled){background:var(--sdc-rating-scale-node-hover-bg)}.sdc-rating-scale__node--selected{background:var(--sdc-rating-scale-node-selected-bg);border-color:var(--sdc-rating-scale-node-selected-border);color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-icon-color);font-size:1.125rem}.sdc-rating-scale__node--selected .sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-title{font-size:.75rem;line-height:1}.sdc-rating-scale__extreme-label{color:var(--sdc-rating-scale-extreme-label-color);font-size:.75rem;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RatingScaleComponent, decorators: [{
81
81
  type: Component,
@@ -85,7 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
85
85
  useExisting: forwardRef(() => RatingScaleComponent),
86
86
  multi: true
87
87
  }
88
- ], template: "<div\n class=\"sdc-rating-scale\"\n [class.sdc-rating-scale--disabled]=\"disabled\"\n>\n @if (labelKey()) {\n <div class=\"sdc-rating-scale__label-row\">\n <div class=\"sdc-rating-scale__group-label\" [id]=\"groupLabelId\">\n <span class=\"sdc-rating-scale__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n }\n\n <div class=\"sdc-rating-scale__track\">\n @if (startLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--start\">\n {{ startLabel | translate }}\n </span>\n }\n\n <div\n class=\"sdc-rating-scale__nodes\"\n role=\"radiogroup\"\n [attr.aria-label]=\"labelKey() ? null : groupAriaLabel\"\n [attr.aria-labelledby]=\"labelKey() ? groupLabelId : null\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n @for (node of nodes; track node.id) {\n <button\n type=\"button\"\n class=\"sdc-rating-scale__node\"\n [class.sdc-rating-scale__node--selected]=\"isSelected(node)\"\n [attr.aria-label]=\"getNodeAriaLabel(node)\"\n [disabled]=\"disabled\"\n (click)=\"selectNode(node)\"\n >\n @if (node.icon) {\n <i class=\"sdc-rating-scale__node-icon fa {{ node.icon }}\" aria-hidden=\"true\"></i>\n }\n\n @if (node.title) {\n <span class=\"sdc-rating-scale__node-title\">{{ node.title | translate }}</span>\n }\n </button>\n }\n </div>\n\n @if (endLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--end\">\n {{ endLabel | translate }}\n </span>\n }\n </div>\n\n @if (messageKey()) {\n <small class=\"sdc-rating-scale__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:block}.sdc-rating-scale{--sdc-rating-scale-node-bg: #fff;--sdc-rating-scale-node-border: #7892a1;--sdc-rating-scale-node-radius: 6px;--sdc-rating-scale-node-selected-bg: #d5e8ec;--sdc-rating-scale-node-selected-border: #428bca;--sdc-rating-scale-node-selected-color: #428bca;--sdc-rating-scale-node-hover-bg: #dedce5;--sdc-rating-scale-icon-color: #6e7280;--sdc-rating-scale-label-color: #212533;--sdc-rating-scale-extreme-label-color: #080808;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif)}.sdc-rating-scale--disabled{cursor:not-allowed;opacity:.65}.sdc-rating-scale__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-rating-scale__group-label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-rating-scale__group-label-text{display:inline-flex;align-items:center}.sdc-rating-scale__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-rating-scale__message.invalid{color:var(--sdc-form-required-color)}.sdc-rating-scale__track{align-items:center;display:flex;gap:.75rem}.sdc-rating-scale__nodes{align-items:center;display:flex;flex:1;gap:.5rem;justify-content:center}.sdc-rating-scale__node{align-items:center;background:var(--sdc-rating-scale-node-bg);border:1px solid var(--sdc-rating-scale-node-border);border-radius:var(--sdc-rating-scale-node-radius);box-sizing:border-box;color:var(--sdc-rating-scale-label-color);cursor:pointer;display:inline-flex;flex:1 1 0%;flex-direction:column;font-family:inherit;font-size:.875rem;gap:.25rem;justify-content:center;max-width:5.5rem;min-height:2.5rem;min-width:2.5rem;padding:.375rem .5rem;transition:background var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),color var(--sdc-transition-fast, .18s ease)}.sdc-rating-scale__node:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-rating-scale__node:disabled{cursor:not-allowed;pointer-events:none}.sdc-rating-scale__node:hover:not(:disabled){background:var(--sdc-rating-scale-node-hover-bg)}.sdc-rating-scale__node--selected{background:var(--sdc-rating-scale-node-selected-bg);border-color:var(--sdc-rating-scale-node-selected-border);color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-icon-color);font-size:1.125rem}.sdc-rating-scale__node--selected .sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-title{font-size:.75rem;line-height:1}.sdc-rating-scale__extreme-label{color:var(--sdc-rating-scale-extreme-label-color);font-size:.75rem;white-space:nowrap}\n"] }]
88
+ ], template: "<div\n class=\"sdc-rating-scale\"\n [class.sdc-rating-scale--disabled]=\"disabled\"\n>\n @if (labelKey()) {\n <div class=\"sdc-rating-scale__label-row\">\n <div class=\"sdc-rating-scale__group-label\" [id]=\"groupLabelId\">\n <span class=\"sdc-rating-scale__group-label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </div>\n </div>\n }\n\n <div class=\"sdc-rating-scale__track\">\n @if (startLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--start\">\n {{ startLabel | translate }}\n </span>\n }\n\n <div\n class=\"sdc-rating-scale__nodes\"\n role=\"radiogroup\"\n [attr.aria-label]=\"labelKey() ? null : groupAriaLabel\"\n [attr.aria-labelledby]=\"labelKey() ? groupLabelId : null\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n @for (node of nodes; track node.id) {\n <button\n type=\"button\"\n class=\"sdc-rating-scale__node\"\n [class.sdc-rating-scale__node--selected]=\"isSelected(node)\"\n [attr.aria-label]=\"getNodeAriaLabel(node)\"\n [disabled]=\"disabled\"\n (click)=\"selectNode(node)\"\n >\n @if (node.icon) {\n <i class=\"sdc-rating-scale__node-icon fa {{ node.icon }}\" aria-hidden=\"true\"></i>\n }\n\n @if (node.title) {\n <span class=\"sdc-rating-scale__node-title\">{{ node.title | translate }}</span>\n }\n </button>\n }\n </div>\n\n @if (endLabel) {\n <span class=\"sdc-rating-scale__extreme-label sdc-rating-scale__extreme-label--end\">\n {{ endLabel | translate }}\n </span>\n }\n </div>\n\n @if (messageKey()) {\n <small class=\"sdc-rating-scale__message\" [class.invalid]=\"invalid\" role=\"alert\" aria-live=\"polite\">\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:block}.sdc-rating-scale{--sdc-rating-scale-node-bg: #fff;--sdc-rating-scale-node-border: #7892a1;--sdc-rating-scale-node-radius: 6px;--sdc-rating-scale-node-selected-bg: #d5e8ec;--sdc-rating-scale-node-selected-border: #428bca;--sdc-rating-scale-node-selected-color: #428bca;--sdc-rating-scale-node-hover-bg: #dedce5;--sdc-rating-scale-icon-color: #6e7280;--sdc-rating-scale-label-color: #212533;--sdc-rating-scale-extreme-label-color: #080808;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif)}.sdc-rating-scale--disabled{cursor:not-allowed;opacity:.65}.sdc-rating-scale__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-rating-scale__group-label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-rating-scale__group-label-text{display:inline-flex;align-items:center}.sdc-rating-scale__message{display:block;margin-top:var(--sdc-form-label-row-mb);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-rating-scale__message.invalid{color:var(--sdc-form-required-color)}.sdc-rating-scale__track{align-items:center;display:flex;gap:.75rem}.sdc-rating-scale__nodes{align-items:center;display:flex;flex:1;gap:.5rem;justify-content:center}.sdc-rating-scale__node{align-items:center;background:var(--sdc-rating-scale-node-bg);border:1px solid var(--sdc-rating-scale-node-border);border-radius:var(--sdc-rating-scale-node-radius);box-sizing:border-box;color:var(--sdc-rating-scale-label-color);cursor:pointer;display:inline-flex;flex:1 1 0%;flex-direction:column;font-family:inherit;font-size:.875rem;gap:.25rem;justify-content:center;max-width:5.5rem;min-height:2.5rem;min-width:2.5rem;padding:.375rem .5rem;transition:background var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),color var(--sdc-transition-fast, .18s ease)}.sdc-rating-scale__node:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-rating-scale__node:disabled{cursor:not-allowed;pointer-events:none}.sdc-rating-scale__node:hover:not(:disabled){background:var(--sdc-rating-scale-node-hover-bg)}.sdc-rating-scale__node--selected{background:var(--sdc-rating-scale-node-selected-bg);border-color:var(--sdc-rating-scale-node-selected-border);color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-icon-color);font-size:1.125rem}.sdc-rating-scale__node--selected .sdc-rating-scale__node-icon{color:var(--sdc-rating-scale-node-selected-color)}.sdc-rating-scale__node-title{font-size:.75rem;line-height:1}.sdc-rating-scale__extreme-label{color:var(--sdc-rating-scale-extreme-label-color);font-size:.75rem;white-space:nowrap}\n"] }]
89
89
  }], propDecorators: { nodes: [{
90
90
  type: Input
91
91
  }], startLabel: [{
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
103
103
  }], message: [{
104
104
  type: Input
105
105
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLXNjYWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcmF0aW5nLXNjYWxlL3JhdGluZy1zY2FsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3JhdGluZy1zY2FsZS9yYXRpbmctc2NhbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBa0I1RCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUM5QixVQUFVLENBQVU7SUFDcEIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFrQixLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE9BQU8sR0FBa0IsS0FBSyxDQUFDO0lBRXJCLFlB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aUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDaENILHlyRUFtRUEsODdGRDlDWSxZQUFZLDhCQUFFLGVBQWU7OzRGQWE1QixvQkFBb0I7a0JBaEJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRLGFBQzlCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFNUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgUkFUSU5HX1NDQUxFX0FSSUFfTEFCRUxfS0VZIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcmF0aW5nLXNjYWxlLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUmF0aW5nU2NhbGVOb2RlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9yYXRpbmctc2NhbGUudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcmF0aW5nLXNjYWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy1zY2FsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yYXRpbmctc2NhbGUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmF0aW5nU2NhbGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nU2NhbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgbm9kZXM6IFJhdGluZ1NjYWxlTm9kZVtdID0gW107XG4gIEBJbnB1dCgpIHN0YXJ0TGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVuZExhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbDogU3RyaW5nQm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JvdXBMYWJlbElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLXJhdGluZy1zY2FsZS1sYWJlbCcpO1xuXG4gIHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogUmF0aW5nU2NhbGVOb2RlIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgZ2V0IGdyb3VwQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLnN0YXJ0TGFiZWwpfSAtICR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmVuZExhYmVsKX1gO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuc3RhcnRMYWJlbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuZW5kTGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFJBVElOR19TQ0FMRV9BUklBX0xBQkVMX0tFWSk7XG4gIH1cblxuICBpc1NlbGVjdGVkKG5vZGU6IFJhdGluZ1NjYWxlTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5pZCA9PT0gbm9kZS5pZDtcbiAgfVxuXG4gIGdldE5vZGVBcmlhTGFiZWwobm9kZTogUmF0aW5nU2NhbGVOb2RlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9kZS50aXRsZSA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobm9kZS50aXRsZSkgOiBub2RlLmlkO1xuICB9XG5cbiAgc2VsZWN0Tm9kZShub2RlOiBSYXRpbmdTY2FsZU5vZGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSBub2RlO1xuICAgIHRoaXMub25DaGFuZ2VGbihub2RlKTtcbiAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBsYWJlbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5sYWJlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmxhYmVsIDogJyc7XG4gIH1cblxuICBtZXNzYWdlS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLm1lc3NhZ2UgPT09ICdzdHJpbmcnID8gdGhpcy5tZXNzYWdlIDogJyc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlXCJcbiAgW2NsYXNzLnNkYy1yYXRpbmctc2NhbGUtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2xhYmVsLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2dyb3VwLWxhYmVsXCIgW2lkXT1cImdyb3VwTGFiZWxJZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2dyb3VwLWxhYmVsLXRleHRcIj5cbiAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlX190cmFja1wiPlxuICAgIEBpZiAoc3RhcnRMYWJlbCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlX19leHRyZW1lLWxhYmVsIHNkYy1yYXRpbmctc2NhbGVfX2V4dHJlbWUtbGFiZWwtLXN0YXJ0XCI+XG4gICAgICAgIHt7IHN0YXJ0TGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX25vZGVzXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxLZXkoKSA/IG51bGwgOiBncm91cEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxLZXkoKSA/IGdyb3VwTGFiZWxJZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICA+XG4gICAgICBAZm9yIChub2RlIG9mIG5vZGVzOyB0cmFjayBub2RlLmlkKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX25vZGVcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtcmF0aW5nLXNjYWxlX19ub2RlLS1zZWxlY3RlZF09XCJpc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE5vZGVBcmlhTGFiZWwobm9kZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vZGUobm9kZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChub2RlLmljb24pIHtcbiAgICAgICAgICAgIDxpIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbm9kZS1pY29uIGZhIHt7IG5vZGUuaWNvbiB9fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKG5vZGUudGl0bGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbm9kZS10aXRsZVwiPnt7IG5vZGUudGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoZW5kTGFiZWwpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fZXh0cmVtZS1sYWJlbCBzZGMtcmF0aW5nLXNjYWxlX19leHRyZW1lLWxhYmVsLS1lbmRcIj5cbiAgICAgICAge3sgZW5kTGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbWVzc2FnZVwiIFtjbGFzcy5pbnZhbGlkXT1cImludmFsaWRcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc21hbGw+XG4gIH1cbjwvZGl2PlxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLXNjYWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcmF0aW5nLXNjYWxlL3JhdGluZy1zY2FsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3JhdGluZy1zY2FsZS9yYXRpbmctc2NhbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBa0I1RCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUM5QixVQUFVLENBQVU7SUFDcEIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFrQixLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE9BQU8sR0FBa0IsS0FBSyxDQUFDO0lBRXJCLFlB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aUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDaENILHlyRUFtRUEsODdGRDlDWSxZQUFZLDhCQUFFLGVBQWU7OzRGQWE1QixvQkFBb0I7a0JBaEJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRLGFBQzlCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFNUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgUkFUSU5HX1NDQUxFX0FSSUFfTEFCRUxfS0VZIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcmF0aW5nLXNjYWxlLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgUmF0aW5nU2NhbGVOb2RlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9yYXRpbmctc2NhbGUudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcmF0aW5nLXNjYWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy1zY2FsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yYXRpbmctc2NhbGUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmF0aW5nU2NhbGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nU2NhbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgbm9kZXM6IFJhdGluZ1NjYWxlTm9kZVtdID0gW107XG4gIEBJbnB1dCgpIHN0YXJ0TGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVuZExhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbDogU3RyaW5nQm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JvdXBMYWJlbElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLXJhdGluZy1zY2FsZS1sYWJlbCcpO1xuXG4gIHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogUmF0aW5nU2NhbGVOb2RlIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgZ2V0IGdyb3VwQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLnN0YXJ0TGFiZWwpfSAtICR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmVuZExhYmVsKX1gO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuc3RhcnRMYWJlbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuZW5kTGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFJBVElOR19TQ0FMRV9BUklBX0xBQkVMX0tFWSk7XG4gIH1cblxuICBpc1NlbGVjdGVkKG5vZGU6IFJhdGluZ1NjYWxlTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5pZCA9PT0gbm9kZS5pZDtcbiAgfVxuXG4gIGdldE5vZGVBcmlhTGFiZWwobm9kZTogUmF0aW5nU2NhbGVOb2RlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9kZS50aXRsZSA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobm9kZS50aXRsZSkgOiBub2RlLmlkO1xuICB9XG5cbiAgc2VsZWN0Tm9kZShub2RlOiBSYXRpbmdTY2FsZU5vZGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSBub2RlO1xuICAgIHRoaXMub25DaGFuZ2VGbihub2RlKTtcbiAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBsYWJlbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5sYWJlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmxhYmVsIDogJyc7XG4gIH1cblxuICBtZXNzYWdlS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLm1lc3NhZ2UgPT09ICdzdHJpbmcnID8gdGhpcy5tZXNzYWdlIDogJyc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlXCJcbiAgW2NsYXNzLnNkYy1yYXRpbmctc2NhbGUtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2xhYmVsLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2dyb3VwLWxhYmVsXCIgW2lkXT1cImdyb3VwTGFiZWxJZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX2dyb3VwLWxhYmVsLXRleHRcIj5cbiAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlX190cmFja1wiPlxuICAgIEBpZiAoc3RhcnRMYWJlbCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmF0aW5nLXNjYWxlX19leHRyZW1lLWxhYmVsIHNkYy1yYXRpbmctc2NhbGVfX2V4dHJlbWUtbGFiZWwtLXN0YXJ0XCI+XG4gICAgICAgIHt7IHN0YXJ0TGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX25vZGVzXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxLZXkoKSA/IG51bGwgOiBncm91cEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxLZXkoKSA/IGdyb3VwTGFiZWxJZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICA+XG4gICAgICBAZm9yIChub2RlIG9mIG5vZGVzOyB0cmFjayBub2RlLmlkKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1yYXRpbmctc2NhbGVfX25vZGVcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtcmF0aW5nLXNjYWxlX19ub2RlLS1zZWxlY3RlZF09XCJpc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE5vZGVBcmlhTGFiZWwobm9kZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vZGUobm9kZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChub2RlLmljb24pIHtcbiAgICAgICAgICAgIDxpIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbm9kZS1pY29uIGZhIHt7IG5vZGUuaWNvbiB9fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKG5vZGUudGl0bGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbm9kZS10aXRsZVwiPnt7IG5vZGUudGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoZW5kTGFiZWwpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fZXh0cmVtZS1sYWJlbCBzZGMtcmF0aW5nLXNjYWxlX19leHRyZW1lLWxhYmVsLS1lbmRcIj5cbiAgICAgICAge3sgZW5kTGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLXJhdGluZy1zY2FsZV9fbWVzc2FnZVwiIFtjbGFzcy5pbnZhbGlkXT1cImludmFsaWRcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc21hbGw+XG4gIH1cbjwvZGl2PlxuIl19