@fundamental-ngx/platform 0.47.4 → 0.48.0-rc.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 (405) hide show
  1. package/esm2022/action-bar/action-bar.component.mjs +8 -9
  2. package/esm2022/action-bar/action-bar.module.mjs +4 -4
  3. package/esm2022/action-button-group/action-button-group.component.mjs +4 -4
  4. package/esm2022/action-button-group/action-button-group.module.mjs +4 -4
  5. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +6 -11
  6. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +6 -8
  7. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +5 -6
  8. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +5 -5
  9. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +8 -11
  10. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +6 -8
  11. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +5 -7
  12. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +5 -6
  13. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +6 -6
  14. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +6 -7
  15. package/esm2022/approval-flow/approval-flow.component.mjs +8 -10
  16. package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
  17. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
  18. package/esm2022/button/button.component.mjs +5 -5
  19. package/esm2022/button/button.module.mjs +4 -4
  20. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
  21. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
  22. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +5 -5
  23. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +5 -5
  24. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  25. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
  26. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
  27. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +4 -4
  28. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
  29. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
  30. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
  31. package/esm2022/dynamic-page/dynamic-page.component.mjs +8 -10
  32. package/esm2022/dynamic-page/dynamic-page.config.mjs +4 -4
  33. package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
  34. package/esm2022/dynamic-page/dynamic-page.service.mjs +3 -3
  35. package/esm2022/feed-input/feed-input.component.mjs +6 -7
  36. package/esm2022/feed-input/feed-input.module.mjs +4 -4
  37. package/esm2022/form/auto-complete/auto-complete.directive.mjs +5 -5
  38. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
  39. package/esm2022/form/checkbox/checkbox.component.mjs +6 -6
  40. package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
  41. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +8 -8
  42. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
  43. package/esm2022/form/combobox/combobox/combobox.component.mjs +9 -11
  44. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +13 -15
  45. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  46. package/esm2022/form/combobox/combobox.config.mjs +4 -4
  47. package/esm2022/form/combobox/combobox.module.mjs +4 -4
  48. package/esm2022/form/combobox/commons/base-combobox.mjs +8 -6
  49. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
  50. package/esm2022/form/date-picker/date-picker.component.mjs +6 -6
  51. package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
  52. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -6
  53. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
  54. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
  55. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +4 -4
  56. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +4 -4
  57. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +4 -4
  58. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  59. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +4 -4
  60. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
  61. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +4 -4
  62. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +4 -4
  63. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +4 -4
  64. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +5 -5
  65. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +6 -6
  66. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
  67. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +9 -11
  68. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
  69. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +7 -8
  70. package/esm2022/form/form-generator/form-generator.service.mjs +5 -5
  71. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +5 -5
  72. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
  73. package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
  74. package/esm2022/form/form-group/form-field/form-field.component.mjs +10 -10
  75. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +6 -6
  76. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +6 -6
  77. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +5 -5
  78. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  79. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +6 -6
  80. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -6
  81. package/esm2022/form/form-group/form-group.component.mjs +8 -10
  82. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
  83. package/esm2022/form/form-group/services/form-field-layout.service.mjs +5 -5
  84. package/esm2022/form/input/fdp-input.module.mjs +4 -4
  85. package/esm2022/form/input/input.component.mjs +6 -6
  86. package/esm2022/form/input-group/addon-body.component.mjs +5 -5
  87. package/esm2022/form/input-group/addon.component.mjs +5 -5
  88. package/esm2022/form/input-group/input-group.component.mjs +12 -12
  89. package/esm2022/form/input-group/input-group.config.mjs +4 -4
  90. package/esm2022/form/input-group/input-group.module.mjs +4 -4
  91. package/esm2022/form/input-group/input.component.mjs +3 -3
  92. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +7 -7
  93. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +6 -6
  94. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +10 -12
  95. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +8 -9
  96. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
  97. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +4 -4
  98. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
  99. package/esm2022/form/multi-input/base-multi-input.mjs +6 -6
  100. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +12 -12
  101. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  102. package/esm2022/form/multi-input/multi-input.component.mjs +9 -11
  103. package/esm2022/form/multi-input/multi-input.config.mjs +4 -4
  104. package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
  105. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +6 -6
  106. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +4 -4
  107. package/esm2022/form/radio-group/radio/radio.component.mjs +8 -8
  108. package/esm2022/form/radio-group/radio-group.component.mjs +8 -8
  109. package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
  110. package/esm2022/form/select/commons/base-select.mjs +6 -6
  111. package/esm2022/form/select/select/select.component.mjs +8 -8
  112. package/esm2022/form/select/select.config.mjs +4 -4
  113. package/esm2022/form/select/select.module.mjs +4 -4
  114. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  115. package/esm2022/form/step-input/number/number-step-input.component.mjs +9 -10
  116. package/esm2022/form/step-input/step-input-action-button.mjs +3 -3
  117. package/esm2022/form/step-input/step-input-control.directive.mjs +6 -6
  118. package/esm2022/form/step-input/step-input-decrement.directive.mjs +5 -5
  119. package/esm2022/form/step-input/step-input-increment.directive.mjs +5 -5
  120. package/esm2022/form/step-input/step-input.config.mjs +3 -3
  121. package/esm2022/form/step-input/step-input.module.mjs +4 -4
  122. package/esm2022/form/switch/switch/switch.component.mjs +6 -6
  123. package/esm2022/form/switch/switch/switch.config.mjs +3 -3
  124. package/esm2022/form/switch/switch.module.mjs +4 -4
  125. package/esm2022/form/text-area/text-area.component.mjs +8 -9
  126. package/esm2022/form/text-area/text-area.config.mjs +3 -3
  127. package/esm2022/form/text-area/text-area.module.mjs +4 -4
  128. package/esm2022/form/time-picker/time-picker.component.mjs +6 -6
  129. package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
  130. package/esm2022/fundamental-ngx.module.mjs +5 -5
  131. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +3 -3
  132. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +5 -9
  133. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -8
  134. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -8
  135. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +5 -8
  136. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +7 -9
  137. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +6 -15
  138. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +5 -9
  139. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +6 -8
  140. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +5 -5
  141. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +5 -5
  142. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +5 -5
  143. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +8 -9
  144. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
  145. package/esm2022/info-label/info-label.component.mjs +5 -5
  146. package/esm2022/info-label/info-label.module.mjs +4 -4
  147. package/esm2022/link/link.component.mjs +5 -5
  148. package/esm2022/link/link.module.mjs +4 -4
  149. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  150. package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
  151. package/esm2022/list/base-list-item.mjs +11 -11
  152. package/esm2022/list/display-list-item/display-list-item.component.mjs +6 -7
  153. package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
  154. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +4 -4
  155. package/esm2022/list/list-group-footer.component.mjs +3 -3
  156. package/esm2022/list/list-group-header.component.mjs +3 -3
  157. package/esm2022/list/list.component.mjs +9 -11
  158. package/esm2022/list/list.config.mjs +3 -3
  159. package/esm2022/list/list.module.mjs +4 -4
  160. package/esm2022/list/load-more-content.directive.mjs +4 -4
  161. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +4 -4
  162. package/esm2022/list/object-list-item/object-list-item.component.mjs +6 -7
  163. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
  164. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +6 -7
  165. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
  166. package/esm2022/menu/menu-item.component.mjs +7 -7
  167. package/esm2022/menu/menu-trigger.directive.mjs +6 -6
  168. package/esm2022/menu/menu.component.mjs +6 -6
  169. package/esm2022/menu/menu.module.mjs +4 -4
  170. package/esm2022/menu-button/menu-button.component.mjs +5 -5
  171. package/esm2022/menu-button/menu-button.module.mjs +4 -4
  172. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +6 -6
  173. package/esm2022/message-popover/components/message-view/message-view.component.mjs +8 -10
  174. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +6 -6
  175. package/esm2022/message-popover/message-popover.component.mjs +7 -9
  176. package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
  177. package/esm2022/object-marker/object-marker.component.mjs +6 -7
  178. package/esm2022/object-marker/object-marker.module.mjs +4 -4
  179. package/esm2022/object-status/object-status.component.mjs +8 -8
  180. package/esm2022/object-status/object-status.module.mjs +4 -4
  181. package/esm2022/page-footer/page-footer.component.mjs +6 -6
  182. package/esm2022/page-footer/page-footer.module.mjs +4 -4
  183. package/esm2022/panel/panel-actions.component.mjs +3 -3
  184. package/esm2022/panel/panel-content/panel-content.component.mjs +4 -4
  185. package/esm2022/panel/panel.component.mjs +5 -5
  186. package/esm2022/panel/panel.config.mjs +4 -4
  187. package/esm2022/panel/panel.module.mjs +4 -4
  188. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +8 -9
  189. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
  190. package/esm2022/search-field/search-field.component.mjs +16 -18
  191. package/esm2022/search-field/search-field.module.mjs +4 -4
  192. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +9 -16
  193. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
  194. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -6
  195. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +6 -9
  196. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +6 -8
  197. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +7 -7
  198. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
  199. package/esm2022/settings-generator/settings-generator.component.mjs +9 -9
  200. package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
  201. package/esm2022/settings-generator/settings-generator.service.mjs +4 -4
  202. package/esm2022/shared/base.mjs +5 -5
  203. package/esm2022/shared/form/base.input.mjs +6 -6
  204. package/esm2022/shared/form/collection-base.input.mjs +6 -6
  205. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +13 -13
  206. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
  207. package/esm2022/shared/pipes/pipe.module.mjs +4 -4
  208. package/esm2022/shared/platform.config.mjs +3 -3
  209. package/esm2022/slider/slider.component.mjs +6 -6
  210. package/esm2022/slider/slider.module.mjs +4 -4
  211. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +4 -4
  212. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -4
  213. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -9
  214. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +7 -9
  215. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
  216. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +5 -5
  217. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +4 -4
  218. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
  219. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +8 -10
  220. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
  221. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +4 -4
  222. package/esm2022/split-menu-button/split-menu-button.component.mjs +6 -6
  223. package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
  224. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
  225. package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -5
  226. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -8
  227. package/esm2022/table/components/table-column/table-column.component.mjs +6 -6
  228. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -6
  229. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +5 -15
  230. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +7 -7
  231. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +6 -6
  232. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +11 -13
  233. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +7 -9
  234. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +9 -11
  235. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +6 -9
  236. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +6 -8
  237. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +9 -11
  238. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
  239. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -5
  240. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
  241. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
  242. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
  243. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -9
  244. package/esm2022/table/components/table-row/table-row.component.mjs +8 -12
  245. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
  246. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
  247. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +7 -8
  248. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +6 -6
  249. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +5 -6
  250. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +5 -14
  251. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +5 -8
  252. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +5 -7
  253. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +7 -10
  254. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -8
  255. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
  256. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +5 -5
  257. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
  258. package/esm2022/table/table.component.mjs +9 -14
  259. package/esm2022/table/table.module.mjs +4 -4
  260. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +6 -6
  261. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
  262. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +5 -5
  263. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
  264. package/esm2022/table-helpers/directives/table-cell.directive.mjs +16 -16
  265. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -3
  266. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
  267. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
  268. package/esm2022/table-helpers/directives/table-header.directive.mjs +7 -7
  269. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +3 -3
  270. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  271. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +4 -4
  272. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
  273. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +16 -1
  274. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
  275. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
  276. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
  277. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
  278. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
  279. package/esm2022/table-helpers/services/table-column-resize.service.mjs +5 -5
  280. package/esm2022/table-helpers/services/table-responsive.service.mjs +5 -5
  281. package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
  282. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
  283. package/esm2022/table-helpers/services/table.service.mjs +3 -3
  284. package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
  285. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +6 -8
  286. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +8 -8
  287. package/esm2022/thumbnail/thumbnail.component.mjs +7 -8
  288. package/esm2022/thumbnail/thumbnail.module.mjs +4 -4
  289. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +6 -9
  290. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +6 -8
  291. package/esm2022/upload-collection/directives/upload-collection-dragndrop.directive.mjs +5 -5
  292. package/esm2022/upload-collection/services/files-validator.service.mjs +3 -3
  293. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +7 -11
  294. package/esm2022/upload-collection/upload-collection.module.mjs +4 -4
  295. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +5 -5
  296. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +6 -10
  297. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +13 -15
  298. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
  299. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +5 -5
  300. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +12 -17
  301. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
  302. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +5 -5
  303. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -8
  304. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
  305. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +4 -4
  306. package/esm2022/variant-management/variant-management.component.mjs +8 -10
  307. package/esm2022/variant-management/variant-management.module.mjs +4 -4
  308. package/esm2022/wizard-generator/base-wizard-generator.mjs +5 -5
  309. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +7 -8
  310. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -9
  311. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +6 -7
  312. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +6 -7
  313. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +5 -6
  314. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +7 -7
  315. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
  316. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
  317. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
  318. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
  319. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +4 -4
  320. package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
  321. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  322. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +11 -12
  323. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
  324. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +8 -8
  325. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +62 -74
  326. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  327. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -8
  328. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +54 -56
  330. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -10
  332. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-platform-form.mjs +453 -464
  334. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +59 -87
  336. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-platform-info-label.mjs +8 -8
  338. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-platform-link.mjs +8 -8
  340. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-platform-list.mjs +73 -78
  342. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -8
  344. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-platform-menu.mjs +20 -20
  346. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +29 -33
  348. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +9 -10
  350. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-platform-object-status.mjs +12 -12
  352. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +9 -9
  354. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -19
  356. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-platform-search-field.mjs +29 -32
  358. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +45 -56
  360. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-platform-shared.mjs +36 -36
  362. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  363. package/fesm2022/fundamental-ngx-platform-slider.mjs +9 -9
  364. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  365. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +48 -53
  366. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  367. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -9
  368. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  369. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +115 -100
  370. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  371. package/fesm2022/fundamental-ngx-platform-table.mjs +168 -218
  372. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  373. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +22 -23
  374. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
  375. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +27 -34
  376. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  377. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +41 -52
  378. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  379. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +28 -31
  380. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  381. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +58 -61
  382. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  383. package/fesm2022/fundamental-ngx-platform.mjs +5 -5
  384. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -2
  385. package/form/form-group/form-group.component.d.ts +1 -1
  386. package/form/input-group/input-group.component.d.ts +2 -2
  387. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  388. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
  389. package/fundamental-ngx-platform-v0.48.0-rc.0.tgz +0 -0
  390. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +0 -2
  391. package/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.d.ts +0 -2
  392. package/list/list.component.d.ts +1 -1
  393. package/package.json +4 -4
  394. package/page-footer/page-footer.component.d.ts +1 -1
  395. package/schematics/ng-add/index.js +1 -1
  396. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  397. package/settings-generator/settings-generator.component.d.ts +2 -2
  398. package/table/components/table-p13-dialog/filtering/filter-rule.component.d.ts +2 -0
  399. package/table/table.component.d.ts +1 -1
  400. package/table-helpers/enums/collection-filter.enum.d.ts +2 -0
  401. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -1
  402. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -1
  403. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +2 -2
  404. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +2 -2
  405. package/fundamental-ngx-platform-v0.47.4.tgz +0 -0
