@fundamental-ngx/platform 0.48.0-rc.8 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/approval-flow/approval-flow-node/approval-flow-node.component.d.ts +0 -2
  2. package/button/button.component.d.ts +7 -8
  3. package/dynamic-page/dynamic-page.component.d.ts +24 -15
  4. package/dynamic-page/dynamic-page.tokens.d.ts +3 -0
  5. package/dynamic-page/index.d.ts +2 -1
  6. package/dynamic-page/platform-dynamic-page.interface.d.ts +22 -0
  7. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +4 -4
  8. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +4 -4
  9. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +3 -3
  10. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +3 -3
  11. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +5 -7
  12. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +3 -3
  13. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
  14. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +3 -3
  15. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +3 -3
  16. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
  17. package/esm2022/approval-flow/approval-flow.component.mjs +5 -5
  18. package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
  19. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
  20. package/esm2022/button/button.component.mjs +14 -15
  21. package/esm2022/button/button.module.mjs +4 -4
  22. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
  23. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
  24. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +3 -3
  25. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
  26. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  27. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
  28. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
  29. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
  30. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
  31. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
  32. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
  33. package/esm2022/dynamic-page/dynamic-page.component.mjs +48 -35
  34. package/esm2022/dynamic-page/dynamic-page.config.mjs +3 -3
  35. package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
  36. package/esm2022/dynamic-page/dynamic-page.tokens.mjs +3 -0
  37. package/esm2022/dynamic-page/index.mjs +3 -2
  38. package/esm2022/dynamic-page/platform-dynamic-page.interface.mjs +2 -0
  39. package/esm2022/feed-input/feed-input.component.mjs +6 -6
  40. package/esm2022/feed-input/feed-input.module.mjs +4 -4
  41. package/esm2022/form/auto-complete/auto-complete.directive.mjs +3 -3
  42. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
  43. package/esm2022/form/checkbox/checkbox.component.mjs +11 -43
  44. package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
  45. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +21 -63
  46. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
  47. package/esm2022/form/combobox/combobox/combobox.component.mjs +33 -63
  48. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +15 -22
  49. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  50. package/esm2022/form/combobox/combobox.config.mjs +3 -3
  51. package/esm2022/form/combobox/combobox.module.mjs +4 -4
  52. package/esm2022/form/combobox/commons/base-combobox.mjs +24 -58
  53. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
  54. package/esm2022/form/date-picker/date-picker.component.mjs +21 -57
  55. package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
  56. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +22 -60
  57. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
  58. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
  59. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +5 -9
  60. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -9
  61. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -9
  62. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +5 -9
  63. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -9
  64. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +4 -4
  65. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +5 -9
  66. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +5 -9
  67. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -9
  68. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +3 -3
  69. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
  70. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
  71. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +27 -13
  72. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
  73. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +3 -3
  74. package/esm2022/form/form-generator/form-generator.service.mjs +11 -16
  75. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  76. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +3 -3
  77. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
  78. package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
  79. package/esm2022/form/form-group/form-field/form-field.component.mjs +40 -47
  80. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +3 -3
  81. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +3 -3
  82. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +3 -3
  83. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  84. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +4 -4
  85. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +3 -3
  86. package/esm2022/form/form-group/form-group.component.mjs +40 -50
  87. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
  88. package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
  89. package/esm2022/form/input/fdp-input.module.mjs +4 -4
  90. package/esm2022/form/input/input.component.mjs +16 -48
  91. package/esm2022/form/input-group/addon-body.component.mjs +4 -5
  92. package/esm2022/form/input-group/addon.component.mjs +3 -3
  93. package/esm2022/form/input-group/input-group.component.mjs +13 -46
  94. package/esm2022/form/input-group/input-group.config.mjs +3 -3
  95. package/esm2022/form/input-group/input-group.module.mjs +4 -4
  96. package/esm2022/form/input-group/input.component.mjs +3 -3
  97. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +3 -3
  98. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +64 -102
  99. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +25 -71
  100. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +18 -26
  101. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
  102. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +3 -3
  103. package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
  104. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
  105. package/esm2022/form/multi-input/base-multi-input.mjs +43 -83
  106. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +13 -21
  107. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  108. package/esm2022/form/multi-input/multi-input.component.mjs +32 -91
  109. package/esm2022/form/multi-input/multi-input.config.mjs +3 -3
  110. package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
  111. package/esm2022/form/radio-group/radio/radio.component.mjs +12 -44
  112. package/esm2022/form/radio-group/radio-group.component.mjs +32 -74
  113. package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
  114. package/esm2022/form/select/commons/base-select.mjs +59 -101
  115. package/esm2022/form/select/select/select.component.mjs +17 -60
  116. package/esm2022/form/select/select.config.mjs +3 -3
  117. package/esm2022/form/select/select.module.mjs +4 -4
  118. package/esm2022/form/step-input/base.step-input.mjs +72 -85
  119. package/esm2022/form/step-input/number/number-step-input.component.mjs +14 -53
  120. package/esm2022/form/step-input/step-input-action-button.mjs +9 -13
  121. package/esm2022/form/step-input/step-input-control.directive.mjs +3 -3
  122. package/esm2022/form/step-input/step-input-decrement.directive.mjs +9 -13
  123. package/esm2022/form/step-input/step-input-increment.directive.mjs +9 -13
  124. package/esm2022/form/step-input/step-input.config.mjs +3 -3
  125. package/esm2022/form/step-input/step-input.module.mjs +4 -4
  126. package/esm2022/form/switch/switch/switch.component.mjs +12 -49
  127. package/esm2022/form/switch/switch/switch.config.mjs +3 -3
  128. package/esm2022/form/switch/switch.module.mjs +4 -4
  129. package/esm2022/form/text-area/text-area.component.mjs +14 -45
  130. package/esm2022/form/text-area/text-area.config.mjs +3 -3
  131. package/esm2022/form/text-area/text-area.module.mjs +4 -4
  132. package/esm2022/form/time-picker/time-picker.component.mjs +11 -42
  133. package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
  134. package/esm2022/fundamental-ngx.module.mjs +4 -4
  135. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +6 -6
  136. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +85 -90
  137. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +21 -9
  138. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +26 -9
  139. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +40 -26
  140. package/esm2022/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.mjs +76 -0
  141. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +28 -16
  142. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +14 -5
  143. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +3 -3
  144. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +5 -5
  145. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +12 -21
  146. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +10 -12
  147. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +10 -11
  148. package/esm2022/icon-tab-bar/directives/icon-tab-bar-free-content.directive.mjs +14 -0
  149. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +208 -27
  150. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +19 -9
  151. package/esm2022/icon-tab-bar/index.mjs +3 -1
  152. package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
  153. package/esm2022/info-label/info-label.component.mjs +6 -4
  154. package/esm2022/info-label/info-label.module.mjs +4 -4
  155. package/esm2022/link/link.component.mjs +15 -23
  156. package/esm2022/link/link.module.mjs +4 -4
  157. package/esm2022/list/action-list-item/action-list-item.component.mjs +5 -5
  158. package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
  159. package/esm2022/list/base-list-item.mjs +20 -22
  160. package/esm2022/list/display-list-item/display-list-item.component.mjs +5 -5
  161. package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
  162. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +5 -5
  163. package/esm2022/list/list-group-footer.component.mjs +5 -5
  164. package/esm2022/list/list-group-header.component.mjs +7 -7
  165. package/esm2022/list/list.component.mjs +25 -66
  166. package/esm2022/list/list.config.mjs +3 -3
  167. package/esm2022/list/list.module.mjs +4 -4
  168. package/esm2022/list/load-more-content.directive.mjs +3 -3
  169. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +6 -6
  170. package/esm2022/list/object-list-item/object-list-item.component.mjs +5 -5
  171. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
  172. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +5 -5
  173. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
  174. package/esm2022/menu/menu-item.component.mjs +5 -5
  175. package/esm2022/menu/menu-trigger.directive.mjs +3 -3
  176. package/esm2022/menu/menu.component.mjs +5 -6
  177. package/esm2022/menu/menu.module.mjs +4 -4
  178. package/esm2022/menu-button/menu-button.component.mjs +14 -9
  179. package/esm2022/menu-button/menu-button.module.mjs +4 -4
  180. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +11 -14
  181. package/esm2022/message-popover/components/message-view/message-view.component.mjs +4 -4
  182. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +3 -3
  183. package/esm2022/message-popover/message-popover.component.mjs +53 -54
  184. package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
  185. package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
  186. package/esm2022/object-marker/object-marker.component.mjs +10 -5
  187. package/esm2022/object-marker/object-marker.module.mjs +4 -4
  188. package/esm2022/object-status/object-status.component.mjs +13 -8
  189. package/esm2022/object-status/object-status.module.mjs +4 -4
  190. package/esm2022/page-footer/page-footer.component.mjs +8 -10
  191. package/esm2022/page-footer/page-footer.module.mjs +4 -4
  192. package/esm2022/panel/panel-actions.component.mjs +3 -3
  193. package/esm2022/panel/panel-content/panel-content.component.mjs +3 -3
  194. package/esm2022/panel/panel.component.mjs +8 -9
  195. package/esm2022/panel/panel.config.mjs +3 -3
  196. package/esm2022/panel/panel.module.mjs +4 -4
  197. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +12 -22
  198. package/esm2022/search-field/search-field.component.mjs +36 -42
  199. package/esm2022/search-field/search-field.module.mjs +4 -4
  200. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -6
  201. package/esm2022/settings-generator/default-config.mjs +2 -2
  202. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
  203. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +3 -3
  204. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +3 -3
  205. package/esm2022/settings-generator/models/settings.model.mjs +1 -1
  206. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +34 -28
  207. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +4 -5
  208. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
  209. package/esm2022/settings-generator/settings-generator.component.mjs +6 -6
  210. package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
  211. package/esm2022/settings-generator/settings-generator.service.mjs +12 -13
  212. package/esm2022/shared/base.mjs +30 -18
  213. package/esm2022/shared/form/base.input.mjs +70 -69
  214. package/esm2022/shared/form/collection-base.input.mjs +7 -49
  215. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +25 -66
  216. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
  217. package/esm2022/shared/pipes/pipe.module.mjs +4 -4
  218. package/esm2022/shared/platform.config.mjs +3 -3
  219. package/esm2022/slider/slider.component.mjs +11 -43
  220. package/esm2022/slider/slider.module.mjs +4 -4
  221. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +11 -14
  222. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +8 -16
  223. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -6
  224. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +13 -18
  225. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +22 -47
  226. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +12 -10
  227. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +3 -3
  228. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
  229. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +73 -57
  230. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
  231. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +3 -3
  232. package/esm2022/split-menu-button/split-menu-button.component.mjs +17 -24
  233. package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
  234. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
  235. package/esm2022/table/components/reset-button/reset-button.component.mjs +8 -9
  236. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +10 -9
  237. package/esm2022/table/components/table-column/table-column.component.mjs +3 -3
  238. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +11 -14
  239. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +4 -4
  240. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +6 -10
  241. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +31 -15
  242. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +19 -24
  243. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +9 -11
  244. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +4 -4
  245. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +8 -11
  246. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +8 -11
  247. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +11 -14
  248. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
  249. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +3 -3
  250. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
  251. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
  252. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
  253. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -8
  254. package/esm2022/table/components/table-row/table-row.component.mjs +12 -17
  255. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
  256. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
  257. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +38 -23
  258. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +3 -3
  259. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +3 -3
  260. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +3 -3
  261. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +4 -4
  262. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +4 -4
  263. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +8 -11
  264. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +9 -12
  265. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +9 -12
  266. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +3 -3
  267. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
  268. package/esm2022/table/table.component.mjs +138 -62
  269. package/esm2022/table/table.module.mjs +4 -4
  270. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
  271. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
  272. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +20 -23
  273. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
  274. package/esm2022/table-helpers/directives/table-cell.directive.mjs +12 -12
  275. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +10 -9
  276. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
  277. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
  278. package/esm2022/table-helpers/directives/table-header.directive.mjs +6 -6
  279. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +5 -5
  280. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +3 -3
  281. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +3 -3
  282. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
  283. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
  284. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
  285. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
  286. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
  287. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
  288. package/esm2022/table-helpers/services/table-column-resize.service.mjs +22 -20
  289. package/esm2022/table-helpers/services/table-responsive.service.mjs +9 -14
  290. package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
  291. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
  292. package/esm2022/table-helpers/services/table.service.mjs +23 -21
  293. package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
  294. package/esm2022/table-helpers/table.mjs +1 -1
  295. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +3 -3
  296. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -4
  297. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +28 -8
  298. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +9 -5
  299. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +3 -3
  300. package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
  301. package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
  302. package/esm2022/value-help-dialog/index.mjs +3 -1
  303. package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
  304. package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
  305. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +59 -32
  306. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
  307. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +4 -4
  308. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -6
  309. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
  310. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +3 -3
  311. package/esm2022/variant-management/variant-management.component.mjs +47 -13
  312. package/esm2022/variant-management/variant-management.module.mjs +4 -4
  313. package/esm2022/wizard-generator/base-wizard-generator.mjs +21 -28
  314. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +19 -19
  315. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +12 -18
  316. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +7 -12
  317. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +11 -10
  318. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -4
  319. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +3 -3
  320. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
  321. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
  322. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
  323. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
  324. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +3 -3
  325. package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
  326. package/esm2022/wizard-generator/wizard-generator.service.mjs +3 -3
  327. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +42 -44
  328. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-platform-button.mjs +16 -17
  330. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +88 -130
  332. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -9
  334. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-platform-form.mjs +853 -1636
  336. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +532 -220
  338. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-platform-info-label.mjs +9 -7
  340. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-platform-link.mjs +18 -26
  342. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-platform-list.mjs +104 -143
  344. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +16 -11
  346. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-platform-menu.mjs +16 -16
  348. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +71 -74
  350. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +13 -8
  352. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-platform-object-status.mjs +16 -11
  354. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +10 -12
  356. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -20
  358. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-platform-search-field.mjs +49 -77
  360. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +75 -72
  362. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  363. package/fesm2022/fundamental-ngx-platform-shared.mjs +162 -218
  364. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  365. package/fesm2022/fundamental-ngx-platform-slider.mjs +12 -44
  366. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  367. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +144 -162
  368. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  369. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +20 -27
  370. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  371. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +143 -148
  372. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  373. package/fesm2022/fundamental-ngx-platform-table.mjs +366 -291
  374. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  375. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +144 -53
  376. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  377. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +63 -30
  378. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  379. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +82 -98
  380. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  381. package/fesm2022/fundamental-ngx-platform.mjs +4 -4
  382. package/form/checkbox/checkbox.component.d.ts +4 -6
  383. package/form/checkbox-group/checkbox-group.component.d.ts +3 -8
  384. package/form/combobox/combobox/combobox.component.d.ts +4 -12
  385. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +5 -8
  386. package/form/combobox/commons/base-combobox.d.ts +4 -9
  387. package/form/date-picker/date-picker.component.d.ts +8 -11
  388. package/form/datetime-picker/datetime-picker.component.d.ts +9 -11
  389. package/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.d.ts +0 -2
  390. package/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.d.ts +0 -2
  391. package/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.d.ts +0 -2
  392. package/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.d.ts +0 -2
  393. package/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.d.ts +0 -2
  394. package/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.d.ts +0 -2
  395. package/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.d.ts +0 -2
  396. package/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.d.ts +0 -2
  397. package/form/form-generator/form-generator/form-generator.component.d.ts +3 -1
  398. package/form/form-generator/form-generator.service.d.ts +3 -7
  399. package/form/form-generator/interfaces/dynamic-form-item.d.ts +5 -5
  400. package/form/form-group/form-field/form-field.component.d.ts +16 -20
  401. package/form/form-group/form-group.component.d.ts +36 -35
  402. package/form/input/input.component.d.ts +3 -6
  403. package/form/input-group/addon-body.component.d.ts +0 -1
  404. package/form/input-group/input-group.component.d.ts +4 -5
  405. package/form/multi-combobox/commons/base-multi-combobox.d.ts +13 -16
  406. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +4 -12
  407. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +6 -9
  408. package/form/multi-combobox/multi-combobox.interface.d.ts +3 -3
  409. package/form/multi-input/base-multi-input.d.ts +10 -15
  410. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +5 -8
  411. package/form/multi-input/multi-input.component.d.ts +7 -37
  412. package/form/radio-group/radio/radio.component.d.ts +4 -5
  413. package/form/radio-group/radio-group.component.d.ts +7 -11
  414. package/form/select/commons/base-select.d.ts +11 -18
  415. package/form/select/select/select.component.d.ts +2 -15
  416. package/form/step-input/base.step-input.d.ts +13 -14
  417. package/form/step-input/number/number-step-input.component.d.ts +2 -7
  418. package/form/step-input/step-input-action-button.d.ts +4 -7
  419. package/form/step-input/step-input-decrement.directive.d.ts +2 -5
  420. package/form/step-input/step-input-increment.directive.d.ts +2 -5
  421. package/form/switch/switch/switch.component.d.ts +5 -8
  422. package/form/text-area/text-area.component.d.ts +4 -5
  423. package/form/time-picker/time-picker.component.d.ts +4 -5
  424. package/fundamental-ngx-platform-v0.48.0.tgz +0 -0
  425. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +19 -20
  426. package/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.d.ts +2 -0
  427. package/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.d.ts +45 -0
  428. package/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.d.ts +1 -3
  429. package/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.d.ts +5 -8
  430. package/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.d.ts +1 -1
  431. package/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.d.ts +1 -1
  432. package/icon-tab-bar/directives/icon-tab-bar-free-content.directive.d.ts +5 -0
  433. package/icon-tab-bar/icon-tab-bar.component.d.ts +82 -8
  434. package/icon-tab-bar/icon-tab-bar.module.d.ts +7 -1
  435. package/icon-tab-bar/index.d.ts +2 -0
  436. package/icon-tab-bar/interfaces/tab-config.interface.d.ts +13 -5
  437. package/info-label/info-label.component.d.ts +2 -2
  438. package/link/link.component.d.ts +4 -7
  439. package/list/base-list-item.d.ts +4 -6
  440. package/list/list.component.d.ts +6 -15
  441. package/menu-button/menu-button.component.d.ts +7 -4
  442. package/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.d.ts +2 -4
  443. package/message-popover/message-popover.component.d.ts +13 -20
  444. package/message-popover/models/message-popover-wrapper.interface.d.ts +2 -2
  445. package/object-marker/object-marker.component.d.ts +4 -1
  446. package/object-status/object-status.component.d.ts +4 -1
  447. package/package.json +4 -4
  448. package/page-footer/page-footer.component.d.ts +2 -4
  449. package/panel/panel.component.d.ts +2 -3
  450. package/search-field/search-field-mobile/search-field/search-field-mobile.component.d.ts +7 -10
  451. package/search-field/search-field.component.d.ts +10 -19
  452. package/settings-generator/models/settings.model.d.ts +7 -6
  453. package/settings-generator/settings-generator-content/settings-generator-content.component.d.ts +31 -12
  454. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +0 -2
  455. package/settings-generator/settings-generator.component.d.ts +3 -3
  456. package/settings-generator/settings-generator.service.d.ts +1 -1
  457. package/shared/base.d.ts +11 -4
  458. package/shared/form/base.input.d.ts +24 -16
  459. package/shared/form/collection-base.input.d.ts +1 -9
  460. package/shared/form/inline-layout-collection-base.input.d.ts +5 -12
  461. package/slider/slider.component.d.ts +3 -6
  462. package/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.d.ts +3 -5
  463. package/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.d.ts +0 -5
  464. package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +4 -8
  465. package/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.d.ts +8 -17
  466. package/smart-filter-bar/directives/smart-filter-bar-subject.directive.d.ts +2 -0
  467. package/smart-filter-bar/smart-filter-bar.component.d.ts +28 -22
  468. package/split-menu-button/split-menu-button.component.d.ts +11 -14
  469. package/table/components/reset-button/reset-button.component.d.ts +2 -3
  470. package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +4 -3
  471. package/table/components/table-column-resizer/table-column-resizer.component.d.ts +4 -5
  472. package/table/components/table-group-row/table-group-row.component.d.ts +2 -5
  473. package/table/components/table-header-cell-content/table-header-cell-content.component.d.ts +11 -6
  474. package/table/components/table-header-row/table-header-row.component.d.ts +1 -3
  475. package/table/components/table-p13-dialog/columns/columns.component.d.ts +2 -4
  476. package/table/components/table-p13-dialog/filtering/filtering.component.d.ts +1 -4
  477. package/table/components/table-p13-dialog/grouping/grouping.component.d.ts +1 -4
  478. package/table/components/table-p13-dialog/sorting/sorting.component.d.ts +1 -4
  479. package/table/components/table-row/table-row.component.d.ts +2 -2
  480. package/table/components/table-toolbar/table-toolbar.component.d.ts +24 -8
  481. package/table/components/table-view-settings-dialog/filtering/filters.component.d.ts +1 -4
  482. package/table/components/table-view-settings-dialog/grouping/grouping.component.d.ts +1 -4
  483. package/table/components/table-view-settings-dialog/sorting/sorting.component.d.ts +1 -4
  484. package/table/table.component.d.ts +29 -19
  485. package/table-helpers/directives/table-cell-header-popover.directive.d.ts +2 -3
  486. package/table-helpers/directives/table-cell-resizable.directive.d.ts +1 -3
  487. package/table-helpers/directives/table-data-source.directive.d.ts +1 -1
  488. package/table-helpers/services/table-column-resize.service.d.ts +4 -2
  489. package/table-helpers/services/table-responsive.service.d.ts +3 -5
  490. package/table-helpers/services/table.service.d.ts +12 -10
  491. package/table-helpers/table.d.ts +1 -0
  492. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
  493. package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
  494. package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
  495. package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
  496. package/value-help-dialog/index.d.ts +2 -0
  497. package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
  498. package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
  499. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +14 -7
  500. package/variant-management/variant-management.component.d.ts +19 -6
  501. package/wizard-generator/base-wizard-generator.d.ts +9 -12
  502. package/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.d.ts +2 -3
  503. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +3 -7
  504. package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -4
  505. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
  506. package/dynamic-page/dynamic-page.service.d.ts +0 -35
  507. package/esm2022/dynamic-page/dynamic-page.service.mjs +0 -58
  508. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +0 -16
  509. package/fundamental-ngx-platform-v0.48.0-rc.8.tgz +0 -0
  510. package/search-field/search-field-mobile/search-field-mobile.module.d.ts +0 -7
