@po-ui/ng-components 5.21.0 → 5.22.3

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 (1217) hide show
  1. package/README.md +36 -36
  2. package/bundles/po-ui-ng-components.umd.js +38669 -38615
  3. package/bundles/po-ui-ng-components.umd.js.map +1 -1
  4. package/esm2015/lib/components/components.module.js +122 -122
  5. package/esm2015/lib/components/index.js +38 -38
  6. package/esm2015/lib/components/po-accordion/index.js +4 -4
  7. package/esm2015/lib/components/po-accordion/po-accordion-base.component.js +29 -29
  8. package/esm2015/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.js +66 -66
  9. package/esm2015/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.js +23 -23
  10. package/esm2015/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.js +24 -24
  11. package/esm2015/lib/components/po-accordion/po-accordion.component.js +70 -70
  12. package/esm2015/lib/components/po-accordion/po-accordion.module.js +52 -52
  13. package/esm2015/lib/components/po-accordion/services/po-accordion.service.js +27 -27
  14. package/esm2015/lib/components/po-avatar/index.js +3 -3
  15. package/esm2015/lib/components/po-avatar/po-avatar-base.component.js +68 -68
  16. package/esm2015/lib/components/po-avatar/po-avatar.component.js +42 -42
  17. package/esm2015/lib/components/po-avatar/po-avatar.module.js +18 -18
  18. package/esm2015/lib/components/po-badge/po-badge-base.component.js +89 -89
  19. package/esm2015/lib/components/po-badge/po-badge.component.js +16 -16
  20. package/esm2015/lib/components/po-badge/po-badge.module.js +18 -18
  21. package/esm2015/lib/components/po-breadcrumb/index.js +5 -5
  22. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-base.component.js +48 -48
  23. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.js +20 -20
  24. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.js +77 -77
  25. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.service.js +49 -49
  26. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.js +27 -27
  27. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-item.interface.js +2 -2
  28. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.component.js +159 -159
  29. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.interface.js +2 -2
  30. package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.module.js +28 -28
  31. package/esm2015/lib/components/po-button/index.js +3 -3
  32. package/esm2015/lib/components/po-button/po-button-base.component.js +127 -127
  33. package/esm2015/lib/components/po-button/po-button.component.js +69 -69
  34. package/esm2015/lib/components/po-button/po-button.module.js +20 -20
  35. package/esm2015/lib/components/po-button-group/index.js +5 -5
  36. package/esm2015/lib/components/po-button-group/po-button-group-base.component.js +95 -95
  37. package/esm2015/lib/components/po-button-group/po-button-group-item.interface.js +2 -2
  38. package/esm2015/lib/components/po-button-group/po-button-group-toggle.enum.js +17 -17
  39. package/esm2015/lib/components/po-button-group/po-button-group.component.js +43 -43
  40. package/esm2015/lib/components/po-button-group/po-button-group.module.js +20 -20
  41. package/esm2015/lib/components/po-calendar/index.js +4 -4
  42. package/esm2015/lib/components/po-calendar/po-calendar-base.component.js +176 -176
  43. package/esm2015/lib/components/po-calendar/po-calendar-header/po-calendar-header.component.js +24 -24
  44. package/esm2015/lib/components/po-calendar/po-calendar-mode.enum.js +13 -13
  45. package/esm2015/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.js +251 -251
  46. package/esm2015/lib/components/po-calendar/po-calendar.component.js +199 -199
  47. package/esm2015/lib/components/po-calendar/po-calendar.module.js +19 -19
  48. package/esm2015/lib/components/po-calendar/services/po-calendar.lang.service.js +187 -187
  49. package/esm2015/lib/components/po-calendar/services/po-calendar.service.js +44 -44
  50. package/esm2015/lib/components/po-chart/directives/po-resize-observer.directive.js +44 -44
  51. package/esm2015/lib/components/po-chart/enums/po-chart-type.enum.js +51 -51
  52. package/esm2015/lib/components/po-chart/helpers/po-chart-default-values.constant.js +18 -18
  53. package/esm2015/lib/components/po-chart/index.js +8 -8
  54. package/esm2015/lib/components/po-chart/interfaces/po-chart-axis-options.interface.js +2 -2
  55. package/esm2015/lib/components/po-chart/interfaces/po-chart-bar-coordinates.interface.js +2 -2
  56. package/esm2015/lib/components/po-chart/interfaces/po-chart-container-size.interface.js +11 -11
  57. package/esm2015/lib/components/po-chart/interfaces/po-chart-label-coordinates.interface.js +2 -2
  58. package/esm2015/lib/components/po-chart/interfaces/po-chart-min-max-values.interface.js +2 -2
  59. package/esm2015/lib/components/po-chart/interfaces/po-chart-options.interface.js +2 -2
  60. package/esm2015/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.js +2 -2
  61. package/esm2015/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.js +2 -2
  62. package/esm2015/lib/components/po-chart/interfaces/po-chart-serie.interface.js +2 -2
  63. package/esm2015/lib/components/po-chart/po-chart-base.component.js +244 -244
  64. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-label/po-chart-axis-label.component.js +23 -23
  65. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-path/po-chart-axis-path.component.js +19 -19
  66. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis.component.js +287 -287
  67. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-base.component.js +94 -94
  68. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-path/po-chart-bar-path.component.js +33 -33
  69. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar.component.js +58 -58
  70. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-column/po-chart-column.component.js +59 -59
  71. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-label/po-chart-circular-label.component.js +29 -29
  72. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-circular-path.component.js +35 -35
  73. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-tooltip.directive.js +76 -76
  74. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular.component.js +142 -142
  75. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-donut/po-chart-donut.component.js +115 -115
  76. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-pie/po-chart-pie.component.js +57 -57
  77. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-container.component.js +119 -119
  78. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-area/po-chart-area.component.js +77 -77
  79. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.js +151 -151
  80. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.js +41 -41
  81. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-path/po-chart-path.component.js +65 -65
  82. package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.js +95 -95
  83. package/esm2015/lib/components/po-chart/po-chart-legend/po-chart-legend.component.js +21 -21
  84. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.constant.js +11 -11
  85. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.js +374 -374
  86. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-dynamic-type.component.js +45 -45
  87. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-series.interface.js +2 -2
  88. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-text-content/po-chart-gauge-text-content.component.js +75 -75
  89. package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge.component.js +85 -85
  90. package/esm2015/lib/components/po-chart/po-chart.component.js +203 -203
  91. package/esm2015/lib/components/po-chart/po-chart.module.js +61 -61
  92. package/esm2015/lib/components/po-chart/services/po-chart-maths.service.js +135 -135
  93. package/esm2015/lib/components/po-chart/services/po-chart-svg-container.service.js +57 -57
  94. package/esm2015/lib/components/po-container/index.js +3 -3
  95. package/esm2015/lib/components/po-container/po-container-base.component.js +88 -88
  96. package/esm2015/lib/components/po-container/po-container.component.js +32 -32
  97. package/esm2015/lib/components/po-container/po-container.module.js +18 -18
  98. package/esm2015/lib/components/po-disclaimer/index.js +4 -4
  99. package/esm2015/lib/components/po-disclaimer/po-disclaimer-base.component.js +77 -77
  100. package/esm2015/lib/components/po-disclaimer/po-disclaimer.component.js +29 -29
  101. package/esm2015/lib/components/po-disclaimer/po-disclaimer.interface.js +2 -2
  102. package/esm2015/lib/components/po-disclaimer/po-disclaimer.module.js +17 -17
  103. package/esm2015/lib/components/po-disclaimer-group/index.js +5 -5
  104. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group-base.component.js +194 -194
  105. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group-remove-action.interface.js +2 -2
  106. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.component.js +41 -41
  107. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.interface.js +2 -2
  108. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.module.js +20 -20
  109. package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-remove/po-disclaimer-remove.component.js +30 -30
  110. package/esm2015/lib/components/po-divider/index.js +3 -3
  111. package/esm2015/lib/components/po-divider/po-divider-base.component.js +16 -16
  112. package/esm2015/lib/components/po-divider/po-divider.component.js +32 -32
  113. package/esm2015/lib/components/po-divider/po-divider.module.js +18 -18
  114. package/esm2015/lib/components/po-dropdown/index.js +4 -4
  115. package/esm2015/lib/components/po-dropdown/po-dropdown-action.interface.js +2 -2
  116. package/esm2015/lib/components/po-dropdown/po-dropdown-base.component.js +71 -71
  117. package/esm2015/lib/components/po-dropdown/po-dropdown.component.js +97 -97
  118. package/esm2015/lib/components/po-dropdown/po-dropdown.module.js +18 -18
  119. package/esm2015/lib/components/po-dynamic/index.js +11 -11
  120. package/esm2015/lib/components/po-dynamic/po-dynamic-field-type.enum.js +25 -25
  121. package/esm2015/lib/components/po-dynamic/po-dynamic-field.interface.js +2 -2
  122. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.js +104 -104
  123. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.js +2 -2
  124. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-field-internal.interface.js +2 -2
  125. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.js +200 -200
  126. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.js +129 -129
  127. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.interface.js +2 -2
  128. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.service.js +32 -32
  129. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-operation/po-dynamic-form-operation.js +20 -20
  130. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-response.interface.js +2 -2
  131. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.js +2 -2
  132. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-validation.interface.js +2 -2
  133. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.js +2 -2
  134. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.service.js +39 -39
  135. package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.js +167 -167
  136. package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.js +163 -163
  137. package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.js +2 -2
  138. package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.js +101 -101
  139. package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.js +17 -17
  140. package/esm2015/lib/components/po-dynamic/po-dynamic.module.js +35 -35
  141. package/esm2015/lib/components/po-dynamic/po-dynamic.util.js +18 -18
  142. package/esm2015/lib/components/po-field/index.js +51 -51
  143. package/esm2015/lib/components/po-field/po-checkbox/po-checkbox-base.component.js +98 -98
  144. package/esm2015/lib/components/po-field/po-checkbox/po-checkbox.component.js +94 -94
  145. package/esm2015/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option-view.interface.js +2 -2
  146. package/esm2015/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option.interface.js +2 -2
  147. package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.js +297 -289
  148. package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.js +98 -98
  149. package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.js +20 -20
  150. package/esm2015/lib/components/po-field/po-clean/po-clean-base.component.js +42 -42
  151. package/esm2015/lib/components/po-field/po-clean/po-clean.component.js +33 -33
  152. package/esm2015/lib/components/po-field/po-clean/po-clean.module.js +18 -18
  153. package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-filter.interface.js +2 -2
  154. package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-group.interface.js +2 -2
  155. package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.js +2 -2
  156. package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-option-group.interface.js +2 -2
  157. package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-option.interface.js +2 -2
  158. package/esm2015/lib/components/po-field/po-combo/interfaces/po-response.interface.js +2 -2
  159. package/esm2015/lib/components/po-field/po-combo/po-combo-base.component.js +749 -741
  160. package/esm2015/lib/components/po-field/po-combo/po-combo-filter-mode.enum.js +17 -17
  161. package/esm2015/lib/components/po-field/po-combo/po-combo-filter.service.js +78 -78
  162. package/esm2015/lib/components/po-field/po-combo/po-combo-option-template/po-combo-option-template.directive.js +81 -81
  163. package/esm2015/lib/components/po-field/po-combo/po-combo.component.js +525 -525
  164. package/esm2015/lib/components/po-field/po-datepicker/enums/po-datepicker-iso-format.enum.js +17 -17
  165. package/esm2015/lib/components/po-field/po-datepicker/po-datepicker-base.component.js +396 -396
  166. package/esm2015/lib/components/po-field/po-datepicker/po-datepicker.component.js +345 -344
  167. package/esm2015/lib/components/po-field/po-datepicker/po-datepicker.module.js +22 -22
  168. package/esm2015/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.js +2 -2
  169. package/esm2015/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range.interface.js +2 -2
  170. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.js +475 -475
  171. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.js +443 -436
  172. package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.literals.js +27 -27
  173. package/esm2015/lib/components/po-field/po-decimal/po-decimal.component.js +598 -598
  174. package/esm2015/lib/components/po-field/po-email/po-email.component.js +106 -106
  175. package/esm2015/lib/components/po-field/po-field-container/po-field-container-bottom/po-field-container-bottom.component.js +29 -29
  176. package/esm2015/lib/components/po-field/po-field-container/po-field-container-literals.js +15 -15
  177. package/esm2015/lib/components/po-field/po-field-container/po-field-container.component.js +39 -39
  178. package/esm2015/lib/components/po-field/po-field-container/po-field-container.module.js +19 -19
  179. package/esm2015/lib/components/po-field/po-field-validate.model.js +69 -69
  180. package/esm2015/lib/components/po-field/po-field.model.js +78 -78
  181. package/esm2015/lib/components/po-field/po-field.module.js +156 -156
  182. package/esm2015/lib/components/po-field/po-input/po-input-base.component.js +357 -357
  183. package/esm2015/lib/components/po-field/po-input/po-input.component.js +56 -56
  184. package/esm2015/lib/components/po-field/po-input/po-mask.js +460 -460
  185. package/esm2015/lib/components/po-field/po-input-generic/po-input-generic.js +187 -187
  186. package/esm2015/lib/components/po-field/po-login/po-login.component.js +65 -65
  187. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-advanced-filter.interface.js +2 -2
  188. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.js +2 -2
  189. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-filter.interface.js +2 -2
  190. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-filtered-items-params.interface.js +2 -2
  191. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-literals.interface.js +2 -2
  192. package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-response-api.interface.js +2 -2
  193. package/esm2015/lib/components/po-field/po-lookup/po-lookup-base.component.js +451 -451
  194. package/esm2015/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.js +357 -347
  195. package/esm2015/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.js +130 -130
  196. package/esm2015/lib/components/po-field/po-lookup/po-lookup.component.js +337 -337
  197. package/esm2015/lib/components/po-field/po-lookup/services/po-lookup-filter.service.js +59 -59
  198. package/esm2015/lib/components/po-field/po-lookup/services/po-lookup-modal.service.js +62 -62
  199. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-base.component.js +576 -571
  200. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.js +139 -139
  201. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter-mode.enum.js +17 -17
  202. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.js +2 -2
  203. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter.service.js +50 -50
  204. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.js +33 -33
  205. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.js +2 -2
  206. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-option.interface.js +2 -2
  207. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.js +57 -57
  208. package/esm2015/lib/components/po-field/po-multiselect/po-multiselect.component.js +359 -359
  209. package/esm2015/lib/components/po-field/po-number/po-number-base.component.js +114 -114
  210. package/esm2015/lib/components/po-field/po-number/po-number.component.js +119 -119
  211. package/esm2015/lib/components/po-field/po-password/po-password.component.js +92 -92
  212. package/esm2015/lib/components/po-field/po-radio-group/po-radio-group-base.component.js +184 -184
  213. package/esm2015/lib/components/po-field/po-radio-group/po-radio-group-option.interface.js +2 -2
  214. package/esm2015/lib/components/po-field/po-radio-group/po-radio-group.component.js +119 -119
  215. package/esm2015/lib/components/po-field/po-rich-text/interfaces/po-rich-text-toolbar-button-group-item.interface.js +2 -2
  216. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-base.component.js +181 -181
  217. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-body/po-rich-text-body.component.js +312 -312
  218. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-image-modal/po-rich-text-image-modal.component.js +96 -96
  219. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-link-modal/po-rich-text-link-modal.component.js +140 -140
  220. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-literals.js +83 -83
  221. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.js +166 -166
  222. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text.component.js +147 -147
  223. package/esm2015/lib/components/po-field/po-rich-text/po-rich-text.service.js +17 -17
  224. package/esm2015/lib/components/po-field/po-select/po-select-option-template/po-select-option-template.directive.js +59 -59
  225. package/esm2015/lib/components/po-field/po-select/po-select-option.interface.js +2 -2
  226. package/esm2015/lib/components/po-field/po-select/po-select.component.js +366 -359
  227. package/esm2015/lib/components/po-field/po-switch/po-switch-label-position.enum.js +15 -15
  228. package/esm2015/lib/components/po-field/po-switch/po-switch.component.js +190 -190
  229. package/esm2015/lib/components/po-field/po-textarea/po-textarea-base.component.js +269 -269
  230. package/esm2015/lib/components/po-field/po-textarea/po-textarea.component.js +130 -130
  231. package/esm2015/lib/components/po-field/po-upload/interfaces/po-upload-file-restriction.interface.js +2 -2
  232. package/esm2015/lib/components/po-field/po-upload/interfaces/po-upload-literals.interface.js +2 -2
  233. package/esm2015/lib/components/po-field/po-upload/po-upload-base.component.js +581 -573
  234. package/esm2015/lib/components/po-field/po-upload/po-upload-base.service.js +88 -88
  235. package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area/po-upload-drag-drop-area.component.js +30 -30
  236. package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area-overlay/po-upload-drag-drop-area-overlay.component.js +40 -40
  237. package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.component.js +60 -60
  238. package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.directive.js +165 -165
  239. package/esm2015/lib/components/po-field/po-upload/po-upload-file-restrictions/po-upload-file-restrictions.component.js +63 -63
  240. package/esm2015/lib/components/po-field/po-upload/po-upload-file.js +39 -39
  241. package/esm2015/lib/components/po-field/po-upload/po-upload-status.enum.js +13 -13
  242. package/esm2015/lib/components/po-field/po-upload/po-upload.component.js +326 -326
  243. package/esm2015/lib/components/po-field/po-upload/po-upload.service.js +8 -8
  244. package/esm2015/lib/components/po-field/po-url/po-url.component.js +86 -86
  245. package/esm2015/lib/components/po-field/validators.js +41 -41
  246. package/esm2015/lib/components/po-gauge/index.js +4 -4
  247. package/esm2015/lib/components/po-gauge/interfaces/po-gauge-coordinates.interface.js +2 -2
  248. package/esm2015/lib/components/po-gauge/interfaces/po-gauge-ranges.interface.js +2 -2
  249. package/esm2015/lib/components/po-gauge/interfaces/po-gauge-svg-container.interface.js +2 -2
  250. package/esm2015/lib/components/po-gauge/po-gauge-base.component.js +146 -146
  251. package/esm2015/lib/components/po-gauge/po-gauge-default-values.constant.js +11 -11
  252. package/esm2015/lib/components/po-gauge/po-gauge-description/po-gauge-description.component.js +27 -27
  253. package/esm2015/lib/components/po-gauge/po-gauge-legend/po-gauge-legend.component.js +27 -27
  254. package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-path/po-gauge-path.component.js +20 -20
  255. package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-pointer/po-gauge-pointer.component.js +50 -50
  256. package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-svg.component.js +204 -204
  257. package/esm2015/lib/components/po-gauge/po-gauge-title/po-gauge-title.component.js +13 -13
  258. package/esm2015/lib/components/po-gauge/po-gauge.component.js +72 -72
  259. package/esm2015/lib/components/po-gauge/po-gauge.module.js +32 -32
  260. package/esm2015/lib/components/po-grid/index.js +4 -4
  261. package/esm2015/lib/components/po-grid/po-grid-cell/po-grid-cell.component.js +111 -111
  262. package/esm2015/lib/components/po-grid/po-grid-cell-action/po-grid-cell-action.component.js +24 -24
  263. package/esm2015/lib/components/po-grid/po-grid-head/po-grid-head.component.js +30 -30
  264. package/esm2015/lib/components/po-grid/po-grid-row-actions.interface.js +2 -2
  265. package/esm2015/lib/components/po-grid/po-grid.component.js +314 -314
  266. package/esm2015/lib/components/po-grid/po-grid.module.js +23 -23
  267. package/esm2015/lib/components/po-icon/index.js +3 -3
  268. package/esm2015/lib/components/po-icon/po-icon.component.js +62 -62
  269. package/esm2015/lib/components/po-icon/po-icon.module.js +18 -18
  270. package/esm2015/lib/components/po-info/index.js +4 -4
  271. package/esm2015/lib/components/po-info/po-info-base.component.js +62 -62
  272. package/esm2015/lib/components/po-info/po-info-orietation.enum.js +15 -15
  273. package/esm2015/lib/components/po-info/po-info.component.js +36 -36
  274. package/esm2015/lib/components/po-info/po-info.module.js +21 -21
  275. package/esm2015/lib/components/po-list-view/index.js +7 -7
  276. package/esm2015/lib/components/po-list-view/interfaces/po-list-view-action.interface.js +2 -2
  277. package/esm2015/lib/components/po-list-view/interfaces/po-list-view-literals.interface.js +2 -2
  278. package/esm2015/lib/components/po-list-view/po-list-view-base.component.js +274 -274
  279. package/esm2015/lib/components/po-list-view/po-list-view-content-template/po-list-view-content-template.directive.js +101 -101
  280. package/esm2015/lib/components/po-list-view/po-list-view-detail-template/po-list-view-detail-template.directive.js +64 -64
  281. package/esm2015/lib/components/po-list-view/po-list-view.component.js +128 -128
  282. package/esm2015/lib/components/po-list-view/po-list-view.module.js +51 -51
  283. package/esm2015/lib/components/po-loading/index.js +5 -5
  284. package/esm2015/lib/components/po-loading/po-loading-base.component.js +24 -24
  285. package/esm2015/lib/components/po-loading/po-loading-icon/po-loading-icon.component.js +37 -37
  286. package/esm2015/lib/components/po-loading/po-loading-overlay/interfaces/po-loading-overlay-literals.interface.js +2 -2
  287. package/esm2015/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.js +91 -91
  288. package/esm2015/lib/components/po-loading/po-loading-overlay/po-loading-overlay.component.js +41 -41
  289. package/esm2015/lib/components/po-loading/po-loading.component.js +16 -16
  290. package/esm2015/lib/components/po-loading/po-loading.module.js +22 -22
  291. package/esm2015/lib/components/po-menu/index.js +9 -9
  292. package/esm2015/lib/components/po-menu/po-menu-base.component.js +299 -299
  293. package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter-literals.interface.js +2 -2
  294. package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter.component.js +40 -40
  295. package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter.interface.js +2 -2
  296. package/esm2015/lib/components/po-menu/po-menu-header-template/po-menu-header-template.directive.js +51 -51
  297. package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item-badge.interface.js +2 -2
  298. package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item-filtered.interface.js +2 -2
  299. package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item.component.js +173 -173
  300. package/esm2015/lib/components/po-menu/po-menu-item.interface.js +2 -2
  301. package/esm2015/lib/components/po-menu/po-menu.component.js +497 -497
  302. package/esm2015/lib/components/po-menu/po-menu.module.js +26 -26
  303. package/esm2015/lib/components/po-menu/services/po-menu-global.service.js +32 -32
  304. package/esm2015/lib/components/po-menu/services/po-menu-items.service.js +35 -35
  305. package/esm2015/lib/components/po-menu/services/po-menu.service.js +35 -35
  306. package/esm2015/lib/components/po-menu-panel/index.js +4 -4
  307. package/esm2015/lib/components/po-menu-panel/po-menu-panel-base.component.js +76 -76
  308. package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item-internal.interface.js +2 -2
  309. package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.component.js +54 -54
  310. package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.js +2 -2
  311. package/esm2015/lib/components/po-menu-panel/po-menu-panel.component.js +145 -145
  312. package/esm2015/lib/components/po-menu-panel/po-menu-panel.module.js +24 -24
  313. package/esm2015/lib/components/po-menu-panel/services/po-menu-panel-items.service.js +35 -35
  314. package/esm2015/lib/components/po-modal/index.js +5 -5
  315. package/esm2015/lib/components/po-modal/po-modal-action.interface.js +2 -2
  316. package/esm2015/lib/components/po-modal/po-modal-base.component.js +121 -121
  317. package/esm2015/lib/components/po-modal/po-modal-footer/po-modal-footer.component.js +43 -43
  318. package/esm2015/lib/components/po-modal/po-modal.component.js +114 -114
  319. package/esm2015/lib/components/po-modal/po-modal.literals.js +15 -15
  320. package/esm2015/lib/components/po-modal/po-modal.module.js +19 -19
  321. package/esm2015/lib/components/po-navbar/index.js +5 -5
  322. package/esm2015/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.js +2 -2
  323. package/esm2015/lib/components/po-navbar/interfaces/po-navbar-item.interface.js +2 -2
  324. package/esm2015/lib/components/po-navbar/interfaces/po-navbar-literals.interface.js +2 -2
  325. package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-action/po-navbar-action.component.js +43 -43
  326. package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-action-popup/po-navbar-action-popup.component.js +18 -18
  327. package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.component.js +19 -19
  328. package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.module.js +18 -18
  329. package/esm2015/lib/components/po-navbar/po-navbar-base.component.js +147 -147
  330. package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation-icon/po-navbar-item-navigation-icon.component.js +18 -18
  331. package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.component.js +18 -18
  332. package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.module.js +15 -15
  333. package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-item/po-navbar-item.component.js +30 -30
  334. package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-items.component.js +53 -53
  335. package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-items.module.js +15 -15
  336. package/esm2015/lib/components/po-navbar/po-navbar-logo/po-navbar-logo.component.js +13 -13
  337. package/esm2015/lib/components/po-navbar/po-navbar.component.js +213 -213
  338. package/esm2015/lib/components/po-navbar/po-navbar.module.js +57 -57
  339. package/esm2015/lib/components/po-page/index.js +15 -15
  340. package/esm2015/lib/components/po-page/po-page-action.interface.js +2 -2
  341. package/esm2015/lib/components/po-page/po-page-base.component.js +23 -23
  342. package/esm2015/lib/components/po-page/po-page-content/po-page-content-base.component.js +10 -10
  343. package/esm2015/lib/components/po-page/po-page-content/po-page-content.component.js +54 -54
  344. package/esm2015/lib/components/po-page/po-page-default/po-page-default-base.component.js +111 -111
  345. package/esm2015/lib/components/po-page/po-page-default/po-page-default-literals.interface.js +2 -2
  346. package/esm2015/lib/components/po-page/po-page-default/po-page-default.component.js +98 -98
  347. package/esm2015/lib/components/po-page/po-page-default/po-page-default.interface.js +2 -2
  348. package/esm2015/lib/components/po-page/po-page-detail/po-page-detail-base.component.js +141 -141
  349. package/esm2015/lib/components/po-page/po-page-detail/po-page-detail-literals.interface.js +2 -2
  350. package/esm2015/lib/components/po-page/po-page-detail/po-page-detail.component.js +62 -62
  351. package/esm2015/lib/components/po-page/po-page-edit/po-page-edit-base.component.js +146 -146
  352. package/esm2015/lib/components/po-page/po-page-edit/po-page-edit-literals.interface.js +2 -2
  353. package/esm2015/lib/components/po-page/po-page-edit/po-page-edit.component.js +65 -65
  354. package/esm2015/lib/components/po-page/po-page-filter.interface.js +2 -2
  355. package/esm2015/lib/components/po-page/po-page-header/po-page-header-base.component.js +26 -26
  356. package/esm2015/lib/components/po-page/po-page-header/po-page-header.component.js +15 -15
  357. package/esm2015/lib/components/po-page/po-page-list/po-page-list-base.component.js +137 -137
  358. package/esm2015/lib/components/po-page/po-page-list/po-page-list-literals.interface.js +2 -2
  359. package/esm2015/lib/components/po-page/po-page-list/po-page-list.component.js +188 -188
  360. package/esm2015/lib/components/po-page/po-page-slide/po-page-slide-base.component.js +135 -135
  361. package/esm2015/lib/components/po-page/po-page-slide/po-page-slide.component.js +121 -121
  362. package/esm2015/lib/components/po-page/po-page.component.js +16 -16
  363. package/esm2015/lib/components/po-page/po-page.interface.js +2 -2
  364. package/esm2015/lib/components/po-page/po-page.module.js +60 -60
  365. package/esm2015/lib/components/po-popover/index.js +3 -3
  366. package/esm2015/lib/components/po-popover/po-popover-base.component.js +113 -113
  367. package/esm2015/lib/components/po-popover/po-popover.component.js +138 -138
  368. package/esm2015/lib/components/po-popover/po-popover.module.js +17 -17
  369. package/esm2015/lib/components/po-popup/index.js +4 -4
  370. package/esm2015/lib/components/po-popup/po-popup-action.interface.js +2 -2
  371. package/esm2015/lib/components/po-popup/po-popup-base.component.js +186 -186
  372. package/esm2015/lib/components/po-popup/po-popup.component.js +169 -169
  373. package/esm2015/lib/components/po-popup/po-popup.module.js +21 -21
  374. package/esm2015/lib/components/po-progress/enums/po-progress-status.enum.js +17 -17
  375. package/esm2015/lib/components/po-progress/index.js +4 -4
  376. package/esm2015/lib/components/po-progress/po-progress-bar/po-progress-bar.component.js +18 -18
  377. package/esm2015/lib/components/po-progress/po-progress-base.component.js +107 -107
  378. package/esm2015/lib/components/po-progress/po-progress.component.js +56 -56
  379. package/esm2015/lib/components/po-progress/po-progress.module.js +19 -19
  380. package/esm2015/lib/components/po-slide/directives/po-slide-content-template.directive.js +59 -59
  381. package/esm2015/lib/components/po-slide/index.js +5 -5
  382. package/esm2015/lib/components/po-slide/interfaces/po-slide-item.interface.js +2 -2
  383. package/esm2015/lib/components/po-slide/po-slide-base.component.js +104 -104
  384. package/esm2015/lib/components/po-slide/po-slide-circles/po-slide-circles.component.js +26 -26
  385. package/esm2015/lib/components/po-slide/po-slide-control/po-slide-control.component.js +25 -25
  386. package/esm2015/lib/components/po-slide/po-slide-item/po-slide-item.component.js +37 -37
  387. package/esm2015/lib/components/po-slide/po-slide.component.js +256 -256
  388. package/esm2015/lib/components/po-slide/po-slide.module.js +58 -58
  389. package/esm2015/lib/components/po-stepper/enums/po-stepper-orientation.enum.js +18 -18
  390. package/esm2015/lib/components/po-stepper/enums/po-stepper-status.enum.js +23 -23
  391. package/esm2015/lib/components/po-stepper/index.js +7 -7
  392. package/esm2015/lib/components/po-stepper/po-step/po-step.component.js +78 -78
  393. package/esm2015/lib/components/po-stepper/po-stepper-base.component.js +144 -144
  394. package/esm2015/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.js +47 -47
  395. package/esm2015/lib/components/po-stepper/po-stepper-item.interface.js +2 -2
  396. package/esm2015/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.js +20 -20
  397. package/esm2015/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.js +116 -116
  398. package/esm2015/lib/components/po-stepper/po-stepper.component.js +219 -219
  399. package/esm2015/lib/components/po-stepper/po-stepper.module.js +27 -27
  400. package/esm2015/lib/components/po-table/enums/po-table-column-sort-type.enum.js +14 -14
  401. package/esm2015/lib/components/po-table/enums/po-table-row-template-arrow-direction.enum.js +14 -14
  402. package/esm2015/lib/components/po-table/index.js +18 -18
  403. package/esm2015/lib/components/po-table/interfaces/po-table-action.interface.js +2 -2
  404. package/esm2015/lib/components/po-table/interfaces/po-table-boolean.interface.js +2 -2
  405. package/esm2015/lib/components/po-table/interfaces/po-table-column-sort.interface.js +2 -2
  406. package/esm2015/lib/components/po-table/interfaces/po-table-column.interface.js +2 -2
  407. package/esm2015/lib/components/po-table/interfaces/po-table-filter.interface.js +2 -2
  408. package/esm2015/lib/components/po-table/interfaces/po-table-filtered-items-params.interface.js +2 -2
  409. package/esm2015/lib/components/po-table/interfaces/po-table-literals.interface.js +2 -2
  410. package/esm2015/lib/components/po-table/interfaces/po-table-response-api.interface.js +2 -2
  411. package/esm2015/lib/components/po-table/po-table-base.component.js +860 -860
  412. package/esm2015/lib/components/po-table/po-table-cell-template/po-table-cell-template.directive.js +82 -82
  413. package/esm2015/lib/components/po-table/po-table-column-icon/po-table-column-icon.component.js +72 -72
  414. package/esm2015/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.js +2 -2
  415. package/esm2015/lib/components/po-table/po-table-column-label/po-table-column-label.component.js +38 -38
  416. package/esm2015/lib/components/po-table/po-table-column-label/po-table-column-label.interface.js +2 -2
  417. package/esm2015/lib/components/po-table/po-table-column-link/po-table-column-link.component.js +38 -38
  418. package/esm2015/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.js +250 -250
  419. package/esm2015/lib/components/po-table/po-table-column-template/po-table-column-template.directive.js +90 -90
  420. package/esm2015/lib/components/po-table/po-table-detail/po-table-detail-column.interface.js +2 -2
  421. package/esm2015/lib/components/po-table/po-table-detail/po-table-detail.component.js +88 -88
  422. package/esm2015/lib/components/po-table/po-table-detail/po-table-detail.interface.js +2 -2
  423. package/esm2015/lib/components/po-table/po-table-icon/po-table-icon.component.js +46 -46
  424. package/esm2015/lib/components/po-table/po-table-row-template/po-table-row-template.directive.js +128 -128
  425. package/esm2015/lib/components/po-table/po-table-show-subtitle/po-table-show-subtitle.component.js +21 -21
  426. package/esm2015/lib/components/po-table/po-table-subtitle-circle/po-table-subtitle-circle.component.js +41 -41
  427. package/esm2015/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-column.interface.js +2 -2
  428. package/esm2015/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-footer.component.js +70 -70
  429. package/esm2015/lib/components/po-table/po-table.component.js +542 -542
  430. package/esm2015/lib/components/po-table/po-table.module.js +75 -75
  431. package/esm2015/lib/components/po-table/services/po-table.service.js +38 -38
  432. package/esm2015/lib/components/po-tabs/index.js +5 -5
  433. package/esm2015/lib/components/po-tabs/po-tab/po-tab-base.component.js +82 -82
  434. package/esm2015/lib/components/po-tabs/po-tab/po-tab.component.js +27 -27
  435. package/esm2015/lib/components/po-tabs/po-tab/po-tab.interface.js +2 -2
  436. package/esm2015/lib/components/po-tabs/po-tab-button/po-tab-button.component.js +75 -75
  437. package/esm2015/lib/components/po-tabs/po-tab-dropdown/po-tab-dropdown.component.js +44 -44
  438. package/esm2015/lib/components/po-tabs/po-tabs-base.component.js +49 -49
  439. package/esm2015/lib/components/po-tabs/po-tabs.component.js +126 -126
  440. package/esm2015/lib/components/po-tabs/po-tabs.module.js +21 -21
  441. package/esm2015/lib/components/po-tag/enums/po-tag-icon.enum.js +19 -19
  442. package/esm2015/lib/components/po-tag/enums/po-tag-orientation.enum.js +15 -15
  443. package/esm2015/lib/components/po-tag/enums/po-tag-type.enum.js +19 -19
  444. package/esm2015/lib/components/po-tag/index.js +5 -5
  445. package/esm2015/lib/components/po-tag/interfaces/po-tag-item.interface.js +2 -2
  446. package/esm2015/lib/components/po-tag/po-tag-base.component.js +175 -175
  447. package/esm2015/lib/components/po-tag/po-tag.component.js +71 -71
  448. package/esm2015/lib/components/po-tag/po-tag.module.js +21 -21
  449. package/esm2015/lib/components/po-toolbar/index.js +5 -5
  450. package/esm2015/lib/components/po-toolbar/po-toolbar-action.interface.js +2 -2
  451. package/esm2015/lib/components/po-toolbar/po-toolbar-actions/po-toolbar-actions.component.js +35 -35
  452. package/esm2015/lib/components/po-toolbar/po-toolbar-base.component.js +43 -43
  453. package/esm2015/lib/components/po-toolbar/po-toolbar-notification/po-toolbar-notification.component.js +39 -39
  454. package/esm2015/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.component.js +28 -28
  455. package/esm2015/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.interface.js +2 -2
  456. package/esm2015/lib/components/po-toolbar/po-toolbar.component.js +46 -46
  457. package/esm2015/lib/components/po-toolbar/po-toolbar.module.js +32 -32
  458. package/esm2015/lib/components/po-tree-view/index.js +4 -4
  459. package/esm2015/lib/components/po-tree-view/po-tree-view-base.component.js +197 -197
  460. package/esm2015/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.js +58 -58
  461. package/esm2015/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.js +2 -2
  462. package/esm2015/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.js +26 -26
  463. package/esm2015/lib/components/po-tree-view/po-tree-view.component.js +60 -60
  464. package/esm2015/lib/components/po-tree-view/po-tree-view.module.js +49 -49
  465. package/esm2015/lib/components/po-tree-view/services/po-tree-view.service.js +24 -24
  466. package/esm2015/lib/components/po-widget/index.js +3 -3
  467. package/esm2015/lib/components/po-widget/po-widget-base.component.js +216 -216
  468. package/esm2015/lib/components/po-widget/po-widget.component.js +114 -114
  469. package/esm2015/lib/components/po-widget/po-widget.module.js +19 -19
  470. package/esm2015/lib/decorators/index.js +3 -3
  471. package/esm2015/lib/decorators/input-boolean/input-boolean.decorator.js +18 -18
  472. package/esm2015/lib/decorators/input-required/input-required.decorator.js +34 -34
  473. package/esm2015/lib/decorators/property-decorator.interface.js +2 -2
  474. package/esm2015/lib/decorators/utils-decorators.js +64 -64
  475. package/esm2015/lib/directives/directives.module.js +14 -14
  476. package/esm2015/lib/directives/index.js +3 -3
  477. package/esm2015/lib/directives/po-tooltip/index.js +3 -3
  478. package/esm2015/lib/directives/po-tooltip/po-tooltip-base.directive.js +106 -106
  479. package/esm2015/lib/directives/po-tooltip/po-tooltip-control-position.service.js +8 -8
  480. package/esm2015/lib/directives/po-tooltip/po-tooltip.directive.js +147 -147
  481. package/esm2015/lib/directives/po-tooltip/po-tooltip.module.js +18 -18
  482. package/esm2015/lib/enums/po-color-palette.enum.js +35 -35
  483. package/esm2015/lib/enums/po-key-code.enum.js +31 -31
  484. package/esm2015/lib/guards/guards.module.js +13 -13
  485. package/esm2015/lib/guards/index.js +2 -2
  486. package/esm2015/lib/index.js +10 -10
  487. package/esm2015/lib/interceptors/index.js +4 -4
  488. package/esm2015/lib/interceptors/interceptors.module.js +15 -15
  489. package/esm2015/lib/interceptors/po-http-interceptor/index.js +3 -3
  490. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.js +249 -249
  491. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail-literals.interface.js +39 -39
  492. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.component.js +83 -83
  493. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.js +2 -2
  494. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-literals.js +23 -23
  495. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor.module.js +28 -28
  496. package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor.service.js +28 -28
  497. package/esm2015/lib/interceptors/po-http-request/index.js +3 -3
  498. package/esm2015/lib/interceptors/po-http-request/po-http-request-control-service.js +23 -23
  499. package/esm2015/lib/interceptors/po-http-request/po-http-request-interceptor.service.js +169 -169
  500. package/esm2015/lib/interceptors/po-http-request/po-http-request.module.js +24 -24
  501. package/esm2015/lib/interfaces/index.js +2 -2
  502. package/esm2015/lib/interfaces/po-http/po-response-api.interface.js +2 -2
  503. package/esm2015/lib/pipes/index.js +3 -3
  504. package/esm2015/lib/pipes/pipes.module.js +14 -14
  505. package/esm2015/lib/pipes/po-time/index.js +3 -3
  506. package/esm2015/lib/pipes/po-time/po-time.module.js +19 -19
  507. package/esm2015/lib/pipes/po-time/po-time.pipe.js +55 -55
  508. package/esm2015/lib/po.module.js +34 -34
  509. package/esm2015/lib/services/index.js +11 -11
  510. package/esm2015/lib/services/po-active-overlay/index.js +3 -3
  511. package/esm2015/lib/services/po-active-overlay/po-active-overlay.module.js +16 -16
  512. package/esm2015/lib/services/po-active-overlay/po-active-overlay.service.js +14 -14
  513. package/esm2015/lib/services/po-color/po-color.service.js +60 -60
  514. package/esm2015/lib/services/po-color/po-colors.constant.js +43 -43
  515. package/esm2015/lib/services/po-color-palette/index.js +3 -3
  516. package/esm2015/lib/services/po-color-palette/po-color-palette.module.js +16 -16
  517. package/esm2015/lib/services/po-color-palette/po-color-palette.service.js +25 -25
  518. package/esm2015/lib/services/po-component-injector/index.js +3 -3
  519. package/esm2015/lib/services/po-component-injector/po-component-injector.module.js +14 -14
  520. package/esm2015/lib/services/po-component-injector/po-component-injector.service.js +34 -34
  521. package/esm2015/lib/services/po-control-position/index.js +3 -3
  522. package/esm2015/lib/services/po-control-position/po-control-position.constants.js +16 -16
  523. package/esm2015/lib/services/po-control-position/po-control-position.module.js +15 -15
  524. package/esm2015/lib/services/po-control-position/po-control-position.service.js +361 -361
  525. package/esm2015/lib/services/po-date/index.js +3 -3
  526. package/esm2015/lib/services/po-date/po-date.module.js +16 -16
  527. package/esm2015/lib/services/po-date/po-date.service.js +201 -201
  528. package/esm2015/lib/services/po-dialog/index.js +8 -8
  529. package/esm2015/lib/services/po-dialog/interfaces/po-dialog-alert-literals.interface.js +2 -2
  530. package/esm2015/lib/services/po-dialog/interfaces/po-dialog-confirm-literals.interface.js +2 -2
  531. package/esm2015/lib/services/po-dialog/interfaces/po-dialog.interface.js +2 -2
  532. package/esm2015/lib/services/po-dialog/po-dialog-base.service.js +18 -18
  533. package/esm2015/lib/services/po-dialog/po-dialog.component.js +115 -115
  534. package/esm2015/lib/services/po-dialog/po-dialog.enum.js +16 -16
  535. package/esm2015/lib/services/po-dialog/po-dialog.module.js +15 -15
  536. package/esm2015/lib/services/po-dialog/po-dialog.service.js +42 -42
  537. package/esm2015/lib/services/po-i18n/index.js +8 -8
  538. package/esm2015/lib/services/po-i18n/interfaces/po-i18n-config-default.interface.js +2 -2
  539. package/esm2015/lib/services/po-i18n/interfaces/po-i18n-config.interface.js +2 -2
  540. package/esm2015/lib/services/po-i18n/interfaces/po-i18n-literals.interface.js +2 -2
  541. package/esm2015/lib/services/po-i18n/po-i18n-base.pipe.js +40 -40
  542. package/esm2015/lib/services/po-i18n/po-i18n-base.service.js +439 -439
  543. package/esm2015/lib/services/po-i18n/po-i18n-config-injection-token.js +3 -3
  544. package/esm2015/lib/services/po-i18n/po-i18n.module.js +188 -188
  545. package/esm2015/lib/services/po-i18n/po-i18n.pipe.js +21 -21
  546. package/esm2015/lib/services/po-i18n/po-i18n.service.js +20 -20
  547. package/esm2015/lib/services/po-language/index.js +5 -5
  548. package/esm2015/lib/services/po-language/po-language.constant.js +75 -75
  549. package/esm2015/lib/services/po-language/po-language.interface.js +2 -2
  550. package/esm2015/lib/services/po-language/po-language.module.js +15 -15
  551. package/esm2015/lib/services/po-language/po-language.service.js +136 -136
  552. package/esm2015/lib/services/po-notification/index.js +6 -6
  553. package/esm2015/lib/services/po-notification/po-notification-base.service.js +111 -111
  554. package/esm2015/lib/services/po-notification/po-notification.interface.js +2 -2
  555. package/esm2015/lib/services/po-notification/po-notification.module.js +15 -15
  556. package/esm2015/lib/services/po-notification/po-notification.service.js +92 -92
  557. package/esm2015/lib/services/po-notification/po-toaster/po-toaster-base.component.js +15 -15
  558. package/esm2015/lib/services/po-notification/po-toaster/po-toaster-orientation.enum.js +13 -13
  559. package/esm2015/lib/services/po-notification/po-toaster/po-toaster-type.enum.js +17 -17
  560. package/esm2015/lib/services/po-notification/po-toaster/po-toaster.component.js +132 -132
  561. package/esm2015/lib/services/po-notification/po-toaster/po-toaster.interface.js +2 -2
  562. package/esm2015/lib/services/services.module.js +40 -40
  563. package/esm2015/lib/utils/util.js +508 -508
  564. package/esm2015/po-ui-ng-components.js +205 -205
  565. package/esm2015/public-api.js +2 -2
  566. package/fesm2015/po-ui-ng-components.js +35214 -35160
  567. package/fesm2015/po-ui-ng-components.js.map +1 -1
  568. package/lib/components/components.module.d.ts +2 -2
  569. package/lib/components/index.d.ts +37 -37
  570. package/lib/components/po-accordion/index.d.ts +3 -3
  571. package/lib/components/po-accordion/po-accordion-base.component.d.ts +28 -28
  572. package/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.d.ts +49 -49
  573. package/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.d.ts +3 -3
  574. package/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.d.ts +7 -7
  575. package/lib/components/po-accordion/po-accordion.component.d.ts +37 -37
  576. package/lib/components/po-accordion/po-accordion.module.d.ts +33 -33
  577. package/lib/components/po-accordion/services/po-accordion.service.d.ts +13 -13
  578. package/lib/components/po-avatar/index.d.ts +2 -2
  579. package/lib/components/po-avatar/po-avatar-base.component.d.ts +53 -53
  580. package/lib/components/po-avatar/po-avatar.component.d.ts +28 -28
  581. package/lib/components/po-avatar/po-avatar.module.d.ts +7 -7
  582. package/lib/components/po-badge/po-badge-base.component.d.ts +55 -55
  583. package/lib/components/po-badge/po-badge.component.d.ts +8 -8
  584. package/lib/components/po-badge/po-badge.module.d.ts +7 -7
  585. package/lib/components/po-breadcrumb/index.d.ts +4 -4
  586. package/lib/components/po-breadcrumb/po-breadcrumb-base.component.d.ts +104 -104
  587. package/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.d.ts +11 -11
  588. package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.d.ts +29 -29
  589. package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.service.d.ts +27 -27
  590. package/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.d.ts +13 -13
  591. package/lib/components/po-breadcrumb/po-breadcrumb-item.interface.d.ts +31 -31
  592. package/lib/components/po-breadcrumb/po-breadcrumb.component.d.ts +53 -53
  593. package/lib/components/po-breadcrumb/po-breadcrumb.interface.d.ts +42 -42
  594. package/lib/components/po-breadcrumb/po-breadcrumb.module.d.ts +8 -8
  595. package/lib/components/po-button/index.d.ts +2 -2
  596. package/lib/components/po-button/po-button-base.component.d.ts +120 -120
  597. package/lib/components/po-button/po-button.component.d.ts +49 -49
  598. package/lib/components/po-button/po-button.module.d.ts +7 -7
  599. package/lib/components/po-button-group/index.d.ts +4 -4
  600. package/lib/components/po-button-group/po-button-group-base.component.d.ts +53 -53
  601. package/lib/components/po-button-group/po-button-group-item.interface.d.ts +64 -64
  602. package/lib/components/po-button-group/po-button-group-toggle.enum.d.ts +15 -15
  603. package/lib/components/po-button-group/po-button-group.component.d.ts +31 -31
  604. package/lib/components/po-button-group/po-button-group.module.d.ts +7 -7
  605. package/lib/components/po-calendar/index.d.ts +3 -3
  606. package/lib/components/po-calendar/po-calendar-base.component.d.ts +129 -129
  607. package/lib/components/po-calendar/po-calendar-header/po-calendar-header.component.d.ts +8 -8
  608. package/lib/components/po-calendar/po-calendar-mode.enum.d.ts +11 -11
  609. package/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.d.ts +77 -77
  610. package/lib/components/po-calendar/po-calendar.component.d.ts +53 -53
  611. package/lib/components/po-calendar/po-calendar.module.d.ts +6 -6
  612. package/lib/components/po-calendar/services/po-calendar.lang.service.d.ts +16 -16
  613. package/lib/components/po-calendar/services/po-calendar.service.d.ts +5 -5
  614. package/lib/components/po-chart/directives/po-resize-observer.directive.d.ts +12 -12
  615. package/lib/components/po-chart/enums/po-chart-type.enum.d.ts +49 -49
  616. package/lib/components/po-chart/helpers/po-chart-default-values.constant.d.ts +8 -8
  617. package/lib/components/po-chart/index.d.ts +7 -7
  618. package/lib/components/po-chart/interfaces/po-chart-axis-options.interface.d.ts +37 -37
  619. package/lib/components/po-chart/interfaces/po-chart-bar-coordinates.interface.d.ts +23 -23
  620. package/lib/components/po-chart/interfaces/po-chart-container-size.interface.d.ts +23 -23
  621. package/lib/components/po-chart/interfaces/po-chart-label-coordinates.interface.d.ts +19 -19
  622. package/lib/components/po-chart/interfaces/po-chart-min-max-values.interface.d.ts +19 -19
  623. package/lib/components/po-chart/interfaces/po-chart-options.interface.d.ts +20 -20
  624. package/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.d.ts +23 -23
  625. package/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.d.ts +26 -26
  626. package/lib/components/po-chart/interfaces/po-chart-serie.interface.d.ts +101 -101
  627. package/lib/components/po-chart/po-chart-base.component.d.ts +152 -152
  628. package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-label/po-chart-axis-label.component.d.ts +10 -10
  629. package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-path/po-chart-axis-path.component.d.ts +7 -7
  630. package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis.component.d.ts +60 -60
  631. package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-base.component.d.ts +31 -31
  632. package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-path/po-chart-bar-path.component.d.ts +13 -13
  633. package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar.component.d.ts +13 -13
  634. package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-column/po-chart-column.component.d.ts +13 -13
  635. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-label/po-chart-circular-label.component.d.ts +11 -11
  636. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-circular-path.component.d.ts +13 -13
  637. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-tooltip.directive.d.ts +20 -20
  638. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular.component.d.ts +42 -42
  639. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-donut/po-chart-donut.component.d.ts +16 -16
  640. package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-pie/po-chart-pie.component.d.ts +8 -8
  641. package/lib/components/po-chart/po-chart-container/po-chart-container.component.d.ts +43 -43
  642. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-area/po-chart-area.component.d.ts +20 -20
  643. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.d.ts +46 -46
  644. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.d.ts +13 -13
  645. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-path/po-chart-path.component.d.ts +19 -19
  646. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.d.ts +30 -30
  647. package/lib/components/po-chart/po-chart-legend/po-chart-legend.component.d.ts +7 -7
  648. package/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.constant.d.ts +7 -7
  649. package/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.d.ts +55 -55
  650. package/lib/components/po-chart/po-chart-types/po-chart-dynamic-type.component.d.ts +36 -36
  651. package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-series.interface.d.ts +39 -39
  652. package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-text-content/po-chart-gauge-text-content.component.d.ts +24 -24
  653. package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge.component.d.ts +20 -20
  654. package/lib/components/po-chart/po-chart.component.d.ts +67 -67
  655. package/lib/components/po-chart/po-chart.module.d.ts +7 -7
  656. package/lib/components/po-chart/services/po-chart-maths.service.d.ts +63 -63
  657. package/lib/components/po-chart/services/po-chart-svg-container.service.d.ts +21 -21
  658. package/lib/components/po-container/index.d.ts +2 -2
  659. package/lib/components/po-container/po-container-base.component.d.ts +59 -59
  660. package/lib/components/po-container/po-container.component.d.ts +24 -24
  661. package/lib/components/po-container/po-container.module.d.ts +7 -7
  662. package/lib/components/po-disclaimer/index.d.ts +3 -3
  663. package/lib/components/po-disclaimer/po-disclaimer-base.component.d.ts +56 -56
  664. package/lib/components/po-disclaimer/po-disclaimer.component.d.ts +16 -16
  665. package/lib/components/po-disclaimer/po-disclaimer.interface.d.ts +17 -17
  666. package/lib/components/po-disclaimer/po-disclaimer.module.d.ts +6 -6
  667. package/lib/components/po-disclaimer-group/index.d.ts +4 -4
  668. package/lib/components/po-disclaimer-group/po-disclaimer-group-base.component.d.ts +114 -114
  669. package/lib/components/po-disclaimer-group/po-disclaimer-group-remove-action.interface.d.ts +18 -18
  670. package/lib/components/po-disclaimer-group/po-disclaimer-group.component.d.ts +28 -28
  671. package/lib/components/po-disclaimer-group/po-disclaimer-group.interface.d.ts +78 -78
  672. package/lib/components/po-disclaimer-group/po-disclaimer-group.module.d.ts +7 -7
  673. package/lib/components/po-disclaimer-group/po-disclaimer-remove/po-disclaimer-remove.component.d.ts +16 -16
  674. package/lib/components/po-divider/index.d.ts +2 -2
  675. package/lib/components/po-divider/po-divider-base.component.d.ts +10 -10
  676. package/lib/components/po-divider/po-divider.component.d.ts +23 -23
  677. package/lib/components/po-divider/po-divider.module.d.ts +7 -7
  678. package/lib/components/po-dropdown/index.d.ts +3 -3
  679. package/lib/components/po-dropdown/po-dropdown-action.interface.d.ts +11 -11
  680. package/lib/components/po-dropdown/po-dropdown-base.component.d.ts +54 -54
  681. package/lib/components/po-dropdown/po-dropdown.component.d.ts +41 -41
  682. package/lib/components/po-dropdown/po-dropdown.module.d.ts +6 -6
  683. package/lib/components/po-dynamic/index.d.ts +10 -10
  684. package/lib/components/po-dynamic/po-dynamic-field-type.enum.d.ts +23 -23
  685. package/lib/components/po-dynamic/po-dynamic-field.interface.d.ts +130 -130
  686. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.d.ts +215 -215
  687. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +249 -251
  688. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-field-internal.interface.d.ts +14 -14
  689. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.d.ts +44 -44
  690. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.d.ts +36 -36
  691. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.interface.d.ts +20 -20
  692. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.service.d.ts +8 -8
  693. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-operation/po-dynamic-form-operation.d.ts +10 -10
  694. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-response.interface.d.ts +29 -29
  695. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.d.ts +13 -13
  696. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-validation.interface.d.ts +21 -21
  697. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.d.ts +20 -20
  698. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.service.d.ts +12 -12
  699. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.d.ts +83 -83
  700. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +134 -134
  701. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.d.ts +104 -104
  702. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.d.ts +36 -36
  703. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.d.ts +10 -10
  704. package/lib/components/po-dynamic/po-dynamic.module.d.ts +2 -2
  705. package/lib/components/po-dynamic/po-dynamic.util.d.ts +4 -4
  706. package/lib/components/po-field/index.d.ts +50 -50
  707. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +62 -62
  708. package/lib/components/po-field/po-checkbox/po-checkbox.component.d.ts +51 -51
  709. package/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option-view.interface.d.ts +14 -14
  710. package/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option.interface.d.ts +24 -24
  711. package/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.d.ts +184 -176
  712. package/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.d.ts +50 -50
  713. package/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.d.ts +7 -7
  714. package/lib/components/po-field/po-clean/po-clean-base.component.d.ts +30 -30
  715. package/lib/components/po-field/po-clean/po-clean.component.d.ts +17 -17
  716. package/lib/components/po-field/po-clean/po-clean.module.d.ts +7 -7
  717. package/lib/components/po-field/po-combo/interfaces/po-combo-filter.interface.d.ts +27 -27
  718. package/lib/components/po-field/po-combo/interfaces/po-combo-group.interface.d.ts +11 -11
  719. package/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.d.ts +11 -11
  720. package/lib/components/po-field/po-combo/interfaces/po-combo-option-group.interface.d.ts +14 -14
  721. package/lib/components/po-field/po-combo/interfaces/po-combo-option.interface.d.ts +21 -21
  722. package/lib/components/po-field/po-combo/interfaces/po-response.interface.d.ts +11 -11
  723. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +409 -401
  724. package/lib/components/po-field/po-combo/po-combo-filter-mode.enum.d.ts +15 -15
  725. package/lib/components/po-field/po-combo/po-combo-filter.service.d.ts +28 -28
  726. package/lib/components/po-field/po-combo/po-combo-option-template/po-combo-option-template.directive.d.ts +70 -70
  727. package/lib/components/po-field/po-combo/po-combo.component.d.ts +139 -139
  728. package/lib/components/po-field/po-datepicker/enums/po-datepicker-iso-format.enum.d.ts +15 -15
  729. package/lib/components/po-field/po-datepicker/po-datepicker-base.component.d.ts +223 -223
  730. package/lib/components/po-field/po-datepicker/po-datepicker.component.d.ts +101 -101
  731. package/lib/components/po-field/po-datepicker/po-datepicker.module.d.ts +7 -7
  732. package/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.d.ts +17 -17
  733. package/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range.interface.d.ts +16 -16
  734. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +269 -269
  735. package/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.d.ts +125 -124
  736. package/lib/components/po-field/po-datepicker-range/po-datepicker-range.literals.d.ts +7 -7
  737. package/lib/components/po-field/po-decimal/po-decimal.component.d.ts +180 -180
  738. package/lib/components/po-field/po-email/po-email.component.d.ts +42 -42
  739. package/lib/components/po-field/po-field-container/po-field-container-bottom/po-field-container-bottom.component.d.ts +15 -15
  740. package/lib/components/po-field/po-field-container/po-field-container-literals.d.ts +14 -14
  741. package/lib/components/po-field/po-field-container/po-field-container.component.d.ts +18 -18
  742. package/lib/components/po-field/po-field-container/po-field-container.module.d.ts +7 -7
  743. package/lib/components/po-field/po-field-validate.model.d.ts +38 -38
  744. package/lib/components/po-field/po-field.model.d.ts +51 -51
  745. package/lib/components/po-field/po-field.module.d.ts +12 -12
  746. package/lib/components/po-field/po-input/po-input-base.component.d.ts +265 -265
  747. package/lib/components/po-field/po-input/po-input.component.d.ts +29 -29
  748. package/lib/components/po-field/po-input/po-mask.d.ts +49 -49
  749. package/lib/components/po-field/po-input-generic/po-input-generic.d.ts +35 -35
  750. package/lib/components/po-field/po-login/po-login.component.d.ts +34 -34
  751. package/lib/components/po-field/po-lookup/interfaces/po-lookup-advanced-filter.interface.d.ts +8 -8
  752. package/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.d.ts +44 -44
  753. package/lib/components/po-field/po-lookup/interfaces/po-lookup-filter.interface.d.ts +29 -29
  754. package/lib/components/po-field/po-lookup/interfaces/po-lookup-filtered-items-params.interface.d.ts +40 -40
  755. package/lib/components/po-field/po-lookup/interfaces/po-lookup-literals.interface.d.ts +40 -40
  756. package/lib/components/po-field/po-lookup/interfaces/po-lookup-response-api.interface.d.ts +8 -8
  757. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +387 -387
  758. package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.d.ts +119 -119
  759. package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.d.ts +41 -41
  760. package/lib/components/po-field/po-lookup/po-lookup.component.d.ts +113 -113
  761. package/lib/components/po-field/po-lookup/services/po-lookup-filter.service.d.ts +25 -25
  762. package/lib/components/po-field/po-lookup/services/po-lookup-modal.service.d.ts +44 -44
  763. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +345 -345
  764. package/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.d.ts +57 -57
  765. package/lib/components/po-field/po-multiselect/po-multiselect-filter-mode.enum.d.ts +15 -15
  766. package/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.d.ts +28 -28
  767. package/lib/components/po-field/po-multiselect/po-multiselect-filter.service.d.ts +18 -18
  768. package/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.d.ts +17 -17
  769. package/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.d.ts +15 -15
  770. package/lib/components/po-field/po-multiselect/po-multiselect-option.interface.d.ts +13 -13
  771. package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +34 -34
  772. package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +107 -107
  773. package/lib/components/po-field/po-number/po-number-base.component.d.ts +18 -18
  774. package/lib/components/po-field/po-number/po-number.component.d.ts +59 -59
  775. package/lib/components/po-field/po-password/po-password.component.d.ts +48 -48
  776. package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +119 -119
  777. package/lib/components/po-field/po-radio-group/po-radio-group-option.interface.d.ts +15 -15
  778. package/lib/components/po-field/po-radio-group/po-radio-group.component.d.ts +64 -64
  779. package/lib/components/po-field/po-rich-text/interfaces/po-rich-text-toolbar-button-group-item.interface.d.ts +4 -4
  780. package/lib/components/po-field/po-rich-text/po-rich-text-base.component.d.ts +144 -144
  781. package/lib/components/po-field/po-rich-text/po-rich-text-body/po-rich-text-body.component.d.ts +52 -52
  782. package/lib/components/po-field/po-rich-text/po-rich-text-image-modal/po-rich-text-image-modal.component.d.ts +34 -34
  783. package/lib/components/po-field/po-rich-text/po-rich-text-link-modal/po-rich-text-link-modal.component.d.ts +45 -45
  784. package/lib/components/po-field/po-rich-text/po-rich-text-literals.d.ts +82 -82
  785. package/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.d.ts +45 -45
  786. package/lib/components/po-field/po-rich-text/po-rich-text.component.d.ts +60 -60
  787. package/lib/components/po-field/po-rich-text/po-rich-text.service.d.ts +5 -5
  788. package/lib/components/po-field/po-select/po-select-option-template/po-select-option-template.directive.d.ts +48 -48
  789. package/lib/components/po-field/po-select/po-select-option.interface.d.ts +13 -13
  790. package/lib/components/po-field/po-select/po-select.component.d.ts +158 -151
  791. package/lib/components/po-field/po-switch/po-switch-label-position.enum.d.ts +13 -13
  792. package/lib/components/po-field/po-switch/po-switch.component.d.ts +102 -102
  793. package/lib/components/po-field/po-textarea/po-textarea-base.component.d.ts +178 -178
  794. package/lib/components/po-field/po-textarea/po-textarea.component.d.ts +59 -59
  795. package/lib/components/po-field/po-upload/interfaces/po-upload-file-restriction.interface.d.ts +37 -37
  796. package/lib/components/po-field/po-upload/interfaces/po-upload-literals.interface.d.ts +45 -45
  797. package/lib/components/po-field/po-upload/po-upload-base.component.d.ts +333 -325
  798. package/lib/components/po-field/po-upload/po-upload-base.service.d.ts +32 -32
  799. package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area/po-upload-drag-drop-area.component.d.ts +14 -14
  800. package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area-overlay/po-upload-drag-drop-area-overlay.component.d.ts +14 -14
  801. package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.component.d.ts +24 -24
  802. package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.directive.d.ts +32 -32
  803. package/lib/components/po-field/po-upload/po-upload-file-restrictions/po-upload-file-restrictions.component.d.ts +21 -21
  804. package/lib/components/po-field/po-upload/po-upload-file.d.ts +15 -15
  805. package/lib/components/po-field/po-upload/po-upload-status.enum.d.ts +6 -6
  806. package/lib/components/po-field/po-upload/po-upload.component.d.ts +106 -106
  807. package/lib/components/po-field/po-upload/po-upload.service.d.ts +3 -3
  808. package/lib/components/po-field/po-url/po-url.component.d.ts +41 -41
  809. package/lib/components/po-field/validators.d.ts +7 -7
  810. package/lib/components/po-gauge/index.d.ts +3 -3
  811. package/lib/components/po-gauge/interfaces/po-gauge-coordinates.interface.d.ts +19 -19
  812. package/lib/components/po-gauge/interfaces/po-gauge-ranges.interface.d.ts +44 -44
  813. package/lib/components/po-gauge/interfaces/po-gauge-svg-container.interface.d.ts +15 -15
  814. package/lib/components/po-gauge/po-gauge-base.component.d.ts +98 -98
  815. package/lib/components/po-gauge/po-gauge-default-values.constant.d.ts +5 -5
  816. package/lib/components/po-gauge/po-gauge-description/po-gauge-description.component.d.ts +11 -11
  817. package/lib/components/po-gauge/po-gauge-legend/po-gauge-legend.component.d.ts +9 -9
  818. package/lib/components/po-gauge/po-gauge-svg/po-gauge-path/po-gauge-path.component.d.ts +9 -9
  819. package/lib/components/po-gauge/po-gauge-svg/po-gauge-pointer/po-gauge-pointer.component.d.ts +15 -15
  820. package/lib/components/po-gauge/po-gauge-svg/po-gauge-svg.component.d.ts +32 -32
  821. package/lib/components/po-gauge/po-gauge-title/po-gauge-title.component.d.ts +3 -3
  822. package/lib/components/po-gauge/po-gauge.component.d.ts +37 -37
  823. package/lib/components/po-gauge/po-gauge.module.d.ts +6 -6
  824. package/lib/components/po-grid/index.d.ts +3 -3
  825. package/lib/components/po-grid/po-grid-cell/po-grid-cell.component.d.ts +27 -27
  826. package/lib/components/po-grid/po-grid-cell-action/po-grid-cell-action.component.d.ts +6 -6
  827. package/lib/components/po-grid/po-grid-head/po-grid-head.component.d.ts +10 -10
  828. package/lib/components/po-grid/po-grid-row-actions.interface.d.ts +86 -86
  829. package/lib/components/po-grid/po-grid.component.d.ts +80 -80
  830. package/lib/components/po-grid/po-grid.module.d.ts +7 -7
  831. package/lib/components/po-icon/index.d.ts +2 -2
  832. package/lib/components/po-icon/po-icon.component.d.ts +39 -39
  833. package/lib/components/po-icon/po-icon.module.d.ts +7 -7
  834. package/lib/components/po-info/index.d.ts +3 -3
  835. package/lib/components/po-info/po-info-base.component.d.ts +46 -46
  836. package/lib/components/po-info/po-info-orietation.enum.d.ts +13 -13
  837. package/lib/components/po-info/po-info.component.d.ts +24 -24
  838. package/lib/components/po-info/po-info.module.d.ts +7 -7
  839. package/lib/components/po-list-view/index.d.ts +6 -6
  840. package/lib/components/po-list-view/interfaces/po-list-view-action.interface.d.ts +15 -15
  841. package/lib/components/po-list-view/interfaces/po-list-view-literals.interface.d.ts +19 -19
  842. package/lib/components/po-list-view/po-list-view-base.component.d.ts +165 -165
  843. package/lib/components/po-list-view/po-list-view-content-template/po-list-view-content-template.directive.d.ts +97 -97
  844. package/lib/components/po-list-view/po-list-view-detail-template/po-list-view-detail-template.directive.d.ts +60 -60
  845. package/lib/components/po-list-view/po-list-view.component.d.ts +53 -53
  846. package/lib/components/po-list-view/po-list-view.module.d.ts +33 -33
  847. package/lib/components/po-loading/index.d.ts +4 -4
  848. package/lib/components/po-loading/po-loading-base.component.d.ts +14 -14
  849. package/lib/components/po-loading/po-loading-icon/po-loading-icon.component.d.ts +22 -22
  850. package/lib/components/po-loading/po-loading-overlay/interfaces/po-loading-overlay-literals.interface.d.ts +13 -13
  851. package/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.d.ts +59 -59
  852. package/lib/components/po-loading/po-loading-overlay/po-loading-overlay.component.d.ts +28 -28
  853. package/lib/components/po-loading/po-loading.component.d.ts +8 -8
  854. package/lib/components/po-loading/po-loading.module.d.ts +8 -8
  855. package/lib/components/po-menu/index.d.ts +8 -8
  856. package/lib/components/po-menu/po-menu-base.component.d.ts +182 -182
  857. package/lib/components/po-menu/po-menu-filter/po-menu-filter-literals.interface.d.ts +14 -14
  858. package/lib/components/po-menu/po-menu-filter/po-menu-filter.component.d.ts +25 -25
  859. package/lib/components/po-menu/po-menu-filter/po-menu-filter.interface.d.ts +19 -19
  860. package/lib/components/po-menu/po-menu-header-template/po-menu-header-template.directive.d.ts +40 -40
  861. package/lib/components/po-menu/po-menu-item/po-menu-item-badge.interface.d.ts +49 -49
  862. package/lib/components/po-menu/po-menu-item/po-menu-item-filtered.interface.d.ts +13 -13
  863. package/lib/components/po-menu/po-menu-item/po-menu-item.component.d.ts +54 -54
  864. package/lib/components/po-menu/po-menu-item.interface.d.ts +78 -78
  865. package/lib/components/po-menu/po-menu.component.d.ts +178 -178
  866. package/lib/components/po-menu/po-menu.module.d.ts +7 -7
  867. package/lib/components/po-menu/services/po-menu-global.service.d.ts +14 -14
  868. package/lib/components/po-menu/services/po-menu-items.service.d.ts +16 -16
  869. package/lib/components/po-menu/services/po-menu.service.d.ts +20 -20
  870. package/lib/components/po-menu-panel/index.d.ts +3 -3
  871. package/lib/components/po-menu-panel/po-menu-panel-base.component.d.ts +33 -33
  872. package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item-internal.interface.d.ts +16 -16
  873. package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.component.d.ts +23 -23
  874. package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.d.ts +18 -18
  875. package/lib/components/po-menu-panel/po-menu-panel.component.d.ts +91 -91
  876. package/lib/components/po-menu-panel/po-menu-panel.module.d.ts +7 -7
  877. package/lib/components/po-menu-panel/services/po-menu-panel-items.service.d.ts +16 -16
  878. package/lib/components/po-modal/index.d.ts +4 -4
  879. package/lib/components/po-modal/po-modal-action.interface.d.ts +23 -23
  880. package/lib/components/po-modal/po-modal-base.component.d.ts +79 -79
  881. package/lib/components/po-modal/po-modal-footer/po-modal-footer.component.d.ts +30 -30
  882. package/lib/components/po-modal/po-modal.component.d.ts +46 -46
  883. package/lib/components/po-modal/po-modal.literals.d.ts +14 -14
  884. package/lib/components/po-modal/po-modal.module.d.ts +6 -6
  885. package/lib/components/po-navbar/index.d.ts +4 -4
  886. package/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.d.ts +55 -55
  887. package/lib/components/po-navbar/interfaces/po-navbar-item.interface.d.ts +21 -21
  888. package/lib/components/po-navbar/interfaces/po-navbar-literals.interface.d.ts +11 -11
  889. package/lib/components/po-navbar/po-navbar-actions/po-navbar-action/po-navbar-action.component.d.ts +13 -13
  890. package/lib/components/po-navbar/po-navbar-actions/po-navbar-action-popup/po-navbar-action-popup.component.d.ts +5 -5
  891. package/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.component.d.ts +6 -6
  892. package/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.module.d.ts +2 -2
  893. package/lib/components/po-navbar/po-navbar-base.component.d.ts +129 -129
  894. package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation-icon/po-navbar-item-navigation-icon.component.d.ts +6 -6
  895. package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.component.d.ts +6 -6
  896. package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.module.d.ts +2 -2
  897. package/lib/components/po-navbar/po-navbar-items/po-navbar-item/po-navbar-item.component.d.ts +11 -11
  898. package/lib/components/po-navbar/po-navbar-items/po-navbar-items.component.d.ts +17 -17
  899. package/lib/components/po-navbar/po-navbar-items/po-navbar-items.module.d.ts +2 -2
  900. package/lib/components/po-navbar/po-navbar-logo/po-navbar-logo.component.d.ts +3 -3
  901. package/lib/components/po-navbar/po-navbar.component.d.ts +57 -57
  902. package/lib/components/po-navbar/po-navbar.module.d.ts +33 -33
  903. package/lib/components/po-page/index.d.ts +14 -14
  904. package/lib/components/po-page/po-page-action.interface.d.ts +16 -16
  905. package/lib/components/po-page/po-page-base.component.d.ts +22 -22
  906. package/lib/components/po-page/po-page-content/po-page-content-base.component.d.ts +10 -10
  907. package/lib/components/po-page/po-page-content/po-page-content.component.d.ts +20 -20
  908. package/lib/components/po-page/po-page-default/po-page-default-base.component.d.ts +75 -75
  909. package/lib/components/po-page/po-page-default/po-page-default-literals.interface.d.ts +11 -11
  910. package/lib/components/po-page/po-page-default/po-page-default.component.d.ts +45 -45
  911. package/lib/components/po-page/po-page-default/po-page-default.interface.d.ts +13 -13
  912. package/lib/components/po-page/po-page-detail/po-page-detail-base.component.d.ts +100 -100
  913. package/lib/components/po-page/po-page-detail/po-page-detail-literals.interface.d.ts +15 -15
  914. package/lib/components/po-page/po-page-detail/po-page-detail.component.d.ts +28 -28
  915. package/lib/components/po-page/po-page-edit/po-page-edit-base.component.d.ts +106 -106
  916. package/lib/components/po-page/po-page-edit/po-page-edit-literals.interface.d.ts +15 -15
  917. package/lib/components/po-page/po-page-edit/po-page-edit.component.d.ts +29 -29
  918. package/lib/components/po-page/po-page-filter.interface.d.ts +26 -26
  919. package/lib/components/po-page/po-page-header/po-page-header-base.component.d.ts +17 -17
  920. package/lib/components/po-page/po-page-header/po-page-header.component.d.ts +7 -7
  921. package/lib/components/po-page/po-page-list/po-page-list-base.component.d.ts +108 -108
  922. package/lib/components/po-page/po-page-list/po-page-list-literals.interface.d.ts +11 -11
  923. package/lib/components/po-page/po-page-list/po-page-list.component.d.ts +71 -71
  924. package/lib/components/po-page/po-page-slide/po-page-slide-base.component.d.ts +111 -111
  925. package/lib/components/po-page/po-page-slide/po-page-slide.component.d.ts +42 -42
  926. package/lib/components/po-page/po-page.component.d.ts +8 -8
  927. package/lib/components/po-page/po-page.interface.d.ts +14 -14
  928. package/lib/components/po-page/po-page.module.d.ts +7 -7
  929. package/lib/components/po-popover/index.d.ts +2 -2
  930. package/lib/components/po-popover/po-popover-base.component.d.ts +131 -131
  931. package/lib/components/po-popover/po-popover.component.d.ts +47 -47
  932. package/lib/components/po-popover/po-popover.module.d.ts +6 -6
  933. package/lib/components/po-popup/index.d.ts +3 -3
  934. package/lib/components/po-popup/po-popup-action.interface.d.ts +91 -91
  935. package/lib/components/po-popup/po-popup-base.component.d.ts +151 -151
  936. package/lib/components/po-popup/po-popup.component.d.ts +69 -69
  937. package/lib/components/po-popup/po-popup.module.d.ts +7 -7
  938. package/lib/components/po-progress/enums/po-progress-status.enum.d.ts +15 -15
  939. package/lib/components/po-progress/index.d.ts +3 -3
  940. package/lib/components/po-progress/po-progress-bar/po-progress-bar.component.d.ts +5 -5
  941. package/lib/components/po-progress/po-progress-base.component.d.ts +103 -103
  942. package/lib/components/po-progress/po-progress.component.d.ts +28 -28
  943. package/lib/components/po-progress/po-progress.module.d.ts +7 -7
  944. package/lib/components/po-slide/directives/po-slide-content-template.directive.d.ts +48 -48
  945. package/lib/components/po-slide/index.d.ts +4 -4
  946. package/lib/components/po-slide/interfaces/po-slide-item.interface.d.ts +17 -17
  947. package/lib/components/po-slide/po-slide-base.component.d.ts +75 -75
  948. package/lib/components/po-slide/po-slide-circles/po-slide-circles.component.d.ts +16 -16
  949. package/lib/components/po-slide/po-slide-control/po-slide-control.component.d.ts +14 -14
  950. package/lib/components/po-slide/po-slide-item/po-slide-item.component.d.ts +28 -28
  951. package/lib/components/po-slide/po-slide.component.d.ts +110 -110
  952. package/lib/components/po-slide/po-slide.module.d.ts +33 -33
  953. package/lib/components/po-stepper/enums/po-stepper-orientation.enum.d.ts +16 -16
  954. package/lib/components/po-stepper/enums/po-stepper-status.enum.d.ts +21 -21
  955. package/lib/components/po-stepper/index.d.ts +6 -6
  956. package/lib/components/po-stepper/po-step/po-step.component.d.ts +76 -76
  957. package/lib/components/po-stepper/po-stepper-base.component.d.ts +132 -132
  958. package/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.d.ts +20 -20
  959. package/lib/components/po-stepper/po-stepper-item.interface.d.ts +14 -14
  960. package/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.d.ts +10 -10
  961. package/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.d.ts +37 -37
  962. package/lib/components/po-stepper/po-stepper.component.d.ts +80 -80
  963. package/lib/components/po-stepper/po-stepper.module.d.ts +6 -6
  964. package/lib/components/po-table/enums/po-table-column-sort-type.enum.d.ts +12 -12
  965. package/lib/components/po-table/enums/po-table-row-template-arrow-direction.enum.d.ts +12 -12
  966. package/lib/components/po-table/index.d.ts +17 -17
  967. package/lib/components/po-table/interfaces/po-table-action.interface.d.ts +8 -8
  968. package/lib/components/po-table/interfaces/po-table-boolean.interface.d.ts +13 -13
  969. package/lib/components/po-table/interfaces/po-table-column-sort.interface.d.ts +15 -15
  970. package/lib/components/po-table/interfaces/po-table-column.interface.d.ts +242 -242
  971. package/lib/components/po-table/interfaces/po-table-filter.interface.d.ts +16 -16
  972. package/lib/components/po-table/interfaces/po-table-filtered-items-params.interface.d.ts +33 -33
  973. package/lib/components/po-table/interfaces/po-table-literals.interface.d.ts +25 -25
  974. package/lib/components/po-table/interfaces/po-table-response-api.interface.d.ts +7 -7
  975. package/lib/components/po-table/po-table-base.component.d.ts +501 -501
  976. package/lib/components/po-table/po-table-cell-template/po-table-cell-template.directive.d.ts +71 -71
  977. package/lib/components/po-table/po-table-column-icon/po-table-column-icon.component.d.ts +26 -26
  978. package/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.d.ts +80 -80
  979. package/lib/components/po-table/po-table-column-label/po-table-column-label.component.d.ts +17 -17
  980. package/lib/components/po-table/po-table-column-label/po-table-column-label.interface.d.ts +42 -42
  981. package/lib/components/po-table/po-table-column-link/po-table-column-link.component.d.ts +15 -15
  982. package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +74 -74
  983. package/lib/components/po-table/po-table-column-template/po-table-column-template.directive.d.ts +86 -86
  984. package/lib/components/po-table/po-table-detail/po-table-detail-column.interface.d.ts +61 -61
  985. package/lib/components/po-table/po-table-detail/po-table-detail.component.d.ts +44 -44
  986. package/lib/components/po-table/po-table-detail/po-table-detail.interface.d.ts +36 -36
  987. package/lib/components/po-table/po-table-icon/po-table-icon.component.d.ts +27 -27
  988. package/lib/components/po-table/po-table-row-template/po-table-row-template.directive.d.ts +120 -120
  989. package/lib/components/po-table/po-table-show-subtitle/po-table-show-subtitle.component.d.ts +14 -14
  990. package/lib/components/po-table/po-table-subtitle-circle/po-table-subtitle-circle.component.d.ts +19 -19
  991. package/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-column.interface.d.ts +39 -39
  992. package/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-footer.component.d.ts +31 -31
  993. package/lib/components/po-table/po-table.component.d.ts +229 -229
  994. package/lib/components/po-table/po-table.module.d.ts +6 -6
  995. package/lib/components/po-table/services/po-table.service.d.ts +14 -14
  996. package/lib/components/po-tabs/index.d.ts +4 -4
  997. package/lib/components/po-tabs/po-tab/po-tab-base.component.d.ts +57 -57
  998. package/lib/components/po-tabs/po-tab/po-tab.component.d.ts +11 -11
  999. package/lib/components/po-tabs/po-tab/po-tab.interface.d.ts +45 -45
  1000. package/lib/components/po-tabs/po-tab-button/po-tab-button.component.d.ts +29 -29
  1001. package/lib/components/po-tabs/po-tab-dropdown/po-tab-dropdown.component.d.ts +23 -23
  1002. package/lib/components/po-tabs/po-tabs-base.component.d.ts +34 -34
  1003. package/lib/components/po-tabs/po-tabs.component.d.ts +50 -50
  1004. package/lib/components/po-tabs/po-tabs.module.d.ts +6 -6
  1005. package/lib/components/po-tag/enums/po-tag-icon.enum.d.ts +17 -17
  1006. package/lib/components/po-tag/enums/po-tag-orientation.enum.d.ts +13 -13
  1007. package/lib/components/po-tag/enums/po-tag-type.enum.d.ts +17 -17
  1008. package/lib/components/po-tag/index.d.ts +4 -4
  1009. package/lib/components/po-tag/interfaces/po-tag-item.interface.d.ts +13 -13
  1010. package/lib/components/po-tag/po-tag-base.component.d.ts +144 -144
  1011. package/lib/components/po-tag/po-tag.component.d.ts +32 -32
  1012. package/lib/components/po-tag/po-tag.module.d.ts +7 -7
  1013. package/lib/components/po-toolbar/index.d.ts +4 -4
  1014. package/lib/components/po-toolbar/po-toolbar-action.interface.d.ts +8 -8
  1015. package/lib/components/po-toolbar/po-toolbar-actions/po-toolbar-actions.component.d.ts +19 -19
  1016. package/lib/components/po-toolbar/po-toolbar-base.component.d.ts +75 -75
  1017. package/lib/components/po-toolbar/po-toolbar-notification/po-toolbar-notification.component.d.ts +22 -22
  1018. package/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.component.d.ts +18 -18
  1019. package/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.interface.d.ts +15 -15
  1020. package/lib/components/po-toolbar/po-toolbar.component.d.ts +29 -29
  1021. package/lib/components/po-toolbar/po-toolbar.module.d.ts +8 -8
  1022. package/lib/components/po-tree-view/index.d.ts +3 -3
  1023. package/lib/components/po-tree-view/po-tree-view-base.component.d.ts +86 -86
  1024. package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.d.ts +12 -12
  1025. package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.d.ts +24 -24
  1026. package/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.d.ts +10 -10
  1027. package/lib/components/po-tree-view/po-tree-view.component.d.ts +35 -35
  1028. package/lib/components/po-tree-view/po-tree-view.module.d.ts +33 -33
  1029. package/lib/components/po-tree-view/services/po-tree-view.service.d.ts +9 -9
  1030. package/lib/components/po-widget/index.d.ts +2 -2
  1031. package/lib/components/po-widget/po-widget-base.component.d.ts +162 -162
  1032. package/lib/components/po-widget/po-widget.component.d.ts +41 -41
  1033. package/lib/components/po-widget/po-widget.module.d.ts +7 -7
  1034. package/lib/decorators/index.d.ts +2 -2
  1035. package/lib/decorators/input-boolean/input-boolean.decorator.d.ts +10 -10
  1036. package/lib/decorators/input-required/input-required.decorator.d.ts +22 -22
  1037. package/lib/decorators/property-decorator.interface.d.ts +13 -13
  1038. package/lib/decorators/utils-decorators.d.ts +27 -27
  1039. package/lib/directives/directives.module.d.ts +2 -2
  1040. package/lib/directives/index.d.ts +2 -2
  1041. package/lib/directives/po-tooltip/index.d.ts +2 -2
  1042. package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +67 -67
  1043. package/lib/directives/po-tooltip/po-tooltip-control-position.service.d.ts +3 -3
  1044. package/lib/directives/po-tooltip/po-tooltip.directive.d.ts +52 -52
  1045. package/lib/directives/po-tooltip/po-tooltip.module.d.ts +7 -7
  1046. package/lib/enums/po-color-palette.enum.d.ts +33 -33
  1047. package/lib/enums/po-key-code.enum.d.ts +29 -29
  1048. package/lib/guards/guards.module.d.ts +2 -2
  1049. package/lib/guards/index.d.ts +1 -1
  1050. package/lib/index.d.ts +9 -9
  1051. package/lib/interceptors/index.d.ts +3 -3
  1052. package/lib/interceptors/interceptors.module.d.ts +2 -2
  1053. package/lib/interceptors/po-http-interceptor/index.d.ts +2 -2
  1054. package/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.d.ts +154 -154
  1055. package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail-literals.interface.d.ts +6 -6
  1056. package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.component.d.ts +39 -39
  1057. package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.d.ts +23 -23
  1058. package/lib/interceptors/po-http-interceptor/po-http-interceptor-literals.d.ts +6 -6
  1059. package/lib/interceptors/po-http-interceptor/po-http-interceptor.module.d.ts +2 -2
  1060. package/lib/interceptors/po-http-interceptor/po-http-interceptor.service.d.ts +16 -16
  1061. package/lib/interceptors/po-http-request/index.d.ts +2 -2
  1062. package/lib/interceptors/po-http-request/po-http-request-control-service.d.ts +12 -12
  1063. package/lib/interceptors/po-http-request/po-http-request-interceptor.service.d.ts +102 -102
  1064. package/lib/interceptors/po-http-request/po-http-request.module.d.ts +2 -2
  1065. package/lib/interfaces/index.d.ts +1 -1
  1066. package/lib/interfaces/po-http/po-response-api.interface.d.ts +13 -13
  1067. package/lib/pipes/index.d.ts +2 -2
  1068. package/lib/pipes/pipes.module.d.ts +2 -2
  1069. package/lib/pipes/po-time/index.d.ts +2 -2
  1070. package/lib/pipes/po-time/po-time.module.d.ts +7 -7
  1071. package/lib/pipes/po-time/po-time.pipe.d.ts +14 -14
  1072. package/lib/po.module.d.ts +2 -2
  1073. package/lib/services/index.d.ts +10 -10
  1074. package/lib/services/po-active-overlay/index.d.ts +2 -2
  1075. package/lib/services/po-active-overlay/po-active-overlay.module.d.ts +7 -7
  1076. package/lib/services/po-active-overlay/po-active-overlay.service.d.ts +3 -3
  1077. package/lib/services/po-color/po-color.service.d.ts +16 -16
  1078. package/lib/services/po-color/po-colors.constant.d.ts +2 -2
  1079. package/lib/services/po-color-palette/index.d.ts +2 -2
  1080. package/lib/services/po-color-palette/po-color-palette.module.d.ts +7 -7
  1081. package/lib/services/po-color-palette/po-color-palette.service.d.ts +7 -7
  1082. package/lib/services/po-component-injector/index.d.ts +2 -2
  1083. package/lib/services/po-component-injector/po-component-injector.module.d.ts +2 -2
  1084. package/lib/services/po-component-injector/po-component-injector.service.d.ts +9 -9
  1085. package/lib/services/po-control-position/index.d.ts +2 -2
  1086. package/lib/services/po-control-position/po-control-position.constants.d.ts +1 -1
  1087. package/lib/services/po-control-position/po-control-position.module.d.ts +7 -7
  1088. package/lib/services/po-control-position/po-control-position.service.d.ts +56 -56
  1089. package/lib/services/po-date/index.d.ts +2 -2
  1090. package/lib/services/po-date/po-date.module.d.ts +7 -7
  1091. package/lib/services/po-date/po-date.service.d.ts +94 -94
  1092. package/lib/services/po-dialog/index.d.ts +7 -7
  1093. package/lib/services/po-dialog/interfaces/po-dialog-alert-literals.interface.d.ts +11 -11
  1094. package/lib/services/po-dialog/interfaces/po-dialog-confirm-literals.interface.d.ts +13 -13
  1095. package/lib/services/po-dialog/interfaces/po-dialog.interface.d.ts +82 -82
  1096. package/lib/services/po-dialog/po-dialog-base.service.d.ts +15 -15
  1097. package/lib/services/po-dialog/po-dialog.component.d.ts +48 -48
  1098. package/lib/services/po-dialog/po-dialog.enum.d.ts +12 -12
  1099. package/lib/services/po-dialog/po-dialog.module.d.ts +2 -2
  1100. package/lib/services/po-dialog/po-dialog.service.d.ts +29 -29
  1101. package/lib/services/po-i18n/index.d.ts +7 -7
  1102. package/lib/services/po-i18n/interfaces/po-i18n-config-default.interface.d.ts +35 -35
  1103. package/lib/services/po-i18n/interfaces/po-i18n-config.interface.d.ts +78 -78
  1104. package/lib/services/po-i18n/interfaces/po-i18n-literals.interface.d.ts +15 -15
  1105. package/lib/services/po-i18n/po-i18n-base.pipe.d.ts +29 -29
  1106. package/lib/services/po-i18n/po-i18n-base.service.d.ts +212 -212
  1107. package/lib/services/po-i18n/po-i18n-config-injection-token.d.ts +3 -3
  1108. package/lib/services/po-i18n/po-i18n.module.d.ts +150 -150
  1109. package/lib/services/po-i18n/po-i18n.pipe.d.ts +15 -15
  1110. package/lib/services/po-i18n/po-i18n.service.d.ts +10 -10
  1111. package/lib/services/po-language/index.d.ts +4 -4
  1112. package/lib/services/po-language/po-language.constant.d.ts +58 -58
  1113. package/lib/services/po-language/po-language.interface.d.ts +43 -43
  1114. package/lib/services/po-language/po-language.module.d.ts +7 -7
  1115. package/lib/services/po-language/po-language.service.d.ts +95 -95
  1116. package/lib/services/po-notification/index.d.ts +5 -5
  1117. package/lib/services/po-notification/po-notification-base.service.d.ts +84 -84
  1118. package/lib/services/po-notification/po-notification.interface.d.ts +33 -33
  1119. package/lib/services/po-notification/po-notification.module.d.ts +2 -2
  1120. package/lib/services/po-notification/po-notification.service.d.ts +31 -31
  1121. package/lib/services/po-notification/po-toaster/po-toaster-base.component.d.ts +41 -41
  1122. package/lib/services/po-notification/po-toaster/po-toaster-orientation.enum.d.ts +11 -11
  1123. package/lib/services/po-notification/po-toaster/po-toaster-type.enum.d.ts +15 -15
  1124. package/lib/services/po-notification/po-toaster/po-toaster.component.d.ts +33 -33
  1125. package/lib/services/po-notification/po-toaster/po-toaster.interface.d.ts +15 -15
  1126. package/lib/services/services.module.d.ts +2 -2
  1127. package/lib/utils/util.d.ts +217 -217
  1128. package/package.json +5 -5
  1129. package/po-ui-ng-components-5.22.3.tgz +0 -0
  1130. package/po-ui-ng-components.d.ts +205 -205
  1131. package/po-ui-ng-components.metadata.json +1 -1
  1132. package/public-api.d.ts +1 -1
  1133. package/schematics/README.md +74 -74
  1134. package/schematics/collection.json +40 -40
  1135. package/schematics/migrations.json +25 -25
  1136. package/schematics/ng-add/index.d.ts +8 -8
  1137. package/schematics/ng-add/index.js +25 -25
  1138. package/schematics/ng-add/index.spec.d.ts +1 -1
  1139. package/schematics/ng-add/index.spec.js +91 -91
  1140. package/schematics/ng-add/schema.json +16 -16
  1141. package/schematics/ng-add/setup-project.d.ts +8 -8
  1142. package/schematics/ng-add/setup-project.js +55 -55
  1143. package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  1144. package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
  1145. package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  1146. package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +18 -18
  1147. package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  1148. package/schematics/ng-generate/po-page-default/index.d.ts +4 -4
  1149. package/schematics/ng-generate/po-page-default/index.js +12 -12
  1150. package/schematics/ng-generate/po-page-default/index.spec.d.ts +1 -1
  1151. package/schematics/ng-generate/po-page-default/index.spec.js +120 -120
  1152. package/schematics/ng-generate/po-page-default/schema.d.ts +3 -3
  1153. package/schematics/ng-generate/po-page-default/schema.js +2 -2
  1154. package/schematics/ng-generate/po-page-default/schema.json +67 -67
  1155. package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  1156. package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +8 -8
  1157. package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  1158. package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +26 -26
  1159. package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  1160. package/schematics/ng-generate/po-page-detail/index.d.ts +4 -4
  1161. package/schematics/ng-generate/po-page-detail/index.js +12 -12
  1162. package/schematics/ng-generate/po-page-detail/index.spec.d.ts +1 -1
  1163. package/schematics/ng-generate/po-page-detail/index.spec.js +120 -120
  1164. package/schematics/ng-generate/po-page-detail/schema.d.ts +3 -3
  1165. package/schematics/ng-generate/po-page-detail/schema.js +2 -2
  1166. package/schematics/ng-generate/po-page-detail/schema.json +67 -67
  1167. package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  1168. package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +8 -8
  1169. package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  1170. package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +26 -26
  1171. package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  1172. package/schematics/ng-generate/po-page-edit/index.d.ts +4 -4
  1173. package/schematics/ng-generate/po-page-edit/index.js +12 -12
  1174. package/schematics/ng-generate/po-page-edit/index.spec.d.ts +1 -1
  1175. package/schematics/ng-generate/po-page-edit/index.spec.js +120 -120
  1176. package/schematics/ng-generate/po-page-edit/schema.d.ts +3 -3
  1177. package/schematics/ng-generate/po-page-edit/schema.js +2 -2
  1178. package/schematics/ng-generate/po-page-edit/schema.json +67 -67
  1179. package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  1180. package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +28 -28
  1181. package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +35 -35
  1182. package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +33 -33
  1183. package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  1184. package/schematics/ng-generate/po-page-list/index.d.ts +7 -7
  1185. package/schematics/ng-generate/po-page-list/index.js +15 -15
  1186. package/schematics/ng-generate/po-page-list/index.spec.d.ts +1 -1
  1187. package/schematics/ng-generate/po-page-list/index.spec.js +120 -120
  1188. package/schematics/ng-generate/po-page-list/schema.d.ts +5 -5
  1189. package/schematics/ng-generate/po-page-list/schema.js +2 -2
  1190. package/schematics/ng-generate/po-page-list/schema.json +78 -78
  1191. package/schematics/ng-generate/sidemenu/files/app.component.html.template +9 -9
  1192. package/schematics/ng-generate/sidemenu/files/app.component.spec.ts.template +30 -30
  1193. package/schematics/ng-generate/sidemenu/files/app.component.ts.template +20 -20
  1194. package/schematics/ng-generate/sidemenu/index.d.ts +8 -8
  1195. package/schematics/ng-generate/sidemenu/index.js +51 -51
  1196. package/schematics/ng-generate/sidemenu/index.spec.d.ts +1 -1
  1197. package/schematics/ng-generate/sidemenu/index.spec.js +62 -62
  1198. package/schematics/ng-generate/sidemenu/schema.d.ts +13 -13
  1199. package/schematics/ng-generate/sidemenu/schema.js +2 -2
  1200. package/schematics/ng-generate/sidemenu/schema.json +32 -32
  1201. package/schematics/ng-update/v2/changes.d.ts +19 -19
  1202. package/schematics/ng-update/v2/changes.js +58 -58
  1203. package/schematics/ng-update/v2/index.d.ts +1 -1
  1204. package/schematics/ng-update/v2/index.js +145 -145
  1205. package/schematics/ng-update/v3/changes.d.ts +4 -4
  1206. package/schematics/ng-update/v3/changes.js +20 -20
  1207. package/schematics/ng-update/v3/index.d.ts +1 -1
  1208. package/schematics/ng-update/v3/index.js +66 -66
  1209. package/schematics/ng-update/v4/changes.d.ts +4 -4
  1210. package/schematics/ng-update/v4/changes.js +20 -20
  1211. package/schematics/ng-update/v4/index.d.ts +1 -1
  1212. package/schematics/ng-update/v4/index.js +65 -65
  1213. package/schematics/ng-update/v5/changes.d.ts +4 -4
  1214. package/schematics/ng-update/v5/changes.js +25 -25
  1215. package/schematics/ng-update/v5/index.d.ts +1 -1
  1216. package/schematics/ng-update/v5/index.js +65 -65
  1217. package/po-ui-ng-components-5.21.0.tgz +0 -0