@@ -1,9 +1,9 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { FormsModule, NgForm } from '@angular/forms';
3
- import { FILTER_STRATEGY, FilterableColumnDataType } from '@fundamental-ngx/platform/table-helpers';
3
+ import { FILTER_STRATEGY, FILTER_STRATEGY_LABEL, FilterableColumnDataType } from '@fundamental-ngx/platform/table-helpers';
4
4
  import { Subscription } from 'rxjs';
5
5
  import { skip } from 'rxjs/operators';
6
- import { NgFor, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
6
+ import { NgTemplateOutlet } from '@angular/common';
7
7
  import { DatePickerComponent } from '@fundamental-ngx/core/date-picker';
8
8
  import { FormControlComponent } from '@fundamental-ngx/core/form';
9
9
  import { LayoutGridColDirective, LayoutGridRowDirective } from '@fundamental-ngx/core/layout-grid';
@@ -23,6 +23,8 @@ export class FilterRuleComponent {
23
23
  /** @hidden */
24
24
  this.DATA_TYPE = FilterableColumnDataType;
25
25
  /** @hidden */
26
+ this.strategyLabels = FILTER_STRATEGY_LABEL;
27
+ /** @hidden */
26
28
  this._subscriptions = new Subscription();
27
29
  }
28
30
  /** @hidden */
@@ -48,26 +50,22 @@ export class FilterRuleComponent {
48
50
  _onModelChange() {
49
51
  this.ruleChange.emit();
50
52
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FilterRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FilterRuleComponent, isStandalone: true, selector: "fdp-table-filter-rule", inputs: { rule: "rule" }, outputs: { ruleChange: "ruleChange", ruleStateChange: "ruleStateChange" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n <li fd-option *ngFor=\"let column of rule.columns\" [value]=\"column.key\">{{ column.label }}</li>\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n <li fd-option *ngFor=\"let strategy of rule.strategies\" [value]=\"strategy\">\n <ng-container [ngSwitch]=\"strategy\">\n <span *ngSwitchCase=\"'between'\">\n {{ 'platformTable.P13FilterStrategyLabelBetween' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'contains'\">\n {{ 'platformTable.P13FilterStrategyLabelContains' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'beginsWith'\">\n {{ 'platformTable.P13FilterStrategyLabelBeginsWith' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'endsWith'\">\n {{ 'platformTable.P13FilterStrategyLabelEndsWith' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'equalTo'\">\n {{ 'platformTable.P13FilterStrategyLabelEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'greaterThan'\">\n {{ 'platformTable.P13FilterStrategyLabelGreaterThan' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'greaterThanOrEqualTo'\">\n {{ 'platformTable.P13FilterStrategyLabelGreaterThanOrEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'lessThan'\">\n {{ 'platformTable.P13FilterStrategyLabelLessThan' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'lessThanOrEqualTo'\">\n {{ 'platformTable.P13FilterStrategyLabelLessThanOrEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'after'\">\n {{ 'platformTable.P13FilterStrategyLabelAfter' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'onOrAfter'\">\n {{ 'platformTable.P13FilterStrategyLabelOnOrAfter' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'before'\">\n {{ 'platformTable.P13FilterStrategyLabelBefore' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'beforeOrOn'\">\n {{ 'platformTable.P13FilterStrategyLabelBeforeOrOn' | fdTranslate }}\n </span>\n\n <span *ngSwitchDefault>\n {{ 'platformTable.P13FilterStrategyLabelNotDefined' | fdTranslate }}\n </span>\n </ng-container>\n </li>\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow [ngSwitch]=\"rule.strategy\" ngForm>\n <ng-container *ngSwitchCase=\"FILTER_STRATEGY.BETWEEN\">\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-container>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-container>\n </div>\n </ng-container>\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n <ng-container [ngSwitch]=\"rule.dataType\">\n <ng-container *ngSwitchCase=\"DATA_TYPE.DATE\">\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"DATA_TYPE.BOOLEAN\">\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "message", "messageTriggers", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FilterRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: FilterRuleComponent, isStandalone: true, selector: "fdp-table-filter-rule", inputs: { rule: "rule" }, outputs: { ruleChange: "ruleChange", ruleStateChange: "ruleStateChange" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n @for (column of rule.columns; track column) {\n <li fd-option [value]=\"column.key\">{{ column.label }}</li>\n }\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n @for (strategy of rule.strategies; track strategy) {\n <li fd-option [value]=\"strategy\">\n {{\n strategyLabels[strategy] || 'platformTable.P13FilterStrategyLabelNotDefined'\n | fdTranslate\n }}\n </li>\n }\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow ngForm>\n @if (rule.strategy === FILTER_STRATEGY.BETWEEN) {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-template>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n }\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n @if (rule.dataType === DATA_TYPE.DATE) {\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n } @else if (rule.dataType === DATA_TYPE.BOOLEAN) {\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n } @else {\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n }\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "message", "messageTriggers", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
55
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FilterRuleComponent, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FilterRuleComponent, decorators: [{
55
57
  type: Component,
56
58
  args: [{ selector: 'fdp-table-filter-rule', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
57
59
  LayoutGridRowDirective,
58
60
  LayoutGridColDirective,
59
61
  SelectComponent,
60
62
  FormsModule,
61
- NgFor,
62
63
  OptionComponent,
63
- NgSwitch,
64
- NgSwitchCase,
65
- NgSwitchDefault,
66
64
  NgTemplateOutlet,
67
65
  DatePickerComponent,
68
66
  FormControlComponent,
69
67
  FdTranslatePipe
70
- ], template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n <li fd-option *ngFor=\"let column of rule.columns\" [value]=\"column.key\">{{ column.label }}</li>\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n <li fd-option *ngFor=\"let strategy of rule.strategies\" [value]=\"strategy\">\n <ng-container [ngSwitch]=\"strategy\">\n <span *ngSwitchCase=\"'between'\">\n {{ 'platformTable.P13FilterStrategyLabelBetween' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'contains'\">\n {{ 'platformTable.P13FilterStrategyLabelContains' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'beginsWith'\">\n {{ 'platformTable.P13FilterStrategyLabelBeginsWith' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'endsWith'\">\n {{ 'platformTable.P13FilterStrategyLabelEndsWith' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'equalTo'\">\n {{ 'platformTable.P13FilterStrategyLabelEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'greaterThan'\">\n {{ 'platformTable.P13FilterStrategyLabelGreaterThan' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'greaterThanOrEqualTo'\">\n {{ 'platformTable.P13FilterStrategyLabelGreaterThanOrEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'lessThan'\">\n {{ 'platformTable.P13FilterStrategyLabelLessThan' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'lessThanOrEqualTo'\">\n {{ 'platformTable.P13FilterStrategyLabelLessThanOrEqualTo' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'after'\">\n {{ 'platformTable.P13FilterStrategyLabelAfter' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'onOrAfter'\">\n {{ 'platformTable.P13FilterStrategyLabelOnOrAfter' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'before'\">\n {{ 'platformTable.P13FilterStrategyLabelBefore' | fdTranslate }}\n </span>\n\n <span *ngSwitchCase=\"'beforeOrOn'\">\n {{ 'platformTable.P13FilterStrategyLabelBeforeOrOn' | fdTranslate }}\n </span>\n\n <span *ngSwitchDefault>\n {{ 'platformTable.P13FilterStrategyLabelNotDefined' | fdTranslate }}\n </span>\n </ng-container>\n </li>\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow [ngSwitch]=\"rule.strategy\" ngForm>\n <ng-container *ngSwitchCase=\"FILTER_STRATEGY.BETWEEN\">\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-container>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div fdLayoutGridCol colGrow>\n <ng-container\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-container>\n </div>\n </ng-container>\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n <ng-container [ngSwitch]=\"rule.dataType\">\n <ng-container *ngSwitchCase=\"DATA_TYPE.DATE\">\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"DATA_TYPE.BOOLEAN\">\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n" }]
68
+ ], template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n @for (column of rule.columns; track column) {\n <li fd-option [value]=\"column.key\">{{ column.label }}</li>\n }\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n @for (strategy of rule.strategies; track strategy) {\n <li fd-option [value]=\"strategy\">\n {{\n strategyLabels[strategy] || 'platformTable.P13FilterStrategyLabelNotDefined'\n | fdTranslate\n }}\n </li>\n }\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow ngForm>\n @if (rule.strategy === FILTER_STRATEGY.BETWEEN) {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-template>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n }\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n @if (rule.dataType === DATA_TYPE.DATE) {\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n } @else if (rule.dataType === DATA_TYPE.BOOLEAN) {\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n } @else {\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n }\n </ng-template>\n </div>\n </div>\n</div>\n" }]
71
69
  }], propDecorators: { rule: [{
72
70
  type: Input
73
71
  }], ruleChange: [{
@@ -78,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
78
76
  type: ViewChild,
79
77
  args: [NgForm]
80
78
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy9maWx0ZXJpbmcvZmlsdGVyLXJ1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy9maWx0ZXJpbmcvZmlsdGVyLXJ1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUF3Qi9DLE1BQU0sT0FBTyxtQkFBbUI7SUF0QmhDO1FBMEJJLGlDQUFpQztRQUN2QixlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsdUNBQXVDO1FBQzdCLG9CQUFlLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEUsY0FBYztRQUNMLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRTNDLGNBQWM7UUFDTCxjQUFTLEdBQUcsd0JBQXdCLENBQUM7UUFzQjlDLGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FXL0M7SUFoQ0csY0FBYztJQUNkLElBQ0ksTUFBTSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQixNQUFNLENBQUMsYUFBYTtZQUNoQixFQUFFLElBQUk7UUFDRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNULENBQUM7SUFDTixDQUFDO0lBS0QsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjO0lBQ2QsY0FBYztRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0EvQ1EsbUJBQW1CO2tHQUFuQixtQkFBbUIsOE5BaUJqQixNQUFNLGdEQzlEckIsbzdPQTRKQSw0Q0Q5SFEsc0JBQXNCLG9GQUN0QixzQkFBc0IsME5BQ3RCLGVBQWUseWpCQUNmLFdBQVcsNHBDQUNYLEtBQUssbUhBQ0wsZUFBZSxzSUFDZixRQUFRLDZFQUNSLFlBQVkscUZBQ1osZUFBZSw4REFDZixnQkFBZ0Isb0pBQ2hCLG1CQUFtQiw2MUJBQ25CLG9CQUFvQiw0SkFDcEIsZUFBZTs7MkZBR1YsbUJBQW1CO2tCQXRCL0IsU0FBUzsrQkFDSSx1QkFBdUIsbUJBRWhCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxlQUFlO3dCQUNmLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU07Z0JBVUgsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRklMVEVSX1NUUkFURUdZLCBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ0ZvciwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBMYXlvdXRHcmlkQ29sRGlyZWN0aXZlLCBMYXlvdXRHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xheW91dC1ncmlkJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NlbGVjdCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmlsdGVyUnVsZSB9IGZyb20gJy4vZmlsdGVyaW5nLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtZmlsdGVyLXJ1bGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTmdTd2l0Y2gsXG4gICAgICAgIE5nU3dpdGNoQ2FzZSxcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUnVsZSB0byBiZSBkaXNwbGF5ZWQgKiovXG4gICAgQElucHV0KCkgcnVsZTogRmlsdGVyUnVsZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHJ1bGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKSBydWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBydWxlIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KCkgcnVsZVN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IEZJTFRFUl9TVFJBVEVHWSA9IEZJTFRFUl9TVFJBVEVHWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgREFUQV9UWVBFID0gRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcbiAgICBzZXQgbmdGb3JtKG5nRm9ybTogTmdGb3JtKSB7XG4gICAgICAgIGlmICghbmdGb3JtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBuZ0Zvcm0uc3RhdHVzQ2hhbmdlc1xuICAgICAgICAgICAgICAgID8ucGlwZShcbiAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBmaXJzdCB0aGF0IHRyaWdnZXJzIG9uIGluaXRpYWwgcGhhc2VcbiAgICAgICAgICAgICAgICAgICAgc2tpcCgxKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9ICEhbmdGb3JtLnZhbGlkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bGUuc2V0VmFsaWQoaXNWYWxpZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucnVsZVN0YXRlQ2hhbmdlLmVtaXQoaXNWYWxpZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Nb2RlbENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkQ29sIGNvbEdyb3c+XG4gICAgICAgICAgICAgICAgPCEtLSBDb2x1bW4gLS0+XG4gICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJ1bGUuY29sdW1uS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicnVsZS5zZXRDb2x1bW5LZXkoJGV2ZW50KTsgX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgcnVsZS5jb2x1bW5zXCIgW3ZhbHVlXT1cImNvbHVtbi5rZXlcIj57eyBjb2x1bW4ubGFiZWwgfX08L2xpPlxuICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gU3RyYXRlZ3kgLS0+XG4gICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJ1bGUuc3RyYXRlZ3lcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJydWxlLnNldFN0cmF0ZWd5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiAqbmdGb3I9XCJsZXQgc3RyYXRlZ3kgb2YgcnVsZS5zdHJhdGVnaWVzXCIgW3ZhbHVlXT1cInN0cmF0ZWd5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdHJhdGVneVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInYmV0d2VlbidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEJldHdlZW4nIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NvbnRhaW5zJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJTdHJhdGVneUxhYmVsQ29udGFpbnMnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2JlZ2luc1dpdGgnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWdpbnNXaXRoJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidlbmRzV2l0aCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEVuZHNXaXRoJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidlcXVhbFRvJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJTdHJhdGVneUxhYmVsRXF1YWxUbycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZ3JlYXRlclRoYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZ3JlYXRlclRoYW5PckVxdWFsVG8nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbk9yRXF1YWxUbycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGVzc1RoYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxMZXNzVGhhbicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGVzc1RoYW5PckVxdWFsVG8nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxMZXNzVGhhbk9yRXF1YWxUbycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInYWZ0ZXInXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxBZnRlcicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInb25PckFmdGVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJTdHJhdGVneUxhYmVsT25PckFmdGVyJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidiZWZvcmUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWZvcmUnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2JlZm9yZU9yT24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWZvcmVPck9uJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE5vdERlZmluZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2ZkLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdyBbbmdTd2l0Y2hdPVwicnVsZS5zdHJhdGVneVwiIG5nRm9ybT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZJTFRFUl9TVFJBVEVHWS5CRVRXRUVOXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicnVsZUlucHV0VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdmFsdWVLZXk6ICd2YWx1ZScgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlMicgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkQ29sIGNvbEdyb3c+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ1bGVJbnB1dFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHZhbHVlS2V5OiAndmFsdWUnIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBSdWxlIENvbnRyb2wgQmFzZWQgb24gRGF0YSBUeXBlIC0tPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNydWxlSW5wdXRUZW1wbGF0ZSBsZXQtdmFsdWVLZXk9XCJ2YWx1ZUtleVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJ1bGUuZGF0YVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiREFUQV9UWVBFLkRBVEVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzaW5nbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJ2YWx1ZUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlW3ZhbHVlS2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkRBVEFfVFlQRS5CT09MRUFOXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJ1bGVbdmFsdWVLZXldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfb25Nb2RlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwidW5kZWZpbmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25Ob3REZWZpbmVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJCb29sZWFuT3B0aW9uRmFsc2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJ2YWx1ZUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlW3ZhbHVlS2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy9maWx0ZXJpbmcvZmlsdGVyLXJ1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy9maWx0ZXJpbmcvZmlsdGVyLXJ1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFDSCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBb0IvQyxNQUFNLE9BQU8sbUJBQW1CO0lBbEJoQztRQXNCSSxpQ0FBaUM7UUFDdkIsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELHVDQUF1QztRQUM3QixvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRFLGNBQWM7UUFDTCxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUUzQyxjQUFjO1FBQ0wsY0FBUyxHQUFHLHdCQUF3QixDQUFDO1FBRTlDLGNBQWM7UUFDTCxtQkFBYyxHQUFHLHFCQUFxQixDQUFDO1FBc0JoRCxjQUFjO1FBQ04sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBVy9DO0lBaENHLGNBQWM7SUFDZCxJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsTUFBTSxDQUFDLGFBQWE7WUFDaEIsRUFBRSxJQUFJO1FBQ0YsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDVjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUtELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztJQUNkLGNBQWM7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbERRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhOQW9CakIsTUFBTSxnRENqRXJCLG80SUFzR0EsNENEcEVRLHNCQUFzQixvRkFDdEIsc0JBQXNCLDBOQUN0QixlQUFlLHlqQkFDZixXQUFXLDRwQ0FDWCxlQUFlLHNJQUNmLGdCQUFnQixvSkFDaEIsbUJBQW1CLDYxQkFDbkIsb0JBQW9CLDRKQUNwQixlQUFlOzsyRkFHVixtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU07Z0JBYUgsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBGSUxURVJfU1RSQVRFR1ksXG4gICAgRklMVEVSX1NUUkFURUdZX0xBQkVMLFxuICAgIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBMYXlvdXRHcmlkQ29sRGlyZWN0aXZlLCBMYXlvdXRHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xheW91dC1ncmlkJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NlbGVjdCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmlsdGVyUnVsZSB9IGZyb20gJy4vZmlsdGVyaW5nLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtZmlsdGVyLXJ1bGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUnVsZSB0byBiZSBkaXNwbGF5ZWQgKiovXG4gICAgQElucHV0KCkgcnVsZTogRmlsdGVyUnVsZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHJ1bGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKSBydWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBydWxlIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KCkgcnVsZVN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IEZJTFRFUl9TVFJBVEVHWSA9IEZJTFRFUl9TVFJBVEVHWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgREFUQV9UWVBFID0gRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBzdHJhdGVneUxhYmVscyA9IEZJTFRFUl9TVFJBVEVHWV9MQUJFTDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pXG4gICAgc2V0IG5nRm9ybShuZ0Zvcm06IE5nRm9ybSkge1xuICAgICAgICBpZiAoIW5nRm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgbmdGb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgICAgICA/LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgZmlyc3QgdGhhdCB0cmlnZ2VycyBvbiBpbml0aWFsIHBoYXNlXG4gICAgICAgICAgICAgICAgICAgIHNraXAoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIW5nRm9ybS52YWxpZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ydWxlLnNldFZhbGlkKGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bGVTdGF0ZUNoYW5nZS5lbWl0KGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTW9kZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gQ29sdW1uIC0tPlxuICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJydWxlLmNvbHVtbktleVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJ1bGUuc2V0Q29sdW1uS2V5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIHJ1bGUuY29sdW1uczsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJjb2x1bW4ua2V5XCI+e3sgY29sdW1uLmxhYmVsIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gU3RyYXRlZ3kgLS0+XG4gICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJ1bGUuc3RyYXRlZ3lcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJydWxlLnNldFN0cmF0ZWd5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoc3RyYXRlZ3kgb2YgcnVsZS5zdHJhdGVnaWVzOyB0cmFjayBzdHJhdGVneSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwic3RyYXRlZ3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneUxhYmVsc1tzdHJhdGVneV0gfHwgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE5vdERlZmluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdyBuZ0Zvcm0+XG4gICAgICAgICAgICBAaWYgKHJ1bGUuc3RyYXRlZ3kgPT09IEZJTFRFUl9TVFJBVEVHWS5CRVRXRUVOKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlMicgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gUnVsZSBDb250cm9sIEJhc2VkIG9uIERhdGEgVHlwZSAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcnVsZUlucHV0VGVtcGxhdGUgbGV0LXZhbHVlS2V5PVwidmFsdWVLZXlcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2luZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19fc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1vcHRpb24gW3ZhbHVlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25Ob3REZWZpbmVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJCb29sZWFuT3B0aW9uRmFsc2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwidmFsdWVLZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlW3ZhbHVlS2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfb25Nb2RlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -3,7 +3,6 @@ import { BehaviorSubject } from 'rxjs';
3
3
  import { DialogRef } from '@fundamental-ngx/core/dialog';
4
4
  import { RESETTABLE_TOKEN, ResetButtonComponent } from '../../reset-button/reset-button.component';
5
5
  import { CdkScrollable } from '@angular/cdk/overlay';
6
- import { NgFor, NgIf } from '@angular/common';
7
6
  import { TemplateDirective } from '@fundamental-ngx/cdk/utils';
8
7
  import { BarElementDirective, BarLeftDirective, BarRightDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';
9
8
  import { ButtonComponent } from '@fundamental-ngx/core/button';
@@ -156,10 +155,10 @@ export class P13FilteringDialogComponent {
156
155
  exclude: true
157
156
  }));
158
157
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: P13FilteringDialogComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: P13FilteringDialogComponent, isStandalone: true, selector: "ng-component", providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13FilteringDialogComponent }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">{{ 'platformTable.P13FilterDialogHeader' | fdTranslate }}</h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validIncludeRulesCount > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate : { count: _validIncludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n <fd-layout-grid *ngFor=\"let rule of _includeRules; let i = index\">\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n\n <button\n *ngIf=\"_includeRules.length - 1 === i\"\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validExcludeRulesCount > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate : { count: _validExcludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n <fd-layout-grid *ngFor=\"let rule of _excludeRules; let i = index\">\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n\n <button\n *ngIf=\"_excludeRules.length - 1 === i\"\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n </fd-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformTable.P13FilterDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n\n <fd-button-bar\n fdType=\"transparent\"\n fdkInitialFocus\n [label]=\"'platformTable.P13FilterDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-filtering-dialog .filter-row__input,.fdp-table-p13-filtering-dialog .filter-row__select{display:block;max-width:100%}.fdp-table-p13-filtering-dialog .fd-popover-custom{display:block}\n"], dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { 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: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "directive", type: PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: FilterRuleComponent, selector: "fdp-table-filter-rule", inputs: ["rule"], outputs: ["ruleChange", "ruleStateChange"] }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: P13FilteringDialogComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: P13FilteringDialogComponent, isStandalone: true, selector: "ng-component", providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13FilteringDialogComponent }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">{{ 'platformTable.P13FilterDialogHeader' | fdTranslate }}</h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validIncludeRulesCount > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validIncludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _includeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n @if (_includeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validExcludeRulesCount > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validExcludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _excludeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n @if (_excludeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n </fd-dialog-body>\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformTable.P13FilterDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n fdkInitialFocus\n [label]=\"'platformTable.P13FilterDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-filtering-dialog .filter-row__input,.fdp-table-p13-filtering-dialog .filter-row__select{display:block;max-width:100%}.fdp-table-p13-filtering-dialog .fd-popover-custom{display:block}\n"], dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { 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: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "directive", type: PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "component", type: LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: FilterRuleComponent, selector: "fdp-table-filter-rule", inputs: ["rule"], outputs: ["ruleChange", "ruleStateChange"] }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
161
160
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: P13FilteringDialogComponent, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: P13FilteringDialogComponent, decorators: [{
163
162
  type: Component,
164
163
  args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13FilteringDialogComponent }], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
