trm-tmpl 3.4.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/fesm2022/trm-tmpl.mjs +178 -180
  3. package/fesm2022/trm-tmpl.mjs.map +1 -1
  4. package/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.d.ts +2 -2
  5. package/lib/app/pages/components/constructor-form/models/payment-field.d.ts +2 -2
  6. package/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.d.ts +0 -1
  7. package/lib/app/shared/components/trm-select/scrollbar-select-height.directive.d.ts +2 -1
  8. package/package.json +2 -4
  9. package/esm2022/lib/app/checkin/checkin.module.mjs +0 -42
  10. package/esm2022/lib/app/checkin/components/checkin-page/checkin-page.component.mjs +0 -157
  11. package/esm2022/lib/app/checkin/components/index.mjs +0 -2
  12. package/esm2022/lib/app/checkin/index.mjs +0 -4
  13. package/esm2022/lib/app/checkin/services/checkin.datasource.mjs +0 -81
  14. package/esm2022/lib/app/checkin/services/index.mjs +0 -2
  15. package/esm2022/lib/app/helpers/hide-init-loader.mjs +0 -15
  16. package/esm2022/lib/app/helpers/i18n-countries.mjs +0 -56
  17. package/esm2022/lib/app/helpers/index.mjs +0 -9
  18. package/esm2022/lib/app/helpers/insertRemoveTrigger.mjs +0 -11
  19. package/esm2022/lib/app/helpers/is-object-the-same.mjs +0 -26
  20. package/esm2022/lib/app/helpers/key-down-handler.mjs +0 -88
  21. package/esm2022/lib/app/helpers/mask-resolver.mjs +0 -114
  22. package/esm2022/lib/app/helpers/phone-codes.mjs +0 -1250
  23. package/esm2022/lib/app/helpers/warning-console-message.mjs +0 -8
  24. package/esm2022/lib/app/i18n/i18n-key.enum.mjs +0 -86
  25. package/esm2022/lib/app/i18n/index.mjs +0 -3
  26. package/esm2022/lib/app/i18n/keys.mjs +0 -109
  27. package/esm2022/lib/app/intex.mjs +0 -11
  28. package/esm2022/lib/app/models/cde-terminal-sdk.mjs +0 -2
  29. package/esm2022/lib/app/models/constants.mjs +0 -22
  30. package/esm2022/lib/app/models/http-bad-request-response.mjs +0 -2
  31. package/esm2022/lib/app/models/index.mjs +0 -8
  32. package/esm2022/lib/app/models/mode.mjs +0 -6
  33. package/esm2022/lib/app/models/version-service-base-class.mjs +0 -9
  34. package/esm2022/lib/app/models/version-service-interface.mjs +0 -2
  35. package/esm2022/lib/app/models/version.interface.mjs +0 -2
  36. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +0 -76
  37. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +0 -41
  38. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +0 -123
  39. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +0 -88
  40. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +0 -80
  41. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +0 -196
  42. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.mjs +0 -33
  43. package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +0 -10
  44. package/esm2022/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.mjs +0 -31
  45. package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +0 -124
  46. package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +0 -374
  47. package/esm2022/lib/app/pages/components/constructor-form/index.mjs +0 -5
  48. package/esm2022/lib/app/pages/components/constructor-form/models/collection-type.enum.mjs +0 -6
  49. package/esm2022/lib/app/pages/components/constructor-form/models/config/advcash.mjs +0 -9
  50. package/esm2022/lib/app/pages/components/constructor-form/models/config/alfabank.mjs +0 -9
  51. package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay.mjs +0 -9
  52. package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay_plus.mjs +0 -12
  53. package/esm2022/lib/app/pages/components/constructor-form/models/config/all.mjs +0 -209
  54. package/esm2022/lib/app/pages/components/constructor-form/models/config/applepay.mjs +0 -10
  55. package/esm2022/lib/app/pages/components/constructor-form/models/config/argentina_bank.mjs +0 -9
  56. package/esm2022/lib/app/pages/components/constructor-form/models/config/atf24.mjs +0 -10
  57. package/esm2022/lib/app/pages/components/constructor-form/models/config/baloto.mjs +0 -21
  58. package/esm2022/lib/app/pages/components/constructor-form/models/config/beeline.mjs +0 -10
  59. package/esm2022/lib/app/pages/components/constructor-form/models/config/bitcoin.mjs +0 -9
  60. package/esm2022/lib/app/pages/components/constructor-form/models/config/blik.mjs +0 -9
  61. package/esm2022/lib/app/pages/components/constructor-form/models/config/boleto.mjs +0 -23
  62. package/esm2022/lib/app/pages/components/constructor-form/models/config/brazil_bank.mjs +0 -9
  63. package/esm2022/lib/app/pages/components/constructor-form/models/config/card.mjs +0 -11
  64. package/esm2022/lib/app/pages/components/constructor-form/models/config/carga_virtual.mjs +0 -9
  65. package/esm2022/lib/app/pages/components/constructor-form/models/config/cash.mjs +0 -9
  66. package/esm2022/lib/app/pages/components/constructor-form/models/config/cashtocode.mjs +0 -10
  67. package/esm2022/lib/app/pages/components/constructor-form/models/config/codi.mjs +0 -11
  68. package/esm2022/lib/app/pages/components/constructor-form/models/config/comepay.mjs +0 -10
  69. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup.mjs +0 -9
  70. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_bank.mjs +0 -9
  71. package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_p2p.mjs +0 -12
  72. package/esm2022/lib/app/pages/components/constructor-form/models/config/deposit_express.mjs +0 -23
  73. package/esm2022/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.mjs +0 -9
  74. package/esm2022/lib/app/pages/components/constructor-form/models/config/dotpay.mjs +0 -9
  75. package/esm2022/lib/app/pages/components/constructor-form/models/config/ecopayz.mjs +0 -9
  76. package/esm2022/lib/app/pages/components/constructor-form/models/config/eps.mjs +0 -9
  77. package/esm2022/lib/app/pages/components/constructor-form/models/config/ethereum.mjs +0 -9
  78. package/esm2022/lib/app/pages/components/constructor-form/models/config/giropay.mjs +0 -9
  79. package/esm2022/lib/app/pages/components/constructor-form/models/config/gmmoney.mjs +0 -9
  80. package/esm2022/lib/app/pages/components/constructor-form/models/config/googlepay.mjs +0 -9
  81. package/esm2022/lib/app/pages/components/constructor-form/models/config/ideal.mjs +0 -13
  82. package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank.mjs +0 -12
  83. package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.mjs +0 -9
  84. package/esm2022/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.mjs +0 -9
  85. package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton.mjs +0 -9
  86. package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton_voucher.mjs +0 -9
  87. package/esm2022/lib/app/pages/components/constructor-form/models/config/kassa24.mjs +0 -10
  88. package/esm2022/lib/app/pages/components/constructor-form/models/config/link.mjs +0 -9
  89. package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_brazil.mjs +0 -19
  90. package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_mexico.mjs +0 -10
  91. package/esm2022/lib/app/pages/components/constructor-form/models/config/loterica.mjs +0 -22
  92. package/esm2022/lib/app/pages/components/constructor-form/models/config/malaysia_bank.mjs +0 -12
  93. package/esm2022/lib/app/pages/components/constructor-form/models/config/mbway.mjs +0 -12
  94. package/esm2022/lib/app/pages/components/constructor-form/models/config/megafon.mjs +0 -11
  95. package/esm2022/lib/app/pages/components/constructor-form/models/config/mercado_pago.mjs +0 -12
  96. package/esm2022/lib/app/pages/components/constructor-form/models/config/mexico_bank.mjs +0 -9
  97. package/esm2022/lib/app/pages/components/constructor-form/models/config/mirpay.mjs +0 -9
  98. package/esm2022/lib/app/pages/components/constructor-form/models/config/momopay.mjs +0 -9
  99. package/esm2022/lib/app/pages/components/constructor-form/models/config/moneta.mjs +0 -9
  100. package/esm2022/lib/app/pages/components/constructor-form/models/config/mts.mjs +0 -10
  101. package/esm2022/lib/app/pages/components/constructor-form/models/config/multibanco.mjs +0 -11
  102. package/esm2022/lib/app/pages/components/constructor-form/models/config/neosurf.mjs +0 -9
  103. package/esm2022/lib/app/pages/components/constructor-form/models/config/neteller.mjs +0 -10
  104. package/esm2022/lib/app/pages/components/constructor-form/models/config/nupay.mjs +0 -22
  105. package/esm2022/lib/app/pages/components/constructor-form/models/config/onecard.mjs +0 -9
  106. package/esm2022/lib/app/pages/components/constructor-form/models/config/oxxo.mjs +0 -23
  107. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoefectivo.mjs +0 -22
  108. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoexpress.mjs +0 -21
  109. package/esm2022/lib/app/pages/components/constructor-form/models/config/pagofacil.mjs +0 -10
  110. package/esm2022/lib/app/pages/components/constructor-form/models/config/paypal.mjs +0 -9
  111. package/esm2022/lib/app/pages/components/constructor-form/models/config/paysafecard.mjs +0 -9
  112. package/esm2022/lib/app/pages/components/constructor-form/models/config/philippines_bank.mjs +0 -12
  113. package/esm2022/lib/app/pages/components/constructor-form/models/config/picpay.mjs +0 -21
  114. package/esm2022/lib/app/pages/components/constructor-form/models/config/pix.mjs +0 -31
  115. package/esm2022/lib/app/pages/components/constructor-form/models/config/promptpay.mjs +0 -9
  116. package/esm2022/lib/app/pages/components/constructor-form/models/config/promsviaz.mjs +0 -9
  117. package/esm2022/lib/app/pages/components/constructor-form/models/config/przelewy24.mjs +0 -12
  118. package/esm2022/lib/app/pages/components/constructor-form/models/config/qiwi.mjs +0 -10
  119. package/esm2022/lib/app/pages/components/constructor-form/models/config/rapid.mjs +0 -9
  120. package/esm2022/lib/app/pages/components/constructor-form/models/config/rapipago.mjs +0 -22
  121. package/esm2022/lib/app/pages/components/constructor-form/models/config/redpagos.mjs +0 -9
  122. package/esm2022/lib/app/pages/components/constructor-form/models/config/sberbank.mjs +0 -9
  123. package/esm2022/lib/app/pages/components/constructor-form/models/config/sbp.mjs +0 -9
  124. package/esm2022/lib/app/pages/components/constructor-form/models/config/sepa.mjs +0 -12
  125. package/esm2022/lib/app/pages/components/constructor-form/models/config/servipag.mjs +0 -9
  126. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinify.mjs +0 -9
  127. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinpay.mjs +0 -9
  128. package/esm2022/lib/app/pages/components/constructor-form/models/config/skinsback.mjs +0 -9
  129. package/esm2022/lib/app/pages/components/constructor-form/models/config/skrill.mjs +0 -9
  130. package/esm2022/lib/app/pages/components/constructor-form/models/config/sofort.mjs +0 -9
  131. package/esm2022/lib/app/pages/components/constructor-form/models/config/spei.mjs +0 -12
  132. package/esm2022/lib/app/pages/components/constructor-form/models/config/store_mexico.mjs +0 -12
  133. package/esm2022/lib/app/pages/components/constructor-form/models/config/tele2.mjs +0 -10
  134. package/esm2022/lib/app/pages/components/constructor-form/models/config/tether.mjs +0 -9
  135. package/esm2022/lib/app/pages/components/constructor-form/models/config/tether_trc20.mjs +0 -9
  136. package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank.mjs +0 -12
  137. package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.mjs +0 -11
  138. package/esm2022/lib/app/pages/components/constructor-form/models/config/tinkoff.mjs +0 -8
  139. package/esm2022/lib/app/pages/components/constructor-form/models/config/tron.mjs +0 -9
  140. package/esm2022/lib/app/pages/components/constructor-form/models/config/trustly.mjs +0 -9
  141. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank.mjs +0 -9
  142. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.mjs +0 -10
  143. package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.mjs +0 -11
  144. package/esm2022/lib/app/pages/components/constructor-form/models/config/wallester.mjs +0 -9
  145. package/esm2022/lib/app/pages/components/constructor-form/models/config/webpay.mjs +0 -9
  146. package/esm2022/lib/app/pages/components/constructor-form/models/config/wechat.mjs +0 -12
  147. package/esm2022/lib/app/pages/components/constructor-form/models/config/wme.mjs +0 -9
  148. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmr.mjs +0 -9
  149. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmu.mjs +0 -9
  150. package/esm2022/lib/app/pages/components/constructor-form/models/config/wmz.mjs +0 -9
  151. package/esm2022/lib/app/pages/components/constructor-form/models/config/yandex.mjs +0 -9
  152. package/esm2022/lib/app/pages/components/constructor-form/models/config/zen_wallet.mjs +0 -9
  153. package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +0 -110
  154. package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +0 -7
  155. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-options.mjs +0 -2
  156. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-type.enum.mjs +0 -11
  157. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +0 -2
  158. package/esm2022/lib/app/pages/components/constructor-form/models/payment-fields.mjs +0 -2
  159. package/esm2022/lib/app/pages/components/constructor-form/models/terminal-step.enum.mjs +0 -7
  160. package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +0 -310
  161. package/esm2022/lib/app/pages/components/constructor-form/services/index.mjs +0 -2
  162. package/esm2022/lib/app/pages/components/error/error.component.mjs +0 -22
  163. package/esm2022/lib/app/pages/components/index.mjs +0 -4
  164. package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +0 -249
  165. package/esm2022/lib/app/pages/directives/fee-template.directive.mjs +0 -14
  166. package/esm2022/lib/app/pages/directives/index.mjs +0 -4
  167. package/esm2022/lib/app/pages/directives/input-mask-corrector.directive.mjs +0 -23
  168. package/esm2022/lib/app/pages/directives/tab-index-focus.directive.mjs +0 -21
  169. package/esm2022/lib/app/pages/index.mjs +0 -5
  170. package/esm2022/lib/app/pages/pages.module.mjs +0 -170
  171. package/esm2022/lib/app/pages/services/index.mjs +0 -2
  172. package/esm2022/lib/app/pages/services/mask.service.mjs +0 -22
  173. package/esm2022/lib/app/pipes/countries-sort.pipe.mjs +0 -34
  174. package/esm2022/lib/app/pipes/country-translate.pipe.mjs +0 -24
  175. package/esm2022/lib/app/pipes/index.mjs +0 -4
  176. package/esm2022/lib/app/pipes/method-title.pipe.mjs +0 -22
  177. package/esm2022/lib/app/services/api-errors.service.mjs +0 -52
  178. package/esm2022/lib/app/services/csrf.resolver.mjs +0 -79
  179. package/esm2022/lib/app/services/error.interceptior.mjs +0 -26
  180. package/esm2022/lib/app/services/index.mjs +0 -7
  181. package/esm2022/lib/app/services/local-storage.mjs +0 -70
  182. package/esm2022/lib/app/services/script-loader.mjs +0 -72
  183. package/esm2022/lib/app/services/session.data-source.mjs +0 -199
  184. package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +0 -129
  185. package/esm2022/lib/app/shared/components/constructor-status/constructor-status.component.mjs +0 -49
  186. package/esm2022/lib/app/shared/components/index.mjs +0 -8
  187. package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +0 -59
  188. package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +0 -53
  189. package/esm2022/lib/app/shared/components/trm-amount/trm-amount.component.mjs +0 -50
  190. package/esm2022/lib/app/shared/components/trm-select/scrollbar-select-height.directive.mjs +0 -42
  191. package/esm2022/lib/app/shared/components/trm-select/trm-select-label-template.directive.mjs +0 -17
  192. package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +0 -209
  193. package/esm2022/lib/app/shared/directives/index.mjs +0 -2
  194. package/esm2022/lib/app/shared/directives/ng-var.directive.mjs +0 -34
  195. package/esm2022/lib/app/shared/index.mjs +0 -5
  196. package/esm2022/lib/app/shared/pipes/index.mjs +0 -3
  197. package/esm2022/lib/app/shared/pipes/sanitizer.pipe.mjs +0 -21
  198. package/esm2022/lib/app/shared/pipes/translate-by-key.pipe.mjs +0 -49
  199. package/esm2022/lib/app/shared/shared.module.mjs +0 -73
  200. package/esm2022/lib/app/terminal-tpl.component.mjs +0 -59
  201. package/esm2022/lib/app/terminal.module.mjs +0 -67
  202. package/esm2022/lib/codegen/api/api.mjs +0 -4
  203. package/esm2022/lib/codegen/api/checkin.service.mjs +0 -2
  204. package/esm2022/lib/codegen/api/configuration.mjs +0 -2
  205. package/esm2022/lib/codegen/api/terminal.service.mjs +0 -2
  206. package/esm2022/lib/codegen/index.mjs +0 -3
  207. package/esm2022/lib/codegen/model/apiErrors.mjs +0 -42
  208. package/esm2022/lib/codegen/model/badRequestResponse.mjs +0 -2
  209. package/esm2022/lib/codegen/model/bank.mjs +0 -2
  210. package/esm2022/lib/codegen/model/documentType.mjs +0 -2
  211. package/esm2022/lib/codegen/model/getCheckinSessionInfo200Response.mjs +0 -2
  212. package/esm2022/lib/codegen/model/getTerminalMethodBanks200Response.mjs +0 -2
  213. package/esm2022/lib/codegen/model/getTerminalMethodDocumentTypes200Response.mjs +0 -2
  214. package/esm2022/lib/codegen/model/invoiceStatus.mjs +0 -8
  215. package/esm2022/lib/codegen/model/methodInfo.mjs +0 -2
  216. package/esm2022/lib/codegen/model/methodInfoLimits.mjs +0 -2
  217. package/esm2022/lib/codegen/model/methodType.mjs +0 -2
  218. package/esm2022/lib/codegen/model/methodTypeType.mjs +0 -2
  219. package/esm2022/lib/codegen/model/models.mjs +0 -22
  220. package/esm2022/lib/codegen/model/postTerminalClose200Response.mjs +0 -2
  221. package/esm2022/lib/codegen/model/postTerminalOpen200Response.mjs +0 -2
  222. package/esm2022/lib/codegen/model/postTerminalOpenRequest.mjs +0 -2
  223. package/esm2022/lib/codegen/model/postTerminalPaymentConfirm200Response.mjs +0 -2
  224. package/esm2022/lib/codegen/model/postTerminalPaymentConfirmRequest.mjs +0 -2
  225. package/esm2022/lib/codegen/model/postTerminalPaymentPrepare200Response.mjs +0 -2
  226. package/esm2022/lib/codegen/model/postTerminalPaymentPrepareRequest.mjs +0 -2
  227. package/esm2022/lib/codegen/model/sessionInfo.mjs +0 -2
  228. package/esm2022/lib/codegen/model/sessionInfoAntiFraudPixel.mjs +0 -2
  229. package/esm2022/lib/const.mjs +0 -9
  230. package/esm2022/lib/helpers/index.mjs +0 -3
  231. package/esm2022/lib/helpers/moment-import.mjs +0 -3
  232. package/esm2022/lib/helpers/remove-empty-props.mjs +0 -13
  233. package/esm2022/lib/index.mjs +0 -5
  234. package/esm2022/public-api.mjs +0 -5
  235. package/esm2022/trm-tmpl.mjs +0 -5
