@fundamental-ngx/platform 0.47.4 → 0.48.0-rc.1

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 (457) hide show
  1. package/README.md +0 -28
  2. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +6 -11
  3. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +6 -8
  4. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +5 -6
  5. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +5 -5
  6. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +8 -11
  7. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +6 -8
  8. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +5 -7
  9. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +5 -6
  10. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +6 -6
  11. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +6 -7
  12. package/esm2022/approval-flow/approval-flow.component.mjs +8 -10
  13. package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
  14. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
  15. package/esm2022/button/button.component.mjs +5 -5
  16. package/esm2022/button/button.module.mjs +4 -4
  17. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
  18. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
  19. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +5 -5
  20. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +5 -5
  21. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  22. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
  23. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
  24. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +4 -4
  25. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
  26. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
  27. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
  28. package/esm2022/dynamic-page/dynamic-page.component.mjs +8 -10
  29. package/esm2022/dynamic-page/dynamic-page.config.mjs +4 -4
  30. package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
  31. package/esm2022/dynamic-page/dynamic-page.service.mjs +3 -3
  32. package/esm2022/feed-input/feed-input.component.mjs +6 -7
  33. package/esm2022/feed-input/feed-input.module.mjs +4 -4
  34. package/esm2022/form/auto-complete/auto-complete.directive.mjs +5 -5
  35. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
  36. package/esm2022/form/checkbox/checkbox.component.mjs +6 -6
  37. package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
  38. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +8 -8
  39. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
  40. package/esm2022/form/combobox/combobox/combobox.component.mjs +9 -11
  41. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +13 -15
  42. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  43. package/esm2022/form/combobox/combobox.config.mjs +4 -4
  44. package/esm2022/form/combobox/combobox.module.mjs +4 -4
  45. package/esm2022/form/combobox/commons/base-combobox.mjs +8 -6
  46. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
  47. package/esm2022/form/date-picker/date-picker.component.mjs +6 -6
  48. package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
  49. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -6
  50. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
  51. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
  52. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +4 -4
  53. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +4 -4
  54. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +4 -4
  55. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  56. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +4 -4
  57. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
  58. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +4 -4
  59. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +4 -4
  60. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +4 -4
  61. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +5 -5
  62. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +6 -6
  63. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
  64. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +9 -11
  65. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
  66. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +7 -8
  67. package/esm2022/form/form-generator/form-generator.service.mjs +5 -5
  68. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +5 -5
  69. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
  70. package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
  71. package/esm2022/form/form-group/form-field/form-field.component.mjs +10 -10
  72. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +6 -6
  73. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +6 -6
  74. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +5 -5
  75. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  76. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +6 -6
  77. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -6
  78. package/esm2022/form/form-group/form-group.component.mjs +8 -10
  79. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
  80. package/esm2022/form/form-group/services/form-field-layout.service.mjs +5 -5
  81. package/esm2022/form/index.mjs +1 -3
  82. package/esm2022/form/input/fdp-input.module.mjs +4 -4
  83. package/esm2022/form/input/input.component.mjs +6 -6
  84. package/esm2022/form/input-group/addon-body.component.mjs +5 -5
  85. package/esm2022/form/input-group/addon.component.mjs +5 -5
  86. package/esm2022/form/input-group/input-group.component.mjs +12 -12
  87. package/esm2022/form/input-group/input-group.config.mjs +4 -4
  88. package/esm2022/form/input-group/input-group.module.mjs +4 -4
  89. package/esm2022/form/input-group/input.component.mjs +3 -3
  90. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +7 -7
  91. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +6 -6
  92. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +10 -12
  93. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +8 -9
  94. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
  95. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +4 -4
  96. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
  97. package/esm2022/form/multi-input/base-multi-input.mjs +6 -6
  98. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +12 -12
  99. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  100. package/esm2022/form/multi-input/multi-input.component.mjs +9 -11
  101. package/esm2022/form/multi-input/multi-input.config.mjs +4 -4
  102. package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
  103. package/esm2022/form/radio-group/radio/radio.component.mjs +8 -8
  104. package/esm2022/form/radio-group/radio-group.component.mjs +8 -8
  105. package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
  106. package/esm2022/form/select/commons/base-select.mjs +6 -6
  107. package/esm2022/form/select/select/select.component.mjs +8 -8
  108. package/esm2022/form/select/select.config.mjs +4 -4
  109. package/esm2022/form/select/select.module.mjs +4 -4
  110. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  111. package/esm2022/form/step-input/number/number-step-input.component.mjs +9 -10
  112. package/esm2022/form/step-input/step-input-action-button.mjs +3 -3
  113. package/esm2022/form/step-input/step-input-control.directive.mjs +6 -6
  114. package/esm2022/form/step-input/step-input-decrement.directive.mjs +5 -5
  115. package/esm2022/form/step-input/step-input-increment.directive.mjs +5 -5
  116. package/esm2022/form/step-input/step-input.config.mjs +3 -3
  117. package/esm2022/form/step-input/step-input.module.mjs +4 -4
  118. package/esm2022/form/switch/switch/switch.component.mjs +6 -6
  119. package/esm2022/form/switch/switch/switch.config.mjs +3 -3
  120. package/esm2022/form/switch/switch.module.mjs +4 -4
  121. package/esm2022/form/text-area/text-area.component.mjs +8 -9
  122. package/esm2022/form/text-area/text-area.config.mjs +3 -3
  123. package/esm2022/form/text-area/text-area.module.mjs +4 -4
  124. package/esm2022/form/time-picker/time-picker.component.mjs +6 -6
  125. package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
  126. package/esm2022/fundamental-ngx.module.mjs +14 -33
  127. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +3 -3
  128. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +5 -9
  129. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -8
  130. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -8
  131. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +5 -8
  132. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +7 -9
  133. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +6 -15
  134. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +5 -9
  135. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +6 -8
  136. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +5 -5
  137. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +5 -5
  138. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +5 -5
  139. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +8 -9
  140. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
  141. package/esm2022/index.mjs +8 -12
  142. package/esm2022/info-label/info-label.component.mjs +5 -5
  143. package/esm2022/info-label/info-label.module.mjs +4 -4
  144. package/esm2022/link/link.component.mjs +5 -5
  145. package/esm2022/link/link.module.mjs +4 -4
  146. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  147. package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
  148. package/esm2022/list/base-list-item.mjs +11 -11
  149. package/esm2022/list/display-list-item/display-list-item.component.mjs +6 -7
  150. package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
  151. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +4 -4
  152. package/esm2022/list/list-group-footer.component.mjs +3 -3
  153. package/esm2022/list/list-group-header.component.mjs +3 -3
  154. package/esm2022/list/list.component.mjs +9 -11
  155. package/esm2022/list/list.config.mjs +3 -3
  156. package/esm2022/list/list.module.mjs +4 -4
  157. package/esm2022/list/load-more-content.directive.mjs +4 -4
  158. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +4 -4
  159. package/esm2022/list/object-list-item/object-list-item.component.mjs +6 -7
  160. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
  161. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +6 -7
  162. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
  163. package/esm2022/menu/menu-item.component.mjs +7 -7
  164. package/esm2022/menu/menu-trigger.directive.mjs +6 -6
  165. package/esm2022/menu/menu.component.mjs +6 -6
  166. package/esm2022/menu/menu.module.mjs +4 -4
  167. package/esm2022/menu-button/menu-button.component.mjs +5 -5
  168. package/esm2022/menu-button/menu-button.module.mjs +4 -4
  169. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +6 -6
  170. package/esm2022/message-popover/components/message-view/message-view.component.mjs +8 -10
  171. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +6 -6
  172. package/esm2022/message-popover/message-popover.component.mjs +7 -9
  173. package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
  174. package/esm2022/object-marker/object-marker.component.mjs +6 -7
  175. package/esm2022/object-marker/object-marker.module.mjs +4 -4
  176. package/esm2022/object-status/object-status.component.mjs +8 -8
  177. package/esm2022/object-status/object-status.module.mjs +4 -4
  178. package/esm2022/page-footer/page-footer.component.mjs +6 -6
  179. package/esm2022/page-footer/page-footer.module.mjs +4 -4
  180. package/esm2022/panel/panel-actions.component.mjs +3 -3
  181. package/esm2022/panel/panel-content/panel-content.component.mjs +4 -4
  182. package/esm2022/panel/panel.component.mjs +5 -5
  183. package/esm2022/panel/panel.config.mjs +4 -4
  184. package/esm2022/panel/panel.module.mjs +4 -4
  185. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +8 -9
  186. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
  187. package/esm2022/search-field/search-field.component.mjs +16 -18
  188. package/esm2022/search-field/search-field.module.mjs +4 -4
  189. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +9 -16
  190. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
  191. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -6
  192. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +6 -9
  193. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +6 -8
  194. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +7 -7
  195. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
  196. package/esm2022/settings-generator/settings-generator.component.mjs +9 -9
  197. package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
  198. package/esm2022/settings-generator/settings-generator.service.mjs +4 -4
  199. package/esm2022/shared/base.mjs +5 -5
  200. package/esm2022/shared/form/base.input.mjs +6 -6
  201. package/esm2022/shared/form/collection-base.input.mjs +6 -6
  202. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +13 -13
  203. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
  204. package/esm2022/shared/pipes/pipe.module.mjs +4 -4
  205. package/esm2022/shared/platform.config.mjs +3 -3
  206. package/esm2022/slider/slider.component.mjs +6 -6
  207. package/esm2022/slider/slider.module.mjs +4 -4
  208. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +4 -4
  209. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -4
  210. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -9
  211. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +7 -9
  212. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
  213. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +5 -5
  214. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +4 -4
  215. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
  216. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +8 -10
  217. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
  218. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +4 -4
  219. package/esm2022/split-menu-button/split-menu-button.component.mjs +6 -6
  220. package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
  221. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
  222. package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -5
  223. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -8
  224. package/esm2022/table/components/table-column/table-column.component.mjs +6 -6
  225. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -6
  226. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +5 -15
  227. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +7 -7
  228. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +6 -6
  229. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +11 -13
  230. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +7 -9
  231. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +9 -11
  232. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +6 -9
  233. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +6 -8
  234. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +9 -11
  235. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
  236. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -5
  237. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
  238. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
  239. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
  240. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -9
  241. package/esm2022/table/components/table-row/table-row.component.mjs +8 -12
  242. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
  243. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
  244. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +7 -8
  245. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +6 -6
  246. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +5 -6
  247. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +5 -14
  248. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +5 -8
  249. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +5 -7
  250. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +7 -10
  251. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -8
  252. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
  253. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +5 -5
  254. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
  255. package/esm2022/table/table.component.mjs +9 -14
  256. package/esm2022/table/table.module.mjs +4 -4
  257. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +6 -6
  258. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
  259. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +5 -5
  260. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
  261. package/esm2022/table-helpers/directives/table-cell.directive.mjs +16 -16
  262. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -3
  263. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
  264. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
  265. package/esm2022/table-helpers/directives/table-header.directive.mjs +7 -7
  266. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +3 -3
  267. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  268. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +4 -4
  269. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
  270. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +16 -1
  271. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
  272. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
  273. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
  274. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
  275. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
  276. package/esm2022/table-helpers/services/table-column-resize.service.mjs +5 -5
  277. package/esm2022/table-helpers/services/table-responsive.service.mjs +5 -5
  278. package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
  279. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
  280. package/esm2022/table-helpers/services/table.service.mjs +3 -3
  281. package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
  282. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +5 -5
  283. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +6 -10
  284. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +13 -15
  285. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
  286. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +5 -5
  287. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +12 -17
  288. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
  289. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +5 -5
  290. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -8
  291. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
  292. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +4 -4
  293. package/esm2022/variant-management/variant-management.component.mjs +8 -10
  294. package/esm2022/variant-management/variant-management.module.mjs +4 -4
  295. package/esm2022/wizard-generator/base-wizard-generator.mjs +5 -5
  296. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +7 -8
  297. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -9
  298. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +6 -7
  299. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +6 -7
  300. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +5 -6
  301. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +7 -7
  302. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
  303. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
  304. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
  305. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
  306. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +4 -4
  307. package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
  308. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  309. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +62 -74
  310. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  311. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -8
  312. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  313. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +54 -56
  314. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  315. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -10
  316. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  317. package/fesm2022/fundamental-ngx-platform-form.mjs +444 -602
  318. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  319. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +59 -87
  320. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  321. package/fesm2022/fundamental-ngx-platform-info-label.mjs +8 -8
  322. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  323. package/fesm2022/fundamental-ngx-platform-link.mjs +8 -8
  324. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  325. package/fesm2022/fundamental-ngx-platform-list.mjs +73 -78
  326. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  327. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -8
  328. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-platform-menu.mjs +20 -20
  330. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +29 -33
  332. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +9 -10
  334. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-platform-object-status.mjs +12 -12
  336. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +9 -9
  338. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -19
  340. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-platform-search-field.mjs +29 -32
  342. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +45 -56
  344. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-platform-shared.mjs +36 -36
  346. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-platform-slider.mjs +9 -9
  348. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +48 -53
  350. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -9
  352. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +115 -100
  354. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-platform-table.mjs +168 -218
  356. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +41 -52
  358. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +28 -31
  360. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +58 -61
  362. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  363. package/fesm2022/fundamental-ngx-platform.mjs +19 -42
  364. package/fesm2022/fundamental-ngx-platform.mjs.map +1 -1
  365. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -2
  366. package/form/form-group/form-group.component.d.ts +1 -1
  367. package/form/index.d.ts +0 -2
  368. package/form/input-group/input-group.component.d.ts +2 -2
  369. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  370. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
  371. package/fundamental-ngx-platform-v0.48.0-rc.1.tgz +0 -0
  372. package/fundamental-ngx.module.d.ts +27 -31
  373. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +0 -2
  374. package/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.d.ts +0 -2
  375. package/index.d.ts +7 -11
  376. package/list/list.component.d.ts +1 -1
  377. package/package.json +4 -28
  378. package/page-footer/page-footer.component.d.ts +1 -1
  379. package/schematics/ng-add/index.js +1 -1
  380. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  381. package/settings-generator/settings-generator.component.d.ts +2 -2
  382. package/table/components/table-p13-dialog/filtering/filter-rule.component.d.ts +2 -0
  383. package/table/table.component.d.ts +1 -1
  384. package/table-helpers/enums/collection-filter.enum.d.ts +2 -0
  385. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -1
  386. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -1
  387. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +2 -2
  388. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +2 -2
  389. package/action-bar/README.md +0 -25
  390. package/action-bar/action-bar.component.d.ts +0 -36
  391. package/action-bar/action-bar.module.d.ts +0 -8
  392. package/action-bar/index.d.ts +0 -2
  393. package/action-button-group/README.md +0 -25
  394. package/action-button-group/action-button-group.component.d.ts +0 -11
  395. package/action-button-group/action-button-group.module.d.ts +0 -7
  396. package/action-button-group/index.d.ts +0 -2
  397. package/esm2022/action-bar/action-bar.component.mjs +0 -64
  398. package/esm2022/action-bar/action-bar.module.mjs +0 -17
  399. package/esm2022/action-bar/fundamental-ngx-platform-action-bar.mjs +0 -5
  400. package/esm2022/action-bar/index.mjs +0 -3
  401. package/esm2022/action-button-group/action-button-group.component.mjs +0 -21
  402. package/esm2022/action-button-group/action-button-group.module.mjs +0 -16
  403. package/esm2022/action-button-group/fundamental-ngx-platform-action-button-group.mjs +0 -5
  404. package/esm2022/action-button-group/index.mjs +0 -3
  405. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +0 -143
  406. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +0 -16
  407. package/esm2022/thumbnail/fundamental-ngx-platform-thumbnail.mjs +0 -5
  408. package/esm2022/thumbnail/index.mjs +0 -6
  409. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +0 -166
  410. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +0 -100
  411. package/esm2022/thumbnail/thumbnail.component.mjs +0 -148
  412. package/esm2022/thumbnail/thumbnail.interfaces.mjs +0 -2
  413. package/esm2022/thumbnail/thumbnail.module.mjs +0 -19
  414. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +0 -148
  415. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +0 -69
  416. package/esm2022/upload-collection/directives/upload-collection-dragndrop.directive.mjs +0 -138
  417. package/esm2022/upload-collection/domain/upload-collection-data-provider.mjs +0 -106
  418. package/esm2022/upload-collection/domain/upload-collection-data-source.mjs +0 -95
  419. package/esm2022/upload-collection/fundamental-ngx-platform-upload-collection.mjs +0 -5
  420. package/esm2022/upload-collection/helpers/generate-message-stripe-data.mjs +0 -20
  421. package/esm2022/upload-collection/index.mjs +0 -12
  422. package/esm2022/upload-collection/models/upload-collection.models.mjs +0 -58
  423. package/esm2022/upload-collection/services/files-validator.service.mjs +0 -68
  424. package/esm2022/upload-collection/upload-collection/upload-collection-data-provider-test.mjs +0 -280
  425. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +0 -926
  426. package/esm2022/upload-collection/upload-collection.module.mjs +0 -33
  427. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +0 -85
  428. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +0 -1
  429. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +0 -41
  430. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs.map +0 -1
  431. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +0 -418
  432. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +0 -1
  433. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +0 -1893
  434. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +0 -1
  435. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +0 -69
  436. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +0 -7
  437. package/fundamental-ngx-platform-v0.47.4.tgz +0 -0
  438. package/thumbnail/README.md +0 -25
  439. package/thumbnail/index.d.ts +0 -5
  440. package/thumbnail/thumbnail-details/thumbnail-details.component.d.ts +0 -57
  441. package/thumbnail/thumbnail-image/thumbnail-image.component.d.ts +0 -48
  442. package/thumbnail/thumbnail.component.d.ts +0 -73
  443. package/thumbnail/thumbnail.interfaces.d.ts +0 -12
  444. package/thumbnail/thumbnail.module.d.ts +0 -9
  445. package/upload-collection/README.md +0 -25
  446. package/upload-collection/dialogs/move-to/move-to.component.d.ts +0 -57
  447. package/upload-collection/dialogs/new-folder/new-folder.component.d.ts +0 -26
  448. package/upload-collection/directives/upload-collection-dragndrop.directive.d.ts +0 -64
  449. package/upload-collection/domain/upload-collection-data-provider.d.ts +0 -46
  450. package/upload-collection/domain/upload-collection-data-source.d.ts +0 -49
  451. package/upload-collection/helpers/generate-message-stripe-data.d.ts +0 -3
  452. package/upload-collection/index.d.ts +0 -11
  453. package/upload-collection/models/upload-collection.models.d.ts +0 -225
  454. package/upload-collection/services/files-validator.service.d.ts +0 -18
  455. package/upload-collection/upload-collection/upload-collection-data-provider-test.d.ts +0 -36
  456. package/upload-collection/upload-collection/upload-collection.component.d.ts +0 -259
  457. package/upload-collection/upload-collection.module.d.ts +0 -11
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, Component, EventEmitter, Input, NgZone, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';
2
- import { NgClass, NgFor, NgIf } from '@angular/common';
2
+ import { NgClass } from '@angular/common';
3
3
  import { OverflowListDirective, OverflowListItemDirective } from '@fundamental-ngx/cdk/utils';