@@ -1,374 +1,374 @@
1
- /* eslint-disable */
2
- import { __rest } from "tslib";
3
- import { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';
4
- import { Subject } from 'rxjs';
5
- import { convertNumberToDecimal } from '../../../../utils/util';
6
- import { poChartAngleStepInterval, poChartCompleteCircle, poChartDonutSerieWidth, poChartGaugeSerieWidth, poChartStartAngle } from './po-chart-circular.constant';
7
- import { PoDefaultColorsTextBlack } from '../../../../services/po-color/po-colors.constant';
8
- import { PoChartDynamicTypeComponent } from '../po-chart-dynamic-type.component';
9
- import { PoChartType } from '../../enums/po-chart-type.enum';
10
- const poChartBlackColor = '#000000';
11
- const poChartWhiteColor = '#ffffff';
12
- export class PoChartCircular extends PoChartDynamicTypeComponent {
13
- constructor(el, ngZone, renderer) {
14
- super();
15
- this.el = el;
16
- this.ngZone = ngZone;
17
- this.renderer = renderer;
18
- this.chartItemStartAngle = poChartStartAngle;
19
- this.windowResizeEmitter = new Subject();
20
- this.chartItemsEndAngleList = [];
21
- this.svgPathElementsList = [];
22
- this.svgTextElementsList = [];
23
- }
24
- ngOnDestroy() {
25
- this.removeWindowResizeListener();
26
- this.removeWindowScrollListener();
27
- this.animationRunning = false;
28
- }
29
- ngOnInit() {
30
- this.chartInitSetup();
31
- this.setEventListeners();
32
- }
33
- removeTooltip() {
34
- if (this.tooltipElement) {
35
- this.renderer.addClass(this.tooltipElement, 'po-invisible');
36
- }
37
- }
38
- drawPath(path, chartItemStartAngle, chartItemEndAngle) {
39
- const sinAlpha = Math.sin(chartItemStartAngle);
40
- const cosAlpha = Math.cos(chartItemStartAngle);
41
- const sinBeta = Math.sin(chartItemEndAngle);
42
- const cosBeta = Math.cos(chartItemEndAngle);
43
- const startX = this.centerX + cosAlpha * this.centerX;
44
- const startY = this.centerX + sinAlpha * this.centerX;
45
- const endX = this.centerX + cosBeta * this.centerX;
46
- const endY = this.centerX + sinBeta * this.centerX;
47
- const startInnerX = this.centerX + cosAlpha * this.innerRadius;
48
- const startInnerY = this.centerX + sinAlpha * this.innerRadius;
49
- const endInnerX = this.centerX + cosBeta * this.innerRadius;
50
- const endInnerY = this.centerX + sinBeta * this.innerRadius;
51
- const halfGaugeCoordinates = [
52
- 'M',
53
- startX,
54
- startY,
55
- 'A',
56
- this.centerX,
57
- this.centerX,
58
- 0,
59
- '0,1',
60
- endX,
61
- endY,
62
- 'A',
63
- 1,
64
- 1,
65
- 0,
66
- '0,1',
67
- endInnerX,
68
- endInnerY,
69
- 'A',
70
- this.innerRadius,
71
- this.innerRadius,
72
- 0,
73
- '0,0',
74
- startInnerX,
75
- startInnerY,
76
- 'A',
77
- 1,
78
- 1,
79
- 0,
80
- '0,1',
81
- startX,
82
- startY,
83
- 'Z'
84
- ].join(' ');
85
- return path.setAttribute('d', halfGaugeCoordinates);
86
- }
87
- getSeriesWithValue(series) {
88
- const newSeries = [];
89
- series.forEach((serie, index) => {
90
- var _a;
91
- const value = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
92
- if (value > 0) {
93
- newSeries.push(Object.assign(Object.assign({}, serie), { color: this.colors[index] }));
94
- }
95
- });
96
- return newSeries;
97
- }
98
- animationSetup() {
99
- this.chartItemEndAngle = this.chartItemsEndAngleList[0];
100
- this.animationRunning = true;
101
- this.drawPathInit();
102
- }
103
- appendGaugeBackgroundPathElement(svgPathsWrapper) {
104
- const svgPath = this.renderer.createElement('svg:path', 'svg');
105
- this.renderer.setAttribute(svgPath, 'class', 'po-chart-gauge-base-path');
106
- svgPathsWrapper.appendChild(svgPath);
107
- this.renderer.appendChild(this.svgElement, svgPathsWrapper);
108
- }
109
- calculateAngleRadians() {
110
- this.series.forEach((serie, index) => {
111
- var _a;
112
- const data = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
113
- this.chartItemsEndAngleList[index] = this.calculateEndAngle(data, this.totalValue);
114
- });
115
- }
116
- calculateCurrentEndAngle(angleCurrentPosition) {
117
- const isSerieDrawCompleted = this.chartItemStartAngle + angleCurrentPosition > this.chartItemStartAngle + this.chartItemEndAngle;
118
- if (isSerieDrawCompleted) {
119
- return this.chartItemStartAngle + this.chartItemEndAngle - poChartCompleteCircle;
120
- }
121
- else {
122
- return this.chartItemStartAngle + angleCurrentPosition;
123
- }
124
- }
125
- calculateEndAngle(value, totalValue) {
126
- const endAngle = (value / totalValue) * (Math.PI * 2);
127
- return this.isChartGaugeType ? endAngle / 2 : endAngle;
128
- }
129
- calculateSVGDimensions() {
130
- this.calculateSVGContainerDimensions(this.chartWrapper, this.chartHeader, this.chartLegend);
131
- this.innerRadius = this.setInnerRadius(this.type);
132
- }
133
- changeTooltipPosition(event) {
134
- if (this.tooltipElement && this.tooltipElement.classList.contains('po-invisible')) {
135
- this.showTooltip();
136
- }
137
- const tooltipPositions = this.setTooltipPositions(event);
138
- this.renderer.setStyle(this.tooltipElement, 'left', `${tooltipPositions.left}px`);
139
- this.renderer.setStyle(this.tooltipElement, 'top', `${tooltipPositions.top}px`);
140
- }
141
- chartInitSetup() {
142
- this.calculateSVGDimensions();
143
- this.calculateTotalValue();
144
- this.calculateAngleRadians();
145
- this.createSVGElements();
146
- this.animationSetup();
147
- }
148
- checkingIfScrollsWithPoPage() {
149
- const poPageContent = document.getElementsByClassName('po-page-content');
150
- return poPageContent.length ? poPageContent[0] : window;
151
- }
152
- createPath(serie, svgPathsWrapper) {
153
- const svgPath = this.renderer.createElement('svg:path', 'svg');
154
- this.renderer.setAttribute(svgPath, 'class', 'po-path-item');
155
- this.renderer.setAttribute(svgPath, 'fill', serie.color);
156
- this.setElementAttributes(svgPath, serie);
157
- svgPathsWrapper.appendChild(svgPath);
158
- this.renderer.appendChild(this.svgElement, svgPathsWrapper);
159
- this.svgPathElementsList.push(svgPath);
160
- }
161
- createPaths() {
162
- const svgPathsWrapper = this.renderer.createElement('svg:g', 'svg');
163
- if (this.isChartGaugeType) {
164
- this.appendGaugeBackgroundPathElement(svgPathsWrapper);
165
- // Tratamento para evitar que o path desenhe os arcos referentes ao border radius do path.
166
- if (this.isSerieValueEqualZero()) {
167
- return;
168
- }
169
- }
170
- this.series.forEach(serie => this.createPath(serie, svgPathsWrapper));
171
- }
172
- createText(serie) {
173
- const data = serie.value;
174
- const svgG = this.renderer.createElement('svg:g', 'svg');
175
- const svgText = this.renderer.createElement('svg:text', 'svg');
176
- const fontSize = this.getFontSize();
177
- const textColor = this.getTextColor(serie.color);
178
- svgText.textContent = this.getPercentValue(data, this.totalValue) + '%';
179
- this.renderer.setAttribute(svgText, 'class', 'po-path-item');
180
- this.renderer.setAttribute(svgText, 'fill', textColor);
181
- this.renderer.setAttribute(svgText, 'font-size', fontSize);
182
- this.renderer.setAttribute(svgText, 'fill-opacity', '0');
183
- this.setElementAttributes(svgText, serie);
184
- this.renderer.appendChild(svgG, svgText);
185
- this.renderer.appendChild(this.svgElement, svgG);
186
- this.svgTextElementsList.push(svgText);
187
- }
188
- createTexts() {
189
- if (this.type === PoChartType.Donut) {
190
- this.series.forEach(serie => this.createText(serie));
191
- }
192
- }
193
- createSVGElements() {
194
- const viewBoxHeight = this.isChartGaugeType
195
- ? this.centerX + this.centerX * poChartGaugeSerieWidth
196
- : this.chartWrapper;
197
- const preserveAspectRatio = this.isChartGaugeType ? 'xMidYMax' : 'xMidYMin';
198
- this.svgElement = this.renderer.createElement('svg:svg', 'svg');
199
- this.renderer.setAttribute(this.svgElement, 'viewBox', `0 0 ${this.chartWrapper} ${viewBoxHeight}`);
200
- this.renderer.setAttribute(this.svgElement, 'preserveAspectRatio', `${preserveAspectRatio} meet`);
201
- this.renderer.setAttribute(this.svgElement, 'class', 'po-chart-svg-element');
202
- this.renderer.setAttribute(this.svgElement, 'width', `${this.centerX}`);
203
- this.renderer.setAttribute(this.svgElement, 'height', `${this.svgHeight}`);
204
- this.svgContainer.nativeElement.appendChild(this.svgElement);
205
- this.createPaths();
206
- this.createTexts();
207
- }
208
- drawPathInit() {
209
- if (!this.animationRunning) {
210
- return;
211
- }
212
- else {
213
- this.ngZone.runOutsideAngular(() => this.drawSeries());
214
- }
215
- }
216
- drawSeries(currentSerieIndex = 0, angleCurrentPosition = 0) {
217
- const isFinishedDrawingCurrentSeries = angleCurrentPosition > this.chartItemEndAngle;
218
- const isFinishedDrawingAllSeries = currentSerieIndex === this.svgPathElementsList.length;
219
- if (isFinishedDrawingAllSeries) {
220
- return;
221
- }
222
- if (isFinishedDrawingCurrentSeries) {
223
- this.chartItemStartAngle = this.chartItemStartAngle + this.chartItemEndAngle;
224
- currentSerieIndex++;
225
- this.chartItemEndAngle = this.chartItemsEndAngleList[currentSerieIndex];
226
- angleCurrentPosition = 0;
227
- }
228
- else {
229
- angleCurrentPosition += poChartAngleStepInterval;
230
- this.drawPath(this.svgPathElementsList[currentSerieIndex], this.chartItemStartAngle, this.calculateCurrentEndAngle(angleCurrentPosition));
231
- this.setTextProperties(this.svgTextElementsList[currentSerieIndex], this.chartItemStartAngle, this.calculateCurrentEndAngle(angleCurrentPosition));
232
- }
233
- window.requestAnimationFrame(this.drawSeries.bind(this, currentSerieIndex, angleCurrentPosition));
234
- }
235
- emitEventOnEnter(event) {
236
- this.onSerieHover.next(event);
237
- }
238
- getFontSize() {
239
- const fontSizePorcent = 0.04;
240
- const fontSize = fontSizePorcent * this.chartWrapper;
241
- return `${fontSize.toFixed(0)}px`;
242
- }
243
- getPercentValue(value, totalValue) {
244
- const percentValue = (value / totalValue) * 100;
245
- const floatPercentValue = convertNumberToDecimal(percentValue, 2);
246
- return String(floatPercentValue).replace('.', ',');
247
- }
248
- getTextColor(color) {
249
- if (PoDefaultColorsTextBlack.includes(color)) {
250
- return poChartBlackColor;
251
- }
252
- return poChartWhiteColor;
253
- }
254
- getTooltipValue(value) {
255
- if (this.type === PoChartType.Pie) {
256
- return value.toString();
257
- }
258
- return this.getPercentValue(value, this.totalValue) + '%';
259
- }
260
- isSerieValueEqualZero() {
261
- return this.series.length && this.series[0].value === 0;
262
- }
263
- onMouseClick() {
264
- let serieOnClick;
265
- const _a = this.series[0], { color } = _a, serie = __rest(_a, ["color"]);
266
- serieOnClick = serie;
267
- this.onSerieClick.next(serieOnClick);
268
- }
269
- onMouseEnter(event) {
270
- let serieOnEnter;
271
- const _a = this.series[0], { color } = _a, serie = __rest(_a, ["color"]);
272
- this.chartElementDescription = event.target.getAttributeNS(null, 'data-tooltip-category');
273
- serieOnEnter = serie;
274
- this.emitEventOnEnter(serieOnEnter);
275
- }
276
- onWindowResize() {
277
- this.calculateSVGDimensions();
278
- this.renderer.setAttribute(this.svgElement, 'width', `${this.centerX}`);
279
- this.renderer.setAttribute(this.svgElement, 'height', `${this.svgHeight}`);
280
- this.windowResizeEmitter.next();
281
- }
282
- removeWindowResizeListener() {
283
- if (this.windowResizeListener) {
284
- this.windowResizeListener();
285
- }
286
- }
287
- removeWindowScrollListener() {
288
- if (this.windowScrollListener) {
289
- this.windowScrollListener();
290
- }
291
- }
292
- setEventListeners() {
293
- let chartSeries = this.el.nativeElement.querySelectorAll('.po-path-item');
294
- chartSeries = Array.from(chartSeries);
295
- chartSeries.forEach(serie => {
296
- this.renderer.listen(serie, 'click', this.onMouseClick.bind(this));
297
- this.renderer.listen(serie, 'mouseenter', this.onMouseEnter.bind(this));
298
- if (!this.isChartGaugeType) {
299
- this.renderer.listen(serie, 'mousemove', this.changeTooltipPosition.bind(this));
300
- this.renderer.listen(serie, 'mouseleave', this.removeTooltip.bind(this));
301
- }
302
- });
303
- this.windowResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));
304
- this.windowScrollListener = this.renderer.listen(this.checkingIfScrollsWithPoPage(), 'scroll', this.removeTooltip.bind(this));
305
- }
306
- setInnerRadius(type) {
307
- let serieWidth;
308
- switch (type) {
309
- case PoChartType.Donut: {
310
- serieWidth = poChartDonutSerieWidth;
311
- break;
312
- }
313
- case PoChartType.Gauge: {
314
- serieWidth = poChartGaugeSerieWidth;
315
- break;
316
- }
317
- case PoChartType.Pie: {
318
- return 0;
319
- }
320
- }
321
- return this.centerX - this.centerX * serieWidth;
322
- }
323
- setTextProperties(text, startAngle, endAngle) {
324
- // necessário text.getClientRects().length para contornar erro de console causado no Firefox
325
- if (this.type === PoChartType.Donut && text.getClientRects().length) {
326
- // utilizado para recuperar o angulo do meio, entre o inicio e fim para centralizar o texto
327
- const centerAngle = (startAngle + endAngle) / 2;
328
- const textBox = text.getBBox();
329
- const halfTextWidth = textBox.width / 2;
330
- const halfTextHeight = textBox.height / 2;
331
- // radius interno (circulo branco) + a metade da diferença entre tamanho do centro e radius interno
332
- const radius = this.innerRadius + (this.centerX - this.innerRadius) / 2;
333
- const xCoordinate = radius * Math.cos(centerAngle) + this.centerX - halfTextWidth;
334
- const yCoordinate = radius * Math.sin(centerAngle) + this.centerX + halfTextHeight / 2;
335
- text.setAttribute('x', xCoordinate);
336
- text.setAttribute('y', yCoordinate);
337
- text.setAttribute('fill-opacity', '1');
338
- }
339
- }
340
- setTooltipPositions(event) {
341
- const displacement = 8;
342
- return {
343
- left: event.clientX - this.tooltipElement.offsetWidth / 2,
344
- top: event.clientY - this.tooltipElement.offsetHeight - displacement
345
- };
346
- }
347
- setElementAttributes(svgElement, serie) {
348
- var _a, _b;
349
- const { tooltip } = serie;
350
- const data = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
351
- const label = (_b = serie.label) !== null && _b !== void 0 ? _b : (serie.description || serie.category);
352
- this.renderer.setAttribute(svgElement, 'data-tooltip-value', `${data}`);
353
- if (this.isChartGaugeType) {
354
- this.renderer.setAttribute(svgElement, 'data-tooltip-description', label);
355
- }
356
- else {
357
- const tooltipValue = this.getTooltipValue(data);
358
- this.renderer.setAttribute(svgElement, 'data-tooltip-category', label);
359
- this.renderer.setAttribute(svgElement, 'data-tooltip-text', tooltip || `${label}: ${tooltipValue}`);
360
- }
361
- }
362
- showTooltip() {
363
- this.renderer.removeClass(this.tooltipElement, 'po-invisible');
364
- }
365
- }
366
- PoChartCircular.decorators = [
367
- { type: Directive }
368
- ];
369
- PoChartCircular.ctorParameters = () => [
370
- { type: ElementRef },
371
- { type: NgZone },
372
- { type: Renderer2 }
373
- ];
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtY2lyY3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvcG8tY2hhcnQtdHlwZXMvcG8tY2hhcnQtY2lyY3VsYXIvcG8tY2hhcnQtY2lyY3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9COztBQUVwQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDO0FBR3BDLE1BQU0sT0FBTyxlQUFnQixTQUFRLDJCQUEyQjtJQVU5RCxZQUFzQixFQUFjLEVBQVUsTUFBYyxFQUFVLFFBQW1CO1FBQ3ZGLEtBQUssRUFBRSxDQUFDO1FBRFksT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVHpGLHdCQUFtQixHQUFHLGlCQUFpQixDQUFDO1FBQ3hDLHdCQUFtQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSTFDLDJCQUFzQixHQUFrQixFQUFFLENBQUM7UUFDM0Msd0JBQW1CLEdBQWtCLEVBQUUsQ0FBQztRQUN4Qyx3QkFBbUIsR0FBa0IsRUFBRSxDQUFDO0lBSWhELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQzdEO0lBQ0gsQ0FBQztJQUVTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCO1FBQzdELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUUvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFNUQsTUFBTSxvQkFBb0IsR0FBRztZQUMzQixHQUFHO1lBQ0gsTUFBTTtZQUNOLE1BQU07WUFDTixHQUFHO1lBQ0gsSUFBSSxDQUFDLE9BQU87WUFDWixJQUFJLENBQUMsT0FBTztZQUNaLENBQUM7WUFDRCxLQUFLO1lBQ0wsSUFBSTtZQUNKLElBQUk7WUFDSixHQUFHO1lBQ0gsQ0FBQztZQUNELENBQUM7WUFDRCxDQUFDO1lBQ0QsS0FBSztZQUNMLFNBQVM7WUFDVCxTQUFTO1lBQ1QsR0FBRztZQUNILElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxXQUFXO1lBQ2hCLENBQUM7WUFDRCxLQUFLO1lBQ0wsV0FBVztZQUNYLFdBQVc7WUFDWCxHQUFHO1lBQ0gsQ0FBQztZQUNELENBQUM7WUFDRCxDQUFDO1lBQ0QsS0FBSztZQUNMLE1BQU07WUFDTixNQUFNO1lBQ04sR0FBRztTQUNKLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVosT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxNQUFnQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTs7WUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDYixTQUFTLENBQUMsSUFBSSxpQ0FBTSxLQUFLLEtBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUcsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sZ0NBQWdDLENBQUMsZUFBb0I7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUN6RSxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTs7WUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxvQkFBNEI7UUFDM0QsTUFBTSxvQkFBb0IsR0FDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFdEcsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7U0FDbEY7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxVQUFrQjtRQUN6RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUN6RCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQWlCO1FBQzdDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV6RSxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFELENBQUM7SUFFTyxVQUFVLENBQUMsS0FBd0IsRUFBRSxlQUFvQjtRQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVwRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkQsMEZBQTBGO1lBQzFGLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUU7Z0JBQ2hDLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBd0I7UUFDekMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUV6QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRCxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0I7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxzQkFBc0I7WUFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBRTVFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxtQkFBbUIsT0FBTyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsT0FBTztTQUNSO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxvQkFBNEIsQ0FBQyxFQUFFLHVCQUErQixDQUFDO1FBQ2hGLE1BQU0sOEJBQThCLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3JGLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUV6RixJQUFJLDBCQUEwQixFQUFFO1lBQzlCLE9BQU87U0FDUjtRQUVELElBQUksOEJBQThCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDN0UsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDeEUsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxvQkFBb0IsSUFBSSx3QkFBd0IsQ0FBQztZQUVqRCxJQUFJLENBQUMsUUFBUSxDQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUMzQyxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUNwRCxDQUFDO1lBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFDM0MsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLENBQUMsQ0FDcEQsQ0FBQztTQUNIO1FBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztRQUU3QixNQUFNLFFBQVEsR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVyRCxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYSxFQUFFLFVBQWtCO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUVoRCxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFhO1FBQ2hDLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLE9BQU8saUJBQWlCLENBQUM7U0FDMUI7UUFFRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYTtRQUNuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM1RCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksWUFBK0IsQ0FBQztRQUVwQyxNQUFNLEtBQXNCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQXBDLEVBQUUsS0FBSyxPQUE2QixFQUF4QixLQUFLLGNBQWpCLFNBQW1CLENBQWlCLENBQUM7UUFDM0MsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQUs7UUFDeEIsSUFBSSxZQUErQixDQUFDO1FBRXBDLE1BQU0sS0FBc0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBcEMsRUFBRSxLQUFLLE9BQTZCLEVBQXhCLEtBQUssY0FBakIsU0FBbUIsQ0FBaUIsQ0FBQztRQUUzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDMUYsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxXQUFXLEdBQWtCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pGLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV4RSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzFFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDOUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLEVBQ2xDLFFBQVEsRUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBaUI7UUFDdEMsSUFBSSxVQUFVLENBQUM7UUFFZixRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixVQUFVLEdBQUcsc0JBQXNCLENBQUM7Z0JBRXBDLE1BQU07YUFDUDtZQUNELEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixVQUFVLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3BDLE1BQU07YUFDUDtZQUNELEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixPQUFPLENBQUMsQ0FBQzthQUNWO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFrQixFQUFFLFFBQWdCO1FBQ2xFLDRGQUE0RjtRQUM1RixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ25FLDJGQUEyRjtZQUMzRixNQUFNLFdBQVcsR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRS9CLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLG1HQUFtRztZQUNuRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXhFLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1lBQ2xGLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFpQjtRQUMzQyxNQUFNLFlBQVksR0FBVyxDQUFDLENBQUM7UUFFL0IsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLENBQUM7WUFDekQsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEdBQUcsWUFBWTtTQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxLQUFLOztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQUEsS0FBSyxDQUFDLElBQUksbUNBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNMLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLElBQUksR0FBRyxLQUFLLEtBQUssWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNyRztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7O1lBMWNGLFNBQVM7OztZQXJCVSxVQUFVO1lBQUUsTUFBTTtZQUFxQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgY29udmVydE51bWJlclRvRGVjaW1hbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQge1xuICBwb0NoYXJ0QW5nbGVTdGVwSW50ZXJ2YWwsXG4gIHBvQ2hhcnRDb21wbGV0ZUNpcmNsZSxcbiAgcG9DaGFydERvbnV0U2VyaWVXaWR0aCxcbiAgcG9DaGFydEdhdWdlU2VyaWVXaWR0aCxcbiAgcG9DaGFydFN0YXJ0QW5nbGVcbn0gZnJvbSAnLi9wby1jaGFydC1jaXJjdWxhci5jb25zdGFudCc7XG5pbXBvcnQgeyBQb0RlZmF1bHRDb2xvcnNUZXh0QmxhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1jb2xvci9wby1jb2xvcnMuY29uc3RhbnQnO1xuXG5pbXBvcnQgeyBQb0NoYXJ0RHluYW1pY1R5cGVDb21wb25lbnQgfSBmcm9tICcuLi9wby1jaGFydC1keW5hbWljLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBvQ2hhcnRHYXVnZVNlcmllIH0gZnJvbSAnLi4vcG8tY2hhcnQtZ2F1Z2UvcG8tY2hhcnQtZ2F1Z2Utc2VyaWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NoYXJ0VHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3BvLWNoYXJ0LXR5cGUuZW51bSc7XG5cbmNvbnN0IHBvQ2hhcnRCbGFja0NvbG9yID0gJyMwMDAwMDAnO1xuY29uc3QgcG9DaGFydFdoaXRlQ29sb3IgPSAnI2ZmZmZmZic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBvQ2hhcnRDaXJjdWxhciBleHRlbmRzIFBvQ2hhcnREeW5hbWljVHlwZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgY2hhcnRJdGVtU3RhcnRBbmdsZSA9IHBvQ2hhcnRTdGFydEFuZ2xlO1xuICB3aW5kb3dSZXNpemVFbWl0dGVyOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgYW5pbWF0aW9uUnVubmluZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjaGFydEl0ZW1FbmRBbmdsZTogbnVtYmVyO1xuICBwcml2YXRlIGNoYXJ0SXRlbXNFbmRBbmdsZUxpc3Q6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgcHJpdmF0ZSBzdmdQYXRoRWxlbWVudHNMaXN0OiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByaXZhdGUgc3ZnVGV4dEVsZW1lbnRzTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlV2luZG93UmVzaXplTGlzdGVuZXIoKTtcbiAgICB0aGlzLnJlbW92ZVdpbmRvd1Njcm9sbExpc3RlbmVyKCk7XG4gICAgdGhpcy5hbmltYXRpb25SdW5uaW5nID0gZmFsc2U7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNoYXJ0SW5pdFNldHVwKCk7XG4gICAgdGhpcy5zZXRFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcmVtb3ZlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy50b29sdGlwRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG8taW52aXNpYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRyYXdQYXRoKHBhdGgsIGNoYXJ0SXRlbVN0YXJ0QW5nbGUsIGNoYXJ0SXRlbUVuZEFuZ2xlKSB7XG4gICAgY29uc3Qgc2luQWxwaGEgPSBNYXRoLnNpbihjaGFydEl0ZW1TdGFydEFuZ2xlKTtcbiAgICBjb25zdCBjb3NBbHBoYSA9IE1hdGguY29zKGNoYXJ0SXRlbVN0YXJ0QW5nbGUpO1xuXG4gICAgY29uc3Qgc2luQmV0YSA9IE1hdGguc2luKGNoYXJ0SXRlbUVuZEFuZ2xlKTtcbiAgICBjb25zdCBjb3NCZXRhID0gTWF0aC5jb3MoY2hhcnRJdGVtRW5kQW5nbGUpO1xuXG4gICAgY29uc3Qgc3RhcnRYID0gdGhpcy5jZW50ZXJYICsgY29zQWxwaGEgKiB0aGlzLmNlbnRlclg7XG4gICAgY29uc3Qgc3RhcnRZID0gdGhpcy5jZW50ZXJYICsgc2luQWxwaGEgKiB0aGlzLmNlbnRlclg7XG5cbiAgICBjb25zdCBlbmRYID0gdGhpcy5jZW50ZXJYICsgY29zQmV0YSAqIHRoaXMuY2VudGVyWDtcbiAgICBjb25zdCBlbmRZID0gdGhpcy5jZW50ZXJYICsgc2luQmV0YSAqIHRoaXMuY2VudGVyWDtcblxuICAgIGNvbnN0IHN0YXJ0SW5uZXJYID0gdGhpcy5jZW50ZXJYICsgY29zQWxwaGEgKiB0aGlzLmlubmVyUmFkaXVzO1xuICAgIGNvbnN0IHN0YXJ0SW5uZXJZID0gdGhpcy5jZW50ZXJYICsgc2luQWxwaGEgKiB0aGlzLmlubmVyUmFkaXVzO1xuXG4gICAgY29uc3QgZW5kSW5uZXJYID0gdGhpcy5jZW50ZXJYICsgY29zQmV0YSAqIHRoaXMuaW5uZXJSYWRpdXM7XG4gICAgY29uc3QgZW5kSW5uZXJZID0gdGhpcy5jZW50ZXJYICsgc2luQmV0YSAqIHRoaXMuaW5uZXJSYWRpdXM7XG5cbiAgICBjb25zdCBoYWxmR2F1Z2VDb29yZGluYXRlcyA9IFtcbiAgICAgICdNJyxcbiAgICAgIHN0YXJ0WCxcbiAgICAgIHN0YXJ0WSxcbiAgICAgICdBJyxcbiAgICAgIHRoaXMuY2VudGVyWCxcbiAgICAgIHRoaXMuY2VudGVyWCxcbiAgICAgIDAsXG4gICAgICAnMCwxJyxcbiAgICAgIGVuZFgsXG4gICAgICBlbmRZLFxuICAgICAgJ0EnLFxuICAgICAgMSxcbiAgICAgIDEsXG4gICAgICAwLFxuICAgICAgJzAsMScsXG4gICAgICBlbmRJbm5lclgsXG4gICAgICBlbmRJbm5lclksXG4gICAgICAnQScsXG4gICAgICB0aGlzLmlubmVyUmFkaXVzLFxuICAgICAgdGhpcy5pbm5lclJhZGl1cyxcbiAgICAgIDAsXG4gICAgICAnMCwwJyxcbiAgICAgIHN0YXJ0SW5uZXJYLFxuICAgICAgc3RhcnRJbm5lclksXG4gICAgICAnQScsXG4gICAgICAxLFxuICAgICAgMSxcbiAgICAgIDAsXG4gICAgICAnMCwxJyxcbiAgICAgIHN0YXJ0WCxcbiAgICAgIHN0YXJ0WSxcbiAgICAgICdaJ1xuICAgIF0uam9pbignICcpO1xuXG4gICAgcmV0dXJuIHBhdGguc2V0QXR0cmlidXRlKCdkJywgaGFsZkdhdWdlQ29vcmRpbmF0ZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNlcmllc1dpdGhWYWx1ZShzZXJpZXM6IEFycmF5PFBvQ2hhcnRHYXVnZVNlcmllPikge1xuICAgIGNvbnN0IG5ld1NlcmllcyA9IFtdO1xuXG4gICAgc2VyaWVzLmZvckVhY2goKHNlcmllOiBhbnksIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHNlcmllLmRhdGEgPz8gc2VyaWUudmFsdWU7XG4gICAgICBpZiAodmFsdWUgPiAwKSB7XG4gICAgICAgIG5ld1Nlcmllcy5wdXNoKHsgLi4uc2VyaWUsIGNvbG9yOiB0aGlzLmNvbG9yc1tpbmRleF0gfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3U2VyaWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBhbmltYXRpb25TZXR1cCgpIHtcbiAgICB0aGlzLmNoYXJ0SXRlbUVuZEFuZ2xlID0gdGhpcy5jaGFydEl0ZW1zRW5kQW5nbGVMaXN0WzBdO1xuICAgIHRoaXMuYW5pbWF0aW9uUnVubmluZyA9IHRydWU7XG4gICAgdGhpcy5kcmF3UGF0aEluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kR2F1Z2VCYWNrZ3JvdW5kUGF0aEVsZW1lbnQoc3ZnUGF0aHNXcmFwcGVyOiBhbnkpIHtcbiAgICBjb25zdCBzdmdQYXRoID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdmc6cGF0aCcsICdzdmcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdQYXRoLCAnY2xhc3MnLCAncG8tY2hhcnQtZ2F1Z2UtYmFzZS1wYXRoJyk7XG4gICAgc3ZnUGF0aHNXcmFwcGVyLmFwcGVuZENoaWxkKHN2Z1BhdGgpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zdmdFbGVtZW50LCBzdmdQYXRoc1dyYXBwZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVBbmdsZVJhZGlhbnMoKSB7XG4gICAgdGhpcy5zZXJpZXMuZm9yRWFjaCgoc2VyaWUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gc2VyaWUuZGF0YSA/PyBzZXJpZS52YWx1ZTtcbiAgICAgIHRoaXMuY2hhcnRJdGVtc0VuZEFuZ2xlTGlzdFtpbmRleF0gPSB0aGlzLmNhbGN1bGF0ZUVuZEFuZ2xlKGRhdGEsIHRoaXMudG90YWxWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUN1cnJlbnRFbmRBbmdsZShhbmdsZUN1cnJlbnRQb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgY29uc3QgaXNTZXJpZURyYXdDb21wbGV0ZWQgPVxuICAgICAgdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlICsgYW5nbGVDdXJyZW50UG9zaXRpb24gPiB0aGlzLmNoYXJ0SXRlbVN0YXJ0QW5nbGUgKyB0aGlzLmNoYXJ0SXRlbUVuZEFuZ2xlO1xuXG4gICAgaWYgKGlzU2VyaWVEcmF3Q29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlICsgdGhpcy5jaGFydEl0ZW1FbmRBbmdsZSAtIHBvQ2hhcnRDb21wbGV0ZUNpcmNsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSArIGFuZ2xlQ3VycmVudFBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlRW5kQW5nbGUodmFsdWU6IG51bWJlciwgdG90YWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBlbmRBbmdsZSA9ICh2YWx1ZSAvIHRvdGFsVmFsdWUpICogKE1hdGguUEkgKiAyKTtcblxuICAgIHJldHVybiB0aGlzLmlzQ2hhcnRHYXVnZVR5cGUgPyBlbmRBbmdsZSAvIDIgOiBlbmRBbmdsZTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlU1ZHRGltZW5zaW9ucygpIHtcbiAgICB0aGlzLmNhbGN1bGF0ZVNWR0NvbnRhaW5lckRpbWVuc2lvbnModGhpcy5jaGFydFdyYXBwZXIsIHRoaXMuY2hhcnRIZWFkZXIsIHRoaXMuY2hhcnRMZWdlbmQpO1xuXG4gICAgdGhpcy5pbm5lclJhZGl1cyA9IHRoaXMuc2V0SW5uZXJSYWRpdXModGhpcy50eXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlVG9vbHRpcFBvc2l0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQgJiYgdGhpcy50b29sdGlwRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3BvLWludmlzaWJsZScpKSB7XG4gICAgICB0aGlzLnNob3dUb29sdGlwKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9vbHRpcFBvc2l0aW9ucyA9IHRoaXMuc2V0VG9vbHRpcFBvc2l0aW9ucyhldmVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsIGAke3Rvb2x0aXBQb3NpdGlvbnMubGVmdH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsIGAke3Rvb2x0aXBQb3NpdGlvbnMudG9wfXB4YCk7XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0SW5pdFNldHVwKCkge1xuICAgIHRoaXMuY2FsY3VsYXRlU1ZHRGltZW5zaW9ucygpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxWYWx1ZSgpO1xuICAgIHRoaXMuY2FsY3VsYXRlQW5nbGVSYWRpYW5zKCk7XG4gICAgdGhpcy5jcmVhdGVTVkdFbGVtZW50cygpO1xuICAgIHRoaXMuYW5pbWF0aW9uU2V0dXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdJZlNjcm9sbHNXaXRoUG9QYWdlKCkge1xuICAgIGNvbnN0IHBvUGFnZUNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwby1wYWdlLWNvbnRlbnQnKTtcblxuICAgIHJldHVybiBwb1BhZ2VDb250ZW50Lmxlbmd0aCA/IHBvUGFnZUNvbnRlbnRbMF0gOiB3aW5kb3c7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBhdGgoc2VyaWU6IFBvQ2hhcnRHYXVnZVNlcmllLCBzdmdQYXRoc1dyYXBwZXI6IGFueSkge1xuICAgIGNvbnN0IHN2Z1BhdGggPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2ZzpwYXRoJywgJ3N2ZycpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnUGF0aCwgJ2NsYXNzJywgJ3BvLXBhdGgtaXRlbScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1BhdGgsICdmaWxsJywgc2VyaWUuY29sb3IpO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50QXR0cmlidXRlcyhzdmdQYXRoLCBzZXJpZSk7XG5cbiAgICBzdmdQYXRoc1dyYXBwZXIuYXBwZW5kQ2hpbGQoc3ZnUGF0aCk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCwgc3ZnUGF0aHNXcmFwcGVyKTtcblxuICAgIHRoaXMuc3ZnUGF0aEVsZW1lbnRzTGlzdC5wdXNoKHN2Z1BhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXRocygpIHtcbiAgICBjb25zdCBzdmdQYXRoc1dyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2ZzpnJywgJ3N2ZycpO1xuXG4gICAgaWYgKHRoaXMuaXNDaGFydEdhdWdlVHlwZSkge1xuICAgICAgdGhpcy5hcHBlbmRHYXVnZUJhY2tncm91bmRQYXRoRWxlbWVudChzdmdQYXRoc1dyYXBwZXIpO1xuICAgICAgLy8gVHJhdGFtZW50byBwYXJhIGV2aXRhciBxdWUgbyBwYXRoIGRlc2VuaGUgb3MgYXJjb3MgcmVmZXJlbnRlcyBhbyBib3JkZXIgcmFkaXVzIGRvIHBhdGguXG4gICAgICBpZiAodGhpcy5pc1NlcmllVmFsdWVFcXVhbFplcm8oKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZXJpZXMuZm9yRWFjaChzZXJpZSA9PiB0aGlzLmNyZWF0ZVBhdGgoc2VyaWUsIHN2Z1BhdGhzV3JhcHBlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0KHNlcmllOiBQb0NoYXJ0R2F1Z2VTZXJpZSkge1xuICAgIGNvbnN0IGRhdGEgPSBzZXJpZS52YWx1ZTtcblxuICAgIGNvbnN0IHN2Z0cgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2ZzpnJywgJ3N2ZycpO1xuICAgIGNvbnN0IHN2Z1RleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2Zzp0ZXh0JywgJ3N2ZycpO1xuXG4gICAgY29uc3QgZm9udFNpemUgPSB0aGlzLmdldEZvbnRTaXplKCk7XG4gICAgY29uc3QgdGV4dENvbG9yID0gdGhpcy5nZXRUZXh0Q29sb3Ioc2VyaWUuY29sb3IpO1xuXG4gICAgc3ZnVGV4dC50ZXh0Q29udGVudCA9IHRoaXMuZ2V0UGVyY2VudFZhbHVlKGRhdGEsIHRoaXMudG90YWxWYWx1ZSkgKyAnJSc7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdUZXh0LCAnY2xhc3MnLCAncG8tcGF0aC1pdGVtJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnVGV4dCwgJ2ZpbGwnLCB0ZXh0Q29sb3IpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1RleHQsICdmb250LXNpemUnLCBmb250U2l6ZSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnVGV4dCwgJ2ZpbGwtb3BhY2l0eScsICcwJyk7XG5cbiAgICB0aGlzLnNldEVsZW1lbnRBdHRyaWJ1dGVzKHN2Z1RleHQsIHNlcmllKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3ZnRywgc3ZnVGV4dCk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCwgc3ZnRyk7XG4gICAgdGhpcy5zdmdUZXh0RWxlbWVudHNMaXN0LnB1c2goc3ZnVGV4dCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRzKCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0KSB7XG4gICAgICB0aGlzLnNlcmllcy5mb3JFYWNoKHNlcmllID0+IHRoaXMuY3JlYXRlVGV4dChzZXJpZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU1ZHRWxlbWVudHMoKSB7XG4gICAgY29uc3Qgdmlld0JveEhlaWdodCA9IHRoaXMuaXNDaGFydEdhdWdlVHlwZVxuICAgICAgPyB0aGlzLmNlbnRlclggKyB0aGlzLmNlbnRlclggKiBwb0NoYXJ0R2F1Z2VTZXJpZVdpZHRoXG4gICAgICA6IHRoaXMuY2hhcnRXcmFwcGVyO1xuICAgIGNvbnN0IHByZXNlcnZlQXNwZWN0UmF0aW8gPSB0aGlzLmlzQ2hhcnRHYXVnZVR5cGUgPyAneE1pZFlNYXgnIDogJ3hNaWRZTWluJztcblxuICAgIHRoaXMuc3ZnRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3ZnOnN2ZycsICdzdmcnKTtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ3ZpZXdCb3gnLCBgMCAwICR7dGhpcy5jaGFydFdyYXBwZXJ9ICR7dmlld0JveEhlaWdodH1gKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnN2Z0VsZW1lbnQsICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgYCR7cHJlc2VydmVBc3BlY3RSYXRpb30gbWVldGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ2NsYXNzJywgJ3BvLWNoYXJ0LXN2Zy1lbGVtZW50Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdmdFbGVtZW50LCAnd2lkdGgnLCBgJHt0aGlzLmNlbnRlclh9YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdmdFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGhpcy5zdmdIZWlnaHR9YCk7XG5cbiAgICB0aGlzLnN2Z0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCk7XG5cbiAgICB0aGlzLmNyZWF0ZVBhdGhzKCk7XG4gICAgdGhpcy5jcmVhdGVUZXh0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3UGF0aEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFuaW1hdGlvblJ1bm5pbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5kcmF3U2VyaWVzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZHJhd1NlcmllcyhjdXJyZW50U2VyaWVJbmRleDogbnVtYmVyID0gMCwgYW5nbGVDdXJyZW50UG9zaXRpb246IG51bWJlciA9IDApIHtcbiAgICBjb25zdCBpc0ZpbmlzaGVkRHJhd2luZ0N1cnJlbnRTZXJpZXMgPSBhbmdsZUN1cnJlbnRQb3NpdGlvbiA+IHRoaXMuY2hhcnRJdGVtRW5kQW5nbGU7XG4gICAgY29uc3QgaXNGaW5pc2hlZERyYXdpbmdBbGxTZXJpZXMgPSBjdXJyZW50U2VyaWVJbmRleCA9PT0gdGhpcy5zdmdQYXRoRWxlbWVudHNMaXN0Lmxlbmd0aDtcblxuICAgIGlmIChpc0ZpbmlzaGVkRHJhd2luZ0FsbFNlcmllcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbmlzaGVkRHJhd2luZ0N1cnJlbnRTZXJpZXMpIHtcbiAgICAgIHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSA9IHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSArIHRoaXMuY2hhcnRJdGVtRW5kQW5nbGU7XG4gICAgICBjdXJyZW50U2VyaWVJbmRleCsrO1xuICAgICAgdGhpcy5jaGFydEl0ZW1FbmRBbmdsZSA9IHRoaXMuY2hhcnRJdGVtc0VuZEFuZ2xlTGlzdFtjdXJyZW50U2VyaWVJbmRleF07XG4gICAgICBhbmdsZUN1cnJlbnRQb3NpdGlvbiA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuZ2xlQ3VycmVudFBvc2l0aW9uICs9IHBvQ2hhcnRBbmdsZVN0ZXBJbnRlcnZhbDtcblxuICAgICAgdGhpcy5kcmF3UGF0aChcbiAgICAgICAgdGhpcy5zdmdQYXRoRWxlbWVudHNMaXN0W2N1cnJlbnRTZXJpZUluZGV4XSxcbiAgICAgICAgdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlLFxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRFbmRBbmdsZShhbmdsZUN1cnJlbnRQb3NpdGlvbilcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc2V0VGV4dFByb3BlcnRpZXMoXG4gICAgICAgIHRoaXMuc3ZnVGV4dEVsZW1lbnRzTGlzdFtjdXJyZW50U2VyaWVJbmRleF0sXG4gICAgICAgIHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSxcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVDdXJyZW50RW5kQW5nbGUoYW5nbGVDdXJyZW50UG9zaXRpb24pXG4gICAgICApO1xuICAgIH1cblxuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5kcmF3U2VyaWVzLmJpbmQodGhpcywgY3VycmVudFNlcmllSW5kZXgsIGFuZ2xlQ3VycmVudFBvc2l0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFdmVudE9uRW50ZXIoZXZlbnQ6IFBvQ2hhcnRHYXVnZVNlcmllKSB7XG4gICAgdGhpcy5vblNlcmllSG92ZXIubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvbnRTaXplKCkge1xuICAgIGNvbnN0IGZvbnRTaXplUG9yY2VudCA9IDAuMDQ7XG5cbiAgICBjb25zdCBmb250U2l6ZSA9IGZvbnRTaXplUG9yY2VudCAqIHRoaXMuY2hhcnRXcmFwcGVyO1xuXG4gICAgcmV0dXJuIGAke2ZvbnRTaXplLnRvRml4ZWQoMCl9cHhgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQZXJjZW50VmFsdWUodmFsdWU6IG51bWJlciwgdG90YWxWYWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcGVyY2VudFZhbHVlID0gKHZhbHVlIC8gdG90YWxWYWx1ZSkgKiAxMDA7XG5cbiAgICBjb25zdCBmbG9hdFBlcmNlbnRWYWx1ZSA9IGNvbnZlcnROdW1iZXJUb0RlY2ltYWwocGVyY2VudFZhbHVlLCAyKTtcblxuICAgIHJldHVybiBTdHJpbmcoZmxvYXRQZXJjZW50VmFsdWUpLnJlcGxhY2UoJy4nLCAnLCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgIGlmIChQb0RlZmF1bHRDb2xvcnNUZXh0QmxhY2suaW5jbHVkZXMoY29sb3IpKSB7XG4gICAgICByZXR1cm4gcG9DaGFydEJsYWNrQ29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvQ2hhcnRXaGl0ZUNvbG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwVmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLlBpZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UGVyY2VudFZhbHVlKHZhbHVlLCB0aGlzLnRvdGFsVmFsdWUpICsgJyUnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlcmllVmFsdWVFcXVhbFplcm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWVzLmxlbmd0aCAmJiB0aGlzLnNlcmllc1swXS52YWx1ZSA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZUNsaWNrKCkge1xuICAgIGxldCBzZXJpZU9uQ2xpY2s6IFBvQ2hhcnRHYXVnZVNlcmllO1xuXG4gICAgY29uc3QgeyBjb2xvciwgLi4uc2VyaWUgfSA9IHRoaXMuc2VyaWVzWzBdO1xuICAgIHNlcmllT25DbGljayA9IHNlcmllO1xuXG4gICAgdGhpcy5vblNlcmllQ2xpY2submV4dChzZXJpZU9uQ2xpY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlRW50ZXIoZXZlbnQpIHtcbiAgICBsZXQgc2VyaWVPbkVudGVyOiBQb0NoYXJ0R2F1Z2VTZXJpZTtcblxuICAgIGNvbnN0IHsgY29sb3IsIC4uLnNlcmllIH0gPSB0aGlzLnNlcmllc1swXTtcblxuICAgIHRoaXMuY2hhcnRFbGVtZW50RGVzY3JpcHRpb24gPSBldmVudC50YXJnZXQuZ2V0QXR0cmlidXRlTlMobnVsbCwgJ2RhdGEtdG9vbHRpcC1jYXRlZ29yeScpO1xuICAgIHNlcmllT25FbnRlciA9IHNlcmllO1xuXG4gICAgdGhpcy5lbWl0RXZlbnRPbkVudGVyKHNlcmllT25FbnRlcik7XG4gIH1cblxuICBwcml2YXRlIG9uV2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuY2FsY3VsYXRlU1ZHRGltZW5zaW9ucygpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ3dpZHRoJywgYCR7dGhpcy5jZW50ZXJYfWApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMuc3ZnSGVpZ2h0fWApO1xuICAgIHRoaXMud2luZG93UmVzaXplRW1pdHRlci5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVdpbmRvd1Jlc2l6ZUxpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVXaW5kb3dTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy53aW5kb3dTY3JvbGxMaXN0ZW5lcikge1xuICAgICAgdGhpcy53aW5kb3dTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgbGV0IGNoYXJ0U2VyaWVzOiBBcnJheTxzdHJpbmc+ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wby1wYXRoLWl0ZW0nKTtcbiAgICBjaGFydFNlcmllcyA9IEFycmF5LmZyb20oY2hhcnRTZXJpZXMpO1xuICAgIGNoYXJ0U2VyaWVzLmZvckVhY2goc2VyaWUgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2VyaWUsICdjbGljaycsIHRoaXMub25Nb3VzZUNsaWNrLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc2VyaWUsICdtb3VzZWVudGVyJywgdGhpcy5vbk1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG5cbiAgICAgIGlmICghdGhpcy5pc0NoYXJ0R2F1Z2VUeXBlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNlcmllLCAnbW91c2Vtb3ZlJywgdGhpcy5jaGFuZ2VUb29sdGlwUG9zaXRpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNlcmllLCAnbW91c2VsZWF2ZScsIHRoaXMucmVtb3ZlVG9vbHRpcC5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMud2luZG93UmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdyZXNpemUnLCB0aGlzLm9uV2luZG93UmVzaXplLmJpbmQodGhpcykpO1xuICAgIHRoaXMud2luZG93U2Nyb2xsTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgIHRoaXMuY2hlY2tpbmdJZlNjcm9sbHNXaXRoUG9QYWdlKCksXG4gICAgICAnc2Nyb2xsJyxcbiAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcC5iaW5kKHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5uZXJSYWRpdXModHlwZTogUG9DaGFydFR5cGUpIHtcbiAgICBsZXQgc2VyaWVXaWR0aDtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBQb0NoYXJ0VHlwZS5Eb251dDoge1xuICAgICAgICBzZXJpZVdpZHRoID0gcG9DaGFydERvbnV0U2VyaWVXaWR0aDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgUG9DaGFydFR5cGUuR2F1Z2U6IHtcbiAgICAgICAgc2VyaWVXaWR0aCA9IHBvQ2hhcnRHYXVnZVNlcmllV2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBQb0NoYXJ0VHlwZS5QaWU6IHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2VudGVyWCAtIHRoaXMuY2VudGVyWCAqIHNlcmllV2lkdGg7XG4gIH1cblxuICBwcml2YXRlIHNldFRleHRQcm9wZXJ0aWVzKHRleHQsIHN0YXJ0QW5nbGU6IG51bWJlciwgZW5kQW5nbGU6IG51bWJlcikge1xuICAgIC8vIG5lY2Vzc8OhcmlvIHRleHQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggcGFyYSBjb250b3JuYXIgZXJybyBkZSBjb25zb2xlIGNhdXNhZG8gbm8gRmlyZWZveFxuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0ICYmIHRleHQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpIHtcbiAgICAgIC8vIHV0aWxpemFkbyBwYXJhIHJlY3VwZXJhciBvIGFuZ3VsbyBkbyBtZWlvLCBlbnRyZSBvIGluaWNpbyBlIGZpbSBwYXJhIGNlbnRyYWxpemFyIG8gdGV4dG9cbiAgICAgIGNvbnN0IGNlbnRlckFuZ2xlID0gKHN0YXJ0QW5nbGUgKyBlbmRBbmdsZSkgLyAyO1xuICAgICAgY29uc3QgdGV4dEJveCA9IHRleHQuZ2V0QkJveCgpO1xuXG4gICAgICBjb25zdCBoYWxmVGV4dFdpZHRoID0gdGV4dEJveC53aWR0aCAvIDI7XG4gICAgICBjb25zdCBoYWxmVGV4dEhlaWdodCA9IHRleHRCb3guaGVpZ2h0IC8gMjtcblxuICAgICAgLy8gcmFkaXVzIGludGVybm8gKGNpcmN1bG8gYnJhbmNvKSArIGEgbWV0YWRlIGRhIGRpZmVyZW7Dp2EgZW50cmUgdGFtYW5obyBkbyBjZW50cm8gZSByYWRpdXMgaW50ZXJub1xuICAgICAgY29uc3QgcmFkaXVzID0gdGhpcy5pbm5lclJhZGl1cyArICh0aGlzLmNlbnRlclggLSB0aGlzLmlubmVyUmFkaXVzKSAvIDI7XG5cbiAgICAgIGNvbnN0IHhDb29yZGluYXRlID0gcmFkaXVzICogTWF0aC5jb3MoY2VudGVyQW5nbGUpICsgdGhpcy5jZW50ZXJYIC0gaGFsZlRleHRXaWR0aDtcbiAgICAgIGNvbnN0IHlDb29yZGluYXRlID0gcmFkaXVzICogTWF0aC5zaW4oY2VudGVyQW5nbGUpICsgdGhpcy5jZW50ZXJYICsgaGFsZlRleHRIZWlnaHQgLyAyO1xuICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUoJ3gnLCB4Q29vcmRpbmF0ZSk7XG4gICAgICB0ZXh0LnNldEF0dHJpYnV0ZSgneScsIHlDb29yZGluYXRlKTtcbiAgICAgIHRleHQuc2V0QXR0cmlidXRlKCdmaWxsLW9wYWNpdHknLCAnMScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcFBvc2l0aW9ucyhldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGRpc3BsYWNlbWVudDogbnVtYmVyID0gODtcblxuICAgIHJldHVybiB7XG4gICAgICBsZWZ0OiBldmVudC5jbGllbnRYIC0gdGhpcy50b29sdGlwRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsXG4gICAgICB0b3A6IGV2ZW50LmNsaWVudFkgLSB0aGlzLnRvb2x0aXBFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRpc3BsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldEVsZW1lbnRBdHRyaWJ1dGVzKHN2Z0VsZW1lbnQsIHNlcmllKSB7XG4gICAgY29uc3QgeyB0b29sdGlwIH0gPSBzZXJpZTtcbiAgICBjb25zdCBkYXRhID0gc2VyaWUuZGF0YSA/PyBzZXJpZS52YWx1ZTtcbiAgICBjb25zdCBsYWJlbCA9IHNlcmllLmxhYmVsID8/IChzZXJpZS5kZXNjcmlwdGlvbiB8fCBzZXJpZS5jYXRlZ29yeSk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnZGF0YS10b29sdGlwLXZhbHVlJywgYCR7ZGF0YX1gKTtcblxuICAgIGlmICh0aGlzLmlzQ2hhcnRHYXVnZVR5cGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsICdkYXRhLXRvb2x0aXAtZGVzY3JpcHRpb24nLCBsYWJlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvb2x0aXBWYWx1ZSA9IHRoaXMuZ2V0VG9vbHRpcFZhbHVlKGRhdGEpO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnZGF0YS10b29sdGlwLWNhdGVnb3J5JywgbGFiZWwpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgJ2RhdGEtdG9vbHRpcC10ZXh0JywgdG9vbHRpcCB8fCBgJHtsYWJlbH06ICR7dG9vbHRpcFZhbHVlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd1Rvb2x0aXAoKSB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG8taW52aXNpYmxlJyk7XG4gIH1cbn1cbiJdfQ==
1
+ /* eslint-disable */
2
+ import { __rest } from "tslib";
3
+ import { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';
4
+ import { Subject } from 'rxjs';
5
+ import { convertNumberToDecimal } from '../../../../utils/util';
6
+ import { poChartAngleStepInterval, poChartCompleteCircle, poChartDonutSerieWidth, poChartGaugeSerieWidth, poChartStartAngle } from './po-chart-circular.constant';
7
+ import { PoDefaultColorsTextBlack } from '../../../../services/po-color/po-colors.constant';
8
+ import { PoChartDynamicTypeComponent } from '../po-chart-dynamic-type.component';
9
+ import { PoChartType } from '../../enums/po-chart-type.enum';
10
+ const poChartBlackColor = '#000000';
11
+ const poChartWhiteColor = '#ffffff';
12
+ export class PoChartCircular extends PoChartDynamicTypeComponent {
13
+ constructor(el, ngZone, renderer) {
14
+ super();
15
+ this.el = el;
16
+ this.ngZone = ngZone;
17
+ this.renderer = renderer;
18
+ this.chartItemStartAngle = poChartStartAngle;
19
+ this.windowResizeEmitter = new Subject();
20
+ this.chartItemsEndAngleList = [];
21
+ this.svgPathElementsList = [];
22
+ this.svgTextElementsList = [];
23
+ }
24
+ ngOnDestroy() {
25
+ this.removeWindowResizeListener();
26
+ this.removeWindowScrollListener();
27
+ this.animationRunning = false;
28
+ }
29
+ ngOnInit() {
30
+ this.chartInitSetup();
31
+ this.setEventListeners();
32
+ }
33
+ removeTooltip() {
34
+ if (this.tooltipElement) {
35
+ this.renderer.addClass(this.tooltipElement, 'po-invisible');
36
+ }
37
+ }
38
+ drawPath(path, chartItemStartAngle, chartItemEndAngle) {
39
+ const sinAlpha = Math.sin(chartItemStartAngle);
40
+ const cosAlpha = Math.cos(chartItemStartAngle);
41
+ const sinBeta = Math.sin(chartItemEndAngle);
42
+ const cosBeta = Math.cos(chartItemEndAngle);
43
+ const startX = this.centerX + cosAlpha * this.centerX;
44
+ const startY = this.centerX + sinAlpha * this.centerX;
45
+ const endX = this.centerX + cosBeta * this.centerX;
46
+ const endY = this.centerX + sinBeta * this.centerX;
47
+ const startInnerX = this.centerX + cosAlpha * this.innerRadius;
48
+ const startInnerY = this.centerX + sinAlpha * this.innerRadius;
49
+ const endInnerX = this.centerX + cosBeta * this.innerRadius;
50
+ const endInnerY = this.centerX + sinBeta * this.innerRadius;
51
+ const halfGaugeCoordinates = [
52
+ 'M',
53
+ startX,
54
+ startY,
55
+ 'A',
56
+ this.centerX,
57
+ this.centerX,
58
+ 0,
59
+ '0,1',
60
+ endX,
61
+ endY,
62
+ 'A',
63
+ 1,
64
+ 1,
65
+ 0,
66
+ '0,1',
67
+ endInnerX,
68
+ endInnerY,
69
+ 'A',
70
+ this.innerRadius,
71
+ this.innerRadius,
72
+ 0,
73
+ '0,0',
74
+ startInnerX,
75
+ startInnerY,
76
+ 'A',
77
+ 1,
78
+ 1,
79
+ 0,
80
+ '0,1',
81
+ startX,
82
+ startY,
83
+ 'Z'
84
+ ].join(' ');
85
+ return path.setAttribute('d', halfGaugeCoordinates);
86
+ }
87
+ getSeriesWithValue(series) {
88
+ const newSeries = [];
89
+ series.forEach((serie, index) => {
90
+ var _a;
91
+ const value = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
92
+ if (value > 0) {
93
+ newSeries.push(Object.assign(Object.assign({}, serie), { color: this.colors[index] }));
94
+ }
95
+ });
96
+ return newSeries;
97
+ }
98
+ animationSetup() {
99
+ this.chartItemEndAngle = this.chartItemsEndAngleList[0];
100
+ this.animationRunning = true;
101
+ this.drawPathInit();
102
+ }
103
+ appendGaugeBackgroundPathElement(svgPathsWrapper) {
104
+ const svgPath = this.renderer.createElement('svg:path', 'svg');
105
+ this.renderer.setAttribute(svgPath, 'class', 'po-chart-gauge-base-path');
106
+ svgPathsWrapper.appendChild(svgPath);
107
+ this.renderer.appendChild(this.svgElement, svgPathsWrapper);
108
+ }
109
+ calculateAngleRadians() {
110
+ this.series.forEach((serie, index) => {
111
+ var _a;
112
+ const data = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
113
+ this.chartItemsEndAngleList[index] = this.calculateEndAngle(data, this.totalValue);
114
+ });
115
+ }
116
+ calculateCurrentEndAngle(angleCurrentPosition) {
117
+ const isSerieDrawCompleted = this.chartItemStartAngle + angleCurrentPosition > this.chartItemStartAngle + this.chartItemEndAngle;
118
+ if (isSerieDrawCompleted) {
119
+ return this.chartItemStartAngle + this.chartItemEndAngle - poChartCompleteCircle;
120
+ }
121
+ else {
122
+ return this.chartItemStartAngle + angleCurrentPosition;
123
+ }
124
+ }
125
+ calculateEndAngle(value, totalValue) {
126
+ const endAngle = (value / totalValue) * (Math.PI * 2);
127
+ return this.isChartGaugeType ? endAngle / 2 : endAngle;
128
+ }
129
+ calculateSVGDimensions() {
130
+ this.calculateSVGContainerDimensions(this.chartWrapper, this.chartHeader, this.chartLegend);
131
+ this.innerRadius = this.setInnerRadius(this.type);
132
+ }
133
+ changeTooltipPosition(event) {
134
+ if (this.tooltipElement && this.tooltipElement.classList.contains('po-invisible')) {
135
+ this.showTooltip();
136
+ }
137
+ const tooltipPositions = this.setTooltipPositions(event);
138
+ this.renderer.setStyle(this.tooltipElement, 'left', `${tooltipPositions.left}px`);
139
+ this.renderer.setStyle(this.tooltipElement, 'top', `${tooltipPositions.top}px`);
140
+ }
141
+ chartInitSetup() {
142
+ this.calculateSVGDimensions();
143
+ this.calculateTotalValue();
144
+ this.calculateAngleRadians();
145
+ this.createSVGElements();
146
+ this.animationSetup();
147
+ }
148
+ checkingIfScrollsWithPoPage() {
149
+ const poPageContent = document.getElementsByClassName('po-page-content');
150
+ return poPageContent.length ? poPageContent[0] : window;
151
+ }
152
+ createPath(serie, svgPathsWrapper) {
153
+ const svgPath = this.renderer.createElement('svg:path', 'svg');
154
+ this.renderer.setAttribute(svgPath, 'class', 'po-path-item');
155
+ this.renderer.setAttribute(svgPath, 'fill', serie.color);
156
+ this.setElementAttributes(svgPath, serie);
157
+ svgPathsWrapper.appendChild(svgPath);
158
+ this.renderer.appendChild(this.svgElement, svgPathsWrapper);
159
+ this.svgPathElementsList.push(svgPath);
160
+ }
161
+ createPaths() {
162
+ const svgPathsWrapper = this.renderer.createElement('svg:g', 'svg');
163
+ if (this.isChartGaugeType) {
164
+ this.appendGaugeBackgroundPathElement(svgPathsWrapper);
165
+ // Tratamento para evitar que o path desenhe os arcos referentes ao border radius do path.
166
+ if (this.isSerieValueEqualZero()) {
167
+ return;
168
+ }
169
+ }
170
+ this.series.forEach(serie => this.createPath(serie, svgPathsWrapper));
171
+ }
172
+ createText(serie) {
173
+ const data = serie.value;
174
+ const svgG = this.renderer.createElement('svg:g', 'svg');
175
+ const svgText = this.renderer.createElement('svg:text', 'svg');
176
+ const fontSize = this.getFontSize();
177
+ const textColor = this.getTextColor(serie.color);
178
+ svgText.textContent = this.getPercentValue(data, this.totalValue) + '%';
179
+ this.renderer.setAttribute(svgText, 'class', 'po-path-item');
180
+ this.renderer.setAttribute(svgText, 'fill', textColor);
181
+ this.renderer.setAttribute(svgText, 'font-size', fontSize);
182
+ this.renderer.setAttribute(svgText, 'fill-opacity', '0');
183
+ this.setElementAttributes(svgText, serie);
184
+ this.renderer.appendChild(svgG, svgText);
185
+ this.renderer.appendChild(this.svgElement, svgG);
186
+ this.svgTextElementsList.push(svgText);
187
+ }
188
+ createTexts() {
189
+ if (this.type === PoChartType.Donut) {
190
+ this.series.forEach(serie => this.createText(serie));
191
+ }
192
+ }
193
+ createSVGElements() {
194
+ const viewBoxHeight = this.isChartGaugeType
195
+ ? this.centerX + this.centerX * poChartGaugeSerieWidth
196
+ : this.chartWrapper;
197
+ const preserveAspectRatio = this.isChartGaugeType ? 'xMidYMax' : 'xMidYMin';
198
+ this.svgElement = this.renderer.createElement('svg:svg', 'svg');
199
+ this.renderer.setAttribute(this.svgElement, 'viewBox', `0 0 ${this.chartWrapper} ${viewBoxHeight}`);
200
+ this.renderer.setAttribute(this.svgElement, 'preserveAspectRatio', `${preserveAspectRatio} meet`);
201
+ this.renderer.setAttribute(this.svgElement, 'class', 'po-chart-svg-element');
202
+ this.renderer.setAttribute(this.svgElement, 'width', `${this.centerX}`);
203
+ this.renderer.setAttribute(this.svgElement, 'height', `${this.svgHeight}`);
204
+ this.svgContainer.nativeElement.appendChild(this.svgElement);
205
+ this.createPaths();
206
+ this.createTexts();
207
+ }
208
+ drawPathInit() {
209
+ if (!this.animationRunning) {
210
+ return;
211
+ }
212
+ else {
213
+ this.ngZone.runOutsideAngular(() => this.drawSeries());
214
+ }
215
+ }
216
+ drawSeries(currentSerieIndex = 0, angleCurrentPosition = 0) {
217
+ const isFinishedDrawingCurrentSeries = angleCurrentPosition > this.chartItemEndAngle;
218
+ const isFinishedDrawingAllSeries = currentSerieIndex === this.svgPathElementsList.length;
219
+ if (isFinishedDrawingAllSeries) {
220
+ return;
221
+ }
222
+ if (isFinishedDrawingCurrentSeries) {
223
+ this.chartItemStartAngle = this.chartItemStartAngle + this.chartItemEndAngle;
224
+ currentSerieIndex++;
225
+ this.chartItemEndAngle = this.chartItemsEndAngleList[currentSerieIndex];
226
+ angleCurrentPosition = 0;
227
+ }
228
+ else {
229
+ angleCurrentPosition += poChartAngleStepInterval;
230
+ this.drawPath(this.svgPathElementsList[currentSerieIndex], this.chartItemStartAngle, this.calculateCurrentEndAngle(angleCurrentPosition));
231
+ this.setTextProperties(this.svgTextElementsList[currentSerieIndex], this.chartItemStartAngle, this.calculateCurrentEndAngle(angleCurrentPosition));
232
+ }
233
+ window.requestAnimationFrame(this.drawSeries.bind(this, currentSerieIndex, angleCurrentPosition));
234
+ }
235
+ emitEventOnEnter(event) {
236
+ this.onSerieHover.next(event);
237
+ }
238
+ getFontSize() {
239
+ const fontSizePorcent = 0.04;
240
+ const fontSize = fontSizePorcent * this.chartWrapper;
241
+ return `${fontSize.toFixed(0)}px`;
242
+ }
243
+ getPercentValue(value, totalValue) {
244
+ const percentValue = (value / totalValue) * 100;
245
+ const floatPercentValue = convertNumberToDecimal(percentValue, 2);
246
+ return String(floatPercentValue).replace('.', ',');
247
+ }
248
+ getTextColor(color) {
249
+ if (PoDefaultColorsTextBlack.includes(color)) {
250
+ return poChartBlackColor;
251
+ }
252
+ return poChartWhiteColor;
253
+ }
254
+ getTooltipValue(value) {
255
+ if (this.type === PoChartType.Pie) {
256
+ return value.toString();
257
+ }
258
+ return this.getPercentValue(value, this.totalValue) + '%';
259
+ }
260
+ isSerieValueEqualZero() {
261
+ return this.series.length && this.series[0].value === 0;
262
+ }
263
+ onMouseClick() {
264
+ let serieOnClick;
265
+ const _a = this.series[0], { color } = _a, serie = __rest(_a, ["color"]);
266
+ serieOnClick = serie;
267
+ this.onSerieClick.next(serieOnClick);
268
+ }
269
+ onMouseEnter(event) {
270
+ let serieOnEnter;
271
+ const _a = this.series[0], { color } = _a, serie = __rest(_a, ["color"]);
272
+ this.chartElementDescription = event.target.getAttributeNS(null, 'data-tooltip-category');
273
+ serieOnEnter = serie;
274
+ this.emitEventOnEnter(serieOnEnter);
275
+ }
276
+ onWindowResize() {
277
+ this.calculateSVGDimensions();
278
+ this.renderer.setAttribute(this.svgElement, 'width', `${this.centerX}`);
279
+ this.renderer.setAttribute(this.svgElement, 'height', `${this.svgHeight}`);
280
+ this.windowResizeEmitter.next();
281
+ }
282
+ removeWindowResizeListener() {
283
+ if (this.windowResizeListener) {
284
+ this.windowResizeListener();
285
+ }
286
+ }
287
+ removeWindowScrollListener() {
288
+ if (this.windowScrollListener) {
289
+ this.windowScrollListener();
290
+ }
291
+ }
292
+ setEventListeners() {
293
+ let chartSeries = this.el.nativeElement.querySelectorAll('.po-path-item');
294
+ chartSeries = Array.from(chartSeries);
295
+ chartSeries.forEach(serie => {
296
+ this.renderer.listen(serie, 'click', this.onMouseClick.bind(this));
297
+ this.renderer.listen(serie, 'mouseenter', this.onMouseEnter.bind(this));
298
+ if (!this.isChartGaugeType) {
299
+ this.renderer.listen(serie, 'mousemove', this.changeTooltipPosition.bind(this));
300
+ this.renderer.listen(serie, 'mouseleave', this.removeTooltip.bind(this));
301
+ }
302
+ });
303
+ this.windowResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));
304
+ this.windowScrollListener = this.renderer.listen(this.checkingIfScrollsWithPoPage(), 'scroll', this.removeTooltip.bind(this));
305
+ }
306
+ setInnerRadius(type) {
307
+ let serieWidth;
308
+ switch (type) {
309
+ case PoChartType.Donut: {
310
+ serieWidth = poChartDonutSerieWidth;
311
+ break;
312
+ }
313
+ case PoChartType.Gauge: {
314
+ serieWidth = poChartGaugeSerieWidth;
315
+ break;
316
+ }
317
+ case PoChartType.Pie: {
318
+ return 0;
319
+ }
320
+ }
321
+ return this.centerX - this.centerX * serieWidth;
322
+ }
323
+ setTextProperties(text, startAngle, endAngle) {
324
+ // necessário text.getClientRects().length para contornar erro de console causado no Firefox
325
+ if (this.type === PoChartType.Donut && text.getClientRects().length) {
326
+ // utilizado para recuperar o angulo do meio, entre o inicio e fim para centralizar o texto
327
+ const centerAngle = (startAngle + endAngle) / 2;
328
+ const textBox = text.getBBox();
329
+ const halfTextWidth = textBox.width / 2;
330
+ const halfTextHeight = textBox.height / 2;
331
+ // radius interno (circulo branco) + a metade da diferença entre tamanho do centro e radius interno
332
+ const radius = this.innerRadius + (this.centerX - this.innerRadius) / 2;
333
+ const xCoordinate = radius * Math.cos(centerAngle) + this.centerX - halfTextWidth;
334
+ const yCoordinate = radius * Math.sin(centerAngle) + this.centerX + halfTextHeight / 2;
335
+ text.setAttribute('x', xCoordinate);
336
+ text.setAttribute('y', yCoordinate);
337
+ text.setAttribute('fill-opacity', '1');
338
+ }
339
+ }
340
+ setTooltipPositions(event) {
341
+ const displacement = 8;
342
+ return {
343
+ left: event.clientX - this.tooltipElement.offsetWidth / 2,
344
+ top: event.clientY - this.tooltipElement.offsetHeight - displacement
345
+ };
346
+ }
347
+ setElementAttributes(svgElement, serie) {
348
+ var _a, _b;
349
+ const { tooltip } = serie;
350
+ const data = (_a = serie.data) !== null && _a !== void 0 ? _a : serie.value;
351
+ const label = (_b = serie.label) !== null && _b !== void 0 ? _b : (serie.description || serie.category);
352
+ this.renderer.setAttribute(svgElement, 'data-tooltip-value', `${data}`);
353
+ if (this.isChartGaugeType) {
354
+ this.renderer.setAttribute(svgElement, 'data-tooltip-description', label);
355
+ }
356
+ else {
357
+ const tooltipValue = this.getTooltipValue(data);
358
+ this.renderer.setAttribute(svgElement, 'data-tooltip-category', label);
359
+ this.renderer.setAttribute(svgElement, 'data-tooltip-text', tooltip || `${label}: ${tooltipValue}`);
360
+ }
361
+ }
362
+ showTooltip() {
363
+ this.renderer.removeClass(this.tooltipElement, 'po-invisible');
364
+ }
365
+ }
366
+ PoChartCircular.decorators = [
367
+ { type: Directive }
368
+ ];
369
+ PoChartCircular.ctorParameters = () => [
370
+ { type: ElementRef },
371
+ { type: NgZone },
372
+ { type: Renderer2 }
373
+ ];
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtY2lyY3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvcG8tY2hhcnQtdHlwZXMvcG8tY2hhcnQtY2lyY3VsYXIvcG8tY2hhcnQtY2lyY3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9COztBQUVwQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDO0FBR3BDLE1BQU0sT0FBTyxlQUFnQixTQUFRLDJCQUEyQjtJQVU5RCxZQUFzQixFQUFjLEVBQVUsTUFBYyxFQUFVLFFBQW1CO1FBQ3ZGLEtBQUssRUFBRSxDQUFDO1FBRFksT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVHpGLHdCQUFtQixHQUFHLGlCQUFpQixDQUFDO1FBQ3hDLHdCQUFtQixHQUFpQixJ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Q0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxLQUFLOztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQUEsS0FBSyxDQUFDLElBQUksbUNBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNMLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLElBQUksR0FBRyxLQUFLLEtBQUssWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNyRztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7O1lBMWNGLFNBQVM7OztZQXJCVSxVQUFVO1lBQUUsTUFBTTtZQUFxQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IGNvbnZlcnROdW1iZXJUb0RlY2ltYWwgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy91dGlsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgcG9DaGFydEFuZ2xlU3RlcEludGVydmFsLFxyXG4gIHBvQ2hhcnRDb21wbGV0ZUNpcmNsZSxcclxuICBwb0NoYXJ0RG9udXRTZXJpZVdpZHRoLFxyXG4gIHBvQ2hhcnRHYXVnZVNlcmllV2lkdGgsXHJcbiAgcG9DaGFydFN0YXJ0QW5nbGVcclxufSBmcm9tICcuL3BvLWNoYXJ0LWNpcmN1bGFyLmNvbnN0YW50JztcclxuaW1wb3J0IHsgUG9EZWZhdWx0Q29sb3JzVGV4dEJsYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tY29sb3IvcG8tY29sb3JzLmNvbnN0YW50JztcclxuXHJcbmltcG9ydCB7IFBvQ2hhcnREeW5hbWljVHlwZUNvbXBvbmVudCB9IGZyb20gJy4uL3BvLWNoYXJ0LWR5bmFtaWMtdHlwZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb0NoYXJ0R2F1Z2VTZXJpZSB9IGZyb20gJy4uL3BvLWNoYXJ0LWdhdWdlL3BvLWNoYXJ0LWdhdWdlLXNlcmllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb0NoYXJ0VHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3BvLWNoYXJ0LXR5cGUuZW51bSc7XHJcblxyXG5jb25zdCBwb0NoYXJ0QmxhY2tDb2xvciA9ICcjMDAwMDAwJztcclxuY29uc3QgcG9DaGFydFdoaXRlQ29sb3IgPSAnI2ZmZmZmZic7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFBvQ2hhcnRDaXJjdWxhciBleHRlbmRzIFBvQ2hhcnREeW5hbWljVHlwZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBjaGFydEl0ZW1TdGFydEFuZ2xlID0gcG9DaGFydFN0YXJ0QW5nbGU7XHJcbiAgd2luZG93UmVzaXplRW1pdHRlcjogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBhbmltYXRpb25SdW5uaW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgY2hhcnRJdGVtRW5kQW5nbGU6IG51bWJlcjtcclxuICBwcml2YXRlIGNoYXJ0SXRlbXNFbmRBbmdsZUxpc3Q6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBwcml2YXRlIHN2Z1BhdGhFbGVtZW50c0xpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBwcml2YXRlIHN2Z1RleHRFbGVtZW50c0xpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVtb3ZlV2luZG93UmVzaXplTGlzdGVuZXIoKTtcclxuICAgIHRoaXMucmVtb3ZlV2luZG93U2Nyb2xsTGlzdGVuZXIoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uUnVubmluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNoYXJ0SW5pdFNldHVwKCk7XHJcbiAgICB0aGlzLnNldEV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVUb29sdGlwKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG8taW52aXNpYmxlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZHJhd1BhdGgocGF0aCwgY2hhcnRJdGVtU3RhcnRBbmdsZSwgY2hhcnRJdGVtRW5kQW5nbGUpIHtcclxuICAgIGNvbnN0IHNpbkFscGhhID0gTWF0aC5zaW4oY2hhcnRJdGVtU3RhcnRBbmdsZSk7XHJcbiAgICBjb25zdCBjb3NBbHBoYSA9IE1hdGguY29zKGNoYXJ0SXRlbVN0YXJ0QW5nbGUpO1xyXG5cclxuICAgIGNvbnN0IHNpbkJldGEgPSBNYXRoLnNpbihjaGFydEl0ZW1FbmRBbmdsZSk7XHJcbiAgICBjb25zdCBjb3NCZXRhID0gTWF0aC5jb3MoY2hhcnRJdGVtRW5kQW5nbGUpO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0WCA9IHRoaXMuY2VudGVyWCArIGNvc0FscGhhICogdGhpcy5jZW50ZXJYO1xyXG4gICAgY29uc3Qgc3RhcnRZID0gdGhpcy5jZW50ZXJYICsgc2luQWxwaGEgKiB0aGlzLmNlbnRlclg7XHJcblxyXG4gICAgY29uc3QgZW5kWCA9IHRoaXMuY2VudGVyWCArIGNvc0JldGEgKiB0aGlzLmNlbnRlclg7XHJcbiAgICBjb25zdCBlbmRZID0gdGhpcy5jZW50ZXJYICsgc2luQmV0YSAqIHRoaXMuY2VudGVyWDtcclxuXHJcbiAgICBjb25zdCBzdGFydElubmVyWCA9IHRoaXMuY2VudGVyWCArIGNvc0FscGhhICogdGhpcy5pbm5lclJhZGl1cztcclxuICAgIGNvbnN0IHN0YXJ0SW5uZXJZID0gdGhpcy5jZW50ZXJYICsgc2luQWxwaGEgKiB0aGlzLmlubmVyUmFkaXVzO1xyXG5cclxuICAgIGNvbnN0IGVuZElubmVyWCA9IHRoaXMuY2VudGVyWCArIGNvc0JldGEgKiB0aGlzLmlubmVyUmFkaXVzO1xyXG4gICAgY29uc3QgZW5kSW5uZXJZID0gdGhpcy5jZW50ZXJYICsgc2luQmV0YSAqIHRoaXMuaW5uZXJSYWRpdXM7XHJcblxyXG4gICAgY29uc3QgaGFsZkdhdWdlQ29vcmRpbmF0ZXMgPSBbXHJcbiAgICAgICdNJyxcclxuICAgICAgc3RhcnRYLFxyXG4gICAgICBzdGFydFksXHJcbiAgICAgICdBJyxcclxuICAgICAgdGhpcy5jZW50ZXJYLFxyXG4gICAgICB0aGlzLmNlbnRlclgsXHJcbiAgICAgIDAsXHJcbiAgICAgICcwLDEnLFxyXG4gICAgICBlbmRYLFxyXG4gICAgICBlbmRZLFxyXG4gICAgICAnQScsXHJcbiAgICAgIDEsXHJcbiAgICAgIDEsXHJcbiAgICAgIDAsXHJcbiAgICAgICcwLDEnLFxyXG4gICAgICBlbmRJbm5lclgsXHJcbiAgICAgIGVuZElubmVyWSxcclxuICAgICAgJ0EnLFxyXG4gICAgICB0aGlzLmlubmVyUmFkaXVzLFxyXG4gICAgICB0aGlzLmlubmVyUmFkaXVzLFxyXG4gICAgICAwLFxyXG4gICAgICAnMCwwJyxcclxuICAgICAgc3RhcnRJbm5lclgsXHJcbiAgICAgIHN0YXJ0SW5uZXJZLFxyXG4gICAgICAnQScsXHJcbiAgICAgIDEsXHJcbiAgICAgIDEsXHJcbiAgICAgIDAsXHJcbiAgICAgICcwLDEnLFxyXG4gICAgICBzdGFydFgsXHJcbiAgICAgIHN0YXJ0WSxcclxuICAgICAgJ1onXHJcbiAgICBdLmpvaW4oJyAnKTtcclxuXHJcbiAgICByZXR1cm4gcGF0aC5zZXRBdHRyaWJ1dGUoJ2QnLCBoYWxmR2F1Z2VDb29yZGluYXRlcyk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0U2VyaWVzV2l0aFZhbHVlKHNlcmllczogQXJyYXk8UG9DaGFydEdhdWdlU2VyaWU+KSB7XHJcbiAgICBjb25zdCBuZXdTZXJpZXMgPSBbXTtcclxuXHJcbiAgICBzZXJpZXMuZm9yRWFjaCgoc2VyaWU6IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBzZXJpZS5kYXRhID8/IHNlcmllLnZhbHVlO1xyXG4gICAgICBpZiAodmFsdWUgPiAwKSB7XHJcbiAgICAgICAgbmV3U2VyaWVzLnB1c2goeyAuLi5zZXJpZSwgY29sb3I6IHRoaXMuY29sb3JzW2luZGV4XSB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld1NlcmllcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW5pbWF0aW9uU2V0dXAoKSB7XHJcbiAgICB0aGlzLmNoYXJ0SXRlbUVuZEFuZ2xlID0gdGhpcy5jaGFydEl0ZW1zRW5kQW5nbGVMaXN0WzBdO1xyXG4gICAgdGhpcy5hbmltYXRpb25SdW5uaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZHJhd1BhdGhJbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGVuZEdhdWdlQmFja2dyb3VuZFBhdGhFbGVtZW50KHN2Z1BhdGhzV3JhcHBlcjogYW55KSB7XHJcbiAgICBjb25zdCBzdmdQYXRoID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdmc6cGF0aCcsICdzdmcnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1BhdGgsICdjbGFzcycsICdwby1jaGFydC1nYXVnZS1iYXNlLXBhdGgnKTtcclxuICAgIHN2Z1BhdGhzV3JhcHBlci5hcHBlbmRDaGlsZChzdmdQYXRoKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zdmdFbGVtZW50LCBzdmdQYXRoc1dyYXBwZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVBbmdsZVJhZGlhbnMoKSB7XHJcbiAgICB0aGlzLnNlcmllcy5mb3JFYWNoKChzZXJpZSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgZGF0YSA9IHNlcmllLmRhdGEgPz8gc2VyaWUudmFsdWU7XHJcbiAgICAgIHRoaXMuY2hhcnRJdGVtc0VuZEFuZ2xlTGlzdFtpbmRleF0gPSB0aGlzLmNhbGN1bGF0ZUVuZEFuZ2xlKGRhdGEsIHRoaXMudG90YWxWYWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudEVuZEFuZ2xlKGFuZ2xlQ3VycmVudFBvc2l0aW9uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGlzU2VyaWVEcmF3Q29tcGxldGVkID1cclxuICAgICAgdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlICsgYW5nbGVDdXJyZW50UG9zaXRpb24gPiB0aGlzLmNoYXJ0SXRlbVN0YXJ0QW5nbGUgKyB0aGlzLmNoYXJ0SXRlbUVuZEFuZ2xlO1xyXG5cclxuICAgIGlmIChpc1NlcmllRHJhd0NvbXBsZXRlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlICsgdGhpcy5jaGFydEl0ZW1FbmRBbmdsZSAtIHBvQ2hhcnRDb21wbGV0ZUNpcmNsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoYXJ0SXRlbVN0YXJ0QW5nbGUgKyBhbmdsZUN1cnJlbnRQb3NpdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlRW5kQW5nbGUodmFsdWU6IG51bWJlciwgdG90YWxWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGVuZEFuZ2xlID0gKHZhbHVlIC8gdG90YWxWYWx1ZSkgKiAoTWF0aC5QSSAqIDIpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmlzQ2hhcnRHYXVnZVR5cGUgPyBlbmRBbmdsZSAvIDIgOiBlbmRBbmdsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlU1ZHRGltZW5zaW9ucygpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlU1ZHQ29udGFpbmVyRGltZW5zaW9ucyh0aGlzLmNoYXJ0V3JhcHBlciwgdGhpcy5jaGFydEhlYWRlciwgdGhpcy5jaGFydExlZ2VuZCk7XHJcblxyXG4gICAgdGhpcy5pbm5lclJhZGl1cyA9IHRoaXMuc2V0SW5uZXJSYWRpdXModGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlVG9vbHRpcFBvc2l0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwRWxlbWVudCAmJiB0aGlzLnRvb2x0aXBFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncG8taW52aXNpYmxlJykpIHtcclxuICAgICAgdGhpcy5zaG93VG9vbHRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRvb2x0aXBQb3NpdGlvbnMgPSB0aGlzLnNldFRvb2x0aXBQb3NpdGlvbnMoZXZlbnQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsIGAke3Rvb2x0aXBQb3NpdGlvbnMubGVmdH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAndG9wJywgYCR7dG9vbHRpcFBvc2l0aW9ucy50b3B9cHhgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhcnRJbml0U2V0dXAoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVNWR0RpbWVuc2lvbnMoKTtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxWYWx1ZSgpO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVBbmdsZVJhZGlhbnMoKTtcclxuICAgIHRoaXMuY3JlYXRlU1ZHRWxlbWVudHMoKTtcclxuICAgIHRoaXMuYW5pbWF0aW9uU2V0dXAoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tpbmdJZlNjcm9sbHNXaXRoUG9QYWdlKCkge1xyXG4gICAgY29uc3QgcG9QYWdlQ29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BvLXBhZ2UtY29udGVudCcpO1xyXG5cclxuICAgIHJldHVybiBwb1BhZ2VDb250ZW50Lmxlbmd0aCA/IHBvUGFnZUNvbnRlbnRbMF0gOiB3aW5kb3c7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVBhdGgoc2VyaWU6IFBvQ2hhcnRHYXVnZVNlcmllLCBzdmdQYXRoc1dyYXBwZXI6IGFueSkge1xyXG4gICAgY29uc3Qgc3ZnUGF0aCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3ZnOnBhdGgnLCAnc3ZnJyk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnUGF0aCwgJ2NsYXNzJywgJ3BvLXBhdGgtaXRlbScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnUGF0aCwgJ2ZpbGwnLCBzZXJpZS5jb2xvcik7XHJcblxyXG4gICAgdGhpcy5zZXRFbGVtZW50QXR0cmlidXRlcyhzdmdQYXRoLCBzZXJpZSk7XHJcblxyXG4gICAgc3ZnUGF0aHNXcmFwcGVyLmFwcGVuZENoaWxkKHN2Z1BhdGgpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zdmdFbGVtZW50LCBzdmdQYXRoc1dyYXBwZXIpO1xyXG5cclxuICAgIHRoaXMuc3ZnUGF0aEVsZW1lbnRzTGlzdC5wdXNoKHN2Z1BhdGgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQYXRocygpIHtcclxuICAgIGNvbnN0IHN2Z1BhdGhzV3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3ZnOmcnLCAnc3ZnJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNDaGFydEdhdWdlVHlwZSkge1xyXG4gICAgICB0aGlzLmFwcGVuZEdhdWdlQmFja2dyb3VuZFBhdGhFbGVtZW50KHN2Z1BhdGhzV3JhcHBlcik7XHJcbiAgICAgIC8vIFRyYXRhbWVudG8gcGFyYSBldml0YXIgcXVlIG8gcGF0aCBkZXNlbmhlIG9zIGFyY29zIHJlZmVyZW50ZXMgYW8gYm9yZGVyIHJhZGl1cyBkbyBwYXRoLlxyXG4gICAgICBpZiAodGhpcy5pc1NlcmllVmFsdWVFcXVhbFplcm8oKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VyaWVzLmZvckVhY2goc2VyaWUgPT4gdGhpcy5jcmVhdGVQYXRoKHNlcmllLCBzdmdQYXRoc1dyYXBwZXIpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dChzZXJpZTogUG9DaGFydEdhdWdlU2VyaWUpIHtcclxuICAgIGNvbnN0IGRhdGEgPSBzZXJpZS52YWx1ZTtcclxuXHJcbiAgICBjb25zdCBzdmdHID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdmc6ZycsICdzdmcnKTtcclxuICAgIGNvbnN0IHN2Z1RleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2Zzp0ZXh0JywgJ3N2ZycpO1xyXG5cclxuICAgIGNvbnN0IGZvbnRTaXplID0gdGhpcy5nZXRGb250U2l6ZSgpO1xyXG4gICAgY29uc3QgdGV4dENvbG9yID0gdGhpcy5nZXRUZXh0Q29sb3Ioc2VyaWUuY29sb3IpO1xyXG5cclxuICAgIHN2Z1RleHQudGV4dENvbnRlbnQgPSB0aGlzLmdldFBlcmNlbnRWYWx1ZShkYXRhLCB0aGlzLnRvdGFsVmFsdWUpICsgJyUnO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1RleHQsICdjbGFzcycsICdwby1wYXRoLWl0ZW0nKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1RleHQsICdmaWxsJywgdGV4dENvbG9yKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z1RleHQsICdmb250LXNpemUnLCBmb250U2l6ZSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdUZXh0LCAnZmlsbC1vcGFjaXR5JywgJzAnKTtcclxuXHJcbiAgICB0aGlzLnNldEVsZW1lbnRBdHRyaWJ1dGVzKHN2Z1RleHQsIHNlcmllKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHN2Z0csIHN2Z1RleHQpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zdmdFbGVtZW50LCBzdmdHKTtcclxuICAgIHRoaXMuc3ZnVGV4dEVsZW1lbnRzTGlzdC5wdXNoKHN2Z1RleHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0cygpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0KSB7XHJcbiAgICAgIHRoaXMuc2VyaWVzLmZvckVhY2goc2VyaWUgPT4gdGhpcy5jcmVhdGVUZXh0KHNlcmllKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVNWR0VsZW1lbnRzKCkge1xyXG4gICAgY29uc3Qgdmlld0JveEhlaWdodCA9IHRoaXMuaXNDaGFydEdhdWdlVHlwZVxyXG4gICAgICA/IHRoaXMuY2VudGVyWCArIHRoaXMuY2VudGVyWCAqIHBvQ2hhcnRHYXVnZVNlcmllV2lkdGhcclxuICAgICAgOiB0aGlzLmNoYXJ0V3JhcHBlcjtcclxuICAgIGNvbnN0IHByZXNlcnZlQXNwZWN0UmF0aW8gPSB0aGlzLmlzQ2hhcnRHYXVnZVR5cGUgPyAneE1pZFlNYXgnIDogJ3hNaWRZTWluJztcclxuXHJcbiAgICB0aGlzLnN2Z0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2ZzpzdmcnLCAnc3ZnJyk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdmdFbGVtZW50LCAndmlld0JveCcsIGAwIDAgJHt0aGlzLmNoYXJ0V3JhcHBlcn0gJHt2aWV3Qm94SGVpZ2h0fWApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdmdFbGVtZW50LCAncHJlc2VydmVBc3BlY3RSYXRpbycsIGAke3ByZXNlcnZlQXNwZWN0UmF0aW99IG1lZXRgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ2NsYXNzJywgJ3BvLWNoYXJ0LXN2Zy1lbGVtZW50Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnN2Z0VsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuY2VudGVyWH1gKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc3ZnRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMuc3ZnSGVpZ2h0fWApO1xyXG5cclxuICAgIHRoaXMuc3ZnQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zdmdFbGVtZW50KTtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZVBhdGhzKCk7XHJcbiAgICB0aGlzLmNyZWF0ZVRleHRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdQYXRoSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5hbmltYXRpb25SdW5uaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuZHJhd1NlcmllcygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd1NlcmllcyhjdXJyZW50U2VyaWVJbmRleDogbnVtYmVyID0gMCwgYW5nbGVDdXJyZW50UG9zaXRpb246IG51bWJlciA9IDApIHtcclxuICAgIGNvbnN0IGlzRmluaXNoZWREcmF3aW5nQ3VycmVudFNlcmllcyA9IGFuZ2xlQ3VycmVudFBvc2l0aW9uID4gdGhpcy5jaGFydEl0ZW1FbmRBbmdsZTtcclxuICAgIGNvbnN0IGlzRmluaXNoZWREcmF3aW5nQWxsU2VyaWVzID0gY3VycmVudFNlcmllSW5kZXggPT09IHRoaXMuc3ZnUGF0aEVsZW1lbnRzTGlzdC5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGlzRmluaXNoZWREcmF3aW5nQWxsU2VyaWVzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNGaW5pc2hlZERyYXdpbmdDdXJyZW50U2VyaWVzKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSA9IHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSArIHRoaXMuY2hhcnRJdGVtRW5kQW5nbGU7XHJcbiAgICAgIGN1cnJlbnRTZXJpZUluZGV4Kys7XHJcbiAgICAgIHRoaXMuY2hhcnRJdGVtRW5kQW5nbGUgPSB0aGlzLmNoYXJ0SXRlbXNFbmRBbmdsZUxpc3RbY3VycmVudFNlcmllSW5kZXhdO1xyXG4gICAgICBhbmdsZUN1cnJlbnRQb3NpdGlvbiA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhbmdsZUN1cnJlbnRQb3NpdGlvbiArPSBwb0NoYXJ0QW5nbGVTdGVwSW50ZXJ2YWw7XHJcblxyXG4gICAgICB0aGlzLmRyYXdQYXRoKFxyXG4gICAgICAgIHRoaXMuc3ZnUGF0aEVsZW1lbnRzTGlzdFtjdXJyZW50U2VyaWVJbmRleF0sXHJcbiAgICAgICAgdGhpcy5jaGFydEl0ZW1TdGFydEFuZ2xlLFxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlQ3VycmVudEVuZEFuZ2xlKGFuZ2xlQ3VycmVudFBvc2l0aW9uKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5zZXRUZXh0UHJvcGVydGllcyhcclxuICAgICAgICB0aGlzLnN2Z1RleHRFbGVtZW50c0xpc3RbY3VycmVudFNlcmllSW5kZXhdLFxyXG4gICAgICAgIHRoaXMuY2hhcnRJdGVtU3RhcnRBbmdsZSxcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRFbmRBbmdsZShhbmdsZUN1cnJlbnRQb3NpdGlvbilcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuZHJhd1Nlcmllcy5iaW5kKHRoaXMsIGN1cnJlbnRTZXJpZUluZGV4LCBhbmdsZUN1cnJlbnRQb3NpdGlvbikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RXZlbnRPbkVudGVyKGV2ZW50OiBQb0NoYXJ0R2F1Z2VTZXJpZSkge1xyXG4gICAgdGhpcy5vblNlcmllSG92ZXIubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvbnRTaXplKCkge1xyXG4gICAgY29uc3QgZm9udFNpemVQb3JjZW50ID0gMC4wNDtcclxuXHJcbiAgICBjb25zdCBmb250U2l6ZSA9IGZvbnRTaXplUG9yY2VudCAqIHRoaXMuY2hhcnRXcmFwcGVyO1xyXG5cclxuICAgIHJldHVybiBgJHtmb250U2l6ZS50b0ZpeGVkKDApfXB4YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGVyY2VudFZhbHVlKHZhbHVlOiBudW1iZXIsIHRvdGFsVmFsdWU6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGVyY2VudFZhbHVlID0gKHZhbHVlIC8gdG90YWxWYWx1ZSkgKiAxMDA7XHJcblxyXG4gICAgY29uc3QgZmxvYXRQZXJjZW50VmFsdWUgPSBjb252ZXJ0TnVtYmVyVG9EZWNpbWFsKHBlcmNlbnRWYWx1ZSwgMik7XHJcblxyXG4gICAgcmV0dXJuIFN0cmluZyhmbG9hdFBlcmNlbnRWYWx1ZSkucmVwbGFjZSgnLicsICcsJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRleHRDb2xvcihjb2xvcjogc3RyaW5nKSB7XHJcbiAgICBpZiAoUG9EZWZhdWx0Q29sb3JzVGV4dEJsYWNrLmluY2x1ZGVzKGNvbG9yKSkge1xyXG4gICAgICByZXR1cm4gcG9DaGFydEJsYWNrQ29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBvQ2hhcnRXaGl0ZUNvbG9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUb29sdGlwVmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gUG9DaGFydFR5cGUuUGllKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldFBlcmNlbnRWYWx1ZSh2YWx1ZSwgdGhpcy50b3RhbFZhbHVlKSArICclJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTZXJpZVZhbHVlRXF1YWxaZXJvKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VyaWVzLmxlbmd0aCAmJiB0aGlzLnNlcmllc1swXS52YWx1ZSA9PT0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Nb3VzZUNsaWNrKCkge1xyXG4gICAgbGV0IHNlcmllT25DbGljazogUG9DaGFydEdhdWdlU2VyaWU7XHJcblxyXG4gICAgY29uc3QgeyBjb2xvciwgLi4uc2VyaWUgfSA9IHRoaXMuc2VyaWVzWzBdO1xyXG4gICAgc2VyaWVPbkNsaWNrID0gc2VyaWU7XHJcblxyXG4gICAgdGhpcy5vblNlcmllQ2xpY2submV4dChzZXJpZU9uQ2xpY2spO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk1vdXNlRW50ZXIoZXZlbnQpIHtcclxuICAgIGxldCBzZXJpZU9uRW50ZXI6IFBvQ2hhcnRHYXVnZVNlcmllO1xyXG5cclxuICAgIGNvbnN0IHsgY29sb3IsIC4uLnNlcmllIH0gPSB0aGlzLnNlcmllc1swXTtcclxuXHJcbiAgICB0aGlzLmNoYXJ0RWxlbWVudERlc2NyaXB0aW9uID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZU5TKG51bGwsICdkYXRhLXRvb2x0aXAtY2F0ZWdvcnknKTtcclxuICAgIHNlcmllT25FbnRlciA9IHNlcmllO1xyXG5cclxuICAgIHRoaXMuZW1pdEV2ZW50T25FbnRlcihzZXJpZU9uRW50ZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlU1ZHRGltZW5zaW9ucygpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdmdFbGVtZW50LCAnd2lkdGgnLCBgJHt0aGlzLmNlbnRlclh9YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnN2Z0VsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLnN2Z0hlaWdodH1gKTtcclxuICAgIHRoaXMud2luZG93UmVzaXplRW1pdHRlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZVdpbmRvd1Jlc2l6ZUxpc3RlbmVyKCkge1xyXG4gICAgaWYgKHRoaXMud2luZG93UmVzaXplTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy53aW5kb3dSZXNpemVMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVXaW5kb3dTY3JvbGxMaXN0ZW5lcigpIHtcclxuICAgIGlmICh0aGlzLndpbmRvd1Njcm9sbExpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMud2luZG93U2Nyb2xsTGlzdGVuZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RXZlbnRMaXN0ZW5lcnMoKSB7XHJcbiAgICBsZXQgY2hhcnRTZXJpZXM6IEFycmF5PHN0cmluZz4gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBvLXBhdGgtaXRlbScpO1xyXG4gICAgY2hhcnRTZXJpZXMgPSBBcnJheS5mcm9tKGNoYXJ0U2VyaWVzKTtcclxuICAgIGNoYXJ0U2VyaWVzLmZvckVhY2goc2VyaWUgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzZXJpZSwgJ2NsaWNrJywgdGhpcy5vbk1vdXNlQ2xpY2suYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNlcmllLCAnbW91c2VlbnRlcicsIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmlzQ2hhcnRHYXVnZVR5cGUpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzZXJpZSwgJ21vdXNlbW92ZScsIHRoaXMuY2hhbmdlVG9vbHRpcFBvc2l0aW9uLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHNlcmllLCAnbW91c2VsZWF2ZScsIHRoaXMucmVtb3ZlVG9vbHRpcC5iaW5kKHRoaXMpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy53aW5kb3dSZXNpemVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHdpbmRvdywgJ3Jlc2l6ZScsIHRoaXMub25XaW5kb3dSZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLndpbmRvd1Njcm9sbExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgIHRoaXMuY2hlY2tpbmdJZlNjcm9sbHNXaXRoUG9QYWdlKCksXHJcbiAgICAgICdzY3JvbGwnLFxyXG4gICAgICB0aGlzLnJlbW92ZVRvb2x0aXAuYmluZCh0aGlzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5uZXJSYWRpdXModHlwZTogUG9DaGFydFR5cGUpIHtcclxuICAgIGxldCBzZXJpZVdpZHRoO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFBvQ2hhcnRUeXBlLkRvbnV0OiB7XHJcbiAgICAgICAgc2VyaWVXaWR0aCA9IHBvQ2hhcnREb251dFNlcmllV2lkdGg7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgUG9DaGFydFR5cGUuR2F1Z2U6IHtcclxuICAgICAgICBzZXJpZVdpZHRoID0gcG9DaGFydEdhdWdlU2VyaWVXaWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFBvQ2hhcnRUeXBlLlBpZToge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY2VudGVyWCAtIHRoaXMuY2VudGVyWCAqIHNlcmllV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRleHRQcm9wZXJ0aWVzKHRleHQsIHN0YXJ0QW5nbGU6IG51bWJlciwgZW5kQW5nbGU6IG51bWJlcikge1xyXG4gICAgLy8gbmVjZXNzw6FyaW8gdGV4dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBwYXJhIGNvbnRvcm5hciBlcnJvIGRlIGNvbnNvbGUgY2F1c2FkbyBubyBGaXJlZm94XHJcbiAgICBpZiAodGhpcy50eXBlID09PSBQb0NoYXJ0VHlwZS5Eb251dCAmJiB0ZXh0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKSB7XHJcbiAgICAgIC8vIHV0aWxpemFkbyBwYXJhIHJlY3VwZXJhciBvIGFuZ3VsbyBkbyBtZWlvLCBlbnRyZSBvIGluaWNpbyBlIGZpbSBwYXJhIGNlbnRyYWxpemFyIG8gdGV4dG9cclxuICAgICAgY29uc3QgY2VudGVyQW5nbGUgPSAoc3RhcnRBbmdsZSArIGVuZEFuZ2xlKSAvIDI7XHJcbiAgICAgIGNvbnN0IHRleHRCb3ggPSB0ZXh0LmdldEJCb3goKTtcclxuXHJcbiAgICAgIGNvbnN0IGhhbGZUZXh0V2lkdGggPSB0ZXh0Qm94LndpZHRoIC8gMjtcclxuICAgICAgY29uc3QgaGFsZlRleHRIZWlnaHQgPSB0ZXh0Qm94LmhlaWdodCAvIDI7XHJcblxyXG4gICAgICAvLyByYWRpdXMgaW50ZXJubyAoY2lyY3VsbyBicmFuY28pICsgYSBtZXRhZGUgZGEgZGlmZXJlbsOnYSBlbnRyZSB0YW1hbmhvIGRvIGNlbnRybyBlIHJhZGl1cyBpbnRlcm5vXHJcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuaW5uZXJSYWRpdXMgKyAodGhpcy5jZW50ZXJYIC0gdGhpcy5pbm5lclJhZGl1cykgLyAyO1xyXG5cclxuICAgICAgY29uc3QgeENvb3JkaW5hdGUgPSByYWRpdXMgKiBNYXRoLmNvcyhjZW50ZXJBbmdsZSkgKyB0aGlzLmNlbnRlclggLSBoYWxmVGV4dFdpZHRoO1xyXG4gICAgICBjb25zdCB5Q29vcmRpbmF0ZSA9IHJhZGl1cyAqIE1hdGguc2luKGNlbnRlckFuZ2xlKSArIHRoaXMuY2VudGVyWCArIGhhbGZUZXh0SGVpZ2h0IC8gMjtcclxuICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUoJ3gnLCB4Q29vcmRpbmF0ZSk7XHJcbiAgICAgIHRleHQuc2V0QXR0cmlidXRlKCd5JywgeUNvb3JkaW5hdGUpO1xyXG4gICAgICB0ZXh0LnNldEF0dHJpYnV0ZSgnZmlsbC1vcGFjaXR5JywgJzEnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VG9vbHRpcFBvc2l0aW9ucyhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgZGlzcGxhY2VtZW50OiBudW1iZXIgPSA4O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxlZnQ6IGV2ZW50LmNsaWVudFggLSB0aGlzLnRvb2x0aXBFbGVtZW50Lm9mZnNldFdpZHRoIC8gMixcclxuICAgICAgdG9wOiBldmVudC5jbGllbnRZIC0gdGhpcy50b29sdGlwRWxlbWVudC5vZmZzZXRIZWlnaHQgLSBkaXNwbGFjZW1lbnRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVsZW1lbnRBdHRyaWJ1dGVzKHN2Z0VsZW1lbnQsIHNlcmllKSB7XHJcbiAgICBjb25zdCB7IHRvb2x0aXAgfSA9IHNlcmllO1xyXG4gICAgY29uc3QgZGF0YSA9IHNlcmllLmRhdGEgPz8gc2VyaWUudmFsdWU7XHJcbiAgICBjb25zdCBsYWJlbCA9IHNlcmllLmxhYmVsID8/IChzZXJpZS5kZXNjcmlwdGlvbiB8fCBzZXJpZS5jYXRlZ29yeSk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgJ2RhdGEtdG9vbHRpcC12YWx1ZScsIGAke2RhdGF9YCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNDaGFydEdhdWdlVHlwZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnZGF0YS10b29sdGlwLWRlc2NyaXB0aW9uJywgbGFiZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdG9vbHRpcFZhbHVlID0gdGhpcy5nZXRUb29sdGlwVmFsdWUoZGF0YSk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnZGF0YS10b29sdGlwLWNhdGVnb3J5JywgbGFiZWwpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnZGF0YS10b29sdGlwLXRleHQnLCB0b29sdGlwIHx8IGAke2xhYmVsfTogJHt0b29sdGlwVmFsdWV9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG8taW52aXNpYmxlJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==