@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
@@ -169,7 +169,7 @@ export class CountryPhonePickerComponent {
169
169
  useExisting: forwardRef(() => CountryPhonePickerComponent),
170
170
  multi: true
171
171
  }
172
- ], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "phoneInputRef", first: true, predicate: ["phoneInputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{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);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "phoneInputRef", first: true, predicate: ["phoneInputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker_accessibility_dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_accessibility_dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker_accessibility_input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker_search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker_search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_accessibility_dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{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);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
173
  }
174
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerComponent, decorators: [{
175
175
  type: Component,
@@ -179,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
179
179
  useExisting: forwardRef(() => CountryPhonePickerComponent),
180
180
  multi: true
181
181
  }
182
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{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);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"] }]
182
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker_accessibility_dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_accessibility_dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker_accessibility_input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker_search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker_search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker_accessibility_dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{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);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"] }]
183
183
  }], propDecorators: { countries: [{
184
184
  type: Input
185
185
  }], ordination: [{
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
210
210
  function countMaskSlots(mask) {
211
211
  return parseMaskPattern(mask).filter((token) => token.kind !== 'literal').length;
212
212
  }
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsdUNBQXVDLEVBQ3hDLE1BQU0saURBQWlELENBQUM7QUFNekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFrQmhFLE1BQU0sT0FBTywyQkFBMkI7SUFDckIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRW5FLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDekIsVUFBVSxHQUEyQix1Q0FBdUMsQ0FBQztJQUM3RSxLQUFLLEdBQW1CLEtBQUssQ0FBQztJQUM5QixPQUFPLEdBQW1CLEtBQUssQ0FBQztJQUNoQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWYsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBQ2hELFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztJQUV2QyxPQUFPLENBQW9CO0lBQzVCLGFBQWEsQ0FBZ0M7SUFFekUsS0FBSyxHQUE4QixJQUFJLENBQUM7SUFDeEMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdEIsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNiLFlBQVksR0FBNEIsSUFBSSxDQUFDO0lBRTdDLFFBQVEsR0FBK0MsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ3ZFLFNBQVMsR0FBZSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFFeEMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQ2hDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRyxDQUFDLENBQUMsc0NBQXNDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNoRCxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQy9FLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBRUQsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNyRCxPQUFPLFNBQVMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0M7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDakcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBOEM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQWlDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQXlCO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQixjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBb0IsRUFBRSxPQUF5QjtRQUNwRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDL0MsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQWlCO1FBQzNCLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdkcsT0FBTyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1RSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFUSxhQUFhLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztJQUU5QyxXQUFXLENBQUMsU0FBaUI7UUFDM0IsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFFBQVE7WUFDUixFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUc7WUFDMUIsS0FBSyxFQUFFLFdBQVc7U0FDbkIsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxTQUFvQztRQUNqRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUNwRixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVDLENBQUM7d0dBaE1VLDJCQUEyQjs0RkFBM0IsMkJBQTJCLGdVQVYzQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixtRUFvQlUsZ0JBQWdCLGlKQzlEN0Isb2dMQXVJQSwrc0xEdEdZLFdBQVcsOG1CQUFFLGVBQWUsNEZBQUUsZ0JBQWdCOzs0RkFhN0MsMkJBQTJCO2tCQWhCdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxhQUc5Qzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBTWhDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRXNCLE9BQU87c0JBQW5DLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNDLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTs7QUFrTDVCLFNBQVMsY0FBYyxDQUFDLElBQVk7SUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfQ09VTlRSSUVTLFxuICBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX09SRElOQVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvY291bnRyeS1waG9uZS1waWNrZXIuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBDb3VudHJ5UGhvbmVEYXRhLFxuICBDb3VudHJ5UGhvbmVPcmRpbmF0aW9uLFxuICBQaG9uZVNlbGVjdGlvbkRhdGFcbn0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb3VudHJ5LXBob25lLXBpY2tlci50eXBlJztcbmltcG9ydCB7IGJ1aWxkRmxhZ0Vtb2ppLCBzdXBwb3J0c0Vtb2ppRmxhZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Vtb2ppLXN1cHBvcnQudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGFwcGx5TWFza0Zvcm1hdCwgZXh0cmFjdE1hc2tSYXcsIHBhcnNlTWFza1BhdHRlcm4gfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL21hc2sudXRpbCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBQb3BvdmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicpO1xuXG4gIEBJbnB1dCgpIGNvdW50cmllczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgb3JkaW5hdGlvbjogQ291bnRyeVBob25lT3JkaW5hdGlvbiA9IENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfT1JESU5BVElPTjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnlQaG9uZURhdGE+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c0xvc3QgPSBuZXcgRXZlbnRFbWl0dGVyPFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGw+KCk7XG5cbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyPzogUG9wb3ZlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncGhvbmVJbnB1dFJlZicpIHBob25lSW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEgfCBudWxsID0gbnVsbDtcbiAgZmlsdGVyVGVybSA9ICcnO1xuICBwaG9uZU1hc2tlZFZhbHVlID0gJyc7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRJdGVtOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LWlucHV0YDtcbiAgfVxuXG4gIGdldCBzZWFyY2hJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LXNlYXJjaGA7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuY291bnRyaWVzLmxlbmd0aFxuICAgICAgPyBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5maWx0ZXIoKGNvdW50cnkpID0+IHRoaXMuY291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuaWQpKVxuICAgICAgOiBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5zbGljZSgpO1xuXG4gICAgaWYgKHRoaXMub3JkaW5hdGlvbiA9PT0gJ2F6Jykge1xuICAgICAgcmV0dXJuIGJhc2Uuc29ydCgoYSwgYikgPT4gdGhpcy5jb3VudHJ5TmFtZShhLmlkKS5sb2NhbGVDb21wYXJlKHRoaXMuY291bnRyeU5hbWUoYi5pZCkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRpbmF0aW9uID09PSAnemEnKSB7XG4gICAgICByZXR1cm4gYmFzZS5zb3J0KChhLCBiKSA9PiB0aGlzLmNvdW50cnlOYW1lKGIuaWQpLmxvY2FsZUNvbXBhcmUodGhpcy5jb3VudHJ5TmFtZShhLmlkKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlclRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUNvdW50cmllcy5maWx0ZXIoKGNvdW50cnkpID0+XG4gICAgICBgJHt0aGlzLmNvdW50cnlOYW1lKGNvdW50cnkuaWQpfSAke2NvdW50cnkuZGRpfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRNYXNrKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFza0ZvclJhd0xlbmd0aCh0aGlzLnBob25lUmF3VmFsdWUubGVuZ3RoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RGRpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtPy5kZGkgPz8gJyc7XG4gIH1cblxuICBnZXQgcGhvbmVSYXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5yYXdWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgbWFza0ZvclJhd0xlbmd0aChyYXdMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuICcwMDAwIDAwMDAnO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbS5tYXNrKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2s7XG4gICAgfVxuXG4gICAgY29uc3QgW3Nob3J0TWFzaywgbG9uZ01hc2tdID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFzaztcbiAgICByZXR1cm4gcmF3TGVuZ3RoID4gY291bnRNYXNrU2xvdHMoc2hvcnRNYXNrKSA/IGxvbmdNYXNrIDogc2hvcnRNYXNrO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMucmVzb2x2ZVNlbGVjdGVkQ291bnRyeSh2YWx1ZT8uaWQpID8/IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzWzBdID8/IG51bGw7XG4gICAgdGhpcy5waG9uZU1hc2tlZFZhbHVlID0gdmFsdWU/LnJhd1ZhbHVlID8gYXBwbHlNYXNrRm9ybWF0KHZhbHVlLnJhd1ZhbHVlLCB0aGlzLmN1cnJlbnRNYXNrKS5tYXNrZWQgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25Ub2dnbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IG9wZW47XG4gIH1cblxuICBvblBob25lSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghdGFyZ2V0IHx8ICF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdmVNYXNrID0gdGhpcy5tYXNrRm9yUmF3TGVuZ3RoKGV4dHJhY3RNYXNrUmF3KHRhcmdldC52YWx1ZSkubGVuZ3RoKTtcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2tGb3JtYXQodGFyZ2V0LnZhbHVlLCBsaXZlTWFzayk7XG4gICAgdGFyZ2V0LnZhbHVlID0gZm9ybWF0dGVkLm1hc2tlZDtcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSBmb3JtYXR0ZWQubWFza2VkO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGVkLnJhdywgZm9ybWF0dGVkLm1hc2tlZCk7XG4gIH1cblxuICBvblBob25lQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTG9zdC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBvblNlbGVjdENvdW50cnkoY291bnRyeTogQ291bnRyeVBob25lRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gY291bnRyeTtcbiAgICB0aGlzLmZpbHRlclRlcm0gPSAnJztcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnLCAnJyk7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KGNvdW50cnkpO1xuICAgIHRoaXMucG9wb3Zlcj8uY2xvc2VQYW5lbCgpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMucGhvbmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKSk7XG4gIH1cblxuICBvbkNvdW50cnlPcHRpb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb3VudHJ5OiBDb3VudHJ5UGhvbmVEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblNlbGVjdENvdW50cnkoY291bnRyeSk7XG4gIH1cblxuICBjb3VudHJ5TmFtZShjb3VudHJ5SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZ2lvbk5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFt0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAncHQtQlInXSwgeyB0eXBlOiAncmVnaW9uJyB9KTtcbiAgICAgIHJldHVybiByZWdpb25OYW1lcy5vZihjb3VudHJ5SWQudG9VcHBlckNhc2UoKSkgPz8gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgc2hvd0ZsYWdFbW9qaSA9IHN1cHBvcnRzRW1vamlGbGFncygpO1xuXG4gIGNvdW50cnlGbGFnKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRGbGFnRW1vamkoY291bnRyeUlkKTtcbiAgfVxuXG4gIGNvdW50cnlDb2RlKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcsIG1hc2tlZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIHJhd1ZhbHVlLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgZGRpOiB0aGlzLnNlbGVjdGVkSXRlbS5kZGksXG4gICAgICB2YWx1ZTogbWFza2VkVmFsdWVcbiAgICB9O1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNlbGVjdGVkQ291bnRyeShjb3VudHJ5SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCB7XG4gICAgaWYgKGNvdW50cnlJZCkge1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkuaWQgPT09IGNvdW50cnlJZCk7XG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVDb3VudHJpZXNbMF0gPz8gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb3VudE1hc2tTbG90cyhtYXNrOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gcGFyc2VNYXNrUGF0dGVybihtYXNrKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5raW5kICE9PSAnbGl0ZXJhbCcpLmxlbmd0aDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8c2RjLXBvcG92ZXJcbiAgICBbb3Blbl09XCJvcGVuXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvblRvZ2dsZSgkZXZlbnQpXCJcbiAgICBbbWF0Y2hUcmlnZ2VyV2lkdGhdPVwidHJ1ZVwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgcGFuZWxDbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3ZlcmxheS1wYW5lbFwiXG4gICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuYWNjZXNzaWJpbGl0eS5kcm9wZG93bidcIlxuICAgID5cbiAgICA8ZGl2XG4gICAgICBzZGMtcG9wb3Zlci10cmlnZ2VyXG4gICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbFwiXG4gICAgICBbY2xhc3Muc2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jb250cm9sLS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2NvdW50cnktdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgPlxuICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZmxhZ1wiPnt7IGNvdW50cnlGbGFnKHNlbGVjdGVkSXRlbT8uaWQgPz8gJ2JyJykgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoc2VsZWN0ZWRJdGVtPy5pZCA/PyAnYnInKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jYXJldCBmYXMgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY2FyZXQtLW9wZW5dPVwib3BlblwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZGRpXCI+e3sgY3VycmVudERkaSB9fTwvc3Bhbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNwaG9uZUlucHV0UmVmXG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2lucHV0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8IGN1cnJlbnRNYXNrXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3ZhbHVlXT1cInBob25lTWFza2VkVmFsdWVcIlxuICAgICAgICB0eXBlPVwidGVsXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuYWNjZXNzaWJpbGl0eS5pbnB1dCcgfCB0cmFuc2xhdGUpXG4gICAgICAgIFwiXG4gICAgICAgIChpbnB1dCk9XCJvblBob25lSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uUGhvbmVCbHVyKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc2RjLXBvcG92ZXItY29udGVudCBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoXCI+XG4gICAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJzZWFyY2hJbnB1dElkXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbaWRdPVwic2VhcmNoSW5wdXRJZFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGVybVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLnNlYXJjaF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBOT1NPTkFSOiBjdXN0b20gY291bnRyeSBkcm9wZG93biBpbnRlbnRpb25hbGx5IHVzZXMgQVJJQSBsaXN0Ym94IHNlbWFudGljcyBpbnN0ZWFkIG9mIGEgbmF0aXZlIHNlbGVjdCAtLT5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25zXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChjb3VudHJ5IG9mIGZpbHRlcmVkQ291bnRyaWVzOyB0cmFjayBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi0tc2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtPy5pZCA9PT0gY291bnRyeS5pZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gbGlzdGJveCBrZWVwcyBvcHRpb24gc2VtYW50aWNzIG9uIHRoZSBmb2N1c2FibGUgYWN0aW9uIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCInb3B0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSXRlbT8uaWQgPT09IGNvdW50cnkuaWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdENvdW50cnkoY291bnRyeSlcIlxuICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25Db3VudHJ5T3B0aW9uS2V5ZG93bigkZXZlbnQsIGNvdW50cnkpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLWZsYWdcIj57eyBjb3VudHJ5RmxhZyhjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoY291bnRyeS5pZCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi10ZXh0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tbGFiZWxcIj57eyBjb3VudHJ5TmFtZShjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLW1ldGFcIj57eyBjb3VudHJ5LmRkaSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZEl0ZW0/LmlkID09PSBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrIHNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLXNlbGVjdGVkLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NkYy1wb3BvdmVyPlxuXG4gICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zbWFsbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsdUNBQXVDLEVBQ3hDLE1BQU0saURBQWlELENBQUM7QUFNekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFrQmhFLE1BQU0sT0FBTywyQkFBMkI7SUFDckIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FB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cG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfQ09VTlRSSUVTLFxuICBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX09SRElOQVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvY291bnRyeS1waG9uZS1waWNrZXIuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBDb3VudHJ5UGhvbmVEYXRhLFxuICBDb3VudHJ5UGhvbmVPcmRpbmF0aW9uLFxuICBQaG9uZVNlbGVjdGlvbkRhdGFcbn0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb3VudHJ5LXBob25lLXBpY2tlci50eXBlJztcbmltcG9ydCB7IGJ1aWxkRmxhZ0Vtb2ppLCBzdXBwb3J0c0Vtb2ppRmxhZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Vtb2ppLXN1cHBvcnQudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGFwcGx5TWFza0Zvcm1hdCwgZXh0cmFjdE1hc2tSYXcsIHBhcnNlTWFza1BhdHRlcm4gfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL21hc2sudXRpbCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBQb3BvdmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicpO1xuXG4gIEBJbnB1dCgpIGNvdW50cmllczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgb3JkaW5hdGlvbjogQ291bnRyeVBob25lT3JkaW5hdGlvbiA9IENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfT1JESU5BVElPTjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnlQaG9uZURhdGE+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c0xvc3QgPSBuZXcgRXZlbnRFbWl0dGVyPFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGw+KCk7XG5cbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyPzogUG9wb3ZlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncGhvbmVJbnB1dFJlZicpIHBob25lSW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEgfCBudWxsID0gbnVsbDtcbiAgZmlsdGVyVGVybSA9ICcnO1xuICBwaG9uZU1hc2tlZFZhbHVlID0gJyc7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRJdGVtOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LWlucHV0YDtcbiAgfVxuXG4gIGdldCBzZWFyY2hJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LXNlYXJjaGA7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuY291bnRyaWVzLmxlbmd0aFxuICAgICAgPyBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5maWx0ZXIoKGNvdW50cnkpID0+IHRoaXMuY291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuaWQpKVxuICAgICAgOiBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5zbGljZSgpO1xuXG4gICAgaWYgKHRoaXMub3JkaW5hdGlvbiA9PT0gJ2F6Jykge1xuICAgICAgcmV0dXJuIGJhc2Uuc29ydCgoYSwgYikgPT4gdGhpcy5jb3VudHJ5TmFtZShhLmlkKS5sb2NhbGVDb21wYXJlKHRoaXMuY291bnRyeU5hbWUoYi5pZCkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRpbmF0aW9uID09PSAnemEnKSB7XG4gICAgICByZXR1cm4gYmFzZS5zb3J0KChhLCBiKSA9PiB0aGlzLmNvdW50cnlOYW1lKGIuaWQpLmxvY2FsZUNvbXBhcmUodGhpcy5jb3VudHJ5TmFtZShhLmlkKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlclRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUNvdW50cmllcy5maWx0ZXIoKGNvdW50cnkpID0+XG4gICAgICBgJHt0aGlzLmNvdW50cnlOYW1lKGNvdW50cnkuaWQpfSAke2NvdW50cnkuZGRpfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRNYXNrKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFza0ZvclJhd0xlbmd0aCh0aGlzLnBob25lUmF3VmFsdWUubGVuZ3RoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RGRpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtPy5kZGkgPz8gJyc7XG4gIH1cblxuICBnZXQgcGhvbmVSYXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5yYXdWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgbWFza0ZvclJhd0xlbmd0aChyYXdMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuICcwMDAwIDAwMDAnO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbS5tYXNrKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2s7XG4gICAgfVxuXG4gICAgY29uc3QgW3Nob3J0TWFzaywgbG9uZ01hc2tdID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFzaztcbiAgICByZXR1cm4gcmF3TGVuZ3RoID4gY291bnRNYXNrU2xvdHMoc2hvcnRNYXNrKSA/IGxvbmdNYXNrIDogc2hvcnRNYXNrO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMucmVzb2x2ZVNlbGVjdGVkQ291bnRyeSh2YWx1ZT8uaWQpID8/IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzWzBdID8/IG51bGw7XG4gICAgdGhpcy5waG9uZU1hc2tlZFZhbHVlID0gdmFsdWU/LnJhd1ZhbHVlID8gYXBwbHlNYXNrRm9ybWF0KHZhbHVlLnJhd1ZhbHVlLCB0aGlzLmN1cnJlbnRNYXNrKS5tYXNrZWQgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25Ub2dnbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IG9wZW47XG4gIH1cblxuICBvblBob25lSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghdGFyZ2V0IHx8ICF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdmVNYXNrID0gdGhpcy5tYXNrRm9yUmF3TGVuZ3RoKGV4dHJhY3RNYXNrUmF3KHRhcmdldC52YWx1ZSkubGVuZ3RoKTtcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2tGb3JtYXQodGFyZ2V0LnZhbHVlLCBsaXZlTWFzayk7XG4gICAgdGFyZ2V0LnZhbHVlID0gZm9ybWF0dGVkLm1hc2tlZDtcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSBmb3JtYXR0ZWQubWFza2VkO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGVkLnJhdywgZm9ybWF0dGVkLm1hc2tlZCk7XG4gIH1cblxuICBvblBob25lQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTG9zdC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBvblNlbGVjdENvdW50cnkoY291bnRyeTogQ291bnRyeVBob25lRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gY291bnRyeTtcbiAgICB0aGlzLmZpbHRlclRlcm0gPSAnJztcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnLCAnJyk7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KGNvdW50cnkpO1xuICAgIHRoaXMucG9wb3Zlcj8uY2xvc2VQYW5lbCgpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMucGhvbmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKSk7XG4gIH1cblxuICBvbkNvdW50cnlPcHRpb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb3VudHJ5OiBDb3VudHJ5UGhvbmVEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblNlbGVjdENvdW50cnkoY291bnRyeSk7XG4gIH1cblxuICBjb3VudHJ5TmFtZShjb3VudHJ5SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZ2lvbk5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFt0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAncHQtQlInXSwgeyB0eXBlOiAncmVnaW9uJyB9KTtcbiAgICAgIHJldHVybiByZWdpb25OYW1lcy5vZihjb3VudHJ5SWQudG9VcHBlckNhc2UoKSkgPz8gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgc2hvd0ZsYWdFbW9qaSA9IHN1cHBvcnRzRW1vamlGbGFncygpO1xuXG4gIGNvdW50cnlGbGFnKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRGbGFnRW1vamkoY291bnRyeUlkKTtcbiAgfVxuXG4gIGNvdW50cnlDb2RlKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcsIG1hc2tlZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIHJhd1ZhbHVlLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgZGRpOiB0aGlzLnNlbGVjdGVkSXRlbS5kZGksXG4gICAgICB2YWx1ZTogbWFza2VkVmFsdWVcbiAgICB9O1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNlbGVjdGVkQ291bnRyeShjb3VudHJ5SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCB7XG4gICAgaWYgKGNvdW50cnlJZCkge1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkuaWQgPT09IGNvdW50cnlJZCk7XG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVDb3VudHJpZXNbMF0gPz8gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb3VudE1hc2tTbG90cyhtYXNrOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gcGFyc2VNYXNrUGF0dGVybihtYXNrKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5raW5kICE9PSAnbGl0ZXJhbCcpLmxlbmd0aDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8c2RjLXBvcG92ZXJcbiAgICBbb3Blbl09XCJvcGVuXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvblRvZ2dsZSgkZXZlbnQpXCJcbiAgICBbbWF0Y2hUcmlnZ2VyV2lkdGhdPVwidHJ1ZVwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgcGFuZWxDbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3ZlcmxheS1wYW5lbFwiXG4gICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXJfYWNjZXNzaWJpbGl0eV9kcm9wZG93bidcIlxuICAgID5cbiAgICA8ZGl2XG4gICAgICBzZGMtcG9wb3Zlci10cmlnZ2VyXG4gICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbFwiXG4gICAgICBbY2xhc3Muc2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jb250cm9sLS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2NvdW50cnktdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyX2FjY2Vzc2liaWxpdHlfZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgPlxuICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZmxhZ1wiPnt7IGNvdW50cnlGbGFnKHNlbGVjdGVkSXRlbT8uaWQgPz8gJ2JyJykgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoc2VsZWN0ZWRJdGVtPy5pZCA/PyAnYnInKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jYXJldCBmYXMgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY2FyZXQtLW9wZW5dPVwib3BlblwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZGRpXCI+e3sgY3VycmVudERkaSB9fTwvc3Bhbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNwaG9uZUlucHV0UmVmXG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2lucHV0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8IGN1cnJlbnRNYXNrXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3ZhbHVlXT1cInBob25lTWFza2VkVmFsdWVcIlxuICAgICAgICB0eXBlPVwidGVsXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXJfYWNjZXNzaWJpbGl0eV9pbnB1dCcgfCB0cmFuc2xhdGUpXG4gICAgICAgIFwiXG4gICAgICAgIChpbnB1dCk9XCJvblBob25lSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uUGhvbmVCbHVyKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc2RjLXBvcG92ZXItY29udGVudCBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoXCI+XG4gICAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJzZWFyY2hJbnB1dElkXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXJfc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbaWRdPVwic2VhcmNoSW5wdXRJZFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGVybVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyX3NlYXJjaF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXJfc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBOT1NPTkFSOiBjdXN0b20gY291bnRyeSBkcm9wZG93biBpbnRlbnRpb25hbGx5IHVzZXMgQVJJQSBsaXN0Ym94IHNlbWFudGljcyBpbnN0ZWFkIG9mIGEgbmF0aXZlIHNlbGVjdCAtLT5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25zXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyX2FjY2Vzc2liaWxpdHlfZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChjb3VudHJ5IG9mIGZpbHRlcmVkQ291bnRyaWVzOyB0cmFjayBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi0tc2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtPy5pZCA9PT0gY291bnRyeS5pZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gbGlzdGJveCBrZWVwcyBvcHRpb24gc2VtYW50aWNzIG9uIHRoZSBmb2N1c2FibGUgYWN0aW9uIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCInb3B0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSXRlbT8uaWQgPT09IGNvdW50cnkuaWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdENvdW50cnkoY291bnRyeSlcIlxuICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25Db3VudHJ5T3B0aW9uS2V5ZG93bigkZXZlbnQsIGNvdW50cnkpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLWZsYWdcIj57eyBjb3VudHJ5RmxhZyhjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoY291bnRyeS5pZCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi10ZXh0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tbGFiZWxcIj57eyBjb3VudHJ5TmFtZShjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLW1ldGFcIj57eyBjb3VudHJ5LmRkaSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZEl0ZW0/LmlkID09PSBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrIHNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLXNlbGVjdGVkLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NkYy1wb3BvdmVyPlxuXG4gICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zbWFsbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiJdfQ==
@@ -56,7 +56,7 @@ export class CurrencyComponent {
56
56
  useExisting: forwardRef(() => CurrencyComponent),
57
57
  multi: true
58
58
  }
59
- ], ngImport: i0, template: "<sdc-number-input\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [label]=\"label\"\n [message]=\"message\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [precision]=\"precision\"\n [scale]=\"resolvedScale\"\n [alignTo]=\"alignTo\"\n [allowNegative]=\"allowNegative\"\n [infoTooltip]=\"infoTooltip\"\n [infoTooltipPosition]=\"infoTooltipPosition\"\n [infoTooltipEvent]=\"infoTooltipEvent\"\n [addonLeft]=\"symbolSide === 'left' ? currencySymbol : null\"\n [addonRight]=\"symbolSide === 'right' ? currencySymbol : null\"\n (blur)=\"onTouched()\"\n></sdc-number-input>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: NumberInputComponent, selector: "sdc-number-input", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "min", "max", "step", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent", "addonLeft", "addonRight"], outputs: ["pasteRejected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
+ ], ngImport: i0, template: "<sdc-number-input\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [label]=\"label\"\n [message]=\"message\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [precision]=\"precision\"\n [scale]=\"resolvedScale\"\n [alignTo]=\"alignTo\"\n [allowNegative]=\"allowNegative\"\n [infoTooltip]=\"infoTooltip\"\n [infoTooltipPosition]=\"infoTooltipPosition\"\n [infoTooltipEvent]=\"infoTooltipEvent\"\n [addonLeft]=\"symbolSide === 'left' ? currencySymbol : null\"\n [addonRight]=\"symbolSide === 'right' ? currencySymbol : null\"\n (blur)=\"onTouched()\"\n></sdc-number-input>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: NumberInputComponent, selector: "sdc-number-input", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "min", "max", "step", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent", "addonLeft", "addonRight", "showSpinners"], outputs: ["pasteRejected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyComponent, decorators: [{
62
62
  type: Component,
@@ -169,7 +169,7 @@ export class EditableOverlayComponent {
169
169
  useExisting: forwardRef(() => EditableOverlayComponent),
170
170
  multi: true
171
171
  }
172
- ], queries: [{ propertyName: "editorTemplate", first: true, predicate: EditableOverlayEditorDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"sdc-editable-overlay\"\n [class.sdc-editable-overlay--disabled]=\"disabled\"\n [class.sdc-editable-overlay--invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <div class=\"sdc-editable-overlay__label-row\">\n <label [id]=\"labelId\" [attr.for]=\"triggerId\" class=\"sdc-editable-overlay__label\">\n <span class=\"sdc-editable-overlay__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 </label>\n </div>\n }\n\n <sdc-popover\n class=\"sdc-editable-overlay__popover\"\n [open]=\"open\"\n [disabled]=\"disabled\"\n [toggleOnTriggerClick]=\"false\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [trapFocus]=\"true\"\n [focusOnOpen]=\"true\"\n [restoreFocusOnClose]=\"true\"\n [ariaLabel]=\"editAriaLabel\"\n panelClass=\"sdc-editable-overlay__panel\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n [id]=\"triggerId\"\n class=\"sdc-editable-overlay__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"editAriaLabel\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? messageId : null\"\n (click)=\"startEdit()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <span\n class=\"sdc-editable-overlay__value\"\n [class.sdc-editable-overlay__value--empty]=\"isValueEmpty\"\n >{{ displayText }}</span>\n\n @if (isValueEmpty) {\n <span class=\"sr-only\">{{ emptyStateText }}</span>\n }\n\n @if (!disabled) {\n <i class=\"fas fa-pencil-alt sdc-editable-overlay__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div sdc-popover-content class=\"sdc-editable-overlay__editor-panel\">\n <div class=\"sdc-editable-overlay__editor\">\n @if (editorTemplate) {\n <ng-container\n *ngTemplateOutlet=\"editorTemplate.template; context: editorContext\"\n ></ng-container>\n } @else {\n <sdc-textbox\n [value]=\"draftAsString\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxlength\"\n [required]=\"required\"\n (valueChange)=\"updateDraft($event)\"\n ></sdc-textbox>\n }\n </div>\n\n <div class=\"sdc-editable-overlay__footer\">\n <sdc-button\n type=\"button\"\n priority=\"secondary\"\n size=\"small\"\n [auxiliary]=\"true\"\n [label]=\"cancelButtonLabel\"\n (clicked)=\"cancelEdit()\"\n ></sdc-button>\n <sdc-button\n type=\"button\"\n priority=\"primary\"\n size=\"small\"\n [label]=\"saveButtonLabel\"\n (clicked)=\"saveEdit()\"\n ></sdc-button>\n </div>\n </div>\n </sdc-popover>\n\n @if (messageKey()) {\n <small\n [id]=\"messageId\"\n class=\"sdc-editable-overlay__message\"\n [class.invalid]=\"invalid\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:inline-block;max-width:100%}.sdc-editable-overlay{--sdc-editable-overlay-hover-bg: rgba(0, 0, 0, .04);--sdc-editable-overlay-focus-outline: var(--sdc-focus-outline, 2px solid #428bca);--sdc-editable-overlay-radius: 4px;--sdc-editable-overlay-color: var(--sdc-form-label-color, #212533);--sdc-editable-overlay-icon-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-invalid-color: var(--sdc-form-required-color, #d32f2f);--sdc-editable-overlay-empty-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-panel-gap: 8px;display:inline-flex;flex-direction:column;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);max-width:100%}.sdc-editable-overlay--disabled{cursor:not-allowed;opacity:.65}.sdc-editable-overlay__label-row{display:flex;align-items:center;margin-bottom:var(--sdc-form-label-row-mb, 4px)}.sdc-editable-overlay__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size, .875rem);font-weight:var(--sdc-form-label-font-weight, 600);color:var(--sdc-form-label-color, #212533);line-height:var(--sdc-form-label-lh, 1.25)}.sdc-editable-overlay__popover{display:inline-block;max-width:100%}.sdc-editable-overlay__trigger{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--sdc-editable-overlay-radius);box-sizing:border-box;color:var(--sdc-editable-overlay-color);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;gap:.375rem;max-width:100%;padding:.25rem .5rem;transition:background var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-editable-overlay__value--empty{color:var(--sdc-editable-overlay-empty-color)}.sdc-editable-overlay__icon{color:var(--sdc-editable-overlay-icon-color);flex:none;font-size:.8125rem;opacity:0;transition:opacity var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__trigger:focus-visible{outline:var(--sdc-editable-overlay-focus-outline);outline-offset:2px}.sdc-editable-overlay__trigger:disabled{cursor:not-allowed;pointer-events:none}.sdc-editable-overlay--invalid .sdc-editable-overlay__trigger{color:var(--sdc-editable-overlay-invalid-color)}.sdc-editable-overlay__trigger:hover:not(:disabled){background:var(--sdc-editable-overlay-hover-bg)}.sdc-editable-overlay__trigger:focus-visible .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__trigger:hover:not(:disabled) .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__editor-panel{display:flex;flex-direction:column;gap:var(--sdc-editable-overlay-panel-gap, 8px);min-width:16rem;padding:.75rem}.sdc-editable-overlay__editor{display:block}.sdc-editable-overlay__footer{display:flex;gap:8px;justify-content:flex-end}.sdc-editable-overlay__message{display:block;margin-top:var(--sdc-form-label-row-mb, 4px);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-editable-overlay__message.invalid{color:var(--sdc-editable-overlay-invalid-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TextboxComponent, selector: "sdc-textbox", inputs: ["infoTooltip", "infoTooltipPosition", "infoTooltipEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ ], queries: [{ propertyName: "editorTemplate", first: true, predicate: EditableOverlayEditorDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"sdc-editable-overlay\"\n [class.sdc-editable-overlay--disabled]=\"disabled\"\n [class.sdc-editable-overlay--invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <div class=\"sdc-editable-overlay__label-row\">\n <label [id]=\"labelId\" [attr.for]=\"triggerId\" class=\"sdc-editable-overlay__label\">\n <span class=\"sdc-editable-overlay__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 </label>\n </div>\n }\n\n <sdc-popover\n class=\"sdc-editable-overlay__popover\"\n [open]=\"open\"\n [disabled]=\"disabled\"\n [toggleOnTriggerClick]=\"false\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [trapFocus]=\"true\"\n [focusOnOpen]=\"true\"\n [restoreFocusOnClose]=\"true\"\n [ariaLabel]=\"editAriaLabel\"\n panelClass=\"sdc-editable-overlay__panel\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n [id]=\"triggerId\"\n class=\"sdc-editable-overlay__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"editAriaLabel\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? messageId : null\"\n (click)=\"startEdit()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <span\n class=\"sdc-editable-overlay__value\"\n [class.sdc-editable-overlay__value--empty]=\"isValueEmpty\"\n >{{ displayText }}</span>\n\n @if (isValueEmpty) {\n <span class=\"sr-only\">{{ emptyStateText }}</span>\n }\n\n @if (!disabled) {\n <i class=\"fas fa-pencil-alt sdc-editable-overlay__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div sdc-popover-content class=\"sdc-editable-overlay__editor-panel\">\n <div class=\"sdc-editable-overlay__editor\">\n @if (editorTemplate) {\n <ng-container\n *ngTemplateOutlet=\"editorTemplate.template; context: editorContext\"\n ></ng-container>\n } @else {\n <sdc-textbox\n [value]=\"draftAsString\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxlength\"\n [required]=\"required\"\n (valueChange)=\"updateDraft($event)\"\n ></sdc-textbox>\n }\n </div>\n\n <div class=\"sdc-editable-overlay__footer\">\n <sdc-button\n type=\"button\"\n priority=\"secondary\"\n size=\"small\"\n [auxiliary]=\"true\"\n [label]=\"cancelButtonLabel\"\n (clicked)=\"cancelEdit()\"\n ></sdc-button>\n <sdc-button\n type=\"button\"\n priority=\"primary\"\n size=\"small\"\n [label]=\"saveButtonLabel\"\n (clicked)=\"saveEdit()\"\n ></sdc-button>\n </div>\n </div>\n </sdc-popover>\n\n @if (messageKey()) {\n <small\n [id]=\"messageId\"\n class=\"sdc-editable-overlay__message\"\n [class.invalid]=\"invalid\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:inline-block;max-width:100%}.sdc-editable-overlay{--sdc-editable-overlay-hover-bg: rgba(0, 0, 0, .04);--sdc-editable-overlay-focus-outline: var(--sdc-focus-outline, 2px solid #428bca);--sdc-editable-overlay-radius: 4px;--sdc-editable-overlay-color: var(--sdc-form-label-color, #212533);--sdc-editable-overlay-icon-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-invalid-color: var(--sdc-form-required-color, #d32f2f);--sdc-editable-overlay-empty-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-panel-gap: 8px;display:inline-flex;flex-direction:column;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);max-width:100%}.sdc-editable-overlay--disabled{cursor:not-allowed;opacity:.65}.sdc-editable-overlay__label-row{display:flex;align-items:center;margin-bottom:var(--sdc-form-label-row-mb, 4px)}.sdc-editable-overlay__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size, .875rem);font-weight:var(--sdc-form-label-font-weight, 600);color:var(--sdc-form-label-color, #212533);line-height:var(--sdc-form-label-lh, 1.25)}.sdc-editable-overlay__popover{display:inline-block;max-width:100%}.sdc-editable-overlay__trigger{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--sdc-editable-overlay-radius);box-sizing:border-box;color:var(--sdc-editable-overlay-color);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;gap:.375rem;max-width:100%;padding:.25rem .5rem;transition:background var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-editable-overlay__value--empty{color:var(--sdc-editable-overlay-empty-color)}.sdc-editable-overlay__icon{color:var(--sdc-editable-overlay-icon-color);flex:none;font-size:.8125rem;opacity:0;transition:opacity var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__trigger:focus-visible{outline:var(--sdc-editable-overlay-focus-outline);outline-offset:2px}.sdc-editable-overlay__trigger:disabled{cursor:not-allowed;pointer-events:none}.sdc-editable-overlay--invalid .sdc-editable-overlay__trigger{color:var(--sdc-editable-overlay-invalid-color)}.sdc-editable-overlay__trigger:hover:not(:disabled){background:var(--sdc-editable-overlay-hover-bg)}.sdc-editable-overlay__trigger:focus-visible .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__trigger:hover:not(:disabled) .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__editor-panel{display:flex;flex-direction:column;gap:var(--sdc-editable-overlay-panel-gap, 8px);min-width:16rem;padding:.75rem}.sdc-editable-overlay__editor{display:block}.sdc-editable-overlay__footer{display:flex;gap:8px;justify-content:flex-end}.sdc-editable-overlay__message{display:block;margin-top:var(--sdc-form-label-row-mb, 4px);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-editable-overlay__message.invalid{color:var(--sdc-editable-overlay-invalid-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "rounded", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TextboxComponent, selector: "sdc-textbox", inputs: ["infoTooltip", "infoTooltipPosition", "infoTooltipEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
173
  }
174
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditableOverlayComponent, decorators: [{
175
175
  type: Component,
@@ -179,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
179
179
  useExisting: forwardRef(() => EditableOverlayComponent),
180
180
  multi: true
181
181
  }
182
- ], template: "<div\n class=\"sdc-editable-overlay\"\n [class.sdc-editable-overlay--disabled]=\"disabled\"\n [class.sdc-editable-overlay--invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <div class=\"sdc-editable-overlay__label-row\">\n <label [id]=\"labelId\" [attr.for]=\"triggerId\" class=\"sdc-editable-overlay__label\">\n <span class=\"sdc-editable-overlay__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 </label>\n </div>\n }\n\n <sdc-popover\n class=\"sdc-editable-overlay__popover\"\n [open]=\"open\"\n [disabled]=\"disabled\"\n [toggleOnTriggerClick]=\"false\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [trapFocus]=\"true\"\n [focusOnOpen]=\"true\"\n [restoreFocusOnClose]=\"true\"\n [ariaLabel]=\"editAriaLabel\"\n panelClass=\"sdc-editable-overlay__panel\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n [id]=\"triggerId\"\n class=\"sdc-editable-overlay__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"editAriaLabel\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? messageId : null\"\n (click)=\"startEdit()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <span\n class=\"sdc-editable-overlay__value\"\n [class.sdc-editable-overlay__value--empty]=\"isValueEmpty\"\n >{{ displayText }}</span>\n\n @if (isValueEmpty) {\n <span class=\"sr-only\">{{ emptyStateText }}</span>\n }\n\n @if (!disabled) {\n <i class=\"fas fa-pencil-alt sdc-editable-overlay__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div sdc-popover-content class=\"sdc-editable-overlay__editor-panel\">\n <div class=\"sdc-editable-overlay__editor\">\n @if (editorTemplate) {\n <ng-container\n *ngTemplateOutlet=\"editorTemplate.template; context: editorContext\"\n ></ng-container>\n } @else {\n <sdc-textbox\n [value]=\"draftAsString\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxlength\"\n [required]=\"required\"\n (valueChange)=\"updateDraft($event)\"\n ></sdc-textbox>\n }\n </div>\n\n <div class=\"sdc-editable-overlay__footer\">\n <sdc-button\n type=\"button\"\n priority=\"secondary\"\n size=\"small\"\n [auxiliary]=\"true\"\n [label]=\"cancelButtonLabel\"\n (clicked)=\"cancelEdit()\"\n ></sdc-button>\n <sdc-button\n type=\"button\"\n priority=\"primary\"\n size=\"small\"\n [label]=\"saveButtonLabel\"\n (clicked)=\"saveEdit()\"\n ></sdc-button>\n </div>\n </div>\n </sdc-popover>\n\n @if (messageKey()) {\n <small\n [id]=\"messageId\"\n class=\"sdc-editable-overlay__message\"\n [class.invalid]=\"invalid\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:inline-block;max-width:100%}.sdc-editable-overlay{--sdc-editable-overlay-hover-bg: rgba(0, 0, 0, .04);--sdc-editable-overlay-focus-outline: var(--sdc-focus-outline, 2px solid #428bca);--sdc-editable-overlay-radius: 4px;--sdc-editable-overlay-color: var(--sdc-form-label-color, #212533);--sdc-editable-overlay-icon-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-invalid-color: var(--sdc-form-required-color, #d32f2f);--sdc-editable-overlay-empty-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-panel-gap: 8px;display:inline-flex;flex-direction:column;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);max-width:100%}.sdc-editable-overlay--disabled{cursor:not-allowed;opacity:.65}.sdc-editable-overlay__label-row{display:flex;align-items:center;margin-bottom:var(--sdc-form-label-row-mb, 4px)}.sdc-editable-overlay__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size, .875rem);font-weight:var(--sdc-form-label-font-weight, 600);color:var(--sdc-form-label-color, #212533);line-height:var(--sdc-form-label-lh, 1.25)}.sdc-editable-overlay__popover{display:inline-block;max-width:100%}.sdc-editable-overlay__trigger{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--sdc-editable-overlay-radius);box-sizing:border-box;color:var(--sdc-editable-overlay-color);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;gap:.375rem;max-width:100%;padding:.25rem .5rem;transition:background var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-editable-overlay__value--empty{color:var(--sdc-editable-overlay-empty-color)}.sdc-editable-overlay__icon{color:var(--sdc-editable-overlay-icon-color);flex:none;font-size:.8125rem;opacity:0;transition:opacity var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__trigger:focus-visible{outline:var(--sdc-editable-overlay-focus-outline);outline-offset:2px}.sdc-editable-overlay__trigger:disabled{cursor:not-allowed;pointer-events:none}.sdc-editable-overlay--invalid .sdc-editable-overlay__trigger{color:var(--sdc-editable-overlay-invalid-color)}.sdc-editable-overlay__trigger:hover:not(:disabled){background:var(--sdc-editable-overlay-hover-bg)}.sdc-editable-overlay__trigger:focus-visible .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__trigger:hover:not(:disabled) .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__editor-panel{display:flex;flex-direction:column;gap:var(--sdc-editable-overlay-panel-gap, 8px);min-width:16rem;padding:.75rem}.sdc-editable-overlay__editor{display:block}.sdc-editable-overlay__footer{display:flex;gap:8px;justify-content:flex-end}.sdc-editable-overlay__message{display:block;margin-top:var(--sdc-form-label-row-mb, 4px);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-editable-overlay__message.invalid{color:var(--sdc-editable-overlay-invalid-color)}\n"] }]
182
+ ], template: "<div\n class=\"sdc-editable-overlay\"\n [class.sdc-editable-overlay--disabled]=\"disabled\"\n [class.sdc-editable-overlay--invalid]=\"invalid\"\n>\n @if (labelKey()) {\n <div class=\"sdc-editable-overlay__label-row\">\n <label [id]=\"labelId\" [attr.for]=\"triggerId\" class=\"sdc-editable-overlay__label\">\n <span class=\"sdc-editable-overlay__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 </label>\n </div>\n }\n\n <sdc-popover\n class=\"sdc-editable-overlay__popover\"\n [open]=\"open\"\n [disabled]=\"disabled\"\n [toggleOnTriggerClick]=\"false\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [trapFocus]=\"true\"\n [focusOnOpen]=\"true\"\n [restoreFocusOnClose]=\"true\"\n [ariaLabel]=\"editAriaLabel\"\n panelClass=\"sdc-editable-overlay__panel\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n [id]=\"triggerId\"\n class=\"sdc-editable-overlay__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"editAriaLabel\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? messageId : null\"\n (click)=\"startEdit()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <span\n class=\"sdc-editable-overlay__value\"\n [class.sdc-editable-overlay__value--empty]=\"isValueEmpty\"\n >{{ displayText }}</span>\n\n @if (isValueEmpty) {\n <span class=\"sr-only\">{{ emptyStateText }}</span>\n }\n\n @if (!disabled) {\n <i class=\"fas fa-pencil-alt sdc-editable-overlay__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n\n <div sdc-popover-content class=\"sdc-editable-overlay__editor-panel\">\n <div class=\"sdc-editable-overlay__editor\">\n @if (editorTemplate) {\n <ng-container\n *ngTemplateOutlet=\"editorTemplate.template; context: editorContext\"\n ></ng-container>\n } @else {\n <sdc-textbox\n [value]=\"draftAsString\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxlength\"\n [required]=\"required\"\n (valueChange)=\"updateDraft($event)\"\n ></sdc-textbox>\n }\n </div>\n\n <div class=\"sdc-editable-overlay__footer\">\n <sdc-button\n type=\"button\"\n priority=\"secondary\"\n size=\"small\"\n [auxiliary]=\"true\"\n [label]=\"cancelButtonLabel\"\n (clicked)=\"cancelEdit()\"\n ></sdc-button>\n <sdc-button\n type=\"button\"\n priority=\"primary\"\n size=\"small\"\n [label]=\"saveButtonLabel\"\n (clicked)=\"saveEdit()\"\n ></sdc-button>\n </div>\n </div>\n </sdc-popover>\n\n @if (messageKey()) {\n <small\n [id]=\"messageId\"\n class=\"sdc-editable-overlay__message\"\n [class.invalid]=\"invalid\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [":host{display:inline-block;max-width:100%}.sdc-editable-overlay{--sdc-editable-overlay-hover-bg: rgba(0, 0, 0, .04);--sdc-editable-overlay-focus-outline: var(--sdc-focus-outline, 2px solid #428bca);--sdc-editable-overlay-radius: 4px;--sdc-editable-overlay-color: var(--sdc-form-label-color, #212533);--sdc-editable-overlay-icon-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-invalid-color: var(--sdc-form-required-color, #d32f2f);--sdc-editable-overlay-empty-color: var(--sdc-text-subtle, #667085);--sdc-editable-overlay-panel-gap: 8px;display:inline-flex;flex-direction:column;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);max-width:100%}.sdc-editable-overlay--disabled{cursor:not-allowed;opacity:.65}.sdc-editable-overlay__label-row{display:flex;align-items:center;margin-bottom:var(--sdc-form-label-row-mb, 4px)}.sdc-editable-overlay__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size, .875rem);font-weight:var(--sdc-form-label-font-weight, 600);color:var(--sdc-form-label-color, #212533);line-height:var(--sdc-form-label-lh, 1.25)}.sdc-editable-overlay__popover{display:inline-block;max-width:100%}.sdc-editable-overlay__trigger{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--sdc-editable-overlay-radius);box-sizing:border-box;color:var(--sdc-editable-overlay-color);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;gap:.375rem;max-width:100%;padding:.25rem .5rem;transition:background var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-editable-overlay__value--empty{color:var(--sdc-editable-overlay-empty-color)}.sdc-editable-overlay__icon{color:var(--sdc-editable-overlay-icon-color);flex:none;font-size:.8125rem;opacity:0;transition:opacity var(--sdc-transition-fast, .18s ease)}.sdc-editable-overlay__trigger:focus-visible{outline:var(--sdc-editable-overlay-focus-outline);outline-offset:2px}.sdc-editable-overlay__trigger:disabled{cursor:not-allowed;pointer-events:none}.sdc-editable-overlay--invalid .sdc-editable-overlay__trigger{color:var(--sdc-editable-overlay-invalid-color)}.sdc-editable-overlay__trigger:hover:not(:disabled){background:var(--sdc-editable-overlay-hover-bg)}.sdc-editable-overlay__trigger:focus-visible .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__trigger:hover:not(:disabled) .sdc-editable-overlay__icon{opacity:1}.sdc-editable-overlay__editor-panel{display:flex;flex-direction:column;gap:var(--sdc-editable-overlay-panel-gap, 8px);min-width:16rem;padding:.75rem}.sdc-editable-overlay__editor{display:block}.sdc-editable-overlay__footer{display:flex;gap:8px;justify-content:flex-end}.sdc-editable-overlay__message{display:block;margin-top:var(--sdc-form-label-row-mb, 4px);font-size:.8125rem;color:var(--sdc-text-subtle, #667085)}.sdc-editable-overlay__message.invalid{color:var(--sdc-editable-overlay-invalid-color)}\n"] }]
183
183
  }], propDecorators: { label: [{
184
184
  type: Input
185
185
  }], message: [{
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
214
214
  type: ContentChild,
215
215
  args: [EditableOverlayEditorDirective]
216
216
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2VkaXRhYmxlLW92ZXJsYXkvZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2VkaXRhYmxlLW92ZXJsYXkvZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQzFCLE1BQU0sNkNBQTZDLENBQUM7QUFHckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFN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QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFHRyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIEVESVRBQkxFX09WRVJMQVlfQ0FOQ0VMX0tFWSxcbiAgRURJVEFCTEVfT1ZFUkxBWV9FRElUX0tFWSxcbiAgRURJVEFCTEVfT1ZFUkxBWV9FTVBUWV9LRVksXG4gIEVESVRBQkxFX09WRVJMQVlfU0FWRV9LRVlcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvZWRpdGFibGUtb3ZlcmxheS5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IEVkaXRhYmxlT3ZlcmxheUVkaXRvckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2VkaXRhYmxlLW92ZXJsYXkudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0YWJsZU92ZXJsYXlFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2VkaXRhYmxlLW92ZXJsYXktZWRpdG9yLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1lZGl0YWJsZS1vdmVybGF5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50LCBUZXh0Ym94Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRhYmxlLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0YWJsZU92ZXJsYXlDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdGFibGVPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBlbXB0eVRleHQ6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2F2ZUxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heGxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgZGlzcGxheUZvcm1hdHRlcj86ICh2YWx1ZTogdW5rbm93bikgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBzYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoRWRpdGFibGVPdmVybGF5RWRpdG9yRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgZWRpdG9yVGVtcGxhdGU/OiBFZGl0YWJsZU92ZXJsYXlFZGl0b3JEaXJlY3RpdmU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsSWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtZWRpdGFibGUtb3ZlcmxheS1sYWJlbCcpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVzc2FnZUlkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWVkaXRhYmxlLW92ZXJsYXktbWVzc2FnZScpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJpZ2dlcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWVkaXRhYmxlLW92ZXJsYXktdHJpZ2dlcicpO1xuXG4gIHByb3RlY3RlZCB2YWx1ZTogdW5rbm93biA9IG51bGw7XG4gIHByb3RlY3RlZCBkcmFmdDogdW5rbm93biA9IG51bGw7XG4gIHByb3RlY3RlZCBvcGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvckNvbnRleHQ6IEVkaXRhYmxlT3ZlcmxheUVkaXRvckNvbnRleHQgPSB7XG4gICAgJGltcGxpY2l0OiBudWxsLFxuICAgIHZhbHVlOiBudWxsLFxuICAgIGNvbW1pdDogKG5leHRWYWx1ZTogdW5rbm93bikgPT4gdGhpcy51cGRhdGVEcmFmdChuZXh0VmFsdWUpLFxuICAgIGNhbmNlbDogKCkgPT4gdGhpcy5jYW5jZWxFZGl0KClcbiAgfTtcblxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJvdGVjdGVkIGdldCBlZGl0QXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWxUZXh0ID0gdGhpcy5sYWJlbEtleSgpID8gU3RyaW5nKHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5sYWJlbEtleSgpKSkgOiAnJztcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRURJVEFCTEVfT1ZFUkxBWV9FRElUX0tFWSwgeyBsYWJlbDogbGFiZWxUZXh0IH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2F2ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnNhdmVMYWJlbCwgRURJVEFCTEVfT1ZFUkxBWV9TQVZFX0tFWSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhbmNlbEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmNhbmNlbExhYmVsLCBFRElUQUJMRV9PVkVSTEFZX0NBTkNFTF9LRVkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBlbXB0eVN0YXRlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5lbXB0eVRleHQsIEVESVRBQkxFX09WRVJMQVlfRU1QVFlfS0VZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRW1wdHkodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSh0aGlzLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRyYWZ0QXNTdHJpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kcmFmdCA9PT0gbnVsbCB8fCB0aGlzLmRyYWZ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZHJhZnQgPT09ICdzdHJpbmcnID8gdGhpcy5kcmFmdCA6IFN0cmluZyh0aGlzLmRyYWZ0KTtcbiAgfVxuXG4gIGxhYmVsS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmxhYmVsID09PSAnc3RyaW5nJyA/IHRoaXMubGFiZWwgOiAnJztcbiAgfVxuXG4gIG1lc3NhZ2VLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubWVzc2FnZSA9PT0gJ3N0cmluZycgPyB0aGlzLm1lc3NhZ2UgOiAnJztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMub3Blbikge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmRyYWZ0ID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEVkaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEcmFmdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVHJpZ2dlcktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnN0YXJ0RWRpdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNhdmVFZGl0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy5kcmFmdDtcblxuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB0aGlzLm9uQ2hhbmdlRm4obmV4dFZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5leHRWYWx1ZSk7XG4gICAgdGhpcy5zYXZlZC5lbWl0KG5leHRWYWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuY2VsRWRpdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBzZGMtcG9wb3ZlciBjbG9zaW5nIGl0c2VsZiAob3V0c2lkZSBjbGljayAvIEVzY2FwZSkgLSB0cmVhdGVkIGFzIGEgY2FuY2VsLiAqL1xuICBwcm90ZWN0ZWQgb25Qb3BvdmVyT3BlbkNoYW5nZShuZXh0T3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChuZXh0T3BlbiB8fCAhdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYW5jZWxFZGl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRHJhZnQodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmRyYWZ0ID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3JDb250ZXh0LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3JDb250ZXh0LiRpbXBsaWNpdCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kcmFmdCA9IG51bGw7XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VtcHR5KHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZvcm1hdHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheUZvcm1hdHRlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheVwiXG4gIFtjbGFzcy5zZGMtZWRpdGFibGUtb3ZlcmxheS0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3Muc2RjLWVkaXRhYmxlLW92ZXJsYXktLWludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIEBpZiAobGFiZWxLZXkoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWwtcm93XCI+XG4gICAgICA8bGFiZWwgW2lkXT1cImxhYmVsSWRcIiBbYXR0ci5mb3JdPVwidHJpZ2dlcklkXCIgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWxcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWwtdGV4dFwiPlxuICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8c2RjLXBvcG92ZXJcbiAgICBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X19wb3BvdmVyXCJcbiAgICBbb3Blbl09XCJvcGVuXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt0b2dnbGVPblRyaWdnZXJDbGlja109XCJmYWxzZVwiXG4gICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gICAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gICAgW3RyYXBGb2N1c109XCJ0cnVlXCJcbiAgICBbZm9jdXNPbk9wZW5dPVwidHJ1ZVwiXG4gICAgW3Jlc3RvcmVGb2N1c09uQ2xvc2VdPVwidHJ1ZVwiXG4gICAgW2FyaWFMYWJlbF09XCJlZGl0QXJpYUxhYmVsXCJcbiAgICBwYW5lbENsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX3BhbmVsXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvblBvcG92ZXJPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgc2RjLXBvcG92ZXItdHJpZ2dlclxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWRdPVwidHJpZ2dlcklkXCJcbiAgICAgIGNsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX3RyaWdnZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZWRpdEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5cIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gbWVzc2FnZUlkIDogbnVsbFwiXG4gICAgICAoY2xpY2spPVwic3RhcnRFZGl0KClcIlxuICAgICAgKGtleWRvd24pPVwib25UcmlnZ2VyS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X192YWx1ZVwiXG4gICAgICAgIFtjbGFzcy5zZGMtZWRpdGFibGUtb3ZlcmxheV9fdmFsdWUtLWVtcHR5XT1cImlzVmFsdWVFbXB0eVwiXG4gICAgICA+e3sgZGlzcGxheVRleHQgfX08L3NwYW4+XG5cbiAgICAgIEBpZiAoaXNWYWx1ZUVtcHR5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IGVtcHR5U3RhdGVUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wZW5jaWwtYWx0IHNkYy1lZGl0YWJsZS1vdmVybGF5X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBzZGMtcG9wb3Zlci1jb250ZW50IGNsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX2VkaXRvci1wYW5lbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X19lZGl0b3JcIj5cbiAgICAgICAgQGlmIChlZGl0b3JUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdG9yVGVtcGxhdGUudGVtcGxhdGU7IGNvbnRleHQ6IGVkaXRvckNvbnRleHRcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNkYy10ZXh0Ym94XG4gICAgICAgICAgICBbdmFsdWVdPVwiZHJhZnRBc1N0cmluZ1wiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVEcmFmdCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9zZGMtdGV4dGJveD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fZm9vdGVyXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcHJpb3JpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW2F1eGlsaWFyeV09XCJ0cnVlXCJcbiAgICAgICAgICBbbGFiZWxdPVwiY2FuY2VsQnV0dG9uTGFiZWxcIlxuICAgICAgICAgIChjbGlja2VkKT1cImNhbmNlbEVkaXQoKVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIFtsYWJlbF09XCJzYXZlQnV0dG9uTGFiZWxcIlxuICAgICAgICAgIChjbGlja2VkKT1cInNhdmVFZGl0KClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2RjLXBvcG92ZXI+XG5cbiAgQGlmIChtZXNzYWdlS2V5KCkpIHtcbiAgICA8c21hbGxcbiAgICAgIFtpZF09XCJtZXNzYWdlSWRcIlxuICAgICAgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbWVzc2FnZVwiXG4gICAgICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgID5cbiAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc21hbGw+XG4gIH1cbjwvZGl2PlxuIl19
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2VkaXRhYmxlLW92ZXJsYXkvZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2VkaXRhYmxlLW92ZXJsYXkvZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQzFCLE1BQU0sNkNBQTZDLENBQUM7QUFHckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFN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QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFHRyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIEVESVRBQkxFX09WRVJMQVlfQ0FOQ0VMX0tFWSxcbiAgRURJVEFCTEVfT1ZFUkxBWV9FRElUX0tFWSxcbiAgRURJVEFCTEVfT1ZFUkxBWV9FTVBUWV9LRVksXG4gIEVESVRBQkxFX09WRVJMQVlfU0FWRV9LRVlcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvZWRpdGFibGUtb3ZlcmxheS5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IEVkaXRhYmxlT3ZlcmxheUVkaXRvckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2VkaXRhYmxlLW92ZXJsYXkudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0YWJsZU92ZXJsYXlFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2VkaXRhYmxlLW92ZXJsYXktZWRpdG9yLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1lZGl0YWJsZS1vdmVybGF5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50LCBUZXh0Ym94Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRhYmxlLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZWRpdGFibGUtb3ZlcmxheS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0YWJsZU92ZXJsYXlDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdGFibGVPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBlbXB0eVRleHQ6IFN0cmluZ0Jvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2F2ZUxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heGxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgZGlzcGxheUZvcm1hdHRlcj86ICh2YWx1ZTogdW5rbm93bikgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBzYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoRWRpdGFibGVPdmVybGF5RWRpdG9yRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgZWRpdG9yVGVtcGxhdGU/OiBFZGl0YWJsZU92ZXJsYXlFZGl0b3JEaXJlY3RpdmU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsSWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtZWRpdGFibGUtb3ZlcmxheS1sYWJlbCcpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVzc2FnZUlkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWVkaXRhYmxlLW92ZXJsYXktbWVzc2FnZScpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJpZ2dlcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWVkaXRhYmxlLW92ZXJsYXktdHJpZ2dlcicpO1xuXG4gIHByb3RlY3RlZCB2YWx1ZTogdW5rbm93biA9IG51bGw7XG4gIHByb3RlY3RlZCBkcmFmdDogdW5rbm93biA9IG51bGw7XG4gIHByb3RlY3RlZCBvcGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvckNvbnRleHQ6IEVkaXRhYmxlT3ZlcmxheUVkaXRvckNvbnRleHQgPSB7XG4gICAgJGltcGxpY2l0OiBudWxsLFxuICAgIHZhbHVlOiBudWxsLFxuICAgIGNvbW1pdDogKG5leHRWYWx1ZTogdW5rbm93bikgPT4gdGhpcy51cGRhdGVEcmFmdChuZXh0VmFsdWUpLFxuICAgIGNhbmNlbDogKCkgPT4gdGhpcy5jYW5jZWxFZGl0KClcbiAgfTtcblxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJvdGVjdGVkIGdldCBlZGl0QXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWxUZXh0ID0gdGhpcy5sYWJlbEtleSgpID8gU3RyaW5nKHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5sYWJlbEtleSgpKSkgOiAnJztcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRURJVEFCTEVfT1ZFUkxBWV9FRElUX0tFWSwgeyBsYWJlbDogbGFiZWxUZXh0IH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2F2ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnNhdmVMYWJlbCwgRURJVEFCTEVfT1ZFUkxBWV9TQVZFX0tFWSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhbmNlbEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmNhbmNlbExhYmVsLCBFRElUQUJMRV9PVkVSTEFZX0NBTkNFTF9LRVkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBlbXB0eVN0YXRlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5lbXB0eVRleHQsIEVESVRBQkxFX09WRVJMQVlfRU1QVFlfS0VZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRW1wdHkodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSh0aGlzLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRyYWZ0QXNTdHJpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kcmFmdCA9PT0gbnVsbCB8fCB0aGlzLmRyYWZ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZHJhZnQgPT09ICdzdHJpbmcnID8gdGhpcy5kcmFmdCA6IFN0cmluZyh0aGlzLmRyYWZ0KTtcbiAgfVxuXG4gIGxhYmVsS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmxhYmVsID09PSAnc3RyaW5nJyA/IHRoaXMubGFiZWwgOiAnJztcbiAgfVxuXG4gIG1lc3NhZ2VLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubWVzc2FnZSA9PT0gJ3N0cmluZycgPyB0aGlzLm1lc3NhZ2UgOiAnJztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMub3Blbikge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmRyYWZ0ID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEVkaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEcmFmdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVHJpZ2dlcktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnN0YXJ0RWRpdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNhdmVFZGl0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy5kcmFmdDtcblxuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB0aGlzLm9uQ2hhbmdlRm4obmV4dFZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5leHRWYWx1ZSk7XG4gICAgdGhpcy5zYXZlZC5lbWl0KG5leHRWYWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuY2VsRWRpdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIFJlYWN0cyB0byBzZGMtcG9wb3ZlciBjbG9zaW5nIGl0c2VsZiAob3V0c2lkZSBjbGljayAvIEVzY2FwZSkgLSB0cmVhdGVkIGFzIGEgY2FuY2VsLiAqL1xuICBwcm90ZWN0ZWQgb25Qb3BvdmVyT3BlbkNoYW5nZShuZXh0T3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChuZXh0T3BlbiB8fCAhdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYW5jZWxFZGl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRHJhZnQodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmRyYWZ0ID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3JDb250ZXh0LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5lZGl0b3JDb250ZXh0LiRpbXBsaWNpdCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kcmFmdCA9IG51bGw7XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VtcHR5KHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZvcm1hdHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheUZvcm1hdHRlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheVwiXG4gIFtjbGFzcy5zZGMtZWRpdGFibGUtb3ZlcmxheS0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3Muc2RjLWVkaXRhYmxlLW92ZXJsYXktLWludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIEBpZiAobGFiZWxLZXkoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWwtcm93XCI+XG4gICAgICA8bGFiZWwgW2lkXT1cImxhYmVsSWRcIiBbYXR0ci5mb3JdPVwidHJpZ2dlcklkXCIgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWxcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbGFiZWwtdGV4dFwiPlxuICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3JlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8c2RjLXBvcG92ZXJcbiAgICBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X19wb3BvdmVyXCJcbiAgICBbb3Blbl09XCJvcGVuXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt0b2dnbGVPblRyaWdnZXJDbGlja109XCJmYWxzZVwiXG4gICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gICAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gICAgW3RyYXBGb2N1c109XCJ0cnVlXCJcbiAgICBbZm9jdXNPbk9wZW5dPVwidHJ1ZVwiXG4gICAgW3Jlc3RvcmVGb2N1c09uQ2xvc2VdPVwidHJ1ZVwiXG4gICAgW2FyaWFMYWJlbF09XCJlZGl0QXJpYUxhYmVsXCJcbiAgICBwYW5lbENsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX3BhbmVsXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvblBvcG92ZXJPcGVuQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgc2RjLXBvcG92ZXItdHJpZ2dlclxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWRdPVwidHJpZ2dlcklkXCJcbiAgICAgIGNsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX3RyaWdnZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZWRpdEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5cIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gbWVzc2FnZUlkIDogbnVsbFwiXG4gICAgICAoY2xpY2spPVwic3RhcnRFZGl0KClcIlxuICAgICAgKGtleWRvd24pPVwib25UcmlnZ2VyS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X192YWx1ZVwiXG4gICAgICAgIFtjbGFzcy5zZGMtZWRpdGFibGUtb3ZlcmxheV9fdmFsdWUtLWVtcHR5XT1cImlzVmFsdWVFbXB0eVwiXG4gICAgICA+e3sgZGlzcGxheVRleHQgfX08L3NwYW4+XG5cbiAgICAgIEBpZiAoaXNWYWx1ZUVtcHR5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IGVtcHR5U3RhdGVUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wZW5jaWwtYWx0IHNkYy1lZGl0YWJsZS1vdmVybGF5X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBzZGMtcG9wb3Zlci1jb250ZW50IGNsYXNzPVwic2RjLWVkaXRhYmxlLW92ZXJsYXlfX2VkaXRvci1wYW5lbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1lZGl0YWJsZS1vdmVybGF5X19lZGl0b3JcIj5cbiAgICAgICAgQGlmIChlZGl0b3JUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdG9yVGVtcGxhdGUudGVtcGxhdGU7IGNvbnRleHQ6IGVkaXRvckNvbnRleHRcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNkYy10ZXh0Ym94XG4gICAgICAgICAgICBbdmFsdWVdPVwiZHJhZnRBc1N0cmluZ1wiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVEcmFmdCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9zZGMtdGV4dGJveD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fZm9vdGVyXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcHJpb3JpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW2F1eGlsaWFyeV09XCJ0cnVlXCJcbiAgICAgICAgICBbbGFiZWxdPVwiY2FuY2VsQnV0dG9uTGFiZWxcIlxuICAgICAgICAgIChjbGlja2VkKT1cImNhbmNlbEVkaXQoKVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIFtsYWJlbF09XCJzYXZlQnV0dG9uTGFiZWxcIlxuICAgICAgICAgIChjbGlja2VkKT1cInNhdmVFZGl0KClcIlxuICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2RjLXBvcG92ZXI+XG5cbiAgQGlmIChtZXNzYWdlS2V5KCkpIHtcbiAgICA8c21hbGxcbiAgICAgIFtpZF09XCJtZXNzYWdlSWRcIlxuICAgICAgY2xhc3M9XCJzZGMtZWRpdGFibGUtb3ZlcmxheV9fbWVzc2FnZVwiXG4gICAgICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgID5cbiAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc21hbGw+XG4gIH1cbjwvZGl2PlxuIl19
@@ -42,7 +42,7 @@ export class EmptyStateComponent {
42
42
  return this.shouldShowActions && this.showSecondaryAction && !!this.secondaryActionLabel;
43
43
  }
44
44
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EmptyStateComponent, isStandalone: true, selector: "sdc-empty-state", inputs: { id: "id", title: "title", variant: "variant", titleParams: "titleParams", iconClass: "iconClass", description: "description", descriptionParams: "descriptionParams", showPrimaryAction: "showPrimaryAction", showSecondaryAction: "showSecondaryAction", primaryActionLabel: "primaryActionLabel", primaryActionLabelParams: "primaryActionLabelParams", secondaryActionLabel: "secondaryActionLabel", secondaryActionLabelParams: "secondaryActionLabelParams", primaryModel: "primaryModel" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<section\n [id]=\"id\"\n class=\"sdc-empty-state\"\n [class.sdc-empty-state--inline-text]=\"isInlineTextVariant\"\n [attr.aria-label]=\"title | translate: titleParams\"\n>\n @if (shouldShowIcon) {\n <div [id]=\"id + '-icon'\" class=\"sdc-empty-state__icon\" aria-hidden=\"true\">\n <i [class]=\"iconClass\"></i>\n </div>\n }\n\n <div [id]=\"id + '-title'\" class=\"sdc-empty-state__title\">\n {{ title | translate: titleParams }}\n </div>\n\n @if (shouldShowDescription) {\n <div [id]=\"id + '-description'\" class=\"sdc-empty-state__description\">\n {{ descriptionText | translate: descriptionParams }}\n </div>\n }\n\n @if (shouldShowActions) {\n <div [id]=\"id + '-actions'\" class=\"sdc-empty-state__actions\">\n <sdc-button\n [id]=\"id + '-primary-action'\"\n [label]=\"primaryActionLabel!\"\n [model]=\"primaryModel\"\n (clicked)=\"primaryAction.emit()\"\n ></sdc-button>\n\n @if (shouldShowSecondaryAction) {\n <sdc-button\n [id]=\"id + '-secondary-action'\"\n [label]=\"secondaryActionLabel!\"\n [priority]=\"'link'\"\n (clicked)=\"secondaryAction.emit()\"\n ></sdc-button>\n }\n </div>\n }\n</section>\n", styles: [":host{display:block}.sdc-empty-state{align-items:center;box-sizing:border-box;color:var(--sdc-text-default, #111827);display:flex;flex-direction:column;gap:var(--sdc-control-gap, .5rem);padding:var(--sdc-empty-state-padding, 1.5rem);text-align:center;width:100%}.sdc-empty-state__icon{color:var(--sdc-empty-state-icon-color, #d8d8d8);font-size:var(--sdc-empty-state-icon-size, 4rem);line-height:1}.sdc-empty-state__title{font-size:1rem;font-weight:700}.sdc-empty-state--inline-text{align-items:flex-start;gap:0;padding:var(--sdc-empty-state-inline-padding, .25rem .75rem .625rem);text-align:left}.sdc-empty-state--inline-text .sdc-empty-state__title{color:var(--sdc-empty-state-inline-color, var(--p-text-muted-color, #6b7280));font-size:var(--sdc-empty-state-inline-font-size, .8125rem);font-weight:var(--sdc-empty-state-inline-font-weight, 400);line-height:var(--sdc-empty-state-inline-line-height, 1.25rem)}.sdc-empty-state__description{color:var(--sdc-text-muted, #6b7280);font-size:.9375rem;line-height:1.5;max-width:var(--sdc-empty-state-description-max-width, 28rem)}.sdc-empty-state__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--sdc-control-gap, .5rem);justify-content:center;margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EmptyStateComponent, isStandalone: true, selector: "sdc-empty-state", inputs: { id: "id", title: "title", variant: "variant", titleParams: "titleParams", iconClass: "iconClass", description: "description", descriptionParams: "descriptionParams", showPrimaryAction: "showPrimaryAction", showSecondaryAction: "showSecondaryAction", primaryActionLabel: "primaryActionLabel", primaryActionLabelParams: "primaryActionLabelParams", secondaryActionLabel: "secondaryActionLabel", secondaryActionLabelParams: "secondaryActionLabelParams", primaryModel: "primaryModel" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<section\n [id]=\"id\"\n class=\"sdc-empty-state\"\n [class.sdc-empty-state--inline-text]=\"isInlineTextVariant\"\n [attr.aria-label]=\"title | translate: titleParams\"\n>\n @if (shouldShowIcon) {\n <div [id]=\"id + '-icon'\" class=\"sdc-empty-state__icon\" aria-hidden=\"true\">\n <i [class]=\"iconClass\"></i>\n </div>\n }\n\n <div [id]=\"id + '-title'\" class=\"sdc-empty-state__title\">\n {{ title | translate: titleParams }}\n </div>\n\n @if (shouldShowDescription) {\n <div [id]=\"id + '-description'\" class=\"sdc-empty-state__description\">\n {{ descriptionText | translate: descriptionParams }}\n </div>\n }\n\n @if (shouldShowActions) {\n <div [id]=\"id + '-actions'\" class=\"sdc-empty-state__actions\">\n <sdc-button\n [id]=\"id + '-primary-action'\"\n [label]=\"primaryActionLabel!\"\n [model]=\"primaryModel\"\n (clicked)=\"primaryAction.emit()\"\n ></sdc-button>\n\n @if (shouldShowSecondaryAction) {\n <sdc-button\n [id]=\"id + '-secondary-action'\"\n [label]=\"secondaryActionLabel!\"\n [priority]=\"'link'\"\n (clicked)=\"secondaryAction.emit()\"\n ></sdc-button>\n }\n </div>\n }\n</section>\n", styles: [":host{display:block}.sdc-empty-state{align-items:center;box-sizing:border-box;color:var(--sdc-text-default, #111827);display:flex;flex-direction:column;gap:var(--sdc-control-gap, .5rem);padding:var(--sdc-empty-state-padding, 1.5rem);text-align:center;width:100%}.sdc-empty-state__icon{color:var(--sdc-empty-state-icon-color, #d8d8d8);font-size:var(--sdc-empty-state-icon-size, 4rem);line-height:1}.sdc-empty-state__title{font-size:1rem;font-weight:700}.sdc-empty-state--inline-text{align-items:flex-start;gap:0;padding:var(--sdc-empty-state-inline-padding, .25rem .75rem .625rem);text-align:left}.sdc-empty-state--inline-text .sdc-empty-state__title{color:var(--sdc-empty-state-inline-color, var(--p-text-muted-color, #6b7280));font-size:var(--sdc-empty-state-inline-font-size, .8125rem);font-weight:var(--sdc-empty-state-inline-font-weight, 400);line-height:var(--sdc-empty-state-inline-line-height, 1.25rem)}.sdc-empty-state__description{color:var(--sdc-text-muted, #6b7280);font-size:.9375rem;line-height:1.5;max-width:var(--sdc-empty-state-description-max-width, 28rem)}.sdc-empty-state__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--sdc-control-gap, .5rem);justify-content:center;margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "rounded", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, decorators: [{
48
48
  type: Component,