@@ -1,13 +1,15 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation, booleanAttribute, effect, inject } from '@angular/core';
3
3
  import { FilterStringsPipe } from '@fundamental-ngx/cdk/utils';
4
4
  import { BarComponent, BarElementDirective, BarLeftDirective, BarRightDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';
5
+ import { ButtonComponent } from '@fundamental-ngx/core/button';
5
6
  import { DialogService } from '@fundamental-ngx/core/dialog';
7
+ import { FD_DYNAMIC_PAGE } from '@fundamental-ngx/core/dynamic-page';
6
8
  import { ListComponent, ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';
7
9
  import { PopoverBodyComponent, PopoverBodyFooterDirective, PopoverBodyHeaderDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';
8
10
  import { TitleComponent } from '@fundamental-ngx/core/title';
9
11
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
10
- import { MenuButtonComponent } from '@fundamental-ngx/platform/menu-button';
12
+ import { FDP_DYNAMIC_PAGE } from '@fundamental-ngx/platform/dynamic-page';
11
13
  import { SearchFieldComponent } from '@fundamental-ngx/platform/search-field';
12
14
  import equal from 'fast-deep-equal';
13
15
  import { BehaviorSubject } from 'rxjs';
@@ -28,6 +30,10 @@ export class VariantManagementComponent {
28
30
  this.selectVariant(currentVariant);
29
31
  }
30
32
  /** @hidden */
33
+ get _dynamicPage() {
34
+ return this._coreDynamicPage || this._platformDynamicPage;
35
+ }
36
+ /** @hidden */
31
37
  constructor(_dialogService, _cdr) {
32
38
  this._dialogService = _dialogService;
33
39
  this._cdr = _cdr;
@@ -39,10 +45,14 @@ export class VariantManagementComponent {
39
45
  ];
40
46
  /** Whether to display search field for variants list. */
41
47
  this.displaySearch = false;
48
+ /** Whether the variant management component is in readonly mode. */
49
+ this.readonly = false;
42
50
  /** Event emitted when variants data has been updated. */
43
51
  this.variantsChange = new EventEmitter();
44
52
  /** Event emitted when new variant selected. */
45
53
  this.activeVariantChange = new EventEmitter();
54
+ /** @hidden */
55
+ this._initialClass = 'fd-variant-management';
46
56
  /**
47
57
  * Used internally for communicating with wrapper component.
48
58
  */
@@ -54,7 +64,16 @@ export class VariantManagementComponent {
54
64
  /** @Hidden */
55
65
  this._filterPhrase = null;
56
66
  /** @hidden */
57
- this._initialClass = 'fd-variant-management';
67
+ this._dynamicPageCollapsed$ = new BehaviorSubject(false);
68
+ /** @hidden */
69
+ this._coreDynamicPage = inject(FD_DYNAMIC_PAGE, { optional: true });
70
+ /** @hidden */
71
+ this._platformDynamicPage = inject(FDP_DYNAMIC_PAGE, { optional: true });
72
+ if (this._dynamicPage) {
73
+ effect(() => {
74
+ this._dynamicPageCollapsed$.next(this._dynamicPage.collapsed());
75
+ });
76
+ }
58
77
  }
59
78
  /**
60
79
  * Manually select variant.
@@ -79,6 +98,9 @@ export class VariantManagementComponent {
79
98
  * Saves current variant with its configuration.
80
99
  */
81
100
  saveCurrentVariant() {
101
+ if (this.readonly) {
102
+ return;
103
+ }
82
104
  const currentVariantIndex = this._variants.findIndex((variant) => variant.id === this.activeVariant.id);
83
105
  this._variants[currentVariantIndex] = this.activeVariant;
84
106
  this._originalActiveVariant = this.activeVariant.clone({}, false);
@@ -87,6 +109,9 @@ export class VariantManagementComponent {
87
109
  }
88
110
  /** @hidden */
89
111
  _openSaveDialog() {
112
+ if (this.readonly) {
113
+ return;
114
+ }
90
115
  this._popover?.close(false);
91
116
  const dialogRef = this._dialogService.open(ManageVariantItemComponent, {
92
117
  data: {
@@ -119,6 +144,9 @@ export class VariantManagementComponent {
119
144
  }
120
145
  /** @hidden */
121
146
  _openManageDialog() {
147
+ if (this.readonly) {
148
+ return;
149
+ }
122
150
  this._popover?.close(false);
123
151
  const dialogRef = this._dialogService.open(ManageVariantsDialogComponent, {
124
152
  data: this._variants
@@ -149,15 +177,15 @@ export class VariantManagementComponent {
149
177
  _transformVariants(items) {
150
178
  return items.map((variant) => new VariantItem(variant));
151
179
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementComponent, deps: [{ token: i1.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: VariantManagementComponent, isStandalone: true, selector: "fdp-variant-management", inputs: { variants: "variants", headerSize: "headerSize", popoverTriggers: "popoverTriggers", userName: "userName", displaySearch: "displaySearch" }, outputs: { variantsChange: "variantsChange", activeVariantChange: "activeVariantChange" }, host: { properties: { "class": "this._initialClass" } }, providers: [
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementComponent, deps: [{ token: i1.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: VariantManagementComponent, isStandalone: true, selector: "fdp-variant-management", inputs: { variants: "variants", headerSize: "headerSize", popoverTriggers: "popoverTriggers", userName: "userName", displaySearch: ["displaySearch", "displaySearch", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute] }, outputs: { variantsChange: "variantsChange", activeVariantChange: "activeVariantChange" }, host: { properties: { "class": "this._initialClass" } }, providers: [
154
182
  {
155
183
  provide: FDP_VARIANT_MANAGEMENT,
156
184
  useExisting: VariantManagementComponent
157
185
  }
158
- ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\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: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
186
+ ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.33.2\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\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: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title], span[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
159
187
  }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementComponent, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementComponent, decorators: [{
161
189
  type: Component,
162
190
  args: [{ selector: 'fdp-variant-management', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
163
191
  {
@@ -169,7 +197,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
169
197
  PopoverControlComponent,
170
198
  TitleComponent,
171
199
  NgTemplateOutlet,
172
- MenuButtonComponent,
173
200
  PopoverBodyComponent,
174
201
  PopoverBodyHeaderDirective,
175
202
  BarComponent,
@@ -184,8 +211,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
184
211
  BarRightDirective,
185
212
  ButtonBarComponent,
186
213
  FdTranslatePipe,
187
- FilterStringsPipe
188
- ], template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"] }]
214
+ FilterStringsPipe,
215
+ AsyncPipe,
216
+ NgClass,
217
+ ButtonComponent
218
+ ], template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.33.2\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"] }]
189
219
  }], ctorParameters: () => [{ type: i1.DialogService }, { type: i0.ChangeDetectorRef }], propDecorators: { variants: [{
190
220
  type: Input
191
221
  }], headerSize: [{
@@ -195,7 +225,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
195
225
  }], userName: [{
196
226
  type: Input
197
227
  }], displaySearch: [{
198
- type: Input
228
+ type: Input,
229
+ args: [{ transform: booleanAttribute }]
230
+ }], readonly: [{
231
+ type: Input,
232
+ args: [{ transform: booleanAttribute }]
199
233
  }], variantsChange: [{
200
234
  type: Output
201
235
  }], activeVariantChange: [{
@@ -210,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
210
244
  type: HostBinding,
211
245
  args: ['class']
212
246
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3ZhcmlhbnQtbWFuYWdlbWVudC92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckgsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFFMUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFD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QUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyU3RyaW5nc1BpcGUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCYXJDb21wb25lbnQsXG4gICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgIEJ1dHRvbkJhckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RJdGVtQ29tcG9uZW50LCBMaXN0TGlua0RpcmVjdGl2ZSwgTGlzdFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBQb3BvdmVyQm9keUNvbXBvbmVudCxcbiAgICBQb3BvdmVyQm9keUZvb3RlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQm9keUhlYWRlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFBvcG92ZXJDb250cm9sQ29tcG9uZW50LFxuICAgIFRyaWdnZXJDb25maWdcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgSGVhZGVyU2l6ZXMsIFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBNZW51QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9tZW51LWJ1dHRvbic7XG5pbXBvcnQgeyBTZWFyY2hGaWVsZENvbXBvbmVudCwgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnQtaXRlbS9tYW5hZ2UtdmFyaWFudC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YXJpYW50LW1hbmFnZW1lbnQtZGlydHktbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNhdmVEaWFsb2dDb250ZXh0IH0gZnJvbSAnLi9tb2RlbHMvc2F2ZS1kaWFsb2cubW9kZWwnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnQgfSBmcm9tICcuL21vZGVscy92YXJpYW50LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgTmV3VmFyaWFudCwgVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzL3ZhcmlhbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZEUF9WQVJJQU5UX01BTkFHRU1FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQgeyBWYXJpYW50SXRlbSB9IGZyb20gJy4vdmFyaWFudC1pdGVtLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdmFyaWFudC1tYW5hZ2VtZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfVkFSSUFOVF9NQU5BR0VNRU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRNYW5hZ2VtZW50Q29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE1lbnVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQm9keUhlYWRlckRpcmVjdGl2ZSxcbiAgICAgICAgQmFyQ29tcG9uZW50LFxuICAgICAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgICAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBTZWFyY2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgTGlzdENvbXBvbmVudCxcbiAgICAgICAgTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIExpc3RMaW5rRGlyZWN0aXZlLFxuICAgICAgICBMaXN0VGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIFBvcG92ZXJCb2R5Rm9vdGVyRGlyZWN0aXZlLFxuICAgICAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uQmFyQ29tcG9uZW50LFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIEZpbHRlclN0cmluZ3NQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIFZhcmlhbnRNYW5hZ2VtZW50PFQ+IHtcbiAgICAvKiogSW5pdGlhbCB2YXJpYW50cyBhcnJheS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYW50cyhpdGVtczogVmFyaWFudDxUPltdKSB7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5fdHJhbnNmb3JtVmFyaWFudHMoaXRlbXMpO1xuXG4gICAgICAgIGxldCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlzRGVmYXVsdCk7XG4gICAgICAgIGN1cnJlbnRWYXJpYW50SW5kZXggPSBjdXJyZW50VmFyaWFudEluZGV4ID4gLTEgPyBjdXJyZW50VmFyaWFudEluZGV4IDogMDtcbiAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XTtcbiAgICAgICAgdGhpcy5zZWxlY3RWYXJpYW50KGN1cnJlbnRWYXJpYW50IGFzIFZhcmlhbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogSGVhZGVyIHNpemUuICovXG4gICAgQElucHV0KClcbiAgICBoZWFkZXJTaXplOiBIZWFkZXJTaXplcyA9IDQ7XG5cbiAgICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUcmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHsgdHJpZ2dlcjogJ2NsaWNrJywgc3RvcFByb3BhZ2F0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogdHJ1ZSwgb3BlbkFjdGlvbjogdHJ1ZSB9XG4gICAgXTtcblxuICAgIC8qKiBVc2VyJ3MgbmFtZSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyB2YXJpYW50cyB1c2VyIGNyZWF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBzZWFyY2ggZmllbGQgZm9yIHZhcmlhbnRzIGxpc3QuICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U2VhcmNoID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHZhcmlhbnRzIGRhdGEgaGFzIGJlZW4gdXBkYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB2YXJpYW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPltdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBuZXcgdmFyaWFudCBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBhY3RpdmVWYXJpYW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWYXJpYW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCBpbnRlcm5hbGx5IGZvciBjb21tdW5pY2F0aW5nIHdpdGggd3JhcHBlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgYWN0aXZlVmFyaWFudENoYW5nZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhcmlhbnQ8VD4gfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBkaXJ0eSBsYWJlbCBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUpXG4gICAgZGlydHlMYWJlbDogVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAvKiogU2VsZWN0ZWQgdmFyaWFudC4gKi9cbiAgICBhY3RpdmVWYXJpYW50ITogVmFyaWFudEl0ZW08VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF92YXJpYW50czogVmFyaWFudEl0ZW08VD5bXSA9IFtdO1xuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfZmlsdGVyUGhyYXNlOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudCc7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29yaWdpbmFsQWN0aXZlVmFyaWFudDogVmFyaWFudEl0ZW08VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgc2VsZWN0IHZhcmlhbnQuXG4gICAgICogQHBhcmFtIHZhcmlhbnQgVmFyaWFudCB0byBzZWxlY3QuXG4gICAgICovXG4gICAgc2VsZWN0VmFyaWFudCh2YXJpYW50OiBWYXJpYW50SXRlbTxUPik6IHZvaWQge1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50O1xuICAgICAgICB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudENoYW5nZS5lbWl0KHZhcmlhbnQpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2VTdWJqZWN0Lm5leHQodmFyaWFudCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgb3JpZ2luYWwgdmFyaWFudCBkYXRhLiAqL1xuICAgIGdldE9yaWdpbmFsQWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgYWN0aXZlIHZhcmlhbnQgZGF0YSB3aXRoIGFwcGxpZWQgY2hhbmdlcy4gKi9cbiAgICBnZXRBY3RpdmVWYXJpYW50RGF0YSgpOiBWYXJpYW50PFQ+WydkYXRhJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVWYXJpYW50LmRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgY3VycmVudCB2YXJpYW50IHdpdGggaXRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc2F2ZUN1cnJlbnRWYXJpYW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlkID09PSB0aGlzLmFjdGl2ZVZhcmlhbnQuaWQpO1xuICAgICAgICB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XSA9IHRoaXMuYWN0aXZlVmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3BlblNhdmVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXI/LmNsb3NlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPFNhdmVEaWFsb2dDb250ZXh0PihNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nVmFyaWFudE5hbWVzOiB0aGlzLl92YXJpYW50cy5tYXAoKHZhcmlhbnQpID0+IHZhcmlhbnQubmFtZSksXG4gICAgICAgICAgICAgICAgY3VycmVudFZhcmlhbnROYW1lOiB0aGlzLmFjdGl2ZVZhcmlhbnQubmFtZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzdWx0OiBOZXdWYXJpYW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFyaWFudCA9IHRoaXMuYWN0aXZlVmFyaWFudC5jbG9uZSh7IC4uLnJlc3VsdCwgLi4ueyBjcmVhdGVkQnk6IHRoaXMudXNlck5hbWUgfSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50cy5wdXNoKG5ld1ZhcmlhbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50ID0gbmV3VmFyaWFudDtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgY3VycmVudCBhY3RpdmUgcHJlc2V0IHdpdGggbmV3IGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIHByZXNldCBQcmVzZXQgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gY29tcG9uZW50TmFtZSBjb21wb25lbnQgdG8gd2hpY2ggdGhpcyBwcmVzZXQgYmVsb25ncyB0by5cbiAgICAgKi9cbiAgICB1cGRhdGVBY3RpdmVQcmVzZXQocHJlc2V0OiBULCBjb21wb25lbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aXZlVmFyaWFudERhdGEgPSB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQuZGF0YVtjb21wb25lbnROYW1lXTtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBhY3RpdmVWYXJpYW50RGF0YSAmJiAhZXF1YWwocHJlc2V0LCBhY3RpdmVWYXJpYW50RGF0YSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudC5kYXRhW2NvbXBvbmVudE5hbWVdID0gcHJlc2V0O1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29wZW5NYW5hZ2VEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXI/LmNsb3NlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPFZhcmlhbnRJdGVtW10+KE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB0aGlzLl92YXJpYW50c1xuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YXJpYW50czogVmFyaWFudEl0ZW1bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdmFyaWFudHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hTdWJtaXQoc2VhcmNoOiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBzZWFyY2gudGV4dDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5jZWxTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclBocmFzZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfdHJhY2tGbihpbmRleDogbnVtYmVyLCBpdGVtOiBWYXJpYW50SXRlbTxUPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtVmFyaWFudHMoaXRlbXM6IFZhcmlhbnQ8VD5bXSk6IFZhcmlhbnRJdGVtW10ge1xuICAgICAgICByZXR1cm4gaXRlbXMubWFwKCh2YXJpYW50KSA9PiBuZXcgVmFyaWFudEl0ZW0odmFyaWFudCkpO1xuICAgIH1cbn1cbiIsIkBpZiAoYWN0aXZlVmFyaWFudCkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3BvcG92ZXItYm9keVwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJwb3BvdmVyVHJpZ2dlcnNcIlxuICAgID5cbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxoNCBmZC10aXRsZSBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGVcIiBbaGVhZGVyU2l6ZV09XCJoZWFkZXJTaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVZhcmlhbnQubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgQGlmIChfdmFyaWFudENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19kaXJ0eS1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZGlydHktaW5kaWNhdG9yLS1jdXN0b21dPVwiISFkaXJ0eUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RGlydHlJbmRpY2F0b3I+KjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkaXJ0eUxhYmVsID8gZGlydHlMYWJlbC50ZW1wbGF0ZVJlZiA6IGRlZmF1bHREaXJ0eUluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZmRwLW1lbnUtYnV0dG9uIHR5cGU9XCJ0cmFuc3BhcmVudFwiPiA8L2ZkcC1tZW51LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cImRpc3BsYXlTZWFyY2ggPyAnaGVhZGVyLXdpdGgtc3ViaGVhZGVyJyA6ICdoZWFkZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPnt7ICdwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50Lm15Vmlld3MnIHwgZmRUcmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2VhcmNoJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwiX29uU2VhcmNoU3VibWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJfY2FuY2VsU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVSZWZyZXNoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudCBvZiBfdmFyaWFudHMgfCBmZEZpbHRlclN0cmluZ3M6IHsgc2VhcmNoVGVybTogX2ZpbHRlclBocmFzZSwga2V5OiAnbmFtZScgfTtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sgdmFyaWFudC5pZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIChjbGljayk9XCJzZWxlY3RWYXJpYW50KHZhcmlhbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyB2YXJpYW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY3RpdmVWYXJpYW50LnJlYWRvbmx5ICYmIF92YXJpYW50Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ3VycmVudFZhcmlhbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJhY3RpdmVWYXJpYW50LnJlYWRvbmx5IHx8ICFfdmFyaWFudENoYW5nZWQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZUFzJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX29wZW5TYXZlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50Lm1hbmFnZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuTWFuYWdlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxufVxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3ZhcmlhbnQtbWFuYWdlbWVudC92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JILE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLDBC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QURQLFNBQVM7dUJBQUMsU0FBUztnQkFLSCxhQUFhO3NCQUQ3QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlclN0cmluZ3NQaXBlLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQmFyQ29tcG9uZW50LFxuICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICBCdXR0b25CYXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IER5bmFtaWNQYWdlLCBGRF9EWU5BTUlDX1BBR0UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RJdGVtQ29tcG9uZW50LCBMaXN0TGlua0RpcmVjdGl2ZSwgTGlzdFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBQb3BvdmVyQm9keUNvbXBvbmVudCxcbiAgICBQb3BvdmVyQm9keUZvb3RlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQm9keUhlYWRlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFBvcG92ZXJDb250cm9sQ29tcG9uZW50LFxuICAgIFRyaWdnZXJDb25maWdcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgSGVhZGVyU2l6ZXMsIFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBGRFBfRFlOQU1JQ19QQUdFIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9keW5hbWljLXBhZ2UnO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRDb21wb25lbnQsIFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hbmFnZVZhcmlhbnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS12YXJpYW50LWl0ZW0vbWFuYWdlLXZhcmlhbnQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFuYWdlVmFyaWFudHNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFyaWFudC1tYW5hZ2VtZW50LWRpcnR5LWxhYmVsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTYXZlRGlhbG9nQ29udGV4dCB9IGZyb20gJy4vbW9kZWxzL3NhdmUtZGlhbG9nLm1vZGVsJztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50IH0gZnJvbSAnLi9tb2RlbHMvdmFyaWFudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IE5ld1ZhcmlhbnQsIFZhcmlhbnQgfSBmcm9tICcuL21vZGVscy92YXJpYW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGRFBfVkFSSUFOVF9NQU5BR0VNRU5UIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHsgVmFyaWFudEl0ZW0gfSBmcm9tICcuL3ZhcmlhbnQtaXRlbS5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXZhcmlhbnQtbWFuYWdlbWVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX1ZBUklBTlRfTUFOQUdFTUVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBQb3BvdmVyQm9keUNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckJvZHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgIEJhckNvbXBvbmVudCxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgU2VhcmNoRmllbGRDb21wb25lbnQsXG4gICAgICAgIExpc3RDb21wb25lbnQsXG4gICAgICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBMaXN0TGlua0RpcmVjdGl2ZSxcbiAgICAgICAgTGlzdFRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBQb3BvdmVyQm9keUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBGaWx0ZXJTdHJpbmdzUGlwZSxcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBCdXR0b25Db21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFZhcmlhbnRNYW5hZ2VtZW50Q29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgVmFyaWFudE1hbmFnZW1lbnQ8VD4ge1xuICAgIC8qKiBJbml0aWFsIHZhcmlhbnRzIGFycmF5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhcmlhbnRzKGl0ZW1zOiBWYXJpYW50PFQ+W10pIHtcbiAgICAgICAgdGhpcy5fdmFyaWFudHMgPSB0aGlzLl90cmFuc2Zvcm1WYXJpYW50cyhpdGVtcyk7XG5cbiAgICAgICAgbGV0IGN1cnJlbnRWYXJpYW50SW5kZXggPSB0aGlzLl92YXJpYW50cy5maW5kSW5kZXgoKHZhcmlhbnQpID0+IHZhcmlhbnQuaXNEZWZhdWx0KTtcbiAgICAgICAgY3VycmVudFZhcmlhbnRJbmRleCA9IGN1cnJlbnRWYXJpYW50SW5kZXggPiAtMSA/IGN1cnJlbnRWYXJpYW50SW5kZXggOiAwO1xuICAgICAgICBjb25zdCBjdXJyZW50VmFyaWFudCA9IHRoaXMuX3ZhcmlhbnRzW2N1cnJlbnRWYXJpYW50SW5kZXhdO1xuICAgICAgICB0aGlzLnNlbGVjdFZhcmlhbnQoY3VycmVudFZhcmlhbnQgYXMgVmFyaWFudEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBIZWFkZXIgc2l6ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhlYWRlclNpemU6IEhlYWRlclNpemVzID0gNDtcblxuICAgIC8qKiBQb3BvdmVyIHRyaWdnZXIgZXZlbnRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcG9wb3ZlclRyaWdnZXJzOiAoc3RyaW5nIHwgVHJpZ2dlckNvbmZpZylbXSA9IFtcbiAgICAgICAgeyB0cmlnZ2VyOiAnY2xpY2snLCBzdG9wUHJvcGFnYXRpb246IHRydWUsIGNsb3NlQWN0aW9uOiB0cnVlLCBvcGVuQWN0aW9uOiB0cnVlIH1cbiAgICBdO1xuXG4gICAgLyoqIFVzZXIncyBuYW1lIHdoaWNoIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgbmV3IHZhcmlhbnRzIHVzZXIgY3JlYXRlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZXJOYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0byBkaXNwbGF5IHNlYXJjaCBmaWVsZCBmb3IgdmFyaWFudHMgbGlzdC4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBkaXNwbGF5U2VhcmNoID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdmFyaWFudCBtYW5hZ2VtZW50IGNvbXBvbmVudCBpcyBpbiByZWFkb25seSBtb2RlLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHZhcmlhbnRzIGRhdGEgaGFzIGJlZW4gdXBkYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB2YXJpYW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPltdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBuZXcgdmFyaWFudCBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBhY3RpdmVWYXJpYW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWYXJpYW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGRpcnR5IGxhYmVsIGRpcmVjdGl2ZS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZSlcbiAgICBkaXJ0eUxhYmVsOiBWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKVxuICAgIF9wb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbml0aWFsQ2xhc3MgPSAnZmQtdmFyaWFudC1tYW5hZ2VtZW50JztcblxuICAgIC8qKlxuICAgICAqIFVzZWQgaW50ZXJuYWxseSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHdyYXBwZXIgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGFjdGl2ZVZhcmlhbnRDaGFuZ2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYXJpYW50PFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFNlbGVjdGVkIHZhcmlhbnQuICovXG4gICAgYWN0aXZlVmFyaWFudCE6IFZhcmlhbnRJdGVtPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFyaWFudHM6IFZhcmlhbnRJdGVtPFQ+W10gPSBbXTtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX2ZpbHRlclBocmFzZTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZHluYW1pY1BhZ2UoKTogRHluYW1pY1BhZ2UgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvcmVEeW5hbWljUGFnZSB8fCB0aGlzLl9wbGF0Zm9ybUR5bmFtaWNQYWdlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9keW5hbWljUGFnZUNvbGxhcHNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9jb3JlRHluYW1pY1BhZ2UgPSBpbmplY3QoRkRfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9wbGF0Zm9ybUR5bmFtaWNQYWdlID0gaW5qZWN0KEZEUF9EWU5BTUlDX1BBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQ6IFZhcmlhbnRJdGVtPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5fZHluYW1pY1BhZ2UpIHtcbiAgICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZHluYW1pY1BhZ2VDb2xsYXBzZWQkLm5leHQodGhpcy5fZHluYW1pY1BhZ2UhLmNvbGxhcHNlZCgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgc2VsZWN0IHZhcmlhbnQuXG4gICAgICogQHBhcmFtIHZhcmlhbnQgVmFyaWFudCB0byBzZWxlY3QuXG4gICAgICovXG4gICAgc2VsZWN0VmFyaWFudCh2YXJpYW50OiBWYXJpYW50SXRlbTxUPik6IHZvaWQge1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50O1xuICAgICAgICB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudENoYW5nZS5lbWl0KHZhcmlhbnQpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2VTdWJqZWN0Lm5leHQodmFyaWFudCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgb3JpZ2luYWwgdmFyaWFudCBkYXRhLiAqL1xuICAgIGdldE9yaWdpbmFsQWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgYWN0aXZlIHZhcmlhbnQgZGF0YSB3aXRoIGFwcGxpZWQgY2hhbmdlcy4gKi9cbiAgICBnZXRBY3RpdmVWYXJpYW50RGF0YSgpOiBWYXJpYW50PFQ+WydkYXRhJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVWYXJpYW50LmRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgY3VycmVudCB2YXJpYW50IHdpdGggaXRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc2F2ZUN1cnJlbnRWYXJpYW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYXJpYW50SW5kZXggPSB0aGlzLl92YXJpYW50cy5maW5kSW5kZXgoKHZhcmlhbnQpID0+IHZhcmlhbnQuaWQgPT09IHRoaXMuYWN0aXZlVmFyaWFudC5pZCk7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzW2N1cnJlbnRWYXJpYW50SW5kZXhdID0gdGhpcy5hY3RpdmVWYXJpYW50O1xuICAgICAgICB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQgPSB0aGlzLmFjdGl2ZVZhcmlhbnQuY2xvbmUoe30sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vcGVuU2F2ZURpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wb3BvdmVyPy5jbG9zZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbjxTYXZlRGlhbG9nQ29udGV4dD4oTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1ZhcmlhbnROYW1lczogdGhpcy5fdmFyaWFudHMubWFwKCh2YXJpYW50KSA9PiB2YXJpYW50Lm5hbWUpLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRWYXJpYW50TmFtZTogdGhpcy5hY3RpdmVWYXJpYW50Lm5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlc3VsdDogTmV3VmFyaWFudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhcmlhbnQgPSB0aGlzLmFjdGl2ZVZhcmlhbnQuY2xvbmUoeyAuLi5yZXN1bHQsIC4uLnsgY3JlYXRlZEJ5OiB0aGlzLnVzZXJOYW1lIH0gfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFudHMucHVzaChuZXdWYXJpYW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhcmlhbnRzQ2hhbmdlLmVtaXQodGhpcy5fdmFyaWFudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudCA9IG5ld1ZhcmlhbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7fVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGN1cnJlbnQgYWN0aXZlIHByZXNldCB3aXRoIG5ldyBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBwcmVzZXQgUHJlc2V0IGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIGNvbXBvbmVudE5hbWUgY29tcG9uZW50IHRvIHdoaWNoIHRoaXMgcHJlc2V0IGJlbG9uZ3MgdG8uXG4gICAgICovXG4gICAgdXBkYXRlQWN0aXZlUHJlc2V0KHByZXNldDogVCwgY29tcG9uZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVZhcmlhbnREYXRhID0gdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50LmRhdGFbY29tcG9uZW50TmFtZV07XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gYWN0aXZlVmFyaWFudERhdGEgJiYgIWVxdWFsKHByZXNldCwgYWN0aXZlVmFyaWFudERhdGEpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQuZGF0YVtjb21wb25lbnROYW1lXSA9IHByZXNldDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vcGVuTWFuYWdlRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BvcG92ZXI/LmNsb3NlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPFZhcmlhbnRJdGVtW10+KE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB0aGlzLl92YXJpYW50c1xuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YXJpYW50czogVmFyaWFudEl0ZW1bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdmFyaWFudHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hTdWJtaXQoc2VhcmNoOiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBzZWFyY2gudGV4dDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5jZWxTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclBocmFzZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfdHJhY2tGbihpbmRleDogbnVtYmVyLCBpdGVtOiBWYXJpYW50SXRlbTxUPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtVmFyaWFudHMoaXRlbXM6IFZhcmlhbnQ8VD5bXSk6IFZhcmlhbnRJdGVtW10ge1xuICAgICAgICByZXR1cm4gaXRlbXMubWFwKCh2YXJpYW50KSA9PiBuZXcgVmFyaWFudEl0ZW0odmFyaWFudCkpO1xuICAgIH1cbn1cbiIsIkBpZiAoYWN0aXZlVmFyaWFudCkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3BvcG92ZXItYm9keVwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJwb3BvdmVyVHJpZ2dlcnNcIlxuICAgID5cbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICBmZC10aXRsZVxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZmQtdmFyaWFudC1tYW5hZ2VtZW50X190aXRsZSc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmQtdmFyaWFudC1tYW5hZ2VtZW50X190aXRsZS0tZHluYW1pYy1wYWdlJzogX2R5bmFtaWNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGUtLWR5bmFtaWMtcGFnZS0tY29sbGFwc2VkJzogX2R5bmFtaWNQYWdlQ29sbGFwc2VkJCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICBbaGVhZGVyU2l6ZV09XCJoZWFkZXJTaXplXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVZhcmlhbnQubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgQGlmIChfdmFyaWFudENoYW5nZWQgJiYgIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZGlydHktaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC12YXJpYW50LW1hbmFnZW1lbnRfX2RpcnR5LWluZGljYXRvci0tY3VzdG9tXT1cIiEhZGlydHlMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERpcnR5SW5kaWNhdG9yPio8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGlydHlMYWJlbCA/IGRpcnR5TGFiZWwudGVtcGxhdGVSZWYgOiBkZWZhdWx0RGlydHlJbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2ZkTWVudV09XCJ0cnVlXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cImRpc3BsYXlTZWFyY2ggPyAnaGVhZGVyLXdpdGgtc3ViaGVhZGVyJyA6ICdoZWFkZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPnt7ICdwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50Lm15Vmlld3MnIHwgZmRUcmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2VhcmNoJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwiX29uU2VhcmNoU3VibWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJfY2FuY2VsU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVSZWZyZXNoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudCBvZiBfdmFyaWFudHMgfCBmZEZpbHRlclN0cmluZ3M6IHsgc2VhcmNoVGVybTogX2ZpbHRlclBocmFzZSwga2V5OiAnbmFtZScgfTtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sgdmFyaWFudC5pZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIChjbGljayk9XCJzZWxlY3RWYXJpYW50KHZhcmlhbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyB2YXJpYW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIEBpZiAoIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktZm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWFjdGl2ZVZhcmlhbnQucmVhZG9ubHkgJiYgX3ZhcmlhbnRDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5zYXZlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ3VycmVudFZhcmlhbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImFjdGl2ZVZhcmlhbnQucmVhZG9ubHkgfHwgIV92YXJpYW50Q2hhbmdlZCA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZUFzJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuU2F2ZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5tYW5hZ2UnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX29wZW5NYW5hZ2VEaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxufVxuIl19
@@ -6,8 +6,8 @@ import { VariantManagementDirtyLabelDirective } from './directives/variant-manag
6
6
  import { VariantManagementComponent } from './variant-management.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class VariantManagementModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementModule, imports: [VariantManagementComponent,
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementModule, imports: [VariantManagementComponent,
11
11
  VariantManagementDirtyLabelDirective,
12
12
  ManageVariantItemComponent,
13
13
  VariantManagementWrapperComponent,
@@ -16,11 +16,11 @@ export class VariantManagementModule {
16
16
  ManageVariantItemComponent,
17
17
  VariantManagementWrapperComponent,
18
18
  ManageVariantsDialogComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementModule, imports: [VariantManagementComponent,
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementModule, imports: [VariantManagementComponent,
20
20
  ManageVariantItemComponent,
21
21
  ManageVariantsDialogComponent] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: VariantManagementModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  imports: [