@pepperi-addons/ngx-lib 0.2.60 → 0.2.61-beta.4

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 (306) hide show
  1. package/address/address.component.theme.scss +4 -7
  2. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  3. package/attachment/attachment.component.d.ts +1 -0
  4. package/attachment/attachment.component.theme.scss +3 -2
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +7 -7
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +7 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +4 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-color.umd.js +8 -3
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  20. package/bundles/pepperi-addons-ngx-lib-date.umd.js +5 -3
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  22. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  24. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  28. package/bundles/pepperi-addons-ngx-lib-form.umd.js +19 -16
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  30. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-image.umd.js +7 -2
  33. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +7 -2
  35. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-list.umd.js +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +7 -2
  39. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1104 -0
  41. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -0
  42. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +7 -2
  43. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-select.umd.js +7 -2
  45. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +9 -1
  47. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  49. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +7 -2
  51. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
  53. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +306 -39
  55. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +7 -2
  57. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +5 -3
  59. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib.umd.js +38 -36
  63. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  64. package/button/button.component.theme.scss +0 -2
  65. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  66. package/checkbox/checkbox.component.theme.scss +0 -2
  67. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  68. package/color/color-picker.component.theme.scss +123 -128
  69. package/color/color.component.d.ts +1 -0
  70. package/color/color.component.theme.scss +0 -7
  71. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  72. package/core/common/services/addon.service.d.ts +1 -2
  73. package/core/common/services/file.service.d.ts +4 -4
  74. package/core/customization/customization.service.d.ts +1 -0
  75. package/date/date.component.theme.scss +163 -169
  76. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  77. package/dialog/dialog.component.theme.scss +4 -4
  78. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  79. package/esm2015/address/address.component.js +2 -2
  80. package/esm2015/attachment/attachment.component.js +8 -3
  81. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  82. package/esm2015/button/button.component.js +2 -2
  83. package/esm2015/checkbox/checkbox.component.js +5 -2
  84. package/esm2015/color/color-picker.component.js +2 -2
  85. package/esm2015/color/color.component.js +8 -3
  86. package/esm2015/core/common/services/addon.service.js +4 -19
  87. package/esm2015/core/common/services/file.service.js +9 -9
  88. package/esm2015/core/common/services/utilities.service.js +25 -4
  89. package/esm2015/core/customization/customization.service.js +4 -2
  90. package/esm2015/date/date.component.js +6 -4
  91. package/esm2015/dialog/dialog.component.js +2 -2
  92. package/esm2015/field-title/field-title.component.js +2 -2
  93. package/esm2015/files-uploader/files-uploader.component.js +2 -2
  94. package/esm2015/form/indicators.component.js +2 -2
  95. package/esm2015/form/internal-button.component.js +20 -17
  96. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  97. package/esm2015/image/image.component.js +8 -3
  98. package/esm2015/images-filmstrip/images-filmstrip.component.js +8 -3
  99. package/esm2015/list/list-total.component.js +2 -2
  100. package/esm2015/quantity-selector/quantity-selector.component.js +8 -3
  101. package/esm2015/query-builder/common/model/field.js +2 -0
  102. package/esm2015/query-builder/common/model/filter.js +2 -0
  103. package/esm2015/query-builder/common/model/legacy.js +2 -0
  104. package/esm2015/query-builder/common/model/operator-unit.js +42 -0
  105. package/esm2015/query-builder/common/model/operator.js +207 -0
  106. package/esm2015/query-builder/common/model/structure.js +2 -0
  107. package/esm2015/query-builder/common/model/type-map.js +27 -0
  108. package/esm2015/query-builder/common/model/type.js +6 -0
  109. package/esm2015/query-builder/common/services/output-query.service.js +111 -0
  110. package/esm2015/query-builder/common/services/type-convertor.service.js +40 -0
  111. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -0
  112. package/esm2015/query-builder/public-api.js +8 -0
  113. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +116 -0
  114. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +64 -0
  115. package/esm2015/query-builder/query-builder.component.js +104 -0
  116. package/esm2015/query-builder/query-builder.module.js +35 -0
  117. package/esm2015/query-builder/query-builder.service.js +282 -0
  118. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +8 -3
  119. package/esm2015/select/select.component.js +8 -3
  120. package/esm2015/separator/separator.component.js +10 -2
  121. package/esm2015/side-bar/side-bar.component.js +2 -2
  122. package/esm2015/signature/signature.component.js +8 -3
  123. package/esm2015/slider/slider.component.js +2 -2
  124. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +23 -3
  125. package/esm2015/smart-filters/common/model/base-filter-component.js +35 -8
  126. package/esm2015/smart-filters/common/model/creator.js +8 -2
  127. package/esm2015/smart-filters/common/model/field.js +12 -1
  128. package/esm2015/smart-filters/common/model/operator.js +8 -8
  129. package/esm2015/smart-filters/common/model/type.js +1 -1
  130. package/esm2015/smart-filters/date-filter/date-filter.component.js +45 -2
  131. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +53 -14
  132. package/esm2015/smart-filters/number-filter/number-filter.component.js +27 -2
  133. package/esm2015/smart-filters/public-api.js +2 -1
  134. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  135. package/esm2015/smart-filters/smart-filters.module.js +16 -3
  136. package/esm2015/smart-filters/text-filter/text-filter.component.js +79 -0
  137. package/esm2015/textarea/textarea.component.js +8 -3
  138. package/esm2015/textbox/textbox.component.js +6 -4
  139. package/esm2015/top-bar/top-bar.component.js +2 -2
  140. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  141. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  142. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +7 -2
  143. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  144. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  145. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  146. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  147. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  148. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +4 -1
  149. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  150. package/fesm2015/pepperi-addons-ngx-lib-color.js +8 -3
  151. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  152. package/fesm2015/pepperi-addons-ngx-lib-date.js +5 -3
  153. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +1 -1
  155. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  157. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
  159. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-form.js +19 -16
  161. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  163. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-image.js +7 -2
  165. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +7 -2
  167. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-list.js +1 -1
  169. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  170. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +7 -2
  171. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1014 -0
  173. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -0
  174. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +7 -2
  175. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-select.js +7 -2
  177. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-separator.js +9 -1
  179. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  181. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-signature.js +7 -2
  183. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  184. package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
  185. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  186. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +293 -36
  187. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +7 -2
  189. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +5 -3
  191. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  193. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  194. package/fesm2015/pepperi-addons-ngx-lib.js +38 -30
  195. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  196. package/field-title/field-title.component.theme.scss +0 -2
  197. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  198. package/files-uploader/files-uploader.component.theme.scss +3 -2
  199. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  200. package/form/indicators.component.theme.scss +5 -5
  201. package/form/internal-button.component.d.ts +0 -1
  202. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  203. package/group-buttons/group-buttons.component.theme.scss +11 -11
  204. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  205. package/image/image.component.d.ts +1 -0
  206. package/image/image.component.theme.scss +28 -27
  207. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  208. package/images-filmstrip/images-filmstrip.component.d.ts +1 -0
  209. package/images-filmstrip/images-filmstrip.component.theme.scss +27 -26
  210. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  211. package/list/list-total.component.theme.scss +6 -6
  212. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  213. package/package.json +5 -5
  214. package/page-layout/page-layout.component.theme.scss +6 -6
  215. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  216. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  217. package/quantity-selector/quantity-selector.component.d.ts +1 -0
  218. package/quantity-selector/quantity-selector.component.theme.scss +21 -21
  219. package/query-builder/common/model/field.d.ts +8 -0
  220. package/query-builder/common/model/filter.d.ts +6 -0
  221. package/query-builder/common/model/legacy.d.ts +29 -0
  222. package/query-builder/common/model/operator-unit.d.ts +13 -0
  223. package/query-builder/common/model/operator.d.ts +21 -0
  224. package/query-builder/common/model/structure.d.ts +4 -0
  225. package/query-builder/common/model/type-map.d.ts +12 -0
  226. package/query-builder/common/model/type.d.ts +4 -0
  227. package/query-builder/common/services/output-query.service.d.ts +44 -0
  228. package/query-builder/common/services/type-convertor.service.d.ts +10 -0
  229. package/query-builder/package.json +14 -0
  230. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +8 -0
  231. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -0
  232. package/query-builder/public-api.d.ts +4 -0
  233. package/query-builder/query-builder-item/query-builder-item.component.d.ts +37 -0
  234. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -0
  235. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +7 -0
  236. package/query-builder/query-builder.component.d.ts +35 -0
  237. package/query-builder/query-builder.module.d.ts +2 -0
  238. package/query-builder/query-builder.service.d.ts +94 -0
  239. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  240. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -0
  241. package/rich-html-textarea/rich-html-textarea.component.theme.scss +77 -70
  242. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  243. package/select/select.component.d.ts +1 -0
  244. package/select/select.component.theme.scss +98 -2
  245. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  246. package/separator/separator.component.theme.scss +1 -1
  247. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  248. package/side-bar/side-bar.component.theme.scss +17 -16
  249. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  250. package/signature/signature.component.d.ts +1 -0
  251. package/signature/signature.component.theme.scss +5 -21
  252. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  253. package/slider/slider.component.theme.scss +55 -53
  254. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +6 -1
  255. package/smart-filters/common/model/base-filter-component.d.ts +7 -0
  256. package/smart-filters/common/model/field.d.ts +4 -0
  257. package/smart-filters/common/model/operator.d.ts +1 -0
  258. package/smart-filters/common/model/type.d.ts +2 -2
  259. package/smart-filters/date-filter/date-filter.component.d.ts +8 -1
  260. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +6 -0
  261. package/smart-filters/number-filter/number-filter.component.d.ts +5 -0
  262. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  263. package/smart-filters/public-api.d.ts +1 -0
  264. package/smart-filters/smart-filters.component.theme.scss +6 -7
  265. package/smart-filters/text-filter/text-filter.component.d.ts +17 -0
  266. package/src/assets/i18n/en.ngx-lib.json +2 -1
  267. package/src/core/style/abstracts/breakpoints.scss +4 -2
  268. package/src/core/style/abstracts/functions.scss +233 -216
  269. package/src/core/style/abstracts/mixins.scss +191 -188
  270. package/src/core/style/base/base.scss +125 -124
  271. package/src/core/style/base/grids.scss +1 -1
  272. package/src/core/style/base/typography.scss +66 -62
  273. package/src/core/style/components/button.scss +57 -60
  274. package/src/core/style/components/checkbox.scss +41 -38
  275. package/src/core/style/components/datetime.scss +182 -22
  276. package/src/core/style/components/file.scss +159 -141
  277. package/src/core/style/components/general.scss +180 -278
  278. package/src/core/style/components/input.scss +22 -24
  279. package/src/core/style/components/quantity-selector.scss +15 -12
  280. package/src/core/style/components/radio-button.scss +22 -38
  281. package/src/core/style/components/select.scss +184 -182
  282. package/src/core/style/components/signature.scss +14 -12
  283. package/src/core/style/components/splitter.scss +58 -55
  284. package/src/core/style/components/textarea.scss +90 -78
  285. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  286. package/textarea/textarea.component.d.ts +1 -0
  287. package/textarea/textarea.component.theme.scss +3 -2
  288. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  289. package/textbox/textbox.component.theme.scss +1 -1
  290. package/theming.scss +50 -144
  291. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  292. package/top-bar/top-bar.component.theme.scss +7 -7
  293. package/form/form.component.theme.scss +0 -2
  294. package/form/internal-button.component.theme.scss +0 -2
  295. package/form/internal-menu.component.theme.scss +0 -3
  296. package/list/list-actions.component.theme.scss +0 -3
  297. package/list/list-carousel.component.theme.scss +0 -9
  298. package/list/list-chooser.component.theme.scss +0 -3
  299. package/list/list-pager.component.theme.scss +0 -3
  300. package/list/list-sorting.component.theme.scss +0 -3
  301. package/list/list-views.component.theme.scss +0 -3
  302. package/list/list.component.theme.scss +0 -5
  303. package/list/list_old.component.theme.scss +0 -5
  304. package/menu/menu.component.theme.scss +0 -2
  305. package/search/search.component.theme.scss +0 -3
  306. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -210,7 +210,7 @@ PepColorPickerComponent.CURRENT_HUE = '--pep-color-picker-current-hue';
