@po-ui/ng-components 5.22.4 → 5.22.7

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 +38676 -38663
  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 -297
  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 -749
  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 -345
  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 -443
  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 +455 -451
  194. package/esm2015/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.js +365 -357
  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 -576
  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 -366
  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 -581
  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 +61 -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 +35222 -35209
  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 +104 -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 -249
  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 -184
  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 -409
  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 -125
  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 -158
  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 -333
  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 +17 -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 +4 -4
  1129. package/po-ui-ng-components-5.22.7.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.22.4.tgz +0 -0
@@ -1,581 +1,581 @@
1
- import { __decorate } from "tslib";
2
- import { EventEmitter, Input, Output, Directive } from '@angular/core';
3
- import { convertToBoolean, isEquals, isIE, isMobile } from '../../../utils/util';
4
- import { requiredFailed } from '../validators';
5
- import { PoUploadFile } from './po-upload-file';
6
- import { PoUploadService } from './po-upload.service';
7
- import { PoUploadStatus } from './po-upload-status.enum';
8
- import { InputBoolean } from '../../../decorators';
9
- import { PoLanguageService } from '../../../services/po-language/po-language.service';
10
- import { poLocaleDefault } from '../../../services/po-language/po-language.constant';
11
- export const poUploadLiteralsDefault = {
12
- en: {
13
- files: 'files',
14
- folders: 'folders',
15
- selectFile: 'Select file',
16
- selectFiles: 'Select files',
17
- selectFolder: 'Select folder',
18
- startSending: 'Start sending',
19
- dragFilesHere: 'Drag files here',
20
- dragFoldersHere: 'Drag folders here',
21
- selectFilesOnComputer: 'or select files on your computer',
22
- selectFolderOnComputer: 'or select folder on your computer',
23
- dropFilesHere: 'Drop files here',
24
- dropFoldersHere: 'Drop folders here',
25
- invalidDropArea: '{0} were not dropped in the correct area',
26
- invalidFileType: 'Failed to load {0} file(s) as it is not the allowed file type.',
27
- invalidAmount: 'Failed to load {0} file(s), as it exceeds the limit amount of files.',
28
- invalidFormat: 'Failed to load {0} file(s), as it does not match the format(s): {1}.',
29
- invalidSize: 'Failed to load {0} files(s), as it is not the allowed size: from {1} to {2}.',
30
- numberOfFilesAllowed: '{0} file(s) allowed',
31
- allowedFormats: 'Accepted file formats: {0}.',
32
- allowedFileSizeRange: 'Size limit per file: from {0} to {1}',
33
- maxFileSizeAllowed: 'Size limit per file: {0} maximum',
34
- minFileSizeAllowed: 'Size limit per file: {0} minimum',
35
- errorOccurred: 'An error has occurred',
36
- sentWithSuccess: 'Sent with success'
37
- },
38
- es: {
39
- files: 'archivos',
40
- folders: 'carpetas',
41
- selectFile: 'Seleccionar archivo',
42
- selectFiles: 'Seleccionar archivos',
43
- selectFolder: 'Seleccionar carpeta',
44
- startSending: 'Iniciar carga',
45
- dragFilesHere: 'Arrastra los archivos aquí',
46
- dragFoldersHere: 'Arrastra las carpetas aquí',
47
- selectFilesOnComputer: 'o selecciona los archivos en tu computadora',
48
- selectFolderOnComputer: 'o selecciona la carpeta en tu computadora',
49
- dropFilesHere: 'Deja los archivos aquí',
50
- dropFoldersHere: 'Deja las carpetas aquí',
51
- invalidDropArea: 'Los {0} no se insertaron en la ubicación correcta',
52
- invalidFileType: 'Error al cargar {0} archivo (s) ya que no es el tipo de archivo permitido',
53
- invalidAmount: 'Error al cargar {0} archivo (s) ya que excede la cantidad limite de archivos.',
54
- invalidFormat: 'Error al cargar {0} archivo (s) ya que no coincide con el formato (s): {1}.',
55
- invalidSize: 'Error al cargar {0} archivo (s) ya que no cumple con el tamaño permitido: desde {1} hasta {2}.',
56
- numberOfFilesAllowed: '{0} archivo(s) permitido(s)',
57
- allowedFormats: 'Formatos aceptados: {0}.',
58
- allowedFileSizeRange: 'Limite de tamaño de archivo: desde {0} hasta {1}',
59
- maxFileSizeAllowed: 'Limite de tamaño de archivo: hasta {0}',
60
- minFileSizeAllowed: 'Limite de tamaño de archivo: minimo {0}',
61
- errorOccurred: 'Ocurrio un error',
62
- sentWithSuccess: 'Enviado con éxito'
63
- },
64
- pt: {
65
- files: 'arquivos',
66
- folders: 'diretórios',
67
- selectFile: 'Selecionar arquivo',
68
- selectFiles: 'Selecionar arquivos',
69
- selectFolder: 'Selecionar pasta',
70
- startSending: 'Iniciar envio',
71
- dragFilesHere: 'Arraste os arquivos aqui',
72
- dragFoldersHere: 'Arraste as pastas aqui',
73
- selectFilesOnComputer: 'ou selecione os arquivos no computador',
74
- selectFolderOnComputer: 'ou selecione a pasta no computador',
75
- dropFilesHere: 'Solte os arquivos aqui',
76
- dropFoldersHere: 'Solte as pastas aqui',
77
- invalidDropArea: 'Os {0} não foram inseridos no local correto',
78
- invalidFileType: 'Falha ao carregar {0} arquivo (s), pois não é o tipo de arquivo permitido',
79
- invalidAmount: 'Falha ao carregar {0} arquivo(s), pois excede(m) a quantidade limite de arquivos.',
80
- invalidFormat: 'Falha ao carregar {0} arquivo(s), pois não corresponde(m) ao(s) formato(s): {1}.',
81
- invalidSize: 'Falha ao carregar {0} arquivo(s), pois não atende ao tamanho permitido: {1} até {2}.',
82
- numberOfFilesAllowed: 'Quantidade máxima: {0} arquivo(s)',
83
- allowedFormats: 'Formatos adotados: {0}.',
84
- allowedFileSizeRange: 'Limite de tamanho por arquivo: de {0} até {1}',
85
- maxFileSizeAllowed: 'Limite de tamanho por arquivo: até {0}',
86
- minFileSizeAllowed: 'Limite de tamanho por arquivo: no mínimo {0}',
87
- errorOccurred: 'Ocorreu um erro',
88
- sentWithSuccess: 'Enviado com sucesso'
89
- },
90
- ru: {
91
- files: 'файлы',
92
- folders: 'папки с файлами',
93
- selectFile: 'Выберите файл',
94
- selectFiles: 'Выберите файлы',
95
- selectFolder: 'Выберите папку с файлами',
96
- startSending: 'Начать загрузку',
97
- dragFilesHere: 'Перетащите файлы сюда',
98
- dragFoldersHere: 'Перетащите сюда папки',
99
- selectFilesOnComputer: 'или выберите файлы на компьютере',
100
- selectFolderOnComputer: 'или выберите папку на вашем компьютере',
101
- dropFilesHere: 'Оставьте файлы здесь',
102
- dropFoldersHere: 'Перетащите сюда папки',
103
- invalidDropArea: '{0} не были вставлены в правильном месте.',
104
- invalidFileType: 'Не удалось загрузить файлы {0}, так как это неверный тип файла',
105
- invalidAmount: 'Não foi possível carregar os arquivos {0} porque eles excederam o limite de arquivos.',
106
- invalidFormat: 'Не удалось загрузить файлы {0}, так как они не соответствуют формату (ам): {1}.',
107
- invalidSize: 'Не удалось загрузить файлы {0}, поскольку они не соответствуют разрешенному размеру: от {1} до {2}.',
108
- numberOfFilesAllowed: 'Максимальное количество: {0} файлов',
109
- allowedFormats: 'Форматы приняты: {0}.',
110
- allowedFileSizeRange: 'Ограничение размера файла: от {0} до {1}',
111
- maxFileSizeAllowed: 'Ограничение размера файла: до {0}',
112
- minFileSizeAllowed: 'Ограничение размера файла: не менее {0}',
113
- errorOccurred: 'Произошла ошибка.',
114
- sentWithSuccess: 'Успешно отправлено'
115
- }
116
- };
117
- const poUploadFormFieldDefault = 'files';
118
- const poUploadMaxFileSize = 31457280; // 30MB
119
- const poUploadMinFileSize = 0;
120
- /**
121
- * @description
122
- *
123
- * O componente `po-upload` permite que o usuário envie arquivo(s) ao servidor e acompanhe o progresso.
124
- * Este componente também possibilita algumas configurações como:
125
- * – Envio de diretórios, onde ele acessa o diretório selecionado assim como seus sub-diretórios;
126
- * - Múltipla seleção, onde o usuário pode enviar mais de um arquivo ao servidor.
127
- * - Auto envio, onde o arquivo é enviado imediatamente após a seleção do usuário, não necessitando que o usuário
128
- * clique em enviar.
129
- * - Restrições de formatos de arquivo e tamanho.
130
- * - Função de sucesso que será disparada quando os arquivos forem enviados com sucesso.
131
- * - Função de erro que será disparada quando houver erro no envio dos arquivos.
132
- * - Permite habilitar uma área onde os arquivos podem ser arrastados.
133
- */
134
- export class PoUploadBaseComponent {
135
- constructor(uploadService, languageService) {
136
- this.uploadService = uploadService;
137
- /**
138
- * @optional
139
- *
140
- * @description
141
- *
142
- * Aplica foco no elemento ao ser iniciado.
143
- *
144
- * > Caso mais de um elemento seja configurado com essa propriedade, apenas o último elemento declarado com ela terá o foco.
145
- *
146
- * @default `false`
147
- */
148
- this.autoFocus = false;
149
- /** Define o valor do atributo `name` do componente. */
150
- this.name = 'file';
151
- /**
152
- * @optional
153
- *
154
- * @description
155
- *
156
- * Define se o envio do arquivo será automático ao selecionar o mesmo.
157
- *
158
- * @default `false`
159
- */
160
- this.autoUpload = false;
161
- /**
162
- * @optional
163
- *
164
- * @description
165
- *
166
- * Função que será executada no momento de realizar o envio do arquivo,
167
- * onde será possível adicionar informações ao parâmetro que será enviado na requisição.
168
- * É passado por parâmetro um objeto com o arquivo e a propiedade data nesta propriedade pode ser informado algum dado,
169
- * que será enviado em conjunto com o arquivo na requisição, por exemplo:
170
- *
171
- * ```
172
- * event.data = {id: 'id do usuario'};
173
- * ```
174
- */
175
- this.onUpload = new EventEmitter();
176
- /**
177
- * @optional
178
- *
179
- * @description
180
- *
181
- * Evento será disparado quando ocorrer algum erro no envio do arquivo.
182
- * > Por parâmetro será passado o objeto do retorno que é do tipo `HttpErrorResponse`.
183
- */
184
- this.onError = new EventEmitter();
185
- /**
186
- * @optional
187
- *
188
- * @description
189
- *
190
- * Evento será disparado quando o envio do arquivo for realizado com sucesso.
191
- * > Por parâmetro será passado o objeto do retorno que é do tipo `HttpResponse`.
192
- */
193
- this.onSuccess = new EventEmitter();
194
- /**
195
- * @optional
196
- *
197
- * @description
198
- *
199
- * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da *tag* `form`.
200
- *
201
- * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
202
- * two-way binding no componente deve se utilizar da seguinte forma:
203
- *
204
- * ```
205
- * <po-upload ... [ngModel]="UploadModel" (ngModelChange)="uploadModel = $event"> </po-upload>
206
- * ```
207
- *
208
- */
209
- this.ngModelChange = new EventEmitter();
210
- this.extensionNotAllowed = 0;
211
- this.quantityNotAllowed = 0;
212
- this.sizeNotAllowed = 0;
213
- this.onModelTouched = null;
214
- this._dragDrop = false;
215
- this.language = languageService.getShortLanguage();
216
- }
217
- /**
218
- * @optional
219
- *
220
- * @description
221
- *
222
- * Permite a seleção de diretórios contendo um ou mais arquivos para envio.
223
- *
224
- * > A habilitação desta propriedade se restringe apenas à seleção de diretórios.
225
- *
226
- * > Definição não suportada pelo browser **Internet Explorer**, todavia será possível a seleção de arquivos padrão.
227
- *
228
- * @default `false`
229
- */
230
- set directory(value) {
231
- this._directory = convertToBoolean(value);
232
- this.canHandleDirectory = this._directory && !isIE() && !isMobile();
233
- this.setDirectoryAttribute(this.canHandleDirectory);
234
- }
235
- get directory() {
236
- return this._directory;
237
- }
238
- /**
239
- * @optional
240
- *
241
- * @description
242
- *
243
- * Exibe a área onde é possível arrastar e selecionar os arquivos. Quando estiver definida, omite o botão para seleção de arquivos
244
- * automaticamente.
245
- *
246
- * > Recomendamos utilizar apenas um `po-upload` com esta funcionalidade por tela.
247
- *
248
- * @default `false`
249
- */
250
- set dragDrop(value) {
251
- this._dragDrop = convertToBoolean(value);
252
- }
253
- get dragDrop() {
254
- return this._dragDrop;
255
- }
256
- /**
257
- * @optional
258
- *
259
- * @description
260
- *
261
- * Oculta visualmente as informações de restrições para o upload.
262
- *
263
- * @default `false`
264
- */
265
- set hideRestrictionsInfo(value) {
266
- this._hideRestrictionsInfo = convertToBoolean(value);
267
- }
268
- get hideRestrictionsInfo() {
269
- return this._hideRestrictionsInfo;
270
- }
271
- /**
272
- * @optional
273
- *
274
- * @description
275
- *
276
- * Omite o botão de seleção de arquivos.
277
- *
278
- * > Caso o valor definido seja `true`, caberá ao desenvolvedor a responsabilidade
279
- * pela chamada do método `selectFiles()` para seleção de arquivos.
280
- *
281
- * @default `false`
282
- */
283
- set hideSelectButton(value) {
284
- this._hideSelectButton = convertToBoolean(value);
285
- }
286
- get hideSelectButton() {
287
- return this._hideSelectButton;
288
- }
289
- /**
290
- * @optional
291
- *
292
- * @description
293
- *
294
- * Omite o botão de envio de arquivos.
295
- *
296
- * > Caso o valor definido seja `true`, caberá ao desenvolvedor a responsabilidade
297
- * pela chamada do método `sendFiles()` para envio do(s) arquivo(s) selecionado(s).
298
- *
299
- * @default `false`
300
- */
301
- set hideSendButton(value) {
302
- this._hideSendButton = convertToBoolean(value);
303
- }
304
- get hideSendButton() {
305
- return this._hideSendButton;
306
- }
307
- /**
308
- * @optional
309
- *
310
- * @description
311
- *
312
- * Objeto com as literais usadas no `po-upload`.
313
- *
314
- * Existem duas maneiras de customizar o componente:
315
- *
316
- * - passando um objeto implementando a interface `PoUploadLiterals` com todas as literais disponíveis;
317
- * - passando apenas as literais que deseja customizar:
318
- * ```
319
- * const customLiterals: PoUploadLiterals = {
320
- * folders: 'Pastas',
321
- * selectFile: 'Buscar arquivo',
322
- * startSending: 'Enviar'
323
- * };
324
- * ```
325
- *
326
- * E para carregar as literais customizadas, basta apenas passar o objeto para o componente:
327
- *
328
- * ```
329
- * <po-upload
330
- * [p-literals]="customLiterals">
331
- * </po-upload>
332
- * ```
333
- *
334
- * > O objeto padrão de literais será traduzido de acordo com o idioma do *browser* (pt, en, es, ru).
335
- */
336
- set literals(value) {
337
- if (value instanceof Object && !(value instanceof Array)) {
338
- this._literals = Object.assign(Object.assign(Object.assign({}, poUploadLiteralsDefault[poLocaleDefault]), poUploadLiteralsDefault[this.language]), value);
339
- }
340
- else {
341
- this._literals = poUploadLiteralsDefault[this.language];
342
- }
343
- }
344
- get literals() {
345
- return this._literals || poUploadLiteralsDefault[this.language];
346
- }
347
- /**
348
- * @optional
349
- *
350
- * @description
351
- *
352
- * Objeto que segue a definição da interface `PoUploadFileRestrictions`,
353
- * que possibilita definir tamanho máximo/mínimo e extensão dos arquivos permitidos.
354
- */
355
- set fileRestrictions(restrictions) {
356
- this._fileRestrictions = this.initRestrictions(restrictions);
357
- this.setAllowedExtensions(restrictions);
358
- }
359
- get fileRestrictions() {
360
- return this._fileRestrictions;
361
- }
362
- /**
363
- * @optional
364
- *
365
- * @description
366
- *
367
- * Nome do campo de formulário que será enviado para o serviço informado na propriedade `p-url`.
368
- *
369
- * @default `files`
370
- */
371
- set formField(value) {
372
- this._formField = value && typeof value === 'string' ? value : poUploadFormFieldDefault;
373
- this.getUploadService().formField = this.formField;
374
- }
375
- get formField() {
376
- return this._formField;
377
- }
378
- /**
379
- * @optional
380
- *
381
- * @description
382
- *
383
- * Indica que o campo será desabilitado.
384
- */
385
- set disabled(value) {
386
- this._disabled = convertToBoolean(value);
387
- this.validateModel(this.currentFiles);
388
- }
389
- get disabled() {
390
- return this._disabled;
391
- }
392
- /**
393
- * @optional
394
- *
395
- * @description
396
- *
397
- * Define se pode selecionar mais de um arquivo.
398
- *
399
- * > Se utilizada a `p-directory`, habilita-se automaticamente esta propriedade.
400
- */
401
- set isMultiple(value) {
402
- this._isMultiple = convertToBoolean(value);
403
- }
404
- get isMultiple() {
405
- return this.canHandleDirectory ? true : this._isMultiple;
406
- }
407
- /**
408
- * @optional
409
- *
410
- * @description
411
- *
412
- * Indica que o campo será obrigatório.
413
- *
414
- * @default `false`
415
- */
416
- set required(required) {
417
- this._required = convertToBoolean(required);
418
- this.validateModel(this.currentFiles);
419
- }
420
- get required() {
421
- return this._required;
422
- }
423
- // Função implementada do ControlValueAccessor
424
- // Usada para interceptar os estados de habilitado via forms api
425
- setDisabledState(isDisabled) {
426
- this.disabled = isDisabled;
427
- }
428
- registerOnChange(fn) {
429
- this.onModelChange = fn;
430
- }
431
- registerOnTouched(fn) {
432
- this.onModelTouched = fn;
433
- }
434
- registerOnValidatorChange(fn) {
435
- this.validatorChange = fn;
436
- }
437
- validate(abstractControl) {
438
- if (requiredFailed(this.required, this.disabled, abstractControl.value)) {
439
- return {
440
- required: {
441
- valid: false
442
- }
443
- };
444
- }
445
- }
446
- writeValue(model) {
447
- if (model) {
448
- if (!isEquals(this.currentFiles, model)) {
449
- this.currentFiles = this.parseFiles(model);
450
- }
451
- }
452
- else {
453
- this.currentFiles = undefined;
454
- }
455
- }
456
- isExceededFileLimit(currentFilesLength) {
457
- return (this.isMultiple &&
458
- this.fileRestrictions &&
459
- this.fileRestrictions.maxFiles > 0 &&
460
- this.fileRestrictions.maxFiles <= currentFilesLength);
461
- }
462
- // Faz o parse dos arquivos selecionados para arquivos do formato PoUploadFile e atualiza os arquivos correntes.
463
- parseFiles(files) {
464
- let poUploadFiles = this.currentFiles || [];
465
- const filesLength = files.length;
466
- for (let i = 0; i < filesLength; i++) {
467
- if (this.isExceededFileLimit(poUploadFiles.length)) {
468
- this.quantityNotAllowed = filesLength - this.fileRestrictions.maxFiles;
469
- break;
470
- }
471
- const file = new PoUploadFile(files[i]);
472
- if (this.checkRestrictions(file)) {
473
- poUploadFiles = this.insertFileInFiles(file, poUploadFiles);
474
- }
475
- }
476
- this.sendFeedback();
477
- return poUploadFiles;
478
- }
479
- validateModel(model) {
480
- if (this.validatorChange) {
481
- this.validatorChange(model);
482
- }
483
- }
484
- // Verifica se o arquivo está de acordo com as restrições.
485
- checkRestrictions(file) {
486
- const restrictions = this.fileRestrictions;
487
- if (restrictions) {
488
- const allowedExtensions = restrictions.allowedExtensions;
489
- const minFileSize = restrictions.minFileSize;
490
- const maxFileSize = restrictions.maxFileSize;
491
- const isAccept = allowedExtensions ? this.isAllowedExtension(file.extension, allowedExtensions) : true;
492
- const isAcceptSize = file.size >= minFileSize && file.size <= maxFileSize;
493
- if (!isAcceptSize) {
494
- this.sizeNotAllowed = this.sizeNotAllowed + 1;
495
- }
496
- return isAccept && isAcceptSize;
497
- }
498
- return true;
499
- }
500
- existsFileSameName(file, files) {
501
- return files.some(currentFile => file.name === currentFile.name);
502
- }
503
- getUploadService() {
504
- return this.uploadService;
505
- }
506
- insertFileInFiles(newFile, files) {
507
- if (this.existsFileSameName(newFile, files)) {
508
- return this.updateExistsFileInFiles(newFile, files);
509
- }
510
- if (this.isMultiple) {
511
- files.push(newFile);
512
- }
513
- else {
514
- files.splice(0, files.length, newFile);
515
- }
516
- return files;
517
- }
518
- isAllowedExtension(extension, allowedExtensions = []) {
519
- const isAllowed = allowedExtensions.some(ext => ext.toLowerCase() === extension);
520
- if (!isAllowed) {
521
- this.extensionNotAllowed = this.extensionNotAllowed + 1;
522
- }
523
- return isAllowed;
524
- }
525
- setAllowedExtensions(restrictions = {}) {
526
- const _allowedExtensions = restrictions.allowedExtensions || [];
527
- this.allowedExtensions = _allowedExtensions.join(',');
528
- }
529
- initRestrictions(restrictions) {
530
- if (!restrictions) {
531
- return;
532
- }
533
- const minFileSize = restrictions.minFileSize || poUploadMinFileSize;
534
- const maxFileSize = restrictions.maxFileSize || poUploadMaxFileSize;
535
- return Object.assign(Object.assign({}, restrictions), { maxFileSize: maxFileSize, minFileSize: minFileSize });
536
- }
537
- updateExistsFileInFiles(newFile, files) {
538
- const fileIndex = files.findIndex(currentFile => newFile.name === currentFile.name && currentFile.status !== PoUploadStatus.Uploaded);
539
- if (fileIndex !== -1) {
540
- files.splice(fileIndex, 1, newFile);
541
- }
542
- return files;
543
- }
544
- }
545
- PoUploadBaseComponent.decorators = [
546
- { type: Directive }
547
- ];
548
- PoUploadBaseComponent.ctorParameters = () => [
549
- { type: PoUploadService },
550
- { type: PoLanguageService }
551
- ];
552
- PoUploadBaseComponent.propDecorators = {
553
- autoFocus: [{ type: Input, args: ['p-auto-focus',] }],
554
- dragDropHeight: [{ type: Input, args: ['p-drag-drop-height',] }],
555
- label: [{ type: Input, args: ['p-label',] }],
556
- help: [{ type: Input, args: ['p-help',] }],
557
- url: [{ type: Input, args: ['p-url',] }],
558
- name: [{ type: Input, args: ['name',] }],
559
- autoUpload: [{ type: Input, args: ['p-auto-upload',] }],
560
- optional: [{ type: Input, args: ['p-optional',] }],
561
- headers: [{ type: Input, args: ['p-headers',] }],
562
- onUpload: [{ type: Output, args: ['p-upload',] }],
563
- onError: [{ type: Output, args: ['p-error',] }],
564
- onSuccess: [{ type: Output, args: ['p-success',] }],
565
- ngModelChange: [{ type: Output, args: ['ngModelChange',] }],
566
- directory: [{ type: Input, args: ['p-directory',] }],
567
- dragDrop: [{ type: Input, args: ['p-drag-drop',] }],
568
- hideRestrictionsInfo: [{ type: Input, args: ['p-hide-restrictions-info',] }],
569
- hideSelectButton: [{ type: Input, args: ['p-hide-select-button',] }],
570
- hideSendButton: [{ type: Input, args: ['p-hide-send-button',] }],
571
- literals: [{ type: Input, args: ['p-literals',] }],
572
- fileRestrictions: [{ type: Input, args: ['p-restrictions',] }],
573
- formField: [{ type: Input, args: ['p-form-field',] }],
574
- disabled: [{ type: Input, args: ['p-disabled',] }],
575
- isMultiple: [{ type: Input, args: ['p-multiple',] }],
576
- required: [{ type: Input, args: ['p-required',] }]
577
- };
578
- __decorate([
579
- InputBoolean()
580
- ], PoUploadBaseComponent.prototype, "autoFocus", void 0);
581
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdXBsb2FkLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXVwbG9hZC9wby11cGxvYWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsY0FBYztRQUMzQixZQUFZLEVBQUUsZUFBZTtRQUM3QixZQUFZLEVBQUUsZUFBZTtRQUM3QixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMscUJBQXFCLEVBQUUsa0NBQWtDO1FBQ3pE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LFFBQVEsQ0FDbkcsQ0FBQztRQUVGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBNWhCRixTQUFTOzs7WUFwSUQsZUFBZTtZQUdmLGlCQUFpQjs7O3dCQThJdkIsS0FBSyxTQUFDLGNBQWM7NkJBYXBCLEtBQUssU0FBQyxvQkFBb0I7b0JBRzFCLEtBQUssU0FBQyxTQUFTO21CQUdmLEtBQUssU0FBQyxRQUFRO2tCQUdkLEtBQUssU0FBQyxPQUFPO21CQUdiLEtBQUssU0FBQyxNQUFNO3lCQVdaLEtBQUssU0FBQyxlQUFlO3VCQWVyQixLQUFLLFNBQUMsWUFBWTtzQkFHbEIsS0FBSyxTQUFDLFdBQVc7dUJBZ0JqQixNQUFNLFNBQUMsVUFBVTtzQkFVakIsTUFBTSxTQUFDLFNBQVM7d0JBVWhCLE1BQU0sU0FBQyxXQUFXOzRCQWlCbEIsTUFBTSxTQUFDLGVBQWU7d0JBd0N0QixLQUFLLFNBQUMsYUFBYTt1QkF1Qm5CLEtBQUssU0FBQyxhQUFhO21DQWlCbkIsS0FBSyxTQUFDLDBCQUEwQjsrQkFvQmhDLEtBQUssU0FBQyxzQkFBc0I7NkJBbUI1QixLQUFLLFNBQUMsb0JBQW9CO3VCQW9DMUIsS0FBSyxTQUFDLFlBQVk7K0JBdUJsQixLQUFLLFNBQUMsZ0JBQWdCO3dCQW1CdEIsS0FBSyxTQUFDLGNBQWM7dUJBaUJwQixLQUFLLFNBQUMsWUFBWTt5QkFtQmxCLEtBQUssU0FBQyxZQUFZO3VCQWlCbEIsS0FBSyxTQUFDLFlBQVk7O0FBcldvQjtJQUFmLFlBQVksRUFBRTt3REFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBpc0VxdWFscywgaXNJRSwgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcclxuaW1wb3J0IHsgcmVxdWlyZWRGYWlsZWQgfSBmcm9tICcuLi92YWxpZGF0b3JzJztcclxuXHJcbmltcG9ydCB7IFBvVXBsb2FkRmlsZSB9IGZyb20gJy4vcG8tdXBsb2FkLWZpbGUnO1xyXG5pbXBvcnQgeyBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdXBsb2FkLWZpbGUtcmVzdHJpY3Rpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9VcGxvYWRMaXRlcmFscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby11cGxvYWQtbGl0ZXJhbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9VcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wby11cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvVXBsb2FkU3RhdHVzIH0gZnJvbSAnLi9wby11cGxvYWQtc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0ID0ge1xyXG4gIGVuOiA8UG9VcGxvYWRMaXRlcmFscz57XHJcbiAgICBmaWxlczogJ2ZpbGVzJyxcclxuICAgIGZvbGRlcnM6ICdmb2xkZXJzJyxcclxuICAgIHNlbGVjdEZpbGU6ICdTZWxlY3QgZmlsZScsXHJcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjdCBmaWxlcycsXHJcbiAgICBzZWxlY3RGb2xkZXI6ICdTZWxlY3QgZm9sZGVyJyxcclxuICAgIHN0YXJ0U2VuZGluZzogJ1N0YXJ0IHNlbmRpbmcnLFxyXG4gICAgZHJhZ0ZpbGVzSGVyZTogJ0RyYWcgZmlsZXMgaGVyZScsXHJcbiAgICBkcmFnRm9sZGVyc0hlcmU6ICdEcmFnIGZvbGRlcnMgaGVyZScsXHJcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvciBzZWxlY3QgZmlsZXMgb24geW91ciBjb21wdXRlcicsXHJcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnb3Igc2VsZWN0IGZvbGRlciBvbiB5b3VyIGNvbXB1dGVyJyxcclxuICAgIGRyb3BGaWxlc0hlcmU6ICdEcm9wIGZpbGVzIGhlcmUnLFxyXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAnRHJvcCBmb2xkZXJzIGhlcmUnLFxyXG4gICAgaW52YWxpZERyb3BBcmVhOiAnezB9IHdlcmUgbm90IGRyb3BwZWQgaW4gdGhlIGNvcnJlY3QgYXJlYScsXHJcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdGYWlsZWQgdG8gbG9hZCB7MH0gZmlsZShzKSBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgZmlsZSB0eXBlLicsXHJcbiAgICBpbnZhbGlkQW1vdW50OiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGUocyksIGFzIGl0IGV4Y2VlZHMgdGhlIGxpbWl0IGFtb3VudCBvZiBmaWxlcy4nLFxyXG4gICAgaW52YWxpZEZvcm1hdDogJ0ZhaWxlZCB0byBsb2FkIHswfSBmaWxlKHMpLCBhcyBpdCBkb2VzIG5vdCBtYXRjaCB0aGUgZm9ybWF0KHMpOiB7MX0uJyxcclxuICAgIGludmFsaWRTaXplOiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGVzKHMpLCBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgc2l6ZTogZnJvbSB7MX0gdG8gezJ9LicsXHJcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ3swfSBmaWxlKHMpIGFsbG93ZWQnLFxyXG4gICAgYWxsb3dlZEZvcm1hdHM6ICdBY2NlcHRlZCBmaWxlIGZvcm1hdHM6IHswfS4nLFxyXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdTaXplIGxpbWl0IHBlciBmaWxlOiBmcm9tIHswfSB0byB7MX0nLFxyXG4gICAgbWF4RmlsZVNpemVBbGxvd2VkOiAnU2l6ZSBsaW1pdCBwZXIgZmlsZTogezB9IG1heGltdW0nLFxyXG4gICAgbWluRmlsZVNpemVBbGxvd2VkOiAnU2l6ZSBsaW1pdCBwZXIgZmlsZTogezB9IG1pbmltdW0nLFxyXG4gICAgZXJyb3JPY2N1cnJlZDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCcsXHJcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdTZW50IHdpdGggc3VjY2VzcydcclxuICB9LFxyXG4gIGVzOiA8UG9VcGxvYWRMaXRlcmFscz57XHJcbiAgICBmaWxlczogJ2FyY2hpdm9zJyxcclxuICAgIGZvbGRlcnM6ICdjYXJwZXRhcycsXHJcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNjaW9uYXIgYXJjaGl2bycsXHJcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjY2lvbmFyIGFyY2hpdm9zJyxcclxuICAgIHNlbGVjdEZvbGRlcjogJ1NlbGVjY2lvbmFyIGNhcnBldGEnLFxyXG4gICAgc3RhcnRTZW5kaW5nOiAnSW5pY2lhciBjYXJnYScsXHJcbiAgICBkcmFnRmlsZXNIZXJlOiAnQXJyYXN0cmEgbG9zIGFyY2hpdm9zIGFxdcOtJyxcclxuICAgIGRyYWdGb2xkZXJzSGVyZTogJ0FycmFzdHJhIGxhcyBjYXJwZXRhcyBhcXXDrScsXHJcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvIHNlbGVjY2lvbmEgbG9zIGFyY2hpdm9zIGVuIHR1IGNvbXB1dGFkb3JhJyxcclxuICAgIHNlbGVjdEZvbGRlck9uQ29tcHV0ZXI6ICdvIHNlbGVjY2lvbmEgbGEgY2FycGV0YSBlbiB0dSBjb21wdXRhZG9yYScsXHJcbiAgICBkcm9wRmlsZXNIZXJlOiAnRGVqYSBsb3MgYXJjaGl2b3MgYXF1w60nLFxyXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAnRGVqYSBsYXMgY2FycGV0YXMgYXF1w60nLFxyXG4gICAgaW52YWxpZERyb3BBcmVhOiAnTG9zIHswfSBubyBzZSBpbnNlcnRhcm9uIGVuIGxhIHViaWNhY2nDs24gY29ycmVjdGEnLFxyXG4gICAgaW52YWxpZEZpbGVUeXBlOiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgbm8gZXMgZWwgdGlwbyBkZSBhcmNoaXZvIHBlcm1pdGlkbycsXHJcbiAgICBpbnZhbGlkQW1vdW50OiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgZXhjZWRlIGxhIGNhbnRpZGFkIGxpbWl0ZSBkZSBhcmNoaXZvcy4nLFxyXG4gICAgaW52YWxpZEZvcm1hdDogJ0Vycm9yIGFsIGNhcmdhciB7MH0gYXJjaGl2byAocykgeWEgcXVlIG5vIGNvaW5jaWRlIGNvbiBlbCBmb3JtYXRvIChzKTogezF9LicsXHJcbiAgICBpbnZhbGlkU2l6ZTogJ0Vycm9yIGFsIGNhcmdhciB7MH0gYXJjaGl2byAocykgeWEgcXVlIG5vIGN1bXBsZSBjb24gZWwgdGFtYcOxbyBwZXJtaXRpZG86IGRlc2RlIHsxfSBoYXN0YSB7Mn0uJyxcclxuICAgIG51bWJlck9mRmlsZXNBbGxvd2VkOiAnezB9IGFyY2hpdm8ocykgcGVybWl0aWRvKHMpJyxcclxuICAgIGFsbG93ZWRGb3JtYXRzOiAnRm9ybWF0b3MgYWNlcHRhZG9zOiB7MH0uJyxcclxuICAgIGFsbG93ZWRGaWxlU2l6ZVJhbmdlOiAnTGltaXRlIGRlIHRhbWHDsW8gZGUgYXJjaGl2bzogZGVzZGUgezB9IGhhc3RhIHsxfScsXHJcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBoYXN0YSB7MH0nLFxyXG4gICAgbWluRmlsZVNpemVBbGxvd2VkOiAnTGltaXRlIGRlIHRhbWHDsW8gZGUgYXJjaGl2bzogbWluaW1vIHswfScsXHJcbiAgICBlcnJvck9jY3VycmVkOiAnT2N1cnJpbyB1biBlcnJvcicsXHJcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdFbnZpYWRvIGNvbiDDqXhpdG8nXHJcbiAgfSxcclxuICBwdDogPFBvVXBsb2FkTGl0ZXJhbHM+e1xyXG4gICAgZmlsZXM6ICdhcnF1aXZvcycsXHJcbiAgICBmb2xkZXJzOiAnZGlyZXTDs3Jpb3MnLFxyXG4gICAgc2VsZWN0RmlsZTogJ1NlbGVjaW9uYXIgYXJxdWl2bycsXHJcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjaW9uYXIgYXJxdWl2b3MnLFxyXG4gICAgc2VsZWN0Rm9sZGVyOiAnU2VsZWNpb25hciBwYXN0YScsXHJcbiAgICBzdGFydFNlbmRpbmc6ICdJbmljaWFyIGVudmlvJyxcclxuICAgIGRyYWdGaWxlc0hlcmU6ICdBcnJhc3RlIG9zIGFycXVpdm9zIGFxdWknLFxyXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAnQXJyYXN0ZSBhcyBwYXN0YXMgYXF1aScsXHJcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvdSBzZWxlY2lvbmUgb3MgYXJxdWl2b3Mgbm8gY29tcHV0YWRvcicsXHJcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnb3Ugc2VsZWNpb25lIGEgcGFzdGEgbm8gY29tcHV0YWRvcicsXHJcbiAgICBkcm9wRmlsZXNIZXJlOiAnU29sdGUgb3MgYXJxdWl2b3MgYXF1aScsXHJcbiAgICBkcm9wRm9sZGVyc0hlcmU6ICdTb2x0ZSBhcyBwYXN0YXMgYXF1aScsXHJcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICdPcyB7MH0gbsOjbyBmb3JhbSBpbnNlcmlkb3Mgbm8gbG9jYWwgY29ycmV0bycsXHJcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdGYWxoYSBhbyBjYXJyZWdhciB7MH0gYXJxdWl2byAocyksIHBvaXMgbsOjbyDDqSBvIHRpcG8gZGUgYXJxdWl2byBwZXJtaXRpZG8nLFxyXG4gICAgaW52YWxpZEFtb3VudDogJ0ZhbGhhIGFvIGNhcnJlZ2FyIHswfSBhcnF1aXZvKHMpLCBwb2lzIGV4Y2VkZShtKSBhIHF1YW50aWRhZGUgbGltaXRlIGRlIGFycXVpdm9zLicsXHJcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgbsOjbyBjb3JyZXNwb25kZShtKSBhbyhzKSBmb3JtYXRvKHMpOiB7MX0uJyxcclxuICAgIGludmFsaWRTaXplOiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgbsOjbyBhdGVuZGUgYW8gdGFtYW5obyBwZXJtaXRpZG86IHsxfSBhdMOpIHsyfS4nLFxyXG4gICAgbnVtYmVyT2ZGaWxlc0FsbG93ZWQ6ICdRdWFudGlkYWRlIG3DoXhpbWE6IHswfSBhcnF1aXZvKHMpJyxcclxuICAgIGFsbG93ZWRGb3JtYXRzOiAnRm9ybWF0b3MgYWRvdGFkb3M6IHswfS4nLFxyXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdMaW1pdGUgZGUgdGFtYW5obyBwb3IgYXJxdWl2bzogZGUgezB9IGF0w6kgezF9JyxcclxuICAgIG1heEZpbGVTaXplQWxsb3dlZDogJ0xpbWl0ZSBkZSB0YW1hbmhvIHBvciBhcnF1aXZvOiBhdMOpIHswfScsXHJcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYW5obyBwb3IgYXJxdWl2bzogbm8gbcOtbmltbyB7MH0nLFxyXG4gICAgZXJyb3JPY2N1cnJlZDogJ09jb3JyZXUgdW0gZXJybycsXHJcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdFbnZpYWRvIGNvbSBzdWNlc3NvJ1xyXG4gIH0sXHJcbiAgcnU6IDxQb1VwbG9hZExpdGVyYWxzPntcclxuICAgIGZpbGVzOiAn0YTQsNC50LvRiycsXHJcbiAgICBmb2xkZXJzOiAn0L/QsNC/0LrQuCDRgSDRhNCw0LnQu9Cw0LzQuCcsXHJcbiAgICBzZWxlY3RGaWxlOiAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQuycsXHJcbiAgICBzZWxlY3RGaWxlczogJ9CS0YvQsdC10YDQuNGC0LUg0YTQsNC50LvRiycsXHJcbiAgICBzZWxlY3RGb2xkZXI6ICfQktGL0LHQtdGA0LjRgtC1INC/0LDQv9C60YMg0YEg0YTQsNC50LvQsNC80LgnLFxyXG4gICAgc3RhcnRTZW5kaW5nOiAn0J3QsNGH0LDRgtGMINC30LDQs9GA0YPQt9C60YMnLFxyXG4gICAgZHJhZ0ZpbGVzSGVyZTogJ9Cf0LXRgNC10YLQsNGJ0LjRgtC1INGE0LDQudC70Ysg0YHRjtC00LAnLFxyXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXHJcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICfQuNC70Lgg0LLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQu9GLINC90LAg0LrQvtC80L/RjNGO0YLQtdGA0LUnLFxyXG4gICAgc2VsZWN0Rm9sZGVyT25Db21wdXRlcjogJ9C40LvQuCDQstGL0LHQtdGA0LjRgtC1INC/0LDQv9C60YMg0L3QsCDQstCw0YjQtdC8INC60L7QvNC/0YzRjtGC0LXRgNC1JyxcclxuICAgIGRyb3BGaWxlc0hlcmU6ICfQntGB0YLQsNCy0YzRgtC1INGE0LDQudC70Ysg0LfQtNC10YHRjCcsXHJcbiAgICBkcm9wRm9sZGVyc0hlcmU6ICfQn9C10YDQtdGC0LDRidC40YLQtSDRgdGO0LTQsCDQv9Cw0L/QutC4JyxcclxuICAgIGludmFsaWREcm9wQXJlYTogJ3swfSDQvdC1INCx0YvQu9C4INCy0YHRgtCw0LLQu9C10L3RiyDQsiDQv9GA0LDQstC40LvRjNC90L7QvCDQvNC10YHRgtC1LicsXHJcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0YLQsNC6INC60LDQuiDRjdGC0L4g0L3QtdCy0LXRgNC90YvQuSDRgtC40L8g0YTQsNC50LvQsCcsXHJcbiAgICBpbnZhbGlkQW1vdW50OiAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIG9zIGFycXVpdm9zIHswfSBwb3JxdWUgZWxlcyBleGNlZGVyYW0gbyBsaW1pdGUgZGUgYXJxdWl2b3MuJyxcclxuICAgIGludmFsaWRGb3JtYXQ6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0YLQsNC6INC60LDQuiDQvtC90Lgg0L3QtSDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RgiDRhNC+0YDQvNCw0YLRgyAo0LDQvCk6IHsxfS4nLFxyXG4gICAgaW52YWxpZFNpemU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0L/QvtGB0LrQvtC70YzQutGDINC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGA0LDQt9GA0LXRiNC10L3QvdC+0LzRgyDRgNCw0LfQvNC10YDRgzog0L7RgiB7MX0g0LTQviB7Mn0uJyxcclxuICAgIG51bWJlck9mRmlsZXNBbGxvd2VkOiAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+OiB7MH0g0YTQsNC50LvQvtCyJyxcclxuICAgIGFsbG93ZWRGb3JtYXRzOiAn0KTQvtGA0LzQsNGC0Ysg0L/RgNC40L3Rj9GC0Ys6IHswfS4nLFxyXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC+0YIgezB9INC00L4gezF9JyxcclxuICAgIG1heEZpbGVTaXplQWxsb3dlZDogJ9Ce0LPRgNCw0L3QuNGH0LXQvdC40LUg0YDQsNC30LzQtdGA0LAg0YTQsNC50LvQsDog0LTQviB7MH0nLFxyXG4gICAgbWluRmlsZVNpemVBbGxvd2VkOiAn0J7Qs9GA0LDQvdC40YfQtdC90LjQtSDRgNCw0LfQvNC10YDQsCDRhNCw0LnQu9CwOiDQvdC1INC80LXQvdC10LUgezB9JyxcclxuICAgIGVycm9yT2NjdXJyZWQ6ICfQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwLicsXHJcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICfQo9GB0L/QtdGI0L3QviDQvtGC0L/RgNCw0LLQu9C10L3QvidcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBwb1VwbG9hZEZvcm1GaWVsZERlZmF1bHQgPSAnZmlsZXMnO1xyXG5cclxuY29uc3QgcG9VcGxvYWRNYXhGaWxlU2l6ZSA9IDMxNDU3MjgwOyAvLyAzME1CXHJcbmNvbnN0IHBvVXBsb2FkTWluRmlsZVNpemUgPSAwO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBPIGNvbXBvbmVudGUgYHBvLXVwbG9hZGAgcGVybWl0ZSBxdWUgbyB1c3XDoXJpbyBlbnZpZSBhcnF1aXZvKHMpIGFvIHNlcnZpZG9yIGUgYWNvbXBhbmhlIG8gcHJvZ3Jlc3NvLlxyXG4gKiBFc3RlIGNvbXBvbmVudGUgdGFtYsOpbSBwb3NzaWJpbGl0YSBhbGd1bWFzIGNvbmZpZ3VyYcOnw7VlcyBjb21vOlxyXG4gKiAg4oCTIEVudmlvIGRlIGRpcmV0w7NyaW9zLCBvbmRlIGVsZSBhY2Vzc2EgbyBkaXJldMOzcmlvIHNlbGVjaW9uYWRvIGFzc2ltIGNvbW8gc2V1cyBzdWItZGlyZXTDs3Jpb3M7XHJcbiAqICAtIE3Dumx0aXBsYSBzZWxlw6fDo28sIG9uZGUgbyB1c3XDoXJpbyBwb2RlIGVudmlhciBtYWlzIGRlIHVtIGFycXVpdm8gYW8gc2Vydmlkb3IuXHJcbiAqICAtIEF1dG8gZW52aW8sIG9uZGUgbyBhcnF1aXZvIMOpIGVudmlhZG8gaW1lZGlhdGFtZW50ZSBhcMOzcyBhIHNlbGXDp8OjbyBkbyB1c3XDoXJpbywgbsOjbyBuZWNlc3NpdGFuZG8gcXVlIG8gdXN1w6FyaW9cclxuICogY2xpcXVlIGVtIGVudmlhci5cclxuICogIC0gUmVzdHJpw6fDtWVzIGRlIGZvcm1hdG9zIGRlIGFycXVpdm8gZSB0YW1hbmhvLlxyXG4gKiAgLSBGdW7Dp8OjbyBkZSBzdWNlc3NvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIG9zIGFycXVpdm9zIGZvcmVtIGVudmlhZG9zIGNvbSBzdWNlc3NvLlxyXG4gKiAgLSBGdW7Dp8OjbyBkZSBlcnJvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBlcnJvIG5vIGVudmlvIGRvcyBhcnF1aXZvcy5cclxuICogIC0gUGVybWl0ZSBoYWJpbGl0YXIgdW1hIMOhcmVhIG9uZGUgb3MgYXJxdWl2b3MgcG9kZW0gc2VyIGFycmFzdGFkb3MuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvVXBsb2FkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBBcGxpY2EgZm9jbyBubyBlbGVtZW50byBhbyBzZXIgaW5pY2lhZG8uXHJcbiAgICpcclxuICAgKiA+IENhc28gbWFpcyBkZSB1bSBlbGVtZW50byBzZWphIGNvbmZpZ3VyYWRvIGNvbSBlc3NhIHByb3ByaWVkYWRlLCBhcGVuYXMgbyDDumx0aW1vIGVsZW1lbnRvIGRlY2xhcmFkbyBjb20gZWxhIHRlcsOhIG8gZm9jby5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtYXV0by1mb2N1cycpIEBJbnB1dEJvb2xlYW4oKSBhdXRvRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIERlZmluZSBlbSAqcGl4ZWxzKiBhIGFsdHVyYSBkYSDDoXJlYSBvbmRlIHBvZGVtIHNlciBhcnJhc3RhZG9zIG9zIGFycXVpdm9zLiBBIGFsdHVyYSBtw61uaW1hIGFjZWl0YSDDqSBgMTYwcHhgLlxyXG4gICAqXHJcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIGZ1bmNpb25hIHNvbWVudGUgc2UgYSBwcm9wcmllZGFkZSBgcC1kcmFnLWRyb3BgIGVzdGl2ZXIgaGFiaWxpdGFkYS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGAzMjBgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWRyYWctZHJvcC1oZWlnaHQnKSBkcmFnRHJvcEhlaWdodDogbnVtYmVyO1xyXG5cclxuICAvKiogUsOzdHVsbyBkbyBjYW1wby4gKi9cclxuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgLyoqIFRleHRvIGRlIGFwb2lvIHBhcmEgbyBjYW1wby4gKi9cclxuICBASW5wdXQoJ3AtaGVscCcpIGhlbHA/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBVUkwgcXVlIGRldmUgc2VyIGZlaXRhIGEgcmVxdWlzacOnw6NvIGNvbSBvcyBhcnF1aXZvcyBzZWxlY2lvbmFkb3MuICovXHJcbiAgQElucHV0KCdwLXVybCcpIHVybDogc3RyaW5nO1xyXG5cclxuICAvKiogRGVmaW5lIG8gdmFsb3IgZG8gYXRyaWJ1dG8gYG5hbWVgIGRvIGNvbXBvbmVudGUuICovXHJcbiAgQElucHV0KCduYW1lJykgbmFtZTogc3RyaW5nID0gJ2ZpbGUnO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRGVmaW5lIHNlIG8gZW52aW8gZG8gYXJxdWl2byBzZXLDoSBhdXRvbcOhdGljbyBhbyBzZWxlY2lvbmFyIG8gbWVzbW8uXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWF1dG8tdXBsb2FkJykgYXV0b1VwbG9hZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9wY2lvbmFsIHNlcsOhIGV4aWJpZGEuXHJcbiAgICpcclxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxyXG4gICAqICAtIE8gY2FtcG8gY29udGVyIGBwLXJlcXVpcmVkYDtcclxuICAgKiAgLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLW9wdGlvbmFsJykgb3B0aW9uYWw6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBPYmpldG8gcXVlIGNvbnTDqW0gb3MgY2FiZcOnYWxob3MgcXVlIHNlcsOhIGVudmlhZG8gbmEgcmVxdWlzacOnw6NvIGRvcyBhcnF1dmlvcy4gKi9cclxuICBASW5wdXQoJ3AtaGVhZGVycycpIGhlYWRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgbm8gbW9tZW50byBkZSByZWFsaXphciBvIGVudmlvIGRvIGFycXVpdm8sXHJcbiAgICogb25kZSBzZXLDoSBwb3Nzw612ZWwgYWRpY2lvbmFyIGluZm9ybWHDp8O1ZXMgYW8gcGFyw6JtZXRybyBxdWUgc2Vyw6EgZW52aWFkbyBuYSByZXF1aXNpw6fDo28uXHJcbiAgICogw4kgcGFzc2FkbyBwb3IgcGFyw6JtZXRybyB1bSBvYmpldG8gY29tIG8gYXJxdWl2byBlIGEgcHJvcGllZGFkZSBkYXRhIG5lc3RhIHByb3ByaWVkYWRlIHBvZGUgc2VyIGluZm9ybWFkbyBhbGd1bSBkYWRvLFxyXG4gICAqIHF1ZSBzZXLDoSBlbnZpYWRvIGVtIGNvbmp1bnRvIGNvbSBvIGFycXVpdm8gbmEgcmVxdWlzacOnw6NvLCBwb3IgZXhlbXBsbzpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICAgZXZlbnQuZGF0YSA9IHtpZDogJ2lkIGRvIHVzdWFyaW8nfTtcclxuICAgKiBgYGBcclxuICAgKi9cclxuICBAT3V0cHV0KCdwLXVwbG9hZCcpIG9uVXBsb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRXZlbnRvIHNlcsOhIGRpc3BhcmFkbyBxdWFuZG8gb2NvcnJlciBhbGd1bSBlcnJvIG5vIGVudmlvIGRvIGFycXVpdm8uXHJcbiAgICogPiBQb3IgcGFyw6JtZXRybyBzZXLDoSBwYXNzYWRvIG8gb2JqZXRvIGRvIHJldG9ybm8gcXVlIMOpIGRvIHRpcG8gYEh0dHBFcnJvclJlc3BvbnNlYC5cclxuICAgKi9cclxuICBAT3V0cHV0KCdwLWVycm9yJykgb25FcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEV2ZW50byBzZXLDoSBkaXNwYXJhZG8gcXVhbmRvIG8gZW52aW8gZG8gYXJxdWl2byBmb3IgcmVhbGl6YWRvIGNvbSBzdWNlc3NvLlxyXG4gICAqID4gUG9yIHBhcsOibWV0cm8gc2Vyw6EgcGFzc2FkbyBvIG9iamV0byBkbyByZXRvcm5vIHF1ZSDDqSBkbyB0aXBvIGBIdHRwUmVzcG9uc2VgLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoJ3Atc3VjY2VzcycpIG9uU3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEZ1bsOnw6NvIHBhcmEgYXR1YWxpemFyIG8gbmdNb2RlbCBkbyBjb21wb25lbnRlLCBuZWNlc3PDoXJpbyBxdWFuZG8gbsOjbyBmb3IgdXRpbGl6YWRvIGRlbnRybyBkYSAqdGFnKiBgZm9ybWAuXHJcbiAgICpcclxuICAgKiBOYSB2ZXJzw6NvIDEyLjIuMCBkbyBBbmd1bGFyIGEgdmVyaWZpY2HDp8OjbyBgc3RyaWN0VGVtcGxhdGVzYCB2ZW0gdHJ1ZSBjb21vIGRlZmF1bHQuIFBvcnRhbnRvLCBwYXJhIHV0aWxpemFyXHJcbiAgICogdHdvLXdheSBiaW5kaW5nIG5vIGNvbXBvbmVudGUgZGV2ZSBzZSB1dGlsaXphciBkYSBzZWd1aW50ZSBmb3JtYTpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIDxwby11cGxvYWQgLi4uIFtuZ01vZGVsXT1cIlVwbG9hZE1vZGVsXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBsb2FkTW9kZWwgPSAkZXZlbnRcIj4gPC9wby11cGxvYWQ+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKi9cclxuICBAT3V0cHV0KCduZ01vZGVsQ2hhbmdlJykgbmdNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZztcclxuICBjdXJyZW50RmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT47XHJcblxyXG4gIGNhbkhhbmRsZURpcmVjdG9yeTogYm9vbGVhbjtcclxuICBvbk1vZGVsQ2hhbmdlOiBhbnk7XHJcblxyXG4gIHByb3RlY3RlZCBleHRlbnNpb25Ob3RBbGxvd2VkID0gMDtcclxuICBwcm90ZWN0ZWQgcXVhbnRpdHlOb3RBbGxvd2VkID0gMDtcclxuICBwcm90ZWN0ZWQgc2l6ZU5vdEFsbG93ZWQgPSAwO1xyXG4gIHByb3RlY3RlZCBvbk1vZGVsVG91Y2hlZDogYW55ID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfZGlyZWN0b3J5PzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9kaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfZHJhZ0Ryb3A/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZmlsZVJlc3RyaWN0aW9ucz86IFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9ucztcclxuICBwcml2YXRlIF9mb3JtRmllbGQ/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfaGlkZVJlc3RyaWN0aW9uc0luZm8/OiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2hpZGVTZWxlY3RCdXR0b24/OiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2hpZGVTZW5kQnV0dG9uPzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9pc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9saXRlcmFscz86IGFueTtcclxuICBwcml2YXRlIF9yZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgdmFsaWRhdG9yQ2hhbmdlOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBQZXJtaXRlIGEgc2VsZcOnw6NvIGRlIGRpcmV0w7NyaW9zIGNvbnRlbmRvIHVtIG91IG1haXMgYXJxdWl2b3MgcGFyYSBlbnZpby5cclxuICAgKlxyXG4gICAqID4gQSBoYWJpbGl0YcOnw6NvIGRlc3RhIHByb3ByaWVkYWRlIHNlIHJlc3RyaW5nZSBhcGVuYXMgw6Agc2VsZcOnw6NvIGRlIGRpcmV0w7NyaW9zLlxyXG4gICAqXHJcbiAgICogPiBEZWZpbmnDp8OjbyBuw6NvIHN1cG9ydGFkYSBwZWxvIGJyb3dzZXIgKipJbnRlcm5ldCBFeHBsb3JlcioqLCB0b2RhdmlhIHNlcsOhIHBvc3PDrXZlbCBhIHNlbGXDp8OjbyBkZSBhcnF1aXZvcyBwYWRyw6NvLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1kaXJlY3RvcnknKSBzZXQgZGlyZWN0b3J5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXJlY3RvcnkgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSA9IHRoaXMuX2RpcmVjdG9yeSAmJiAhaXNJRSgpICYmICFpc01vYmlsZSgpO1xyXG4gICAgdGhpcy5zZXREaXJlY3RvcnlBdHRyaWJ1dGUodGhpcy5jYW5IYW5kbGVEaXJlY3RvcnkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpcmVjdG9yeSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXJlY3Rvcnk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRXhpYmUgYSDDoXJlYSBvbmRlIMOpIHBvc3PDrXZlbCBhcnJhc3RhciBlIHNlbGVjaW9uYXIgb3MgYXJxdWl2b3MuIFF1YW5kbyBlc3RpdmVyIGRlZmluaWRhLCBvbWl0ZSBvIGJvdMOjbyBwYXJhIHNlbGXDp8OjbyBkZSBhcnF1aXZvc1xyXG4gICAqIGF1dG9tYXRpY2FtZW50ZS5cclxuICAgKlxyXG4gICAqID4gUmVjb21lbmRhbW9zIHV0aWxpemFyIGFwZW5hcyB1bSBgcG8tdXBsb2FkYCBjb20gZXN0YSBmdW5jaW9uYWxpZGFkZSBwb3IgdGVsYS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtZHJhZy1kcm9wJykgc2V0IGRyYWdEcm9wKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kcmFnRHJvcCA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRyYWdEcm9wKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RyYWdEcm9wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE9jdWx0YSB2aXN1YWxtZW50ZSBhcyBpbmZvcm1hw6fDtWVzIGRlIHJlc3RyacOnw7VlcyBwYXJhIG8gdXBsb2FkLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1oaWRlLXJlc3RyaWN0aW9ucy1pbmZvJykgc2V0IGhpZGVSZXN0cmljdGlvbnNJbmZvKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9oaWRlUmVzdHJpY3Rpb25zSW5mbyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhpZGVSZXN0cmljdGlvbnNJbmZvKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hpZGVSZXN0cmljdGlvbnNJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE9taXRlIG8gYm90w6NvIGRlIHNlbGXDp8OjbyBkZSBhcnF1aXZvcy5cclxuICAgKlxyXG4gICAqID4gQ2FzbyBvIHZhbG9yIGRlZmluaWRvIHNlamEgYHRydWVgLCBjYWJlcsOhIGFvIGRlc2Vudm9sdmVkb3IgYSByZXNwb25zYWJpbGlkYWRlXHJcbiAgICogcGVsYSBjaGFtYWRhIGRvIG3DqXRvZG8gYHNlbGVjdEZpbGVzKClgIHBhcmEgc2VsZcOnw6NvIGRlIGFycXVpdm9zLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1oaWRlLXNlbGVjdC1idXR0b24nKSBzZXQgaGlkZVNlbGVjdEJ1dHRvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faGlkZVNlbGVjdEJ1dHRvbiA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuICBnZXQgaGlkZVNlbGVjdEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9oaWRlU2VsZWN0QnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE9taXRlIG8gYm90w6NvIGRlIGVudmlvIGRlIGFycXVpdm9zLlxyXG4gICAqXHJcbiAgICogPiBDYXNvIG8gdmFsb3IgZGVmaW5pZG8gc2VqYSBgdHJ1ZWAsIGNhYmVyw6EgYW8gZGVzZW52b2x2ZWRvciBhIHJlc3BvbnNhYmlsaWRhZGVcclxuICAgKiBwZWxhIGNoYW1hZGEgZG8gbcOpdG9kbyBgc2VuZEZpbGVzKClgIHBhcmEgZW52aW8gZG8ocykgYXJxdWl2byhzKSBzZWxlY2lvbmFkbyhzKS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtaGlkZS1zZW5kLWJ1dHRvbicpIHNldCBoaWRlU2VuZEJ1dHRvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faGlkZVNlbmRCdXR0b24gPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGhpZGVTZW5kQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZW5kQnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby11cGxvYWRgLlxyXG4gICAqXHJcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlOlxyXG4gICAqXHJcbiAgICogLSBwYXNzYW5kbyB1bSBvYmpldG8gaW1wbGVtZW50YW5kbyBhIGludGVyZmFjZSBgUG9VcGxvYWRMaXRlcmFsc2AgY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpcztcclxuICAgKiAtIHBhc3NhbmRvIGFwZW5hcyBhcyBsaXRlcmFpcyBxdWUgZGVzZWphIGN1c3RvbWl6YXI6XHJcbiAgICogYGBgXHJcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1VwbG9hZExpdGVyYWxzID0ge1xyXG4gICAqICAgIGZvbGRlcnM6ICdQYXN0YXMnLFxyXG4gICAqICAgIHNlbGVjdEZpbGU6ICdCdXNjYXIgYXJxdWl2bycsXHJcbiAgICogICAgc3RhcnRTZW5kaW5nOiAnRW52aWFyJ1xyXG4gICAqICB9O1xyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZTpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIDxwby11cGxvYWRcclxuICAgKiAgIFtwLWxpdGVyYWxzXT1cImN1c3RvbUxpdGVyYWxzXCI+XHJcbiAgICogPC9wby11cGxvYWQ+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG8gKmJyb3dzZXIqIChwdCwgZW4sIGVzLCBydSkuXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb1VwbG9hZExpdGVyYWxzKSB7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcclxuICAgICAgICAuLi5wb1VwbG9hZExpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxyXG4gICAgICAgIC4uLnBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxyXG4gICAgICAgIC4uLnZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgbGl0ZXJhbHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGl0ZXJhbHMgfHwgcG9VcGxvYWRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogT2JqZXRvIHF1ZSBzZWd1ZSBhIGRlZmluacOnw6NvIGRhIGludGVyZmFjZSBgUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zYCxcclxuICAgKiBxdWUgcG9zc2liaWxpdGEgZGVmaW5pciB0YW1hbmhvIG3DoXhpbW8vbcOtbmltbyBlIGV4dGVuc8OjbyBkb3MgYXJxdWl2b3MgcGVybWl0aWRvcy5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtcmVzdHJpY3Rpb25zJykgc2V0IGZpbGVSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMpIHtcclxuICAgIHRoaXMuX2ZpbGVSZXN0cmljdGlvbnMgPSB0aGlzLmluaXRSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zKTtcclxuXHJcbiAgICB0aGlzLnNldEFsbG93ZWRFeHRlbnNpb25zKHJlc3RyaWN0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlsZVJlc3RyaWN0aW9ucygpOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVSZXN0cmljdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogTm9tZSBkbyBjYW1wbyBkZSBmb3JtdWzDoXJpbyBxdWUgc2Vyw6EgZW52aWFkbyBwYXJhIG8gc2VydmnDp28gaW5mb3JtYWRvIG5hIHByb3ByaWVkYWRlIGBwLXVybGAuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBgZmlsZXNgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWZvcm0tZmllbGQnKSBzZXQgZm9ybUZpZWxkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdDtcclxuXHJcbiAgICB0aGlzLmdldFVwbG9hZFNlcnZpY2UoKS5mb3JtRmllbGQgPSB0aGlzLmZvcm1GaWVsZDtcclxuICB9XHJcblxyXG4gIGdldCBmb3JtRmllbGQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIGRlc2FiaWxpdGFkby5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKHRoaXMuY3VycmVudEZpbGVzKTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBEZWZpbmUgc2UgcG9kZSBzZWxlY2lvbmFyIG1haXMgZGUgdW0gYXJxdWl2by5cclxuICAgKlxyXG4gICAqID4gU2UgdXRpbGl6YWRhIGEgYHAtZGlyZWN0b3J5YCwgaGFiaWxpdGEtc2UgYXV0b21hdGljYW1lbnRlIGVzdGEgcHJvcHJpZWRhZGUuXHJcbiAgICovXHJcbiAgQElucHV0KCdwLW11bHRpcGxlJykgc2V0IGlzTXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBpc011bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuSGFuZGxlRGlyZWN0b3J5ID8gdHJ1ZSA6IHRoaXMuX2lzTXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtcmVxdWlyZWQnKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29udmVydFRvQm9vbGVhbihyZXF1aXJlZCk7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKHRoaXMuY3VycmVudEZpbGVzKTtcclxuICB9XHJcblxyXG4gIGdldCByZXF1aXJlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB1cGxvYWRTZXJ2aWNlOiBQb1VwbG9hZFNlcnZpY2UsIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UpIHtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBpZiAocmVxdWlyZWRGYWlsZWQodGhpcy5yZXF1aXJlZCwgdGhpcy5kaXNhYmxlZCwgYWJzdHJhY3RDb250cm9sLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHJlcXVpcmVkOiB7XHJcbiAgICAgICAgICB2YWxpZDogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChtb2RlbCkge1xyXG4gICAgICBpZiAoIWlzRXF1YWxzKHRoaXMuY3VycmVudEZpbGVzLCBtb2RlbCkpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcyA9IHRoaXMucGFyc2VGaWxlcyhtb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEZpbGVzID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzRXhjZWVkZWRGaWxlTGltaXQoY3VycmVudEZpbGVzTGVuZ3RoOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLmZpbGVSZXN0cmljdGlvbnMgJiZcclxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zLm1heEZpbGVzID4gMCAmJlxyXG4gICAgICB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXMgPD0gY3VycmVudEZpbGVzTGVuZ3RoXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gRmF6IG8gcGFyc2UgZG9zIGFycXVpdm9zIHNlbGVjaW9uYWRvcyBwYXJhIGFycXVpdm9zIGRvIGZvcm1hdG8gUG9VcGxvYWRGaWxlIGUgYXR1YWxpemEgb3MgYXJxdWl2b3MgY29ycmVudGVzLlxyXG4gIHByb3RlY3RlZCBwYXJzZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IEFycmF5PFBvVXBsb2FkRmlsZT4ge1xyXG4gICAgbGV0IHBvVXBsb2FkRmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4gPSB0aGlzLmN1cnJlbnRGaWxlcyB8fCBbXTtcclxuICAgIGNvbnN0IGZpbGVzTGVuZ3RoID0gZmlsZXMubGVuZ3RoO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXNMZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5pc0V4Y2VlZGVkRmlsZUxpbWl0KHBvVXBsb2FkRmlsZXMubGVuZ3RoKSkge1xyXG4gICAgICAgIHRoaXMucXVhbnRpdHlOb3RBbGxvd2VkID0gZmlsZXNMZW5ndGggLSB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZmlsZSA9IG5ldyBQb1VwbG9hZEZpbGUoZmlsZXNbaV0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY2hlY2tSZXN0cmljdGlvbnMoZmlsZSkpIHtcclxuICAgICAgICBwb1VwbG9hZEZpbGVzID0gdGhpcy5pbnNlcnRGaWxlSW5GaWxlcyhmaWxlLCBwb1VwbG9hZEZpbGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZW5kRmVlZGJhY2soKTtcclxuICAgIHJldHVybiBwb1VwbG9hZEZpbGVzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlTW9kZWwobW9kZWw6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudmFsaWRhdG9yQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKG1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFZlcmlmaWNhIHNlIG8gYXJxdWl2byBlc3TDoSBkZSBhY29yZG8gY29tIGFzIHJlc3RyacOnw7Vlcy5cclxuICBwcml2YXRlIGNoZWNrUmVzdHJpY3Rpb25zKGZpbGU6IFBvVXBsb2FkRmlsZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVzdHJpY3Rpb25zID0gdGhpcy5maWxlUmVzdHJpY3Rpb25zO1xyXG5cclxuICAgIGlmIChyZXN0cmljdGlvbnMpIHtcclxuICAgICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPSByZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnM7XHJcbiAgICAgIGNvbnN0IG1pbkZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1pbkZpbGVTaXplO1xyXG4gICAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZTtcclxuXHJcbiAgICAgIGNvbnN0IGlzQWNjZXB0ID0gYWxsb3dlZEV4dGVuc2lvbnMgPyB0aGlzLmlzQWxsb3dlZEV4dGVuc2lvbihmaWxlLmV4dGVuc2lvbiwgYWxsb3dlZEV4dGVuc2lvbnMpIDogdHJ1ZTtcclxuICAgICAgY29uc3QgaXNBY2NlcHRTaXplID0gZmlsZS5zaXplID49IG1pbkZpbGVTaXplICYmIGZpbGUuc2l6ZSA8PSBtYXhGaWxlU2l6ZTtcclxuXHJcbiAgICAgIGlmICghaXNBY2NlcHRTaXplKSB7XHJcbiAgICAgICAgdGhpcy5zaXplTm90QWxsb3dlZCA9IHRoaXMuc2l6ZU5vdEFsbG93ZWQgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNBY2NlcHQgJiYgaXNBY2NlcHRTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGlzdHNGaWxlU2FtZU5hbWUoZmlsZTogUG9VcGxvYWRGaWxlLCBmaWxlczogQXJyYXk8UG9VcGxvYWRGaWxlPik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZpbGVzLnNvbWUoY3VycmVudEZpbGUgPT4gZmlsZS5uYW1lID09PSBjdXJyZW50RmlsZS5uYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBsb2FkU2VydmljZSgpOiBQb1VwbG9hZFNlcnZpY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5zZXJ0RmlsZUluRmlsZXMobmV3RmlsZTogUG9VcGxvYWRGaWxlLCBmaWxlczogQXJyYXk8UG9VcGxvYWRGaWxlPikge1xyXG4gICAgaWYgKHRoaXMuZXhpc3RzRmlsZVNhbWVOYW1lKG5ld0ZpbGUsIGZpbGVzKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVFeGlzdHNGaWxlSW5GaWxlcyhuZXdGaWxlLCBmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xyXG4gICAgICBmaWxlcy5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZXMuc3BsaWNlKDAsIGZpbGVzLmxlbmd0aCwgbmV3RmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpbGVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FsbG93ZWRFeHRlbnNpb24oZXh0ZW5zaW9uOiBzdHJpbmcsIGFsbG93ZWRFeHRlbnNpb25zOiBBcnJheTxzdHJpbmc+ID0gW10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzQWxsb3dlZCA9IGFsbG93ZWRFeHRlbnNpb25zLnNvbWUoZXh0ID0+IGV4dC50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb24pO1xyXG4gICAgaWYgKCFpc0FsbG93ZWQpIHtcclxuICAgICAgdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkID0gdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkICsgMTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc0FsbG93ZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFsbG93ZWRFeHRlbnNpb25zKHJlc3RyaWN0aW9uczogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zID0ge30pIHtcclxuICAgIGNvbnN0IF9hbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucyB8fCBbXTtcclxuXHJcbiAgICB0aGlzLmFsbG93ZWRFeHRlbnNpb25zID0gX2FsbG93ZWRFeHRlbnNpb25zLmpvaW4oJywnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnM6IFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9ucyk6IFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9ucyB7XHJcbiAgICBpZiAoIXJlc3RyaWN0aW9ucykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWluRmlsZVNpemUgPSByZXN0cmljdGlvbnMubWluRmlsZVNpemUgfHwgcG9VcGxvYWRNaW5GaWxlU2l6ZTtcclxuICAgIGNvbnN0IG1heEZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1heEZpbGVTaXplIHx8IHBvVXBsb2FkTWF4RmlsZVNpemU7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucmVzdHJpY3Rpb25zLFxyXG4gICAgICBtYXhGaWxlU2l6ZTogbWF4RmlsZVNpemUsXHJcbiAgICAgIG1pbkZpbGVTaXplOiBtaW5GaWxlU2l6ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRXhpc3RzRmlsZUluRmlsZXMobmV3RmlsZTogUG9VcGxvYWRGaWxlLCBmaWxlczogQXJyYXk8UG9VcGxvYWRGaWxlPikge1xyXG4gICAgY29uc3QgZmlsZUluZGV4ID0gZmlsZXMuZmluZEluZGV4KFxyXG4gICAgICBjdXJyZW50RmlsZSA9PiBuZXdGaWxlLm5hbWUgPT09IGN1cnJlbnRGaWxlLm5hbWUgJiYgY3VycmVudEZpbGUuc3RhdHVzICE9PSBQb1VwbG9hZFN0YXR1cy5VcGxvYWRlZFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZmlsZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICBmaWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxLCBuZXdGaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmlsZXM7XHJcbiAgfVxyXG5cclxuICBhYnN0cmFjdCBzZW5kRmVlZGJhY2soKTogdm9pZDtcclxuXHJcbiAgYWJzdHJhY3Qgc2V0RGlyZWN0b3J5QXR0cmlidXRlKHZhbHVlOiBib29sZWFuKTtcclxufVxyXG4iXX0=
1
+ import { __decorate } from "tslib";
2
+ import { EventEmitter, Input, Output, Directive } from '@angular/core';
3
+ import { convertToBoolean, isEquals, isIE, isMobile } from '../../../utils/util';
4
+ import { requiredFailed } from '../validators';
5
+ import { PoUploadFile } from './po-upload-file';
6
+ import { PoUploadService } from './po-upload.service';
7
+ import { PoUploadStatus } from './po-upload-status.enum';
8
+ import { InputBoolean } from '../../../decorators';
9
+ import { PoLanguageService } from '../../../services/po-language/po-language.service';
10
+ import { poLocaleDefault } from '../../../services/po-language/po-language.constant';
11
+ export const poUploadLiteralsDefault = {
12
+ en: {
13
+ files: 'files',
14
+ folders: 'folders',
15
+ selectFile: 'Select file',
16
+ selectFiles: 'Select files',
17
+ selectFolder: 'Select folder',
18
+ startSending: 'Start sending',
19
+ dragFilesHere: 'Drag files here',
20
+ dragFoldersHere: 'Drag folders here',
21
+ selectFilesOnComputer: 'or select files on your computer',
22
+ selectFolderOnComputer: 'or select folder on your computer',
23
+ dropFilesHere: 'Drop files here',
24
+ dropFoldersHere: 'Drop folders here',
25
+ invalidDropArea: '{0} were not dropped in the correct area',
26
+ invalidFileType: 'Failed to load {0} file(s) as it is not the allowed file type.',
27
+ invalidAmount: 'Failed to load {0} file(s), as it exceeds the limit amount of files.',
28
+ invalidFormat: 'Failed to load {0} file(s), as it does not match the format(s): {1}.',
29
+ invalidSize: 'Failed to load {0} files(s), as it is not the allowed size: from {1} to {2}.',
30
+ numberOfFilesAllowed: '{0} file(s) allowed',
31
+ allowedFormats: 'Accepted file formats: {0}.',
32
+ allowedFileSizeRange: 'Size limit per file: from {0} to {1}',
33
+ maxFileSizeAllowed: 'Size limit per file: {0} maximum',
34
+ minFileSizeAllowed: 'Size limit per file: {0} minimum',
35
+ errorOccurred: 'An error has occurred',
36
+ sentWithSuccess: 'Sent with success'
37
+ },
38
+ es: {
39
+ files: 'archivos',
40
+ folders: 'carpetas',
41
+ selectFile: 'Seleccionar archivo',
42
+ selectFiles: 'Seleccionar archivos',
43
+ selectFolder: 'Seleccionar carpeta',
44
+ startSending: 'Iniciar carga',
45
+ dragFilesHere: 'Arrastra los archivos aquí',
46
+ dragFoldersHere: 'Arrastra las carpetas aquí',
47
+ selectFilesOnComputer: 'o selecciona los archivos en tu computadora',
48
+ selectFolderOnComputer: 'o selecciona la carpeta en tu computadora',
49
+ dropFilesHere: 'Deja los archivos aquí',
50
+ dropFoldersHere: 'Deja las carpetas aquí',
51
+ invalidDropArea: 'Los {0} no se insertaron en la ubicación correcta',
52
+ invalidFileType: 'Error al cargar {0} archivo (s) ya que no es el tipo de archivo permitido',
53
+ invalidAmount: 'Error al cargar {0} archivo (s) ya que excede la cantidad limite de archivos.',
54
+ invalidFormat: 'Error al cargar {0} archivo (s) ya que no coincide con el formato (s): {1}.',
55
+ invalidSize: 'Error al cargar {0} archivo (s) ya que no cumple con el tamaño permitido: desde {1} hasta {2}.',
56
+ numberOfFilesAllowed: '{0} archivo(s) permitido(s)',
57
+ allowedFormats: 'Formatos aceptados: {0}.',
58
+ allowedFileSizeRange: 'Limite de tamaño de archivo: desde {0} hasta {1}',
59
+ maxFileSizeAllowed: 'Limite de tamaño de archivo: hasta {0}',
60
+ minFileSizeAllowed: 'Limite de tamaño de archivo: minimo {0}',
61
+ errorOccurred: 'Ocurrio un error',
62
+ sentWithSuccess: 'Enviado con éxito'
63
+ },
64
+ pt: {
65
+ files: 'arquivos',
66
+ folders: 'diretórios',
67
+ selectFile: 'Selecionar arquivo',
68
+ selectFiles: 'Selecionar arquivos',
69
+ selectFolder: 'Selecionar pasta',
70
+ startSending: 'Iniciar envio',
71
+ dragFilesHere: 'Arraste os arquivos aqui',
72
+ dragFoldersHere: 'Arraste as pastas aqui',
73
+ selectFilesOnComputer: 'ou selecione os arquivos no computador',
74
+ selectFolderOnComputer: 'ou selecione a pasta no computador',
75
+ dropFilesHere: 'Solte os arquivos aqui',
76
+ dropFoldersHere: 'Solte as pastas aqui',
77
+ invalidDropArea: 'Os {0} não foram inseridos no local correto',
78
+ invalidFileType: 'Falha ao carregar {0} arquivo (s), pois não é o tipo de arquivo permitido',
79
+ invalidAmount: 'Falha ao carregar {0} arquivo(s), pois excede(m) a quantidade limite de arquivos.',
80
+ invalidFormat: 'Falha ao carregar {0} arquivo(s), pois não corresponde(m) ao(s) formato(s): {1}.',
81
+ invalidSize: 'Falha ao carregar {0} arquivo(s), pois não atende ao tamanho permitido: {1} até {2}.',
82
+ numberOfFilesAllowed: 'Quantidade máxima: {0} arquivo(s)',
83
+ allowedFormats: 'Formatos adotados: {0}.',
84
+ allowedFileSizeRange: 'Limite de tamanho por arquivo: de {0} até {1}',
85
+ maxFileSizeAllowed: 'Limite de tamanho por arquivo: até {0}',
86
+ minFileSizeAllowed: 'Limite de tamanho por arquivo: no mínimo {0}',
87
+ errorOccurred: 'Ocorreu um erro',
88
+ sentWithSuccess: 'Enviado com sucesso'
89
+ },
90
+ ru: {
91
+ files: 'файлы',
92
+ folders: 'папки с файлами',
93
+ selectFile: 'Выберите файл',
94
+ selectFiles: 'Выберите файлы',
95
+ selectFolder: 'Выберите папку с файлами',
96
+ startSending: 'Начать загрузку',
97
+ dragFilesHere: 'Перетащите файлы сюда',
98
+ dragFoldersHere: 'Перетащите сюда папки',
99
+ selectFilesOnComputer: 'или выберите файлы на компьютере',
100
+ selectFolderOnComputer: 'или выберите папку на вашем компьютере',
101
+ dropFilesHere: 'Оставьте файлы здесь',
102
+ dropFoldersHere: 'Перетащите сюда папки',
103
+ invalidDropArea: '{0} не были вставлены в правильном месте.',
104
+ invalidFileType: 'Не удалось загрузить файлы {0}, так как это неверный тип файла',
105
+ invalidAmount: 'Não foi possível carregar os arquivos {0} porque eles excederam o limite de arquivos.',
106
+ invalidFormat: 'Не удалось загрузить файлы {0}, так как они не соответствуют формату (ам): {1}.',
107
+ invalidSize: 'Не удалось загрузить файлы {0}, поскольку они не соответствуют разрешенному размеру: от {1} до {2}.',
108
+ numberOfFilesAllowed: 'Максимальное количество: {0} файлов',
109
+ allowedFormats: 'Форматы приняты: {0}.',
110
+ allowedFileSizeRange: 'Ограничение размера файла: от {0} до {1}',
111
+ maxFileSizeAllowed: 'Ограничение размера файла: до {0}',
112
+ minFileSizeAllowed: 'Ограничение размера файла: не менее {0}',
113
+ errorOccurred: 'Произошла ошибка.',
114
+ sentWithSuccess: 'Успешно отправлено'
115
+ }
116
+ };
117
+ const poUploadFormFieldDefault = 'files';
118
+ const poUploadMaxFileSize = 31457280; // 30MB
119
+ const poUploadMinFileSize = 0;
120
+ /**
121
+ * @description
122
+ *
123
+ * O componente `po-upload` permite que o usuário envie arquivo(s) ao servidor e acompanhe o progresso.
124
+ * Este componente também possibilita algumas configurações como:
125
+ * – Envio de diretórios, onde ele acessa o diretório selecionado assim como seus sub-diretórios;
126
+ * - Múltipla seleção, onde o usuário pode enviar mais de um arquivo ao servidor.
127
+ * - Auto envio, onde o arquivo é enviado imediatamente após a seleção do usuário, não necessitando que o usuário
128
+ * clique em enviar.
129
+ * - Restrições de formatos de arquivo e tamanho.
130
+ * - Função de sucesso que será disparada quando os arquivos forem enviados com sucesso.
131
+ * - Função de erro que será disparada quando houver erro no envio dos arquivos.
132
+ * - Permite habilitar uma área onde os arquivos podem ser arrastados.
133
+ */
134
+ export class PoUploadBaseComponent {
135
+ constructor(uploadService, languageService) {
136
+ this.uploadService = uploadService;
137
+ /**
138
+ * @optional
139
+ *
140
+ * @description
141
+ *
142
+ * Aplica foco no elemento ao ser iniciado.
143
+ *
144
+ * > Caso mais de um elemento seja configurado com essa propriedade, apenas o último elemento declarado com ela terá o foco.
145
+ *
146
+ * @default `false`
147
+ */
148
+ this.autoFocus = false;
149
+ /** Define o valor do atributo `name` do componente. */
150
+ this.name = 'file';
151
+ /**
152
+ * @optional
153
+ *
154
+ * @description
155
+ *
156
+ * Define se o envio do arquivo será automático ao selecionar o mesmo.
157
+ *
158
+ * @default `false`
159
+ */
160
+ this.autoUpload = false;
161
+ /**
162
+ * @optional
163
+ *
164
+ * @description
165
+ *
166
+ * Função que será executada no momento de realizar o envio do arquivo,
167
+ * onde será possível adicionar informações ao parâmetro que será enviado na requisição.
168
+ * É passado por parâmetro um objeto com o arquivo e a propiedade data nesta propriedade pode ser informado algum dado,
169
+ * que será enviado em conjunto com o arquivo na requisição, por exemplo:
170
+ *
171
+ * ```
172
+ * event.data = {id: 'id do usuario'};
173
+ * ```
174
+ */
175
+ this.onUpload = new EventEmitter();
176
+ /**
177
+ * @optional
178
+ *
179
+ * @description
180
+ *
181
+ * Evento será disparado quando ocorrer algum erro no envio do arquivo.
182
+ * > Por parâmetro será passado o objeto do retorno que é do tipo `HttpErrorResponse`.
183
+ */
184
+ this.onError = new EventEmitter();
185
+ /**
186
+ * @optional
187
+ *
188
+ * @description
189
+ *
190
+ * Evento será disparado quando o envio do arquivo for realizado com sucesso.
191
+ * > Por parâmetro será passado o objeto do retorno que é do tipo `HttpResponse`.
192
+ */
193
+ this.onSuccess = new EventEmitter();
194
+ /**
195
+ * @optional
196
+ *
197
+ * @description
198
+ *
199
+ * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da *tag* `form`.
200
+ *
201
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
202
+ * two-way binding no componente deve se utilizar da seguinte forma:
203
+ *
204
+ * ```
205
+ * <po-upload ... [ngModel]="UploadModel" (ngModelChange)="uploadModel = $event"> </po-upload>
206
+ * ```
207
+ *
208
+ */
209
+ this.ngModelChange = new EventEmitter();
210
+ this.extensionNotAllowed = 0;
211
+ this.quantityNotAllowed = 0;
212
+ this.sizeNotAllowed = 0;
213
+ this.onModelTouched = null;
214
+ this._dragDrop = false;
215
+ this.language = languageService.getShortLanguage();
216
+ }
217
+ /**
218
+ * @optional
219
+ *
220
+ * @description
221
+ *
222
+ * Permite a seleção de diretórios contendo um ou mais arquivos para envio.
223
+ *
224
+ * > A habilitação desta propriedade se restringe apenas à seleção de diretórios.
225
+ *
226
+ * > Definição não suportada pelo browser **Internet Explorer**, todavia será possível a seleção de arquivos padrão.
227
+ *
228
+ * @default `false`
229
+ */
230
+ set directory(value) {
231
+ this._directory = convertToBoolean(value);
232
+ this.canHandleDirectory = this._directory && !isIE() && !isMobile();
233
+ this.setDirectoryAttribute(this.canHandleDirectory);
234
+ }
235
+ get directory() {
236
+ return this._directory;
237
+ }
238
+ /**
239
+ * @optional
240
+ *
241
+ * @description
242
+ *
243
+ * Exibe a área onde é possível arrastar e selecionar os arquivos. Quando estiver definida, omite o botão para seleção de arquivos
244
+ * automaticamente.
245
+ *
246
+ * > Recomendamos utilizar apenas um `po-upload` com esta funcionalidade por tela.
247
+ *
248
+ * @default `false`
249
+ */
250
+ set dragDrop(value) {
251
+ this._dragDrop = convertToBoolean(value);
252
+ }
253
+ get dragDrop() {
254
+ return this._dragDrop;
255
+ }
256
+ /**
257
+ * @optional
258
+ *
259
+ * @description
260
+ *
261
+ * Oculta visualmente as informações de restrições para o upload.
262
+ *
263
+ * @default `false`
264
+ */
265
+ set hideRestrictionsInfo(value) {
266
+ this._hideRestrictionsInfo = convertToBoolean(value);
267
+ }
268
+ get hideRestrictionsInfo() {
269
+ return this._hideRestrictionsInfo;
270
+ }
271
+ /**
272
+ * @optional
273
+ *
274
+ * @description
275
+ *
276
+ * Omite o botão de seleção de arquivos.
277
+ *
278
+ * > Caso o valor definido seja `true`, caberá ao desenvolvedor a responsabilidade
279
+ * pela chamada do método `selectFiles()` para seleção de arquivos.
280
+ *
281
+ * @default `false`
282
+ */
283
+ set hideSelectButton(value) {
284
+ this._hideSelectButton = convertToBoolean(value);
285
+ }
286
+ get hideSelectButton() {
287
+ return this._hideSelectButton;
288
+ }
289
+ /**
290
+ * @optional
291
+ *
292
+ * @description
293
+ *
294
+ * Omite o botão de envio de arquivos.
295
+ *
296
+ * > Caso o valor definido seja `true`, caberá ao desenvolvedor a responsabilidade
297
+ * pela chamada do método `sendFiles()` para envio do(s) arquivo(s) selecionado(s).
298
+ *
299
+ * @default `false`
300
+ */
301
+ set hideSendButton(value) {
302
+ this._hideSendButton = convertToBoolean(value);
303
+ }
304
+ get hideSendButton() {
305
+ return this._hideSendButton;
306
+ }
307
+ /**
308
+ * @optional
309
+ *
310
+ * @description
311
+ *
312
+ * Objeto com as literais usadas no `po-upload`.
313
+ *
314
+ * Existem duas maneiras de customizar o componente:
315
+ *
316
+ * - passando um objeto implementando a interface `PoUploadLiterals` com todas as literais disponíveis;
317
+ * - passando apenas as literais que deseja customizar:
318
+ * ```
319
+ * const customLiterals: PoUploadLiterals = {
320
+ * folders: 'Pastas',
321
+ * selectFile: 'Buscar arquivo',
322
+ * startSending: 'Enviar'
323
+ * };
324
+ * ```
325
+ *
326
+ * E para carregar as literais customizadas, basta apenas passar o objeto para o componente:
327
+ *
328
+ * ```
329
+ * <po-upload
330
+ * [p-literals]="customLiterals">
331
+ * </po-upload>
332
+ * ```
333
+ *
334
+ * > O objeto padrão de literais será traduzido de acordo com o idioma do *browser* (pt, en, es, ru).
335
+ */
336
+ set literals(value) {
337
+ if (value instanceof Object && !(value instanceof Array)) {
338
+ this._literals = Object.assign(Object.assign(Object.assign({}, poUploadLiteralsDefault[poLocaleDefault]), poUploadLiteralsDefault[this.language]), value);
339
+ }
340
+ else {
341
+ this._literals = poUploadLiteralsDefault[this.language];
342
+ }
343
+ }
344
+ get literals() {
345
+ return this._literals || poUploadLiteralsDefault[this.language];
346
+ }
347
+ /**
348
+ * @optional
349
+ *
350
+ * @description
351
+ *
352
+ * Objeto que segue a definição da interface `PoUploadFileRestrictions`,
353
+ * que possibilita definir tamanho máximo/mínimo e extensão dos arquivos permitidos.
354
+ */
355
+ set fileRestrictions(restrictions) {
356
+ this._fileRestrictions = this.initRestrictions(restrictions);
357
+ this.setAllowedExtensions(restrictions);
358
+ }
359
+ get fileRestrictions() {
360
+ return this._fileRestrictions;
361
+ }
362
+ /**
363
+ * @optional
364
+ *
365
+ * @description
366
+ *
367
+ * Nome do campo de formulário que será enviado para o serviço informado na propriedade `p-url`.
368
+ *
369
+ * @default `files`
370
+ */
371
+ set formField(value) {
372
+ this._formField = value && typeof value === 'string' ? value : poUploadFormFieldDefault;
373
+ this.getUploadService().formField = this.formField;
374
+ }
375
+ get formField() {
376
+ return this._formField;
377
+ }
378
+ /**
379
+ * @optional
380
+ *
381
+ * @description
382
+ *
383
+ * Indica que o campo será desabilitado.
384
+ */
385
+ set disabled(value) {
386
+ this._disabled = convertToBoolean(value);
387
+ this.validateModel(this.currentFiles);
388
+ }
389
+ get disabled() {
390
+ return this._disabled;
391
+ }
392
+ /**
393
+ * @optional
394
+ *
395
+ * @description
396
+ *
397
+ * Define se pode selecionar mais de um arquivo.
398
+ *
399
+ * > Se utilizada a `p-directory`, habilita-se automaticamente esta propriedade.
400
+ */
401
+ set isMultiple(value) {
402
+ this._isMultiple = convertToBoolean(value);
403
+ }
404
+ get isMultiple() {
405
+ return this.canHandleDirectory ? true : this._isMultiple;
406
+ }
407
+ /**
408
+ * @optional
409
+ *
410
+ * @description
411
+ *
412
+ * Indica que o campo será obrigatório.
413
+ *
414
+ * @default `false`
415
+ */
416
+ set required(required) {
417
+ this._required = convertToBoolean(required);
418
+ this.validateModel(this.currentFiles);
419
+ }
420
+ get required() {
421
+ return this._required;
422
+ }
423
+ // Função implementada do ControlValueAccessor
424
+ // Usada para interceptar os estados de habilitado via forms api
425
+ setDisabledState(isDisabled) {
426
+ this.disabled = isDisabled;
427
+ }
428
+ registerOnChange(fn) {
429
+ this.onModelChange = fn;
430
+ }
431
+ registerOnTouched(fn) {
432
+ this.onModelTouched = fn;
433
+ }
434
+ registerOnValidatorChange(fn) {
435
+ this.validatorChange = fn;
436
+ }
437
+ validate(abstractControl) {
438
+ if (requiredFailed(this.required, this.disabled, abstractControl.value)) {
439
+ return {
440
+ required: {
441
+ valid: false
442
+ }
443
+ };
444
+ }
445
+ }
446
+ writeValue(model) {
447
+ if (model) {
448
+ if (!isEquals(this.currentFiles, model)) {
449
+ this.currentFiles = this.parseFiles(model);
450
+ }
451
+ }
452
+ else {
453
+ this.currentFiles = undefined;
454
+ }
455
+ }
456
+ isExceededFileLimit(currentFilesLength) {
457
+ return (this.isMultiple &&
458
+ this.fileRestrictions &&
459
+ this.fileRestrictions.maxFiles > 0 &&
460
+ this.fileRestrictions.maxFiles <= currentFilesLength);
461
+ }
462
+ // Faz o parse dos arquivos selecionados para arquivos do formato PoUploadFile e atualiza os arquivos correntes.
463
+ parseFiles(files) {
464
+ let poUploadFiles = this.currentFiles || [];
465
+ const filesLength = files.length;
466
+ for (let i = 0; i < filesLength; i++) {
467
+ if (this.isExceededFileLimit(poUploadFiles.length)) {
468
+ this.quantityNotAllowed = filesLength - this.fileRestrictions.maxFiles;
469
+ break;
470
+ }
471
+ const file = new PoUploadFile(files[i]);
472
+ if (this.checkRestrictions(file)) {
473
+ poUploadFiles = this.insertFileInFiles(file, poUploadFiles);
474
+ }
475
+ }
476
+ this.sendFeedback();
477
+ return poUploadFiles;
478
+ }
479
+ validateModel(model) {
480
+ if (this.validatorChange) {
481
+ this.validatorChange(model);
482
+ }
483
+ }
484
+ // Verifica se o arquivo está de acordo com as restrições.
485
+ checkRestrictions(file) {
486
+ const restrictions = this.fileRestrictions;
487
+ if (restrictions) {
488
+ const allowedExtensions = restrictions.allowedExtensions;
489
+ const minFileSize = restrictions.minFileSize;
490
+ const maxFileSize = restrictions.maxFileSize;
491
+ const isAccept = allowedExtensions ? this.isAllowedExtension(file.extension, allowedExtensions) : true;
492
+ const isAcceptSize = file.size >= minFileSize && file.size <= maxFileSize;
493
+ if (!isAcceptSize) {
494
+ this.sizeNotAllowed = this.sizeNotAllowed + 1;
495
+ }
496
+ return isAccept && isAcceptSize;
497
+ }
498
+ return true;
499
+ }
500
+ existsFileSameName(file, files) {
501
+ return files.some(currentFile => file.name === currentFile.name);
502
+ }
503
+ getUploadService() {
504
+ return this.uploadService;
505
+ }
506
+ insertFileInFiles(newFile, files) {
507
+ if (this.existsFileSameName(newFile, files)) {
508
+ return this.updateExistsFileInFiles(newFile, files);
509
+ }
510
+ if (this.isMultiple) {
511
+ files.push(newFile);
512
+ }
513
+ else {
514
+ files.splice(0, files.length, newFile);
515
+ }
516
+ return files;
517
+ }
518
+ isAllowedExtension(extension, allowedExtensions = []) {
519
+ const isAllowed = allowedExtensions.some(ext => ext.toLowerCase() === extension);
520
+ if (!isAllowed) {
521
+ this.extensionNotAllowed = this.extensionNotAllowed + 1;
522
+ }
523
+ return isAllowed;
524
+ }
525
+ setAllowedExtensions(restrictions = {}) {
526
+ const _allowedExtensions = restrictions.allowedExtensions || [];
527
+ this.allowedExtensions = _allowedExtensions.join(',');
528
+ }
529
+ initRestrictions(restrictions) {
530
+ if (!restrictions) {
531
+ return;
532
+ }
533
+ const minFileSize = restrictions.minFileSize || poUploadMinFileSize;
534
+ const maxFileSize = restrictions.maxFileSize || poUploadMaxFileSize;
535
+ return Object.assign(Object.assign({}, restrictions), { maxFileSize: maxFileSize, minFileSize: minFileSize });
536
+ }
537
+ updateExistsFileInFiles(newFile, files) {
538
+ const fileIndex = files.findIndex(currentFile => newFile.name === currentFile.name && currentFile.status !== PoUploadStatus.Uploaded);
539
+ if (fileIndex !== -1) {
540
+ files.splice(fileIndex, 1, newFile);
541
+ }
542
+ return files;
543
+ }
544
+ }
545
+ PoUploadBaseComponent.decorators = [
546
+ { type: Directive }
547
+ ];
548
+ PoUploadBaseComponent.ctorParameters = () => [
549
+ { type: PoUploadService },
550
+ { type: PoLanguageService }
551
+ ];
552
+ PoUploadBaseComponent.propDecorators = {
553
+ autoFocus: [{ type: Input, args: ['p-auto-focus',] }],
554
+ dragDropHeight: [{ type: Input, args: ['p-drag-drop-height',] }],
555
+ label: [{ type: Input, args: ['p-label',] }],
556
+ help: [{ type: Input, args: ['p-help',] }],
557
+ url: [{ type: Input, args: ['p-url',] }],
558
+ name: [{ type: Input, args: ['name',] }],
559
+ autoUpload: [{ type: Input, args: ['p-auto-upload',] }],
560
+ optional: [{ type: Input, args: ['p-optional',] }],
561
+ headers: [{ type: Input, args: ['p-headers',] }],
562
+ onUpload: [{ type: Output, args: ['p-upload',] }],
563
+ onError: [{ type: Output, args: ['p-error',] }],
564
+ onSuccess: [{ type: Output, args: ['p-success',] }],
565
+ ngModelChange: [{ type: Output, args: ['ngModelChange',] }],
566
+ directory: [{ type: Input, args: ['p-directory',] }],
567
+ dragDrop: [{ type: Input, args: ['p-drag-drop',] }],
568
+ hideRestrictionsInfo: [{ type: Input, args: ['p-hide-restrictions-info',] }],
569
+ hideSelectButton: [{ type: Input, args: ['p-hide-select-button',] }],
570
+ hideSendButton: [{ type: Input, args: ['p-hide-send-button',] }],
571
+ literals: [{ type: Input, args: ['p-literals',] }],
572
+ fileRestrictions: [{ type: Input, args: ['p-restrictions',] }],
573
+ formField: [{ type: Input, args: ['p-form-field',] }],
574
+ disabled: [{ type: Input, args: ['p-disabled',] }],
575
+ isMultiple: [{ type: Input, args: ['p-multiple',] }],
576
+ required: [{ type: Input, args: ['p-required',] }]
577
+ };
578
+ __decorate([
579
+ InputBoolean()
580
+ ], PoUploadBaseComponent.prototype, "autoFocus", void 0);
581
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdXBsb2FkLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXVwbG9hZC9wby11cGxvYWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsY0FBYztRQUMzQixZQUFZLEVBQUUsZUFBZTtRQUM3QixZQUFZLEVBQUUsZUFBZTtRQUM3QixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMscUJBQXFCLEVBQUUsa0NBQWtDO1FBQ3pE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LFFBQVEsQ0FDbkcsQ0FBQztRQUVGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBNWhCRixTQUFTOzs7WUFwSUQsZUFBZTtZQUdmLGlCQUFpQjs7O3dCQThJdkIsS0FBSyxTQUFDLGNBQWM7NkJBYXBCLEtBQUssU0FBQyxvQkFBb0I7b0JBRzFCLEtBQUssU0FBQyxTQUFTO21CQUdmLEtBQUssU0FBQyxRQUFRO2tCQUdkLEtBQUssU0FBQyxPQUFPO21CQUdiLEtBQUssU0FBQyxNQUFNO3lCQVdaLEtBQUssU0FBQyxlQUFlO3VCQWVyQixLQUFLLFNBQUMsWUFBWTtzQkFHbEIsS0FBSyxTQUFDLFdBQVc7dUJBZ0JqQixNQUFNLFNBQUMsVUFBVTtzQkFVakIsTUFBTSxTQUFDLFNBQVM7d0JBVWhCLE1BQU0sU0FBQyxXQUFXOzRCQWlCbEIsTUFBTSxTQUFDLGVBQWU7d0JBd0N0QixLQUFLLFNBQUMsYUFBYTt1QkF1Qm5CLEtBQUssU0FBQyxhQUFhO21DQWlCbkIsS0FBSyxTQUFDLDBCQUEwQjsrQkFvQmhDLEtBQUssU0FBQyxzQkFBc0I7NkJBbUI1QixLQUFLLFNBQUMsb0JBQW9CO3VCQW9DMUIsS0FBSyxTQUFDLFlBQVk7K0JBdUJsQixLQUFLLFNBQUMsZ0JBQWdCO3dCQW1CdEIsS0FBSyxTQUFDLGNBQWM7dUJBaUJwQixLQUFLLFNBQUMsWUFBWTt5QkFtQmxCLEtBQUssU0FBQyxZQUFZO3VCQWlCbEIsS0FBSyxTQUFDLFlBQVk7O0FBcldvQjtJQUFmLFlBQVksRUFBRTt3REFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBpc0VxdWFscywgaXNJRSwgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IHJlcXVpcmVkRmFpbGVkIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IFBvVXBsb2FkRmlsZSB9IGZyb20gJy4vcG8tdXBsb2FkLWZpbGUnO1xuaW1wb3J0IHsgUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1maWxlLXJlc3RyaWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1VwbG9hZExpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9VcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wby11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBQb1VwbG9hZFN0YXR1cyB9IGZyb20gJy4vcG8tdXBsb2FkLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuZXhwb3J0IGNvbnN0IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjogPFBvVXBsb2FkTGl0ZXJhbHM+e1xuICAgIGZpbGVzOiAnZmlsZXMnLFxuICAgIGZvbGRlcnM6ICdmb2xkZXJzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgIHNlbGVjdEZpbGVzOiAnU2VsZWN0IGZpbGVzJyxcbiAgICBzZWxlY3RGb2xkZXI6ICdTZWxlY3QgZm9sZGVyJyxcbiAgICBzdGFydFNlbmRpbmc6ICdTdGFydCBzZW5kaW5nJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAnRHJhZyBmaWxlcyBoZXJlJyxcbiAgICBkcmFnRm9sZGVyc0hlcmU6ICdEcmFnIGZvbGRlcnMgaGVyZScsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAnb3Igc2VsZWN0IGZpbGVzIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIHNlbGVjdEZvbGRlck9uQ29tcHV0ZXI6ICdvciBzZWxlY3QgZm9sZGVyIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEcm9wIGZpbGVzIGhlcmUnLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ0Ryb3AgZm9sZGVycyBoZXJlJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICd7MH0gd2VyZSBub3QgZHJvcHBlZCBpbiB0aGUgY29ycmVjdCBhcmVhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdGYWlsZWQgdG8gbG9hZCB7MH0gZmlsZShzKSBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgZmlsZSB0eXBlLicsXG4gICAgaW52YWxpZEFtb3VudDogJ0ZhaWxlZCB0byBsb2FkIHswfSBmaWxlKHMpLCBhcyBpdCBleGNlZWRzIHRoZSBsaW1pdCBhbW91bnQgb2YgZmlsZXMuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGUocyksIGFzIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBmb3JtYXQocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGVzKHMpLCBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgc2l6ZTogZnJvbSB7MX0gdG8gezJ9LicsXG4gICAgbnVtYmVyT2ZGaWxlc0FsbG93ZWQ6ICd7MH0gZmlsZShzKSBhbGxvd2VkJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0FjY2VwdGVkIGZpbGUgZm9ybWF0czogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdTaXplIGxpbWl0IHBlciBmaWxlOiBmcm9tIHswfSB0byB7MX0nLFxuICAgIG1heEZpbGVTaXplQWxsb3dlZDogJ1NpemUgbGltaXQgcGVyIGZpbGU6IHswfSBtYXhpbXVtJyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdTaXplIGxpbWl0IHBlciBmaWxlOiB7MH0gbWluaW11bScsXG4gICAgZXJyb3JPY2N1cnJlZDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCcsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAnU2VudCB3aXRoIHN1Y2Nlc3MnXG4gIH0sXG4gIGVzOiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcmNoaXZvcycsXG4gICAgZm9sZGVyczogJ2NhcnBldGFzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNjaW9uYXIgYXJjaGl2bycsXG4gICAgc2VsZWN0RmlsZXM6ICdTZWxlY2Npb25hciBhcmNoaXZvcycsXG4gICAgc2VsZWN0Rm9sZGVyOiAnU2VsZWNjaW9uYXIgY2FycGV0YScsXG4gICAgc3RhcnRTZW5kaW5nOiAnSW5pY2lhciBjYXJnYScsXG4gICAgZHJhZ0ZpbGVzSGVyZTogJ0FycmFzdHJhIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAnQXJyYXN0cmEgbGFzIGNhcnBldGFzIGFxdcOtJyxcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvIHNlbGVjY2lvbmEgbG9zIGFyY2hpdm9zIGVuIHR1IGNvbXB1dGFkb3JhJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnbyBzZWxlY2Npb25hIGxhIGNhcnBldGEgZW4gdHUgY29tcHV0YWRvcmEnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEZWphIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAnRGVqYSBsYXMgY2FycGV0YXMgYXF1w60nLFxuICAgIGludmFsaWREcm9wQXJlYTogJ0xvcyB7MH0gbm8gc2UgaW5zZXJ0YXJvbiBlbiBsYSB1YmljYWNpw7NuIGNvcnJlY3RhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBlcyBlbCB0aXBvIGRlIGFyY2hpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgZXhjZWRlIGxhIGNhbnRpZGFkIGxpbWl0ZSBkZSBhcmNoaXZvcy4nLFxuICAgIGludmFsaWRGb3JtYXQ6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBjb2luY2lkZSBjb24gZWwgZm9ybWF0byAocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgbm8gY3VtcGxlIGNvbiBlbCB0YW1hw7FvIHBlcm1pdGlkbzogZGVzZGUgezF9IGhhc3RhIHsyfS4nLFxuICAgIG51bWJlck9mRmlsZXNBbGxvd2VkOiAnezB9IGFyY2hpdm8ocykgcGVybWl0aWRvKHMpJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0Zvcm1hdG9zIGFjZXB0YWRvczogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBkZXNkZSB7MH0gaGFzdGEgezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBoYXN0YSB7MH0nLFxuICAgIG1pbkZpbGVTaXplQWxsb3dlZDogJ0xpbWl0ZSBkZSB0YW1hw7FvIGRlIGFyY2hpdm86IG1pbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY3VycmlvIHVuIGVycm9yJyxcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdFbnZpYWRvIGNvbiDDqXhpdG8nXG4gIH0sXG4gIHB0OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcnF1aXZvcycsXG4gICAgZm9sZGVyczogJ2RpcmV0w7NyaW9zJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNpb25hciBhcnF1aXZvJyxcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjaW9uYXIgYXJxdWl2b3MnLFxuICAgIHNlbGVjdEZvbGRlcjogJ1NlbGVjaW9uYXIgcGFzdGEnLFxuICAgIHN0YXJ0U2VuZGluZzogJ0luaWNpYXIgZW52aW8nLFxuICAgIGRyYWdGaWxlc0hlcmU6ICdBcnJhc3RlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyYWdGb2xkZXJzSGVyZTogJ0FycmFzdGUgYXMgcGFzdGFzIGFxdWknLFxuICAgIHNlbGVjdEZpbGVzT25Db21wdXRlcjogJ291IHNlbGVjaW9uZSBvcyBhcnF1aXZvcyBubyBjb21wdXRhZG9yJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnb3Ugc2VsZWNpb25lIGEgcGFzdGEgbm8gY29tcHV0YWRvcicsXG4gICAgZHJvcEZpbGVzSGVyZTogJ1NvbHRlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ1NvbHRlIGFzIHBhc3RhcyBhcXVpJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICdPcyB7MH0gbsOjbyBmb3JhbSBpbnNlcmlkb3Mgbm8gbG9jYWwgY29ycmV0bycsXG4gICAgaW52YWxpZEZpbGVUeXBlOiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8gKHMpLCBwb2lzIG7Do28gw6kgbyB0aXBvIGRlIGFycXVpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgZXhjZWRlKG0pIGEgcXVhbnRpZGFkZSBsaW1pdGUgZGUgYXJxdWl2b3MuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgbsOjbyBjb3JyZXNwb25kZShtKSBhbyhzKSBmb3JtYXRvKHMpOiB7MX0uJyxcbiAgICBpbnZhbGlkU2l6ZTogJ0ZhbGhhIGFvIGNhcnJlZ2FyIHswfSBhcnF1aXZvKHMpLCBwb2lzIG7Do28gYXRlbmRlIGFvIHRhbWFuaG8gcGVybWl0aWRvOiB7MX0gYXTDqSB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ1F1YW50aWRhZGUgbcOheGltYTogezB9IGFycXVpdm8ocyknLFxuICAgIGFsbG93ZWRGb3JtYXRzOiAnRm9ybWF0b3MgYWRvdGFkb3M6IHswfS4nLFxuICAgIGFsbG93ZWRGaWxlU2l6ZVJhbmdlOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGRlIHswfSBhdMOpIHsxfScsXG4gICAgbWF4RmlsZVNpemVBbGxvd2VkOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGF0w6kgezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYW5obyBwb3IgYXJxdWl2bzogbm8gbcOtbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY29ycmV1IHVtIGVycm8nLFxuICAgIHNlbnRXaXRoU3VjY2VzczogJ0VudmlhZG8gY29tIHN1Y2Vzc28nXG4gIH0sXG4gIHJ1OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICfRhNCw0LnQu9GLJyxcbiAgICBmb2xkZXJzOiAn0L/QsNC/0LrQuCDRgSDRhNCw0LnQu9Cw0LzQuCcsXG4gICAgc2VsZWN0RmlsZTogJ9CS0YvQsdC10YDQuNGC0LUg0YTQsNC50LsnLFxuICAgIHNlbGVjdEZpbGVzOiAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQu9GLJyxcbiAgICBzZWxlY3RGb2xkZXI6ICfQktGL0LHQtdGA0LjRgtC1INC/0LDQv9C60YMg0YEg0YTQsNC50LvQsNC80LgnLFxuICAgIHN0YXJ0U2VuZGluZzogJ9Cd0LDRh9Cw0YLRjCDQt9Cw0LPRgNGD0LfQutGDJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YTQsNC50LvRiyDRgdGO0LTQsCcsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0YTQsNC50LvRiyDQvdCwINC60L7QvNC/0YzRjtGC0LXRgNC1JyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0L/QsNC/0LrRgyDQvdCwINCy0LDRiNC10Lwg0LrQvtC80L/RjNGO0YLQtdGA0LUnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICfQntGB0YLQsNCy0YzRgtC1INGE0LDQudC70Ysg0LfQtNC10YHRjCcsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgaW52YWxpZERyb3BBcmVhOiAnezB9INC90LUg0LHRi9C70Lgg0LLRgdGC0LDQstC70LXQvdGLINCyINC/0YDQsNCy0LjQu9GM0L3QvtC8INC80LXRgdGC0LUuJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0YLQsNC6INC60LDQuiDRjdGC0L4g0L3QtdCy0LXRgNC90YvQuSDRgtC40L8g0YTQsNC50LvQsCcsXG4gICAgaW52YWxpZEFtb3VudDogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvcyBhcnF1aXZvcyB7MH0gcG9ycXVlIGVsZXMgZXhjZWRlcmFtIG8gbGltaXRlIGRlIGFycXVpdm9zLicsXG4gICAgaW52YWxpZEZvcm1hdDogJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LfQsNCz0YDRg9C30LjRgtGMINGE0LDQudC70YsgezB9LCDRgtCw0Log0LrQsNC6INC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGE0L7RgNC80LDRgtGDICjQsNC8KTogezF9LicsXG4gICAgaW52YWxpZFNpemU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0L/QvtGB0LrQvtC70YzQutGDINC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGA0LDQt9GA0LXRiNC10L3QvdC+0LzRgyDRgNCw0LfQvNC10YDRgzog0L7RgiB7MX0g0LTQviB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQvjogezB9INGE0LDQudC70L7QsicsXG4gICAgYWxsb3dlZEZvcm1hdHM6ICfQpNC+0YDQvNCw0YLRiyDQv9GA0LjQvdGP0YLRizogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC+0YIgezB9INC00L4gezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC00L4gezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC90LUg0LzQtdC90LXQtSB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICfQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwLicsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAn0KPRgdC/0LXRiNC90L4g0L7RgtC/0YDQsNCy0LvQtdC90L4nXG4gIH1cbn07XG5cbmNvbnN0IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdCA9ICdmaWxlcyc7XG5cbmNvbnN0IHBvVXBsb2FkTWF4RmlsZVNpemUgPSAzMTQ1NzI4MDsgLy8gMzBNQlxuY29uc3QgcG9VcGxvYWRNaW5GaWxlU2l6ZSA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby11cGxvYWRgIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZW52aWUgYXJxdWl2byhzKSBhbyBzZXJ2aWRvciBlIGFjb21wYW5oZSBvIHByb2dyZXNzby5cbiAqIEVzdGUgY29tcG9uZW50ZSB0YW1iw6ltIHBvc3NpYmlsaXRhIGFsZ3VtYXMgY29uZmlndXJhw6fDtWVzIGNvbW86XG4gKiAg4oCTIEVudmlvIGRlIGRpcmV0w7NyaW9zLCBvbmRlIGVsZSBhY2Vzc2EgbyBkaXJldMOzcmlvIHNlbGVjaW9uYWRvIGFzc2ltIGNvbW8gc2V1cyBzdWItZGlyZXTDs3Jpb3M7XG4gKiAgLSBNw7psdGlwbGEgc2VsZcOnw6NvLCBvbmRlIG8gdXN1w6FyaW8gcG9kZSBlbnZpYXIgbWFpcyBkZSB1bSBhcnF1aXZvIGFvIHNlcnZpZG9yLlxuICogIC0gQXV0byBlbnZpbywgb25kZSBvIGFycXVpdm8gw6kgZW52aWFkbyBpbWVkaWF0YW1lbnRlIGFww7NzIGEgc2VsZcOnw6NvIGRvIHVzdcOhcmlvLCBuw6NvIG5lY2Vzc2l0YW5kbyBxdWUgbyB1c3XDoXJpb1xuICogY2xpcXVlIGVtIGVudmlhci5cbiAqICAtIFJlc3RyacOnw7VlcyBkZSBmb3JtYXRvcyBkZSBhcnF1aXZvIGUgdGFtYW5oby5cbiAqICAtIEZ1bsOnw6NvIGRlIHN1Y2Vzc28gcXVlIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gb3MgYXJxdWl2b3MgZm9yZW0gZW52aWFkb3MgY29tIHN1Y2Vzc28uXG4gKiAgLSBGdW7Dp8OjbyBkZSBlcnJvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBlcnJvIG5vIGVudmlvIGRvcyBhcnF1aXZvcy5cbiAqICAtIFBlcm1pdGUgaGFiaWxpdGFyIHVtYSDDoXJlYSBvbmRlIG9zIGFycXVpdm9zIHBvZGVtIHNlciBhcnJhc3RhZG9zLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1VwbG9hZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXBsaWNhIGZvY28gbm8gZWxlbWVudG8gYW8gc2VyIGluaWNpYWRvLlxuICAgKlxuICAgKiA+IENhc28gbWFpcyBkZSB1bSBlbGVtZW50byBzZWphIGNvbmZpZ3VyYWRvIGNvbSBlc3NhIHByb3ByaWVkYWRlLCBhcGVuYXMgbyDDumx0aW1vIGVsZW1lbnRvIGRlY2xhcmFkbyBjb20gZWxhIHRlcsOhIG8gZm9jby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dG8tZm9jdXMnKSBASW5wdXRCb29sZWFuKCkgYXV0b0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGVtICpwaXhlbHMqIGEgYWx0dXJhIGRhIMOhcmVhIG9uZGUgcG9kZW0gc2VyIGFycmFzdGFkb3Mgb3MgYXJxdWl2b3MuIEEgYWx0dXJhIG3DrW5pbWEgYWNlaXRhIMOpIGAxNjBweGAuXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBmdW5jaW9uYSBzb21lbnRlIHNlIGEgcHJvcHJpZWRhZGUgYHAtZHJhZy1kcm9wYCBlc3RpdmVyIGhhYmlsaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAzMjBgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZy1kcm9wLWhlaWdodCcpIGRyYWdEcm9wSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIFLDs3R1bG8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1sYWJlbCcpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBkZSBhcG9pbyBwYXJhIG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICAvKiogVVJMIHF1ZSBkZXZlIHNlciBmZWl0YSBhIHJlcXVpc2nDp8OjbyBjb20gb3MgYXJxdWl2b3Mgc2VsZWNpb25hZG9zLiAqL1xuICBASW5wdXQoJ3AtdXJsJykgdXJsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmluZSBvIHZhbG9yIGRvIGF0cmlidXRvIGBuYW1lYCBkbyBjb21wb25lbnRlLiAqL1xuICBASW5wdXQoJ25hbWUnKSBuYW1lOiBzdHJpbmcgPSAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIG8gZW52aW8gZG8gYXJxdWl2byBzZXLDoSBhdXRvbcOhdGljbyBhbyBzZWxlY2lvbmFyIG8gbWVzbW8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1hdXRvLXVwbG9hZCcpIGF1dG9VcGxvYWQ/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb3BjaW9uYWwgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogIC0gTyBjYW1wbyBjb250ZXIgYHAtcmVxdWlyZWRgO1xuICAgKiAgLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25hbCcpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIC8qKiBPYmpldG8gcXVlIGNvbnTDqW0gb3MgY2FiZcOnYWxob3MgcXVlIHNlcsOhIGVudmlhZG8gbmEgcmVxdWlzacOnw6NvIGRvcyBhcnF1dmlvcy4gKi9cbiAgQElucHV0KCdwLWhlYWRlcnMnKSBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IH07XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBubyBtb21lbnRvIGRlIHJlYWxpemFyIG8gZW52aW8gZG8gYXJxdWl2byxcbiAgICogb25kZSBzZXLDoSBwb3Nzw612ZWwgYWRpY2lvbmFyIGluZm9ybWHDp8O1ZXMgYW8gcGFyw6JtZXRybyBxdWUgc2Vyw6EgZW52aWFkbyBuYSByZXF1aXNpw6fDo28uXG4gICAqIMOJIHBhc3NhZG8gcG9yIHBhcsOibWV0cm8gdW0gb2JqZXRvIGNvbSBvIGFycXVpdm8gZSBhIHByb3BpZWRhZGUgZGF0YSBuZXN0YSBwcm9wcmllZGFkZSBwb2RlIHNlciBpbmZvcm1hZG8gYWxndW0gZGFkbyxcbiAgICogcXVlIHNlcsOhIGVudmlhZG8gZW0gY29uanVudG8gY29tIG8gYXJxdWl2byBuYSByZXF1aXNpw6fDo28sIHBvciBleGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogICBldmVudC5kYXRhID0ge2lkOiAnaWQgZG8gdXN1YXJpbyd9O1xuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoJ3AtdXBsb2FkJykgb25VcGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIHNlcsOhIGRpc3BhcmFkbyBxdWFuZG8gb2NvcnJlciBhbGd1bSBlcnJvIG5vIGVudmlvIGRvIGFycXVpdm8uXG4gICAqID4gUG9yIHBhcsOibWV0cm8gc2Vyw6EgcGFzc2FkbyBvIG9iamV0byBkbyByZXRvcm5vIHF1ZSDDqSBkbyB0aXBvIGBIdHRwRXJyb3JSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLWVycm9yJykgb25FcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gc2Vyw6EgZGlzcGFyYWRvIHF1YW5kbyBvIGVudmlvIGRvIGFycXVpdm8gZm9yIHJlYWxpemFkbyBjb20gc3VjZXNzby5cbiAgICogPiBQb3IgcGFyw6JtZXRybyBzZXLDoSBwYXNzYWRvIG8gb2JqZXRvIGRvIHJldG9ybm8gcXVlIMOpIGRvIHRpcG8gYEh0dHBSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXN1Y2Nlc3MnKSBvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcGFyYSBhdHVhbGl6YXIgbyBuZ01vZGVsIGRvIGNvbXBvbmVudGUsIG5lY2Vzc8OhcmlvIHF1YW5kbyBuw6NvIGZvciB1dGlsaXphZG8gZGVudHJvIGRhICp0YWcqIGBmb3JtYC5cbiAgICpcbiAgICogTmEgdmVyc8OjbyAxMi4yLjAgZG8gQW5ndWxhciBhIHZlcmlmaWNhw6fDo28gYHN0cmljdFRlbXBsYXRlc2AgdmVtIHRydWUgY29tbyBkZWZhdWx0LiBQb3J0YW50bywgcGFyYSB1dGlsaXphclxuICAgKiB0d28td2F5IGJpbmRpbmcgbm8gY29tcG9uZW50ZSBkZXZlIHNlIHV0aWxpemFyIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLXVwbG9hZCAuLi4gW25nTW9kZWxdPVwiVXBsb2FkTW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGxvYWRNb2RlbCA9ICRldmVudFwiPiA8L3BvLXVwbG9hZD5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCduZ01vZGVsQ2hhbmdlJykgbmdNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nO1xuICBjdXJyZW50RmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT47XG5cbiAgY2FuSGFuZGxlRGlyZWN0b3J5OiBib29sZWFuO1xuICBvbk1vZGVsQ2hhbmdlOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGV4dGVuc2lvbk5vdEFsbG93ZWQgPSAwO1xuICBwcm90ZWN0ZWQgcXVhbnRpdHlOb3RBbGxvd2VkID0gMDtcbiAgcHJvdGVjdGVkIHNpemVOb3RBbGxvd2VkID0gMDtcbiAgcHJvdGVjdGVkIG9uTW9kZWxUb3VjaGVkOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgX2RpcmVjdG9yeT86IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZHJhZ0Ryb3A/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbGVSZXN0cmljdGlvbnM/OiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnM7XG4gIHByaXZhdGUgX2Zvcm1GaWVsZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGlkZVJlc3RyaWN0aW9uc0luZm8/OiBib29sZWFuO1xuICBwcml2YXRlIF9oaWRlU2VsZWN0QnV0dG9uPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaGlkZVNlbmRCdXR0b24/OiBib29sZWFuO1xuICBwcml2YXRlIF9pc011bHRpcGxlPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfbGl0ZXJhbHM/OiBhbnk7XG4gIHByaXZhdGUgX3JlcXVpcmVkPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xuICBwcml2YXRlIHZhbGlkYXRvckNoYW5nZTogYW55O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgYSBzZWxlw6fDo28gZGUgZGlyZXTDs3Jpb3MgY29udGVuZG8gdW0gb3UgbWFpcyBhcnF1aXZvcyBwYXJhIGVudmlvLlxuICAgKlxuICAgKiA+IEEgaGFiaWxpdGHDp8OjbyBkZXN0YSBwcm9wcmllZGFkZSBzZSByZXN0cmluZ2UgYXBlbmFzIMOgIHNlbGXDp8OjbyBkZSBkaXJldMOzcmlvcy5cbiAgICpcbiAgICogPiBEZWZpbmnDp8OjbyBuw6NvIHN1cG9ydGFkYSBwZWxvIGJyb3dzZXIgKipJbnRlcm5ldCBFeHBsb3JlcioqLCB0b2RhdmlhIHNlcsOhIHBvc3PDrXZlbCBhIHNlbGXDp8OjbyBkZSBhcnF1aXZvcyBwYWRyw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZGlyZWN0b3J5Jykgc2V0IGRpcmVjdG9yeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2RpcmVjdG9yeSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgdGhpcy5jYW5IYW5kbGVEaXJlY3RvcnkgPSB0aGlzLl9kaXJlY3RvcnkgJiYgIWlzSUUoKSAmJiAhaXNNb2JpbGUoKTtcbiAgICB0aGlzLnNldERpcmVjdG9yeUF0dHJpYnV0ZSh0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSk7XG4gIH1cblxuICBnZXQgZGlyZWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLl9kaXJlY3Rvcnk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFeGliZSBhIMOhcmVhIG9uZGUgw6kgcG9zc8OtdmVsIGFycmFzdGFyIGUgc2VsZWNpb25hciBvcyBhcnF1aXZvcy4gUXVhbmRvIGVzdGl2ZXIgZGVmaW5pZGEsIG9taXRlIG8gYm90w6NvIHBhcmEgc2VsZcOnw6NvIGRlIGFycXVpdm9zXG4gICAqIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogPiBSZWNvbWVuZGFtb3MgdXRpbGl6YXIgYXBlbmFzIHVtIGBwby11cGxvYWRgIGNvbSBlc3RhIGZ1bmNpb25hbGlkYWRlIHBvciB0ZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZy1kcm9wJykgc2V0IGRyYWdEcm9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZHJhZ0Ryb3AgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkcmFnRHJvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ0Ryb3A7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPY3VsdGEgdmlzdWFsbWVudGUgYXMgaW5mb3JtYcOnw7VlcyBkZSByZXN0cmnDp8O1ZXMgcGFyYSBvIHVwbG9hZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtcmVzdHJpY3Rpb25zLWluZm8nKSBzZXQgaGlkZVJlc3RyaWN0aW9uc0luZm8odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlUmVzdHJpY3Rpb25zSW5mbyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhpZGVSZXN0cmljdGlvbnNJbmZvKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlUmVzdHJpY3Rpb25zSW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9taXRlIG8gYm90w6NvIGRlIHNlbGXDp8OjbyBkZSBhcnF1aXZvcy5cbiAgICpcbiAgICogPiBDYXNvIG8gdmFsb3IgZGVmaW5pZG8gc2VqYSBgdHJ1ZWAsIGNhYmVyw6EgYW8gZGVzZW52b2x2ZWRvciBhIHJlc3BvbnNhYmlsaWRhZGVcbiAgICogcGVsYSBjaGFtYWRhIGRvIG3DqXRvZG8gYHNlbGVjdEZpbGVzKClgIHBhcmEgc2VsZcOnw6NvIGRlIGFycXVpdm9zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtaGlkZS1zZWxlY3QtYnV0dG9uJykgc2V0IGhpZGVTZWxlY3RCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlU2VsZWN0QnV0dG9uID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cbiAgZ2V0IGhpZGVTZWxlY3RCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZWxlY3RCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPbWl0ZSBvIGJvdMOjbyBkZSBlbnZpbyBkZSBhcnF1aXZvcy5cbiAgICpcbiAgICogPiBDYXNvIG8gdmFsb3IgZGVmaW5pZG8gc2VqYSBgdHJ1ZWAsIGNhYmVyw6EgYW8gZGVzZW52b2x2ZWRvciBhIHJlc3BvbnNhYmlsaWRhZGVcbiAgICogcGVsYSBjaGFtYWRhIGRvIG3DqXRvZG8gYHNlbmRGaWxlcygpYCBwYXJhIGVudmlvIGRvKHMpIGFycXVpdm8ocykgc2VsZWNpb25hZG8ocykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXNlbmQtYnV0dG9uJykgc2V0IGhpZGVTZW5kQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZVNlbmRCdXR0b24gPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuICBnZXQgaGlkZVNlbmRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZW5kQnV0dG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXVwbG9hZGAuXG4gICAqXG4gICAqIEV4aXN0ZW0gZHVhcyBtYW5laXJhcyBkZSBjdXN0b21pemFyIG8gY29tcG9uZW50ZTpcbiAgICpcbiAgICogLSBwYXNzYW5kbyB1bSBvYmpldG8gaW1wbGVtZW50YW5kbyBhIGludGVyZmFjZSBgUG9VcGxvYWRMaXRlcmFsc2AgY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpcztcbiAgICogLSBwYXNzYW5kbyBhcGVuYXMgYXMgbGl0ZXJhaXMgcXVlIGRlc2VqYSBjdXN0b21pemFyOlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1VwbG9hZExpdGVyYWxzID0ge1xuICAgKiAgICBmb2xkZXJzOiAnUGFzdGFzJyxcbiAgICogICAgc2VsZWN0RmlsZTogJ0J1c2NhciBhcnF1aXZvJyxcbiAgICogICAgc3RhcnRTZW5kaW5nOiAnRW52aWFyJ1xuICAgKiAgfTtcbiAgICogYGBgXG4gICAqXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhcyBsaXRlcmFpcyBjdXN0b21pemFkYXMsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGU6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tdXBsb2FkXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby11cGxvYWQ+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG8gKmJyb3dzZXIqIChwdCwgZW4sIGVzLCBydSkuXG4gICAqL1xuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBzZXQgbGl0ZXJhbHModmFsdWU6IFBvVXBsb2FkTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuICAgICAgICAuLi52YWx1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSBwb1VwbG9hZExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG4gIH1cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1VwbG9hZExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBxdWUgc2VndWUgYSBkZWZpbmnDp8OjbyBkYSBpbnRlcmZhY2UgYFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9uc2AsXG4gICAqIHF1ZSBwb3NzaWJpbGl0YSBkZWZpbmlyIHRhbWFuaG8gbcOheGltby9tw61uaW1vIGUgZXh0ZW5zw6NvIGRvcyBhcnF1aXZvcyBwZXJtaXRpZG9zLlxuICAgKi9cbiAgQElucHV0KCdwLXJlc3RyaWN0aW9ucycpIHNldCBmaWxlUmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9uczogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zKSB7XG4gICAgdGhpcy5fZmlsZVJlc3RyaWN0aW9ucyA9IHRoaXMuaW5pdFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnMpO1xuXG4gICAgdGhpcy5zZXRBbGxvd2VkRXh0ZW5zaW9ucyhyZXN0cmljdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGZpbGVSZXN0cmljdGlvbnMoKTogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZVJlc3RyaWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE5vbWUgZG8gY2FtcG8gZGUgZm9ybXVsw6FyaW8gcXVlIHNlcsOhIGVudmlhZG8gcGFyYSBvIHNlcnZpw6dvIGluZm9ybWFkbyBuYSBwcm9wcmllZGFkZSBgcC11cmxgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmlsZXNgXG4gICAqL1xuICBASW5wdXQoJ3AtZm9ybS1maWVsZCcpIHNldCBmb3JtRmllbGQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdDtcblxuICAgIHRoaXMuZ2V0VXBsb2FkU2VydmljZSgpLmZvcm1GaWVsZCA9IHRoaXMuZm9ybUZpZWxkO1xuICB9XG5cbiAgZ2V0IGZvcm1GaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6EgZGVzYWJpbGl0YWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWRpc2FibGVkJykgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCh0aGlzLmN1cnJlbnRGaWxlcyk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIHBvZGUgc2VsZWNpb25hciBtYWlzIGRlIHVtIGFycXVpdm8uXG4gICAqXG4gICAqID4gU2UgdXRpbGl6YWRhIGEgYHAtZGlyZWN0b3J5YCwgaGFiaWxpdGEtc2UgYXV0b21hdGljYW1lbnRlIGVzdGEgcHJvcHJpZWRhZGUuXG4gICAqL1xuICBASW5wdXQoJ3AtbXVsdGlwbGUnKSBzZXQgaXNNdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBpc011bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSA/IHRydWUgOiB0aGlzLl9pc011bHRpcGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXJlcXVpcmVkJykgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHJlcXVpcmVkKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCh0aGlzLmN1cnJlbnRGaWxlcyk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHVwbG9hZFNlcnZpY2U6IFBvVXBsb2FkU2VydmljZSwgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgb3MgZXN0YWRvcyBkZSBoYWJpbGl0YWRvIHZpYSBmb3JtcyBhcGlcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKHJlcXVpcmVkRmFpbGVkKHRoaXMucmVxdWlyZWQsIHRoaXMuZGlzYWJsZWQsIGFic3RyYWN0Q29udHJvbC52YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShtb2RlbDogYW55KTogdm9pZCB7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBpZiAoIWlzRXF1YWxzKHRoaXMuY3VycmVudEZpbGVzLCBtb2RlbCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLnBhcnNlRmlsZXMobW9kZWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFeGNlZWRlZEZpbGVMaW1pdChjdXJyZW50RmlsZXNMZW5ndGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTXVsdGlwbGUgJiZcbiAgICAgIHRoaXMuZmlsZVJlc3RyaWN0aW9ucyAmJlxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zLm1heEZpbGVzID4gMCAmJlxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zLm1heEZpbGVzIDw9IGN1cnJlbnRGaWxlc0xlbmd0aFxuICAgICk7XG4gIH1cblxuICAvLyBGYXogbyBwYXJzZSBkb3MgYXJxdWl2b3Mgc2VsZWNpb25hZG9zIHBhcmEgYXJxdWl2b3MgZG8gZm9ybWF0byBQb1VwbG9hZEZpbGUgZSBhdHVhbGl6YSBvcyBhcnF1aXZvcyBjb3JyZW50ZXMuXG4gIHByb3RlY3RlZCBwYXJzZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IEFycmF5PFBvVXBsb2FkRmlsZT4ge1xuICAgIGxldCBwb1VwbG9hZEZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+ID0gdGhpcy5jdXJyZW50RmlsZXMgfHwgW107XG4gICAgY29uc3QgZmlsZXNMZW5ndGggPSBmaWxlcy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmlzRXhjZWVkZWRGaWxlTGltaXQocG9VcGxvYWRGaWxlcy5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHlOb3RBbGxvd2VkID0gZmlsZXNMZW5ndGggLSB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsZSA9IG5ldyBQb1VwbG9hZEZpbGUoZmlsZXNbaV0pO1xuXG4gICAgICBpZiAodGhpcy5jaGVja1Jlc3RyaWN0aW9ucyhmaWxlKSkge1xuICAgICAgICBwb1VwbG9hZEZpbGVzID0gdGhpcy5pbnNlcnRGaWxlSW5GaWxlcyhmaWxlLCBwb1VwbG9hZEZpbGVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZW5kRmVlZGJhY2soKTtcbiAgICByZXR1cm4gcG9VcGxvYWRGaWxlcztcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZU1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKG1vZGVsKTtcbiAgICB9XG4gIH1cblxuICAvLyBWZXJpZmljYSBzZSBvIGFycXVpdm8gZXN0w6EgZGUgYWNvcmRvIGNvbSBhcyByZXN0cmnDp8O1ZXMuXG4gIHByaXZhdGUgY2hlY2tSZXN0cmljdGlvbnMoZmlsZTogUG9VcGxvYWRGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzdHJpY3Rpb25zID0gdGhpcy5maWxlUmVzdHJpY3Rpb25zO1xuXG4gICAgaWYgKHJlc3RyaWN0aW9ucykge1xuICAgICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPSByZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnM7XG4gICAgICBjb25zdCBtaW5GaWxlU2l6ZSA9IHJlc3RyaWN0aW9ucy5taW5GaWxlU2l6ZTtcbiAgICAgIGNvbnN0IG1heEZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1heEZpbGVTaXplO1xuXG4gICAgICBjb25zdCBpc0FjY2VwdCA9IGFsbG93ZWRFeHRlbnNpb25zID8gdGhpcy5pc0FsbG93ZWRFeHRlbnNpb24oZmlsZS5leHRlbnNpb24sIGFsbG93ZWRFeHRlbnNpb25zKSA6IHRydWU7XG4gICAgICBjb25zdCBpc0FjY2VwdFNpemUgPSBmaWxlLnNpemUgPj0gbWluRmlsZVNpemUgJiYgZmlsZS5zaXplIDw9IG1heEZpbGVTaXplO1xuXG4gICAgICBpZiAoIWlzQWNjZXB0U2l6ZSkge1xuICAgICAgICB0aGlzLnNpemVOb3RBbGxvd2VkID0gdGhpcy5zaXplTm90QWxsb3dlZCArIDE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpc0FjY2VwdCAmJiBpc0FjY2VwdFNpemU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGV4aXN0c0ZpbGVTYW1lTmFtZShmaWxlOiBQb1VwbG9hZEZpbGUsIGZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpbGVzLnNvbWUoY3VycmVudEZpbGUgPT4gZmlsZS5uYW1lID09PSBjdXJyZW50RmlsZS5uYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXBsb2FkU2VydmljZSgpOiBQb1VwbG9hZFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2U7XG4gIH1cblxuICBwcml2YXRlIGluc2VydEZpbGVJbkZpbGVzKG5ld0ZpbGU6IFBvVXBsb2FkRmlsZSwgZmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4pIHtcbiAgICBpZiAodGhpcy5leGlzdHNGaWxlU2FtZU5hbWUobmV3RmlsZSwgZmlsZXMpKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVFeGlzdHNGaWxlSW5GaWxlcyhuZXdGaWxlLCBmaWxlcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgZmlsZXMucHVzaChuZXdGaWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXMuc3BsaWNlKDAsIGZpbGVzLmxlbmd0aCwgbmV3RmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FsbG93ZWRFeHRlbnNpb24oZXh0ZW5zaW9uOiBzdHJpbmcsIGFsbG93ZWRFeHRlbnNpb25zOiBBcnJheTxzdHJpbmc+ID0gW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkRXh0ZW5zaW9ucy5zb21lKGV4dCA9PiBleHQudG9Mb3dlckNhc2UoKSA9PT0gZXh0ZW5zaW9uKTtcbiAgICBpZiAoIWlzQWxsb3dlZCkge1xuICAgICAgdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkID0gdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQWxsb3dlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWxsb3dlZEV4dGVuc2lvbnMocmVzdHJpY3Rpb25zOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IF9hbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucyB8fCBbXTtcblxuICAgIHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgPSBfYWxsb3dlZEV4dGVuc2lvbnMuam9pbignLCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9uczogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zKTogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIHtcbiAgICBpZiAoIXJlc3RyaWN0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1pbkZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1pbkZpbGVTaXplIHx8IHBvVXBsb2FkTWluRmlsZVNpemU7XG4gICAgY29uc3QgbWF4RmlsZVNpemUgPSByZXN0cmljdGlvbnMubWF4RmlsZVNpemUgfHwgcG9VcGxvYWRNYXhGaWxlU2l6ZTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN0cmljdGlvbnMsXG4gICAgICBtYXhGaWxlU2l6ZTogbWF4RmlsZVNpemUsXG4gICAgICBtaW5GaWxlU2l6ZTogbWluRmlsZVNpemVcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFeGlzdHNGaWxlSW5GaWxlcyhuZXdGaWxlOiBQb1VwbG9hZEZpbGUsIGZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+KSB7XG4gICAgY29uc3QgZmlsZUluZGV4ID0gZmlsZXMuZmluZEluZGV4KFxuICAgICAgY3VycmVudEZpbGUgPT4gbmV3RmlsZS5uYW1lID09PSBjdXJyZW50RmlsZS5uYW1lICYmIGN1cnJlbnRGaWxlLnN0YXR1cyAhPT0gUG9VcGxvYWRTdGF0dXMuVXBsb2FkZWRcbiAgICApO1xuXG4gICAgaWYgKGZpbGVJbmRleCAhPT0gLTEpIHtcbiAgICAgIGZpbGVzLnNwbGljZShmaWxlSW5kZXgsIDEsIG5ld0ZpbGUpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIGFic3RyYWN0IHNlbmRGZWVkYmFjaygpOiB2b2lkO1xuXG4gIGFic3RyYWN0IHNldERpcmVjdG9yeUF0dHJpYnV0ZSh2YWx1ZTogYm9vbGVhbik7XG59XG4iXX0=