@seniorsistemas/data-seniorx-core 2.3.0 → 3.0.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 (262) hide show
  1. package/core/constants/autocomplete.const.d.ts +4 -0
  2. package/core/constants/context-selector.const.d.ts +1 -0
  3. package/core/constants/gantt.const.d.ts +7 -0
  4. package/core/constants/hyperlink.const.d.ts +1 -0
  5. package/core/constants/inline-edit.const.d.ts +4 -0
  6. package/core/constants/kanban.const.d.ts +2 -0
  7. package/core/constants/pin-code-field.const.d.ts +5 -0
  8. package/core/constants/rating-scale.const.d.ts +1 -0
  9. package/core/constants/spotlight.const.d.ts +8 -0
  10. package/core/constants/star-rating.const.d.ts +4 -0
  11. package/core/constants/stepper.const.d.ts +1 -0
  12. package/core/constants/tiered-menu.const.d.ts +3 -0
  13. package/core/types/autocomplete.type.d.ts +9 -0
  14. package/core/types/chat.type.d.ts +12 -0
  15. package/core/types/checkbox-list.type.d.ts +12 -0
  16. package/core/types/gantt.type.d.ts +22 -0
  17. package/core/types/grid-menu.type.d.ts +13 -0
  18. package/core/types/hyperlink.type.d.ts +1 -0
  19. package/core/types/image-cropper.type.d.ts +20 -0
  20. package/core/types/inline-edit.type.d.ts +26 -0
  21. package/core/types/kanban.type.d.ts +36 -0
  22. package/core/types/panel.type.d.ts +16 -0
  23. package/core/types/profile-picture-picker.type.d.ts +9 -0
  24. package/core/types/rating-scale.type.d.ts +5 -0
  25. package/core/types/select-button.type.d.ts +1 -0
  26. package/core/types/spotlight.type.d.ts +34 -0
  27. package/core/types/star-rating.type.d.ts +1 -0
  28. package/core/types/stepper.type.d.ts +20 -0
  29. package/core/types/table-column.type.d.ts +3 -1
  30. package/core/types/table-options.type.d.ts +8 -2
  31. package/core/types/table.type.d.ts +1 -1
  32. package/core/types/tiered-menu.type.d.ts +16 -0
  33. package/core/types/tree.type.d.ts +25 -0
  34. package/core/types/workspace-switch.type.d.ts +6 -0
  35. package/core/utils/body-scroll.util.d.ts +2 -0
  36. package/core/utils/roving-focus.util.d.ts +2 -0
  37. package/core/utils/selection.util.d.ts +3 -0
  38. package/core/utils/tree.util.d.ts +4 -0
  39. package/esm2022/core/constants/autocomplete.const.mjs +5 -0
  40. package/esm2022/core/constants/context-selector.const.mjs +2 -0
  41. package/esm2022/core/constants/gantt.const.mjs +7 -0
  42. package/esm2022/core/constants/hyperlink.const.mjs +2 -1
  43. package/esm2022/core/constants/inline-edit.const.mjs +5 -0
  44. package/esm2022/core/constants/kanban.const.mjs +3 -0
  45. package/esm2022/core/constants/pin-code-field.const.mjs +6 -0
  46. package/esm2022/core/constants/rating-scale.const.mjs +2 -0
  47. package/esm2022/core/constants/spotlight.const.mjs +9 -0
  48. package/esm2022/core/constants/star-rating.const.mjs +5 -0
  49. package/esm2022/core/constants/stepper.const.mjs +2 -0
  50. package/esm2022/core/constants/table.const.mjs +2 -2
  51. package/esm2022/core/constants/tiered-menu.const.mjs +4 -0
  52. package/esm2022/core/types/autocomplete.type.mjs +2 -0
  53. package/esm2022/core/types/chat.type.mjs +2 -0
  54. package/esm2022/core/types/checkbox-list.type.mjs +2 -0
  55. package/esm2022/core/types/gantt.type.mjs +2 -0
  56. package/esm2022/core/types/grid-menu.type.mjs +2 -0
  57. package/esm2022/core/types/hyperlink.type.mjs +1 -1
  58. package/esm2022/core/types/image-cropper.type.mjs +2 -0
  59. package/esm2022/core/types/inline-edit.type.mjs +2 -0
  60. package/esm2022/core/types/kanban.type.mjs +2 -0
  61. package/esm2022/core/types/panel.type.mjs +9 -0
  62. package/esm2022/core/types/profile-picture-picker.type.mjs +2 -0
  63. package/esm2022/core/types/rating-scale.type.mjs +2 -0
  64. package/esm2022/core/types/select-button.type.mjs +1 -1
  65. package/esm2022/core/types/spotlight.type.mjs +2 -0
  66. package/esm2022/core/types/star-rating.type.mjs +2 -0
  67. package/esm2022/core/types/stepper.type.mjs +7 -0
  68. package/esm2022/core/types/table-column.type.mjs +1 -1
  69. package/esm2022/core/types/table-options.type.mjs +1 -1
  70. package/esm2022/core/types/table.type.mjs +1 -1
  71. package/esm2022/core/types/tiered-menu.type.mjs +2 -0
  72. package/esm2022/core/types/tree.type.mjs +2 -0
  73. package/esm2022/core/types/workspace-switch.type.mjs +2 -0
  74. package/esm2022/core/utils/body-scroll.util.mjs +19 -0
  75. package/esm2022/core/utils/combobox.util.mjs +3 -2
  76. package/esm2022/core/utils/roving-focus.util.mjs +20 -0
  77. package/esm2022/core/utils/selection.util.mjs +13 -0
  78. package/esm2022/core/utils/string.util.mjs +8 -3
  79. package/esm2022/core/utils/tree.util.mjs +23 -0
  80. package/esm2022/features/accordion/accordion.component.mjs +2 -2
  81. package/esm2022/features/accordion/{accordion-item.component.mjs → components/accordion-item/accordion-item.component.mjs} +7 -7
  82. package/esm2022/features/autocomplete/autocomplete.component.mjs +501 -0
  83. package/esm2022/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +30 -0
  84. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +2 -2
  85. package/esm2022/features/card-list/card/card.component.mjs +63 -99
  86. package/esm2022/features/chat/chat.component.mjs +126 -0
  87. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +125 -0
  88. package/esm2022/features/combobox/combobox.component.mjs +20 -8
  89. package/esm2022/features/context-selector/context-selector.component.mjs +198 -0
  90. package/esm2022/features/filters/filters.component.mjs +1 -1
  91. package/esm2022/features/gantt/components/gantt-side-table/gantt-side-table.component.mjs +17 -0
  92. package/esm2022/features/gantt/gantt-date.utils.mjs +97 -0
  93. package/esm2022/features/gantt/gantt.component.mjs +89 -0
  94. package/esm2022/features/gantt/gantt.engine.mjs +662 -0
  95. package/esm2022/features/grid-menu/grid-menu.component.mjs +104 -0
  96. package/esm2022/features/hyperlink/hyperlink.component.mjs +7 -4
  97. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  98. package/esm2022/features/image-cropper/image-cropper.component.mjs +218 -0
  99. package/esm2022/features/image-cropper/services/image-cropper.service.mjs +50 -0
  100. package/esm2022/features/infinite-scroll/infinite-scroll.directive.mjs +89 -0
  101. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  102. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +38 -0
  103. package/esm2022/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +29 -0
  104. package/esm2022/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.mjs +29 -0
  105. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +131 -0
  106. package/esm2022/features/inline-edit/fields/inline-edit-field.mjs +17 -0
  107. package/esm2022/features/inline-edit/fields/inline-edit-number-field.mjs +15 -0
  108. package/esm2022/features/inline-edit/fields/inline-edit-text-field.mjs +11 -0
  109. package/esm2022/features/inline-edit/fields/inline-edit-textarea-field.mjs +15 -0
  110. package/esm2022/features/inline-edit/inline-edit.component.mjs +27 -0
  111. package/esm2022/features/interactive-content/interactive-content.directive.mjs +140 -0
  112. package/esm2022/features/kanban/components/kanban-column/kanban-column.component.mjs +88 -0
  113. package/esm2022/features/kanban/components/kanban-item/kanban-item.component.mjs +72 -0
  114. package/esm2022/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +19 -0
  115. package/esm2022/features/kanban/directives/kanban-template.directive.mjs +22 -0
  116. package/esm2022/features/kanban/kanban.component.mjs +198 -0
  117. package/esm2022/features/kanban/services/kanban-event.service.mjs +27 -0
  118. package/esm2022/features/loading-state/loading-state.component.mjs +3 -62
  119. package/esm2022/features/mouse-events/directives/double-click.directive.mjs +34 -0
  120. package/esm2022/features/mouse-events/directives/long-press.directive.mjs +61 -0
  121. package/esm2022/features/paginator/paginator.component.mjs +8 -3
  122. package/esm2022/features/panel/panel.component.mjs +43 -11
  123. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +234 -0
  124. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +330 -0
  125. package/esm2022/features/rating-scale/rating-scale.component.mjs +86 -0
  126. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
  127. package/esm2022/features/scaffold/scaffold.component.mjs +4 -6
  128. package/esm2022/features/select-button/select-button.component.mjs +7 -4
  129. package/esm2022/features/speech-recognition/services/speech-recognition.service.mjs +148 -0
  130. package/esm2022/features/speech-recognition/services/text-to-speech.service.mjs +88 -0
  131. package/esm2022/features/speech-recognition/speech-recognition.component.mjs +243 -0
  132. package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +521 -0
  133. package/esm2022/features/spotlight/directives/spotlight-step.directive.mjs +38 -0
  134. package/esm2022/features/spotlight/services/spotlight-tour.service.mjs +179 -0
  135. package/esm2022/features/spotlight/spotlight.component.mjs +160 -0
  136. package/esm2022/features/star-rating/star-rating.component.mjs +95 -0
  137. package/esm2022/features/stepper/stepper.component.mjs +86 -0
  138. package/esm2022/features/switch/switch.component.mjs +12 -8
  139. package/esm2022/features/tab/{tab-item.component.mjs → components/tab-item/tab-item.component.mjs} +1 -1
  140. package/esm2022/features/tab/tab.component.mjs +4 -4
  141. package/esm2022/features/table/components/table-cell-content.component.mjs +14 -5
  142. package/esm2022/features/table/table.component.mjs +220 -29
  143. package/esm2022/features/table/utils/table-data.util.mjs +71 -8
  144. package/esm2022/features/table/utils/table-layout.util.mjs +21 -1
  145. package/esm2022/features/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +367 -0
  146. package/esm2022/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +11 -0
  147. package/esm2022/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +97 -0
  148. package/esm2022/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +181 -0
  149. package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +246 -0
  150. package/esm2022/features/tiered-menu/services/tiered-menu.event.service.mjs +16 -0
  151. package/esm2022/features/tiered-menu/services/tiered-menu.global.service.mjs +12 -0
  152. package/esm2022/features/tiered-menu/services/tiered-menu.service.mjs +49 -0
  153. package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +169 -0
  154. package/esm2022/features/tree/tree.component.mjs +211 -0
  155. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.mjs +41 -0
  156. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.mjs +38 -0
  157. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.mjs +29 -0
  158. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.mjs +29 -0
  159. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.mjs +35 -0
  160. package/esm2022/features/visual-sql-editor/services/visual-sql-editor-flow.service.mjs +106 -0
  161. package/esm2022/features/visual-sql-editor/services/visual-sql-editor-state.service.mjs +230 -0
  162. package/esm2022/features/visual-sql-editor/types/visual-sql-editor.types.mjs +2 -0
  163. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.mjs +72 -0
  164. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sql.util.mjs +281 -0
  165. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-text.util.mjs +37 -0
  166. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor.constants.mjs +89 -0
  167. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +172 -630
  168. package/esm2022/locales/en.json +351 -3
  169. package/esm2022/locales/es-CO.json +351 -3
  170. package/esm2022/locales/pt.json +351 -3
  171. package/esm2022/providers/features.provider.mjs +40 -4
  172. package/esm2022/public-api.mjs +56 -3
  173. package/features/accordion/accordion.component.d.ts +1 -1
  174. package/features/accordion/{accordion-item.component.d.ts → components/accordion-item/accordion-item.component.d.ts} +1 -1
  175. package/features/autocomplete/autocomplete.component.d.ts +102 -0
  176. package/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +11 -0
  177. package/features/card-list/card/card.component.d.ts +14 -34
  178. package/features/chat/chat.component.d.ts +31 -0
  179. package/features/checkbox-list/checkbox-list.component.d.ts +26 -0
  180. package/features/combobox/combobox.component.d.ts +2 -1
  181. package/features/context-selector/context-selector.component.d.ts +37 -0
  182. package/features/gantt/components/gantt-side-table/gantt-side-table.component.d.ts +8 -0
  183. package/features/gantt/gantt-date.utils.d.ts +36 -0
  184. package/features/gantt/gantt.component.d.ts +24 -0
  185. package/features/gantt/gantt.engine.d.ts +52 -0
  186. package/features/grid-menu/grid-menu.component.d.ts +29 -0
  187. package/features/hyperlink/hyperlink.component.d.ts +2 -1
  188. package/features/image-cropper/image-cropper.component.d.ts +43 -0
  189. package/features/image-cropper/services/image-cropper.service.d.ts +13 -0
  190. package/features/infinite-scroll/infinite-scroll.directive.d.ts +25 -0
  191. package/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +13 -0
  192. package/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +13 -0
  193. package/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.d.ts +13 -0
  194. package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +37 -0
  195. package/features/inline-edit/fields/inline-edit-field.d.ts +12 -0
  196. package/features/inline-edit/fields/inline-edit-number-field.d.ts +9 -0
  197. package/features/inline-edit/fields/inline-edit-text-field.d.ts +7 -0
  198. package/features/inline-edit/fields/inline-edit-textarea-field.d.ts +9 -0
  199. package/features/inline-edit/inline-edit.component.d.ts +13 -0
  200. package/features/interactive-content/interactive-content.directive.d.ts +31 -0
  201. package/features/kanban/components/kanban-column/kanban-column.component.d.ts +22 -0
  202. package/features/kanban/components/kanban-item/kanban-item.component.d.ts +23 -0
  203. package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +8 -0
  204. package/features/kanban/directives/kanban-template.directive.d.ts +10 -0
  205. package/features/kanban/kanban.component.d.ts +32 -0
  206. package/features/kanban/services/kanban-event.service.d.ts +15 -0
  207. package/features/loading-state/loading-state.component.d.ts +0 -2
  208. package/features/mouse-events/directives/double-click.directive.d.ts +11 -0
  209. package/features/mouse-events/directives/long-press.directive.d.ts +14 -0
  210. package/features/panel/panel.component.d.ts +12 -3
  211. package/features/pin-code-field/pin-code-field.component.d.ts +44 -0
  212. package/features/profile-picture-picker/profile-picture-picker.component.d.ts +77 -0
  213. package/features/rating-scale/rating-scale.component.d.ts +24 -0
  214. package/features/select-button/select-button.component.d.ts +2 -1
  215. package/features/speech-recognition/services/speech-recognition.service.d.ts +29 -0
  216. package/features/speech-recognition/services/text-to-speech.service.d.ts +24 -0
  217. package/features/speech-recognition/speech-recognition.component.d.ts +50 -0
  218. package/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.d.ts +59 -0
  219. package/features/spotlight/directives/spotlight-step.directive.d.ts +13 -0
  220. package/features/spotlight/services/spotlight-tour.service.d.ts +46 -0
  221. package/features/spotlight/spotlight.component.d.ts +59 -0
  222. package/features/star-rating/star-rating.component.d.ts +26 -0
  223. package/features/stepper/stepper.component.d.ts +23 -0
  224. package/features/switch/switch.component.d.ts +2 -1
  225. package/features/tab/tab.component.d.ts +1 -1
  226. package/features/table/components/table-cell-content.component.d.ts +4 -3
  227. package/features/table/table.component.d.ts +40 -5
  228. package/features/table/utils/table-data.util.d.ts +1 -0
  229. package/features/table/utils/table-layout.util.d.ts +1 -0
  230. package/features/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +49 -0
  231. package/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +5 -0
  232. package/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +19 -0
  233. package/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +26 -0
  234. package/features/tiered-menu/directives/tiered-menu.directive.d.ts +44 -0
  235. package/features/tiered-menu/services/tiered-menu.event.service.d.ts +13 -0
  236. package/features/tiered-menu/services/tiered-menu.global.service.d.ts +7 -0
  237. package/features/tiered-menu/services/tiered-menu.service.d.ts +14 -0
  238. package/features/tree/components/tree-node-item/tree-node-item.component.d.ts +37 -0
  239. package/features/tree/tree.component.d.ts +37 -0
  240. package/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.d.ts +18 -0
  241. package/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.d.ts +17 -0
  242. package/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.d.ts +13 -0
  243. package/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.d.ts +13 -0
  244. package/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.d.ts +15 -0
  245. package/features/visual-sql-editor/services/visual-sql-editor-flow.service.d.ts +26 -0
  246. package/features/visual-sql-editor/services/visual-sql-editor-state.service.d.ts +72 -0
  247. package/features/visual-sql-editor/types/visual-sql-editor.types.d.ts +182 -0
  248. package/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.d.ts +14 -0
  249. package/features/visual-sql-editor/utils/visual-sql-editor-sql.util.d.ts +81 -0
  250. package/features/visual-sql-editor/utils/visual-sql-editor-text.util.d.ts +15 -0
  251. package/features/visual-sql-editor/utils/visual-sql-editor.constants.d.ts +36 -0
  252. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +37 -199
  253. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14883 -6353
  254. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  255. package/package.json +8 -8
  256. package/public-api.d.ts +72 -2
  257. package/src/locales/en.json +353 -15
  258. package/src/locales/es-CO.json +352 -14
  259. package/src/locales/pt.json +352 -14
  260. package/styles/sdc-global-variables.scss +1 -1
  261. package/styles.css +1 -1
  262. /package/features/tab/{tab-item.component.d.ts → components/tab-item/tab-item.component.d.ts} +0 -0