210
210
  PepColorPickerComponent.decorators = [
211
211
  { type: Component, args: [{
212
212
  template: "<div class=\"pep-color-picker-container\">\n <pep-dialog [title]=\"'COLOR.DIALOG_TITLE' | translate\">\n <ng-container pep-dialog-content>\n <div class=\"color-chooser-content\">\n <div class=\"current-color\" [ngStyle]=\"{ 'background': data?.value ? data.value : 'transparent' }\"></div>\n\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_HUE' | translate\" [minValue]=\"currentHueMin\"\n [maxValue]=\"currentHueMax\" [value]=\"currentHue\" [background]=\"currentHueBackground\"\n (valueChange)=\"onHueChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_SATURATION' | translate\"\n [minValue]=\"currentSaturationMin\" [maxValue]=\"currentSaturationMax\" [value]=\"currentSaturation\"\n [background]=\"currentSaturationBackground\" (valueChange)=\"onSaturationChange($event)\">\n </pep-slider>\n <pep-slider class=\"slider-box\" [label]=\"'COLOR.CHANGE_LIGHTNESS' | translate\"\n [minValue]=\"currentLightnessMin\" [maxValue]=\"currentLightnessMax\"\n [value]=\"currentLightnessMax - currentLightness + currentLightnessMin\"\n [background]=\"currentLightnessBackground\" (valueChange)=\"onLightnessChange($event)\">\n </pep-slider>\n <!-- <div class=\"slider-box current-hue\">\n <mat-label class=\"body-xs \">{{ 'COLOR.CHANGE_HUE' | translate}}</mat-label>\n <div [class]=\"data?.type\">\n <mat-slider [min]=\"currentHueMin\" [max]=\"currentHueMax\" step=\"1\" [value]=\"currentHue\"\n (change)=\"onHueChange($event)\"></mat-slider>\n </div>\n </div> \n <div class=\"slider-box current-saturation\">\n <mat-label class=\"body-xs \">{{ 'COLOR.CHANGE_SATURATION' | translate}}</mat-label>\n <div [class]=\"data?.type\">\n <mat-slider [min]=\"currentSaturationMin\" [max]=\"currentSaturationMax\" step=\"1\"\n [value]=\"currentSaturation\" (change)=\"onSaturationChange($event)\"></mat-slider>\n </div>\n </div>\n <div class=\"slider-box current-lightness\">\n <mat-label class=\"body-xs \">{{ 'COLOR.CHANGE_LIGHTNESS' | translate}}</mat-label>\n <div [class]=\"data?.type\">\n <mat-slider [min]=\"currentLightnessMin\" [max]=\"currentLightnessMax\" step=\"1\"\n [value]=\"currentLightnessMax - currentLightness + currentLightnessMin\"\n (change)=\"onLightnessChange($event)\"></mat-slider>\n </div>\n </div>-->\n </div>\n <div class=\"color-value-content\">\n <div class=\"color-value\" [ngClass]=\"{ 'with-complient': checkAAComplient }\">\n <pep-textbox [key]=\"'colorValue'\" [label]=\"'COLOR.ADD_VALUE_HERE' | translate \"\n [formattedValue]=\"data?.value\" [value]=\"data?.value\" (valueChange)=\"onColorValueChange($event)\">\n </pep-textbox>\n </div>\n <div *ngIf=\"checkAAComplient\" class=\"color-complient-container\">\n <pep-field-title [label]=\"'COLOR.AA_COMPLIENT' | translate \">\n </pep-field-title>\n <div class=\"color-complient\" [ngStyle]=\"{ 'background': complientColor }\">\n <mat-icon *ngIf=\"isUserChooseAAComplientColor\">\n <pep-icon name=\"system_ok\">\n </pep-icon>\n </mat-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"color-actions pep-spacing-element-negative\">\n <mat-checkbox *ngIf=\"data.showAAComplient\" class=\"pep-spacing-element\" type=\"checkbox\"\n id=\"checkAAComplient\" (change)=\"checkAAComplient = !checkAAComplient\" [checked]=\"checkAAComplient\">\n <span class=\"body-xs ellipsis\">{{ 'COLOR.AA_COMPLIENT' | translate }}</span>\n </mat-checkbox>\n <div>\n <button mat-button [mat-dialog-close]=\"null\" class=\"pep-spacing-element pep-button md weak\">\n {{'ACTIONS.CANCEL' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" (click)=\"onSave($event)\">\n {{'ACTIONS.OK' | translate}}\n </button>\n </div>\n </div>\n </ng-container>\n </pep-dialog>\n</div>",
213
- styles: [".mat-slider-horizontal .mat-slider-track-fill,.mat-slider-track-background{display:none}.pep-color-picker-container ::ng-deep.mat-dialog-content,.pepperi-color-picker-container ::ng-deep.mat-dialog-content{padding:.5rem .5rem 0;padding:var(--pep-spacing-sm,.5rem) var(--pep-spacing-sm,.5rem) 0}.pep-color-picker-container .color-chooser-content,.pepperi-color-picker-container .color-chooser-content{display:-ms-grid;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);grid-column-gap:1.5rem;grid-column-gap:var(--pep-spacing-xl,1.5rem);grid-row-gap:.5rem;grid-row-gap:var(--pep-spacing-sm,.5rem);margin-top:.5rem;margin-top:var(--pep-spacing-sm,.5rem)}.pep-color-picker-container .color-chooser-content .current-color,.pepperi-color-picker-container .color-chooser-content .current-color{grid-row:1/span 3;grid-column:6/span 4;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:9.25rem;height:9.25rem}.pep-color-picker-container .color-chooser-content .slider-box,.pepperi-color-picker-container .color-chooser-content .slider-box{grid-column:1/span 5}.pep-color-picker-container .color-value-content,.pepperi-color-picker-container .color-value-content{display:-ms-grid;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(1,1fr);grid-column-gap:1.5rem;grid-column-gap:var(--pep-spacing-xl,1.5rem);grid-row-gap:.5rem;grid-row-gap:var(--pep-spacing-sm,.5rem);margin-top:1.5rem}.pep-color-picker-container .color-value-content .color-value,.pepperi-color-picker-container .color-value-content .color-value{grid-row:1/span 1;grid-column:1/span 9}.pep-color-picker-container .color-value-content .color-value.with-complient,.pepperi-color-picker-container .color-value-content .color-value.with-complient{grid-column:1/span 5}.pep-color-picker-container .color-value-content .color-complient-container,.pepperi-color-picker-container .color-value-content .color-complient-container{grid-column:6/span 4}.pep-color-picker-container .color-value-content .color-complient-container .color-complient,.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient{display:flex;justify-content:center;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);height:2.5rem;height:var(--pep-form-field-height,2.5rem);width:9.25rem}.pep-color-picker-container ::ng-deep.mat-dialog-actions,.pepperi-color-picker-container ::ng-deep.mat-dialog-actions{display:block}.pep-color-picker-container ::ng-deep.mat-dialog-actions .color-actions,.pepperi-color-picker-container ::ng-deep.mat-dialog-actions .color-actions{display:flex;justify-content:space-between;align-items:center}"]
213
+ styles: [".mat-slider-horizontal .mat-slider-track-fill,.mat-slider-track-background{display:none}.pep-color-picker-container ::ng-deep.mat-dialog-content,.pepperi-color-picker-container ::ng-deep.mat-dialog-content{padding:.5rem .5rem 0;padding:var(--pep-spacing-sm,.5rem) var(--pep-spacing-sm,.5rem) 0}.pep-color-picker-container .color-chooser-content,.pepperi-color-picker-container .color-chooser-content{display:-ms-grid;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);grid-column-gap:1.5rem;grid-column-gap:var(--pep-spacing-xl,1.5rem);grid-row-gap:.5rem;grid-row-gap:var(--pep-spacing-sm,.5rem);margin-top:.5rem;margin-top:var(--pep-spacing-sm,.5rem)}.pep-color-picker-container .color-chooser-content .current-color,.pepperi-color-picker-container .color-chooser-content .current-color{grid-row:1/span 3;grid-column:6/span 4;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:9.25rem;height:9.25rem}.pep-color-picker-container .color-chooser-content .slider-box,.pepperi-color-picker-container .color-chooser-content .slider-box{grid-column:1/span 5}.pep-color-picker-container .color-value-content,.pepperi-color-picker-container .color-value-content{display:-ms-grid;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(1,1fr);grid-column-gap:1.5rem;grid-column-gap:var(--pep-spacing-xl,1.5rem);grid-row-gap:.5rem;grid-row-gap:var(--pep-spacing-sm,.5rem);margin-top:1.5rem}.pep-color-picker-container .color-value-content .color-value,.pepperi-color-picker-container .color-value-content .color-value{grid-row:1/span 1;grid-column:1/span 9}.pep-color-picker-container .color-value-content .color-value.with-complient,.pepperi-color-picker-container .color-value-content .color-value.with-complient{grid-column:1/span 5}.pep-color-picker-container .color-value-content .color-complient-container,.pepperi-color-picker-container .color-value-content .color-complient-container{grid-column:6/span 4}.pep-color-picker-container .color-value-content .color-complient-container .color-complient,.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient{display:flex;justify-content:center;align-items:center;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);height:2.5rem;height:var(--pep-form-field-height,2.5rem);width:9.25rem}.pep-color-picker-container ::ng-deep.mat-dialog-actions,.pepperi-color-picker-container ::ng-deep.mat-dialog-actions{display:block}.pep-color-picker-container ::ng-deep.mat-dialog-actions .color-actions,.pepperi-color-picker-container ::ng-deep.mat-dialog-actions .color-actions{display:flex;justify-content:space-between;align-items:center}", ".pep-color-picker-container .color-chooser-content .current-hue .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-hue .mat-slider .mat-slider-wrapper{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.pep-color-picker-container .color-chooser-content .current-hue.success .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-hue.success .mat-slider .mat-slider-wrapper{background:linear-gradient(90deg,#d5ff00 0,#00ff80)}.pep-color-picker-container .color-chooser-content .current-hue.caution .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-hue.caution .mat-slider .mat-slider-wrapper{background:linear-gradient(90deg,#f05 0,#f50)}.pep-color-picker-container .color-chooser-content .current-saturation .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-saturation .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),.01%,50%) 0,hsl(var(--pep-color-picker-current-hue),100%,50%) 100%)}.pep-color-picker-container .color-chooser-content .current-saturation.success .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-saturation.success .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),50%,50%) 50%,hsl(var(--pep-color-picker-current-hue),100%,50%) 100%)}.pep-color-picker-container .color-chooser-content .current-saturation.caution .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-saturation.caution .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),75%,50%) 75%,hsl(var(--pep-color-picker-current-hue),100%,50%) 100%)}.pep-color-picker-container .color-chooser-content .current-lightness .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-lightness .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),100%,100%) 0,hsl(var(--pep-color-picker-current-hue),100%,50%) 50%,hsl(var(--pep-color-picker-current-hue),100%,.01%) 100%)}.pep-color-picker-container .color-chooser-content .current-lightness.success .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-lightness.success .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),100%,65%) 10%,hsl(var(--pep-color-picker-current-hue),100%,35%) 35%,hsl(var(--pep-color-picker-current-hue),100%,10%) 65%)}.pep-color-picker-container .color-chooser-content .current-lightness.caution .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .color-chooser-content .current-lightness.caution .mat-slider .mat-slider-wrapper{background:linear-gradient(to right,hsl(var(--pep-color-picker-current-hue),100%,75%) 25%,hsl(var(--pep-color-picker-current-hue),100%,50%) 50%,hsl(var(--pep-color-picker-current-hue),100%,25%) 75%)}.pep-color-picker-container .color-value-content .color-complient-container .color-complient .mat-icon .svg-icon,.pepperi-color-picker-container .color-value-content .color-complient-container .color-complient .mat-icon .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}.pep-color-picker-container .mat-slider,.pepperi-color-picker-container .mat-slider{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.12)}.pep-color-picker-container .mat-slider.mat-slider-horizontal,.pepperi-color-picker-container .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:.5rem;border-radius:var(--pep-border-radius-lg,.5rem)}.pep-color-picker-container .mat-slider .mat-slider-wrapper,.pepperi-color-picker-container .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:calc(math.div($wrapperHeight, 2) * -1);left:unset;right:unset;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem)}.pep-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper,.pepperi-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-thumb-container,.pepperi-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb,.pepperi-color-picker-container .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:calc(math.div($sliderSize, 2) * -1);bottom:calc(math.div($sliderSize, 2) * -1);transform:scale(.7)!important;border-color:#fff;border-color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 .125rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-2xs,.125rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}"]
214
214
  },] }
215
215
  ];