165
164
  DialogComponent,
@@ -176,16 +175,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
176
175
  PanelComponent,
177
176
  PanelTitleDirective,
178
177
  PanelContentDirective,
179
- NgFor,
180
178
  LayoutGridComponent,
181
179
  LayoutGridRowDirective,
182
180
  FilterRuleComponent,
183
181
  LayoutGridColDirective,
184
182
  ButtonComponent,
185
- NgIf,
186
183
  DialogFooterComponent,
187
184
  ButtonBarComponent,
188
185
  FdTranslatePipe
189
- ], template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">{{ 'platformTable.P13FilterDialogHeader' | fdTranslate }}</h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validIncludeRulesCount > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate : { count: _validIncludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n <fd-layout-grid *ngFor=\"let rule of _includeRules; let i = index\">\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n\n <button\n *ngIf=\"_includeRules.length - 1 === i\"\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validExcludeRulesCount > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate : { count: _validExcludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n <fd-layout-grid *ngFor=\"let rule of _excludeRules; let i = index\">\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n\n <button\n *ngIf=\"_excludeRules.length - 1 === i\"\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n </div>\n </fd-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformTable.P13FilterDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n\n <fd-button-bar\n fdType=\"transparent\"\n fdkInitialFocus\n [label]=\"'platformTable.P13FilterDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-filtering-dialog .filter-row__input,.fdp-table-p13-filtering-dialog .filter-row__select{display:block;max-width:100%}.fdp-table-p13-filtering-dialog .fd-popover-custom{display:block}\n"] }]
190
- }], ctorParameters: function () { return [{ type: i1.DialogRef }]; } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL3RhYmxlLXAxMy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlcmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDeEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUs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bnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbGxlY3Rpb25GaWx0ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuXG5pbXBvcnQgeyBSRVNFVFRBQkxFX1RPS0VOLCBSZXNldEJ1dHRvbkNvbXBvbmVudCwgUmVzZXR0YWJsZSB9IGZyb20gJy4uLy4uL3Jlc2V0LWJ1dHRvbi9yZXNldC1idXR0b24uY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgQnV0dG9uQmFyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIERpYWxvZ0JvZHlDb21wb25lbnQsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBEaWFsb2dIZWFkZXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBMYXlvdXRHcmlkQ29sRGlyZWN0aXZlLCBMYXlvdXRHcmlkQ29tcG9uZW50LCBMYXlvdXRHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xheW91dC1ncmlkJztcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50LCBQYW5lbENvbnRlbnREaXJlY3RpdmUsIFBhbmVsVGl0bGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcGFuZWwnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmlsdGVyUnVsZUNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLXJ1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0RhdGEsIEZpbHRlckRpYWxvZ1Jlc3VsdERhdGEsIEZpbHRlclJ1bGUsIEZpbHRlcmFibGVDb2x1bW4gfSBmcm9tICcuL2ZpbHRlcmluZy5tb2RlbCc7XG5cbmV4cG9ydCB7IEZpbHRlckRpYWxvZ0RhdGEsIEZpbHRlckRpYWxvZ1Jlc3VsdERhdGEgfTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcmluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJFU0VUVEFCTEVfVE9LRU4sIHVzZUV4aXN0aW5nOiBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBSZXNldEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBQYW5lbENvbXBvbmVudCxcbiAgICAgICAgUGFuZWxUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgUGFuZWxDb250ZW50RGlyZWN0aXZlLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTGF5b3V0R3JpZENvbXBvbmVudCxcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgRmlsdGVyUnVsZUNvbXBvbmVudCxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBSZXNldHRhYmxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEluZGljYXRlcyB3aGVuIHJlc2V0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovXG4gICAgcmVhZG9ubHkgaXNSZXNldEF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogVGFibGUgY29sdW1ucyBhdmFpbGFibGUgZm9yIGZpbHRlcmluZyAqL1xuICAgIHJlYWRvbmx5IGNvbHVtbnM6IEZpbHRlcmFibGVDb2x1bW5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEluY2x1ZGUgUnVsZXNcbiAgICAgKi9cbiAgICBfaW5jbHVkZVJ1bGVzOiBGaWx0ZXJSdWxlW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFeGNsdWRlIFJ1bGVzXG4gICAgICovXG4gICAgX2V4Y2x1ZGVSdWxlczogRmlsdGVyUnVsZVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ291bnQgb2YgdmFsaWQgaW5jbHVkZWQgcnVsZXNcbiAgICAgKi9cbiAgICBfdmFsaWRJbmNsdWRlUnVsZXNDb3VudCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ291bnQgb2YgdmFsaWQgZXhjbHVkZWQgcnVsZXNcbiAgICAgKi9cbiAgICBfdmFsaWRFeGNsdWRlUnVsZXNDb3VudCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFuZWwgb3BlbmVkL2Nsb3NlZCBmbGFnXG4gICAgICovXG4gICAgX2luY2x1ZGVQYW5lbEV4cGFuZGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQYW5lbCBvcGVuZWQvY2xvc2VkIGZsYWdcbiAgICAgKi9cbiAgICBfZXhjbHVkZVBhbmVsRXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogRGlhbG9nUmVmPEZpbHRlckRpYWxvZ0RhdGE+KSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgY29sbGVjdGlvbkZpbHRlciB9ID0gdGhpcy5kaWFsb2dSZWYuZGF0YTtcblxuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSkgfHwgW107XG5cbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcyhjb2xsZWN0aW9uRmlsdGVyKTtcblxuICAgICAgICB0aGlzLl9jYWxjdWxhdGVWYWxpZFJ1bGVzQ291bnQoKTtcblxuICAgICAgICB0aGlzLl9leGNsdWRlUGFuZWxFeHBhbmRlZCA9IHRoaXMuX3ZhbGlkRXhjbHVkZVJ1bGVzQ291bnQgPiAwO1xuXG4gICAgICAgIHRoaXMuX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogUmVzZXQgY2hhbmdlcyB0byB0aGUgaW5pdGlhbCBzdGF0ZSAqL1xuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWF0ZVJ1bGVzKCk7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2UgZGlhbG9nICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICAvKiogQ29uZmlybSBjaGFuZ2VzIGFuZCBjbG9zZSBkaWFsb2cgKi9cbiAgICBjb25maXJtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmlsdGVycyA9IHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUluY2x1ZGVSdWxlcygpO1xuICAgICAgICBjb25zdCBleGNsdWRlRmlsdGVycyA9IHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUV4Y2x1ZGVSdWxlcygpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogRmlsdGVyRGlhbG9nUmVzdWx0RGF0YSA9IHsgY29sbGVjdGlvbkZpbHRlcjogWy4uLmluY2x1ZGVGaWx0ZXJzLCAuLi5leGNsdWRlRmlsdGVyc10gfTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlbW92ZVJ1bGUocnVsZTogRmlsdGVyUnVsZSwgcnVsZXM6IEZpbHRlclJ1bGVbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHJ1bGVzLmluZGV4T2YocnVsZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVsZXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICAvLyBLZWVwIGF0IGxlYXN0IG9uZSBpdGVtIGluIHRoZSBsaXN0XG4gICAgICAgIGlmIChydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJ1bGVzLnB1c2gobmV3IEZpbHRlclJ1bGUodGhpcy5jb2x1bW5zKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmFsaWRSdWxlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWRkTmV3UnVsZShydWxlczogRmlsdGVyUnVsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RSdWxlID0gcnVsZXMuc2xpY2UoLTEpWzBdO1xuICAgICAgICBydWxlcy5wdXNoKG5ldyBGaWx0ZXJSdWxlKHRoaXMuY29sdW1ucywgbGFzdFJ1bGU/LmNvbHVtbktleSwgbGFzdFJ1bGU/LnN0cmF0ZWd5KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzT25seU9uZUVtcHR5SW5jbHVkZVJ1bGUgPSB0aGlzLl9pbmNsdWRlUnVsZXMubGVuZ3RoID09PSAxICYmICF0aGlzLl9pbmNsdWRlUnVsZXNbMF0uaGFzVmFsdWU7XG4gICAgICAgIGNvbnN0IGhhc09ubHlPbmVFbXB0eUV4Y2x1ZGVSdWxlID0gdGhpcy5fZXhjbHVkZVJ1bGVzLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5fZXhjbHVkZVJ1bGVzWzBdLmhhc1ZhbHVlO1xuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dCghaGFzT25seU9uZUVtcHR5SW5jbHVkZVJ1bGUgfHwgIWhhc09ubHlPbmVFbXB0eUV4Y2x1ZGVSdWxlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblJ1bGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmFsaWRSdWxlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWF0ZVJ1bGVzKGluaXRpYWxSdWxlcz86IENvbGxlY3Rpb25GaWx0ZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbmNsdWRlUnVsZXMgPSB0aGlzLl9jcmVhdGVSdWxlcyhpbml0aWFsUnVsZXM/LmZpbHRlcigoeyBleGNsdWRlIH0pID0+ICFleGNsdWRlKSk7XG4gICAgICAgIHRoaXMuX2V4Y2x1ZGVSdWxlcyA9IHRoaXMuX2NyZWF0ZVJ1bGVzKGluaXRpYWxSdWxlcz8uZmlsdGVyKCh7IGV4Y2x1ZGUgfSkgPT4gZXhjbHVkZSkpO1xuXG4gICAgICAgIFt0aGlzLl9pbmNsdWRlUnVsZXMsIHRoaXMuX2V4Y2x1ZGVSdWxlc10uZm9yRWFjaCgocnVsZXMpID0+IHtcbiAgICAgICAgICAgIC8vIFJ1bGVzIG9uIGluaXRpYWwgcGhhc2UgYXJlIGNvbnNpZGVyZWQgYXMgdmFsaWRcbiAgICAgICAgICAgIHJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHJ1bGUuc2V0VmFsaWQodHJ1ZSkpO1xuICAgICAgICAgICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICAgICAgaWYgKHJ1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJ1bGVzLnB1c2gobmV3IEZpbHRlclJ1bGUodGhpcy5jb2x1bW5zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3JlYXRlUnVsZXMoY29sbGVjdGlvbkZpbHRlcjogQ29sbGVjdGlvbkZpbHRlcltdID0gW10pOiBGaWx0ZXJSdWxlW10ge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbkZpbHRlci5tYXAoXG4gICAgICAgICAgICAoeyBmaWVsZCwgdmFsdWUsIHZhbHVlMiwgc3RyYXRlZ3kgfSk6IEZpbHRlclJ1bGUgPT5cbiAgICAgICAgICAgICAgICBuZXcgRmlsdGVyUnVsZSh0aGlzLmNvbHVtbnMsIGZpZWxkLCBzdHJhdGVneSwgdmFsdWUsIHZhbHVlMilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbVJ1bGVzKHJ1bGVzOiBGaWx0ZXJSdWxlW10pOiBDb2xsZWN0aW9uRmlsdGVyW10ge1xuICAgICAgICByZXR1cm4gcnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5tYXAoXG4gICAgICAgICAgICAoeyBjb2x1bW5LZXksIHN0cmF0ZWd5LCB2YWx1ZSwgdmFsdWUyIH0pOiBDb2xsZWN0aW9uRmlsdGVyID0+ICh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbktleSEsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgdmFsdWUyLFxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBzdHJhdGVneSFcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRDb2xsZWN0aW9uRmlsdGVyc0Zyb21JbmNsdWRlUnVsZXMoKTogQ29sbGVjdGlvbkZpbHRlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbVJ1bGVzKHRoaXMuX2luY2x1ZGVSdWxlcykubWFwKFxuICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWx0ZXIpOiBDb2xsZWN0aW9uRmlsdGVyID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uY29sbGVjdGlvbkZpbHRlcixcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUV4Y2x1ZGVSdWxlcygpOiBDb2xsZWN0aW9uRmlsdGVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q29sbGVjdGlvbkZpbHRlcnNGcm9tUnVsZXModGhpcy5fZXhjbHVkZVJ1bGVzKS5tYXAoXG4gICAgICAgICAgICAoY29sbGVjdGlvbkZpbHRlcik6IENvbGxlY3Rpb25GaWx0ZXIgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5jb2xsZWN0aW9uRmlsdGVyLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWYWxpZFJ1bGVzQ291bnQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX3ZhbGlkSW5jbHVkZVJ1bGVzQ291bnQgPSB0aGlzLl9pbmNsdWRlUnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5sZW5ndGg7XG4gICAgICAgIHRoaXMuX3ZhbGlkRXhjbHVkZVJ1bGVzQ291bnQgPSB0aGlzLl9leGNsdWRlUnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5sZW5ndGg7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNSdWxlVmFsaWQgPSAocnVsZTogRmlsdGVyUnVsZSk6IGJvb2xlYW4gPT4gcnVsZT8uaXNWYWxpZDtcbn1cbiIsIjxmZC1kaWFsb2cgY2xhc3M9XCJmZHAtdGFibGUtcDEzLWZpbHRlcmluZy1kaWFsb2dcIj5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjRcIj57eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dIZWFkZXInIHwgZmRUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1yZXNldC1idXR0b24+PC9mZHAtdGFibGUtcmVzZXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDwhLS0gSW5jbHVkZSBSdWxlcyAtLT5cbiAgICAgICAgPGZkLXBhbmVsIFtleHBhbmRlZF09XCJfaW5jbHVkZVBhbmVsRXhwYW5kZWRcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgKF92YWxpZEluY2x1ZGVSdWxlc0NvdW50ID4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dJbmNsdWRlUGFuZWxUaXRsZVdpdGhDb3VudCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nSW5jbHVkZVBhbmVsVGl0bGVXaXRob3V0Q291bnQnXG4gICAgICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IF92YWxpZEluY2x1ZGVSdWxlc0NvdW50IH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLXBhbmVsLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGZkLWxheW91dC1ncmlkICpuZ0Zvcj1cImxldCBydWxlIG9mIF9pbmNsdWRlUnVsZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWZpbHRlci1ydWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3J1bGVdPVwicnVsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVDaGFuZ2UpPVwiX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVTdGF0ZUNoYW5nZSk9XCJfb25SdWxlU3RhdGVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtdGFibGUtZmlsdGVyLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFjdGlvbnMgYnV0dG9ucyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1jYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ1JlbW92ZUZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ1JlbW92ZUZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9yZW1vdmVSdWxlKHJ1bGUsIF9pbmNsdWRlUnVsZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiX2luY2x1ZGVSdWxlcy5sZW5ndGggLSAxID09PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0FkZEZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0FkZEZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9hZGROZXdSdWxlKF9pbmNsdWRlUnVsZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mZC1sYXlvdXQtZ3JpZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLXBhbmVsPlxuICAgICAgICA8IS0tIEV4Y2x1ZGUgUnVsZXMgLS0+XG4gICAgICAgIDxmZC1wYW5lbCBbZXhwYW5kZWRdPVwiX2V4Y2x1ZGVQYW5lbEV4cGFuZGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIChfdmFsaWRFeGNsdWRlUnVsZXNDb3VudCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nRXhjbHVkZVBhbmVsVGl0bGVXaXRoQ291bnQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0V4Y2x1ZGVQYW5lbFRpdGxlV2l0aG91dENvdW50J1xuICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGUgOiB7IGNvdW50OiBfdmFsaWRFeGNsdWRlUnVsZXNDb3VudCB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBmZC1wYW5lbC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZCAqbmdGb3I9XCJsZXQgcnVsZSBvZiBfZXhjbHVkZVJ1bGVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1maWx0ZXItcnVsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtydWxlXT1cInJ1bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydWxlQ2hhbmdlKT1cIl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydWxlU3RhdGVDaGFuZ2UpPVwiX29uUnVsZVN0YXRlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLXRhYmxlLWZpbHRlci1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBY3Rpb25zIGJ1dHRvbnMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzeXMtY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dSZW1vdmVGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dSZW1vdmVGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlUnVsZShydWxlLCBfZXhjbHVkZVJ1bGVzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIl9leGNsdWRlUnVsZXMubGVuZ3RoIC0gMSA9PT0gaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dBZGRGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dBZGRGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfYWRkTmV3UnVsZShfZXhjbHVkZVJ1bGVzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wYW5lbD5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dDb25maXJtYXRpb25CdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cblxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
186
+ ], template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">{{ 'platformTable.P13FilterDialogHeader' | fdTranslate }}</h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validIncludeRulesCount > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validIncludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _includeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n @if (_includeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (_validExcludeRulesCount > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validExcludeRulesCount }\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _excludeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_recalculateResetAvailability()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n @if (_excludeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n 'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\n \"\n [title]=\"'platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n </fd-dialog-body>\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformTable.P13FilterDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n fdkInitialFocus\n [label]=\"'platformTable.P13FilterDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-filtering-dialog .filter-row__input,.fdp-table-p13-filtering-dialog .filter-row__select{display:block;max-width:100%}.fdp-table-p13-filtering-dialog .fd-popover-custom{display:block}\n"] }]
187
+ }], ctorParameters: () => [{ type: i1.DialogRef }] });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL3RhYmxlLXAxMy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlcmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUNILG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7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QnpCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLENBQUMsMEJDdEN4RixnZ05BbUlBLGlRRHpGUSxlQUFlLHNHQUNmLHFCQUFxQiw2REFDckIsaUJBQWlCLG1GQUNqQixnQkFBZ0IsMERBQ2hCLG1CQUFtQixrRkFDbkIsY0FBYyx1TEFDZCxpQkFBaUIsMkRBQ2pCLG9CQUFvQixtRUFHcEIsbUJBQW1CLDJEQUNuQixjQUFjLHVMQUNkLG1CQUFtQiw2RUFDbkIscUJBQXFCLDBKQUNyQixtQkFBbUIsMklBQ25CLHNCQUFzQixvRkFDdEIsbUJBQW1CLGdJQUNuQixzQkFBc0IsME5BQ3RCLGVBQWUsd0hBQ2YscUJBQXFCLDZEQUNyQixrQkFBa0Isb0lBQ2xCLGVBQWU7OzJGQUdWLDJCQUEyQjtrQkFoQ3ZDLFNBQVM7b0NBR1MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsNkJBQTZCLEVBQUUsQ0FBQyxtQkFDbkUsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbmltcG9ydCB7IFJFU0VUVEFCTEVfVE9LRU4sIFJlc2V0QnV0dG9uQ29tcG9uZW50LCBSZXNldHRhYmxlIH0gZnJvbSAnLi4vLi4vcmVzZXQtYnV0dG9uL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgIEJ1dHRvbkJhckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHtcbiAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSwgTGF5b3V0R3JpZENvbXBvbmVudCwgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9sYXlvdXQtZ3JpZCc7XG5pbXBvcnQgeyBQYW5lbENvbXBvbmVudCwgUGFuZWxDb250ZW50RGlyZWN0aXZlLCBQYW5lbFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BhbmVsJztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEZpbHRlclJ1bGVDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci1ydWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJEaWFsb2dEYXRhLCBGaWx0ZXJEaWFsb2dSZXN1bHREYXRhLCBGaWx0ZXJSdWxlLCBGaWx0ZXJhYmxlQ29sdW1uIH0gZnJvbSAnLi9maWx0ZXJpbmcubW9kZWwnO1xuXG5leHBvcnQgeyBGaWx0ZXJEaWFsb2dEYXRhLCBGaWx0ZXJEaWFsb2dSZXN1bHREYXRhIH07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9maWx0ZXJpbmcuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSRVNFVFRBQkxFX1RPS0VOLCB1c2VFeGlzdGluZzogUDEzRmlsdGVyaW5nRGlhbG9nQ29tcG9uZW50IH1dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICAgICAgUmVzZXRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIFNjcm9sbGJhckRpcmVjdGl2ZSxcbiAgICAgICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICAgICAgUGFuZWxDb21wb25lbnQsXG4gICAgICAgIFBhbmVsVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIFBhbmVsQ29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgTGF5b3V0R3JpZENvbXBvbmVudCxcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgRmlsdGVyUnVsZUNvbXBvbmVudCxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBSZXNldHRhYmxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEluZGljYXRlcyB3aGVuIHJlc2V0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovXG4gICAgcmVhZG9ubHkgaXNSZXNldEF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogVGFibGUgY29sdW1ucyBhdmFpbGFibGUgZm9yIGZpbHRlcmluZyAqL1xuICAgIHJlYWRvbmx5IGNvbHVtbnM6IEZpbHRlcmFibGVDb2x1bW5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEluY2x1ZGUgUnVsZXNcbiAgICAgKi9cbiAgICBfaW5jbHVkZVJ1bGVzOiBGaWx0ZXJSdWxlW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFeGNsdWRlIFJ1bGVzXG4gICAgICovXG4gICAgX2V4Y2x1ZGVSdWxlczogRmlsdGVyUnVsZVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ291bnQgb2YgdmFsaWQgaW5jbHVkZWQgcnVsZXNcbiAgICAgKi9cbiAgICBfdmFsaWRJbmNsdWRlUnVsZXNDb3VudCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ291bnQgb2YgdmFsaWQgZXhjbHVkZWQgcnVsZXNcbiAgICAgKi9cbiAgICBfdmFsaWRFeGNsdWRlUnVsZXNDb3VudCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFuZWwgb3BlbmVkL2Nsb3NlZCBmbGFnXG4gICAgICovXG4gICAgX2luY2x1ZGVQYW5lbEV4cGFuZGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQYW5lbCBvcGVuZWQvY2xvc2VkIGZsYWdcbiAgICAgKi9cbiAgICBfZXhjbHVkZVBhbmVsRXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogRGlhbG9nUmVmPEZpbHRlckRpYWxvZ0RhdGE+KSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgY29sbGVjdGlvbkZpbHRlciB9ID0gdGhpcy5kaWFsb2dSZWYuZGF0YTtcblxuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSkgfHwgW107XG5cbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcyhjb2xsZWN0aW9uRmlsdGVyKTtcblxuICAgICAgICB0aGlzLl9jYWxjdWxhdGVWYWxpZFJ1bGVzQ291bnQoKTtcblxuICAgICAgICB0aGlzLl9leGNsdWRlUGFuZWxFeHBhbmRlZCA9IHRoaXMuX3ZhbGlkRXhjbHVkZVJ1bGVzQ291bnQgPiAwO1xuXG4gICAgICAgIHRoaXMuX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogUmVzZXQgY2hhbmdlcyB0byB0aGUgaW5pdGlhbCBzdGF0ZSAqL1xuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWF0ZVJ1bGVzKCk7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2UgZGlhbG9nICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICAvKiogQ29uZmlybSBjaGFuZ2VzIGFuZCBjbG9zZSBkaWFsb2cgKi9cbiAgICBjb25maXJtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmNsdWRlRmlsdGVycyA9IHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUluY2x1ZGVSdWxlcygpO1xuICAgICAgICBjb25zdCBleGNsdWRlRmlsdGVycyA9IHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUV4Y2x1ZGVSdWxlcygpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogRmlsdGVyRGlhbG9nUmVzdWx0RGF0YSA9IHsgY29sbGVjdGlvbkZpbHRlcjogWy4uLmluY2x1ZGVGaWx0ZXJzLCAuLi5leGNsdWRlRmlsdGVyc10gfTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlbW92ZVJ1bGUocnVsZTogRmlsdGVyUnVsZSwgcnVsZXM6IEZpbHRlclJ1bGVbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHJ1bGVzLmluZGV4T2YocnVsZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVsZXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICAvLyBLZWVwIGF0IGxlYXN0IG9uZSBpdGVtIGluIHRoZSBsaXN0XG4gICAgICAgIGlmIChydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJ1bGVzLnB1c2gobmV3IEZpbHRlclJ1bGUodGhpcy5jb2x1bW5zKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmFsaWRSdWxlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWRkTmV3UnVsZShydWxlczogRmlsdGVyUnVsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RSdWxlID0gcnVsZXMuc2xpY2UoLTEpWzBdO1xuICAgICAgICBydWxlcy5wdXNoKG5ldyBGaWx0ZXJSdWxlKHRoaXMuY29sdW1ucywgbGFzdFJ1bGU/LmNvbHVtbktleSwgbGFzdFJ1bGU/LnN0cmF0ZWd5KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzT25seU9uZUVtcHR5SW5jbHVkZVJ1bGUgPSB0aGlzLl9pbmNsdWRlUnVsZXMubGVuZ3RoID09PSAxICYmICF0aGlzLl9pbmNsdWRlUnVsZXNbMF0uaGFzVmFsdWU7XG4gICAgICAgIGNvbnN0IGhhc09ubHlPbmVFbXB0eUV4Y2x1ZGVSdWxlID0gdGhpcy5fZXhjbHVkZVJ1bGVzLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5fZXhjbHVkZVJ1bGVzWzBdLmhhc1ZhbHVlO1xuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dCghaGFzT25seU9uZUVtcHR5SW5jbHVkZVJ1bGUgfHwgIWhhc09ubHlPbmVFbXB0eUV4Y2x1ZGVSdWxlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblJ1bGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmFsaWRSdWxlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWF0ZVJ1bGVzKGluaXRpYWxSdWxlcz86IENvbGxlY3Rpb25GaWx0ZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbmNsdWRlUnVsZXMgPSB0aGlzLl9jcmVhdGVSdWxlcyhpbml0aWFsUnVsZXM/LmZpbHRlcigoeyBleGNsdWRlIH0pID0+ICFleGNsdWRlKSk7XG4gICAgICAgIHRoaXMuX2V4Y2x1ZGVSdWxlcyA9IHRoaXMuX2NyZWF0ZVJ1bGVzKGluaXRpYWxSdWxlcz8uZmlsdGVyKCh7IGV4Y2x1ZGUgfSkgPT4gZXhjbHVkZSkpO1xuXG4gICAgICAgIFt0aGlzLl9pbmNsdWRlUnVsZXMsIHRoaXMuX2V4Y2x1ZGVSdWxlc10uZm9yRWFjaCgocnVsZXMpID0+IHtcbiAgICAgICAgICAgIC8vIFJ1bGVzIG9uIGluaXRpYWwgcGhhc2UgYXJlIGNvbnNpZGVyZWQgYXMgdmFsaWRcbiAgICAgICAgICAgIHJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHJ1bGUuc2V0VmFsaWQodHJ1ZSkpO1xuICAgICAgICAgICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICAgICAgaWYgKHJ1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJ1bGVzLnB1c2gobmV3IEZpbHRlclJ1bGUodGhpcy5jb2x1bW5zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3JlYXRlUnVsZXMoY29sbGVjdGlvbkZpbHRlcjogQ29sbGVjdGlvbkZpbHRlcltdID0gW10pOiBGaWx0ZXJSdWxlW10ge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbkZpbHRlci5tYXAoXG4gICAgICAgICAgICAoeyBmaWVsZCwgdmFsdWUsIHZhbHVlMiwgc3RyYXRlZ3kgfSk6IEZpbHRlclJ1bGUgPT5cbiAgICAgICAgICAgICAgICBuZXcgRmlsdGVyUnVsZSh0aGlzLmNvbHVtbnMsIGZpZWxkLCBzdHJhdGVneSwgdmFsdWUsIHZhbHVlMilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbVJ1bGVzKHJ1bGVzOiBGaWx0ZXJSdWxlW10pOiBDb2xsZWN0aW9uRmlsdGVyW10ge1xuICAgICAgICByZXR1cm4gcnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5tYXAoXG4gICAgICAgICAgICAoeyBjb2x1bW5LZXksIHN0cmF0ZWd5LCB2YWx1ZSwgdmFsdWUyIH0pOiBDb2xsZWN0aW9uRmlsdGVyID0+ICh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbktleSEsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgdmFsdWUyLFxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBzdHJhdGVneSFcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRDb2xsZWN0aW9uRmlsdGVyc0Zyb21JbmNsdWRlUnVsZXMoKTogQ29sbGVjdGlvbkZpbHRlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbVJ1bGVzKHRoaXMuX2luY2x1ZGVSdWxlcykubWFwKFxuICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWx0ZXIpOiBDb2xsZWN0aW9uRmlsdGVyID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uY29sbGVjdGlvbkZpbHRlcixcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25GaWx0ZXJzRnJvbUV4Y2x1ZGVSdWxlcygpOiBDb2xsZWN0aW9uRmlsdGVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q29sbGVjdGlvbkZpbHRlcnNGcm9tUnVsZXModGhpcy5fZXhjbHVkZVJ1bGVzKS5tYXAoXG4gICAgICAgICAgICAoY29sbGVjdGlvbkZpbHRlcik6IENvbGxlY3Rpb25GaWx0ZXIgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5jb2xsZWN0aW9uRmlsdGVyLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWYWxpZFJ1bGVzQ291bnQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX3ZhbGlkSW5jbHVkZVJ1bGVzQ291bnQgPSB0aGlzLl9pbmNsdWRlUnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5sZW5ndGg7XG4gICAgICAgIHRoaXMuX3ZhbGlkRXhjbHVkZVJ1bGVzQ291bnQgPSB0aGlzLl9leGNsdWRlUnVsZXMuZmlsdGVyKHRoaXMuX2lzUnVsZVZhbGlkKS5sZW5ndGg7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNSdWxlVmFsaWQgPSAocnVsZTogRmlsdGVyUnVsZSk6IGJvb2xlYW4gPT4gcnVsZT8uaXNWYWxpZDtcbn1cbiIsIjxmZC1kaWFsb2cgY2xhc3M9XCJmZHAtdGFibGUtcDEzLWZpbHRlcmluZy1kaWFsb2dcIj5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjRcIj57eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dIZWFkZXInIHwgZmRUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1yZXNldC1idXR0b24+PC9mZHAtdGFibGUtcmVzZXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8IS0tIEluY2x1ZGUgUnVsZXMgLS0+XG4gICAgICAgIDxmZC1wYW5lbCBbZXhwYW5kZWRdPVwiX2luY2x1ZGVQYW5lbEV4cGFuZGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIChfdmFsaWRJbmNsdWRlUnVsZXNDb3VudCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nSW5jbHVkZVBhbmVsVGl0bGVXaXRoQ291bnQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0luY2x1ZGVQYW5lbFRpdGxlV2l0aG91dENvdW50J1xuICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IF92YWxpZEluY2x1ZGVSdWxlc0NvdW50IH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLXBhbmVsLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgQGZvciAocnVsZSBvZiBfaW5jbHVkZVJ1bGVzOyB0cmFjayBydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtZmlsdGVyLXJ1bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtydWxlXT1cInJ1bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocnVsZUNoYW5nZSk9XCJfcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVTdGF0ZUNoYW5nZSk9XCJfb25SdWxlU3RhdGVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLXRhYmxlLWZpbHRlci1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9ucyBidXR0b25zIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzeXMtY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nUmVtb3ZlRmlsdGVyQnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nUmVtb3ZlRmlsdGVyQnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9yZW1vdmVSdWxlKHJ1bGUsIF9pbmNsdWRlUnVsZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKF9pbmNsdWRlUnVsZXMubGVuZ3RoIC0gMSA9PT0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dBZGRGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0FkZEZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2FkZE5ld1J1bGUoX2luY2x1ZGVSdWxlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1sYXlvdXQtZ3JpZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wYW5lbD5cbiAgICAgICAgPCEtLSBFeGNsdWRlIFJ1bGVzIC0tPlxuICAgICAgICA8ZmQtcGFuZWwgW2V4cGFuZGVkXT1cIl9leGNsdWRlUGFuZWxFeHBhbmRlZFwiPlxuICAgICAgICAgICAgPGRpdiBmZC1wYW5lbC10aXRsZT5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAoX3ZhbGlkRXhjbHVkZVJ1bGVzQ291bnQgPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0V4Y2x1ZGVQYW5lbFRpdGxlV2l0aENvdW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dFeGNsdWRlUGFuZWxUaXRsZVdpdGhvdXRDb3VudCdcbiAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBfdmFsaWRFeGNsdWRlUnVsZXNDb3VudCB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBmZC1wYW5lbC1jb250ZW50PlxuICAgICAgICAgICAgICAgIEBmb3IgKHJ1bGUgb2YgX2V4Y2x1ZGVSdWxlczsgdHJhY2sgcnVsZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtbGF5b3V0LWdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWZpbHRlci1ydWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcnVsZV09XCJydWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVDaGFuZ2UpPVwiX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydWxlU3RhdGVDaGFuZ2UpPVwiX29uUnVsZVN0YXRlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC10YWJsZS1maWx0ZXItcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFjdGlvbnMgYnV0dG9ucyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwic3lzLWNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ1JlbW92ZUZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ1JlbW92ZUZpbHRlckJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlUnVsZShydWxlLCBfZXhjbHVkZVJ1bGVzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChfZXhjbHVkZVJ1bGVzLmxlbmd0aCAtIDEgPT09ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImFkZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nQWRkRmlsdGVyQnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJEaWFsb2dBZGRGaWx0ZXJCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9hZGROZXdSdWxlKF9leGNsdWRlUnVsZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtcGFuZWw+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckRpYWxvZ0NvbmZpcm1hdGlvbkJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb25maXJtKClcIlxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==