4
4
  import { ButtonComponent } from '@fundamental-ngx/core/button';
5
5
  import { IconComponent } from '@fundamental-ngx/core/icon';
@@ -122,25 +122,23 @@ export class IconTabBarTextTypeComponent extends ClosableIconTabBar {
122
122
  }
123
123
  return tabUIElement._dropdownTrigger.nativeElement;
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarTextTypeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: IconTabBarTextTypeComponent, isStandalone: true, selector: "fdp-icon-tab-bar-text-type", inputs: { enableTabReordering: "enableTabReordering", layoutMode: "layoutMode" }, outputs: { reordered: "reordered" }, viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: ["extraItemsPopover"], descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container fdpIconBarDndContainer [draggable]=\"enableTabReordering\" (dropped)=\"_onDropped($event)\">\n <ul\n class=\"fd-icon-tab-bar__header\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"100\"\n fdpIconBarDndList\n dndOrientation=\"horizontal\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n >\n <li\n *ngFor=\"let item of _tabs; let idx = index; trackBy: _trackByTab\"\n [ngClass]=\"item.cssClasses\"\n fdkOverflowListItem\n fdpIconBarDndItem\n [dndSeparatorClass]=\"['fd-icon-tab-bar__item--dnd-separator']\"\n [dndItemData]=\"item\"\n class=\"fd-icon-tab-bar__item\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n [attr.aria-hidden]=\"item.hidden\"\n role=\"presentation\"\n >\n <a\n *ngIf=\"!item.subItems?.length; else withPopover\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n (click)=\"_selectItem(item, $event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === _selectedUid\"\n >\n <span *ngIf=\"layoutMode === 'row'; else columnsMode\" class=\"fd-icon-tab-bar__tag\">\n {{ item.label }}\n <ng-container *ngIf=\"item.counter\"> ({{ item.counter }})</ng-container>\n </span>\n <ng-template #columnsMode>\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label }}</span>\n </ng-template>\n <span *ngIf=\"item.badge\" class=\"fd-icon-tab-bar__badge\"></span>\n <div class=\"screenreader-only\" *ngIf=\"item.color\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n </a>\n <ng-template #withPopover>\n <fdp-text-type-popover\n #tabItem\n [tabindex]=\"idx === 0 ? 0 : -1\"\n [parentTab]=\"item\"\n [selectedSubItemUid]=\"_selectedUid\"\n [colorAssociations]=\"colorAssociations\"\n (selectedSubItem)=\"_selectItem($event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </ng-template>\n <div class=\"fd-icon-tab-bar__button-container\" *ngIf=\"item.closable\">\n <button fd-button class=\"fd-icon-tab-bar__button\" fdType=\"transparent\" (click)=\"_closeTab(item.uId)\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n </li>\n <li *ngIf=\"_extraTabs.length\" role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-text-type-popover\n #extraItemsPopover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs\"\n [isExtraItemsMode]=\"true\"\n [colorAssociations]=\"colorAssociations\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </li>\n </ul>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconBarDndContainerDirective, selector: "[fdpIconBarDndContainer], [fdp-icon-bar-dnd-container]", inputs: ["draggable"], outputs: ["dropped"] }, { kind: "directive", type: OverflowListDirective, selector: "[fdkOverflowList]", inputs: ["overflowOffset", "isRtl", "itemCssBlockValue"], outputs: ["overflowChanged"] }, { kind: "directive", type: IconBarDndListDirective, selector: "[fdpIconBarDndList], [fdp-icon-bar-dnd-list]", inputs: ["dndOrientation", "dndAutoScroll"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: OverflowListItemDirective, selector: "[fdkOverflowListItem]" }, { kind: "directive", type: IconBarDndItemDirective, selector: "[fdpIconBarDndItem], [fdp-icon-bar-dnd-item]", inputs: ["dndItemData", "previewClass", "dndHoveredClass", "dndSeparatorClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextTypePopoverComponent, selector: "fdp-text-type-popover", inputs: ["isExtraItemsMode", "parentTab", "selectedSubItemUid", "tabindex"], outputs: ["selectedSubItem"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }] }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarTextTypeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: IconTabBarTextTypeComponent, isStandalone: true, selector: "fdp-icon-tab-bar-text-type", inputs: { enableTabReordering: "enableTabReordering", layoutMode: "layoutMode" }, outputs: { reordered: "reordered" }, viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: ["extraItemsPopover"], descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container fdpIconBarDndContainer [draggable]=\"enableTabReordering\" (dropped)=\"_onDropped($event)\">\n <ul\n class=\"fd-icon-tab-bar__header\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"100\"\n fdpIconBarDndList\n dndOrientation=\"horizontal\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n >\n @for (item of _tabs; track item.uId; let idx = $index) {\n <li\n [ngClass]=\"item.cssClasses\"\n fdkOverflowListItem\n fdpIconBarDndItem\n [dndSeparatorClass]=\"['fd-icon-tab-bar__item--dnd-separator']\"\n [dndItemData]=\"item\"\n class=\"fd-icon-tab-bar__item\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n [attr.aria-hidden]=\"item.hidden\"\n role=\"presentation\"\n >\n @if (!item.subItems?.length) {\n <a\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n (click)=\"_selectItem(item, $event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === _selectedUid\"\n >\n @if (layoutMode === 'row') {\n <span class=\"fd-icon-tab-bar__tag\">\n {{ item.label }}\n @if (item.counter) {\n ({{ item.counter }})\n }\n </span>\n } @else {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label }}</span>\n }\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n @if (item.color) {\n <div class=\"screenreader-only\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n }\n </a>\n } @else {\n <fdp-text-type-popover\n #tabItem\n [tabindex]=\"idx === 0 ? 0 : -1\"\n [parentTab]=\"item\"\n [selectedSubItemUid]=\"_selectedUid\"\n [colorAssociations]=\"colorAssociations\"\n (selectedSubItem)=\"_selectItem($event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n }\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraTabs.length) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-text-type-popover\n #extraItemsPopover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs\"\n [isExtraItemsMode]=\"true\"\n [colorAssociations]=\"colorAssociations\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </li>\n }\n </ul>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconBarDndContainerDirective, selector: "[fdpIconBarDndContainer], [fdp-icon-bar-dnd-container]", inputs: ["draggable"], outputs: ["dropped"] }, { kind: "directive", type: OverflowListDirective, selector: "[fdkOverflowList]", inputs: ["overflowOffset", "isRtl", "itemCssBlockValue"], outputs: ["overflowChanged"] }, { kind: "directive", type: IconBarDndListDirective, selector: "[fdpIconBarDndList], [fdp-icon-bar-dnd-list]", inputs: ["dndOrientation", "dndAutoScroll"] }, { kind: "directive", type: OverflowListItemDirective, selector: "[fdkOverflowListItem]" }, { kind: "directive", type: IconBarDndItemDirective, selector: "[fdpIconBarDndItem], [fdp-icon-bar-dnd-item]", inputs: ["dndItemData", "previewClass", "dndHoveredClass", "dndSeparatorClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: TextTypePopoverComponent, selector: "fdp-text-type-popover", inputs: ["isExtraItemsMode", "parentTab", "selectedSubItemUid", "tabindex"], outputs: ["selectedSubItem"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }] }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarTextTypeComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarTextTypeComponent, decorators: [{
129
129
  type: Component,
130
130
  args: [{ selector: 'fdp-icon-tab-bar-text-type', standalone: true, imports: [
131
131
  IconBarDndContainerDirective,
132
132
  OverflowListDirective,
133
133
  IconBarDndListDirective,
134
- NgFor,
135
134
  OverflowListItemDirective,
136
135
  IconBarDndItemDirective,
137
136
  NgClass,
138
- NgIf,
139
137
  TextTypePopoverComponent,
140
138
  ButtonComponent,
141
139
  IconComponent
142
- ], template: "<ng-container fdpIconBarDndContainer [draggable]=\"enableTabReordering\" (dropped)=\"_onDropped($event)\">\n <ul\n class=\"fd-icon-tab-bar__header\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"100\"\n fdpIconBarDndList\n dndOrientation=\"horizontal\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n >\n <li\n *ngFor=\"let item of _tabs; let idx = index; trackBy: _trackByTab\"\n [ngClass]=\"item.cssClasses\"\n fdkOverflowListItem\n fdpIconBarDndItem\n [dndSeparatorClass]=\"['fd-icon-tab-bar__item--dnd-separator']\"\n [dndItemData]=\"item\"\n class=\"fd-icon-tab-bar__item\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n [attr.aria-hidden]=\"item.hidden\"\n role=\"presentation\"\n >\n <a\n *ngIf=\"!item.subItems?.length; else withPopover\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n (click)=\"_selectItem(item, $event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === _selectedUid\"\n >\n <span *ngIf=\"layoutMode === 'row'; else columnsMode\" class=\"fd-icon-tab-bar__tag\">\n {{ item.label }}\n <ng-container *ngIf=\"item.counter\"> ({{ item.counter }})</ng-container>\n </span>\n <ng-template #columnsMode>\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label }}</span>\n </ng-template>\n <span *ngIf=\"item.badge\" class=\"fd-icon-tab-bar__badge\"></span>\n <div class=\"screenreader-only\" *ngIf=\"item.color\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n </a>\n <ng-template #withPopover>\n <fdp-text-type-popover\n #tabItem\n [tabindex]=\"idx === 0 ? 0 : -1\"\n [parentTab]=\"item\"\n [selectedSubItemUid]=\"_selectedUid\"\n [colorAssociations]=\"colorAssociations\"\n (selectedSubItem)=\"_selectItem($event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </ng-template>\n <div class=\"fd-icon-tab-bar__button-container\" *ngIf=\"item.closable\">\n <button fd-button class=\"fd-icon-tab-bar__button\" fdType=\"transparent\" (click)=\"_closeTab(item.uId)\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n </li>\n <li *ngIf=\"_extraTabs.length\" role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-text-type-popover\n #extraItemsPopover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs\"\n [isExtraItemsMode]=\"true\"\n [colorAssociations]=\"colorAssociations\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </li>\n </ul>\n</ng-container>\n" }]
143
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { _tabUIElements: [{
140
+ ], template: "<ng-container fdpIconBarDndContainer [draggable]=\"enableTabReordering\" (dropped)=\"_onDropped($event)\">\n <ul\n class=\"fd-icon-tab-bar__header\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"100\"\n fdpIconBarDndList\n dndOrientation=\"horizontal\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n >\n @for (item of _tabs; track item.uId; let idx = $index) {\n <li\n [ngClass]=\"item.cssClasses\"\n fdkOverflowListItem\n fdpIconBarDndItem\n [dndSeparatorClass]=\"['fd-icon-tab-bar__item--dnd-separator']\"\n [dndItemData]=\"item\"\n class=\"fd-icon-tab-bar__item\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n [attr.aria-hidden]=\"item.hidden\"\n role=\"presentation\"\n >\n @if (!item.subItems?.length) {\n <a\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n (click)=\"_selectItem(item, $event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === _selectedUid\"\n >\n @if (layoutMode === 'row') {\n <span class=\"fd-icon-tab-bar__tag\">\n {{ item.label }}\n @if (item.counter) {\n ({{ item.counter }})\n }\n </span>\n } @else {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label }}</span>\n }\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n @if (item.color) {\n <div class=\"screenreader-only\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n }\n </a>\n } @else {\n <fdp-text-type-popover\n #tabItem\n [tabindex]=\"idx === 0 ? 0 : -1\"\n [parentTab]=\"item\"\n [selectedSubItemUid]=\"_selectedUid\"\n [colorAssociations]=\"colorAssociations\"\n (selectedSubItem)=\"_selectItem($event)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n }\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraTabs.length) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-text-type-popover\n #extraItemsPopover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs\"\n [isExtraItemsMode]=\"true\"\n [colorAssociations]=\"colorAssociations\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event)\"\n >\n </fdp-text-type-popover>\n </li>\n }\n </ul>\n</ng-container>\n" }]
141
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { _tabUIElements: [{
144
142
  type: ViewChildren,
145
143
  args: ['tabItem']
146
144
  }], _tabBarPopover: [{
@@ -153,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
153
151
  }], reordered: [{
154
152
  type: Output
155
153
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXRleHQtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXRleHQtdHlwZS9pY29uLXRhYi1iYXItdGV4dC10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGV4dC10eXBlL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFjLDRCQUE0QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixF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Q0wseUJBQXlCLGtFQUN6Qix1QkFBdUIsMEtBQ3ZCLE9BQU8sb0ZBQ1AsSUFBSSw2RkFDSix3QkFBd0IsNktBQ3hCLGVBQWUsd0hBQ2YsYUFBYTs7MkZBR1IsMkJBQTJCO2tCQWxCdkMsU0FBUzsrQkFDSSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLEtBQUs7d0JBQ0wseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsSUFBSTt3QkFDSix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsYUFBYTtxQkFDaEI7NkhBSXdCLGNBQWM7c0JBQXRDLFlBQVk7dUJBQUMsU0FBUztnQkFHUyxjQUFjO3NCQUE3QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFNOUIsbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixTQUFTO3NCQURSLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJmbG93TGlzdERpcmVjdGl2ZSwgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFVOSVFVRV9LRVlfU0VQQVJBVE9SIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEZkRG5ERXZlbnQsIEljb25CYXJEbmRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RuZC9pY29uLWJhci1kbmQtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uQmFyRG5kSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZG5kL2ljb24tYmFyLWRuZC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uQmFyRG5kTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZG5kL2ljb24tYmFyLWRuZC1saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsb3NhYmxlSWNvblRhYkJhciB9IGZyb20gJy4uL2Nsb3NhYmxlLWljb24tdGFiLWJhci5jbGFzcyc7XG5pbXBvcnQgeyBUZXh0VHlwZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVycy90ZXh0LXR5cGUtcG9wb3Zlci90ZXh0LXR5cGUtcG9wb3Zlci5jb21wb25lbnQnO1xuXG4vKiogQGhpZGRlbiAqL1xuaW50ZXJmYWNlIERhdGFGb3JSZW9yZGVyaW5nIHtcbiAgICBhcnI6IEljb25UYWJCYXJJdGVtW107XG4gICAgaXRlbTogSWNvblRhYkJhckl0ZW07XG4gICAgcGFyZW50VWlkOiBzdHJpbmc7XG59XG5cbi8qKiBAaGlkZGVuICovXG50eXBlIFRhYkl0ZW0gPSBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IFRleHRUeXBlUG9wb3ZlckNvbXBvbmVudDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBJY29uQmFyRG5kQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIEljb25CYXJEbmRMaXN0RGlyZWN0aXZlLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgSWNvbkJhckRuZEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRleHRUeXBlUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBJY29uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyVGV4dFR5cGVDb21wb25lbnQgZXh0ZW5kcyBDbG9zYWJsZUljb25UYWJCYXIge1xuICAgIC8qKiBAaGlkZGVuIGxpc3Qgb2YgdGFiIGh0bWwgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMgKi9cbiAgICBAVmlld0NoaWxkcmVuKCd0YWJJdGVtJykgX3RhYlVJRWxlbWVudHM6IFF1ZXJ5TGlzdDxUYWJJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZXh0cmFJdGVtc1BvcG92ZXInKSBfdGFiQmFyUG9wb3ZlcjogVGV4dFR5cGVQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpc2FibGUgb3IgZW5hYmxlIHJlb3JkZXJpbmcoZHJhZyBhbmQgZHJvcCkgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGVuYWJsZVRhYlJlb3JkZXJpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMYXlvdXQgdHlwZSBmb3IgdGFiLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGF5b3V0TW9kZTogJ3JvdycgfCAnY29sdW1uJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHVzZXIgZHJvcHMgdGhlIHRhYi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtW10+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIF9uZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihfY2QsIF9uZ1pvbmUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBzZWxlY3RlZCBpdGVtIGlzIHN1Ykl0ZW1cbiAgICAgICAgLy8gVGhlbiB0byBmaW5kIHJvb3QgdGFiLCBhbmQgcGFzcyBpdCB0byB0aGUgcGFyZW50IG1ldGhvZC5cbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbT8udUlkLmluY2x1ZGVzKFVOSVFVRV9LRVlfU0VQQVJBVE9SKSkge1xuICAgICAgICAgICAgY29uc3Qgcm9vdFRhYlVpZCA9IHNlbGVjdGVkSXRlbS51SWQuc3BsaXQoVU5JUVVFX0tFWV9TRVBBUkFUT1IpWzBdO1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdGhpcy5fdGFicy5maW5kKCh0YWIpID0+IHRhYi51SWQgPT09IHJvb3RUYWJVaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZHJhZ2dhYmxlSXRlbVxuICAgICAqIEBwYXJhbSB0YXJnZXRJdGVtXG4gICAgICogQHBhcmFtIGFjdGlvblxuICAgICAqL1xuICAgIF9vbkRyb3BwZWQoZXZlbnQ6IEZkRG5ERXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW5Ecm9wKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVwbGFjZWRQYXJzZWRVaWRBcnIgPSBldmVudC50YXJnZXRJdGVtLnVJZC5zcGxpdChVTklRVUVfS0VZX1NFUEFSQVRPUik7XG4gICAgICAgIHJlcGxhY2VkUGFyc2VkVWlkQXJyLmxlbmd0aCA9IHJlcGxhY2VkUGFyc2VkVWlkQXJyLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGRyYWdnYWJsZVBhcnNlZFVpZEFyciA9IGV2ZW50LmRyYWdnYWJsZUl0ZW0udUlkLnNwbGl0KFVOSVFVRV9LRVlfU0VQQVJBVE9SKTtcbiAgICAgICAgZHJhZ2dhYmxlUGFyc2VkVWlkQXJyLmxlbmd0aCA9IGRyYWdnYWJsZVBhcnNlZFVpZEFyci5sZW5ndGggLSAxO1xuXG4gICAgICAgIGNvbnN0IHRhYkluZm9Gb3JOZXdMaXN0ID0gdGhpcy5fZ2V0VGFiSW5mb0Zyb21NYWluTGlzdChldmVudC50YXJnZXRJdGVtLnVJZCk7XG4gICAgICAgIGNvbnN0IHRhYkluZm9Gb3JQcmV2TGlzdCA9IHRoaXMuX2dldFRhYkluZm9Gcm9tTWFpbkxpc3QoZXZlbnQuZHJhZ2dhYmxlSXRlbS51SWQpO1xuXG4gICAgICAgIGlmICghdGFiSW5mb0Zvck5ld0xpc3QgfHwgIXRhYkluZm9Gb3JQcmV2TGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YUZvckFjdGlvbiA9IHtcbiAgICAgICAgICAgIHJlcGxhY2VkSXRlbUluZm86IHtcbiAgICAgICAgICAgICAgICBhcnI6IHRhYkluZm9Gb3JOZXdMaXN0LnBhcmVudCxcbiAgICAgICAgICAgICAgICBpdGVtOiB0YWJJbmZvRm9yTmV3TGlzdC50YWIsXG4gICAgICAgICAgICAgICAgcGFyZW50VWlkOiByZXBsYWNlZFBhcnNlZFVpZEFyci5sZW5ndGggPyByZXBsYWNlZFBhcnNlZFVpZEFyci5qb2luKFVOSVFVRV9LRVlfU0VQQVJBVE9SKSA6ICcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZHJhZ2dhYmxlSXRlbUluZm86IHtcbiAgICAgICAgICAgICAgICBhcnI6IHRhYkluZm9Gb3JQcmV2TGlzdC5wYXJlbnQsXG4gICAgICAgICAgICAgICAgaXRlbTogdGFiSW5mb0ZvclByZXZMaXN0LnRhYixcbiAgICAgICAgICAgICAgICBwYXJlbnRVaWQ6IGRyYWdnYWJsZVBhcnNlZFVpZEFyci5sZW5ndGggPyBkcmFnZ2FibGVQYXJzZWRVaWRBcnIuam9pbihVTklRVUVfS0VZX1NFUEFSQVRPUikgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50LmFjdGlvbiA9PT0gJ3JlcGxhY2UnID8gdGhpcy5fcmVwbGFjZUFzU2libGluZyhkYXRhRm9yQWN0aW9uKSA6IHRoaXMuX2luc2VydEl0ZW1Bc0NoaWxkKGRhdGFGb3JBY3Rpb24pO1xuXG4gICAgICAgIHRoaXMucmVvcmRlcmVkLmVtaXQodGhpcy5fdGFicyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYW5Ecm9wKGV2ZW50OiBGZERuREV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBwYXJlbnRVSWQ6IE51bGxhYmxlPHN0cmluZz4gPVxuICAgICAgICAgICAgZXZlbnQuYWN0aW9uID09PSAncmVwbGFjZScgPyBldmVudC50YXJnZXRJdGVtLnBhcmVudFVJZCA6IGV2ZW50LnRhcmdldEl0ZW0udUlkO1xuICAgICAgICB3aGlsZSAocGFyZW50VUlkKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50VUlkID09PSBldmVudC5kcmFnZ2FibGVJdGVtLnVJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5leHRTZXBhcmF0b3JJZHggPSBwYXJlbnRVSWQubGFzdEluZGV4T2YoVU5JUVVFX0tFWV9TRVBBUkFUT1IpO1xuXG4gICAgICAgICAgICBwYXJlbnRVSWQgPSBuZXh0U2VwYXJhdG9ySWR4ID4gMCA/IHBhcmVudFVJZC5zbGljZSgwLCBuZXh0U2VwYXJhdG9ySWR4KSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIEluc2VydCB0YWIgaW50byBhbm90aGVyIHRhYi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbnNlcnRJdGVtQXNDaGlsZChkYXRhOiB7XG4gICAgICAgIHJlcGxhY2VkSXRlbUluZm86IERhdGFGb3JSZW9yZGVyaW5nO1xuICAgICAgICBkcmFnZ2FibGVJdGVtSW5mbzogRGF0YUZvclJlb3JkZXJpbmc7XG4gICAgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VkSXRlbUluZm8sIGRyYWdnYWJsZUl0ZW1JbmZvIH0gPSBkYXRhO1xuICAgICAgICAvLyBSZW1vdmUgZHJhZ2dhYmxlIHRhYiBmcm9tIHByZXZpb3VzIGxpc3RcbiAgICAgICAgZHJhZ2dhYmxlSXRlbUluZm8uYXJyLnNwbGljZShkcmFnZ2FibGVJdGVtSW5mby5pdGVtLmluZGV4LCAxKTtcbiAgICAgICAgaWYgKCFyZXBsYWNlZEl0ZW1JbmZvLml0ZW0uc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmVwbGFjZWRJdGVtSW5mby5pdGVtLnN1Ykl0ZW1zID0gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHRhYiB0byBzdWJpdGVtIG9mIHRoZSB0YXJnZXQgdGFiXG4gICAgICAgIHJlcGxhY2VkSXRlbUluZm8uaXRlbS5zdWJJdGVtcy5wdXNoKGRyYWdnYWJsZUl0ZW1JbmZvLml0ZW0pO1xuICAgICAgICB0aGlzLl90YWJzID0gdGhpcy5fdXBkYXRlVGFicyh0aGlzLl90YWJzKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGRhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5zZXJ0IHRhYiBiZXR3ZWVuIHRhYnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXBsYWNlQXNTaWJsaW5nKGRhdGE6IHtcbiAgICAgICAgcmVwbGFjZWRJdGVtSW5mbzogRGF0YUZvclJlb3JkZXJpbmc7XG4gICAgICAgIGRyYWdnYWJsZUl0ZW1JbmZvOiBEYXRhRm9yUmVvcmRlcmluZztcbiAgICB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgcmVwbGFjZWRJdGVtSW5mbywgZHJhZ2dhYmxlSXRlbUluZm8gfSA9IGRhdGE7XG4gICAgICAgIGRyYWdnYWJsZUl0ZW1JbmZvLmFyci5zcGxpY2UoZHJhZ2dhYmxlSXRlbUluZm8uaXRlbS5pbmRleCwgMSk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gcmVwbGFjZWRJdGVtSW5mbz8uaXRlbT8uaW5kZXggfHwgMDtcbiAgICAgICAgcmVwbGFjZWRJdGVtSW5mby5hcnIuc3BsaWNlKG5ld0luZGV4LCAwLCBkcmFnZ2FibGVJdGVtSW5mby5pdGVtKTtcbiAgICAgICAgdGhpcy5fdGFicyA9IHRoaXMuX3VwZGF0ZVRhYnModGhpcy5fdGFicyk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZSh0YWJVSUVsZW1lbnQ6IFRhYkl0ZW0pOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFiVUlFbGVtZW50ID09PSAnb2JqZWN0JyAmJiAnbmF0aXZlRWxlbWVudCcgaW4gdGFiVUlFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFiVUlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhYlVJRWxlbWVudC5fZHJvcGRvd25UcmlnZ2VyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBmZHBJY29uQmFyRG5kQ29udGFpbmVyIFtkcmFnZ2FibGVdPVwiZW5hYmxlVGFiUmVvcmRlcmluZ1wiIChkcm9wcGVkKT1cIl9vbkRyb3BwZWQoJGV2ZW50KVwiPlxuICAgIDx1bFxuICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faGVhZGVyXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICBmZGtPdmVyZmxvd0xpc3RcbiAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgW292ZXJmbG93T2Zmc2V0XT1cIjEwMFwiXG4gICAgICAgIGZkcEljb25CYXJEbmRMaXN0XG4gICAgICAgIGRuZE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgIChvdmVyZmxvd0NoYW5nZWQpPVwiX3JlY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfdGFiczsgbGV0IGlkeCA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeVRhYlwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNzc0NsYXNzZXNcIlxuICAgICAgICAgICAgZmRrT3ZlcmZsb3dMaXN0SXRlbVxuICAgICAgICAgICAgZmRwSWNvbkJhckRuZEl0ZW1cbiAgICAgICAgICAgIFtkbmRTZXBhcmF0b3JDbGFzc109XCJbJ2ZkLWljb24tdGFiLWJhcl9faXRlbS0tZG5kLXNlcGFyYXRvciddXCJcbiAgICAgICAgICAgIFtkbmRJdGVtRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC1pY29uLXRhYi1iYXJfX2l0ZW0tLWNsb3NhYmxlXT1cIml0ZW0uY2xvc2FibGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5zdWJJdGVtcz8ubGVuZ3RoOyBlbHNlIHdpdGhQb3BvdmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlkeCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS51SWQgPT09IF9zZWxlY3RlZFVpZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsYXlvdXRNb2RlID09PSAncm93JzsgZWxzZSBjb2x1bW5zTW9kZVwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWdcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jb3VudGVyXCI+ICh7eyBpdGVtLmNvdW50ZXIgfX0pPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sdW1uc01vZGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFnXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5iYWRnZVwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19iYWRnZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIiAqbmdJZj1cIml0ZW0uY29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgKGNvbG9yQXNzb2NpYXRpb25zICYmIGNvbG9yQXNzb2NpYXRpb25zW2l0ZW0uY29sb3JdKSB8fCBpdGVtLmNvbG9yIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpdGhQb3BvdmVyPlxuICAgICAgICAgICAgICAgIDxmZHAtdGV4dC10eXBlLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgI3RhYkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImlkeCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgICAgIFtwYXJlbnRUYWJdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFN1Ykl0ZW1VaWRdPVwiX3NlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkU3ViSXRlbSk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgaXRlbSwgaWR4KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbG9zZVRhYik9XCJfY2xvc2VUYWIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmRwLXRleHQtdHlwZS1wb3BvdmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uY2xvc2FibGVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cImRlY2xpbmVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpICpuZ0lmPVwiX2V4dHJhVGFicy5sZW5ndGhcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2l0ZW0gZmQtaWNvbi10YWItYmFyX19pdGVtLS1vdmVyZmxvd1wiPlxuICAgICAgICAgICAgPGZkcC10ZXh0LXR5cGUtcG9wb3ZlclxuICAgICAgICAgICAgICAgICNleHRyYUl0ZW1zUG9wb3ZlclxuICAgICAgICAgICAgICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgICAgICAgICAgICAgW2V4dHJhVGFic109XCJfZXh0cmFUYWJzXCJcbiAgICAgICAgICAgICAgICBbaXNFeHRyYUl0ZW1zTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnNcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0ZpcnN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbSgwKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzTGFzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oX2xhc3RWaXNpYmxlVGFiSW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZHAtdGV4dC10eXBlLXBvcG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbjwvbmctY29udGFpbmVyPlxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXRleHQtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXRleHQtdHlwZS9pY29uLXRhYi1iYXItdGV4dC10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGV4dC10eXBlL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyw0QkFBNEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFD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T0FBTyxvRkFDUCx3QkFBd0IsNktBQ3hCLGVBQWUsd0hBQ2YsYUFBYTs7MkZBR1IsMkJBQTJCO2tCQWhCdkMsU0FBUzsrQkFDSSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixhQUFhO3FCQUNoQjsyR0FJd0IsY0FBYztzQkFBdEMsWUFBWTt1QkFBQyxTQUFTO2dCQUdTLGNBQWM7c0JBQTdDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQU05QixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBVTklRVUVfS0VZX1NFUEFSQVRPUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGZERuREV2ZW50LCBJY29uQmFyRG5kQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kbmQvaWNvbi1iYXItZG5kLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWNvbkJhckRuZEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RuZC9pY29uLWJhci1kbmQtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWNvbkJhckRuZExpc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RuZC9pY29uLWJhci1kbmQtbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgVGV4dFR5cGVQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3ZlcnMvdGV4dC10eXBlLXBvcG92ZXIvdGV4dC10eXBlLXBvcG92ZXIuY29tcG9uZW50JztcblxuLyoqIEBoaWRkZW4gKi9cbmludGVyZmFjZSBEYXRhRm9yUmVvcmRlcmluZyB7XG4gICAgYXJyOiBJY29uVGFiQmFySXRlbVtdO1xuICAgIGl0ZW06IEljb25UYWJCYXJJdGVtO1xuICAgIHBhcmVudFVpZDogc3RyaW5nO1xufVxuXG4vKiogQGhpZGRlbiAqL1xudHlwZSBUYWJJdGVtID0gRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBUZXh0VHlwZVBvcG92ZXJDb21wb25lbnQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci10ZXh0LXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXItdGV4dC10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgSWNvbkJhckRuZENvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICAgICAgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLFxuICAgICAgICBJY29uQmFyRG5kTGlzdERpcmVjdGl2ZSxcbiAgICAgICAgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgSWNvbkJhckRuZEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIFRleHRUeXBlUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBJY29uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyVGV4dFR5cGVDb21wb25lbnQgZXh0ZW5kcyBDbG9zYWJsZUljb25UYWJCYXIge1xuICAgIC8qKiBAaGlkZGVuIGxpc3Qgb2YgdGFiIGh0bWwgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMgKi9cbiAgICBAVmlld0NoaWxkcmVuKCd0YWJJdGVtJykgX3RhYlVJRWxlbWVudHM6IFF1ZXJ5TGlzdDxUYWJJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZXh0cmFJdGVtc1BvcG92ZXInKSBfdGFiQmFyUG9wb3ZlcjogVGV4dFR5cGVQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpc2FibGUgb3IgZW5hYmxlIHJlb3JkZXJpbmcoZHJhZyBhbmQgZHJvcCkgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGVuYWJsZVRhYlJlb3JkZXJpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMYXlvdXQgdHlwZSBmb3IgdGFiLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGF5b3V0TW9kZTogJ3JvdycgfCAnY29sdW1uJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHVzZXIgZHJvcHMgdGhlIHRhYi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtW10+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIF9uZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihfY2QsIF9uZ1pvbmUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBzZWxlY3RlZCBpdGVtIGlzIHN1Ykl0ZW1cbiAgICAgICAgLy8gVGhlbiB0byBmaW5kIHJvb3QgdGFiLCBhbmQgcGFzcyBpdCB0byB0aGUgcGFyZW50IG1ldGhvZC5cbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbT8udUlkLmluY2x1ZGVzKFVOSVFVRV9LRVlfU0VQQVJBVE9SKSkge1xuICAgICAgICAgICAgY29uc3Qgcm9vdFRhYlVpZCA9IHNlbGVjdGVkSXRlbS51SWQuc3BsaXQoVU5JUVVFX0tFWV9TRVBBUkFUT1IpWzBdO1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdGhpcy5fdGFicy5maW5kKCh0YWIpID0+IHRhYi51SWQgPT09IHJvb3RUYWJVaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZHJhZ2dhYmxlSXRlbVxuICAgICAqIEBwYXJhbSB0YXJnZXRJdGVtXG4gICAgICogQHBhcmFtIGFjdGlvblxuICAgICAqL1xuICAgIF9vbkRyb3BwZWQoZXZlbnQ6IEZkRG5ERXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW5Ecm9wKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVwbGFjZWRQYXJzZWRVaWRBcnIgPSBldmVudC50YXJnZXRJdGVtLnVJZC5zcGxpdChVTklRVUVfS0VZX1NFUEFSQVRPUik7XG4gICAgICAgIHJlcGxhY2VkUGFyc2VkVWlkQXJyLmxlbmd0aCA9IHJlcGxhY2VkUGFyc2VkVWlkQXJyLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGRyYWdnYWJsZVBhcnNlZFVpZEFyciA9IGV2ZW50LmRyYWdnYWJsZUl0ZW0udUlkLnNwbGl0KFVOSVFVRV9LRVlfU0VQQVJBVE9SKTtcbiAgICAgICAgZHJhZ2dhYmxlUGFyc2VkVWlkQXJyLmxlbmd0aCA9IGRyYWdnYWJsZVBhcnNlZFVpZEFyci5sZW5ndGggLSAxO1xuXG4gICAgICAgIGNvbnN0IHRhYkluZm9Gb3JOZXdMaXN0ID0gdGhpcy5fZ2V0VGFiSW5mb0Zyb21NYWluTGlzdChldmVudC50YXJnZXRJdGVtLnVJZCk7XG4gICAgICAgIGNvbnN0IHRhYkluZm9Gb3JQcmV2TGlzdCA9IHRoaXMuX2dldFRhYkluZm9Gcm9tTWFpbkxpc3QoZXZlbnQuZHJhZ2dhYmxlSXRlbS51SWQpO1xuXG4gICAgICAgIGlmICghdGFiSW5mb0Zvck5ld0xpc3QgfHwgIXRhYkluZm9Gb3JQcmV2TGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YUZvckFjdGlvbiA9IHtcbiAgICAgICAgICAgIHJlcGxhY2VkSXRlbUluZm86IHtcbiAgICAgICAgICAgICAgICBhcnI6IHRhYkluZm9Gb3JOZXdMaXN0LnBhcmVudCxcbiAgICAgICAgICAgICAgICBpdGVtOiB0YWJJbmZvRm9yTmV3TGlzdC50YWIsXG4gICAgICAgICAgICAgICAgcGFyZW50VWlkOiByZXBsYWNlZFBhcnNlZFVpZEFyci5sZW5ndGggPyByZXBsYWNlZFBhcnNlZFVpZEFyci5qb2luKFVOSVFVRV9LRVlfU0VQQVJBVE9SKSA6ICcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZHJhZ2dhYmxlSXRlbUluZm86IHtcbiAgICAgICAgICAgICAgICBhcnI6IHRhYkluZm9Gb3JQcmV2TGlzdC5wYXJlbnQsXG4gICAgICAgICAgICAgICAgaXRlbTogdGFiSW5mb0ZvclByZXZMaXN0LnRhYixcbiAgICAgICAgICAgICAgICBwYXJlbnRVaWQ6IGRyYWdnYWJsZVBhcnNlZFVpZEFyci5sZW5ndGggPyBkcmFnZ2FibGVQYXJzZWRVaWRBcnIuam9pbihVTklRVUVfS0VZX1NFUEFSQVRPUikgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50LmFjdGlvbiA9PT0gJ3JlcGxhY2UnID8gdGhpcy5fcmVwbGFjZUFzU2libGluZyhkYXRhRm9yQWN0aW9uKSA6IHRoaXMuX2luc2VydEl0ZW1Bc0NoaWxkKGRhdGFGb3JBY3Rpb24pO1xuXG4gICAgICAgIHRoaXMucmVvcmRlcmVkLmVtaXQodGhpcy5fdGFicyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYW5Ecm9wKGV2ZW50OiBGZERuREV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBwYXJlbnRVSWQ6IE51bGxhYmxlPHN0cmluZz4gPVxuICAgICAgICAgICAgZXZlbnQuYWN0aW9uID09PSAncmVwbGFjZScgPyBldmVudC50YXJnZXRJdGVtLnBhcmVudFVJZCA6IGV2ZW50LnRhcmdldEl0ZW0udUlkO1xuICAgICAgICB3aGlsZSAocGFyZW50VUlkKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50VUlkID09PSBldmVudC5kcmFnZ2FibGVJdGVtLnVJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5leHRTZXBhcmF0b3JJZHggPSBwYXJlbnRVSWQubGFzdEluZGV4T2YoVU5JUVVFX0tFWV9TRVBBUkFUT1IpO1xuXG4gICAgICAgICAgICBwYXJlbnRVSWQgPSBuZXh0U2VwYXJhdG9ySWR4ID4gMCA/IHBhcmVudFVJZC5zbGljZSgwLCBuZXh0U2VwYXJhdG9ySWR4KSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIEluc2VydCB0YWIgaW50byBhbm90aGVyIHRhYi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbnNlcnRJdGVtQXNDaGlsZChkYXRhOiB7XG4gICAgICAgIHJlcGxhY2VkSXRlbUluZm86IERhdGFGb3JSZW9yZGVyaW5nO1xuICAgICAgICBkcmFnZ2FibGVJdGVtSW5mbzogRGF0YUZvclJlb3JkZXJpbmc7XG4gICAgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHJlcGxhY2VkSXRlbUluZm8sIGRyYWdnYWJsZUl0ZW1JbmZvIH0gPSBkYXRhO1xuICAgICAgICAvLyBSZW1vdmUgZHJhZ2dhYmxlIHRhYiBmcm9tIHByZXZpb3VzIGxpc3RcbiAgICAgICAgZHJhZ2dhYmxlSXRlbUluZm8uYXJyLnNwbGljZShkcmFnZ2FibGVJdGVtSW5mby5pdGVtLmluZGV4LCAxKTtcbiAgICAgICAgaWYgKCFyZXBsYWNlZEl0ZW1JbmZvLml0ZW0uc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmVwbGFjZWRJdGVtSW5mby5pdGVtLnN1Ykl0ZW1zID0gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHRhYiB0byBzdWJpdGVtIG9mIHRoZSB0YXJnZXQgdGFiXG4gICAgICAgIHJlcGxhY2VkSXRlbUluZm8uaXRlbS5zdWJJdGVtcy5wdXNoKGRyYWdnYWJsZUl0ZW1JbmZvLml0ZW0pO1xuICAgICAgICB0aGlzLl90YWJzID0gdGhpcy5fdXBkYXRlVGFicyh0aGlzLl90YWJzKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGRhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5zZXJ0IHRhYiBiZXR3ZWVuIHRhYnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXBsYWNlQXNTaWJsaW5nKGRhdGE6IHtcbiAgICAgICAgcmVwbGFjZWRJdGVtSW5mbzogRGF0YUZvclJlb3JkZXJpbmc7XG4gICAgICAgIGRyYWdnYWJsZUl0ZW1JbmZvOiBEYXRhRm9yUmVvcmRlcmluZztcbiAgICB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgcmVwbGFjZWRJdGVtSW5mbywgZHJhZ2dhYmxlSXRlbUluZm8gfSA9IGRhdGE7XG4gICAgICAgIGRyYWdnYWJsZUl0ZW1JbmZvLmFyci5zcGxpY2UoZHJhZ2dhYmxlSXRlbUluZm8uaXRlbS5pbmRleCwgMSk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gcmVwbGFjZWRJdGVtSW5mbz8uaXRlbT8uaW5kZXggfHwgMDtcbiAgICAgICAgcmVwbGFjZWRJdGVtSW5mby5hcnIuc3BsaWNlKG5ld0luZGV4LCAwLCBkcmFnZ2FibGVJdGVtSW5mby5pdGVtKTtcbiAgICAgICAgdGhpcy5fdGFicyA9IHRoaXMuX3VwZGF0ZVRhYnModGhpcy5fdGFicyk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZSh0YWJVSUVsZW1lbnQ6IFRhYkl0ZW0pOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFiVUlFbGVtZW50ID09PSAnb2JqZWN0JyAmJiAnbmF0aXZlRWxlbWVudCcgaW4gdGFiVUlFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFiVUlFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhYlVJRWxlbWVudC5fZHJvcGRvd25UcmlnZ2VyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBmZHBJY29uQmFyRG5kQ29udGFpbmVyIFtkcmFnZ2FibGVdPVwiZW5hYmxlVGFiUmVvcmRlcmluZ1wiIChkcm9wcGVkKT1cIl9vbkRyb3BwZWQoJGV2ZW50KVwiPlxuICAgIDx1bFxuICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faGVhZGVyXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICBmZGtPdmVyZmxvd0xpc3RcbiAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgW292ZXJmbG93T2Zmc2V0XT1cIjEwMFwiXG4gICAgICAgIGZkcEljb25CYXJEbmRMaXN0XG4gICAgICAgIGRuZE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgIChvdmVyZmxvd0NoYW5nZWQpPVwiX3JlY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCRldmVudClcIlxuICAgID5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBfdGFiczsgdHJhY2sgaXRlbS51SWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgZmRrT3ZlcmZsb3dMaXN0SXRlbVxuICAgICAgICAgICAgICAgIGZkcEljb25CYXJEbmRJdGVtXG4gICAgICAgICAgICAgICAgW2RuZFNlcGFyYXRvckNsYXNzXT1cIlsnZmQtaWNvbi10YWItYmFyX19pdGVtLS1kbmQtc2VwYXJhdG9yJ11cIlxuICAgICAgICAgICAgICAgIFtkbmRJdGVtRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9faXRlbS0tY2xvc2FibGVdPVwiaXRlbS5jbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpZHggPT09IDAgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgaXRlbSwgaWR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0udUlkID09PSBfc2VsZWN0ZWRVaWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGxheW91dE1vZGUgPT09ICdyb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgaXRlbS5jb3VudGVyIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvdW50ZXJcIj57eyBpdGVtLmNvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhZ1wiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYmFkZ2VcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgKGNvbG9yQXNzb2NpYXRpb25zICYmIGNvbG9yQXNzb2NpYXRpb25zW2l0ZW0uY29sb3JdKSB8fCBpdGVtLmNvbG9yIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkcC10ZXh0LXR5cGUtcG9wb3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgI3RhYkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpZHggPT09IDAgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudFRhYl09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFN1Ykl0ZW1VaWRdPVwiX3NlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRTdWJJdGVtKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgaXRlbSwgaWR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLXRleHQtdHlwZS1wb3BvdmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChfZXh0cmFUYWJzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbSBmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLW92ZXJmbG93XCI+XG4gICAgICAgICAgICAgICAgPGZkcC10ZXh0LXR5cGUtcG9wb3ZlclxuICAgICAgICAgICAgICAgICAgICAjZXh0cmFJdGVtc1BvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgICAgICAgICAgICAgW2V4dHJhVGFic109XCJfZXh0cmFUYWJzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRXh0cmFJdGVtc01vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNGaXJzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oMClcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNMYXN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbShfbGFzdFZpc2libGVUYWJJbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkcC10ZXh0LXR5cGUtcG9wb3Zlcj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { NgClass, NgFor, NgIf } from '@angular/common';
1
+ import { NgClass } from '@angular/common';
2
2
  import { Component, Input, QueryList, ViewChildren } from '@angular/core';
3
3
  import { ButtonComponent } from '@fundamental-ngx/core/button';
4
4
  import { IconComponent } from '@fundamental-ngx/core/icon';
@@ -17,21 +17,12 @@ export class IconTabBarPopoverComponent extends IconTabBarPopoverBase {
17
17
  */
18
18
  this.label = 'more';
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: IconTabBarPopoverComponent, isStandalone: true, selector: "fdp-icon-tab-bar-popover", inputs: { leftSide: "leftSide", label: "label", showItemLabel: "showItemLabel" }, viewQueries: [{ propertyName: "_tabExtraUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-popover placement=\"bottom-end\" [focusAutoCapture]=\"true\" [focusTrapped]=\"true\" #popover>\n <fd-popover-control>\n <button class=\"fd-icon-tab-bar__overflow\">\n <span class=\"fd-icon-tab-bar__overflow-text\">{{ label }}</span>\n <i class=\"sap-icon--slim-arrow-down\" role=\"presentation\"></i>\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"fd-icon-tab-bar\">\n <ul class=\"fd-list fd-list--navigation fd-list--no-border fd-icon-tab-bar__list\" role=\"list\">\n <ng-container *ngFor=\"let item of extraTabs; let idx = index; trackBy: _trackByTab\">\n <li *ngIf=\"isSeparators\" tabindex=\"-1\" class=\"fd-icon-tab-bar__icon-separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </li>\n <li\n class=\"fd-list__item fd-list__item--link fd-icon-tab-bar__list-item\"\n role=\"listitem\"\n [class.fd-icon-tab-bar__list-item--closable]=\"item.closable\"\n [ngClass]=\"item.cssClasses\"\n tabindex=\"-1\"\n >\n <a\n class=\"fd-list__link fd-icon-tab-bar__list-link\"\n #tabItem\n [attr.data-flatIndex]=\"item.flatIndex\"\n tabindex=\"0\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n <span class=\"fd-icon-tab-bar__list-item-icon-container\">\n <span class=\"fd-list__icon fd-icon-tab-bar__list-item-icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n </span>\n <span\n *ngIf=\"showItemLabel && item.label\"\n class=\"fd-list__title fd-icon-tab-bar__list-item-title\"\n >{{ item.label }}</span\n >\n <span *ngIf=\"item.badge\" class=\"fd-icon-tab-bar__badge\"></span>\n <span *ngIf=\"item.counter\" class=\"fd-list__counter fd-icon-tab-bar__list-item-counter\"\n >({{ item.counter }})\n </span>\n <div class=\"screenreader-only\" *ngIf=\"item.color\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n </a>\n <div class=\"fd-icon-tab-bar__button-container\" *ngIf=\"item.closable\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"closeTab.emit(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n </li>\n </ng-container>\n </ul>\n </fd-popover-body>\n</fd-popover>\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: IconTabBarPopoverComponent, isStandalone: true, selector: "fdp-icon-tab-bar-popover", inputs: { leftSide: "leftSide", label: "label", showItemLabel: "showItemLabel" }, viewQueries: [{ propertyName: "_tabExtraUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-popover placement=\"bottom-end\" [focusAutoCapture]=\"true\" [focusTrapped]=\"true\" #popover>\n <fd-popover-control>\n <button class=\"fd-icon-tab-bar__overflow\">\n <span class=\"fd-icon-tab-bar__overflow-text\">{{ label }}</span>\n <i class=\"sap-icon--slim-arrow-down\" role=\"presentation\"></i>\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"fd-icon-tab-bar\">\n <ul class=\"fd-list fd-list--navigation fd-list--no-border fd-icon-tab-bar__list\" role=\"list\">\n @for (item of extraTabs; track item.uId; let idx = $index) {\n @if (isSeparators) {\n <li tabindex=\"-1\" class=\"fd-icon-tab-bar__icon-separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </li>\n }\n <li\n class=\"fd-list__item fd-list__item--link fd-icon-tab-bar__list-item\"\n role=\"listitem\"\n [class.fd-icon-tab-bar__list-item--closable]=\"item.closable\"\n [ngClass]=\"item.cssClasses\"\n tabindex=\"-1\"\n >\n <a\n class=\"fd-list__link fd-icon-tab-bar__list-link\"\n #tabItem\n [attr.data-flatIndex]=\"item.flatIndex\"\n tabindex=\"0\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n <span class=\"fd-icon-tab-bar__list-item-icon-container\">\n <span class=\"fd-list__icon fd-icon-tab-bar__list-item-icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n </span>\n @if (showItemLabel && item.label) {\n <span class=\"fd-list__title fd-icon-tab-bar__list-item-title\">{{ item.label }}</span>\n }\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n @if (item.counter) {\n <span class=\"fd-list__counter fd-icon-tab-bar__list-item-counter\"\n >({{ item.counter }})\n </span>\n }\n @if (item.color) {\n <div class=\"screenreader-only\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"closeTab.emit(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n </ul>\n </fd-popover-body>\n</fd-popover>\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarPopoverComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarPopoverComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'fdp-icon-tab-bar-popover', standalone: true, imports: [
26
- PopoverComponent,
27
- PopoverControlComponent,
28
- PopoverBodyComponent,
29
- NgFor,
30
- NgIf,
31
- IconComponent,
32
- NgClass,
33
- ButtonComponent
34
- ], template: "<fd-popover placement=\"bottom-end\" [focusAutoCapture]=\"true\" [focusTrapped]=\"true\" #popover>\n <fd-popover-control>\n <button class=\"fd-icon-tab-bar__overflow\">\n <span class=\"fd-icon-tab-bar__overflow-text\">{{ label }}</span>\n <i class=\"sap-icon--slim-arrow-down\" role=\"presentation\"></i>\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"fd-icon-tab-bar\">\n <ul class=\"fd-list fd-list--navigation fd-list--no-border fd-icon-tab-bar__list\" role=\"list\">\n <ng-container *ngFor=\"let item of extraTabs; let idx = index; trackBy: _trackByTab\">\n <li *ngIf=\"isSeparators\" tabindex=\"-1\" class=\"fd-icon-tab-bar__icon-separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </li>\n <li\n class=\"fd-list__item fd-list__item--link fd-icon-tab-bar__list-item\"\n role=\"listitem\"\n [class.fd-icon-tab-bar__list-item--closable]=\"item.closable\"\n [ngClass]=\"item.cssClasses\"\n tabindex=\"-1\"\n >\n <a\n class=\"fd-list__link fd-icon-tab-bar__list-link\"\n #tabItem\n [attr.data-flatIndex]=\"item.flatIndex\"\n tabindex=\"0\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n <span class=\"fd-icon-tab-bar__list-item-icon-container\">\n <span class=\"fd-list__icon fd-icon-tab-bar__list-item-icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n </span>\n <span\n *ngIf=\"showItemLabel && item.label\"\n class=\"fd-list__title fd-icon-tab-bar__list-item-title\"\n >{{ item.label }}</span\n >\n <span *ngIf=\"item.badge\" class=\"fd-icon-tab-bar__badge\"></span>\n <span *ngIf=\"item.counter\" class=\"fd-list__counter fd-icon-tab-bar__list-item-counter\"\n >({{ item.counter }})\n </span>\n <div class=\"screenreader-only\" *ngIf=\"item.color\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n </a>\n <div class=\"fd-icon-tab-bar__button-container\" *ngIf=\"item.closable\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"closeTab.emit(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n </li>\n </ng-container>\n </ul>\n </fd-popover-body>\n</fd-popover>\n" }]
25
+ args: [{ selector: 'fdp-icon-tab-bar-popover', standalone: true, imports: [PopoverComponent, PopoverControlComponent, PopoverBodyComponent, IconComponent, NgClass, ButtonComponent], template: "<fd-popover placement=\"bottom-end\" [focusAutoCapture]=\"true\" [focusTrapped]=\"true\" #popover>\n <fd-popover-control>\n <button class=\"fd-icon-tab-bar__overflow\">\n <span class=\"fd-icon-tab-bar__overflow-text\">{{ label }}</span>\n <i class=\"sap-icon--slim-arrow-down\" role=\"presentation\"></i>\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"fd-icon-tab-bar\">\n <ul class=\"fd-list fd-list--navigation fd-list--no-border fd-icon-tab-bar__list\" role=\"list\">\n @for (item of extraTabs; track item.uId; let idx = $index) {\n @if (isSeparators) {\n <li tabindex=\"-1\" class=\"fd-icon-tab-bar__icon-separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </li>\n }\n <li\n class=\"fd-list__item fd-list__item--link fd-icon-tab-bar__list-item\"\n role=\"listitem\"\n [class.fd-icon-tab-bar__list-item--closable]=\"item.closable\"\n [ngClass]=\"item.cssClasses\"\n tabindex=\"-1\"\n >\n <a\n class=\"fd-list__link fd-icon-tab-bar__list-link\"\n #tabItem\n [attr.data-flatIndex]=\"item.flatIndex\"\n tabindex=\"0\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n <span class=\"fd-icon-tab-bar__list-item-icon-container\">\n <span class=\"fd-list__icon fd-icon-tab-bar__list-item-icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n </span>\n @if (showItemLabel && item.label) {\n <span class=\"fd-list__title fd-icon-tab-bar__list-item-title\">{{ item.label }}</span>\n }\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n @if (item.counter) {\n <span class=\"fd-list__counter fd-icon-tab-bar__list-item-counter\"\n >({{ item.counter }})\n </span>\n }\n @if (item.color) {\n <div class=\"screenreader-only\">\n {{ (colorAssociations && colorAssociations[item.color]) || item.color }}\n </div>\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"closeTab.emit(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n </ul>\n </fd-popover-body>\n</fd-popover>\n" }]
35
26
  }], propDecorators: { _tabExtraUIElements: [{
36
27
  type: ViewChildren,
37
28
  args: ['tabItem']
@@ -42,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
42
33
  }], showItemLabel: [{
43
34
  type: Input
44
35
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2ljb24tdGFiLWJhci9jb21wb25lbnRzL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci9pY29uLXRhYi1iYXItcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBaUIzRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCO0lBZnJFOztRQW1CSTs7V0FFRztRQUVILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFFSCxVQUFLLEdBQUcsTUFBTSxDQUFDO0tBS2xCOzhHQW5CWSwwQkFBMEI7a0dBQTFCLDBCQUEwQixnU0N0QnZDLDJ0R0E2REEsNENEakRRLGdCQUFnQixzSUFDaEIsdUJBQXVCLG1GQUN2QixvQkFBb0Isd0hBQ3BCLEtBQUssbUhBQ0wsSUFBSSw2RkFDSixhQUFhLDBJQUNiLE9BQU8sb0ZBQ1AsZUFBZTs7MkZBR1YsMEJBQTBCO2tCQWZ0QyxTQUFTOytCQUNJLDBCQUEwQixjQUV4QixJQUFJLFdBQ1A7d0JBQ0wsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsS0FBSzt3QkFDTCxJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxlQUFlO3FCQUNsQjs4QkFJd0IsbUJBQW1CO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVM7Z0JBTXZCLFFBQVE7c0JBRFAsS0FBSztnQkFPTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFBvcG92ZXJCb2R5Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQmFzZSB9IGZyb20gJy4uL2ljb24tdGFiLWJhci1wb3BvdmVyLWJhc2UuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1pY29uLXRhYi1iYXItcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdJZixcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEljb25UYWJCYXJQb3BvdmVyQmFzZSB7XG4gICAgLyoqIEBoaWRkZW4gbGlzdCBvZiB0YWIgaHRtbCBlbGVtZW50cywgdGhhdCBjYW4gcmVjZWl2ZSBmb2N1cyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oJ3RhYkl0ZW0nKSBfdGFiRXh0cmFVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZsYWcgcmVwcmVzZW50aW5nIHBvc2l0aW9uIGluc2lkZSBjb250YWluZXIgbGVmdC9yaWdodFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGVmdFNpZGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbCA9ICdtb3JlJztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgbGFiZWxzIGZvciB0YWIgaXRlbXMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dJdGVtTGFiZWw6IGJvb2xlYW47XG59XG4iLCI8ZmQtcG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b20tZW5kXCIgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiICNwb3BvdmVyPlxuICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX292ZXJmbG93XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fb3ZlcmZsb3ctdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJzYXAtaWNvbi0tc2xpbS1hcnJvdy1kb3duXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgPGZkLXBvcG92ZXItYm9keSBjbGFzcz1cImZkLWljb24tdGFiLWJhclwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJmZC1saXN0IGZkLWxpc3QtLW5hdmlnYXRpb24gZmQtbGlzdC0tbm8tYm9yZGVyIGZkLWljb24tdGFiLWJhcl9fbGlzdFwiIHJvbGU9XCJsaXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGV4dHJhVGFiczsgbGV0IGlkeCA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeVRhYlwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImlzU2VwYXJhdG9yc1wiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvbi1zZXBhcmF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJwcm9jZXNzXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9faXRlbSBmZC1saXN0X19pdGVtLS1saW5rIGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLS1jbG9zYWJsZV09XCJpdGVtLmNsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jc3NDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19saW5rIGZkLWljb24tdGFiLWJhcl9fbGlzdC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZsYXRJbmRleF09XCJpdGVtLmZsYXRJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLWljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1saXN0X19pY29uIGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIml0ZW0uaWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0l0ZW1MYWJlbCAmJiBpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX3RpdGxlIGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2JhZGdlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmNvdW50ZXJcIiBjbGFzcz1cImZkLWxpc3RfX2NvdW50ZXIgZmQtaWNvbi10YWItYmFyX19saXN0LWl0ZW0tY291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPih7eyBpdGVtLmNvdW50ZXIgfX0pXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIiAqbmdJZj1cIml0ZW0uY29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAoY29sb3JBc3NvY2lhdGlvbnMgJiYgY29sb3JBc3NvY2lhdGlvbnNbaXRlbS5jb2xvcl0pIHx8IGl0ZW0uY29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uY2xvc2FibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiLmVtaXQoaXRlbS51SWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cImRlY2xpbmVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuPC9mZC1wb3BvdmVyPlxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2ljb24tdGFiLWJhci9jb21wb25lbnRzL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci9pY29uLXRhYi1iYXItcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVEzRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCO0lBTnJFOztRQVVJOztXQUVHO1FBRUgsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQjs7V0FFRztRQUVILFVBQUssR0FBRyxNQUFNLENBQUM7S0FLbEI7OEdBbkJZLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdTQ2J2Qyx5NkdBcUVBLDRDRDFEYyxnQkFBZ0Isc0lBQUUsdUJBQXVCLG1GQUFFLG9CQUFvQix3SEFBRSxhQUFhLDBJQUFFLE9BQU8sb0ZBQUUsZUFBZTs7MkZBRXpHLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSwwQkFBMEIsY0FFeEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUM7OEJBSTFGLG1CQUFtQjtzQkFBM0MsWUFBWTt1QkFBQyxTQUFTO2dCQU12QixRQUFRO3NCQURQLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFBvcG92ZXJCb2R5Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQmFzZSB9IGZyb20gJy4uL2ljb24tdGFiLWJhci1wb3BvdmVyLWJhc2UuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1pY29uLXRhYi1iYXItcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyQ29udHJvbENvbXBvbmVudCwgUG9wb3ZlckJvZHlDb21wb25lbnQsIEljb25Db21wb25lbnQsIE5nQ2xhc3MsIEJ1dHRvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBJY29uVGFiQmFyUG9wb3ZlckJhc2Uge1xuICAgIC8qKiBAaGlkZGVuIGxpc3Qgb2YgdGFiIGh0bWwgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMgKi9cbiAgICBAVmlld0NoaWxkcmVuKCd0YWJJdGVtJykgX3RhYkV4dHJhVUlFbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGbGFnIHJlcHJlc2VudGluZyBwb3NpdGlvbiBpbnNpZGUgY29udGFpbmVyIGxlZnQvcmlnaHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxlZnRTaWRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWwgPSAnbW9yZSc7XG5cbiAgICAvKiogV2hldGhlciB0byBkaXNwbGF5IGxhYmVscyBmb3IgdGFiIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBzaG93SXRlbUxhYmVsOiBib29sZWFuO1xufVxuIiwiPGZkLXBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIiBbZm9jdXNUcmFwcGVkXT1cInRydWVcIiAjcG9wb3Zlcj5cbiAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19vdmVyZmxvd1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX292ZXJmbG93LXRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLXNsaW0tYXJyb3ctZG93blwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZmQtbGlzdCBmZC1saXN0LS1uYXZpZ2F0aW9uIGZkLWxpc3QtLW5vLWJvcmRlciBmZC1pY29uLXRhYi1iYXJfX2xpc3RcIiByb2xlPVwibGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBleHRyYVRhYnM7IHRyYWNrIGl0ZW0udUlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGlmIChpc1NlcGFyYXRvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvbi1zZXBhcmF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwicHJvY2Vzc1wiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9faXRlbSBmZC1saXN0X19pdGVtLS1saW5rIGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLS1jbG9zYWJsZV09XCJpdGVtLmNsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jc3NDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19saW5rIGZkLWljb24tdGFiLWJhcl9fbGlzdC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZsYXRJbmRleF09XCJpdGVtLmZsYXRJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLWljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1saXN0X19pY29uIGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIml0ZW0uaWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dJdGVtTGFiZWwgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbGlzdF9fdGl0bGUgZmQtaWNvbi10YWItYmFyX19saXN0LWl0ZW0tdGl0bGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2JhZGdlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWxpc3RfX2NvdW50ZXIgZmQtaWNvbi10YWItYmFyX19saXN0LWl0ZW0tY291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4oe3sgaXRlbS5jb3VudGVyIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JlZW5yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAoY29sb3JBc3NvY2lhdGlvbnMgJiYgY29sb3JBc3NvY2lhdGlvbnNbaXRlbS5jb2xvcl0pIHx8IGl0ZW0uY29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VUYWIuZW1pdChpdGVtLnVJZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuPC9mZC1wb3BvdmVyPlxuIl19
@@ -115,16 +115,12 @@ export class IconTabBarPopoverBase {
115
115
  this.isRtl ? this._focusNextPopoverItem(currentIndex) : this._focusPreviousPopoverItem(currentIndex);
116
116
  }
117
117
  }
118
- /** @hidden */
119
- _trackByTab(index, tab) {
120
- return tab.uId;
121
- }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarPopoverBase, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
123
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: IconTabBarPopoverBase, inputs: { isRtl: "isRtl", extraTabs: "extraTabs", isSeparators: "isSeparators", colorAssociations: "colorAssociations" }, outputs: { selectedExtraItem: "selectedExtraItem", focusFirstVisibleItem: "focusFirstVisibleItem", focusLastVisibleItem: "focusLastVisibleItem", closeTab: "closeTab" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0 }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarPopoverBase, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: IconTabBarPopoverBase, inputs: { isRtl: "isRtl", extraTabs: "extraTabs", isSeparators: "isSeparators", colorAssociations: "colorAssociations" }, outputs: { selectedExtraItem: "selectedExtraItem", focusFirstVisibleItem: "focusFirstVisibleItem", focusLastVisibleItem: "focusLastVisibleItem", closeTab: "closeTab" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0 }); }
124
120
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconTabBarPopoverBase, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: IconTabBarPopoverBase, decorators: [{
126
122
  type: Directive
127
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { isRtl: [{
123
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { isRtl: [{
128
124
  type: Input
129
125
  }], popover: [{
130
126
  type: ViewChild,
@@ -144,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
144
140
  }], closeTab: [{
145
141
  type: Output
146
142
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXBvcG92ZXItYmFzZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS2pFLE1BQU0sT0FBZ0IscUJBQXFCO0lBMkR2QyxjQUFjO0lBQ2QsWUFBc0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF0QzVDOztXQUVHO1FBRUgsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFTckI7O1dBRUc7UUFFSCxzQkFBaUIsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFckYsaUdBQWlHO1FBRWpHLDBCQUFxQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJFLGdHQUFnRztRQUVoRyx5QkFBb0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSx1REFBdUQ7UUFFdkQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdEM7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUcrQixDQUFDO0lBRWhELGNBQWM7SUFDZCxXQUFXLENBQUMsT0FBc0I7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c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQU9wQixTQUFTO3NCQURSLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AscUJBQXFCO3NCQURwQixNQUFNO2dCQUtQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET1dOX0FSUk9XLCBFTlRFUiwgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFNQQUNFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJDb2xvckFzc29jaWF0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFiLWNvbG9yLWFzc29jaWF0aW9ucy5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJY29uVGFiQmFyUG9wb3ZlckJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKiBAaGlkZGVuIGxpc3Qgb2YgdGFiIGh0bWwgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMuIEVhY2ggaXRlbSBzaG91bGQgaGF2ZSBcImRhdGEtZmxhdEluZGV4XCIgYXR0cmlidXRlICovXG4gICAgYWJzdHJhY3QgX3RhYkV4dHJhVUlFbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGbGFnIHJlcHJlc2VudGluZyBydGwgbW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNSdGw6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIHRvIFBvcG92ZXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN1YiBpdGVtcyBhcnJheVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0cmFUYWJzOiBJY29uVGFiQmFySXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNob3VsZCB3ZSBzaG93IHNlcGFyYXRvciBiZXR3ZWVuIHN1Ykl0ZW1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1NlcGFyYXRvcnMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGlvbnMgZm9yIGNvbG9ycyBvZiB0aGUgdGFicy5cbiAgICAgKiBJZiBhbnkgb2YgdGhlIGNvbG9yIGFzc29jaWF0aW9ucyBwcm92aWRlZCwgdGhleSdsbCBiZSByZWFkIGJ5IHNjcmVlbnJlYWRlciBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgY29sb3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbG9yQXNzb2NpYXRpb25zOiBUYWJDb2xvckFzc29jaWF0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHNvbWUgdGFiIGlzIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkRXh0cmFJdGVtOiBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBwb3BvdmVyIGlzIGNsb3NlZCBhbmQgZm9jdXMgc2hvdWxkIGJlIGFwcGxpZWQgdG8gZmlyc3QgdmlzaWJsZSB0YWIgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0ZpcnN0VmlzaWJsZUl0ZW06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBwb3BvdmVyIGlzIGNsb3NlZCBhbmQgZm9jdXMgc2hvdWxkIGJlIGFwcGxpZWQgdG8gbGFzdCB2aXNpYmxlIHRhYiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvY3VzTGFzdFZpc2libGVJdGVtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHMgd2hlbiB1c2VyIGNsaWNrcyBvbiB4IGJ1dHRvbiBpbiB0YWIuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2VUYWIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gc3RhdGUgb2YgcG9wb3ZlclxuICAgICAqL1xuICAgIF9pc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZXh0cmFUYWJzKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTdHlsZXModGhpcy5leHRyYVRhYnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZSBzdHlsZXMgZm9yIHN1Ykl0ZW1zXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9zZXRTdHlsZXMoaXRlbXM6IEljb25UYWJCYXJJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9fbGlzdC1pdGVtLS0ke2l0ZW0uY29sb3J9YF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLnN1Ykl0ZW1zKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldFN0eWxlcyhpdGVtLnN1Ykl0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmb2N1c0xhc3Qgd2hldGhlciB0byBmb2N1cyBmaXJzdCBvciBsYXN0IGl0ZW0gaW4gdGhlIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfb3BlblBvcG92ZXIoZm9jdXNMYXN0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvY3VzTGFzdCkge1xuICAgICAgICAgICAgdGhpcy5fdGFiRXh0cmFVSUVsZW1lbnRzLmdldCh0aGlzLl90YWJFeHRyYVVJRWxlbWVudHMubGVuZ3RoIC0gMSk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvY3VzUHJldmlvdXNQb3BvdmVySXRlbShjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNMYXN0VmlzaWJsZUl0ZW0uZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgb3JkZXJlZCA9IHRoaXMuX2dldE9yZGVyZWRUYWJFeHRyYVVJRWxlbWVudHMoKTtcbiAgICAgICAgICAgIG9yZGVyZWRbY3VycmVudEluZGV4IC0gMV0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvY3VzTmV4dFBvcG92ZXJJdGVtKGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMuX3RhYkV4dHJhVUlFbGVtZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdFZpc2libGVJdGVtLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyZWQgPSB0aGlzLl9nZXRPcmRlcmVkVGFiRXh0cmFVSUVsZW1lbnRzKCk7XG4gICAgICAgICAgICBvcmRlcmVkW2N1cnJlbnRJbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRUYWJFeHRyYVVJRWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJFeHRyYVVJRWxlbWVudHNcbiAgICAgICAgICAgIC50b0FycmF5KClcbiAgICAgICAgICAgIC5tYXAoKGUpID0+ICh7XG4gICAgICAgICAgICAgICAgZmxhdEluZGV4OiBwYXJzZUludChlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWZsYXRJbmRleCcpISwgMTApLFxuICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQ6IGUubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuc29ydCgoeyBmbGF0SW5kZXg6IGFGbGF0SW5kZXggfSwgeyBmbGF0SW5kZXg6IGJGbGF0SW5kZXggfSkgPT4gYUZsYXRJbmRleCAtIGJGbGF0SW5kZXgpXG4gICAgICAgICAgICAubWFwKCh7IG5hdGl2ZUVsZW1lbnQgfSkgPT4gbmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZEl0ZW1cbiAgICAgKi9cbiAgICBfc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFeHRyYUl0ZW0uZW1pdChzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB0aGlzLnBvcG92ZXIuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9rZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCwgdGFiOiBJY29uVGFiQmFySXRlbSwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHRhYik7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtSSUdIVF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5pc1J0bCA/IHRoaXMuX2ZvY3VzUHJldmlvdXNQb3BvdmVySXRlbShjdXJyZW50SW5kZXgpIDogdGhpcy5fZm9jdXNOZXh0UG9wb3Zlckl0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFVQX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID8gdGhpcy5fZm9jdXNOZXh0UG9wb3Zlckl0ZW0oY3VycmVudEluZGV4KSA6IHRoaXMuX2ZvY3VzUHJldmlvdXNQb3BvdmVySXRlbShjdXJyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tCeVRhYihpbmRleDogbnVtYmVyLCB0YWI6IEljb25UYWJCYXJJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRhYi51SWQ7XG4gICAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXBvcG92ZXItYmFzZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS2pFLE1BQU0sT0FBZ0IscUJBQXFCO0lBMkR2QyxjQUFjO0lBQ2QsWUFBc0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF0QzVDOztXQUVHO1FBRUgsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFTckI7O1dBRUc7UUFFSCxzQkFBaUIsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFckYsaUdBQWlHO1FBRWpHLDBCQUFxQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJFLGdHQUFnRztRQUVoRyx5QkFBb0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSx1REFBdUQ7UUFFdkQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdEM7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUcrQixDQUFDO0lBRWhELGNBQWM7SUFDZCxXQUFXLENBQUMsT0FBc0I7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RGhCLEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixNQUFNO2dCQUtQLHFCQUFxQjtzQkFEcEIsTUFBTTtnQkFLUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29sb3JBc3NvY2lhdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RhYi1jb2xvci1hc3NvY2lhdGlvbnMuaW50ZXJmYWNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWNvblRhYkJhclBvcG92ZXJCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzLiBFYWNoIGl0ZW0gc2hvdWxkIGhhdmUgXCJkYXRhLWZsYXRJbmRleFwiIGF0dHJpYnV0ZSAqL1xuICAgIGFic3RyYWN0IF90YWJFeHRyYVVJRWxlbWVudHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmxhZyByZXByZXNlbnRpbmcgcnRsIG1vZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jZSB0byBQb3BvdmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncG9wb3ZlcicpXG4gICAgcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdWIgaXRlbXMgYXJyYXlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4dHJhVGFiczogSWNvblRhYkJhckl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaG91bGQgd2Ugc2hvdyBzZXBhcmF0b3IgYmV0d2VlbiBzdWJJdGVtc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNTZXBhcmF0b3JzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRpb25zIGZvciBjb2xvcnMgb2YgdGhlIHRhYnMuXG4gICAgICogSWYgYW55IG9mIHRoZSBjb2xvciBhc3NvY2lhdGlvbnMgcHJvdmlkZWQsIHRoZXknbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXIgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIGNvbG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2xvckFzc29jaWF0aW9uczogVGFiQ29sb3JBc3NvY2lhdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBzb21lIHRhYiBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZEV4dHJhSXRlbTogRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gcG9wb3ZlciBpcyBjbG9zZWQgYW5kIGZvY3VzIHNob3VsZCBiZSBhcHBsaWVkIHRvIGZpcnN0IHZpc2libGUgdGFiICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9jdXNGaXJzdFZpc2libGVJdGVtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gcG9wb3ZlciBpcyBjbG9zZWQgYW5kIGZvY3VzIHNob3VsZCBiZSBhcHBsaWVkIHRvIGxhc3QgdmlzaWJsZSB0YWIgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0xhc3RWaXNpYmxlSXRlbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXRzIHdoZW4gdXNlciBjbGlja3Mgb24geCBidXR0b24gaW4gdGFiLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlVGFiID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIHN0YXRlIG9mIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfaXNPcGVuID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmV4dHJhVGFicykge1xuICAgICAgICAgICAgdGhpcy5fc2V0U3R5bGVzKHRoaXMuZXh0cmFUYWJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXJhdGUgc3R5bGVzIGZvciBzdWJJdGVtc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfc2V0U3R5bGVzKGl0ZW1zOiBJY29uVGFiQmFySXRlbVtdKTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2xpc3QtaXRlbS0tJHtpdGVtLmNvbG9yfWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5zdWJJdGVtcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRTdHlsZXMoaXRlbS5zdWJJdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZm9jdXNMYXN0IHdoZXRoZXIgdG8gZm9jdXMgZmlyc3Qgb3IgbGFzdCBpdGVtIGluIHRoZSBwb3BvdmVyXG4gICAgICovXG4gICAgX29wZW5Qb3BvdmVyKGZvY3VzTGFzdCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIub3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb2N1c0xhc3QpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYkV4dHJhVUlFbGVtZW50cy5nZXQodGhpcy5fdGFiRXh0cmFVSUVsZW1lbnRzLmxlbmd0aCAtIDEpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mb2N1c1ByZXZpb3VzUG9wb3Zlckl0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzTGFzdFZpc2libGVJdGVtLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyZWQgPSB0aGlzLl9nZXRPcmRlcmVkVGFiRXh0cmFVSUVsZW1lbnRzKCk7XG4gICAgICAgICAgICBvcmRlcmVkW2N1cnJlbnRJbmRleCAtIDFdLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mb2N1c05leHRQb3BvdmVySXRlbShjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSB0aGlzLl90YWJFeHRyYVVJRWxlbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzRmlyc3RWaXNpYmxlSXRlbS5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5fZ2V0T3JkZXJlZFRhYkV4dHJhVUlFbGVtZW50cygpO1xuICAgICAgICAgICAgb3JkZXJlZFtjdXJyZW50SW5kZXggKyAxXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRPcmRlcmVkVGFiRXh0cmFVSUVsZW1lbnRzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiRXh0cmFVSUVsZW1lbnRzXG4gICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAubWFwKChlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZsYXRJbmRleDogcGFyc2VJbnQoZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1mbGF0SW5kZXgnKSEsIDEwKSxcbiAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBlLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgLnNvcnQoKHsgZmxhdEluZGV4OiBhRmxhdEluZGV4IH0sIHsgZmxhdEluZGV4OiBiRmxhdEluZGV4IH0pID0+IGFGbGF0SW5kZXggLSBiRmxhdEluZGV4KVxuICAgICAgICAgICAgLm1hcCgoeyBuYXRpdmVFbGVtZW50IH0pID0+IG5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRXh0cmFJdGVtLmVtaXQoc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5RG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRhYjogSWNvblRhYkJhckl0ZW0sIGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1NQQUNFLCBFTlRFUl0pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbSh0YWIpO1xuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbUklHSFRfQVJST1csIERPV05fQVJST1ddKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuaXNSdGwgPyB0aGlzLl9mb2N1c1ByZXZpb3VzUG9wb3Zlckl0ZW0oY3VycmVudEluZGV4KSA6IHRoaXMuX2ZvY3VzTmV4dFBvcG92ZXJJdGVtKGN1cnJlbnRJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtMRUZUX0FSUk9XLCBVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5pc1J0bCA/IHRoaXMuX2ZvY3VzTmV4dFBvcG92ZXJJdGVtKGN1cnJlbnRJbmRleCkgOiB0aGlzLl9mb2N1c1ByZXZpb3VzUG9wb3Zlckl0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==