216
216
  PepColorPickerComponent.ctorParameters = () => [
@@ -218,4 +218,4 @@ PepColorPickerComponent.ctorParameters = () => [
218
218
  { type: MatDialogRef },
219
219
  { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
220
220
  ];
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLFdBQVc7QUFDWCxlQUFlO0FBQ2YscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsa0NBQWtDO0FBQ2xDLGVBQWU7QUFDZiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0seUJBQXlCLENBQUM7QUFJeEUsSUFBSyxvQkFHSjtBQUhELFdBQUssb0JBQW9CO0lBQ3JCLDZEQUFRLENBQUE7SUFDUiw2REFBTyxDQUFBO0FBQ1gsQ0FBQyxFQUhJLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHeEI7QUFjRCxNQUFNLE9BQU8sdUJBQXVCO0lBTWhDLFlBQ1ksWUFBNkIsRUFDN0IsU0FBZ0QsRUFDeEIsSUFBK0I7O1FBRnZELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN4QixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQVBsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFrQmhCLHlCQUFvQixHQUFHOzs7Ozs7O2tDQU9ELENBQUM7UUFFL0IsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFekMsZ0NBQTJCLEdBQUc7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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuLy8gaW1wb3J0IHtcbi8vICAgICBoZXgyaHNsLFxuLy8gICAgIGhzbFN0cmluZzJoc2wsXG4vLyAgICAgcmdiU3RyaW5nMmhzbCxcbi8vICAgICBJUGVwSHNsQ29sb3IsXG4vLyAgICAgZmluZENsb3Nlc3RBY2Nlc3NpYmxlQ29sb3IsXG4vLyAgICAgaHNsMmhleCxcbi8vICAgICBjb252ZXJ0SHNsVG9TdHJpbmdIc2wsXG4vLyB9IGZyb20gJy4vY29sb3ItdXRpbHMnO1xuaW1wb3J0IHsgUGVwQ29sb3JTZXJ2aWNlLCBJUGVwSHNsQ29sb3IgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmltcG9ydCB7IFBlcENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3IubW9kZWwnO1xuXG5lbnVtIFBlcENvbnRyYXN0UmF0aW9UeXBlIHtcbiAgICBBQSA9IDQuNSxcbiAgICBBQUEgPSA3LFxufVxuXG5pbnRlcmZhY2UgSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YSB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0eXBlOiBQZXBDb2xvclR5cGU7XG4gICAgc2hvd0FBQ29tcGxpZW50OiBib29sZWFuO1xuICAgIHRleHRDb2xvcjogc3RyaW5nO1xuICAgIGNvbnRyYXN0UmF0aW86IFBlcENvbnRyYXN0UmF0aW9UeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBDVVJSRU5UX0hVRSA9ICctLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJyNjY2MnO1xuXG4gICAgY2hlY2tBQUNvbXBsaWVudCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb2xvclNlcnZpY2U6IFBlcENvbG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBDb2xvclBpY2tlckNvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YVxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGEudHlwZSA9IGRhdGEgPyBkYXRhLnR5cGUgOiAnYW55JztcbiAgICAgICAgdGhpcy5kYXRhLnNob3dBQUNvbXBsaWVudCA9ICFkYXRhXG4gICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICA6IGRhdGEuc2hvd0FBQ29tcGxpZW50ID8/IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS50ZXh0Q29sb3IgPSBkYXRhICYmIGRhdGEudGV4dENvbG9yID8gZGF0YS50ZXh0Q29sb3IgOiAnI2ZmZic7XG4gICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvID1cbiAgICAgICAgICAgIGRhdGEgJiYgZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICAgICAgICAgPyBkYXRhLmNvbnRyYXN0UmF0aW9cbiAgICAgICAgICAgICAgICA6IFBlcENvbnRyYXN0UmF0aW9UeXBlLkFBO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdEh1ZUJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICBoc2woMCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKDYwLCAxMDAlLCA1MCUpIDE3JSxcbiAgICAgICAgaHNsKDEyMCwgMTAwJSwgNTAlKSAzMyUsXG4gICAgICAgIGhzbCgxODAsIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICBoc2woMjQwLCAxMDAlLCA1MCUpIDY3JSxcbiAgICAgICAgaHNsKDMwMCwgMTAwJSwgNTAlKSA4MyUsXG4gICAgICAgIGhzbCgzNjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuXG4gICAgY3VycmVudEh1ZSA9IDEwMDtcbiAgICBjdXJyZW50SHVlTWluID0gMDtcbiAgICBjdXJyZW50SHVlTWF4ID0gMzYwO1xuICAgIGN1cnJlbnRIdWVCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0SHVlQmFja2dyb3VuZDtcblxuICAgIHByaXZhdGUgZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAwLjAxJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG4gICAgY3VycmVudFNhdHVyYXRpb25NaW4gPSAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAwJSkgMCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgNTAlKSA1MCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMC4wMSUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRMaWdodG5lc3MgPSA1MDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWluID0gMDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRMaWdodG5lc3NCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZDtcblxuICAgIGNvbXBsaWVudENvbG9yOiBzdHJpbmc7XG4gICAgaXNVc2VyQ2hvb3NlQUFDb21wbGllbnRDb2xvcjogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRWYXJzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tBQUNvbXBsaWVudCA9IHRoaXMuZGF0YS5zaG93QUFDb21wbGllbnQ7XG4gICAgICAgIHRoaXMuY29udmVydFZhbHVlU3RyaW5nVG9Db2xvcih0aGlzLmRhdGEudmFsdWUpO1xuICAgIH1cblxuICAgIGluaXRWYXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdtYWluJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gMTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdEh1ZUJhY2tncm91bmQ7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdExpZ2h0bmVzc0JhY2tncm91bmQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlTWluID0gNzA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNYXggPSAxNTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSAxMDA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA1MDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDEwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNjU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDcwLCAxMDAlLCA1MCUpIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgxNTAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNTAlLCA1MCUpIDUwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA2NSUpIDEwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDM1JSkgMzUlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAlKSA2NSUpYDtcblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS50eXBlID09PSAnY2F1dGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1pbiA9IC0yMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1heCA9IDIwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlID0gMTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA3NTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNzU7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDI1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNzU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDM0MCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNzUlLCA1MCUpIDc1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA3NSUpIDI1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMjUlKSA3NSUpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEN1cnJlbnRIdWVJbkNzcygpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQuQ1VSUkVOVF9IVUUsXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUudG9TdHJpbmcoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoY29sb3IpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbG9yLmluZGV4T2YoJ2hzbCcpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5oc2xTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJ3JnYicpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5yZ2JTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBkZWZhdWx0LlxuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbCh0aGlzLmRlZmF1bHRDb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudEh1ZUluQ3NzKCk7XG4gICAgfVxuXG4gICAgY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2xDb2xvcjogSVBlcEhzbENvbG9yKTogdm9pZCB7XG4gICAgICAgIC8vIFJlZ3VsYXIgaHVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhzbENvbG9yLmggPj0gdGhpcy5jdXJyZW50SHVlTWluICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oIDw9IHRoaXMuY3VycmVudEh1ZU1heFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZSA9IGhzbENvbG9yLmg7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNaW4gPCAwICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oID49IDAgJiZcbiAgICAgICAgICAgIGhzbENvbG9yLmggPD0gMzYwXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gRm9yIG1pbiB3aXRoIC0gKGNoYW5nZSB0byB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgY2lyY2xlKVxuICAgICAgICAgICAgaHNsQ29sb3IuaCA9IGhzbENvbG9yLmggLSAzNjA7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5oID49IHRoaXMuY3VycmVudEh1ZU1pbiAmJlxuICAgICAgICAgICAgICAgIGhzbENvbG9yLmggPD0gdGhpcy5jdXJyZW50SHVlTWF4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSBoc2xDb2xvci5oO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9XG4gICAgICAgICAgICBoc2xDb2xvci5zID49IHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gJiZcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5zIDw9IHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLnNcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudFNhdHVyYXRpb247XG5cbiAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID1cbiAgICAgICAgICAgIGhzbENvbG9yLmwgPj0gdGhpcy5jdXJyZW50TGlnaHRuZXNzTWluICYmXG4gICAgICAgICAgICAgICAgaHNsQ29sb3IubCA8PSB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLmxcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudExpZ2h0bmVzcztcblxuICAgICAgICAvLyBXcml0ZSB0aGUgdmFsdWUgKGlmIGh1ZSBpcyBjaGFuZ2VkIHRvIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjaXJjbGUgcmV0dXJuIGl0IGJhY2spLlxuICAgICAgICBjb25zdCBoc2wgPSB7XG4gICAgICAgICAgICBoOiB0aGlzLmN1cnJlbnRIdWUsXG4gICAgICAgICAgICBzOiB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uLFxuICAgICAgICAgICAgbDogdGhpcy5jdXJyZW50TGlnaHRuZXNzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB0aGlzLmNvbG9yU2VydmljZS5jb252ZXJ0SHNsVG9TdHJpbmdIc2woaHNsKTtcblxuICAgICAgICAvLyBDaGVjayB0aGUgY29udHJhc3QgcmF0aW8gLSBzZXQgdGhlIGNsb3Nlc3QgYWNjZXNzaWJsZSBjb2xvciB0byBjb21wbGllbnRDb2xvclxuICAgICAgICAvLyBhbmQgdXBkYXRlIGlzVXNlckNob29zZUFBQ29tcGxpZW50Q29sb3IuXG4gICAgICAgIGNvbnN0IGFkanVzdGFibGVDb2xvciA9IHRoaXMuY29sb3JTZXJ2aWNlLmhzbDJoZXgoaHNsKTtcbiAgICAgICAgY29uc3QgY2xvc2VzdEhleCA9IHRoaXMuY29sb3JTZXJ2aWNlLmZpbmRDbG9zZXN0QWNjZXNzaWJsZUNvbG9yKFxuICAgICAgICAgICAgYWRqdXN0YWJsZUNvbG9yLFxuICAgICAgICAgICAgdGhpcy5kYXRhLnRleHRDb2xvcixcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yID0gYWRqdXN0YWJsZUNvbG9yID09PSBjbG9zZXN0SGV4O1xuICAgICAgICB0aGlzLmNvbXBsaWVudENvbG9yID0gdGhpcy5jb2xvclNlcnZpY2UuY29udmVydEhzbFRvU3RyaW5nSHNsKFxuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjbG9zZXN0SGV4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSHVlQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IGg6IHZhbHVlIH0pO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRIdWVJbkNzcygpO1xuICAgIH1cblxuICAgIG9uU2F0dXJhdGlvbkNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gZXZlbnQudmFsdWU7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IHM6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIG9uTGlnaHRuZXNzQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuY3VycmVudExpZ2h0bmVzcyA9IGV2ZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoe1xuICAgICAgICAgICAgbDpcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXggLVxuICAgICAgICAgICAgICAgIHZhbHVlICtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNaW4sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29sb3JWYWx1ZUNoYW5nZShldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIG9uU2F2ZShldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuY2hlY2tBQUNvbXBsaWVudFxuICAgICAgICAgICAgPyB0aGlzLmNvbXBsaWVudENvbG9yXG4gICAgICAgICAgICA6IHRoaXMuZGF0YS52YWx1ZTtcblxuICAgICAgICAvLyB0aGlzLm5vdGlmeS5lbWl0KHsga2V5OiB0aGlzLmtleSwgdmFsdWU6IGNvbG9yIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShjb2xvcik7XG4gICAgfVxufVxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY29sb3IvY29sb3ItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLFdBQVc7QUFDWCxlQUFlO0FBQ2YscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsa0NBQWtDO0FBQ2xDLGVBQWU7QUFDZiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0seUJBQXlCLENBQUM7QUFJeEUsSUFBSyxvQkFHSjtBQUhELFdBQUssb0JBQW9CO0lBQ3JCLDZEQUFRLENBQUE7SUFDUiw2REFBTyxDQUFBO0FBQ1gsQ0FBQyxFQUhJLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHeEI7QUFjRCxNQUFNLE9BQU8sdUJBQXVCO0lBTWhDLFlBQ1ksWUFBNkIsRUFDN0IsU0FBZ0QsRUFDeEIsSUFBK0I7O1FBRnZELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN4QixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQVBsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFrQmhCLHlCQUFvQixHQUFHOzs7Ozs7O2tDQU9ELENBQUM7UUFFL0IsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFekMsZ0NBQTJCLEdBQUc7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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuLy8gaW1wb3J0IHtcbi8vICAgICBoZXgyaHNsLFxuLy8gICAgIGhzbFN0cmluZzJoc2wsXG4vLyAgICAgcmdiU3RyaW5nMmhzbCxcbi8vICAgICBJUGVwSHNsQ29sb3IsXG4vLyAgICAgZmluZENsb3Nlc3RBY2Nlc3NpYmxlQ29sb3IsXG4vLyAgICAgaHNsMmhleCxcbi8vICAgICBjb252ZXJ0SHNsVG9TdHJpbmdIc2wsXG4vLyB9IGZyb20gJy4vY29sb3ItdXRpbHMnO1xuaW1wb3J0IHsgUGVwQ29sb3JTZXJ2aWNlLCBJUGVwSHNsQ29sb3IgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmltcG9ydCB7IFBlcENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3IubW9kZWwnO1xuXG5lbnVtIFBlcENvbnRyYXN0UmF0aW9UeXBlIHtcbiAgICBBQSA9IDQuNSxcbiAgICBBQUEgPSA3LFxufVxuXG5pbnRlcmZhY2UgSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YSB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0eXBlOiBQZXBDb2xvclR5cGU7XG4gICAgc2hvd0FBQ29tcGxpZW50OiBib29sZWFuO1xuICAgIHRleHRDb2xvcjogc3RyaW5nO1xuICAgIGNvbnRyYXN0UmF0aW86IFBlcENvbnRyYXN0UmF0aW9UeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLCAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBDVVJSRU5UX0hVRSA9ICctLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJyNjY2MnO1xuXG4gICAgY2hlY2tBQUNvbXBsaWVudCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb2xvclNlcnZpY2U6IFBlcENvbG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBDb2xvclBpY2tlckNvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogSVBlcENvbG9yUGlja2VyRGlhbG9nRGF0YVxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGEudHlwZSA9IGRhdGEgPyBkYXRhLnR5cGUgOiAnYW55JztcbiAgICAgICAgdGhpcy5kYXRhLnNob3dBQUNvbXBsaWVudCA9ICFkYXRhXG4gICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICA6IGRhdGEuc2hvd0FBQ29tcGxpZW50ID8/IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS50ZXh0Q29sb3IgPSBkYXRhICYmIGRhdGEudGV4dENvbG9yID8gZGF0YS50ZXh0Q29sb3IgOiAnI2ZmZic7XG4gICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvID1cbiAgICAgICAgICAgIGRhdGEgJiYgZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICAgICAgICAgPyBkYXRhLmNvbnRyYXN0UmF0aW9cbiAgICAgICAgICAgICAgICA6IFBlcENvbnRyYXN0UmF0aW9UeXBlLkFBO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdEh1ZUJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICBoc2woMCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKDYwLCAxMDAlLCA1MCUpIDE3JSxcbiAgICAgICAgaHNsKDEyMCwgMTAwJSwgNTAlKSAzMyUsXG4gICAgICAgIGhzbCgxODAsIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICBoc2woMjQwLCAxMDAlLCA1MCUpIDY3JSxcbiAgICAgICAgaHNsKDMwMCwgMTAwJSwgNTAlKSA4MyUsXG4gICAgICAgIGhzbCgzNjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuXG4gICAgY3VycmVudEh1ZSA9IDEwMDtcbiAgICBjdXJyZW50SHVlTWluID0gMDtcbiAgICBjdXJyZW50SHVlTWF4ID0gMzYwO1xuICAgIGN1cnJlbnRIdWVCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0SHVlQmFja2dyb3VuZDtcblxuICAgIHByaXZhdGUgZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAwLjAxJSwgNTAlKSAwJSxcbiAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA1MCUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG4gICAgY3VycmVudFNhdHVyYXRpb25NaW4gPSAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAwJSkgMCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgNTAlKSA1MCUsXG4gICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMC4wMSUpIDEwMCUpYDtcblxuICAgIGN1cnJlbnRMaWdodG5lc3MgPSA1MDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWluID0gMDtcbiAgICBjdXJyZW50TGlnaHRuZXNzTWF4ID0gMTAwO1xuICAgIGN1cnJlbnRMaWdodG5lc3NCYWNrZ3JvdW5kID0gdGhpcy5kZWZhdWx0TGlnaHRuZXNzQmFja2dyb3VuZDtcblxuICAgIGNvbXBsaWVudENvbG9yOiBzdHJpbmc7XG4gICAgaXNVc2VyQ2hvb3NlQUFDb21wbGllbnRDb2xvcjogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRWYXJzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tBQUNvbXBsaWVudCA9IHRoaXMuZGF0YS5zaG93QUFDb21wbGllbnQ7XG4gICAgICAgIHRoaXMuY29udmVydFZhbHVlU3RyaW5nVG9Db2xvcih0aGlzLmRhdGEudmFsdWUpO1xuICAgIH1cblxuICAgIGluaXRWYXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdtYWluJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gMTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdEh1ZUJhY2tncm91bmQ7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdFNhdHVyYXRpb25CYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IHRoaXMuZGVmYXVsdExpZ2h0bmVzc0JhY2tncm91bmQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlTWluID0gNzA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNYXggPSAxNTA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSAxMDA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA1MDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDEwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNjU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDcwLCAxMDAlLCA1MCUpIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgxNTAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNTAlLCA1MCUpIDUwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA2NSUpIDEwJSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDM1JSkgMzUlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMTAlKSA2NSUpYDtcblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS50eXBlID09PSAnY2F1dGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1pbiA9IC0yMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZU1heCA9IDIwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlID0gMTA7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gPSA3NTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXggPSAxMDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gNzU7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpZ2h0bmVzc01pbiA9IDI1O1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzTWF4ID0gNzU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3MgPSA1MDtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SHVlQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKDM0MCwgMTAwJSwgNTAlKSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMjAsIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbkJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgNzUlLCA1MCUpIDc1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgMTAwJSlgO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzQmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgaHNsKHZhcigtLXBlcC1jb2xvci1waWNrZXItY3VycmVudC1odWUpLCAxMDAlLCA3NSUpIDI1JSxcbiAgICAgICAgICAgICAgICBoc2wodmFyKC0tcGVwLWNvbG9yLXBpY2tlci1jdXJyZW50LWh1ZSksIDEwMCUsIDUwJSkgNTAlLFxuICAgICAgICAgICAgICAgIGhzbCh2YXIoLS1wZXAtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlKSwgMTAwJSwgMjUlKSA3NSUpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEN1cnJlbnRIdWVJbkNzcygpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQuQ1VSUkVOVF9IVUUsXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUudG9TdHJpbmcoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoY29sb3IpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbG9yLmluZGV4T2YoJ2hzbCcpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5oc2xTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJ3JnYicpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBoc2wgPSB0aGlzLmNvbG9yU2VydmljZS5yZ2JTdHJpbmcyaHNsKGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbG9yLmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBkZWZhdWx0LlxuICAgICAgICAgICAgY29uc3QgaHNsID0gdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbCh0aGlzLmRlZmF1bHRDb2xvcik7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoaHNsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudEh1ZUluQ3NzKCk7XG4gICAgfVxuXG4gICAgY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyhoc2xDb2xvcjogSVBlcEhzbENvbG9yKTogdm9pZCB7XG4gICAgICAgIC8vIFJlZ3VsYXIgaHVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhzbENvbG9yLmggPj0gdGhpcy5jdXJyZW50SHVlTWluICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oIDw9IHRoaXMuY3VycmVudEh1ZU1heFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEh1ZSA9IGhzbENvbG9yLmg7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWVNaW4gPCAwICYmXG4gICAgICAgICAgICBoc2xDb2xvci5oID49IDAgJiZcbiAgICAgICAgICAgIGhzbENvbG9yLmggPD0gMzYwXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gRm9yIG1pbiB3aXRoIC0gKGNoYW5nZSB0byB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgY2lyY2xlKVxuICAgICAgICAgICAgaHNsQ29sb3IuaCA9IGhzbENvbG9yLmggLSAzNjA7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5oID49IHRoaXMuY3VycmVudEh1ZU1pbiAmJlxuICAgICAgICAgICAgICAgIGhzbENvbG9yLmggPD0gdGhpcy5jdXJyZW50SHVlTWF4XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRIdWUgPSBoc2xDb2xvci5oO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50U2F0dXJhdGlvbiA9XG4gICAgICAgICAgICBoc2xDb2xvci5zID49IHRoaXMuY3VycmVudFNhdHVyYXRpb25NaW4gJiZcbiAgICAgICAgICAgICAgICBoc2xDb2xvci5zIDw9IHRoaXMuY3VycmVudFNhdHVyYXRpb25NYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLnNcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudFNhdHVyYXRpb247XG5cbiAgICAgICAgdGhpcy5jdXJyZW50TGlnaHRuZXNzID1cbiAgICAgICAgICAgIGhzbENvbG9yLmwgPj0gdGhpcy5jdXJyZW50TGlnaHRuZXNzTWluICYmXG4gICAgICAgICAgICAgICAgaHNsQ29sb3IubCA8PSB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXhcbiAgICAgICAgICAgICAgICA/IGhzbENvbG9yLmxcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudExpZ2h0bmVzcztcblxuICAgICAgICAvLyBXcml0ZSB0aGUgdmFsdWUgKGlmIGh1ZSBpcyBjaGFuZ2VkIHRvIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjaXJjbGUgcmV0dXJuIGl0IGJhY2spLlxuICAgICAgICBjb25zdCBoc2wgPSB7XG4gICAgICAgICAgICBoOiB0aGlzLmN1cnJlbnRIdWUsXG4gICAgICAgICAgICBzOiB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uLFxuICAgICAgICAgICAgbDogdGhpcy5jdXJyZW50TGlnaHRuZXNzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB0aGlzLmNvbG9yU2VydmljZS5jb252ZXJ0SHNsVG9TdHJpbmdIc2woaHNsKTtcblxuICAgICAgICAvLyBDaGVjayB0aGUgY29udHJhc3QgcmF0aW8gLSBzZXQgdGhlIGNsb3Nlc3QgYWNjZXNzaWJsZSBjb2xvciB0byBjb21wbGllbnRDb2xvclxuICAgICAgICAvLyBhbmQgdXBkYXRlIGlzVXNlckNob29zZUFBQ29tcGxpZW50Q29sb3IuXG4gICAgICAgIGNvbnN0IGFkanVzdGFibGVDb2xvciA9IHRoaXMuY29sb3JTZXJ2aWNlLmhzbDJoZXgoaHNsKTtcbiAgICAgICAgY29uc3QgY2xvc2VzdEhleCA9IHRoaXMuY29sb3JTZXJ2aWNlLmZpbmRDbG9zZXN0QWNjZXNzaWJsZUNvbG9yKFxuICAgICAgICAgICAgYWRqdXN0YWJsZUNvbG9yLFxuICAgICAgICAgICAgdGhpcy5kYXRhLnRleHRDb2xvcixcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jb250cmFzdFJhdGlvXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pc1VzZXJDaG9vc2VBQUNvbXBsaWVudENvbG9yID0gYWRqdXN0YWJsZUNvbG9yID09PSBjbG9zZXN0SGV4O1xuICAgICAgICB0aGlzLmNvbXBsaWVudENvbG9yID0gdGhpcy5jb2xvclNlcnZpY2UuY29udmVydEhzbFRvU3RyaW5nSHNsKFxuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuaGV4MmhzbChjbG9zZXN0SGV4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSHVlQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IGg6IHZhbHVlIH0pO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRIdWVJbkNzcygpO1xuICAgIH1cblxuICAgIG9uU2F0dXJhdGlvbkNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLmN1cnJlbnRTYXR1cmF0aW9uID0gZXZlbnQudmFsdWU7XG4gICAgICAgIHRoaXMuY29udmVydENvbG9yVG9WYWx1ZVN0cmluZyh7IHM6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIG9uTGlnaHRuZXNzQ2hhbmdlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuY3VycmVudExpZ2h0bmVzcyA9IGV2ZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmNvbnZlcnRDb2xvclRvVmFsdWVTdHJpbmcoe1xuICAgICAgICAgICAgbDpcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNYXggLVxuICAgICAgICAgICAgICAgIHZhbHVlICtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaWdodG5lc3NNaW4sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29sb3JWYWx1ZUNoYW5nZShldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnZlcnRWYWx1ZVN0cmluZ1RvQ29sb3IoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIG9uU2F2ZShldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuY2hlY2tBQUNvbXBsaWVudFxuICAgICAgICAgICAgPyB0aGlzLmNvbXBsaWVudENvbG9yXG4gICAgICAgICAgICA6IHRoaXMuZGF0YS52YWx1ZTtcblxuICAgICAgICAvLyB0aGlzLm5vdGlmeS5lbWl0KHsga2V5OiB0aGlzLmtleSwgdmFsdWU6IGNvbG9yIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShjb2xvcik7XG4gICAgfVxufVxuIl19
@@ -15,12 +15,16 @@ export class PepColorComponent {
15
15
  this.rowSpan = 1;
16
16
  this.type = 'any';
17
17
  this.showTitle = true;
18
+ this.renderTitle = true;
18
19
  this.showAAComplient = true;
19
20
  this.layoutType = 'form';
20
21
  this.valueChange = new EventEmitter();
21
22
  }
22
23
  ngOnInit() {
23
24
  this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
25
+ if (!this.renderTitle) {
26
+ this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME);
27
+ }
24
28
  }
25
29
  ngOnDestroy() {
26
30
  //
@@ -45,8 +49,8 @@ export class PepColorComponent {
45
49
  PepColorComponent.decorators = [
46
50
  { type: Component, args: [{
47
51
  selector: 'pep-color',
48
- template: "<pep-field-title [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>",
49
- styles: [":host{display:grid}.pep-color-container .pep-color,.pep-color-container .pepperi-color,.pepperi-color-container .pep-color,.pepperi-color-container .pepperi-color{padding:0;display:grid}.pep-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pepperi-color-container .pepperi-color .btn-edit{width:calc(2.5rem - 1rem);width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 .75rem;margin:0 var(--pep-spacing-md,.75rem);justify-self:end;align-self:center}.pep-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pepperi-color-container.right-alignment .pepperi-color .btn-edit{justify-self:start}"]
52
+ template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>",
53
+ styles: [":host{display:grid}.pep-color-container .pep-color,.pep-color-container .pepperi-color,.pepperi-color-container .pep-color,.pepperi-color-container .pepperi-color{padding:0;display:grid}.pep-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pepperi-color-container .pepperi-color .btn-edit{width:calc(2.5rem - 1rem);width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 .75rem;margin:0 var(--pep-spacing-md,.75rem);justify-self:end;align-self:center}.pep-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pepperi-color-container.right-alignment .pepperi-color .btn-edit{justify-self:start}", ""]
50
54
  },] }
51
55
  ];
52
56
  PepColorComponent.ctorParameters = () => [
@@ -63,8 +67,9 @@ PepColorComponent.propDecorators = {
63
67
  rowSpan: [{ type: Input }],
64
68
  type: [{ type: Input }],
65
69
  showTitle: [{ type: Input }],
70
+ renderTitle: [{ type: Input }],
66
71
  showAAComplient: [{ type: Input }],
67
72
  layoutType: [{ type: Input }],
68
73
  valueChange: [{ type: Output }]
69
74
  };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jb2xvci9jb2xvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFHdkIsNEJBQTRCLEdBQy9CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbkUsTUFBTSxPQUFPLGlCQUFpQjtJQWdCMUIsWUFDWSxhQUErQixFQUMvQixRQUFtQixFQUNuQixPQUFtQjtRQUZuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbEJ0QixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBMkIsNEJBQTRCLENBQUM7UUFDbEUsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFNBQUksR0FBaUIsS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFrQixNQUFNLENBQUM7UUFHNUMsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQU01RCxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUIsdUJBQXVCLENBQUMsNEJBQTRCLENBQ3ZELENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLEVBQUU7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDM0MsdUJBQXVCLEVBQ3ZCO1lBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN4QyxDQUNKLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQTFESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLDAxQkFBcUM7O2FBRXhDOzs7WUFSUSxnQkFBZ0I7WUFackIsU0FBUztZQUNULFVBQVU7OztrQkFxQlQsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7bUJBQ0wsS0FBSzt3QkFFTCxLQUFLOzhCQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBQZXBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZGlhbG9nJztcbmltcG9ydCB7IFBlcENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3IubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1jb2xvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2xvci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBDb2xvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDtcbiAgICBASW5wdXQoKSByb3dTcGFuID0gMTtcbiAgICBASW5wdXQoKSB0eXBlOiBQZXBDb2xvclR5cGUgPSAnYW55JztcblxuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0FBQ29tcGxpZW50ID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBQZXBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2hvb3NlQ29sb3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgICAgIHNob3dBQUNvbXBsaWVudDogdGhpcy5zaG93QUFDb21wbGllbnQsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNvbG9yKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jb2xvci9jb2xvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFHdkIsNEJBQTRCLEdBQy9CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbkUsTUFBTSxPQUFPLGlCQUFpQjtJQWtCMUIsWUFDWSxhQUErQixFQUMvQixRQUFtQixFQUNuQixPQUFtQjtRQUZuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBcEJ0QixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBMkIsNEJBQTRCLENBQUM7UUFDbEUsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFNBQUksR0FBaUIsS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFrQixNQUFNLENBQUM7UUFHNUMsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQU0zRCxDQUFDO0lBRUwsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUIsdUJBQXVCLENBQUMsNEJBQTRCLENBQ3ZELENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLHVCQUF1QixDQUFDLHVDQUF1QyxDQUNsRSxDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLEVBQUU7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDM0MsdUJBQXVCLEVBQ3ZCO1lBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN4QyxDQUNKLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQW5FSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLHEzQkFBcUM7O2FBRXhDOzs7WUFSUSxnQkFBZ0I7WUFackIsU0FBUztZQUNULFVBQVU7OztrQkFxQlQsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7bUJBQ0wsS0FBSzt3QkFFTCxLQUFLOzBCQUNMLEtBQUs7OEJBRUwsS0FBSzt5QkFDTCxLQUFLOzBCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwQ29sb3JUeXBlIH0gZnJvbSAnLi9jb2xvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWNvbG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbG9yLmNvbXBvbmVudC5zY3NzJywgJy4vY29sb3IuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQ29sb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkga2V5ID0gJyc7XG4gICAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgQElucHV0KCkgcm93U3BhbiA9IDE7XG4gICAgQElucHV0KCkgdHlwZTogUGVwQ29sb3JUeXBlID0gJ2FueSc7XG5cbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHNob3dBQUNvbXBsaWVudCA9IHRydWU7XG4gICAgQElucHV0KCkgbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogUGVwRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLlNUQU5EX0FMT05FX0ZJRUxEX0NMQVNTX05BTUVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2hvb3NlQ29sb3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgUGVwQ29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgICAgIHNob3dBQUNvbXBsaWVudDogdGhpcy5zaG93QUFDb21wbGllbnQsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNvbG9yKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -64,10 +64,10 @@ export class PepAddonService {
64
64
  this.loaderService.hide();
65
65
  });
66
66
  }
67
- getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
67
+ getNgxLibTranslationResource(subAddonUUID = '') {
68
68
  const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
69
- const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
70
- const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
69
+ const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder);
70
+ const translationsSuffix = this.fileService.getAssetsTranslationsSuffix();
71
71
  return {
72
72
  prefix: translationsPath,
73
73
  suffix: translationsSuffix,
@@ -84,7 +84,6 @@ export class PepAddonService {
84
84
  setDefaultTranslateLang(translate, urlLangParam = 'userLang') {
85
85
  this.translateService.setDefaultTranslateLang(translate, urlLangParam);
86
86
  }
87
- // Deprecated need to delete in next major.
88
87
  static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
89
88
  const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
90
89
  const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
@@ -93,20 +92,6 @@ export class PepAddonService {
93
92
  addonTranslationResource
94
93
  ]);
95
94
  }
96
- static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
97
- const ngxLibTranslationResources = [];
98
- if ((libsName === null || libsName === void 0 ? void 0 : libsName.length) > 0) {
99
- for (let index = 0; index < libsName.length; index++) {
100
- const libName = libsName[index];
101
- ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
102
- }
103
- }
104
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
105
- return addonService.translateService.createMultiTranslateLoader([
106
- ...ngxLibTranslationResources,
107
- addonTranslationResource
108
- ]);
109
- }
110
95
  }