@@ -134,7 +134,7 @@ export class RowCardComponent {
134
134
  return resolveTranslatableText(this.translate, value);
135
135
  }
136
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip", statusTooltip: "statusTooltip" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.1;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.1}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: InfoSignComponent, selector: "sdc-info-sign", inputs: ["label", "labelParams", "tooltip", "tooltipParams", "iconClass", "iconAriaLabel", "tooltipPosition", "tooltipEvent", "inline"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate", infoTooltip: "infoTooltip", statusTooltip: "statusTooltip" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.2;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.2}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-icon-cursor: default;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: InfoSignComponent, selector: "sdc-info-sign", inputs: ["label", "labelParams", "tooltip", "tooltipParams", "iconClass", "iconAriaLabel", "tooltipPosition", "tooltipEvent", "inline"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
138
138
  }
139
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, decorators: [{
140
140
  type: Component,
@@ -144,7 +144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
144
144
  InfoSignComponent,
145
145
  NgClass,
146
146
  NgTemplateOutlet
147
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.1;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.1}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.15}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"] }]
147
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n (keydown)=\"onKeyboardActivate($event)\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card transition-all cursor-pointer w-full\"\n [attr.tabindex]=\"0\"\n [attr.aria-label]=\"getCardAriaLabel()\"\n [attr.aria-expanded]=\"options?.expandable ? expanded : null\"\n>\n <div class=\"row-card-content\">\n <div class=\"row-card-icon\">\n @if (options?.expandable) {\n <i [class.fa-minus]=\"expanded\" [class.fa-plus]=\"!expanded\" class=\"fas\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-rocket p-2 ml-2 text-xl\" aria-hidden=\"true\"></i>\n }\n </div>\n\n <div class=\"row-card-main\">\n <div class=\"sdc-title-row font-semibold\" [ngClass]=\"options?.leftTitleColor\">\n @if (infoTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"infoTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span\n class=\"sdc-row-card-title text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n >{{ leftTitleText }}</span>\n }\n </div>\n\n @if (leftSubtitleText) {\n <div class=\"row-card-subtitle text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ leftSubtitleText }}\n </div>\n }\n\n @if (tagText) {\n <div class=\"row-card-tag-wrap\">\n <span class=\"sdc-tag\">{{ tagText }}</span>\n </div>\n }\n </div>\n\n @if (hasStatusColumn) {\n <div class=\"row-card-status\">\n @if (statusTitleText) {\n @if (statusTooltip) {\n <sdc-info-sign\n class=\"row-card-info-sign\"\n [tooltip]=\"statusTooltip\"\n tooltipPosition=\"right\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n </sdc-info-sign>\n } @else {\n <span class=\"row-card-status-title\" [ngClass]=\"options?.rightTitleColor\">{{ statusTitleText }}</span>\n }\n }\n\n @if (data.badge) {\n <div class=\"row-card-status-badge\">\n <sdc-badge [text]=\"data.badge.label\" [color]=\"badgeColor\"></sdc-badge>\n </div>\n }\n </div>\n }\n\n <div class=\"row-card-actions\">\n @if (rightSubtitleText) {\n <span class=\"row-card-right-subtitle\" [ngClass]=\"options?.rightSubtitleColor\">\n {{ rightSubtitleText }}\n </span>\n }\n <div class=\"row-card-button-wrap\">\n <sdc-button\n (click)=\"onCardButtonClick($event)\"\n (keydown)=\"$event.stopPropagation()\"\n [priority]=\"options?.buttonPriority!\"\n [disabled]=\"data.disabled!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : buttonLabelText\"\n [attr.aria-label]=\"getButtonAriaLabel()\"\n ></sdc-button>\n </div>\n </div>\n </div>\n\n @if (options?.expandable) {\n <div\n #contentWrapper\n class=\"collapse-wrapper\"\n [class.show]=\"expanded\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <div class=\"collapse-inner\">\n @if (detailTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n } @else {\n <div class=\"text-sm text-700\">{{ wrapperDetailText }}</div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{--sdc-row-card-padding: .5rem}.row-card{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;border-radius:var(--sdc-row-card-radius, 10px);border:1px solid var(--sdc-row-card-border-color, var(--p-content-border-color, var(--surface-border, #e5e7eb)));background:var(--sdc-row-card-bg, var(--p-surface-0, #ffffff));transition:var(--sdc-row-card-transition, background-color .15s ease, border-color .15s ease);padding:var(--sdc-row-card-padding)!important;min-height:var(--sdc-row-card-height, 6.5rem)}.row-card:hover{background:var(--sdc-row-card-hover-bg, var(--p-surface-hover, var(--surface-hover, rgba(0, 0, 0, .03))))}.row-card.border-left{border-left-width:4px;border-left-style:solid;border-left-color:var(--sdc-row-card-border-accent, var(--p-primary-color, var(--primary-color, #3b82f6)))}.row-card.border-left:hover{border-left-color:var(--sdc-row-card-border-accent-hover, var(--p-primary-400, var(--p-primary-color, var(--primary-color, #3b82f6))))}.row-card-content{display:grid;grid-template-columns:auto clamp(15rem,24vw,17.5rem) clamp(8rem,10vw,9.5rem) minmax(0,1fr) auto;align-items:start;column-gap:1rem;width:100%}.row-card-main{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem}.row-card-icon{grid-column:1;display:flex;align-items:center;justify-content:center;align-self:center;color:var(--sdc-row-card-icon-color, var(--text-color, #1f2937))}.row-card-status{grid-column:3;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:9.5rem;padding:.1rem 1.25rem 0;align-self:start}.row-card-status:before,.row-card-status:after{content:\"\";position:absolute;top:50%;width:1px;height:var(--sdc-row-card-status-divider-height, 2.2rem);background:var(--sdc-row-card-status-divider, #d9e2ef);transform:translateY(-50%)}.row-card-status:before{left:0}.row-card-status:after{right:0}.row-card-status-title{font-size:var(--sdc-row-card-status-title-size, .76rem);font-weight:600;line-height:1.2;white-space:nowrap}.row-card-status-tooltip-wrap{justify-content:flex-start}.row-card-status-subtitle{font-size:var(--sdc-row-card-status-subtitle-size, .76rem);line-height:1.2;white-space:nowrap}.row-card-actions{grid-column:5;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;align-self:center;gap:.25rem;padding-right:var(--sdc-row-card-padding, .5rem)}.row-card-right-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2;white-space:nowrap;text-align:right}.row-card-button-wrap{display:flex;justify-content:flex-end}.sdc-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sdc-row-card-tag-radius, 4px);padding:var(--sdc-row-card-tag-padding, .1rem .45rem);border:1px solid var(--sdc-row-card-tag-border, #78b8e7);background:var(--sdc-row-card-tag-bg, #eef8ff);color:var(--sdc-row-card-tag-color, #21506b);font-size:var(--sdc-row-card-tag-font-size, .78rem);font-weight:500;line-height:1.1rem;max-width:100%}.bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:var(--sdc-row-card-collapse-radius, 0 0 10px 10px);height:0;overflow:hidden;transition:var(--sdc-row-card-collapse-transition, height .35s ease)}.collapse-inner{padding:var(--sdc-row-card-detail-padding, 2rem 1rem 1rem);opacity:0;transform:translateY(-.5rem);transition:var(--sdc-row-card-detail-transition, opacity .3s ease, transform .3s ease)}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}.sdc-title-row{min-width:0;overflow:visible;font-size:var(--sdc-row-card-title-size, .76rem);line-height:1.2}.row-card-subtitle{font-size:var(--sdc-row-card-subtitle-size, .8rem);line-height:1.2}.row-card-tag-wrap{display:flex;align-items:center;min-width:0}.row-card-info-sign{--sdc-info-sign-icon-size: .65rem;--sdc-info-sign-icon-color: inherit;--sdc-info-sign-icon-cursor: default;--sdc-info-sign-button-height: auto;--sdc-info-sign-button-width: auto}.sdc-title-row .row-card-info-sign{--sdc-info-sign-icon-size: .72rem}.sdc-row-card-title{font-size:inherit;min-width:0;padding:0;margin:0}@media (max-width: 767px){.row-card-content{grid-template-columns:auto minmax(0,1fr);row-gap:.75rem}.row-card-icon{grid-column:1}.row-card-main,.row-card-status{grid-column:2}.row-card-status{min-width:0;padding:0}.row-card-status:before,.row-card-status:after{display:none}.row-card-actions{grid-column:1/-1;justify-content:stretch}.row-card-button-wrap{justify-content:flex-end}}\n"] }]
148
148
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { data: [{
149
149
  type: Input
150
150
  }], options: [{
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
165
165
  type: ViewChild,
166
166
  args: ['contentWrapper']
167
167
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUtoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBaUJ4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRVI7SUFDQTtJQUZuQixZQUNtQixHQUFzQixFQUN0QixTQUEyQjtRQUQzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJ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RUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXFCO1FBQzFDLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO3dHQWhLVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw4YkN6QzdCLDQySEF1SEEsMDhJRHpGSSxjQUFjLDBRQUNkLGVBQWUsOFNBQ2YsaUJBQWlCLG1NQUNqQixPQUFPLG9GQUNQLGdCQUFnQjs7NEZBT1AsZ0JBQWdCO2tCQWY1QixTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLFdBQ2Y7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsT0FBTzt3QkFDUCxnQkFBZ0I7cUJBQ2pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3FIQVVoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBCYWRnZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9iYWRnZS50eXBlJztcbmltcG9ydCB0eXBlIHsgT3B0aW9uc1Jvd0NhcmQsIFJvd0NhcmQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3Jvdy1jYXJkLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mb1NpZ25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZvLXNpZ24vaW5mby1zaWduLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1yb3ctY2FyZCcsXG4gIGltcG9ydHM6IFtcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW5mb1NpZ25Db21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YSE6IFJvd0NhcmQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zUm93Q2FyZDtcbiAgQElucHV0KCkgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN0YXR1c1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG4gIEBPdXRwdXQoKSBjYXJkQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFdyYXBwZXInKSBjb250ZW50V3JhcHBlcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG5cbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxuXG4gIGdldCBsZWZ0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3RpdGxlKTtcbiAgfVxuXG4gIGdldCBsZWZ0U3VidGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCByaWdodFRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ucmlnaHRfdGl0bGUpO1xuICB9XG5cbiAgZ2V0IHRhZ1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnRhZyk7XG4gIH1cblxuICBnZXQgcmlnaHRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnJpZ2h0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCBzdGF0dXNUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yaWdodFRpdGxlVGV4dCB8fCB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMub3B0aW9ucz8uYmFkZ2VUaXRsZSk7XG4gIH1cblxuICBnZXQgaGFzU3RhdHVzQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnN0YXR1c1RpdGxlVGV4dCB8fCB0aGlzLmRhdGE/LmJhZGdlKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyRGV0YWlsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ud3JhcHBlckRldGFpbCk7XG4gIH1cblxuICBnZXQgYnV0dG9uTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsKTtcbiAgfVxuXG4gIGdldCBiYWRnZUNvbG9yKCk6IEJhZGdlQ29sb3Ige1xuICAgIHJldHVybiB0aGlzLmRhdGE/LmJhZGdlPy5jb2xvciA/PyAnYmx1ZSc7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIGdldCBzdGF0dXNUb29sdGlwVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuc3RhdHVzVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXNFeHBhbmRlZCddIHx8IGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZUhlaWdodCgpKTtcbiAgICB9XG4gIH1cblxuICBvbkNhcmRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBvbkV4cGFuZENhcmRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJ3NkYy1idXR0b24nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkNhcmRCdXR0b25DbGljayhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbj8uKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jYXJkQnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZUhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsLnN0eWxlLmhlaWdodCA9IHRoaXMuZXhwYW5kZWQgPyBgJHtlbC5zY3JvbGxIZWlnaHR9cHhgIDogJzBweCc7XG4gIH1cblxuICBnZXRDYXJkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5sZWZ0X3RpdGxlKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfc3VidGl0bGUpLFxuICAgICAgdGhpcy5zdGF0dXNUaXRsZVRleHQsXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5iYWRnZT8ubGFiZWwpLFxuICAgICAgdGhpcy5yaWdodFN1YnRpdGxlVGV4dFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkXG4gICAgICAgICAgICA/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2V4cGFuZGVkJ1xuICAgICAgICAgICAgOiAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dfY2FyZF9jb2xsYXBzZWQnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXRCdXR0b25BcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3Rpb24gPSByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dChcbiAgICAgIHRoaXMudHJhbnNsYXRlLFxuICAgICAgdGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsLFxuICAgICAgJ3BsYXRmb3JtLmRhdGFjb3JlLmxpc3QuZGVmYXVsdF9hY3Rpb25fbGFiZWwnXG4gICAgKTtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMubGVmdFRpdGxlVGV4dDtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2J1dHRvbl9hY3Rpb24nLCB7IGFjdGlvbiwgdGl0bGUgfSk7XG4gIH1cblxuICBvbktleWJvYXJkQWN0aXZhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgICB0aGlzLm9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DYXJkQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVsKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBvbkV4cGFuZENhcmRDbGljaygkZXZlbnQpIDogb25DYXJkQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5Ym9hcmRBY3RpdmF0ZSgkZXZlbnQpXCJcbiAgW2NsYXNzLmJvcmRlci1sZWZ0XT1cImRhdGEuaGFzQm9yZGVyXCJcbiAgY2xhc3M9XCJyb3ctY2FyZCB0cmFuc2l0aW9uLWFsbCBjdXJzb3ItcG9pbnRlciB3LWZ1bGxcIlxuICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRDYXJkQXJpYUxhYmVsKClcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBleHBhbmRlZCA6IG51bGxcIlxuPlxuICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1pY29uXCI+XG4gICAgICBAaWYgKG9wdGlvbnM/LmV4cGFuZGFibGUpIHtcbiAgICAgIDxpIFtjbGFzcy5mYS1taW51c109XCJleHBhbmRlZFwiIFtjbGFzcy5mYS1wbHVzXT1cIiFleHBhbmRlZFwiIGNsYXNzPVwiZmFzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1yb2NrZXQgcC0yIG1sLTIgdGV4dC14bFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1tYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXRpdGxlLXJvdyBmb250LXNlbWlib2xkXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ubGVmdFRpdGxlQ29sb3JcIj5cbiAgICAgICAgQGlmIChpbmZvVG9vbHRpcCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnblxuICAgICAgICAgIGNsYXNzPVwicm93LWNhcmQtaW5mby1zaWduXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGUgdGV4dC1vdmVyZmxvdy1lbGxpcHNpcyB3aGl0ZS1zcGFjZS1ub3dyYXAgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNkYy1yb3ctY2FyZC10aXRsZSB0ZXh0LW92ZXJmbG93LWVsbGlwc2lzIHdoaXRlLXNwYWNlLW5vd3JhcCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobGVmdFN1YnRpdGxlVGV4dCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLXN1YnRpdGxlIHRleHQtc21cIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyBsZWZ0U3VidGl0bGVUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh0YWdUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtdGFnLXdyYXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFnXCI+e3sgdGFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNTdGF0dXNDb2x1bW4pIHtcbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzXCI+XG4gICAgICBAaWYgKHN0YXR1c1RpdGxlVGV4dCkge1xuICAgICAgICBAaWYgKHN0YXR1c1Rvb2x0aXApIHtcbiAgICAgICAgPHNkYy1pbmZvLXNpZ25cbiAgICAgICAgICBjbGFzcz1cInJvdy1jYXJkLWluZm8tc2lnblwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwic3RhdHVzVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXN0YXR1cy10aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0VGl0bGVDb2xvclwiPnt7IHN0YXR1c1RpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXMtdGl0bGVcIiBbbmdDbGFzc109XCJvcHRpb25zPy5yaWdodFRpdGxlQ29sb3JcIj57eyBzdGF0dXNUaXRsZVRleHQgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmIChkYXRhLmJhZGdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzLWJhZGdlXCI+XG4gICAgICAgIDxzZGMtYmFkZ2UgW3RleHRdPVwiZGF0YS5iYWRnZS5sYWJlbFwiIFtjb2xvcl09XCJiYWRnZUNvbG9yXCI+PC9zZGMtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtYWN0aW9uc1wiPlxuICAgICAgQGlmIChyaWdodFN1YnRpdGxlVGV4dCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1yaWdodC1zdWJ0aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyByaWdodFN1YnRpdGxlVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWJ1dHRvbi13cmFwXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWQhXCJcbiAgICAgICAgICBbaWNvbl09XCJvcHRpb25zPy5idXR0b25JY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNNb2JpbGUgPyAnJyA6IGJ1dHRvbkxhYmVsVGV4dFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRCdXR0b25BcmlhTGFiZWwoKVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgQGlmIChvcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gIDxkaXZcbiAgICAjY29udGVudFdyYXBwZXJcbiAgICBjbGFzcz1cImNvbGxhcHNlLXdyYXBwZXJcIlxuICAgIFtjbGFzcy5zaG93XT1cImV4cGFuZGVkXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWlubmVyXCI+XG4gICAgICBAaWYgKGRldGFpbFRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRhdGEsIGRhdGE6IGRhdGEgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdGV4dC03MDBcIj57eyB3cmFwcGVyRGV0YWlsVGV4dCB9fTwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUtoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBaUJ4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRVI7SUFDQTtJQUZuQixZQUNtQixHQUFzQixFQUN0QixTQUEyQjtRQUQzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJ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RUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXFCO1FBQzFDLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO3dHQWhLVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw4YkN6QzdCLDQySEF1SEEsNitJRHpGSSxjQUFjLDBRQUNkLGVBQWUsOFNBQ2YsaUJBQWlCLG1NQUNqQixPQUFPLG9GQUNQLGdCQUFnQjs7NEZBT1AsZ0JBQWdCO2tCQWY1QixTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLFdBQ2Y7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsT0FBTzt3QkFDUCxnQkFBZ0I7cUJBQ2pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3FIQVVoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBCYWRnZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9iYWRnZS50eXBlJztcbmltcG9ydCB0eXBlIHsgT3B0aW9uc1Jvd0NhcmQsIFJvd0NhcmQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzL3Jvdy1jYXJkLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mb1NpZ25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZvLXNpZ24vaW5mby1zaWduLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1yb3ctY2FyZCcsXG4gIGltcG9ydHM6IFtcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW5mb1NpZ25Db21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yb3ctY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YSE6IFJvd0NhcmQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zUm93Q2FyZDtcbiAgQElucHV0KCkgaXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN0YXR1c1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG4gIEBPdXRwdXQoKSBjYXJkQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NhcmQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFdyYXBwZXInKSBjb250ZW50V3JhcHBlcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG5cbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxuXG4gIGdldCBsZWZ0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3RpdGxlKTtcbiAgfVxuXG4gIGdldCBsZWZ0U3VidGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5sZWZ0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCByaWdodFRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ucmlnaHRfdGl0bGUpO1xuICB9XG5cbiAgZ2V0IHRhZ1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnRhZyk7XG4gIH1cblxuICBnZXQgcmlnaHRTdWJ0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVMYWJlbCh0aGlzLmRhdGE/LnJpZ2h0X3N1YnRpdGxlKTtcbiAgfVxuXG4gIGdldCBzdGF0dXNUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yaWdodFRpdGxlVGV4dCB8fCB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMub3B0aW9ucz8uYmFkZ2VUaXRsZSk7XG4gIH1cblxuICBnZXQgaGFzU3RhdHVzQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnN0YXR1c1RpdGxlVGV4dCB8fCB0aGlzLmRhdGE/LmJhZGdlKTtcbiAgfVxuXG4gIGdldCB3cmFwcGVyRGV0YWlsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YT8ud3JhcHBlckRldGFpbCk7XG4gIH1cblxuICBnZXQgYnV0dG9uTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsKTtcbiAgfVxuXG4gIGdldCBiYWRnZUNvbG9yKCk6IEJhZGdlQ29sb3Ige1xuICAgIHJldHVybiB0aGlzLmRhdGE/LmJhZGdlPy5jb2xvciA/PyAnYmx1ZSc7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5pbmZvVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIGdldCBzdGF0dXNUb29sdGlwVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuc3RhdHVzVG9vbHRpcCkgfHwgbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaXNFeHBhbmRlZCddIHx8IGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZUhlaWdodCgpKTtcbiAgICB9XG4gIH1cblxuICBvbkNhcmRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBvbkV4cGFuZENhcmRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJ3NkYy1idXR0b24nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhcmRDbGljay5lbWl0KHRoaXMuZGF0YSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkNhcmRCdXR0b25DbGljayhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbj8uKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jYXJkQnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZUhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsLnN0eWxlLmhlaWdodCA9IHRoaXMuZXhwYW5kZWQgPyBgJHtlbC5zY3JvbGxIZWlnaHR9cHhgIDogJzBweCc7XG4gIH1cblxuICBnZXRDYXJkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5sZWZ0X3RpdGxlKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwodGhpcy5kYXRhLmxlZnRfc3VidGl0bGUpLFxuICAgICAgdGhpcy5zdGF0dXNUaXRsZVRleHQsXG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsKHRoaXMuZGF0YS5iYWRnZT8ubGFiZWwpLFxuICAgICAgdGhpcy5yaWdodFN1YnRpdGxlVGV4dFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkXG4gICAgICAgICAgICA/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2V4cGFuZGVkJ1xuICAgICAgICAgICAgOiAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dfY2FyZF9jb2xsYXBzZWQnXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXRCdXR0b25BcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3Rpb24gPSByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dChcbiAgICAgIHRoaXMudHJhbnNsYXRlLFxuICAgICAgdGhpcy5kYXRhPy5idXR0b25MYWJlbCA/PyB0aGlzLm9wdGlvbnM/LmJ1dHRvbkxhYmVsLFxuICAgICAgJ3BsYXRmb3JtLmRhdGFjb3JlLmxpc3QuZGVmYXVsdF9hY3Rpb25fbGFiZWwnXG4gICAgKTtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMubGVmdFRpdGxlVGV4dDtcblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd19jYXJkX2J1dHRvbl9hY3Rpb24nLCB7IGFjdGlvbiwgdGl0bGUgfSk7XG4gIH1cblxuICBvbktleWJvYXJkQWN0aXZhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucz8uZXhwYW5kYWJsZSkge1xuICAgICAgICB0aGlzLm9uRXhwYW5kQ2FyZENsaWNrKGV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DYXJkQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVsKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBvbkV4cGFuZENhcmRDbGljaygkZXZlbnQpIDogb25DYXJkQ2xpY2soKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5Ym9hcmRBY3RpdmF0ZSgkZXZlbnQpXCJcbiAgW2NsYXNzLmJvcmRlci1sZWZ0XT1cImRhdGEuaGFzQm9yZGVyXCJcbiAgY2xhc3M9XCJyb3ctY2FyZCB0cmFuc2l0aW9uLWFsbCBjdXJzb3ItcG9pbnRlciB3LWZ1bGxcIlxuICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRDYXJkQXJpYUxhYmVsKClcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgPyBleHBhbmRlZCA6IG51bGxcIlxuPlxuICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1pY29uXCI+XG4gICAgICBAaWYgKG9wdGlvbnM/LmV4cGFuZGFibGUpIHtcbiAgICAgIDxpIFtjbGFzcy5mYS1taW51c109XCJleHBhbmRlZFwiIFtjbGFzcy5mYS1wbHVzXT1cIiFleHBhbmRlZFwiIGNsYXNzPVwiZmFzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1yb2NrZXQgcC0yIG1sLTIgdGV4dC14bFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3ctY2FyZC1tYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXRpdGxlLXJvdyBmb250LXNlbWlib2xkXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ubGVmdFRpdGxlQ29sb3JcIj5cbiAgICAgICAgQGlmIChpbmZvVG9vbHRpcCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnblxuICAgICAgICAgIGNsYXNzPVwicm93LWNhcmQtaW5mby1zaWduXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtcm93LWNhcmQtdGl0bGUgdGV4dC1vdmVyZmxvdy1lbGxpcHNpcyB3aGl0ZS1zcGFjZS1ub3dyYXAgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNkYy1yb3ctY2FyZC10aXRsZSB0ZXh0LW92ZXJmbG93LWVsbGlwc2lzIHdoaXRlLXNwYWNlLW5vd3JhcCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICA+e3sgbGVmdFRpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobGVmdFN1YnRpdGxlVGV4dCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLXN1YnRpdGxlIHRleHQtc21cIiBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyBsZWZ0U3VidGl0bGVUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh0YWdUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtdGFnLXdyYXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFnXCI+e3sgdGFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNTdGF0dXNDb2x1bW4pIHtcbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzXCI+XG4gICAgICBAaWYgKHN0YXR1c1RpdGxlVGV4dCkge1xuICAgICAgICBAaWYgKHN0YXR1c1Rvb2x0aXApIHtcbiAgICAgICAgPHNkYy1pbmZvLXNpZ25cbiAgICAgICAgICBjbGFzcz1cInJvdy1jYXJkLWluZm8tc2lnblwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwic3RhdHVzVG9vbHRpcFwiXG4gICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdy1jYXJkLXN0YXR1cy10aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0VGl0bGVDb2xvclwiPnt7IHN0YXR1c1RpdGxlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zZGMtaW5mby1zaWduPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1zdGF0dXMtdGl0bGVcIiBbbmdDbGFzc109XCJvcHRpb25zPy5yaWdodFRpdGxlQ29sb3JcIj57eyBzdGF0dXNUaXRsZVRleHQgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmIChkYXRhLmJhZGdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtc3RhdHVzLWJhZGdlXCI+XG4gICAgICAgIDxzZGMtYmFkZ2UgW3RleHRdPVwiZGF0YS5iYWRnZS5sYWJlbFwiIFtjb2xvcl09XCJiYWRnZUNvbG9yXCI+PC9zZGMtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNhcmQtYWN0aW9uc1wiPlxuICAgICAgQGlmIChyaWdodFN1YnRpdGxlVGV4dCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctY2FyZC1yaWdodC1zdWJ0aXRsZVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LnJpZ2h0U3VidGl0bGVDb2xvclwiPlxuICAgICAgICB7eyByaWdodFN1YnRpdGxlVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jYXJkLWJ1dHRvbi13cmFwXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWQhXCJcbiAgICAgICAgICBbaWNvbl09XCJvcHRpb25zPy5idXR0b25JY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNNb2JpbGUgPyAnJyA6IGJ1dHRvbkxhYmVsVGV4dFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRCdXR0b25BcmlhTGFiZWwoKVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgQGlmIChvcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gIDxkaXZcbiAgICAjY29udGVudFdyYXBwZXJcbiAgICBjbGFzcz1cImNvbGxhcHNlLXdyYXBwZXJcIlxuICAgIFtjbGFzcy5zaG93XT1cImV4cGFuZGVkXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWlubmVyXCI+XG4gICAgICBAaWYgKGRldGFpbFRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRhdGEsIGRhdGE6IGRhdGEgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdGV4dC03MDBcIj57eyB3cmFwcGVyRGV0YWlsVGV4dCB9fTwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NavigationEnd, PRIMARY_OUTLET, RouterOutlet } from '@angular/router';
3
- import { ProductHeaderModule } from '@seniorsistemas/angular-components/product-header';
4
3
  import { TranslateModule } from '@ngx-translate/core';
5
4
  import { Subject } from 'rxjs';
6
5
  import { filter, takeUntil } from 'rxjs/operators';
@@ -10,8 +9,7 @@ import { IconRendererComponent } from '../../core/components/icon-renderer/icon-
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@angular/router";
12
11
  import * as i2 from "@angular/common";
13
- import * as i3 from "@seniorsistemas/angular-components/product-header";
14
- import * as i4 from "@ngx-translate/core";
12
+ import * as i3 from "@ngx-translate/core";
15
13
  export class ScaffoldComponent {
16
14
  route;
17
15
  router;
@@ -87,11 +85,11 @@ export class ScaffoldComponent {
87
85
  return title || this.title || '';
88
86
  }
89
87
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScaffoldComponent, deps: [{ token: i1.ActivatedRoute, optional: true }, { token: i1.Router, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScaffoldComponent, isStandalone: true, selector: "sdc-scaffold", inputs: { header: "header", homeUrl: "homeUrl", title: "title", titleIcon: "titleIcon", titleIconType: "titleIconType", titleIconSide: "titleIconSide", useRouterOutlet: ["useRouterOutlet", "useRouterOutlet", booleanAttribute], showHeader: ["showHeader", "showHeader", booleanAttribute], showBreadcrumb: ["showBreadcrumb", "showBreadcrumb", booleanAttribute], breadcrumbItems: "breadcrumbItems" }, queries: [{ propertyName: "headerTpl", first: true, predicate: ["scaffoldHeader"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["scaffoldFooter"], descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (showHeader) {\n<header>\n <s-product-header [header]=\"header | translate\">\n @if (headerTpl) {\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n }\n </s-product-header>\n</header>\n}\n\n<main class=\"sdc-scaffold\" role=\"main\" [attr.aria-label]=\"'platform.datacore.accessibility.main_content' | translate\">\n @if (currentTitle) {\n <div\n class=\"sdc-scaffold-title-row\"\n [class.sdc-scaffold-title-row--right]=\"titleIcon && titleIconSide === 'right'\"\n >\n @if (titleIcon && titleIconSide === 'left') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n\n <h1 class=\"sdc-scaffold-title\">{{ currentTitle | translate }}</h1>\n\n @if (titleIcon && titleIconSide === 'right') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n </div>\n }\n\n @if (showBreadcrumb) {\n <nav class=\"sdc-scaffold-breadcrumb\" [attr.aria-label]=\"'platform.datacore.accessibility.breadcrumb_navigation' | translate\">\n <sdc-breadcrumb [homeUrl]=\"homeUrl\" [items]=\"breadcrumbItems\"></sdc-breadcrumb>\n </nav>\n }\n\n <div class=\"sdc-scaffold-content\">\n @if (useRouterOutlet) {\n <router-outlet></router-outlet>\n } @else {\n <ng-content select=\"[sdc-scaffold-content]\"></ng-content>\n <ng-content></ng-content>\n }\n </div>\n</main>\n\n@if (footerTpl) {\n<footer class=\"sdc-scaffold-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl\"></ng-container>\n</footer>\n}\n", styles: ["::ng-deep .sds-container{padding:var(--sdc-showcase-container-padding, 20px 20px 20px 13px)!important;background-color:var(--sdc-showcase-container-bg, #f1f1f1)!important}::ng-deep .sdc-scaffold .sds-page-title{display:none}::ng-deep .sdc-scaffold header{margin:0;padding:0}::ng-deep .sdc-scaffold header .box{width:100%;height:var(--sdc-scaffold-header-height, 70px)}::ng-deep .sdc-scaffold header .header-frame,::ng-deep .sdc-scaffold header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 5px)!important;padding-right:var(--sdc-scaffold-header-padding-x, 5px)!important}@media (min-width: 750px){::ng-deep .sdc-scaffold header .header-frame,::ng-deep .sdc-scaffold header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 5px)!important;padding-right:var(--sdc-scaffold-header-padding-x, 5px)!important}}.sdc-scaffold{min-height:48px}.sdc-scaffold:focus-visible{outline:var(--sdc-focus-outline, 2px solid var(--sdc-primary-600, #2563eb));outline-offset:2px}.sdc-scaffold-title{padding:0;font-family:var(--sdc-font-family, \"Inter\", sans-serif);font-size:var(--sdc-scaffold-title-size, 24px);line-height:1.5;font-weight:400;color:var(--sdc-scaffold-title-color, #212533);margin:0 0 var(--sdc-scaffold-title-gap, 10px) 0}.sdc-scaffold-title-row{display:inline-flex;align-items:center;gap:var(--sdc-scaffold-title-icon-gap, .625rem);margin-bottom:var(--sdc-scaffold-title-gap, 10px)}.sdc-scaffold-title-row--right{flex-direction:row}.sdc-scaffold-title-row :where(.sdc-scaffold-title){margin-bottom:0}.sdc-scaffold-title-icon{color:var(--sdc-scaffold-title-icon-color, var(--sdc-primary-color, #2563eb))}::ng-deep .sdc-scaffold [role=navigation]{margin-top:var(--sdc-scaffold-breadcrumb-offset, 2px)}.sdc-scaffold-content{margin-top:var(--sdc-scaffold-content-margin-top, 1rem)}.sdc-scaffold-footer{margin-top:var(--sdc-scaffold-footer-margin-top, 2rem);padding:var(--sdc-scaffold-footer-padding, 1rem 0)}@media (min-width: 750px){.sdc-scaffold{padding:var(--sdc-scaffold-desktop-padding, 5px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ProductHeaderModule }, { kind: "component", type: i3.ProductHeaderComponent, selector: "s-product-header", inputs: ["id", "header", "baseZIndex", "isHeaderFrame"] }, { kind: "component", type: BreadcrumbComponent, selector: "sdc-breadcrumb", inputs: ["homeUrl", "targetHomeUrl", "enableLinks", "ariaLabel", "items"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScaffoldComponent, isStandalone: true, selector: "sdc-scaffold", inputs: { header: "header", homeUrl: "homeUrl", title: "title", titleIcon: "titleIcon", titleIconType: "titleIconType", titleIconSide: "titleIconSide", useRouterOutlet: ["useRouterOutlet", "useRouterOutlet", booleanAttribute], showHeader: ["showHeader", "showHeader", booleanAttribute], showBreadcrumb: ["showBreadcrumb", "showBreadcrumb", booleanAttribute], breadcrumbItems: "breadcrumbItems" }, queries: [{ propertyName: "headerTpl", first: true, predicate: ["scaffoldHeader"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["scaffoldFooter"], descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (showHeader) {\n<header class=\"sdc-scaffold-header\" role=\"banner\">\n <div class=\"box\">\n <div class=\"sds-container header-frame\" data-testid=\"product-header\" [attr.data-header]=\"header | translate\">\n <h1 class=\"title\">{{ header | translate }}</h1>\n <div class=\"content\">\n @if (headerTpl) {\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n }\n </div>\n </div>\n </div>\n</header>\n}\n\n<main class=\"sdc-scaffold\" role=\"main\" [attr.aria-label]=\"'platform.datacore.accessibility.main_content' | translate\">\n @if (currentTitle) {\n <div\n class=\"sdc-scaffold-title-row\"\n [class.sdc-scaffold-title-row--right]=\"titleIcon && titleIconSide === 'right'\"\n >\n @if (titleIcon && titleIconSide === 'left') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n\n <h1 class=\"sdc-scaffold-title\">{{ currentTitle | translate }}</h1>\n\n @if (titleIcon && titleIconSide === 'right') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n </div>\n }\n\n @if (showBreadcrumb) {\n <nav class=\"sdc-scaffold-breadcrumb\" [attr.aria-label]=\"'platform.datacore.accessibility.breadcrumb_navigation' | translate\">\n <sdc-breadcrumb [homeUrl]=\"homeUrl\" [items]=\"breadcrumbItems\"></sdc-breadcrumb>\n </nav>\n }\n\n <div class=\"sdc-scaffold-content\">\n @if (useRouterOutlet) {\n <router-outlet></router-outlet>\n } @else {\n <ng-content select=\"[sdc-scaffold-content]\"></ng-content>\n <ng-content></ng-content>\n }\n </div>\n</main>\n\n@if (footerTpl) {\n<footer class=\"sdc-scaffold-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl\"></ng-container>\n</footer>\n}\n", styles: [":host{display:block}.sdc-scaffold-header{margin:0;padding:0}.sdc-scaffold-header .box{position:relative;width:100%;height:var(--sdc-scaffold-header-height, 70px)}.sdc-scaffold-header .sds-container{padding:var(--sdc-showcase-container-padding, 20px 20px 20px 13px);background-color:var(--sdc-showcase-container-bg, #f1f1f1)}.sdc-scaffold-header .header-frame,.sdc-scaffold-header .primary-header{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:32;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;height:var(--sdc-scaffold-header-height, 70px);padding:15px var(--sdc-scaffold-header-padding-x, 13px);border-bottom:1px solid #ddd;background-color:#fff}@media (min-width: 750px){.sdc-scaffold-header .header-frame,.sdc-scaffold-header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 13px);padding-right:var(--sdc-scaffold-header-padding-x, 13px)}}.sdc-scaffold-header .title,.sdc-scaffold-header .primary-title{margin:0 15px 0 0;min-width:140px;overflow:hidden;color:#999;font-size:16pt;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold-header .content{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold{min-height:48px}.sdc-scaffold:focus-visible{outline:var(--sdc-focus-outline, 2px solid var(--sdc-primary-600, #2563eb));outline-offset:2px}.sdc-scaffold .sds-page-title{display:none}.sdc-scaffold-title{padding:0;margin:0 0 var(--sdc-scaffold-title-gap, 10px) 0;flex:0 1 auto;min-width:0;overflow:hidden;color:var(--sdc-scaffold-title-color, #212533);font-family:var(--sdc-font-family, \"Inter\", sans-serif);font-size:var(--sdc-scaffold-title-size, 24px);font-weight:400;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold-title-row{display:flex;align-items:center;gap:var(--sdc-scaffold-title-icon-gap, .625rem);width:100%;min-width:0;margin-bottom:var(--sdc-scaffold-title-gap, 10px)}.sdc-scaffold-title-row--right{flex-direction:row}.sdc-scaffold-title-row :where(.sdc-scaffold-title){margin-bottom:0}.sdc-scaffold-title-icon{color:var(--sdc-scaffold-title-icon-color, var(--sdc-primary-color, #2563eb))}.sdc-scaffold [role=navigation]{margin-top:var(--sdc-scaffold-breadcrumb-offset, 2px)}.sdc-scaffold-content{margin-top:var(--sdc-scaffold-content-margin-top, 1rem)}.sdc-scaffold-footer{margin-top:var(--sdc-scaffold-footer-margin-top, 2rem);padding:var(--sdc-scaffold-footer-padding, 1rem 0)}@media (min-width: 750px){.sdc-scaffold{padding:var(--sdc-scaffold-desktop-padding, 5px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BreadcrumbComponent, selector: "sdc-breadcrumb", inputs: ["homeUrl", "targetHomeUrl", "enableLinks", "ariaLabel", "items"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
89
  }
92
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScaffoldComponent, decorators: [{
93
91
  type: Component,
94
- args: [{ selector: 'sdc-scaffold', standalone: true, imports: [CommonModule, ProductHeaderModule, BreadcrumbComponent, RouterOutlet, TranslateModule, IconRendererComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (showHeader) {\n<header>\n <s-product-header [header]=\"header | translate\">\n @if (headerTpl) {\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n }\n </s-product-header>\n</header>\n}\n\n<main class=\"sdc-scaffold\" role=\"main\" [attr.aria-label]=\"'platform.datacore.accessibility.main_content' | translate\">\n @if (currentTitle) {\n <div\n class=\"sdc-scaffold-title-row\"\n [class.sdc-scaffold-title-row--right]=\"titleIcon && titleIconSide === 'right'\"\n >\n @if (titleIcon && titleIconSide === 'left') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n\n <h1 class=\"sdc-scaffold-title\">{{ currentTitle | translate }}</h1>\n\n @if (titleIcon && titleIconSide === 'right') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n </div>\n }\n\n @if (showBreadcrumb) {\n <nav class=\"sdc-scaffold-breadcrumb\" [attr.aria-label]=\"'platform.datacore.accessibility.breadcrumb_navigation' | translate\">\n <sdc-breadcrumb [homeUrl]=\"homeUrl\" [items]=\"breadcrumbItems\"></sdc-breadcrumb>\n </nav>\n }\n\n <div class=\"sdc-scaffold-content\">\n @if (useRouterOutlet) {\n <router-outlet></router-outlet>\n } @else {\n <ng-content select=\"[sdc-scaffold-content]\"></ng-content>\n <ng-content></ng-content>\n }\n </div>\n</main>\n\n@if (footerTpl) {\n<footer class=\"sdc-scaffold-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl\"></ng-container>\n</footer>\n}\n", styles: ["::ng-deep .sds-container{padding:var(--sdc-showcase-container-padding, 20px 20px 20px 13px)!important;background-color:var(--sdc-showcase-container-bg, #f1f1f1)!important}::ng-deep .sdc-scaffold .sds-page-title{display:none}::ng-deep .sdc-scaffold header{margin:0;padding:0}::ng-deep .sdc-scaffold header .box{width:100%;height:var(--sdc-scaffold-header-height, 70px)}::ng-deep .sdc-scaffold header .header-frame,::ng-deep .sdc-scaffold header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 5px)!important;padding-right:var(--sdc-scaffold-header-padding-x, 5px)!important}@media (min-width: 750px){::ng-deep .sdc-scaffold header .header-frame,::ng-deep .sdc-scaffold header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 5px)!important;padding-right:var(--sdc-scaffold-header-padding-x, 5px)!important}}.sdc-scaffold{min-height:48px}.sdc-scaffold:focus-visible{outline:var(--sdc-focus-outline, 2px solid var(--sdc-primary-600, #2563eb));outline-offset:2px}.sdc-scaffold-title{padding:0;font-family:var(--sdc-font-family, \"Inter\", sans-serif);font-size:var(--sdc-scaffold-title-size, 24px);line-height:1.5;font-weight:400;color:var(--sdc-scaffold-title-color, #212533);margin:0 0 var(--sdc-scaffold-title-gap, 10px) 0}.sdc-scaffold-title-row{display:inline-flex;align-items:center;gap:var(--sdc-scaffold-title-icon-gap, .625rem);margin-bottom:var(--sdc-scaffold-title-gap, 10px)}.sdc-scaffold-title-row--right{flex-direction:row}.sdc-scaffold-title-row :where(.sdc-scaffold-title){margin-bottom:0}.sdc-scaffold-title-icon{color:var(--sdc-scaffold-title-icon-color, var(--sdc-primary-color, #2563eb))}::ng-deep .sdc-scaffold [role=navigation]{margin-top:var(--sdc-scaffold-breadcrumb-offset, 2px)}.sdc-scaffold-content{margin-top:var(--sdc-scaffold-content-margin-top, 1rem)}.sdc-scaffold-footer{margin-top:var(--sdc-scaffold-footer-margin-top, 2rem);padding:var(--sdc-scaffold-footer-padding, 1rem 0)}@media (min-width: 750px){.sdc-scaffold{padding:var(--sdc-scaffold-desktop-padding, 5px)}}\n"] }]
92
+ args: [{ selector: 'sdc-scaffold', standalone: true, imports: [CommonModule, BreadcrumbComponent, RouterOutlet, TranslateModule, IconRendererComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (showHeader) {\n<header class=\"sdc-scaffold-header\" role=\"banner\">\n <div class=\"box\">\n <div class=\"sds-container header-frame\" data-testid=\"product-header\" [attr.data-header]=\"header | translate\">\n <h1 class=\"title\">{{ header | translate }}</h1>\n <div class=\"content\">\n @if (headerTpl) {\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n }\n </div>\n </div>\n </div>\n</header>\n}\n\n<main class=\"sdc-scaffold\" role=\"main\" [attr.aria-label]=\"'platform.datacore.accessibility.main_content' | translate\">\n @if (currentTitle) {\n <div\n class=\"sdc-scaffold-title-row\"\n [class.sdc-scaffold-title-row--right]=\"titleIcon && titleIconSide === 'right'\"\n >\n @if (titleIcon && titleIconSide === 'left') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n\n <h1 class=\"sdc-scaffold-title\">{{ currentTitle | translate }}</h1>\n\n @if (titleIcon && titleIconSide === 'right') {\n <sdc-icon-renderer\n class=\"sdc-scaffold-title-icon\"\n [icon]=\"titleIcon\"\n [iconType]=\"titleIconType\"\n [size]=\"24\"\n ></sdc-icon-renderer>\n }\n </div>\n }\n\n @if (showBreadcrumb) {\n <nav class=\"sdc-scaffold-breadcrumb\" [attr.aria-label]=\"'platform.datacore.accessibility.breadcrumb_navigation' | translate\">\n <sdc-breadcrumb [homeUrl]=\"homeUrl\" [items]=\"breadcrumbItems\"></sdc-breadcrumb>\n </nav>\n }\n\n <div class=\"sdc-scaffold-content\">\n @if (useRouterOutlet) {\n <router-outlet></router-outlet>\n } @else {\n <ng-content select=\"[sdc-scaffold-content]\"></ng-content>\n <ng-content></ng-content>\n }\n </div>\n</main>\n\n@if (footerTpl) {\n<footer class=\"sdc-scaffold-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl\"></ng-container>\n</footer>\n}\n", styles: [":host{display:block}.sdc-scaffold-header{margin:0;padding:0}.sdc-scaffold-header .box{position:relative;width:100%;height:var(--sdc-scaffold-header-height, 70px)}.sdc-scaffold-header .sds-container{padding:var(--sdc-showcase-container-padding, 20px 20px 20px 13px);background-color:var(--sdc-showcase-container-bg, #f1f1f1)}.sdc-scaffold-header .header-frame,.sdc-scaffold-header .primary-header{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:32;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;height:var(--sdc-scaffold-header-height, 70px);padding:15px var(--sdc-scaffold-header-padding-x, 13px);border-bottom:1px solid #ddd;background-color:#fff}@media (min-width: 750px){.sdc-scaffold-header .header-frame,.sdc-scaffold-header .primary-header{padding-left:var(--sdc-scaffold-header-padding-x, 13px);padding-right:var(--sdc-scaffold-header-padding-x, 13px)}}.sdc-scaffold-header .title,.sdc-scaffold-header .primary-title{margin:0 15px 0 0;min-width:140px;overflow:hidden;color:#999;font-size:16pt;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold-header .content{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold{min-height:48px}.sdc-scaffold:focus-visible{outline:var(--sdc-focus-outline, 2px solid var(--sdc-primary-600, #2563eb));outline-offset:2px}.sdc-scaffold .sds-page-title{display:none}.sdc-scaffold-title{padding:0;margin:0 0 var(--sdc-scaffold-title-gap, 10px) 0;flex:0 1 auto;min-width:0;overflow:hidden;color:var(--sdc-scaffold-title-color, #212533);font-family:var(--sdc-font-family, \"Inter\", sans-serif);font-size:var(--sdc-scaffold-title-size, 24px);font-weight:400;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.sdc-scaffold-title-row{display:flex;align-items:center;gap:var(--sdc-scaffold-title-icon-gap, .625rem);width:100%;min-width:0;margin-bottom:var(--sdc-scaffold-title-gap, 10px)}.sdc-scaffold-title-row--right{flex-direction:row}.sdc-scaffold-title-row :where(.sdc-scaffold-title){margin-bottom:0}.sdc-scaffold-title-icon{color:var(--sdc-scaffold-title-icon-color, var(--sdc-primary-color, #2563eb))}.sdc-scaffold [role=navigation]{margin-top:var(--sdc-scaffold-breadcrumb-offset, 2px)}.sdc-scaffold-content{margin-top:var(--sdc-scaffold-content-margin-top, 1rem)}.sdc-scaffold-footer{margin-top:var(--sdc-scaffold-footer-margin-top, 2rem);padding:var(--sdc-scaffold-footer-padding, 1rem 0)}@media (min-width: 750px){.sdc-scaffold{padding:var(--sdc-scaffold-desktop-padding, 5px)}}\n"] }]
95
93
  }], ctorParameters: () => [{ type: i1.ActivatedRoute, decorators: [{
96
94
  type: Optional
97
95
  }] }, { type: i1.Router, decorators: [{
@@ -126,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
126
124
  type: ContentChild,
127
125
  args: ['scaffoldFooter', { read: TemplateRef }]
128
126
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhZmZvbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9zY2FmZm9sZC9zY2FmZm9sZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NjYWZmb2xkL3NjYWZmb2xkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0wsYUFBYSxFQUNiLGNBQWMsRUFFZCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOzs7Ozs7QUFXcEcsTUFBTSxPQUFPLGlCQUFpQjtJQW9CRztJQUNBO0lBQ1o7SUFyQlYsTUFBTSxHQUFHLGVBQWUsQ0FBQztJQUN6QixPQUFPLEdBQXVCLFNBQVMsQ0FBQztJQUN4QyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsYUFBYSxHQUF1QixPQUFPLENBQUM7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MEJBc0J0QyxRQUFROzswQkFDUixRQUFRO3lFQXBCRixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDa0MsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGNBQWM7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSWlELFNBQVM7c0JBQS9ELFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNFLFNBQVM7c0JBQS9ELFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBQUklNQVJZX09VVExFVCxcbiAgUm91dGVyLFxuICBSb3V0ZXJPdXRsZXRcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb2R1Y3RIZWFkZXJNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Byb2R1Y3QtaGVhZGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFJlbmRlcmFibGVJY29uVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaWNvbi50eXBlJztcbmltcG9ydCB0eXBlIHsgQnJlYWRjcnVtYkl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2JyZWFkY3J1bWIudHlwZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2NvbXBvbmVudHMvaWNvbi1yZW5kZXJlci9pY29uLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1zY2FmZm9sZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb2R1Y3RIZWFkZXJNb2R1bGUsIEJyZWFkY3J1bWJDb21wb25lbnQsIFJvdXRlck91dGxldCwgVHJhbnNsYXRlTW9kdWxlLCBJY29uUmVuZGVyZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NhZmZvbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2FmZm9sZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgU2NhZmZvbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGhlYWRlciA9ICdEYXRhIFBsYXRmb3JtJztcbiAgQElucHV0KCkgaG9tZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSB0aXRsZUljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB0aXRsZUljb25UeXBlOiBSZW5kZXJhYmxlSWNvblR5cGUgPSAnY2xhc3MnO1xuICBASW5wdXQoKSB0aXRsZUljb25TaWRlOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdXNlUm91dGVyT3V0bGV0ID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dIZWFkZXIgPSB0cnVlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0JyZWFkY3J1bWIgPSB0cnVlO1xuICBASW5wdXQoKSBicmVhZGNydW1iSXRlbXM6IEJyZWFkY3J1bWJJdGVtW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY3VycmVudFRpdGxlID0gJyc7XG5cbiAgQENvbnRlbnRDaGlsZCgnc2NhZmZvbGRIZWFkZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGhlYWRlclRwbD86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBAQ29udGVudENoaWxkKCdzY2FmZm9sZEZvb3RlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZm9vdGVyVHBsPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciB8IG51bGwsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50VGl0bGUgPSB0aGlzLnRpdGxlID8/ICcnO1xuXG4gICAgaWYgKCF0aGlzLnVzZVJvdXRlck91dGxldCB8fCAhdGhpcy5yb3V0ZSB8fCAhdGhpcy5yb3V0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb290RGF0YSA9IHRoaXMucm91dGUuc25hcHNob3Q/LmRhdGEgPz8ge307XG4gICAgdGhpcy5oZWFkZXIgPSByb290RGF0YVsnaGVhZGVyJ10gPz8gdGhpcy5oZWFkZXI7XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMucm91dGUgfHwgIXRoaXMucm91dGVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFRpdGxlID0gdGhpcy5nZXRUaXRsZUZyb21TbmFwc2hvdCgpO1xuICAgICAgdGhpcy5ob21lVXJsID0gdGhpcy5yZXNvbHZlSG9tZVVybCh0aGlzLnJvdXRlLCByb290RGF0YVsnaG9tZVVybCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgdXBkYXRlKCk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh1cGRhdGUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUhvbWVVcmwocm91dGU6IEFjdGl2YXRlZFJvdXRlLCByb290SG9tZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY3VycmVudDogQWN0aXZhdGVkUm91dGUgfCBudWxsID0gcm91dGU7XG5cbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgY29uc3QgaG9tZVVybCA9IGN1cnJlbnQuc25hcHNob3Q/LmRhdGE/LlsnaG9tZVVybCddO1xuICAgICAgaWYgKGhvbWVVcmwgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKGhvbWVVcmwpO1xuICAgICAgfVxuICAgICAgY3VycmVudCA9IGN1cnJlbnQuY2hpbGRyZW4uZmluZCgoYykgPT4gYy5vdXRsZXQgPT09IFBSSU1BUllfT1VUTEVUKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByb290SG9tZVVybCA/PyB0aGlzLmhvbWVVcmw7XG4gIH1cblxuICBwcml2YXRlIGdldFRpdGxlRnJvbVNuYXBzaG90KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJvdXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMudGl0bGUgfHwgJyc7XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdDtcbiAgICBsZXQgdGl0bGUgPSAnJztcbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgY29uc3QgZGF0YSA9IGN1cnJlbnQuZGF0YSA/PyB7fTtcbiAgICAgIGNvbnN0IHQgPSBkYXRhWydwYWdlVGl0bGUnXSA/PyBkYXRhWydyb3V0ZVRpdGxlJ107XG4gICAgICBpZiAodCkge1xuICAgICAgICB0aXRsZSA9IFN0cmluZyh0KTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5vdXRsZXQgPT09IFBSSU1BUllfT1VUTEVUKSA/PyBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGl0bGUgfHwgdGhpcy50aXRsZSB8fCAnJztcbiAgfVxufVxuIiwiQGlmIChzaG93SGVhZGVyKSB7XG48aGVhZGVyPlxuICA8cy1wcm9kdWN0LWhlYWRlciBbaGVhZGVyXT1cImhlYWRlciB8IHRyYW5zbGF0ZVwiPlxuICAgIEBpZiAoaGVhZGVyVHBsKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9zLXByb2R1Y3QtaGVhZGVyPlxuPC9oZWFkZXI+XG59XG5cbjxtYWluIGNsYXNzPVwic2RjLXNjYWZmb2xkXCIgcm9sZT1cIm1haW5cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1haW5fY29udGVudCcgfCB0cmFuc2xhdGVcIj5cbiAgQGlmIChjdXJyZW50VGl0bGUpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNkYy1zY2FmZm9sZC10aXRsZS1yb3dcIlxuICAgICAgW2NsYXNzLnNkYy1zY2FmZm9sZC10aXRsZS1yb3ctLXJpZ2h0XT1cInRpdGxlSWNvbiAmJiB0aXRsZUljb25TaWRlID09PSAncmlnaHQnXCJcbiAgICA+XG4gICAgICBAaWYgKHRpdGxlSWNvbiAmJiB0aXRsZUljb25TaWRlID09PSAnbGVmdCcpIHtcbiAgICAgICAgPHNkYy1pY29uLXJlbmRlcmVyXG4gICAgICAgICAgY2xhc3M9XCJzZGMtc2NhZmZvbGQtdGl0bGUtaWNvblwiXG4gICAgICAgICAgW2ljb25dPVwidGl0bGVJY29uXCJcbiAgICAgICAgICBbaWNvblR5cGVdPVwidGl0bGVJY29uVHlwZVwiXG4gICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgIH1cblxuICAgICAgPGgxIGNsYXNzPVwic2RjLXNjYWZmb2xkLXRpdGxlXCI+e3sgY3VycmVudFRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMT5cblxuICAgICAgQGlmICh0aXRsZUljb24gJiYgdGl0bGVJY29uU2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICA8c2RjLWljb24tcmVuZGVyZXJcbiAgICAgICAgICBjbGFzcz1cInNkYy1zY2FmZm9sZC10aXRsZS1pY29uXCJcbiAgICAgICAgICBbaWNvbl09XCJ0aXRsZUljb25cIlxuICAgICAgICAgIFtpY29uVHlwZV09XCJ0aXRsZUljb25UeXBlXCJcbiAgICAgICAgICBbc2l6ZV09XCIyNFwiXG4gICAgICAgID48L3NkYy1pY29uLXJlbmRlcmVyPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChzaG93QnJlYWRjcnVtYikge1xuICAgIDxuYXYgY2xhc3M9XCJzZGMtc2NhZmZvbGQtYnJlYWRjcnVtYlwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuYnJlYWRjcnVtYl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPHNkYy1icmVhZGNydW1iIFtob21lVXJsXT1cImhvbWVVcmxcIiBbaXRlbXNdPVwiYnJlYWRjcnVtYkl0ZW1zXCI+PC9zZGMtYnJlYWRjcnVtYj5cbiAgICA8L25hdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtc2NhZmZvbGQtY29udGVudFwiPlxuICAgIEBpZiAodXNlUm91dGVyT3V0bGV0KSB7XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2RjLXNjYWZmb2xkLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIH1cbiAgPC9kaXY+XG48L21haW4+XG5cbkBpZiAoZm9vdGVyVHBsKSB7XG48Zm9vdGVyIGNsYXNzPVwic2RjLXNjYWZmb2xkLWZvb3RlclwiPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRwbFwiPjwvbmctY29udGFpbmVyPlxuPC9mb290ZXI+XG59XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhZmZvbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9zY2FmZm9sZC9zY2FmZm9sZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NjYWZmb2xkL3NjYWZmb2xkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0wsYUFBYSxFQUNiLGNBQWMsRUFFZCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOzs7OztBQVdwRyxNQUFNLE9BQU8saUJBQWlCO0lBb0JHO0lBQ0E7SUFDWjtJQXJCVixNQUFNLEdBQUcsZUFBZSxDQUFDO0lBQ3pCLE9BQU8sR0FBdUIsU0FBUyxDQUFDO0lBQ3hDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxTQUFTLEdBQWtCLElBQUksQ0FBQztJQUNoQyxhQUFhLEdBQXVCLE9BQU8sQ0FBQztJQUM1QyxhQUFhLEdBQXFCLE1BQU0sQ0FBQztJQUNWLGVBQWUsR0FBRyxJQUFJ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QkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ2tDLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixlQUFlO3NCQUF2QixLQUFLO2dCQUlpRCxTQUFTO3NCQUEvRCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRSxTQUFTO3NCQUEvRCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgUFJJTUFSWV9PVVRMRVQsXG4gIFJvdXRlcixcbiAgUm91dGVyT3V0bGV0XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJhYmxlSWNvblR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2ljb24udHlwZSc7XG5pbXBvcnQgdHlwZSB7IEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9icmVhZGNydW1iLnR5cGUnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9jb21wb25lbnRzL2ljb24tcmVuZGVyZXIvaWNvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtc2NhZmZvbGQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCcmVhZGNydW1iQ29tcG9uZW50LCBSb3V0ZXJPdXRsZXQsIFRyYW5zbGF0ZU1vZHVsZSwgSWNvblJlbmRlcmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjYWZmb2xkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NhZmZvbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNjYWZmb2xkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBoZWFkZXIgPSAnRGF0YSBQbGF0Zm9ybSc7XG4gIEBJbnB1dCgpIGhvbWVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgdGl0bGVJY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgdGl0bGVJY29uVHlwZTogUmVuZGVyYWJsZUljb25UeXBlID0gJ2NsYXNzJztcbiAgQElucHV0KCkgdGl0bGVJY29uU2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHVzZVJvdXRlck91dGxldCA9IHRydWU7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93SGVhZGVyID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dCcmVhZGNydW1iID0gdHJ1ZTtcbiAgQElucHV0KCkgYnJlYWRjcnVtYkl0ZW1zOiBCcmVhZGNydW1iSXRlbVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGN1cnJlbnRUaXRsZSA9ICcnO1xuXG4gIEBDb250ZW50Q2hpbGQoJ3NjYWZmb2xkSGVhZGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBoZWFkZXJUcGw/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQENvbnRlbnRDaGlsZCgnc2NhZmZvbGRGb290ZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGZvb3RlclRwbD86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIgfCBudWxsLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRpdGxlID0gdGhpcy50aXRsZSA/PyAnJztcblxuICAgIGlmICghdGhpcy51c2VSb3V0ZXJPdXRsZXQgfHwgIXRoaXMucm91dGUgfHwgIXRoaXMucm91dGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdERhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90Py5kYXRhID8/IHt9O1xuICAgIHRoaXMuaGVhZGVyID0gcm9vdERhdGFbJ2hlYWRlciddID8/IHRoaXMuaGVhZGVyO1xuXG4gICAgY29uc3QgdXBkYXRlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnJvdXRlIHx8ICF0aGlzLnJvdXRlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRUaXRsZSA9IHRoaXMuZ2V0VGl0bGVGcm9tU25hcHNob3QoKTtcbiAgICAgIHRoaXMuaG9tZVVybCA9IHRoaXMucmVzb2x2ZUhvbWVVcmwodGhpcy5yb3V0ZSwgcm9vdERhdGFbJ2hvbWVVcmwnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcblxuICAgIHVwZGF0ZSgpO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodXBkYXRlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVIb21lVXJsKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcm9vdEhvbWVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGN1cnJlbnQ6IEFjdGl2YXRlZFJvdXRlIHwgbnVsbCA9IHJvdXRlO1xuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IGhvbWVVcmwgPSBjdXJyZW50LnNuYXBzaG90Py5kYXRhPy5bJ2hvbWVVcmwnXTtcbiAgICAgIGlmIChob21lVXJsICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhob21lVXJsKTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmNoaWxkcmVuLmZpbmQoKGMpID0+IGMub3V0bGV0ID09PSBQUklNQVJZX09VVExFVCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdEhvbWVVcmwgPz8gdGhpcy5ob21lVXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaXRsZUZyb21TbmFwc2hvdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5yb3V0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnRpdGxlIHx8ICcnO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3Q7XG4gICAgbGV0IHRpdGxlID0gJyc7XG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBjdXJyZW50LmRhdGEgPz8ge307XG4gICAgICBjb25zdCB0ID0gZGF0YVsncGFnZVRpdGxlJ10gPz8gZGF0YVsncm91dGVUaXRsZSddO1xuICAgICAgaWYgKHQpIHtcbiAgICAgICAgdGl0bGUgPSBTdHJpbmcodCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50ID0gY3VycmVudC5jaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gY2hpbGQub3V0bGV0ID09PSBQUklNQVJZX09VVExFVCkgPz8gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRpdGxlIHx8IHRoaXMudGl0bGUgfHwgJyc7XG4gIH1cbn1cbiIsIkBpZiAoc2hvd0hlYWRlcikge1xuPGhlYWRlciBjbGFzcz1cInNkYy1zY2FmZm9sZC1oZWFkZXJcIiByb2xlPVwiYmFubmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RzLWNvbnRhaW5lciBoZWFkZXItZnJhbWVcIiBkYXRhLXRlc3RpZD1cInByb2R1Y3QtaGVhZGVyXCIgW2F0dHIuZGF0YS1oZWFkZXJdPVwiaGVhZGVyIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8aDEgY2xhc3M9XCJ0aXRsZVwiPnt7IGhlYWRlciB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICBAaWYgKGhlYWRlclRwbCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvaGVhZGVyPlxufVxuXG48bWFpbiBjbGFzcz1cInNkYy1zY2FmZm9sZFwiIHJvbGU9XCJtYWluXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5tYWluX2NvbnRlbnQnIHwgdHJhbnNsYXRlXCI+XG4gIEBpZiAoY3VycmVudFRpdGxlKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZGMtc2NhZmZvbGQtdGl0bGUtcm93XCJcbiAgICAgIFtjbGFzcy5zZGMtc2NhZmZvbGQtdGl0bGUtcm93LS1yaWdodF09XCJ0aXRsZUljb24gJiYgdGl0bGVJY29uU2lkZSA9PT0gJ3JpZ2h0J1wiXG4gICAgPlxuICAgICAgQGlmICh0aXRsZUljb24gJiYgdGl0bGVJY29uU2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIDxzZGMtaWNvbi1yZW5kZXJlclxuICAgICAgICAgIGNsYXNzPVwic2RjLXNjYWZmb2xkLXRpdGxlLWljb25cIlxuICAgICAgICAgIFtpY29uXT1cInRpdGxlSWNvblwiXG4gICAgICAgICAgW2ljb25UeXBlXT1cInRpdGxlSWNvblR5cGVcIlxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgPjwvc2RjLWljb24tcmVuZGVyZXI+XG4gICAgICB9XG5cbiAgICAgIDxoMSBjbGFzcz1cInNkYy1zY2FmZm9sZC10aXRsZVwiPnt7IGN1cnJlbnRUaXRsZSB8IHRyYW5zbGF0ZSB9fTwvaDE+XG5cbiAgICAgIEBpZiAodGl0bGVJY29uICYmIHRpdGxlSWNvblNpZGUgPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHNkYy1pY29uLXJlbmRlcmVyXG4gICAgICAgICAgY2xhc3M9XCJzZGMtc2NhZmZvbGQtdGl0bGUtaWNvblwiXG4gICAgICAgICAgW2ljb25dPVwidGl0bGVJY29uXCJcbiAgICAgICAgICBbaWNvblR5cGVdPVwidGl0bGVJY29uVHlwZVwiXG4gICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICA+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoc2hvd0JyZWFkY3J1bWIpIHtcbiAgICA8bmF2IGNsYXNzPVwic2RjLXNjYWZmb2xkLWJyZWFkY3J1bWJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmJyZWFkY3J1bWJfbmF2aWdhdGlvbicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDxzZGMtYnJlYWRjcnVtYiBbaG9tZVVybF09XCJob21lVXJsXCIgW2l0ZW1zXT1cImJyZWFkY3J1bWJJdGVtc1wiPjwvc2RjLWJyZWFkY3J1bWI+XG4gICAgPC9uYXY+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwic2RjLXNjYWZmb2xkLWNvbnRlbnRcIj5cbiAgICBAaWYgKHVzZVJvdXRlck91dGxldCkge1xuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NkYy1zY2FmZm9sZC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICB9XG4gIDwvZGl2PlxuPC9tYWluPlxuXG5AaWYgKGZvb3RlclRwbCkge1xuPGZvb3RlciBjbGFzcz1cInNkYy1zY2FmZm9sZC1mb290ZXJcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cbjwvZm9vdGVyPlxufVxuIl19
@@ -9,6 +9,7 @@ export class SelectButtonComponent {
9
9
  cdr;
10
10
  items = [];
11
11
  multiple = false;
12
+ appearance = 'default';
12
13
  compareWith = (a, b) => this.hasComparableValue(a) && this.hasComparableValue(b) ? Object.is(a.value, b.value) : this._deepEqual(a, b);
13
14
  itemSelected = new EventEmitter();
14
15
  itemClicked = new EventEmitter();
@@ -147,13 +148,13 @@ export class SelectButtonComponent {
147
148
  return true;
148
149
  }
149
150
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SelectButtonComponent, isStandalone: true, selector: "sdc-select-button", inputs: { items: "items", multiple: "multiple", compareWith: "compareWith" }, outputs: { itemSelected: "itemSelected", itemClicked: "itemClicked" }, providers: [
151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SelectButtonComponent, isStandalone: true, selector: "sdc-select-button", inputs: { items: "items", multiple: "multiple", appearance: "appearance", compareWith: "compareWith" }, outputs: { itemSelected: "itemSelected", itemClicked: "itemClicked" }, providers: [
151
152
  {
152
153
  provide: NG_VALUE_ACCESSOR,
153
154
  useExisting: forwardRef(() => SelectButtonComponent),
154
155
  multi: true
155
156
  }
156
- ], ngImport: i0, template: "<div class=\"select-button\" [ngClass]=\"{ 'select-button--disabled': disabled }\" role=\"radiogroup\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_button_group' | translate\" [attr.aria-disabled]=\"disabled\">\n @for (item of items; track item; let i = $index) {\n <button type=\"button\" class=\"select-button-item\" [ngClass]=\"{\n 'select-button-item--active': isActive(item),\n 'select-button-item--disabled': disabled || item.disabled,\n 'select-button-item--first': i === 0,\n 'select-button-item--last': i === items.length - 1\n }\" [attr.aria-pressed]=\"isActive(item)\"\n [attr.aria-label]=\"((item.label || '') | translate) + ', ' + ((getItemStateAriaLabelKey(item)) | translate)\"\n [disabled]=\"disabled || item.disabled\" (click)=\"onItemSelect(item)\" (keydown)=\"onKeyboardActivate($event, item)\">\n <span class=\"select-button-item__label\" aria-hidden=\"true\">{{ (item.label || '') | translate }}</span>\n </button>\n }\n</div>\n", styles: [".select-button{display:inline-flex;align-items:stretch}.select-button--disabled{pointer-events:none;opacity:.6}.select-button-item{padding:8px 12px;min-width:44px;min-height:44px;cursor:pointer;background-color:#fff;border:none;border-left:1px solid #c1c1cc;border-top:1px solid #c1c1cc;border-bottom:1px solid #c1c1cc}.select-button-item__label{font-family:Open Sans,sans-serif;font-size:14px}.select-button-item:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40;z-index:1}.select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button-item--active,.select-button-item--active:hover{background-color:#c1c1cc;font-weight:700}.select-button-item--disabled{opacity:.5;cursor:default}.select-button-item--first{border-top-left-radius:2px;border-bottom-left-radius:2px}.select-button-item--last{border-right:1px solid #c1c1cc;border-top-right-radius:2px;border-bottom-right-radius:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
157
+ ], ngImport: i0, template: "<div\n class=\"select-button\"\n [ngClass]=\"{\n 'select-button--disabled': disabled,\n 'select-button--pills': appearance === 'pills',\n 'select-button--soft': appearance === 'soft'\n }\"\n role=\"radiogroup\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_button_group' | translate\"\n [attr.aria-disabled]=\"disabled\"\n>\n @for (item of items; track item; let i = $index) {\n <button\n type=\"button\"\n class=\"select-button-item\"\n [ngClass]=\"{\n 'select-button-item--active': isActive(item),\n 'select-button-item--disabled': disabled || item.disabled,\n 'select-button-item--first': i === 0,\n 'select-button-item--last': i === items.length - 1\n }\"\n [attr.aria-pressed]=\"isActive(item)\"\n [attr.aria-label]=\"((item.label || '') | translate) + ', ' + ((getItemStateAriaLabelKey(item)) | translate)\"\n [disabled]=\"disabled || item.disabled\"\n (click)=\"onItemSelect(item)\"\n (keydown)=\"onKeyboardActivate($event, item)\"\n >\n @if (item.iconClass) {\n <i class=\"select-button-item__icon\" [ngClass]=\"item.iconClass\" aria-hidden=\"true\"></i>\n }\n <span class=\"select-button-item__label\" aria-hidden=\"true\">{{ (item.label || '') | translate }}</span>\n </button>\n }\n</div>\n", styles: [".select-button{display:inline-flex;align-items:stretch}.select-button--disabled{pointer-events:none;opacity:.6}.select-button--pills{gap:.2rem}.select-button-item{display:inline-flex;align-items:center;gap:.4rem;padding:8px 12px;min-width:44px;min-height:44px;cursor:pointer;background-color:#fff;border:none;border-top:1px solid #c1c1cc;border-bottom:1px solid #c1c1cc;border-left:1px solid #c1c1cc}.select-button-item__icon{font-size:.8rem;flex-shrink:0}.select-button-item__label{font-family:Open Sans,sans-serif;font-size:14px}.select-button-item--active{background-color:#c1c1cc;font-weight:700}.select-button-item--disabled{opacity:.5;cursor:default}.select-button-item--first{border-top-left-radius:2px;border-bottom-left-radius:2px}.select-button-item--last{border-right:1px solid #c1c1cc;border-top-right-radius:2px;border-bottom-right-radius:2px}.select-button-item--active:hover{background-color:#c1c1cc}.select-button-item:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40;z-index:1}.select-button--pills .select-button-item{border:1px solid transparent;border-radius:6px;background:transparent;padding:5px 12px;min-height:30px;color:var(--sdc-text-muted, #6b7280);font-size:13px;font-weight:400}.select-button--pills .select-button-item--first{border-top-left-radius:6px;border-bottom-left-radius:6px}.select-button--pills .select-button-item--last{border-right:1px solid transparent;border-top-right-radius:6px;border-bottom-right-radius:6px}.select-button--pills .select-button-item--active{background:#428bca1f;border-color:transparent;color:var(--sdc-formfield-focus-color, #428bca);font-weight:600}.select-button--soft .select-button-item{padding:4px 10px;min-height:32px;border-color:#dedce5;background-color:#fafafa;font-size:13px}.select-button--soft .select-button-item--last{border-right:1px solid #dedce5}.select-button--soft .select-button-item--active{background-color:var(--sdc-formfield-focus-color, #428bca);color:#fff;font-weight:600}.select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button--pills .select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background:#0000000a;border-color:transparent;color:var(--sdc-text-default, #374151)}.select-button--pills .select-button-item--active:hover{background:#428bca29;border-color:transparent}.select-button--soft .select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button--soft .select-button-item--active:hover{background-color:var(--sdc-formfield-focus-color, #428bca)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
157
158
  }
158
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectButtonComponent, decorators: [{
159
160
  type: Component,
@@ -163,11 +164,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
163
164
  useExisting: forwardRef(() => SelectButtonComponent),
164
165
  multi: true
165
166
  }
166
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"select-button\" [ngClass]=\"{ 'select-button--disabled': disabled }\" role=\"radiogroup\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_button_group' | translate\" [attr.aria-disabled]=\"disabled\">\n @for (item of items; track item; let i = $index) {\n <button type=\"button\" class=\"select-button-item\" [ngClass]=\"{\n 'select-button-item--active': isActive(item),\n 'select-button-item--disabled': disabled || item.disabled,\n 'select-button-item--first': i === 0,\n 'select-button-item--last': i === items.length - 1\n }\" [attr.aria-pressed]=\"isActive(item)\"\n [attr.aria-label]=\"((item.label || '') | translate) + ', ' + ((getItemStateAriaLabelKey(item)) | translate)\"\n [disabled]=\"disabled || item.disabled\" (click)=\"onItemSelect(item)\" (keydown)=\"onKeyboardActivate($event, item)\">\n <span class=\"select-button-item__label\" aria-hidden=\"true\">{{ (item.label || '') | translate }}</span>\n </button>\n }\n</div>\n", styles: [".select-button{display:inline-flex;align-items:stretch}.select-button--disabled{pointer-events:none;opacity:.6}.select-button-item{padding:8px 12px;min-width:44px;min-height:44px;cursor:pointer;background-color:#fff;border:none;border-left:1px solid #c1c1cc;border-top:1px solid #c1c1cc;border-bottom:1px solid #c1c1cc}.select-button-item__label{font-family:Open Sans,sans-serif;font-size:14px}.select-button-item:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40;z-index:1}.select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button-item--active,.select-button-item--active:hover{background-color:#c1c1cc;font-weight:700}.select-button-item--disabled{opacity:.5;cursor:default}.select-button-item--first{border-top-left-radius:2px;border-bottom-left-radius:2px}.select-button-item--last{border-right:1px solid #c1c1cc;border-top-right-radius:2px;border-bottom-right-radius:2px}\n"] }]
167
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"select-button\"\n [ngClass]=\"{\n 'select-button--disabled': disabled,\n 'select-button--pills': appearance === 'pills',\n 'select-button--soft': appearance === 'soft'\n }\"\n role=\"radiogroup\"\n [attr.aria-label]=\"'platform.datacore.accessibility.select_button_group' | translate\"\n [attr.aria-disabled]=\"disabled\"\n>\n @for (item of items; track item; let i = $index) {\n <button\n type=\"button\"\n class=\"select-button-item\"\n [ngClass]=\"{\n 'select-button-item--active': isActive(item),\n 'select-button-item--disabled': disabled || item.disabled,\n 'select-button-item--first': i === 0,\n 'select-button-item--last': i === items.length - 1\n }\"\n [attr.aria-pressed]=\"isActive(item)\"\n [attr.aria-label]=\"((item.label || '') | translate) + ', ' + ((getItemStateAriaLabelKey(item)) | translate)\"\n [disabled]=\"disabled || item.disabled\"\n (click)=\"onItemSelect(item)\"\n (keydown)=\"onKeyboardActivate($event, item)\"\n >\n @if (item.iconClass) {\n <i class=\"select-button-item__icon\" [ngClass]=\"item.iconClass\" aria-hidden=\"true\"></i>\n }\n <span class=\"select-button-item__label\" aria-hidden=\"true\">{{ (item.label || '') | translate }}</span>\n </button>\n }\n</div>\n", styles: [".select-button{display:inline-flex;align-items:stretch}.select-button--disabled{pointer-events:none;opacity:.6}.select-button--pills{gap:.2rem}.select-button-item{display:inline-flex;align-items:center;gap:.4rem;padding:8px 12px;min-width:44px;min-height:44px;cursor:pointer;background-color:#fff;border:none;border-top:1px solid #c1c1cc;border-bottom:1px solid #c1c1cc;border-left:1px solid #c1c1cc}.select-button-item__icon{font-size:.8rem;flex-shrink:0}.select-button-item__label{font-family:Open Sans,sans-serif;font-size:14px}.select-button-item--active{background-color:#c1c1cc;font-weight:700}.select-button-item--disabled{opacity:.5;cursor:default}.select-button-item--first{border-top-left-radius:2px;border-bottom-left-radius:2px}.select-button-item--last{border-right:1px solid #c1c1cc;border-top-right-radius:2px;border-bottom-right-radius:2px}.select-button-item--active:hover{background-color:#c1c1cc}.select-button-item:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40;z-index:1}.select-button--pills .select-button-item{border:1px solid transparent;border-radius:6px;background:transparent;padding:5px 12px;min-height:30px;color:var(--sdc-text-muted, #6b7280);font-size:13px;font-weight:400}.select-button--pills .select-button-item--first{border-top-left-radius:6px;border-bottom-left-radius:6px}.select-button--pills .select-button-item--last{border-right:1px solid transparent;border-top-right-radius:6px;border-bottom-right-radius:6px}.select-button--pills .select-button-item--active{background:#428bca1f;border-color:transparent;color:var(--sdc-formfield-focus-color, #428bca);font-weight:600}.select-button--soft .select-button-item{padding:4px 10px;min-height:32px;border-color:#dedce5;background-color:#fafafa;font-size:13px}.select-button--soft .select-button-item--last{border-right:1px solid #dedce5}.select-button--soft .select-button-item--active{background-color:var(--sdc-formfield-focus-color, #428bca);color:#fff;font-weight:600}.select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button--pills .select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background:#0000000a;border-color:transparent;color:var(--sdc-text-default, #374151)}.select-button--pills .select-button-item--active:hover{background:#428bca29;border-color:transparent}.select-button--soft .select-button-item:not(.select-button-item--disabled):not(.select-button-item--active):hover{background-color:#eeebf2}.select-button--soft .select-button-item--active:hover{background-color:var(--sdc-formfield-focus-color, #428bca)}\n"] }]
167
168
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { items: [{
168
169
  type: Input
169
170
  }], multiple: [{
170
171
  type: Input
172
+ }], appearance: [{
173
+ type: Input
171
174
  }], compareWith: [{
172
175
  type: Input
173
176
  }], itemSelected: [{
@@ -175,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
175
178
  }], itemClicked: [{
176
179
  type: Output
177
180
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NlbGVjdC1idXR0b24vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NlbGVjdC1idXR0b24vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLHVCQUF1QixFQUV4QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFpQnRELE1BQU0sT0FBTyxxQkFBcUI7SUFnQkg7SUFmcEIsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFDL0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixXQUFXLEdBQTBELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3JGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZHLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUN0RCxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUFFN0Qs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QUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RCdXR0b25JdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZWxlY3QtYnV0dG9uLnR5cGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1zZWxlY3QtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0QnV0dG9uQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBTZWxlY3RCdXR0b25JdGVtW10gPSBbXTtcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBjb21wYXJlV2l0aDogKGE6IFNlbGVjdEJ1dHRvbkl0ZW0sIGI6IFNlbGVjdEJ1dHRvbkl0ZW0pID0+IGJvb2xlYW4gPSAoYSwgYikgPT5cbiAgICB0aGlzLmhhc0NvbXBhcmFibGVWYWx1ZShhKSAmJiB0aGlzLmhhc0NvbXBhcmFibGVWYWx1ZShiKSA/IE9iamVjdC5pcyhhLnZhbHVlLCBiLnZhbHVlKSA6IHRoaXMuX2RlZXBFcXVhbChhLCBiKTtcblxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCdXR0b25JdGVtW10+KCk7XG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0QnV0dG9uSXRlbT4oKTtcblxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBhY3RpdmVJdGVtcyA9IG5ldyBTZXQ8U2VsZWN0QnV0dG9uSXRlbT4oKTtcblxuICBwcml2YXRlIG9uQ2hhbmdlPzogKHZhbHVlOiBTZWxlY3RCdXR0b25JdGVtW10pID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgLy8gQ1ZBXG4gIHdyaXRlVmFsdWUodmFsdWU/OiBTZWxlY3RCdXR0b25JdGVtIHwgU2VsZWN0QnV0dG9uSXRlbVtdIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlSXRlbXMuY2xlYXIoKTtcblxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBlbnN1cmVNYXRjaCA9ICh2OiBTZWxlY3RCdXR0b25JdGVtKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaXQgb2YgdGhpcy5pdGVtcykge1xuICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmVXaXRoKHYsIGl0KSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtcy5hZGQoaXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goZW5zdXJlTWF0Y2gpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5zdXJlTWF0Y2godmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBTZWxlY3RCdXR0b25JdGVtW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBVSVxuICBvbkl0ZW1TZWxlY3QoaXRlbTogU2VsZWN0QnV0dG9uSXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1DbGlja2VkLmVtaXQoaXRlbSk7XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoaXRlbSkpIHtcbiAgICAgICAgdGhpcy5fZGVsZXRlQnlDb21wYXJlKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWRkQnlSZWYoaXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlSXRlbXMuY2xlYXIoKTtcbiAgICAgIHRoaXMuX2FkZEJ5UmVmKGl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFyciA9IHRoaXMuX2FzQXJyYXkoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGFycik7XG4gICAgdGhpcy5vbkNoYW5nZT8uKGFycik7XG4gICAgdGhpcy5vblRvdWNoZWQ/LigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaXNBY3RpdmUoaXRlbTogU2VsZWN0QnV0dG9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaXQgb2YgdGhpcy5hY3RpdmVJdGVtcykge1xuICAgICAgaWYgKHRoaXMuY29tcGFyZVdpdGgoaXRlbSwgaXQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cmFja0J5SW5kZXggPSAoaTogbnVtYmVyKSA9PiBpO1xuXG4gIGdldEl0ZW1TdGF0ZUFyaWFMYWJlbEtleShpdGVtOiBTZWxlY3RCdXR0b25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0FjdGl2ZShpdGVtKVxuICAgICAgPyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3RfYnV0dG9uX2l0ZW1fc2VsZWN0ZWQnXG4gICAgICA6ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnNlbGVjdF9idXR0b25faXRlbV9ub3Rfc2VsZWN0ZWQnO1xuICB9XG5cbiAgb25LZXlib2FyZEFjdGl2YXRlKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpdGVtOiBTZWxlY3RCdXR0b25JdGVtKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub25JdGVtU2VsZWN0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGhlbHBlcnNcbiAgcHJpdmF0ZSBfYWRkQnlSZWYoaXRlbTogU2VsZWN0QnV0dG9uSXRlbSkge1xuICAgIHRoaXMuYWN0aXZlSXRlbXMuYWRkKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgX2RlbGV0ZUJ5Q29tcGFyZShpdGVtOiBTZWxlY3RCdXR0b25JdGVtKSB7XG4gICAgZm9yIChjb25zdCBpdCBvZiBBcnJheS5mcm9tKHRoaXMuYWN0aXZlSXRlbXMpKSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJlV2l0aChpdGVtLCBpdCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtcy5kZWxldGUoaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYXNBcnJheSgpOiBTZWxlY3RCdXR0b25JdGVtW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5hY3RpdmVJdGVtc107XG4gIH1cblxuICBwcml2YXRlIGhhc0NvbXBhcmFibGVWYWx1ZShpdGVtOiBTZWxlY3RCdXR0b25JdGVtKTogaXRlbSBpcyBTZWxlY3RCdXR0b25JdGVtICYgeyB2YWx1ZTogdW5rbm93biB9IHtcbiAgICByZXR1cm4gT2JqZWN0Lmhhc093bihpdGVtLCAndmFsdWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlZXBFcXVhbChhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2lzT2JqZWN0RXF1YWxUeXBlKGEsIGIpIHx8ICF0aGlzLl9pc1JlY29yZChiKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2lzQXJyYXlUeXBlRXF1YWwoYSwgYikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qga2EgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBjb25zdCBrYiA9IE9iamVjdC5rZXlzKGIpO1xuICAgIGlmIChrYS5sZW5ndGggIT09IGtiLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYXJlS2V5c0RlZXBFcXVhbChrYSwga2IsIGEsIGIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNPYmplY3RFcXVhbFR5cGUoYTogdW5rbm93biwgYjogdW5rbm93bik6IGEgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiAhIWEgJiYgISFiICYmIHR5cGVvZiBhID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIF9pc1JlY29yZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNBcnJheVR5cGVFcXVhbChhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgPT09IEFycmF5LmlzQXJyYXkoYik7XG4gIH1cblxuICBwcml2YXRlIF9hcmVLZXlzRGVlcEVxdWFsKFxuICAgIGthOiBzdHJpbmdbXSxcbiAgICBrYjogc3RyaW5nW10sXG4gICAgYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgYjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBrIG9mIGthKSB7XG4gICAgICBpZiAoIWtiLmluY2x1ZGVzKGspIHx8ICF0aGlzLl9kZWVwRXF1YWwoYVtrXSwgYltrXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlbGVjdC1idXR0b25cIiBbbmdDbGFzc109XCJ7ICdzZWxlY3QtYnV0dG9uLS1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIiByb2xlPVwicmFkaW9ncm91cFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2J1dHRvbl9ncm91cCcgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VsZWN0LWJ1dHRvbi1pdGVtXCIgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NlbGVjdC1idXR0b24taXRlbS0tYWN0aXZlJzogaXNBY3RpdmUoaXRlbSksXG4gICAgICAnc2VsZWN0LWJ1dHRvbi1pdGVtLS1kaXNhYmxlZCc6IGRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAnc2VsZWN0LWJ1dHRvbi1pdGVtLS1maXJzdCc6IGkgPT09IDAsXG4gICAgICAnc2VsZWN0LWJ1dHRvbi1pdGVtLS1sYXN0JzogaSA9PT0gaXRlbXMubGVuZ3RoIC0gMVxuICAgIH1cIiBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNBY3RpdmUoaXRlbSlcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiKChpdGVtLmxhYmVsIHx8ICcnKSB8IHRyYW5zbGF0ZSkgKyAnLCAnICsgKChnZXRJdGVtU3RhdGVBcmlhTGFiZWxLZXkoaXRlbSkpIHwgdHJhbnNsYXRlKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWRcIiAoY2xpY2spPVwib25JdGVtU2VsZWN0KGl0ZW0pXCIgKGtleWRvd24pPVwib25LZXlib2FyZEFjdGl2YXRlKCRldmVudCwgaXRlbSlcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNlbGVjdC1idXR0b24taXRlbV9fbGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyAoaXRlbS5sYWJlbCB8fCAnJykgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NlbGVjdC1idXR0b24vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NlbGVjdC1idXR0b24vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLHVCQUF1QixFQUV4QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFpQnRELE1BQU0sT0FBTyxxQkFBcUI7SUFpQkg7SUFoQnBCLEtBQUssR0FBdUIsRUFBRSxDQUFDO0lBQy9CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsVUFBVSxHQUFpQyxTQUFTLENBQUM7SUFFckQsV0FBVyxHQUEwRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNyRixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV2RyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUFDdEQsV0FBVyxHQUFH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c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdEJ1dHRvbkl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbGVjdC1idXR0b24udHlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXNlbGVjdC1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RCdXR0b25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgaXRlbXM6IFNlbGVjdEJ1dHRvbkl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiAnZGVmYXVsdCcgfCAncGlsbHMnIHwgJ3NvZnQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpIGNvbXBhcmVXaXRoOiAoYTogU2VsZWN0QnV0dG9uSXRlbSwgYjogU2VsZWN0QnV0dG9uSXRlbSkgPT4gYm9vbGVhbiA9IChhLCBiKSA9PlxuICAgIHRoaXMuaGFzQ29tcGFyYWJsZVZhbHVlKGEpICYmIHRoaXMuaGFzQ29tcGFyYWJsZVZhbHVlKGIpID8gT2JqZWN0LmlzKGEudmFsdWUsIGIudmFsdWUpIDogdGhpcy5fZGVlcEVxdWFsKGEsIGIpO1xuXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdEJ1dHRvbkl0ZW1bXT4oKTtcbiAgQE91dHB1dCgpIGl0ZW1DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCdXR0b25JdGVtPigpO1xuXG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIGFjdGl2ZUl0ZW1zID0gbmV3IFNldDxTZWxlY3RCdXR0b25JdGVtPigpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U/OiAodmFsdWU6IFNlbGVjdEJ1dHRvbkl0ZW1bXSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvLyBDVkFcbiAgd3JpdGVWYWx1ZSh2YWx1ZT86IFNlbGVjdEJ1dHRvbkl0ZW0gfCBTZWxlY3RCdXR0b25JdGVtW10gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVJdGVtcy5jbGVhcigpO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGVuc3VyZU1hdGNoID0gKHY6IFNlbGVjdEJ1dHRvbkl0ZW0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBpdCBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY29tcGFyZVdpdGgodiwgaXQpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1zLmFkZChpdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChlbnN1cmVNYXRjaCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnN1cmVNYXRjaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFNlbGVjdEJ1dHRvbkl0ZW1bXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIFVJXG4gIG9uSXRlbVNlbGVjdChpdGVtOiBTZWxlY3RCdXR0b25JdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbUNsaWNrZWQuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZShpdGVtKSkge1xuICAgICAgICB0aGlzLl9kZWxldGVCeUNvbXBhcmUoaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9hZGRCeVJlZihpdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVJdGVtcy5jbGVhcigpO1xuICAgICAgdGhpcy5fYWRkQnlSZWYoaXRlbSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJyID0gdGhpcy5fYXNBcnJheSgpO1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoYXJyKTtcbiAgICB0aGlzLm9uQ2hhbmdlPy4oYXJyKTtcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc0FjdGl2ZShpdGVtOiBTZWxlY3RCdXR0b25JdGVtKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpdCBvZiB0aGlzLmFjdGl2ZUl0ZW1zKSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJlV2l0aChpdGVtLCBpdCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleCA9IChpOiBudW1iZXIpID0+IGk7XG5cbiAgZ2V0SXRlbVN0YXRlQXJpYUxhYmVsS2V5KGl0ZW06IFNlbGVjdEJ1dHRvbkl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzQWN0aXZlKGl0ZW0pXG4gICAgICA/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnNlbGVjdF9idXR0b25faXRlbV9zZWxlY3RlZCdcbiAgICAgIDogJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2J1dHRvbl9pdGVtX25vdF9zZWxlY3RlZCc7XG4gIH1cblxuICBvbktleWJvYXJkQWN0aXZhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGl0ZW06IFNlbGVjdEJ1dHRvbkl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGVscGVyc1xuICBwcml2YXRlIF9hZGRCeVJlZihpdGVtOiBTZWxlY3RCdXR0b25JdGVtKSB7XG4gICAgdGhpcy5hY3RpdmVJdGVtcy5hZGQoaXRlbSk7XG4gIH1cbiAgcHJpdmF0ZSBfZGVsZXRlQnlDb21wYXJlKGl0ZW06IFNlbGVjdEJ1dHRvbkl0ZW0pIHtcbiAgICBmb3IgKGNvbnN0IGl0IG9mIEFycmF5LmZyb20odGhpcy5hY3RpdmVJdGVtcykpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVXaXRoKGl0ZW0sIGl0KSkge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1zLmRlbGV0ZShpdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9hc0FycmF5KCk6IFNlbGVjdEJ1dHRvbkl0ZW1bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmFjdGl2ZUl0ZW1zXTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzQ29tcGFyYWJsZVZhbHVlKGl0ZW06IFNlbGVjdEJ1dHRvbkl0ZW0pOiBpdGVtIGlzIFNlbGVjdEJ1dHRvbkl0ZW0gJiB7IHZhbHVlOiB1bmtub3duIH0ge1xuICAgIHJldHVybiBPYmplY3QuaGFzT3duKGl0ZW0sICd2YWx1ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVlcEVxdWFsKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5faXNPYmplY3RFcXVhbFR5cGUoYSwgYikgfHwgIXRoaXMuX2lzUmVjb3JkKGIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5faXNBcnJheVR5cGVFcXVhbChhLCBiKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBrYSA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGNvbnN0IGtiID0gT2JqZWN0LmtleXMoYik7XG4gICAgaWYgKGthLmxlbmd0aCAhPT0ga2IubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hcmVLZXlzRGVlcEVxdWFsKGthLCBrYiwgYSwgYik7XG4gIH1cblxuICBwcml2YXRlIF9pc09iamVjdEVxdWFsVHlwZShhOiB1bmtub3duLCBiOiB1bmtub3duKTogYSBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuICEhYSAmJiAhIWIgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBiID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIHByaXZhdGUgX2lzUmVjb3JkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIF9pc0FycmF5VHlwZUVxdWFsKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhKSA9PT0gQXJyYXkuaXNBcnJheShiKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FyZUtleXNEZWVwRXF1YWwoXG4gICAga2E6IHN0cmluZ1tdLFxuICAgIGtiOiBzdHJpbmdbXSxcbiAgICBhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICBiOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2EpIHtcbiAgICAgIGlmICgha2IuaW5jbHVkZXMoaykgfHwgIXRoaXMuX2RlZXBFcXVhbChhW2tdLCBiW2tdKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2VsZWN0LWJ1dHRvblwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2VsZWN0LWJ1dHRvbi0tZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAnc2VsZWN0LWJ1dHRvbi0tcGlsbHMnOiBhcHBlYXJhbmNlID09PSAncGlsbHMnLFxuICAgICdzZWxlY3QtYnV0dG9uLS1zb2Z0JzogYXBwZWFyYW5jZSA9PT0gJ3NvZnQnXG4gIH1cIlxuICByb2xlPVwicmFkaW9ncm91cFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2J1dHRvbl9ncm91cCcgfCB0cmFuc2xhdGVcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2VsZWN0LWJ1dHRvbi1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NlbGVjdC1idXR0b24taXRlbS0tYWN0aXZlJzogaXNBY3RpdmUoaXRlbSksXG4gICAgICAgICdzZWxlY3QtYnV0dG9uLWl0ZW0tLWRpc2FibGVkJzogZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZCxcbiAgICAgICAgJ3NlbGVjdC1idXR0b24taXRlbS0tZmlyc3QnOiBpID09PSAwLFxuICAgICAgICAnc2VsZWN0LWJ1dHRvbi1pdGVtLS1sYXN0JzogaSA9PT0gaXRlbXMubGVuZ3RoIC0gMVxuICAgICAgfVwiXG4gICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNBY3RpdmUoaXRlbSlcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoKGl0ZW0ubGFiZWwgfHwgJycpIHwgdHJhbnNsYXRlKSArICcsICcgKyAoKGdldEl0ZW1TdGF0ZUFyaWFMYWJlbEtleShpdGVtKSkgfCB0cmFuc2xhdGUpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSlcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlib2FyZEFjdGl2YXRlKCRldmVudCwgaXRlbSlcIlxuICAgID5cbiAgICAgIEBpZiAoaXRlbS5pY29uQ2xhc3MpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJzZWxlY3QtYnV0dG9uLWl0ZW1fX2ljb25cIiBbbmdDbGFzc109XCJpdGVtLmljb25DbGFzc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LWJ1dHRvbi1pdGVtX19sYWJlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IChpdGVtLmxhYmVsIHx8ICcnKSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG4iXX0=