@@ -1,199 +0,0 @@
1
- import { ChangeDetectorRef, inject, Injectable } from '@angular/core';
2
- import { BehaviorSubject, throwError } from 'rxjs';
3
- import { catchError, delay, map, tap } from 'rxjs/operators';
4
- import { DOCUMENT } from '@angular/common';
5
- import { ApiErrorsService } from './api-errors.service';
6
- import { CookieService } from 'ngx-cookie-service';
7
- import { TranslateLangStorageService } from './translation/translate-lang-storage.service';
8
- import { I18N_KEY } from './../i18n';
9
- import { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';
10
- import { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';
11
- import { SessionToken } from '../models';
12
- import { CONFIG } from '../pages/components/constructor-form/models/config/all';
13
- import * as i0 from "@angular/core";
14
- export class SessionDataSource {
15
- constructor() {
16
- this.document = inject(DOCUMENT);
17
- this.langStorage = inject(TranslateLangStorageService);
18
- this.terminalApi = inject(TERMINAL_SERVICE_TOKEN);
19
- this.token = inject(SessionToken, { optional: true }) || 'token';
20
- this.apiErrorsSrv = inject(ApiErrorsService);
21
- this.cookieSrv = inject(CookieService);
22
- this.cd = inject(ChangeDetectorRef);
23
- this.cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);
24
- this.data$ = new BehaviorSubject(undefined);
25
- this.loading$ = new BehaviorSubject(true);
26
- this.loadingMethodInfo$ = new BehaviorSubject(true);
27
- this.configurations = new Map();
28
- this.feeChangeable = !!this.terminalApi.getFee;
29
- }
30
- fillConfigurations(methods = this.getSessionValue()?.methodTypes || []) {
31
- return methods.forEach((m) => this.configurations.set(m.type.name, CONFIG[m.type.name]));
32
- }
33
- unionGlobalCountries(session) {
34
- let methods = session.methodTypes;
35
- // sort methods by countries in map
36
- const countriesTypes = new Map();
37
- methods.forEach(({ countryISOCode, type: { id } }) => {
38
- let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);
39
- countriesTypes.set(countryISOCode, types);
40
- });
41
- // Check every type in the country on having in other countries and getting ones in collection
42
- const globalCountries = [];
43
- const typesCountriesArray = Array.from(countriesTypes.values());
44
- const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));
45
- countriesTypes.forEach((types, iso) => {
46
- // Check every type includes in all countries
47
- const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);
48
- if (hasOnlyGlobalTypes) {
49
- globalCountries.push(iso);
50
- }
51
- });
52
- // if we have more than one country with only global types collapse them into one category
53
- if (globalCountries.length > 0) {
54
- const firstGlobalCountry = globalCountries.pop();
55
- methods = methods
56
- .filter(({ countryISOCode }) => !globalCountries.includes(countryISOCode));
57
- methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));
58
- }
59
- session.methodTypes = methods;
60
- return session;
61
- }
62
- getConfiguration(name) {
63
- return this.configurations.get(name);
64
- }
65
- redirect() {
66
- if (this.redirectUrl) {
67
- this.document.defaultView.location.href = this.redirectUrl;
68
- return true;
69
- }
70
- return false;
71
- }
72
- returnBack() {
73
- if (this.returnUrl) {
74
- this.document.defaultView.location.href = this.returnUrl;
75
- return true;
76
- }
77
- return false;
78
- }
79
- get canReturnToProject() {
80
- return !!this.returnUrl;
81
- }
82
- get returnBackUrl() {
83
- return this.returnUrl;
84
- }
85
- getTypeNameById(id) {
86
- return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;
87
- }
88
- getSessionValue() {
89
- return this.data$.getValue();
90
- }
91
- get() {
92
- if (!this.loading$.getValue()) {
93
- this.loading$.next(true);
94
- }
95
- return this.terminalApi.getTerminalSessionInfo({
96
- token: this.token
97
- })
98
- .pipe(catchError(this.catchError(this.loading$)), map((session) => {
99
- this.data$.next(this.unionGlobalCountries(session));
100
- this.fillConfigurations();
101
- this.loading$.next(false);
102
- this.returnUrl = session.returnUrl;
103
- return this.data$.getValue();
104
- }));
105
- }
106
- getMethodInfo(currency, typeId) {
107
- if (!this.loadingMethodInfo$.getValue()) {
108
- this.loadingMethodInfo$.next(true);
109
- }
110
- if (!typeId || !currency) {
111
- return throwError({})
112
- .pipe(catchError(this.catchError(this.loadingMethodInfo$)));
113
- }
114
- return this.terminalApi
115
- .getTerminalMethodInfo({
116
- token: this.token,
117
- lang: this.langStorage.currentLang,
118
- currency,
119
- typeId
120
- })
121
- .pipe(catchError(this.catchError(this.loadingMethodInfo$)), tap((method) => {
122
- if (method.payment_token) {
123
- this.payment_token = method.payment_token;
124
- }
125
- this.loadingMethodInfo$.next(false);
126
- }));
127
- }
128
- catchError(loading$) {
129
- return (err) => {
130
- this.apiErrorsSrv.setLocalError(err.error);
131
- loading$?.next(false);
132
- this.cd.markForCheck();
133
- return throwError(err);
134
- };
135
- }
136
- prepare(data) {
137
- return this.terminalApi
138
- .postTerminalPaymentPrepare({
139
- token: this.token,
140
- terminalPaymentPrepareRequest: data
141
- })
142
- .pipe(delay(2000), catchError(this.catchError()));
143
- }
144
- confirm() {
145
- return this.terminalApi
146
- .postTerminalPaymentConfirm({
147
- token: this.token,
148
- terminalPaymentConfirmRequest: {
149
- lang: this.langStorage.currentLang,
150
- gaCookie: this.cookieSrv.get('_ga') || null
151
- }
152
- })
153
- .pipe(catchError(this.catchError()), tap((resp) => {
154
- this.redirectUrl = resp.redirectUrl;
155
- }));
156
- }
157
- close() {
158
- return this.terminalApi
159
- .postTerminalClose({
160
- token: this.token
161
- })
162
- .pipe(catchError(this.catchError()), map(() => {
163
- if (!this.returnBack()) {
164
- const error = { code: I18N_KEY.SESSION_CLOSED };
165
- this.apiErrorsSrv.setLocalError(error);
166
- this.cd.markForCheck();
167
- throw error;
168
- }
169
- }));
170
- }
171
- getBanks(typeId) {
172
- return this.terminalApi
173
- .getTerminalMethodBanks({
174
- typeId,
175
- token: this.token
176
- })
177
- .pipe(catchError(this.catchError()));
178
- }
179
- getDocuments(typeId) {
180
- return this.terminalApi
181
- .getTerminalMethodDocumentTypes({
182
- typeId,
183
- token: this.token
184
- })
185
- .pipe(catchError(this.catchError()));
186
- }
187
- createCardTerminalSdk(lang, id, tabindex) {
188
- return this.cardTerminalSdkFactory(this.payment_token, id, { lang, tabindex });
189
- }
190
- feeOptions(payment) {
191
- return this.terminalApi.getFee(payment);
192
- }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SessionDataSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
194
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SessionDataSource }); }
195
- }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SessionDataSource, decorators: [{
197
- type: Injectable
198
- }] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3NlcnZpY2VzL3Nlc3Npb24uZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVdEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQUdoRixNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRUUsYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2xELGdCQUFX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YW5nZURldGVjdG9yUmVmLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1ldGhvZEluZm8sXG4gIE1ldGhvZFR5cGUsXG4gIFNlc3Npb25JbmZvLFxuICBUZXJtaW5hbE1ldGhvZEJhbmtzUmVzcG9uc2UsXG4gIFRlcm1pbmFsTWV0aG9kRG9jdW1lbnRUeXBlc1Jlc3BvbnNlLFxuICBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCxcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlXG59IGZyb20gJy4uLy4uL2NvZGVnZW4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVsYXksIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBpRXJyb3JzU2VydmljZSB9IGZyb20gJy4vYXBpLWVycm9ycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudEZpZWxkcyB9IGZyb20gJy4vLi4vcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscyc7XG5pbXBvcnQgeyBIdHRwQmFkUmVxdWVzdFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL2h0dHAtYmFkLXJlcXVlc3QtcmVzcG9uc2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTGFuZ1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi90cmFuc2xhdGUtbGFuZy1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLy4uL2kxOG4nO1xuaW1wb3J0IHsgVEVSTUlOQUxfU0RLX0ZBQ1RPUlksIFRFUk1JTkFMX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBUZXJtaW5hbFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9jb2RlZ2VuL2FwaS90ZXJtaW5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IE9USEVSX0NPVU5UUllfQ09ERSB9IGZyb20gJy4uL2hlbHBlcnMvaTE4bi1jb3VudHJpZXMnO1xuaW1wb3J0IHsgQ2RlVGVybWluYWxTZGssIFNlc3Npb25Ub2tlbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDT05GSUcgfSBmcm9tICcuLi9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2NvbmZpZy9hbGwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkRhdGFTb3VyY2Uge1xuICBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICBwcml2YXRlIGxhbmdTdG9yYWdlID0gaW5qZWN0KFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSk7XG4gIHByaXZhdGUgdGVybWluYWxBcGkgPSBpbmplY3Q8VGVybWluYWxTZXJ2aWNlSW50ZXJmYWNlPihURVJNSU5BTF9TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSB0b2tlbiA9IGluamVjdChTZXNzaW9uVG9rZW4sIHtvcHRpb25hbDogdHJ1ZX0pIHx8ICd0b2tlbic7XG4gIHByaXZhdGUgYXBpRXJyb3JzU3J2ID0gaW5qZWN0KEFwaUVycm9yc1NlcnZpY2UpO1xuICBwcml2YXRlIGNvb2tpZVNydiA9IGluamVjdChDb29raWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgY2FyZFRlcm1pbmFsU2RrRmFjdG9yeSA9IGluamVjdChURVJNSU5BTF9TREtfRkFDVE9SWSk7XG5cbiAgcGF5bWVudF90b2tlbj86IHN0cmluZztcbiAgZGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxTZXNzaW9uSW5mbz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlc3Npb25JbmZvPih1bmRlZmluZWQpO1xuICBsb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgbG9hZGluZ01ldGhvZEluZm8kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlZGlyZWN0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmV0dXJuVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvbnM6IE1hcDxzdHJpbmcsIFBheW1lbnRGaWVsZHM+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgZmlsbENvbmZpZ3VyYXRpb25zKG1ldGhvZHM6IE1ldGhvZFR5cGVbXSA9IHRoaXMuZ2V0U2Vzc2lvblZhbHVlKCk/Lm1ldGhvZFR5cGVzIHx8IFtdKSB7XG4gICAgcmV0dXJuIG1ldGhvZHMuZm9yRWFjaChcbiAgICAgIChtOiBNZXRob2RUeXBlKSA9PiB0aGlzLmNvbmZpZ3VyYXRpb25zLnNldChcbiAgICAgICAgbS50eXBlLm5hbWUsXG4gICAgICAgIENPTkZJR1ttLnR5cGUubmFtZV1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmlvbkdsb2JhbENvdW50cmllcyhzZXNzaW9uOiBTZXNzaW9uSW5mbykge1xuICAgIGxldCBtZXRob2RzID0gc2Vzc2lvbi5tZXRob2RUeXBlcztcblxuICAgIC8vIHNvcnQgbWV0aG9kcyBieSBjb3VudHJpZXMgaW4gbWFwXG4gICAgY29uc3QgY291bnRyaWVzVHlwZXM6IE1hcDxzdHJpbmcsIFNldDxudW1iZXI+PiA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8bnVtYmVyPj4oKTtcbiAgICBtZXRob2RzLmZvckVhY2goKHtjb3VudHJ5SVNPQ29kZSwgdHlwZToge2lkfX0pID0+IHtcbiAgICAgIGxldCB0eXBlcyA9IChjb3VudHJpZXNUeXBlcy5nZXQoY291bnRyeUlTT0NvZGUpIHx8IG5ldyBTZXQoKSkuYWRkKGlkKTtcbiAgICAgIGNvdW50cmllc1R5cGVzLnNldChjb3VudHJ5SVNPQ29kZSwgdHlwZXMpO1xuICAgIH0pO1xuXG4gICAgLy8gQ2hlY2sgZXZlcnkgdHlwZSBpbiB0aGUgY291bnRyeSBvbiBoYXZpbmcgaW4gb3RoZXIgY291bnRyaWVzIGFuZCBnZXR0aW5nIG9uZXMgaW4gY29sbGVjdGlvblxuICAgIGNvbnN0IGdsb2JhbENvdW50cmllczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCB0eXBlc0NvdW50cmllc0FycmF5ID0gQXJyYXkuZnJvbShjb3VudHJpZXNUeXBlcy52YWx1ZXMoKSk7XG4gICAgY29uc3QgZXZlcnlDb3VudHJ5SGFzVHlwZUlkUHJlZGljYXRlID0gKHR5cGVJZCkgPT4gdHlwZXNDb3VudHJpZXNBcnJheS5ldmVyeSgoY291bnRyeVR5cGVzKSA9PiBjb3VudHJ5VHlwZXMuaGFzKHR5cGVJZCkpO1xuICAgIGNvdW50cmllc1R5cGVzLmZvckVhY2goKHR5cGVzLCBpc28pID0+IHtcbiAgICAgIC8vIENoZWNrIGV2ZXJ5IHR5cGUgaW5jbHVkZXMgaW4gYWxsIGNvdW50cmllc1xuICAgICAgY29uc3QgaGFzT25seUdsb2JhbFR5cGVzID0gWy4uLnR5cGVzXS5ldmVyeShldmVyeUNvdW50cnlIYXNUeXBlSWRQcmVkaWNhdGUpO1xuICAgICAgaWYgKGhhc09ubHlHbG9iYWxUeXBlcykge1xuICAgICAgICBnbG9iYWxDb3VudHJpZXMucHVzaChpc28pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgd2UgaGF2ZSBtb3JlIHRoYW4gb25lIGNvdW50cnkgd2l0aCBvbmx5IGdsb2JhbCB0eXBlcyBjb2xsYXBzZSB0aGVtIGludG8gb25lIGNhdGVnb3J5XG4gICAgaWYgKGdsb2JhbENvdW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaXJzdEdsb2JhbENvdW50cnkgPSBnbG9iYWxDb3VudHJpZXMucG9wKCk7XG4gICAgICBtZXRob2RzID0gbWV0aG9kc1xuICAgICAgICAuZmlsdGVyKCh7Y291bnRyeUlTT0NvZGV9KSA9PiAhZ2xvYmFsQ291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnlJU09Db2RlKSk7XG4gICAgICBtZXRob2RzLmZvckVhY2gobSA9PiBtLmNvdW50cnlJU09Db2RlID09PSBmaXJzdEdsb2JhbENvdW50cnkgJiYgKG0uY291bnRyeUlTT0NvZGUgPSBPVEhFUl9DT1VOVFJZX0NPREUpKTtcbiAgICB9XG4gICAgc2Vzc2lvbi5tZXRob2RUeXBlcyA9IG1ldGhvZHM7XG4gICAgcmV0dXJuIHNlc3Npb247XG4gIH1cblxuICBnZXRDb25maWd1cmF0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25zLmdldChuYW1lKTtcbiAgfVxuXG4gIHJlZGlyZWN0KCkge1xuICAgIGlmICh0aGlzLnJlZGlyZWN0VXJsKSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJlZGlyZWN0VXJsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybkJhY2soKSB7XG4gICAgaWYgKHRoaXMucmV0dXJuVXJsKSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJldHVyblVybDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgY2FuUmV0dXJuVG9Qcm9qZWN0KCkge1xuICAgIHJldHVybiAhIXRoaXMucmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0IHJldHVybkJhY2tVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5Vcmw7XG4gIH1cblxuICBnZXRUeXBlTmFtZUJ5SWQoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmRhdGEkLmdldFZhbHVlKCkubWV0aG9kVHlwZXMuZmluZChtID0+IG0udHlwZS5pZCA9PT0gaWQpLnR5cGUubmFtZTtcbiAgfVxuXG4gIGdldFNlc3Npb25WYWx1ZSgpOiBTZXNzaW9uSW5mbyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFNlc3Npb25JbmZvPiB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmckLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFwaS5nZXRUZXJtaW5hbFNlc3Npb25JbmZvKHtcbiAgICAgIHRva2VuOiB0aGlzLnRva2VuXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIHRoaXMuY2F0Y2hFcnJvcih0aGlzLmxvYWRpbmckKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKHNlc3Npb246IFNlc3Npb25JbmZvKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhJC5uZXh0KHRoaXMudW5pb25HbG9iYWxDb3VudHJpZXMoc2Vzc2lvbikpO1xuICAgICAgICAgIHRoaXMuZmlsbENvbmZpZ3VyYXRpb25zKCk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnJldHVyblVybCA9IHNlc3Npb24ucmV0dXJuVXJsO1xuICAgICAgICAgIHJldHVybiB0aGlzLmRhdGEkLmdldFZhbHVlKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWV0aG9kSW5mbyhjdXJyZW5jeSwgdHlwZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1ldGhvZEluZm8+IHtcbiAgICBpZiAoIXRoaXMubG9hZGluZ01ldGhvZEluZm8kLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMubG9hZGluZ01ldGhvZEluZm8kLm5leHQodHJ1ZSk7XG4gICAgfVxuICAgIGlmICghdHlwZUlkIHx8ICFjdXJyZW5jeSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3Ioe30pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgICAgICB0aGlzLmNhdGNoRXJyb3IodGhpcy5sb2FkaW5nTWV0aG9kSW5mbyQpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFwaVxuICAgICAgLmdldFRlcm1pbmFsTWV0aG9kSW5mbyh7XG4gICAgICAgIHRva2VuOiB0aGlzLnRva2VuLFxuICAgICAgICBsYW5nOiB0aGlzLmxhbmdTdG9yYWdlLmN1cnJlbnRMYW5nLFxuICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgdHlwZUlkXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgICAgdGhpcy5jYXRjaEVycm9yKHRoaXMubG9hZGluZ01ldGhvZEluZm8kKVxuICAgICAgICApLFxuICAgICAgICB0YXAoKG1ldGhvZCkgPT4ge1xuICAgICAgICAgIGlmIChtZXRob2QucGF5bWVudF90b2tlbikge1xuICAgICAgICAgICAgdGhpcy5wYXltZW50X3Rva2VuID0gbWV0aG9kLnBheW1lbnRfdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubG9hZGluZ01ldGhvZEluZm8kLm5leHQoZmFsc2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2F0Y2hFcnJvcihsb2FkaW5nJD86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPikge1xuICAgIHJldHVybiAoZXJyOiBIdHRwQmFkUmVxdWVzdFJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmFwaUVycm9yc1Nydi5zZXRMb2NhbEVycm9yKGVyci5lcnJvcik7XG4gICAgICBsb2FkaW5nJD8ubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcmVwYXJlKGRhdGE6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFwaVxuICAgICAgLnBvc3RUZXJtaW5hbFBheW1lbnRQcmVwYXJlKHtcbiAgICAgICAgdG9rZW46IHRoaXMudG9rZW4sXG4gICAgICAgIHRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0OiBkYXRhXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlbGF5KDIwMDApLFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBjb25maXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1pbmFsQXBpXG4gICAgICAucG9zdFRlcm1pbmFsUGF5bWVudENvbmZpcm0oe1xuICAgICAgICB0b2tlbjogdGhpcy50b2tlbixcbiAgICAgICAgdGVybWluYWxQYXltZW50Q29uZmlybVJlcXVlc3Q6IHtcbiAgICAgICAgICBsYW5nOiB0aGlzLmxhbmdTdG9yYWdlLmN1cnJlbnRMYW5nLFxuICAgICAgICAgIGdhQ29va2llOiB0aGlzLmNvb2tpZVNydi5nZXQoJ19nYScpIHx8IG51bGxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpXG4gICAgICAgICksXG4gICAgICAgIHRhcCgocmVzcCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSByZXNwLnJlZGlyZWN0VXJsO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuXG4gICAgcmV0dXJuIHRoaXMudGVybWluYWxBcGlcbiAgICAgIC5wb3N0VGVybWluYWxDbG9zZSh7XG4gICAgICAgIHRva2VuOiB0aGlzLnRva2VuXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgICAgdGhpcy5jYXRjaEVycm9yKClcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMucmV0dXJuQmFjaygpKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHtjb2RlOiBJMThOX0tFWS5TRVNTSU9OX0NMT1NFRH07XG4gICAgICAgICAgICB0aGlzLmFwaUVycm9yc1Nydi5zZXRMb2NhbEVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRCYW5rcyh0eXBlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8VGVybWluYWxNZXRob2RCYW5rc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudGVybWluYWxBcGlcbiAgICAgIC5nZXRUZXJtaW5hbE1ldGhvZEJhbmtzKHtcbiAgICAgICAgdHlwZUlkLFxuICAgICAgICB0b2tlbjogdGhpcy50b2tlblxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBnZXREb2N1bWVudHModHlwZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRlcm1pbmFsTWV0aG9kRG9jdW1lbnRUeXBlc1Jlc3BvbnNlPiB7XG5cbiAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFwaVxuICAgICAgLmdldFRlcm1pbmFsTWV0aG9kRG9jdW1lbnRUeXBlcyh7XG4gICAgICAgIHR5cGVJZCxcbiAgICAgICAgdG9rZW46IHRoaXMudG9rZW5cbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihcbiAgICAgICAgICB0aGlzLmNhdGNoRXJyb3IoKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgY3JlYXRlQ2FyZFRlcm1pbmFsU2RrKGxhbmc6IHN0cmluZywgaWQ6IHN0cmluZywgdGFiaW5kZXg/OiBudW1iZXIpOiBDZGVUZXJtaW5hbFNkayB7XG4gICAgcmV0dXJuIHRoaXMuY2FyZFRlcm1pbmFsU2RrRmFjdG9yeSh0aGlzLnBheW1lbnRfdG9rZW4sIGlkLCB7bGFuZywgdGFiaW5kZXh9KTtcbiAgfVxuXG4gIGZlZUNoYW5nZWFibGUgPSAhIXRoaXMudGVybWluYWxBcGkuZ2V0RmVlO1xuXG4gIGZlZU9wdGlvbnMocGF5bWVudDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMudGVybWluYWxBcGkuZ2V0RmVlKHBheW1lbnQpO1xuICB9XG59XG5cblxuIl19
@@ -1,129 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { DEFAULT_LANG, LANGUAGE } from '../../models/constants';
5
- import { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';
6
- import { LocalStorage } from "../local-storage";
7
- import * as i0 from "@angular/core";
8
- const TRANSLATION_LANG_KEYS = {
9
- [LANGUAGE.RU]: {
10
- code: 'ru',
11
- name: 'Русский',
12
- countries: [
13
- 'AZ',
14
- 'AM',
15
- 'BY',
16
- 'KZ',
17
- 'KG',
18
- 'MD',
19
- 'RU',
20
- 'TJ',
21
- 'TM',
22
- 'UZ',
23
- 'UA',
24
- ],
25
- },
26
- [LANGUAGE.EN]: {
27
- code: 'gb',
28
- name: 'English',
29
- countries: [],
30
- },
31
- [LANGUAGE.ES]: {
32
- code: 'es',
33
- name: 'Español',
34
- countries: [
35
- 'BZ',
36
- 'GT',
37
- 'HN',
38
- 'CR',
39
- 'PA',
40
- 'NI',
41
- 'SV',
42
- 'AR',
43
- 'CL',
44
- 'CO',
45
- 'EC',
46
- 'PY',
47
- 'PE',
48
- 'GY',
49
- 'ES',
50
- ],
51
- },
52
- [LANGUAGE.TR]: {
53
- code: 'tr',
54
- name: 'Türkçe',
55
- countries: ['TR'],
56
- },
57
- [LANGUAGE.PT]: {
58
- code: 'pt',
59
- name: 'Português',
60
- countries: ['PT', 'BR'],
61
- },
62
- };
63
- export class TranslateLangStorageService {
64
- constructor() {
65
- this._storage = inject(LocalStorage);
66
- this.versionSrv = inject(TERMINAL_VERSION_SERVICE_TOKEN);
67
- this.document = inject(DOCUMENT);
68
- this.translateSrv = inject(TranslateService);
69
- this.TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;
70
- }
71
- get languages() {
72
- return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];
73
- }
74
- get location() {
75
- return this.document.defaultView.location;
76
- }
77
- get onLangChange$() {
78
- return this.translateSrv.onLangChange;
79
- }
80
- get currentLang() {
81
- return this.translateSrv.currentLang;
82
- }
83
- get queryLang() {
84
- return new URL(this.location.href).searchParams.get('language');
85
- }
86
- get countryLanguage() {
87
- const code = this._storage.defaultCountry?.toUpperCase();
88
- if (!code) {
89
- return null;
90
- }
91
- return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang) => {
92
- const meta = this.TRANSLATION_LANG_KEYS[lang];
93
- return meta?.countries.some((c) => c.includes(code.toUpperCase()));
94
- });
95
- }
96
- setLanguage$(options = { save: true }) {
97
- const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);
98
- let candidateLang = DEFAULT_LANG;
99
- const lang = options?.lang?.toLowerCase();
100
- const queryLang = this.queryLang?.toLowerCase();
101
- const storageLang = this._storage.defaultLang?.toLowerCase();
102
- const countryLang = this.countryLanguage?.toLowerCase();
103
- if (availableLanguages.includes(lang)) {
104
- candidateLang = lang;
105
- }
106
- else if (availableLanguages.includes(storageLang)) {
107
- candidateLang = storageLang;
108
- }
109
- else if (availableLanguages.includes(queryLang)) {
110
- candidateLang = queryLang;
111
- }
112
- else if (availableLanguages.includes(countryLang)) {
113
- candidateLang = countryLang;
114
- }
115
- if (!this.versionSrv.langs.includes(candidateLang)) {
116
- candidateLang = DEFAULT_LANG;
117
- }
118
- if (options?.save) {
119
- this._storage.saveDefaultLang(candidateLang);
120
- }
121
- return this.translateSrv.use(candidateLang);
122
- }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TranslateLangStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
124
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TranslateLangStorageService }); }
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TranslateLangStorageService, decorators: [{
127
- type: Injectable
128
- }], ctorParameters: () => [] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWxhbmctc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRlLWxhbmctc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWNoRCxNQUFNLHFCQUFxQixHQUF3QjtJQUNqRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNiLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLFNBQVM7UUFDZixTQUFTLEVBQUU7WUFDVCxJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtTQUNMO0tBQ0Y7SUFDRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNiLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLFNBQVM7UUFDZixTQUFTLEVBQUUsRUFBRTtLQUNkO0lBQ0QsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDYixJQUFJLEVBQUUsSUFBSTtRQUNW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ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMYW5nQ2hhbmdlRXZlbnQsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfTEFORywgTEFOR1VBR0UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uc3RhbnRzJ1xuaW1wb3J0IHsgQWxwaGEyQ29kZSB9IGZyb20gJ2kxOG4taXNvLWNvdW50cmllcyc7XG5pbXBvcnQgeyBURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBWZXJzaW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi4vbG9jYWwtc3RvcmFnZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uTGFuZ0luZm9NZXRhIHtcbiAgY29kZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvdW50cmllczogQWxwaGEyQ29kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0aW9uTGFuZ0luZm8ge1xuICBba2V5OiBzdHJpbmddOiBUcmFuc2xhdGlvbkxhbmdJbmZvTWV0YTtcbn1cblxuY29uc3QgVFJBTlNMQVRJT05fTEFOR19LRVlTOiBUcmFuc2xhdGlvbkxhbmdJbmZvID0ge1xuICBbTEFOR1VBR0UuUlVdOiB7XG4gICAgY29kZTogJ3J1JyxcbiAgICBuYW1lOiAn0KDRg9GB0YHQutC40LknLFxuICAgIGNvdW50cmllczogW1xuICAgICAgJ0FaJyxcbiAgICAgICdBTScsXG4gICAgICAnQlknLFxuICAgICAgJ0taJyxcbiAgICAgICdLRycsXG4gICAgICAnTUQnLFxuICAgICAgJ1JVJyxcbiAgICAgICdUSicsXG4gICAgICAnVE0nLFxuICAgICAgJ1VaJyxcbiAgICAgICdVQScsXG4gICAgXSxcbiAgfSxcbiAgW0xBTkdVQUdFLkVOXToge1xuICAgIGNvZGU6ICdnYicsXG4gICAgbmFtZTogJ0VuZ2xpc2gnLFxuICAgIGNvdW50cmllczogW10sXG4gIH0sXG4gIFtMQU5HVUFHRS5FU106IHtcbiAgICBjb2RlOiAnZXMnLFxuICAgIG5hbWU6ICdFc3Bhw7FvbCcsXG4gICAgY291bnRyaWVzOiBbXG4gICAgICAnQlonLFxuICAgICAgJ0dUJyxcbiAgICAgICdITicsXG4gICAgICAnQ1InLFxuICAgICAgJ1BBJyxcbiAgICAgICdOSScsXG4gICAgICAnU1YnLFxuICAgICAgJ0FSJyxcbiAgICAgICdDTCcsXG4gICAgICAnQ08nLFxuICAgICAgJ0VDJyxcbiAgICAgICdQWScsXG4gICAgICAnUEUnLFxuICAgICAgJ0dZJyxcbiAgICAgICdFUycsXG4gICAgXSxcbiAgfSxcbiAgW0xBTkdVQUdFLlRSXToge1xuICAgIGNvZGU6ICd0cicsXG4gICAgbmFtZTogJ1TDvHJrw6dlJyxcbiAgICBjb3VudHJpZXM6IFsnVFInXSxcbiAgfSxcbiAgW0xBTkdVQUdFLlBUXToge1xuICAgIGNvZGU6ICdwdCcsXG4gICAgbmFtZTogJ1BvcnR1Z3XDqnMnLFxuICAgIGNvdW50cmllczogWydQVCcsICdCUiddLFxuICB9LFxufTtcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVMYW5nU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIF9zdG9yYWdlOiBMb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGdldCBsYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvblNydi5sYW5ncyB8fCBbTEFOR1VBR0UuUlUsIExBTkdVQUdFLkVOLCBMQU5HVUFHRS5QVCwgTEFOR1VBR0UuVFIsIExBTkdVQUdFLkVTXTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyc2lvblNydiA9IGluamVjdDxWZXJzaW9uU2VydmljZUludGVyZmFjZT4oVEVSTUlOQUxfVkVSU0lPTl9TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNydiA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICByZWFkb25seSBUUkFOU0xBVElPTl9MQU5HX0tFWVMgPSBUUkFOU0xBVElPTl9MQU5HX0tFWVM7XG5cbiAgcHJpdmF0ZSBnZXQgbG9jYXRpb24oKTogTG9jYXRpb24ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2F0aW9uO1xuICB9XG5cbiAgZ2V0IG9uTGFuZ0NoYW5nZSQoKTogRXZlbnRFbWl0dGVyPExhbmdDaGFuZ2VFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNydi5vbkxhbmdDaGFuZ2U7XG4gIH1cblxuICBnZXQgY3VycmVudExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTcnYuY3VycmVudExhbmc7XG4gIH1cblxuICBnZXQgcXVlcnlMYW5nKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBuZXcgVVJMKHRoaXMubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zLmdldCgnbGFuZ3VhZ2UnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvdW50cnlMYW5ndWFnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBjb2RlID0gdGhpcy5fc3RvcmFnZS5kZWZhdWx0Q291bnRyeT8udG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIWNvZGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5UUkFOU0xBVElPTl9MQU5HX0tFWVMpLmZpbmQoKGxhbmc6IExBTkdVQUdFKSA9PiB7XG4gICAgICBjb25zdCBtZXRhID0gdGhpcy5UUkFOU0xBVElPTl9MQU5HX0tFWVNbbGFuZ107XG4gICAgICByZXR1cm4gbWV0YT8uY291bnRyaWVzLnNvbWUoKGMpID0+IGMuaW5jbHVkZXMoY29kZS50b1VwcGVyQ2FzZSgpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRMYW5ndWFnZSQoXG4gICAgb3B0aW9uczogeyBzYXZlOiBib29sZWFuOyBsYW5nPzogc3RyaW5nIH0gPSB7c2F2ZTogdHJ1ZX0sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYXZhaWxhYmxlTGFuZ3VhZ2VzID0gT2JqZWN0LmtleXModGhpcy5UUkFOU0xBVElPTl9MQU5HX0tFWVMpO1xuICAgIGxldCBjYW5kaWRhdGVMYW5nID0gREVGQVVMVF9MQU5HO1xuICAgIGNvbnN0IGxhbmcgPSBvcHRpb25zPy5sYW5nPy50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHF1ZXJ5TGFuZyA9IHRoaXMucXVlcnlMYW5nPy50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0b3JhZ2VMYW5nID0gdGhpcy5fc3RvcmFnZS5kZWZhdWx0TGFuZz8udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBjb3VudHJ5TGFuZyA9IHRoaXMuY291bnRyeUxhbmd1YWdlPy50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChhdmFpbGFibGVMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGNhbmRpZGF0ZUxhbmcgPSBsYW5nO1xuICAgIH0gZWxzZSBpZiAoYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKHN0b3JhZ2VMYW5nKSkge1xuICAgICAgY2FuZGlkYXRlTGFuZyA9IHN0b3JhZ2VMYW5nO1xuICAgIH0gZWxzZSBpZiAoYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKHF1ZXJ5TGFuZykpIHtcbiAgICAgIGNhbmRpZGF0ZUxhbmcgPSBxdWVyeUxhbmc7XG4gICAgfSBlbHNlIGlmIChhdmFpbGFibGVMYW5ndWFnZXMuaW5jbHVkZXMoY291bnRyeUxhbmcpKSB7XG4gICAgICBjYW5kaWRhdGVMYW5nID0gY291bnRyeUxhbmc7XG4gICAgfVxuICAgIGlmICghdGhpcy52ZXJzaW9uU3J2LmxhbmdzLmluY2x1ZGVzKGNhbmRpZGF0ZUxhbmcgYXMgTEFOR1VBR0UpKSB7XG4gICAgICBjYW5kaWRhdGVMYW5nID0gREVGQVVMVF9MQU5HO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy5zYXZlKSB7XG4gICAgICB0aGlzLl9zdG9yYWdlLnNhdmVEZWZhdWx0TGFuZyhjYW5kaWRhdGVMYW5nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTcnYudXNlKGNhbmRpZGF0ZUxhbmcpO1xuICB9XG59XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';
2
- import { I18N_KEY } from './../../../i18n';
3
- import { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';
4
- import { SanitizerPipe } from '../../pipes/sanitizer.pipe';
5
- import { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';
6
- import * as i0 from "@angular/core";
7
- export class ConstructorStatusComponent {
8
- constructor() {
9
- this.versionSrv = inject(TERMINAL_VERSION_SERVICE_TOKEN);
10
- this.SecurityContext = SecurityContext;
11
- this.I18N_KEY = I18N_KEY;
12
- this.failed = false;
13
- this.inProgress = false;
14
- this.animation = true;
15
- this.hasSupportHint = true;
16
- }
17
- get supportEmail() {
18
- return this.versionSrv.supportEmail;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorStatusComponent, isStandalone: true, selector: "app-constructor-status", inputs: { failed: "failed", inProgress: "inProgress", animation: "animation", message: "message", failTitle: "failTitle", progressTitle: "progressTitle", successTitle: "successTitle", tabIndex: "tabIndex", backUrl: "backUrl", backUrlTitle: "backUrlTitle", hasSupportHint: "hasSupportHint" }, ngImport: i0, template: "<div class=\"c-status\">\n <div class=\"c-status__content\"\n [class.c-status--failed]=\"failed\"\n [class.c-status--progress]=\"inProgress\"\n [class.c-status--live]=\"animation\"\n >\n <i class=\"c-status__img\"></i>\n <h5 class=\"c-status__title\">\n @if (inProgress) {\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\n } @else {\n @if (failed) {\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\n }\n @if (!failed) {\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\n }\n }\n </h5>\n <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\n @if (hasSupportHint) {\n <div class=\"c-status__hint\">\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\n @if (supportEmail) {\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\n }\n </div>\n }\n </div>\n @if (!!backUrl) {\n <div class=\"c-status__actions\">\n <a class=\"trm-button trm-button--primary\"\n [tabindex]=\"tabIndex\"\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\n <div class=\"c-status__hint c-status__hint-button\">\n <ng-content constructor-status-button-hint></ng-content>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}.c-status{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.c-status__content{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:stretch}.c-status--progress.c-status--live~.c-status__actions{display:none}.c-status__img{flex:none;margin-bottom:10px;align-self:center;border:0}.c-status__title{text-align:center;align-self:center}.c-status__msg{align-self:center;white-space:normal;overflow:hidden;max-width:100%;text-overflow:ellipsis}.c-status__msg,.c-status__hint{text-align:center;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.c-status__hint-button{font-size:14px}.c-status__actions{display:flex;flex-direction:column;gap:4px;justify-content:stretch;align-items:stretch}.c-status__actions .trm-button{color:#fff!important}\n"], dependencies: [{ kind: "pipe", type: SanitizerPipe, name: "sanitize" }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorStatusComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: 'app-constructor-status', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SanitizerPipe, TranslateByKeyPipe], template: "<div class=\"c-status\">\n <div class=\"c-status__content\"\n [class.c-status--failed]=\"failed\"\n [class.c-status--progress]=\"inProgress\"\n [class.c-status--live]=\"animation\"\n >\n <i class=\"c-status__img\"></i>\n <h5 class=\"c-status__title\">\n @if (inProgress) {\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\n } @else {\n @if (failed) {\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\n }\n @if (!failed) {\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\n }\n }\n </h5>\n <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\n @if (hasSupportHint) {\n <div class=\"c-status__hint\">\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\n @if (supportEmail) {\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\n }\n </div>\n }\n </div>\n @if (!!backUrl) {\n <div class=\"c-status__actions\">\n <a class=\"trm-button trm-button--primary\"\n [tabindex]=\"tabIndex\"\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\n <div class=\"c-status__hint c-status__hint-button\">\n <ng-content constructor-status-button-hint></ng-content>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block}.c-status{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.c-status__content{display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:stretch}.c-status--progress.c-status--live~.c-status__actions{display:none}.c-status__img{flex:none;margin-bottom:10px;align-self:center;border:0}.c-status__title{text-align:center;align-self:center}.c-status__msg{align-self:center;white-space:normal;overflow:hidden;max-width:100%;text-overflow:ellipsis}.c-status__msg,.c-status__hint{text-align:center;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.c-status__hint-button{font-size:14px}.c-status__actions{display:flex;flex-direction:column;gap:4px;justify-content:stretch;align-items:stretch}.c-status__actions .trm-button{color:#fff!important}\n"] }]
26
- }], propDecorators: { failed: [{
27
- type: Input
28
- }], inProgress: [{
29
- type: Input
30
- }], animation: [{
31
- type: Input
32
- }], message: [{
33
- type: Input
34
- }], failTitle: [{
35
- type: Input
36
- }], progressTitle: [{
37
- type: Input
38
- }], successTitle: [{
39
- type: Input
40
- }], tabIndex: [{
41
- type: Input
42
- }], backUrl: [{
43
- type: Input
44
- }], backUrlTitle: [{
45
- type: Input
46
- }], hasSupportHint: [{
47
- type: Input
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3Itc3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3NoYXJlZC9jb21wb25lbnRzL2NvbnN0cnVjdG9yLXN0YXR1cy9jb25zdHJ1Y3Rvci1zdGF0dXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2hhcmVkL2NvbXBvbmVudHMvY29uc3RydWN0b3Itc3RhdHVzL2NvbnN0cnVjdG9yLXN0YXR1cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBVXZFLE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFTWSxlQUFVLEdBQUcsTUFBTSxDQUEwQiw4QkFBOEIsQ0FBQyxDQUFDO1FBRXJGLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFDWCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBUWpCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0tBSWxDO0lBSEcsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDOzhHQWxCUSwwQkFBMEI7a0dBQTFCLDBCQUEwQixzWENoQnZDLDI0Q0F3Q0EsdzRCRDFCYyxhQUFhLDRDQUFFLGtCQUFrQjs7MkZBRWxDLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDOzhCQU9uQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBTZWN1cml0eUNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi9pMThuJztcbmltcG9ydCB7IFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IFZlcnNpb25TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcblxuaW1wb3J0IHsgU2FuaXRpemVyUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3Nhbml0aXplci5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLXN0YXR1cycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnN0cnVjdG9yLXN0YXR1cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3Itc3RhdHVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbU2FuaXRpemVyUGlwZSwgVHJhbnNsYXRlQnlLZXlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RvclN0YXR1c0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSB2ZXJzaW9uU3J2ID0gaW5qZWN0PFZlcnNpb25TZXJ2aWNlSW50ZXJmYWNlPihURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4pO1xuXG4gICAgU2VjdXJpdHlDb250ZXh0ID0gU2VjdXJpdHlDb250ZXh0O1xuICAgIEkxOE5fS0VZID0gSTE4Tl9LRVk7XG4gICAgQElucHV0KCkgZmFpbGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFuaW1hdGlvbiA9IHRydWU7XG4gICAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZhaWxUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHByb2dyZXNzVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWNjZXNzVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGJhY2tVcmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBiYWNrVXJsVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBoYXNTdXBwb3J0SGludCA9IHRydWU7XG4gICAgZ2V0IHN1cHBvcnRFbWFpbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmVyc2lvblNydi5zdXBwb3J0RW1haWw7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImMtc3RhdHVzXCI+XG4gIDxkaXYgY2xhc3M9XCJjLXN0YXR1c19fY29udGVudFwiXG4gICAgW2NsYXNzLmMtc3RhdHVzLS1mYWlsZWRdPVwiZmFpbGVkXCJcbiAgICBbY2xhc3MuYy1zdGF0dXMtLXByb2dyZXNzXT1cImluUHJvZ3Jlc3NcIlxuICAgIFtjbGFzcy5jLXN0YXR1cy0tbGl2ZV09XCJhbmltYXRpb25cIlxuICAgID5cbiAgICA8aSBjbGFzcz1cImMtc3RhdHVzX19pbWdcIj48L2k+XG4gICAgPGg1IGNsYXNzPVwiYy1zdGF0dXNfX3RpdGxlXCI+XG4gICAgICBAaWYgKGluUHJvZ3Jlc3MpIHtcbiAgICAgICAge3sgcHJvZ3Jlc3NUaXRsZSB8fCAoSTE4Tl9LRVkuUFJPR1JFU1NfVElUTEUgfCB0cmFucykgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGZhaWxlZCkge1xuICAgICAgICAgIHt7IGZhaWxUaXRsZSB8fCAoSTE4Tl9LRVkuVEVSTUlOQUxfU0VTU0lPTl9CUkVBSyB8IHRyYW5zKSB9fVxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIWZhaWxlZCkge1xuICAgICAgICAgIHt7IHN1Y2Nlc3NUaXRsZSB8fCAoSTE4Tl9LRVkuVEVSTUlOQUxfU0VTU0lPTl9TVUNDRVNTIHwgdHJhbnMpIH19XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2g1PlxuICAgIDxkaXYgY2xhc3M9XCJjLXN0YXR1c19fbXNnXCIgW2lubmVySFRNTF09XCJtZXNzYWdlXCI+IHt7IG1lc3NhZ2UgfX08L2Rpdj5cbiAgICBAaWYgKGhhc1N1cHBvcnRIaW50KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYy1zdGF0dXNfX2hpbnRcIj5cbiAgICAgICAge3sgSTE4Tl9LRVkuVEVSTUlOQUxfU0VTU0lPTl9TVVBQT1JUIHwgdHJhbnMgfX06XG4gICAgICAgIEBpZiAoc3VwcG9ydEVtYWlsKSB7XG4gICAgICAgICAgPGEgW2hyZWZdPVwiJ21haWx0bzonICsgc3VwcG9ydEVtYWlsXCI+IHt7IHN1cHBvcnRFbWFpbCB9fSA8L2E+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAoISFiYWNrVXJsKSB7XG4gICAgPGRpdiBjbGFzcz1cImMtc3RhdHVzX19hY3Rpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tcHJpbWFyeVwiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICBbaHJlZl09XCJiYWNrVXJsIHwgc2FuaXRpemU6IFNlY3VyaXR5Q29udGV4dC5VUkxcIj4ge3sgYmFja1VybFRpdGxlIHx8IChJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9SRVRVUk5fVE9fU0hPUCB8IHRyYW5zKSB9fTwvYT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjLXN0YXR1c19faGludCBjLXN0YXR1c19faGludC1idXR0b25cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgY29uc3RydWN0b3Itc3RhdHVzLWJ1dHRvbi1oaW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,8 +0,0 @@
1
- export * from './constructor-status/constructor-status.component';
2
- export * from './terminal-lang-switcher/terminal-lang-switcher.component';
3
- export * from './terminal-layout-tpl/terminal-layout-tpl.component';
4
- export * from './trm-select/trm-select.component';
5
- export * from './trm-select/scrollbar-select-height.directive';
6
- export * from './trm-select/trm-select-label-template.directive';
7
- export * from './trm-amount/trm-amount.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9zaGFyZWQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3Rvci1zdGF0dXMvY29uc3RydWN0b3Itc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIvdGVybWluYWwtbGFuZy1zd2l0Y2hlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXJtaW5hbC1sYXlvdXQtdHBsL3Rlcm1pbmFsLWxheW91dC10cGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHJtLXNlbGVjdC90cm0tc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RybS1zZWxlY3Qvc2Nyb2xsYmFyLXNlbGVjdC1oZWlnaHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJtLXNlbGVjdC90cm0tc2VsZWN0LWxhYmVsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RybS1hbW91bnQvdHJtLWFtb3VudC5jb21wb25lbnQnO1xuXG4iXX0=
@@ -1,59 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
- import { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';
3
- import { Subject } from 'rxjs';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { NgClass } from '@angular/common';
6
- import { TrmSelectComponent } from '../trm-select/trm-select.component';
7
- import { FormsModule } from '@angular/forms';
8
- import { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';
9
- import { TranslateModule } from '@ngx-translate/core';
10
- import { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';
11
- import { TERMINAL_VERSION_SERVICE_TOKEN } from "../../../../const";
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- import * as i2 from "@ngx-translate/core";
15
- export class TerminalLangSwitcherComponent {
16
- get translation_keys() {
17
- return this.langStorageSrv.TRANSLATION_LANG_KEYS;
18
- }
19
- constructor() {
20
- this.versionSrv = inject(TERMINAL_VERSION_SERVICE_TOKEN);
21
- this.langStorageSrv = inject(TranslateLangStorageService);
22
- this.cd = inject(ChangeDetectorRef);
23
- this.unSubscriber = new Subject();
24
- this.loading = false;
25
- this.langChange = new EventEmitter();
26
- this.tabIndex = 0;
27
- this.langStorageSrv.onLangChange$
28
- .pipe(takeUntil(this.unSubscriber))
29
- .subscribe(() => this.cd.detectChanges());
30
- }
31
- get lang() {
32
- return this.langStorageSrv.currentLang;
33
- }
34
- get langs() {
35
- return this.versionSrv.langs;
36
- }
37
- changeLang(lang) {
38
- this.langStorageSrv.setLanguage$({ lang, save: true });
39
- this.cd.markForCheck();
40
- this.langChange.emit(lang);
41
- }
42
- ngOnDestroy() {
43
- this.unSubscriber.next();
44
- this.unSubscriber.unsubscribe();
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TerminalLangSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: TerminalLangSwitcherComponent, isStandalone: true, selector: "app-terminal-lang-switcher", inputs: { loading: "loading", tabIndex: "tabIndex" }, outputs: { langChange: "langChange" }, ngImport: i0, template: "@if (!loading) {\n <app-trm-select class=\"lang-switcher\"\n [hasBorder]=\"false\"\n [searchable]=\"false\"\n [hasScrollbar]=\"false\"\n [data]=\"langs\"\n [ngModel]=\"lang\"\n [tabIndex]=\"tabIndex\"\n (ngModelChange)=\"changeLang($event)\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\n <span> {{translation_keys[item].name | translate}}</span>\n </ng-template>\n </app-trm-select>\n} @else {\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\n}\n", styles: [":host{display:block}@media (min-width: 768px){:host{min-width:108px}}.lang-switcher{--trm-select-padding-right: 20px;--trm-select-arrow-right: 0;width:100%}.fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.fi~span{display:none}@media (min-width: 768px){.fi~span{display:inline}}.trm-skeleton{min-width:70px}.trm-skeleton .loader,.trm-skeleton .skeleton-loader{height:30px}\n"], dependencies: [{ kind: "component", type: TrmSelectComponent, selector: "app-trm-select", inputs: ["label", "hasBorder", "data", "tabIndex", "name", "placeholder", "searchable", "hasScrollbar", "nameId", "nameLabel"], outputs: ["open", "search"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TrmSelectLabelTemplateDirective, selector: "[trmSelectLabelTemplate]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TerminalLangSwitcherComponent, decorators: [{
50
- type: Component,
51
- args: [{ selector: 'app-terminal-lang-switcher', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent], template: "@if (!loading) {\n <app-trm-select class=\"lang-switcher\"\n [hasBorder]=\"false\"\n [searchable]=\"false\"\n [hasScrollbar]=\"false\"\n [data]=\"langs\"\n [ngModel]=\"lang\"\n [tabIndex]=\"tabIndex\"\n (ngModelChange)=\"changeLang($event)\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\n <span> {{translation_keys[item].name | translate}}</span>\n </ng-template>\n </app-trm-select>\n} @else {\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\n}\n", styles: [":host{display:block}@media (min-width: 768px){:host{min-width:108px}}.lang-switcher{--trm-select-padding-right: 20px;--trm-select-arrow-right: 0;width:100%}.fi{border-radius:2px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-sizing:border-box;background-origin:border-box;flex-shrink:0;height:15px}.fi~span{display:none}@media (min-width: 768px){.fi~span{display:inline}}.trm-skeleton{min-width:70px}.trm-skeleton .loader,.trm-skeleton .skeleton-loader{height:30px}\n"] }]
52
- }], ctorParameters: () => [], propDecorators: { loading: [{
53
- type: Input
54
- }], langChange: [{
55
- type: Output
56
- }], tabIndex: [{
57
- type: Input
58
- }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtbGFuZy1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9zaGFyZWQvY29tcG9uZW50cy90ZXJtaW5hbC1sYW5nLXN3aXRjaGVyL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdGVybWluYWwtbGFuZy1zd2l0Y2hlci90ZXJtaW5hbC1sYW5nLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFXbkUsTUFBTSxPQUFPLDZCQUE2QjtJQVV0QyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUM7SUFDckQsQ0FBQztJQUVEO1FBYlEsZUFBVSxHQUE0QixNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUM3RSxtQkFBYyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3JELE9BQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFPbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhO2FBQzVCLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUMvQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDM0MsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0F0Q1EsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsbUxDOUIxQyxxbEJBa0JBLG1oQkRVWSxrQkFBa0IsdU5BQUUsV0FBVywrVkFBRSwrQkFBK0IscUVBQUUsT0FBTyxtRkFBRSxlQUFlLDRGQUFFLG1CQUFtQjs7MkZBRTlHLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDSSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNULENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUM7d0RBUS9HLE9BQU87c0JBQWYsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0ZS1sYW5nLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRybVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3RybS1zZWxlY3QvdHJtLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcm1TZWxlY3RMYWJlbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vdHJtLXNlbGVjdC90cm0tc2VsZWN0LWxhYmVsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEdtU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICdAZ21tb25leS9nbS11aS1raXQnO1xuaW1wb3J0IHsgVEVSTUlOQUxfVkVSU0lPTl9TRVJWSUNFX1RPS0VOIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvbnN0XCI7XG5pbXBvcnQgeyBWZXJzaW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtdGVybWluYWwtbGFuZy1zd2l0Y2hlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJtU2VsZWN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgVHJtU2VsZWN0TGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSwgTmdDbGFzcywgVHJhbnNsYXRlTW9kdWxlLCBHbVNrZWxldG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbExhbmdTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSB2ZXJzaW9uU3J2OiBWZXJzaW9uU2VydmljZUludGVyZmFjZSA9IGluamVjdChURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4pO1xuICAgIHByaXZhdGUgbGFuZ1N0b3JhZ2VTcnYgPSBpbmplY3QoVHJhbnNsYXRlTGFuZ1N0b3JhZ2VTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIHByaXZhdGUgdW5TdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIGxhbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XG5cbiAgICBnZXQgdHJhbnNsYXRpb25fa2V5cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ1N0b3JhZ2VTcnYuVFJBTlNMQVRJT05fTEFOR19LRVlTO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxhbmdTdG9yYWdlU3J2Lm9uTGFuZ0NoYW5nZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgIH1cblxuICAgIGdldCBsYW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5nU3RvcmFnZVNydi5jdXJyZW50TGFuZztcbiAgICB9XG4gICAgZ2V0IGxhbmdzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmVyc2lvblNydi5sYW5ncztcbiAgICB9XG5cbiAgICBjaGFuZ2VMYW5nKGxhbmc6IHN0cmluZykge1xuICAgICAgdGhpcy5sYW5nU3RvcmFnZVNydi5zZXRMYW5ndWFnZSQoeyBsYW5nLCBzYXZlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMubGFuZ0NoYW5nZS5lbWl0KGxhbmcpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlci5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiQGlmICghbG9hZGluZykge1xuICA8YXBwLXRybS1zZWxlY3QgY2xhc3M9XCJsYW5nLXN3aXRjaGVyXCJcbiAgICBbaGFzQm9yZGVyXT1cImZhbHNlXCJcbiAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXG4gICAgW2hhc1Njcm9sbGJhcl09XCJmYWxzZVwiXG4gICAgW2RhdGFdPVwibGFuZ3NcIlxuICAgIFtuZ01vZGVsXT1cImxhbmdcIlxuICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlTGFuZygkZXZlbnQpXCJcbiAgICA+XG4gICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZpXCIgW25nQ2xhc3NdPVwiJ2ZpLScgKyB0cmFuc2xhdGlvbl9rZXlzW2l0ZW1dLmNvZGVcIj48L3NwYW4+XG4gICAgICA8c3Bhbj4ge3t0cmFuc2xhdGlvbl9rZXlzW2l0ZW1dLm5hbWUgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2FwcC10cm0tc2VsZWN0PlxufSBAZWxzZSB7XG4gIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMVwiIFtzaXplXT1cIjMwXCI+PC9nbS1za2VsZXRvbj5cbn1cbiJdfQ==