111
96
  PepAddonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepAddonService_Factory() { return new PepAddonService(i0.ɵɵinject(i1.PepSessionService), i0.ɵɵinject(i2.PepHttpService), i0.ɵɵinject(i3.PepLoaderService), i0.ɵɵinject(i4.PepTranslateService), i0.ɵɵinject(i5.PepFileService)); }, token: PepAddonService, providedIn: "root" });
112
97
  PepAddonService.decorators = [
@@ -121,4 +106,4 @@ PepAddonService.ctorParameters = () => [
121
106
  { type: PepTranslateService },
122
107
  { type: PepFileService }
123
108
  ];
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBS3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRTFEOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFNeEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkI7UUFKMUIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFWckIsMEJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFTckYsRUFBRTtJQUNOLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUFnQjtRQUM3QyxPQUFPLE9BQU87WUFDVixDQUFDLENBQUMsSUFBSSxDQUFD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QUFFO1FBRWpCLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUN0QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7UUFFRCxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQztZQUM1RCxHQUFHLDBCQUEwQjtZQUM3Qix3QkFBd0I7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQWxKSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQWZRLGlCQUFpQjtZQUVqQixjQUFjO1lBQ2QsZ0JBQWdCO1lBS2hCLG1CQUFtQjtZQVBuQixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGVwU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXBGaWxlU2VydmljZSB9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElUcmFuc2xhdGlvblJlc291cmNlIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tdWx0aS1odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBQZXBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5cbi8qXG4gICAgVGhpcyBzZXJ2aWNlIGlzIHRoZSB3ZWJhcHAgYXBpIGZvciBhZGRvbiB1c2VnZS5cbiovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBBZGRvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uQXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25zRGljdGlvbmFyeUFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX1JFTEFUSVZFX1BBVEggPSAnL2FkZG9ucy9hcGknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX0FTWU5DX1JFTEFUSVZFX1BBVEggPSBgJHt0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIfS9hc3luY2A7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmM6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNBc3luY1xuICAgICAgICAgICAgPyB0aGlzLkFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIXG4gICAgICAgICAgICA6IHRoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEg7XG4gICAgfVxuXG4gICAgZ2V0QWRkb25TdGF0aWNGb2xkZXIoc3ViQWRkb25VVUlEID0gJycpOiBzdHJpbmcge1xuICAgICAgICBpZiAoc3ViQWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSk7XG4gICAgICAgICAgICByZXR1cm4gYWRkb25zRGljdGlvbmFyeSAmJiBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gPyBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gOiAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSkgfHwgJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBZGRvblN0YXRpY0ZvbGRlcihwYXRoOiBzdHJpbmcsIHN1YkFkZG9uVVVJRCA9ICcnKTogdm9pZCB7XG4gICAgICAgIGlmIChzdWJBZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKSA/PyB7fTtcbiAgICAgICAgICAgIGFkZG9uc0RpY3Rpb25hcnlbc3ViQWRkb25VVUlEXSA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSwgYWRkb25zRGljdGlvbmFyeSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVksIHBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldFBhcGlBcGlDYWxsKFxuICAgICAgICAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgICAgICAgICAgaXNBc3luY1xuICAgICAgICAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgICAgICBodHRwT3B0aW9uc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHBvc3RBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgYm9keSA9IHt9LFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0UGFwaUFwaUNhbGwoXG4gICAgICAgICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgICAgICAgICBpc0FzeW5jXG4gICAgICAgICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICBodHRwT3B0aW9uc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlayB0aGlzIGlmIHRoZSBsb2FkZXIgaXMgd29ya2luZy5cbiAgICBmZXRjaChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnNob3coKTtcblxuICAgICAgICByZXR1cm4gd2luZG93LmZldGNoKGlucHV0LCBpbml0KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5oaWRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEID0gJycsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihzdWJBZGRvblVVSUQpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNQYXRoOiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYWRkb25TdGF0aWNGb2xkZXIsIGxpYk5hbWUpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNTdWZmaXg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KGxpYk5hbWUpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IHRyYW5zbGF0aW9uc1BhdGgsXG4gICAgICAgICAgICBzdWZmaXg6IHRyYW5zbGF0aW9uc1N1ZmZpeCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEID0gJycpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihzdWJBZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ViRm9sZGVyID0gJ2Fzc2V0cy9pMThuLyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogYWRkb25TdGF0aWNGb2xkZXIubGVuZ3RoID4gMCA/IGAke2FkZG9uU3RhdGljRm9sZGVyfSR7ZGVmYXVsdFN1YkZvbGRlcn1gIDogYC8ke2RlZmF1bHRTdWJGb2xkZXJ9YCxcbiAgICAgICAgICAgIHN1ZmZpeDogJy5qc29uJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHVybExhbmdQYXJhbSA9ICd1c2VyTGFuZycpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZSwgdXJsTGFuZ1BhcmFtKTtcbiAgICB9XG5cbiAgICAvLyBEZXByZWNhdGVkIG5lZWQgdG8gZGVsZXRlIGluIG5leHQgbWFqb3IuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVEZWZhdWx0TXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgYWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIHN1YkFkZG9uVVVJRCA9ICcnXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UsXG4gICAgICAgICAgICBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2VcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihcbiAgICAgICAgYWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIGxpYnNOYW1lID0gWyduZ3gtbGliJ10sXG4gICAgICAgIHN1YkFkZG9uVVVJRCA9ICcnXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzID0gW107XG5cbiAgICAgICAgaWYgKGxpYnNOYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlic05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGliTmFtZSA9IGxpYnNOYW1lW2luZGV4XTtcbiAgICAgICAgICAgICAgICBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcy5wdXNoKGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCwgbGliTmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWRkb25UcmFuc2xhdGlvblJlc291cmNlID0gYWRkb25TZXJ2aWNlLmdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQpO1xuXG4gICAgICAgIHJldHVybiBhZGRvblNlcnZpY2UudHJhbnNsYXRlU2VydmljZS5jcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihbXG4gICAgICAgICAgICAuLi5uZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcyxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBS3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRTFEOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFNeEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkI7UUFKMUIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFWckIsMEJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFTckYsRUFBRTtJQUNOLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUFnQjtRQUM3QyxPQUFPLE9BQU87WUFDVixDQUFDLENBQUMsSUFBSSxDQUFD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IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJVHJhbnNsYXRpb25SZXNvdXJjZSB9IGZyb20gJ25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgUGVwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuXG4vKlxuICAgIFRoaXMgc2VydmljZSBpcyB0aGUgd2ViYXBwIGFwaSBmb3IgYWRkb24gdXNlZ2UuXG4qL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQWRkb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbkFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uc0RpY3Rpb25hcnlBc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9SRUxBVElWRV9QQVRIID0gJy9hZGRvbnMvYXBpJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIID0gYCR7dGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSH0vYXN5bmNgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogUGVwVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGlzQXN5bmNcbiAgICAgICAgICAgID8gdGhpcy5BRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSFxuICAgICAgICAgICAgOiB0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIO1xuICAgIH1cblxuICAgIGdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN1YkFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpO1xuICAgICAgICAgICAgcmV0dXJuIGFkZG9uc0RpY3Rpb25hcnkgJiYgYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdID8gYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVkpIHx8ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0QWRkb25TdGF0aWNGb2xkZXIocGF0aDogc3RyaW5nLCBzdWJBZGRvblVVSUQgPSAnJyk6IHZvaWQge1xuICAgICAgICBpZiAoc3ViQWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSkgPz8ge307XG4gICAgICAgICAgICBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gPSBwYXRoO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVksIGFkZG9uc0RpY3Rpb25hcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZLCBwYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRQYXBpQXBpQ2FsbChcbiAgICAgICAgICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwb3N0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGJvZHkgPSB7fSxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgICAgICAgICAgaXNBc3luY1xuICAgICAgICAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBuZWVkIHRvIGNoZWsgdGhpcyBpZiB0aGUgbG9hZGVyIGlzIHdvcmtpbmcuXG4gICAgZmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0PzogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zaG93KCk7XG5cbiAgICAgICAgcmV0dXJuIHdpbmRvdy5mZXRjaChpbnB1dCwgaW5pdCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2UuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCA9ICcnKTogSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xuICAgICAgICBjb25zdCBhZGRvblN0YXRpY0ZvbGRlciA9IHRoaXMuZ2V0QWRkb25TdGF0aWNGb2xkZXIoc3ViQWRkb25VVUlEKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zUGF0aDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNQYXRoKGFkZG9uU3RhdGljRm9sZGVyKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zU3VmZml4OiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1N1ZmZpeCgpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IHRyYW5zbGF0aW9uc1BhdGgsXG4gICAgICAgICAgICBzdWZmaXg6IHRyYW5zbGF0aW9uc1N1ZmZpeCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEID0gJycpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihzdWJBZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ViRm9sZGVyID0gJ2Fzc2V0cy9pMThuLyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogYWRkb25TdGF0aWNGb2xkZXIubGVuZ3RoID4gMCA/IGAke2FkZG9uU3RhdGljRm9sZGVyfSR7ZGVmYXVsdFN1YkZvbGRlcn1gIDogYC8ke2RlZmF1bHRTdWJGb2xkZXJ9YCxcbiAgICAgICAgICAgIHN1ZmZpeDogJy5qc29uJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHVybExhbmdQYXJhbSA9ICd1c2VyTGFuZycpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZSwgdXJsTGFuZ1BhcmFtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZURlZmF1bHRNdWx0aVRyYW5zbGF0ZUxvYWRlcihcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgc3ViQWRkb25VVUlEID0gJydcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEKTtcblxuICAgICAgICByZXR1cm4gYWRkb25TZXJ2aWNlLnRyYW5zbGF0ZVNlcnZpY2UuY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoW1xuICAgICAgICAgICAgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
@@ -183,18 +183,18 @@ export class PepFileService {
183
183
  const blob = new Blob(byteArrays, { type: contentType });
184
184
  return blob;
185
185
  }
186
- getAssetsPath(assetsDomain = '', libName = 'ngx-lib') {
186
+ getAssetsPath(assetsDomain = '') {
187
187
  const concatChar = assetsDomain === '' || assetsDomain.endsWith('/') ? '' : '/';
188
- return `${assetsDomain}${concatChar}assets/${libName}/`;
188
+ return `${assetsDomain}${concatChar}assets/ngx-lib/`;
189
189
  }
190
- getAssetsTranslationsSuffix(libName = 'ngx-lib') {
191
- return `.${libName}.json`;
190
+ getAssetsTranslationsSuffix() {
191
+ return '.ngx-lib.json';
192
192
  }
193
- getAssetsTranslationsPath(assetsDomain = '', libName = 'ngx-lib') {
194
- return `${this.getAssetsPath(assetsDomain, libName)}i18n/`;
193
+ getAssetsTranslationsPath(assetsDomain = '') {
194
+ return `${this.getAssetsPath(assetsDomain)}i18n/`;
195
195
  }
196
- getAssetsImagesPath(assetsDomain = '', image = '', libName = 'ngx-lib') {
197
- return `${this.getAssetsPath(assetsDomain, libName)}images/${image}`;
196
+ getAssetsImagesPath(assetsDomain = '', image = '') {
197
+ return `${this.getAssetsPath(assetsDomain)}images/${image}`;
198
198
  }
199
199
  getSvgAsImageSrc(svg) {
200
200
  const blob = new Blob([svg], { type: 'image/svg+xml' });
@@ -209,4 +209,4 @@ PepFileService.decorators = [
209
209
  },] }
210
210
  ];
211
211
  PepFileService.ctorParameters = () => [];
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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LEdBQUcsVUFBVSxVQUFVLE9BQU8sR0FBRyxDQUFDO0lBQzVELENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUFPLEdBQUcsU0FBUztRQUMzQyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QixDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLFNBQVM7UUFDNUQsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDL0QsQ0FBQztJQUVELG1CQUFtQixDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsU0FBUztRQUNsRSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVc7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzs7O1lBelBKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGVwRmlsZVR5cGUgPSAnc2NyaXB0JyB8ICdzdHlsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEV4dGVybmFsRmlsZU1vZGVsIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgdHlwZTogUGVwRmlsZVR5cGU7XG59XG5cbmRlY2xhcmUgbGV0IGRvY3VtZW50OiBhbnk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEZpbGVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHNjcmlwdHM6IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHN0eWxlczogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2NyaXB0cyA9IG5ldyBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT4oKTtcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+KCk7XG4gICAgfVxuXG4gICAgbG9hZEZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IGFueVtdID0gW107XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT09ICdzdHlsZScpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9hZFN0eWxlKGZpbGUucGF0aCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRTY3JpcHQoZmlsZS5wYXRoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgIGluZGV4IDwgZmlsZXMubGVuZ3RoICYmXG4gICAgICAgICAgICBmaWxlc1tpbmRleF0ucGF0aCAmJlxuICAgICAgICAgICAgZmlsZXNbaW5kZXhdLnBhdGgudHJpbSgpICE9PSAnJztcbiAgICAgICAgICAgIGluZGV4KytcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRGaWxlTmFtZShmaWxlc1tpbmRleF0ucGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChmaWxlc1tpbmRleF0udHlwZSA9PT0gJ3NjcmlwdCcgJiYgdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5kZWxldGUobmFtZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzW2luZGV4XS50eXBlID09PSAnc3R5bGUnICYmIHRoaXMuc3R5bGVzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRTY3JpcHQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGlzbid0IGV4aXN0IGFkZCBpdC5cbiAgICAgICAgICAgIGlmICghdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdEl0ZW0gPSB0aGlzLnNjcmlwdHMuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgICAgICAgICBpZiAoc2NyaXB0SXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0OiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzY3JpcHRcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzY3JpcHRJdGVtLnNyYztcbiAgICAgICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdpZCcsIG5hbWUpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElFXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcnNcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkU3R5bGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc3R5bGUgaXNuJ3QgZXhpc3QgYWRkIGl0LlxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0eWxlcy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlcy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN0eWxlSXRlbSA9IHRoaXMuc3R5bGVzLmdldChuYW1lKTtcblxuICAgICAgICAgICAgLy8gUmVzb2x2ZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgICAgaWYgKHN0eWxlSXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdBbHJlYWR5IExvYWRlZCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExvYWQgc3R5bGVcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICAgICAgc3R5bGUuaHJlZiA9IHN0eWxlSXRlbS5zcmM7XG4gICAgICAgICAgICAgICAgc3R5bGUubWVkaWEgPSAnYWxsJztcbiAgICAgICAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XG5cbiAgICAgICAgICAgICAgICBzdHlsZUl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRGb250U3R5bGUoc3R5bGVJZDogc3RyaW5nLCBocmVmOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICBzdHlsZUlkXG4gICAgICAgICkgYXMgSFRNTExpbmtFbGVtZW50O1xuXG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudC5ocmVmID0gaHJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgc3R5bGUuaWQgPSBzdHlsZUlkO1xuICAgICAgICAgICAgc3R5bGUucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgICAgc3R5bGUuaHJlZiA9IGAke2hyZWZ9YDtcblxuICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaWxlTmFtZShmaWxlUGF0aDogc3RyaW5nLCB3aXRoRXh0ZW5zdGlvbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gd2l0aEV4dGVuc3Rpb25cbiAgICAgICAgICAgID8gZmlsZVBhdGgubGVuZ3RoIC0gMVxuICAgICAgICAgICAgOiBmaWxlUGF0aC5sYXN0SW5kZXhPZignLicpO1xuXG4gICAgICAgIHJldHVybiBmaWxlUGF0aC5zdWJzdHIoZmlsZVBhdGgubGFzdEluZGV4T2YoJy8nKSArIDEsIGxhc3RJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsZVNwbGl0ID0gZmlsZVBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgbGV0IGZpbGVFeHQgPSAnJztcbiAgICAgICAgaWYgKGZpbGVTcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBmaWxlRXh0ID0gZmlsZVNwbGl0W2ZpbGVTcGxpdC5sZW5ndGggLSAyXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZUV4dDtcbiAgICB9XG5cbiAgICAvKiBSZXR1cm5zIHRydWUgaWYgdXJsIGlzIHZhbGlkICovXG4gICAgaXNWYWxpZFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAvKiBUcnkgY3JlYXRpbmcgYSB2YWxpZCBVUkwgKi9cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb252ZXJ0RnJvbWI2NHRvQmxvYihcbiAgICAgICAgYjY0RGF0YTogYW55LFxuICAgICAgICBjb250ZW50VHlwZSA9ICcnLFxuICAgICAgICBzbGljZVNpemUgPSA1MTJcbiAgICApOiBCbG9iIHtcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gW107XG5cbiAgICAgICAgZm9yIChcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgb2Zmc2V0IDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHNsaWNlU2l6ZVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gYnl0ZUNoYXJhY3RlcnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzbGljZVNpemUpO1xuXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4gPSAnJywgbGliTmFtZSA9ICduZ3gtbGliJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbmNhdENoYXIgPVxuICAgICAgICAgICAgYXNzZXRzRG9tYWluID09PSAnJyB8fCBhc3NldHNEb21haW4uZW5kc1dpdGgoJy8nKSA/ICcnIDogJy8nO1xuICAgICAgICByZXR1cm4gYCR7YXNzZXRzRG9tYWlufSR7Y29uY2F0Q2hhcn1hc3NldHMvJHtsaWJOYW1lfS9gO1xuICAgIH1cblxuICAgIGdldEFzc2V0c1RyYW5zbGF0aW9uc1N1ZmZpeChsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAuJHtsaWJOYW1lfS5qc29uYDtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNUcmFuc2xhdGlvbnNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4sIGxpYk5hbWUpfWkxOG4vYDtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNJbWFnZXNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnLCBpbWFnZSA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4sIGxpYk5hbWUpfWltYWdlcy8ke2ltYWdlfWA7XG4gICAgfVxuXG4gICAgZ2V0U3ZnQXNJbWFnZVNyYyhzdmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbc3ZnXSwgeyB0eXBlOiAnaW1hZ2Uvc3ZnK3htbCcgfSk7XG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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QUM7SUFDekQsQ0FBQztJQUVELDJCQUEyQjtRQUN2QixPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQseUJBQXlCLENBQUMsWUFBWSxHQUFHLEVBQUU7UUFDdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Ozs7WUF6UEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZXBGaWxlVHlwZSA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRXh0ZXJuYWxGaWxlTW9kZWwge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiBQZXBGaWxlVHlwZTtcbn1cblxuZGVjbGFyZSBsZXQgZG9jdW1lbnQ6IGFueTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwRmlsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgc2NyaXB0czogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xuICAgIHByaXZhdGUgc3R5bGVzOiBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zY3JpcHRzID0gbmV3IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PigpO1xuICAgICAgICB0aGlzLnN0eWxlcyA9IG5ldyBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT4oKTtcbiAgICB9XG5cbiAgICBsb2FkRmlsZXMoZmlsZXM6IElQZXBFeHRlcm5hbEZpbGVNb2RlbFtdKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgICAgICBjb25zdCBwcm9taXNlczogYW55W10gPSBbXTtcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUudHlwZSA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5sb2FkU3R5bGUoZmlsZS5wYXRoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGUudHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9hZFNjcmlwdChmaWxlLnBhdGgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRmlsZXMoZmlsZXM6IElQZXBFeHRlcm5hbEZpbGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgaW5kZXggPCBmaWxlcy5sZW5ndGggJiZcbiAgICAgICAgICAgIGZpbGVzW2luZGV4XS5wYXRoICYmXG4gICAgICAgICAgICBmaWxlc1tpbmRleF0ucGF0aC50cmltKCkgIT09ICcnO1xuICAgICAgICAgICAgaW5kZXgrK1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKGZpbGVzW2luZGV4XS5wYXRoLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTtcbiAgICAgICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKGZpbGVzW2luZGV4XS50eXBlID09PSAnc2NyaXB0JyAmJiB0aGlzLnNjcmlwdHMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JpcHRzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZXNbaW5kZXhdLnR5cGUgPT09ICdzdHlsZScgJiYgdGhpcy5zdHlsZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZXMuZGVsZXRlKG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZFNjcmlwdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUocGF0aCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzY3JpcHQgaXNuJ3QgZXhpc3QgYWRkIGl0LlxuICAgICAgICAgICAgaWYgKCF0aGlzLnNjcmlwdHMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JpcHRzLnNldChuYW1lLCB7IGxvYWRlZDogZmFsc2UsIHNyYzogcGF0aCB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0SXRlbSA9IHRoaXMuc2NyaXB0cy5nZXQobmFtZSk7XG5cbiAgICAgICAgICAgIC8vIFJlc29sdmUgaWYgYWxyZWFkeSBsb2FkZWRcbiAgICAgICAgICAgIGlmIChzY3JpcHRJdGVtLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHQ6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnQWxyZWFkeSBMb2FkZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMb2FkIHNjcmlwdFxuICAgICAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHNjcmlwdEl0ZW0uc3JjO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XG4gICAgICAgICAgICAgICAgc2NyaXB0LmFzeW5jID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSUVcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRlZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0SXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyc1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0SXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnJvcjogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRTdHlsZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUocGF0aCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzdHlsZSBpc24ndCBleGlzdCBhZGQgaXQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLnNldChuYW1lLCB7IGxvYWRlZDogZmFsc2UsIHNyYzogcGF0aCB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc3R5bGVJdGVtID0gdGhpcy5zdHlsZXMuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgICAgICAgICBpZiAoc3R5bGVJdGVtLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzdHlsZVxuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgICAgICAgICBzdHlsZS5ocmVmID0gc3R5bGVJdGVtLnNyYztcbiAgICAgICAgICAgICAgICBzdHlsZS5tZWRpYSA9ICdhbGwnO1xuICAgICAgICAgICAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnaWQnLCBuYW1lKTtcblxuICAgICAgICAgICAgICAgIHN0eWxlSXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbG9hZEZvbnRTdHlsZShzdHlsZUlkOiBzdHJpbmcsIGhyZWY6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcblxuICAgICAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgIHN0eWxlSWRcbiAgICAgICAgKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgICAgICAgICAgc3R5bGVFbGVtZW50LmhyZWYgPSBocmVmO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBzdHlsZS5pZCA9IHN0eWxlSWQ7XG4gICAgICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICBzdHlsZS5ocmVmID0gYCR7aHJlZn1gO1xuXG4gICAgICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEZpbGVOYW1lKGZpbGVQYXRoOiBzdHJpbmcsIHdpdGhFeHRlbnN0aW9uID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB3aXRoRXh0ZW5zdGlvblxuICAgICAgICAgICAgPyBmaWxlUGF0aC5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IGZpbGVQYXRoLmxhc3RJbmRleE9mKCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVQYXRoLnN1YnN0cihmaWxlUGF0aC5sYXN0SW5kZXhPZignLycpICsgMSwgbGFzdEluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlU3BsaXQgPSBmaWxlUGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBsZXQgZmlsZUV4dCA9ICcnO1xuICAgICAgICBpZiAoZmlsZVNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGZpbGVFeHQgPSBmaWxlU3BsaXRbZmlsZVNwbGl0Lmxlbmd0aCAtIDJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxlRXh0O1xuICAgIH1cblxuICAgIC8qIFJldHVybnMgdHJ1ZSBpZiB1cmwgaXMgdmFsaWQgKi9cbiAgICBpc1ZhbGlkVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8qIFRyeSBjcmVhdGluZyBhIHZhbGlkIFVSTCAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnZlcnRGcm9tYjY0dG9CbG9iKFxuICAgICAgICBiNjREYXRhOiBhbnksXG4gICAgICAgIGNvbnRlbnRUeXBlID0gJycsXG4gICAgICAgIHNsaWNlU2l6ZSA9IDUxMlxuICAgICk6IEJsb2Ige1xuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcblxuICAgICAgICBmb3IgKFxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgICAgICBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICAgICAgICBvZmZzZXQgKz0gc2xpY2VTaXplXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBzbGljZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xuICAgICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29uY2F0Q2hhciA9XG4gICAgICAgICAgICBhc3NldHNEb21haW4gPT09ICcnIHx8IGFzc2V0c0RvbWFpbi5lbmRzV2l0aCgnLycpID8gJycgOiAnLyc7XG4gICAgICAgIHJldHVybiBgJHthc3NldHNEb21haW59JHtjb25jYXRDaGFyfWFzc2V0cy9uZ3gtbGliL2A7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnLm5neC1saWIuanNvbic7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhc3NldHNEb21haW4gPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluKX1pMThuL2A7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzSW1hZ2VzUGF0aChhc3NldHNEb21haW4gPSAnJywgaW1hZ2UgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluKX1pbWFnZXMvJHtpbWFnZX1gO1xuICAgIH1cblxuICAgIGdldFN2Z0FzSW1hZ2VTcmMoc3ZnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3N2Z10sIHsgdHlwZTogJ2ltYWdlL3N2Zyt4bWwnIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH1cbn1cbiJdfQ==
@@ -45,9 +45,6 @@ export class PepUtilitiesService {
45
45
  retVal = new Date(year, month, day, 0, retVal.getTimezoneOffset() * -1);
46
46
  }
47
47
  }
48
- else {
49
- retVal = new Date(retVal.getFullYear(), retVal.getMonth(), retVal.getDay(), retVal.getHours(), retVal.getMinutes() + retVal.getTimezoneOffset() * -1, retVal.getSeconds());
50
- }
51
48
  }
52
49
  if (retVal && isNaN(retVal.getTime())) {
53
50
  retVal = null;
@@ -68,6 +65,30 @@ export class PepUtilitiesService {
68
65
  else {
69
66
  return '';
70
67
  }
68
+ // if (date) {
69
+ // const dateText = [];
70
+ // dateText.push(
71
+ // date.getFullYear(),
72
+ // '-',
73
+ // date.getMonth() + 1,
74
+ // '-',
75
+ // date.getDate()
76
+ // );
77
+ // if (showTime) {
78
+ // dateText.push(
79
+ // 'T',
80
+ // (date.getHours() < 10 ? '0' : '') + date.getHours(),
81
+ // ':',
82
+ // (date.getMinutes() < 10 ? '0' : '') + date.getMinutes(),
83
+ // ':',
84
+ // (date.getSeconds() < 10 ? '0' : '') + date.getSeconds(),
85
+ // 'Z'
86
+ // );
87
+ // }
88
+ // return dateText.join('');
89
+ // } else {
90
+ // return '';
91
+ // }
71
92
  }
72
93
  isValueHtml(value) {
73
94
  let res = false;
@@ -119,4 +140,4 @@ PepUtilitiesService.decorators = [
119
140
  PepUtilitiesService.ctorParameters = () => [
120
141
  { type: TranslateService, decorators: [{ type: Optional }] }
121
142
  ];
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFBZ0MsWUFBOEIsSUFBSTs7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxxQkFBcUIsRUFBRSxLQUFJLE9BQU8sQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZELHFCQUFxQixFQUFFLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUN6RCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDcEMscUVBQXFFO1lBQ3JFLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFD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O1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDekMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUMxQixJQUFJLENBQ1AsQ0FBQztRQUVGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVLEVBQUUsYUFBYSxHQUFHLENBQUM7UUFDOUMsbURBQW1EO1FBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7OztZQTVJSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQUpRLGdCQUFnQix1QkFTUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwVXRpbGl0aWVzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBudW1iZXJGb3JtYXR0ZXI6IEludGwuTnVtYmVyRm9ybWF0O1xuICAgIHByaXZhdGUgY3VsdHVyZSA9ICdlbi1VUyc7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5jdWx0dXJlID0gdGhpcy50cmFuc2xhdGU/LmdldEJyb3dzZXJDdWx0dXJlTGFuZygpIHx8ICdlbi1VUyc7XG4gICAgICAgIHRoaXMubnVtYmVyRm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KHRoaXMuY3VsdHVyZSwge1xuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZURlY2ltYWxTZXBlcmF0b3IodmFsdWU6IHN0cmluZywgcmV2ZXJzZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgLy8gSWYgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIGlzICcsJ1xuICAgICAgICBpZiAodGhpcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkgPT09ICcsJykge1xuICAgICAgICAgICAgLy8gSWYgcmV2ZXJzZSBjaGFuZ2UgdGhlIG51bWJlciBmcm9tICcuJyB0byAnLCcgZWxzZSBkbyB0aGUgb3Bwb3NpdGUuXG4gICAgICAgICAgICB2YWx1ZSA9IHJldmVyc2UgPyB2YWx1ZS5yZXBsYWNlKCcuJywgJywnKSA6IHZhbHVlLnJlcGxhY2UoJywnLCAnLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVjaW1hbFNlcGFyYXRvcigpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyV2l0aERlY2ltYWxTZXBhcmF0b3IgPSAxLjE7XG5cbiAgICAgICAgcmV0dXJuIG51bWJlcldpdGhEZWNpbWFsU2VwYXJhdG9yXG4gICAgICAgICAgICAudG9Mb2NhbGVTdHJpbmcodGhpcy5jdWx0dXJlKVxuICAgICAgICAgICAgLnN1YnN0cmluZygxLCAyKTtcbiAgICB9XG5cbiAgICBwYXJzZURhdGUoZGF0ZVN0cjogc3RyaW5nLCBzaG93VGltZSA9IGZhbHNlKTogRGF0ZSB7XG4gICAgICAgIGxldCByZXRWYWw6IERhdGUgPSBudWxsO1xuICAgICAgICBpZiAoZGF0ZVN0ciAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGRhdGUgd2l0aCBubyBvZmZzZXQuXG4gICAgICAgICAgICBpZiAoIXNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRlU3RyLmluZGV4T2YoJ1QnKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVN0ciA9IGRhdGVTdHIuc3Vic3RyaW5nKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVGV4dCA9IGRhdGVTdHIuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVRleHQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoZGF0ZVRleHRbMF0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IE51bWJlcihkYXRlVGV4dFsxXSkgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVRleHRbMl0pO1xuICAgICAgICAgICAgICAgICAgICByZXRWYWwgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCAwLCByZXRWYWwuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgICAgICByZXRWYWwuZ2V0RnVsbFllYXIoKSwgcmV0VmFsLmdldE1vbnRoKCksIHJldFZhbC5nZXREYXkoKSwgcmV0VmFsLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICAgICAgIHJldFZhbC5nZXRNaW51dGVzKCkgKyByZXRWYWwuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xLCByZXRWYWwuZ2V0U2Vjb25kcygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmV0VmFsICYmIGlzTmFOKHJldFZhbC5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICByZXRWYWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXRWYWw7XG4gICAgfVxuXG4gICAgc3RyaW5naWZ5RGF0ZShkYXRlOiBEYXRlLCBzaG93VGltZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7IC8vIGluY2x1ZGUgLSBvZmZzZXRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVRleHQgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRlVGV4dC5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICctJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgJy0nLFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNWYWx1ZUh0bWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmVzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IFJFR0VYUCA9IC88XFwvP1thLXpdW1xcc1xcU10qPi9pO1xuICAgICAgICByZXMgPSBSRUdFWFAudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBpc0pzb25TdHJpbmcoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldFN2Z0VsZW1lbnRGcm9tU3RyaW5nKGRvY3VtZW50LCBzdmdDb250ZW50OiBzdHJpbmcpOiBTVkdFbGVtZW50IHtcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSBzdmdDb250ZW50O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3BhdGgnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckZvcm1hdHRlci5mb3JtYXQobnVtYmVyKTtcbiAgICB9XG5cbiAgICBpbmNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBudW1iZXJWYWx1ZSA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXG4gICAgICAgICAgICAoKytudW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3TnVtYmVyO1xuICAgIH1cblxuICAgIGRlY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcihcbiAgICAgICAgICAgICgtLW51bWJlclZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XG4gICAgfVxuXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnIGNoYW5nZSBpdCB0byAnLidcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XG4gICAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFBZ0MsWUFBOEIsSUFBSTs7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxxQkFBcUIsRUFBRSxLQUFJLE9BQU8sQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZELHFCQUFxQixFQUFFLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUN6RCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDcEMscUVBQXFFO1lBQ3JFLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFD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LFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUN6QyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQzFCLElBQUksQ0FDUCxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVUsRUFBRSxhQUFhLEdBQUcsQ0FBQztRQUM5QyxtREFBbUQ7UUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O1lBbktKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBSlEsZ0JBQWdCLHVCQVNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBVdGlsaXRpZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG51bWJlckZvcm1hdHRlcjogSW50bC5OdW1iZXJGb3JtYXQ7XG4gICAgcHJpdmF0ZSBjdWx0dXJlID0gJ2VuLVVTJztcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1bHR1cmUgPSB0aGlzLnRyYW5zbGF0ZT8uZ2V0QnJvd3NlckN1bHR1cmVMYW5nKCkgfHwgJ2VuLVVTJztcbiAgICAgICAgdGhpcy5udW1iZXJGb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5jdWx0dXJlLCB7XG4gICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlRGVjaW1hbFNlcGVyYXRvcih2YWx1ZTogc3RyaW5nLCByZXZlcnNlID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnXG4gICAgICAgIGlmICh0aGlzLmdldERlY2ltYWxTZXBhcmF0b3IoKSA9PT0gJywnKSB7XG4gICAgICAgICAgICAvLyBJZiByZXZlcnNlIGNoYW5nZSB0aGUgbnVtYmVyIGZyb20gJy4nIHRvICcsJyBlbHNlIGRvIHRoZSBvcHBvc2l0ZS5cbiAgICAgICAgICAgIHZhbHVlID0gcmV2ZXJzZSA/IHZhbHVlLnJlcGxhY2UoJy4nLCAnLCcpIDogdmFsdWUucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWNpbWFsU2VwYXJhdG9yKCkge1xuICAgICAgICBjb25zdCBudW1iZXJXaXRoRGVjaW1hbFNlcGFyYXRvciA9IDEuMTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyV2l0aERlY2ltYWxTZXBhcmF0b3JcbiAgICAgICAgICAgIC50b0xvY2FsZVN0cmluZyh0aGlzLmN1bHR1cmUpXG4gICAgICAgICAgICAuc3Vic3RyaW5nKDEsIDIpO1xuICAgIH1cblxuICAgIHBhcnNlRGF0ZShkYXRlU3RyOiBzdHJpbmcsIHNob3dUaW1lID0gZmFsc2UpOiBEYXRlIHtcbiAgICAgICAgbGV0IHJldFZhbDogRGF0ZSA9IG51bGw7XG4gICAgICAgIGlmIChkYXRlU3RyICE9PSAnJykge1xuICAgICAgICAgICAgcmV0VmFsID0gbmV3IERhdGUoZGF0ZVN0cik7XG5cbiAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gZGF0ZSB3aXRoIG5vIG9mZnNldC5cbiAgICAgICAgICAgIGlmICghc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGRhdGVTdHIuaW5kZXhPZignVCcpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlU3RyID0gZGF0ZVN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVUZXh0ID0gZGF0ZVN0ci5zcGxpdCgnLScpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRlVGV4dC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeWVhciA9IE51bWJlcihkYXRlVGV4dFswXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gTnVtYmVyKGRhdGVUZXh0WzFdKSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheSA9IE51bWJlcihkYXRlVGV4dFsyXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXksIDAsIHJldFZhbC5nZXRUaW1lem9uZU9mZnNldCgpICogLTEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmV0VmFsICYmIGlzTmFOKHJldFZhbC5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICByZXRWYWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXRWYWw7XG4gICAgfVxuXG4gICAgc3RyaW5naWZ5RGF0ZShkYXRlOiBEYXRlLCBzaG93VGltZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7IC8vIGluY2x1ZGUgLSBvZmZzZXRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVRleHQgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRlVGV4dC5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICctJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgJy0nLFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgKGRhdGUpIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IGRhdGVUZXh0ID0gW107XG4gICAgICAgIC8vICAgICBkYXRlVGV4dC5wdXNoKFxuICAgICAgICAvLyAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgLy8gICAgICAgICAnLScsXG4gICAgICAgIC8vICAgICAgICAgZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgLy8gICAgICAgICAnLScsXG4gICAgICAgIC8vICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgLy8gICAgICk7XG5cbiAgICAgICAgLy8gICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAvLyAgICAgICAgIGRhdGVUZXh0LnB1c2goXG4gICAgICAgIC8vICAgICAgICAgICAgICdUJyxcbiAgICAgICAgLy8gICAgICAgICAgICAgKGRhdGUuZ2V0SG91cnMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAvLyAgICAgICAgICAgICAnOicsXG4gICAgICAgIC8vICAgICAgICAgICAgIChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgIC8vICAgICAgICAgICAgICc6JyxcbiAgICAgICAgLy8gICAgICAgICAgICAgKGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgOiAnJykgKyBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgLy8gICAgICAgICAgICAgJ1onXG4gICAgICAgIC8vICAgICAgICAgKTtcbiAgICAgICAgLy8gICAgIH1cblxuICAgICAgICAvLyAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0dXJuICcnO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgaXNWYWx1ZUh0bWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmVzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IFJFR0VYUCA9IC88XFwvP1thLXpdW1xcc1xcU10qPi9pO1xuICAgICAgICByZXMgPSBSRUdFWFAudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBpc0pzb25TdHJpbmcoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldFN2Z0VsZW1lbnRGcm9tU3RyaW5nKGRvY3VtZW50LCBzdmdDb250ZW50OiBzdHJpbmcpOiBTVkdFbGVtZW50IHtcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSBzdmdDb250ZW50O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3BhdGgnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckZvcm1hdHRlci5mb3JtYXQobnVtYmVyKTtcbiAgICB9XG5cbiAgICBpbmNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBudW1iZXJWYWx1ZSA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXG4gICAgICAgICAgICAoKytudW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3TnVtYmVyO1xuICAgIH1cblxuICAgIGRlY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcihcbiAgICAgICAgICAgICgtLW51bWJlclZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XG4gICAgfVxuXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnIGNoYW5nZSBpdCB0byAnLidcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XG4gICAgfVxufVxuIl19