trm-tmpl 4.0.1 → 5.0.0-beta.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"trm-tmpl.mjs","sources":["../../../projects/terminal-template/src/lib/codegen/model/apiErrors.ts","../../../projects/terminal-template/src/lib/codegen/model/invoiceStatus.ts","../../../projects/terminal-template/src/lib/app/helpers/i18n-countries.ts","../../../projects/terminal-template/src/lib/app/i18n/i18n-key.enum.ts","../../../projects/terminal-template/src/lib/app/i18n/keys.ts","../../../projects/terminal-template/src/lib/app/models/constants.ts","../../../projects/terminal-template/src/lib/app/models/mode.ts","../../../projects/terminal-template/src/lib/app/models/version-service-base-class.ts","../../../projects/terminal-template/src/lib/app/services/api-errors.service.ts","../../../projects/terminal-template/src/lib/const.ts","../../../projects/terminal-template/src/lib/app/services/local-storage.ts","../../../projects/terminal-template/src/lib/app/services/csrf.resolver.ts","../../../projects/terminal-template/src/lib/app/services/error.interceptior.ts","../../../projects/terminal-template/src/lib/app/services/translation/translate-lang-storage.service.ts","../../../projects/terminal-template/src/lib/app/helpers/hide-init-loader.ts","../../../projects/terminal-template/src/lib/app/helpers/insertRemoveTrigger.ts","../../../projects/terminal-template/src/lib/app/helpers/phone-codes.ts","../../../projects/terminal-template/src/lib/app/helpers/mask-resolver.ts","../../../projects/terminal-template/src/lib/app/helpers/key-down-handler.ts","../../../projects/terminal-template/src/lib/app/helpers/is-object-the-same.ts","../../../projects/terminal-template/src/lib/app/helpers/warning-console-message.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/payment-field-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/collection-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/field-template.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/advcash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/terminal-step.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/index.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alfabank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay_plus.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/applepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/argentina_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/atf24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/baloto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/beeline.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/blik.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/boleto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/brazil_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/card.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/carga_virtual.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cashtocode.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/codi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/comepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_p2p.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/deposit_express.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/dotpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ecopayz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/eps.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/giropay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/gmmoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/googlepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ideal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton_voucher.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/kassa24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/link.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_brazil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/loterica.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/malaysia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/megafon.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mexico_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/momopay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/moneta.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mts.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/multibanco.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neosurf.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neteller.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/nupay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/onecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/oxxo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoefectivo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoexpress.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagofacil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paypal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paysafecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/picpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pix.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/philippines_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promptpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promsviaz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/przelewy24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/qiwi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapid.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapipago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/redpagos.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sberbank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sbp.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sepa.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/servipag.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinify.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinsback.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skrill.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sofort.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/spei.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/store_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tele2.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tinkoff.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/trustly.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/webpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wechat.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wme.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmu.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/zen_wallet.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/yandex.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wallester.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/bitcoin.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tron.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ethereum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether_trc20.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mercado_pago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mirpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mbway.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/all.ts","../../../projects/terminal-template/src/lib/app/services/session.data-source.ts","../../../projects/terminal-template/src/lib/app/services/script-loader.ts","../../../projects/terminal-template/src/lib/app/terminal.module.ts","../../../projects/terminal-template/src/lib/app/pages/directives/fee-template.directive.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select-label-template.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/scrollbar-select-height.directive.ts","../../../projects/terminal-template/src/lib/app/shared/pipes/translate-by-key.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/pipes/sanitizer.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.html","../../../projects/terminal-template/src/lib/app/shared/directives/ng-var.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.html","../../../projects/terminal-template/src/lib/app/shared/shared.module.ts","../../../projects/terminal-template/src/lib/helpers/remove-empty-props.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/services/constructor-form.service.ts","../../../projects/terminal-template/src/lib/app/pipes/country-translate.pipe.ts","../../../projects/terminal-template/src/lib/app/pipes/countries-sort.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.html","../../../projects/terminal-template/src/lib/app/pipes/method-title.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/directives/tab-index-focus.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.html","../../../projects/terminal-template/src/lib/app/pages/services/mask.service.ts","../../../projects/terminal-template/src/lib/app/pages/directives/input-mask-corrector.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.html","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.html","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.html","../../../projects/terminal-template/src/lib/app/pages/pages.module.ts","../../../projects/terminal-template/src/lib/app/checkin/services/checkin.datasource.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.html","../../../projects/terminal-template/src/lib/app/checkin/checkin.module.ts","../../../projects/terminal-template/src/lib/helpers/moment-import.ts","../../../projects/terminal-template/src/public-api.ts","../../../projects/terminal-template/src/trm-tmpl.ts"],"sourcesContent":["/**\r\n * Codes of the data validation API errors\r\n */\r\nexport enum ApiErrors {\r\n SESSION_NOT_FOUND = 'error_session_not_found',\r\n SESSION_USED = 'error_session_used',\r\n SESSION_EXPIRED = 'error_session_expired',\r\n FORMAT_WALLET = 'error_format_wallet',\r\n FORMAT_PHONE = 'error_format_phone',\r\n FORMAT_DATE_BIRTH = 'error_format_date_birth',\r\n FORMAT_EMAIL = 'error_format_email',\r\n FORMAT_STEAM_TOKEN = 'error_format_steam_token',\r\n FORMAT_NUMERIC = 'error_format_numeric',\r\n FORMAT_ZIP = 'error_format_zip',\r\n FORMAT_UPPER_LIMIT = 'error_format_upper_limit',\r\n FORMAT_LOWER_LIMIT = 'error_format_lower_limit',\r\n FORMAT_AMOUNT_OUT_OF_LIMIT = 'error_format_amount_out_of_limit',\r\n FORMAT_AMOUNT_NOT_POSITIVE = 'error_format_amount_not_positive',\r\n INSUFFICIENT_FUNDS = 'error_insufficient_funds',\r\n PAYMENT_COUNT_EXCEEDED = 'error_payment_count_exceeded',\r\n SECURITY_CHECK_FAILED = 'error_security_check_failed',\r\n INCORRECT_CARD_NUMBER = 'error_incorrect_card_number',\r\n INCORRECT_CARD_HOLDER = 'error_incorrect_card_holder',\r\n INCORRECT_CARD_CVV = 'error_incorrect_card_cvv',\r\n INCORRECT_CARD_DATE = 'error_incorrect_card_date',\r\n INCORRECT_CARD_DATA = 'error_incorrect_card_data',\r\n TRANSACTION_3DS_EXPIRED = 'error_transaction_3ds_expired',\r\n CARD_DATA_NOT_ENTERED = 'error_card_data_not_entered',\r\n CARD_EXPIRED = 'error_card_expired',\r\n AUTH_3DS_FAILED = 'error_auth_3ds_failed',\r\n CARD_LIMIT_EXCEEDED = 'error_card_limit_exceeded',\r\n USER_CANCEL_TRANSACTION = 'error_user_cancel_transaction',\r\n NOT_3DS_SECURE_PAYMENT = 'error_not_3ds_secure_payment',\r\n TIME_FOR_PAY_EXPIRED = 'error_time_for_expired',\r\n SOFT_DECLINE = 'error_soft_decline',\r\n USER_ACCOUNT_NOT_FOUND = 'error_user_account_not_found',\r\n PROVIDER_DENIED = 'error_provider_denied',\r\n INTERNAL = 'error_internal'\r\n};\r\n\r\n","export enum InvoiceStatus {\r\n New = 'new',\r\n Paid = 'paid',\r\n Refused = 'refused'\r\n};\r\n\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeRu from '@angular/common/locales/ru';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport localeTr from '@angular/common/locales/tr';\r\nimport localeEs from '@angular/common/locales/es';\r\nimport localePt from '@angular/common/locales/pt';\r\nimport localeLt from '@angular/common/locales/lt';\r\nimport EN_COUNTRIES from 'i18n-iso-countries/langs/en.json';\r\nimport RU_COUNTRIES from 'i18n-iso-countries/langs/ru.json';\r\nimport ES_COUNTRIES from 'i18n-iso-countries/langs/es.json';\r\nimport TR_COUNTRIES from 'i18n-iso-countries/langs/tr.json';\r\nimport PT_COUNTRIES from 'i18n-iso-countries/langs/pt.json';\r\nimport LT_COUNTRIES from 'i18n-iso-countries/langs/lt.json';\r\nimport { registerLocale } from 'i18n-iso-countries';\r\n\r\nexport const OTHER_COUNTRY_CODE = 'other';\r\n\r\n// Additional countries\r\nObject.assign(EN_COUNTRIES.countries, {\r\n OS: 'South Ossetia',\r\n AB: 'Abkhazia',\r\n [OTHER_COUNTRY_CODE]: 'Other'\r\n});\r\nObject.assign(RU_COUNTRIES.countries, {\r\n OS: 'Южная Осетия',\r\n AB: 'Абхазия',\r\n [OTHER_COUNTRY_CODE]: 'Другие'\r\n});\r\n\r\nObject.assign(ES_COUNTRIES.countries, {\r\n OS: 'Osetia del Sur',\r\n AB: 'Abjasia',\r\n [OTHER_COUNTRY_CODE]: 'Otro'\r\n});\r\n\r\nObject.assign(TR_COUNTRIES.countries, {\r\n OS: 'Güney Osetya',\r\n AB: 'Abhazya',\r\n [OTHER_COUNTRY_CODE]: 'Diğer'\r\n});\r\n\r\nObject.assign(PT_COUNTRIES.countries, {\r\n OS: 'Ossétia do Sul',\r\n AB: 'Abecásia',\r\n [OTHER_COUNTRY_CODE]: 'Outro'\r\n});\r\n\r\nexport const loadI18NData = () => {\r\n registerLocaleData(localeRu);\r\n registerLocaleData(localeEn);\r\n registerLocaleData(localeEs);\r\n registerLocaleData(localeTr);\r\n registerLocaleData(localePt);\r\n registerLocaleData(localeLt);\r\n registerLocale(EN_COUNTRIES);\r\n registerLocale(RU_COUNTRIES);\r\n registerLocale(ES_COUNTRIES);\r\n registerLocale(TR_COUNTRIES);\r\n registerLocale(PT_COUNTRIES);\r\n registerLocale(LT_COUNTRIES);\r\n}\r\n\r\n","export enum I18N_KEY {\r\n TITLE_PAGE_INVOICE = 'TITLE_PAGE_INVOICE',\r\n TITLE_PAGE_SAVE_CARD = 'TITLE_PAGE_SAVE_CARD',\r\n TITLE_PAGE_PAY_CARD = 'TITLE_PAGE_PAY_CARD',\r\n CARD_SAVE_HEADER = 'CARD_SAVE_HEADER',\r\n CARD_PAY_HEADER = 'CARD_PAY_HEADER',\r\n CDE_CARD_ERROR_500 = 'CDE_CARD_ERROR_500',\r\n CDE_CARD_ERROR_501 = 'CDE_CARD_ERROR_501',\r\n CDE_CARD_ERROR_504 = 'CDE_CARD_ERROR_504',\r\n SESSION_CLOSED = 'session_closed',\r\n APPLE_NOT_AVAILABLE = 'apple_not_available',\r\n MIRPAY_NOT_AVAILABLE = 'mirpay_not_available',\r\n CDE_CARD_ERROR_ALREADY_PAID = 'CDE_CARD_ERROR_ALREADY_PAID',\r\n CDE_CARD_PAID = 'CDE_CARD_PAID',\r\n PAGE_NOT_FOUNT = 'page_not_found',\r\n DEFAULT_ERROR_CODE = 'error_api',\r\n DEFAULT_ERROR_CODE_GENERAL = 'error_general',\r\n ERROR_OCCUR = 'ERROR_OCCUR',\r\n ERROR_OCCUR_SDK = 'ERROR_OCCUR_SDK',\r\n PROGRESS_TITLE = 'PROGRESS_TITLE',\r\n FAIL_TITLE = 'FAIL_TITLE',\r\n SUCCESS_TITLE = 'SUCCESS_TITLE',\r\n REDIRECT_TEXT = 'REDIRECT_TEXT',\r\n CHECKIN_MESSAGE = 'CHECKIN_MESSAGE',\r\n CHECKIN_WAIT = 'CHECKIN_WAIT',\r\n CHECKIN_WAIT_TIMEOVER = 'CHECKIN_WAIT_TIMEOVER',\r\n CHECKIN_FAILED = 'CHECKIN_FAILED',\r\n PROGRESS_3DS_TITLE = 'PROGRESS_3DS_TITLE',\r\n PROGRESS_3DS_WAIT = 'PROGRESS_3DS_WAIT',\r\n PROGRESS_3DS_FAILED = 'PROGRESS_3DS_FAILED',\r\n SESSION_BREAK = 'SESSION_BREAK',\r\n TERMINAL_SESSION_BREAK = 'TERMINAL_SESSION_BREAK',\r\n TERMINAL_SESSION_SUCCESS = 'TERMINAL_SESSION_SUCCESS',\r\n TERMINAL_SESSION_SUPPORT = 'TERMINAL_SESSION_SUPPORT',\r\n SELECT_SEARCH = 'SELECT_SEARCH',\r\n SELECT_EMPTY_LIST = 'SELECT_EMPTY_LIST',\r\n VALIDATION_REQUIRED = 'validation_required',\r\n VALIDATION_EMAIL = 'validation_email',\r\n VALIDATION_MIN = 'validation_min',\r\n VALIDATION_MAX = 'validation_max',\r\n VALIDATION_PATTERN = 'validation_pattern',\r\n VALIDATION_DATE_MIN = 'validation_date_min',\r\n VALIDATION_DATE_MAX = 'validation_date_max',\r\n CONSTRUCTOR_LABEL_PHONE = 'CONSTRUCTOR_LABEL_PHONE',\r\n CONSTRUCTOR_LABEL_EMAIL = 'CONSTRUCTOR_LABEL_EMAIL',\r\n CONSTRUCTOR_LABEL_AMOUNT = 'CONSTRUCTOR_LABEL_AMOUNT',\r\n CONSTRUCTOR_LABEL_FIRSTNAME = 'CONSTRUCTOR_LABEL_FIRSTNAME',\r\n CONSTRUCTOR_LABEL_LASTNAME = 'CONSTRUCTOR_LABEL_LASTNAME',\r\n CONSTRUCTOR_LABEL_DATEBIRTH = 'CONSTRUCTOR_LABEL_DATEBIRTH',\r\n CONSTRUCTOR_LABEL_ZIP = 'CONSTRUCTOR_LABEL_ZIP',\r\n CONSTRUCTOR_LABEL_TYPEDOCUMENT = 'CONSTRUCTOR_LABEL_TYPEDOCUMENT',\r\n CONSTRUCTOR_LABEL_DOCUMENT = 'CONSTRUCTOR_LABEL_DOCUMENT',\r\n CONSTRUCTOR_LABEL_BANK = 'CONSTRUCTOR_LABEL_BANK',\r\n CONSTRUCTOR_LABEL_COUNTRY = 'CONSTRUCTOR_LABEL_COUNTRY',\r\n CONSTRUCTOR_LABEL_CONTINUE = 'CONSTRUCTOR_LABEL_CONTINUE',\r\n CONSTRUCTOR_LABEL_RETURN = 'CONSTRUCTOR_LABEL_RETURN',\r\n CONSTRUCTOR_LABEL_RETURN_TO_SHOP = 'CONSTRUCTOR_LABEL_RETURN_TO_SHOP',\r\n CONSTRUCTOR_LABEL_CANCEL_RETURN = 'CONSTRUCTOR_LABEL_CANCEL_RETURN',\r\n CONSTRUCTOR_LABEL_FEE = 'CONSTRUCTOR_LABEL_FEE',\r\n CONSTRUCTOR_LABEL_MIN_AMOUNT = 'CONSTRUCTOR_LABEL_MIN_AMOUNT',\r\n CONSTRUCTOR_LABEL_MAX_AMOUNT = 'CONSTRUCTOR_LABEL_MAX_AMOUNT',\r\n CONSTRUCTOR_LABEL_PS = 'CONSTRUCTOR_LABEL_PS',\r\n CONSTRUCTOR_LABEL_WALLET = 'CONSTRUCTOR_LABEL_WALLET',\r\n CONSTRUCTOR_LABEL_AMOUNT_FEE = 'CONSTRUCTOR_LABEL_AMOUNT_FEE',\r\n CONSTRUCTOR_LABEL_MIN_FIXED_FEE = 'CONSTRUCTOR_LABEL_MIN_FIXED_FEE',\r\n CONSTRUCTOR_LABEL_CURRENCY = 'CONSTRUCTOR_LABEL_CURRENCY',\r\n CONSTRUCTOR_PREPARATION_HEADER = 'CONSTRUCTOR_PREPARATION_HEADER',\r\n CONSTRUCTOR_MEGAFON_PREPARATION_TEXT = 'constructor_megafon_preparation_text',\r\n CONSTRUCTOR_PLACEHOLDER_PHONE = 'CONSTRUCTOR_PLACEHOLDER_PHONE',\r\n CONSTRUCTOR_PLACEHOLDER_EMAIL = 'CONSTRUCTOR_PLACEHOLDER_EMAIL',\r\n CONSTRUCTOR_PLACEHOLDER_AMOUNT = 'CONSTRUCTOR_PLACEHOLDER_AMOUNT',\r\n CONSTRUCTOR_PLACEHOLDER_FIRSTNAME = 'CONSTRUCTOR_PLACEHOLDER_FIRSTNAME',\r\n CONSTRUCTOR_PLACEHOLDER_LASTNAME = 'CONSTRUCTOR_PLACEHOLDER_LASTNAME',\r\n CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT',\r\n CONSTRUCTOR_PLACEHOLDER_ZIP = 'CONSTRUCTOR_PLACEHOLDER_ZIP',\r\n CONSTRUCTOR_PLACEHOLDER_BANK = 'CONSTRUCTOR_PLACEHOLDER_BANK',\r\n CONSTRUCTOR_PLACEHOLDER_DOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_DOCUMENT',\r\n CONSTRUCTOR_PLACEHOLDER_WALLET = 'CONSTRUCTOR_PLACEHOLDER_WALLET',\r\n CONSTRUCTOR_PLACEHOLDER_PS = 'CONSTRUCTOR_PLACEHOLDER_PS',\r\n CONSTRUCTOR_DESCRIPTION_VOUCHER = 'CONSTRUCTOR_DESCRIPTION_VOUCHER',\r\n CONSTRUCTOR_DESCRIPTION_APPLEPAY = 'CONSTRUCTOR_DESCRIPTION_APPLEPAY',\r\n CONSTRUCTOR_DESCRIPTION_CASHTOCODE = 'CONSTRUCTOR_DESCRIPTION_CASHTOCODE',\r\n CONSTRUCTOR_DESCRIPTION_PHONE = 'CONSTRUCTOR_DESCRIPTION_PHONE'\r\n}\r\n","import { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { I18N_KEY } from './i18n-key.enum';\r\n\r\nexport const i18nMap: Map<ApiErrors | I18N_KEY, string> = new Map<ApiErrors | I18N_KEY, string>(\r\n [\r\n [I18N_KEY.TITLE_PAGE_INVOICE, 'Пополнение'],\r\n [I18N_KEY.TITLE_PAGE_SAVE_CARD, 'Сохранение карты'],\r\n [I18N_KEY.TITLE_PAGE_PAY_CARD, 'Пополнение картой'],\r\n [ApiErrors.SESSION_USED, 'Сессия не установлена'],\r\n [ApiErrors.SESSION_EXPIRED, 'Сессия уже использована'],\r\n [ApiErrors.SESSION_NOT_FOUND, 'Время жизни сессии истекло'],\r\n [I18N_KEY.SESSION_BREAK, 'Сессия прервана'],\r\n [I18N_KEY.ERROR_OCCUR, 'Произошла ошибка'],\r\n [ApiErrors.FORMAT_DATE_BIRTH, 'Неправильный формат даты'],\r\n [ApiErrors.FORMAT_EMAIL, 'Неправильный формат email'],\r\n [ApiErrors.FORMAT_NUMERIC, 'Неправильный формат одного из числовых полей'],\r\n [ApiErrors.FORMAT_LOWER_LIMIT, 'Сумма меньше минимального значения'],\r\n [ApiErrors.FORMAT_UPPER_LIMIT, 'Превышено максимальное значение суммы'],\r\n [ApiErrors.FORMAT_AMOUNT_OUT_OF_LIMIT, 'Сумма за пределами допустимых лимитов'],\r\n [ApiErrors.FORMAT_AMOUNT_NOT_POSITIVE, 'Сумма должна быть положительной'],\r\n [ApiErrors.FORMAT_STEAM_TOKEN, 'Неправильный формат токена steam'],\r\n [ApiErrors.FORMAT_WALLET, 'Неправильный формат кошелька'],\r\n [ApiErrors.FORMAT_ZIP, 'Неправильный формат почтового индекса'],\r\n [ApiErrors.FORMAT_PHONE, 'Неправильный формат телефона'],\r\n [ApiErrors.INSUFFICIENT_FUNDS, 'Недостаточно средств, чтобы провести операцию'],\r\n [ApiErrors.PAYMENT_COUNT_EXCEEDED, 'Исчерпан лимит платежей для платёжного направления'],\r\n [ApiErrors.SECURITY_CHECK_FAILED, 'Операция отклонена системой безопасности'],\r\n [ApiErrors.PROVIDER_DENIED, 'Платёж отклонён провайдером'],\r\n [ApiErrors.INTERNAL, 'Внутренняя ошибка'],\r\n [I18N_KEY.CARD_SAVE_HEADER, 'Сохранение карты для дальнейших покупок'],\r\n [I18N_KEY.CARD_PAY_HEADER, 'Пополнение банковской картой'],\r\n [I18N_KEY.CDE_CARD_ERROR_501, 'Сессия с указанным токеном не найдена'],\r\n [I18N_KEY.CDE_CARD_ERROR_504, 'Время сессии истекло'],\r\n [I18N_KEY.CDE_CARD_ERROR_500, 'Внутренняя ошибка. Попробуйте повторить попытку позже'],\r\n [I18N_KEY.DEFAULT_ERROR_CODE, 'Обратитесь в техническую поддержку магазина'],\r\n [I18N_KEY.DEFAULT_ERROR_CODE_GENERAL, 'Произошла ошибка. Обратитесь в службу поддержки.'],\r\n [I18N_KEY.PAGE_NOT_FOUNT, 'Страница не найдена'],\r\n [I18N_KEY.SESSION_CLOSED, 'Сессия закрыта'],\r\n [I18N_KEY.APPLE_NOT_AVAILABLE, 'ApplePay недоступен в текущем окружении'],\r\n [I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID, 'Данные карты отправлены. Подтвердите платеж.'],\r\n [I18N_KEY.CDE_CARD_PAID, 'Данные карты отправлены.'],\r\n [I18N_KEY.MIRPAY_NOT_AVAILABLE, 'MirPay временно недоступен'],\r\n [I18N_KEY.VALIDATION_REQUIRED, 'Обязательное поле'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_PHONE, 'Номер телефона'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_EMAIL, 'Email'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT, 'Сумма платежа'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME, 'Имя'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME, 'Фамилия'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH, 'Дата рождения'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_ZIP, 'Индекс'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT, 'Тип документа'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT, 'Документ'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_BANK, 'Банк'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE, 'Введите номер'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL, 'Введите email'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT, 'Укажите сумму'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME, 'Введите имя'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME, 'Введите фамилию'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT, 'Выберите тип'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP, 'Укажите индекс (например, 125047)'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK, 'Выберите банк'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT, 'Введите номер документа'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET, 'Введите номер кошелька'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS, 'Выбрать другой метод'],\r\n [I18N_KEY.VALIDATION_EMAIL, 'Некорректный адрес почты'],\r\n [I18N_KEY.VALIDATION_MIN, 'Значение ниже минимально возможного'],\r\n [I18N_KEY.VALIDATION_MAX, 'Значение выше максимально возможного'],\r\n [I18N_KEY.VALIDATION_PATTERN, 'Некорректное значение'],\r\n [I18N_KEY.VALIDATION_DATE_MIN, 'Значение ниже минимальной даты'],\r\n [I18N_KEY.VALIDATION_DATE_MAX, 'Превышено значение максимальной даты'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER, 'Ваучер действителен в течение 48 часов. Обработка платежей может занять до 3 рабочих дней.'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY, 'Данный метод работает только в браузере Safari'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE, 'Для успешного пополнения счета сумма пополнения должна быть равна: 10, 25, 50, 100, 200 или 400 евро.'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE, 'С кодом страны в международном формате'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_PS, 'Платежная система'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_WALLET, 'Кошелек'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE, 'Сумма с учетом комиссии'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE, 'но не менее '],\r\n [I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER, 'Подтвердите реквизиты платежа'],\r\n [I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT, 'Оплачивая услуги с помощью Мегафон, вы соглашаетесь с <a target=\"_blank\" href=\"https://moscow.megafon.ru/download/~federal/oferts/oferta_m_platezhi.pdf\">офертой</a>.'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY, 'Страна'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE, 'Продолжить'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN, 'Вернуться назад'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP, 'Вернуться в магазин'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN, 'Отменить и вернуться'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY, 'Валюта'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_FEE, 'Комиссия'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT, 'Минимальная сумма'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT, 'Максимальная сумма'],\r\n [I18N_KEY.PROGRESS_TITLE, 'Платёж принят в обработку'],\r\n [I18N_KEY.FAIL_TITLE, 'Не удалось провести платёж'],\r\n [I18N_KEY.SUCCESS_TITLE, 'Ваш платёж успешно оплачен!'],\r\n [I18N_KEY.REDIRECT_TEXT, 'Вы будете автоматически перенаправлены через'],\r\n [I18N_KEY.CHECKIN_MESSAGE, 'Операция будет обработана в ближайшее время.'],\r\n [I18N_KEY.CHECKIN_WAIT, 'Пожалуйста, дождитесь окончательного статуса платежа.'],\r\n [I18N_KEY.CHECKIN_WAIT_TIMEOVER, 'Время ожидания статуса истекло. Транзакция будет обработана в ближайшее время.'],\r\n [I18N_KEY.CHECKIN_FAILED, 'Платежная операция не может быть обработана или завершилась с ошибкой.'],\r\n [I18N_KEY.PROGRESS_3DS_TITLE, 'Принято в обработку'],\r\n [I18N_KEY.PROGRESS_3DS_WAIT, 'Пожалуйста, дождитесь окончания проверки.'],\r\n [I18N_KEY.PROGRESS_3DS_FAILED, 'Произошла ошибка при обработке 3ds пароля.'],\r\n [I18N_KEY.TERMINAL_SESSION_BREAK, 'Сессия терминала была прервана'],\r\n [I18N_KEY.TERMINAL_SESSION_SUCCESS, 'Операция прошла успешно!'],\r\n [I18N_KEY.TERMINAL_SESSION_SUPPORT, 'В случае возникновения проблем с платежом, обращайтесь в техническую поддержку магазина или к нам на почту'],\r\n [I18N_KEY.SELECT_SEARCH, 'Поиск'],\r\n [I18N_KEY.SELECT_EMPTY_LIST, 'Список пуст'],\r\n [I18N_KEY.ERROR_OCCUR_SDK, 'Ошибка загрузки терминала']\r\n ]\r\n);\r\n\r\nexport const getI18Key: ((key: I18N_KEY | ApiErrors) => string) = (key: I18N_KEY | ApiErrors) => {\r\n return i18nMap.get(key);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Mode } from './mode';\r\n\r\nexport enum LANGUAGE {\r\n EN = 'en',\r\n RU = 'ru',\r\n ES = 'es',\r\n TR = 'tr',\r\n PT = 'pt',\r\n LT = 'lt'\r\n}\r\nexport const LOCAL_LANG_KEY = 'TERMINAL_LANG';\r\nexport const DEFAULT_LANG = 'en';\r\nexport const APP_READY_TOKEN = new InjectionToken<BehaviorSubject<boolean>>(\r\n 'APP_READY',\r\n { providedIn: 'root', factory: () => new BehaviorSubject<boolean>(false) }\r\n);\r\nexport const CSRF_COOKIE_NAME = 'TERMINAL-CSRF-KEY';\r\nexport const I18N_COUNTRIES = new InjectionToken('i18n-iso-countries');\r\n\r\nexport const SessionToken = new InjectionToken<string>('SessionToken');\r\nexport const CheckinModeToken = new InjectionToken<Mode>('CheckinModeToken');\r\nexport const DEFAULT_COUNTRY_LOCALHOST_KEY = 'GM_TERMINAL_COUNTRY';\r\nexport const DEFAULT_METHOD_LOCALHOST_KEY = 'GM_TERMINAL_METHOD';\r\nexport const DEFAULT_CURRENCY_LOCALHOST_KEY = 'GM_TERMINAL_CURRENCY';\r\n","export enum Mode {\r\n Success = 'success',\r\n Fail = 'fail'\r\n}\r\n","import { VersionServiceInterface } from './version-service-interface';\r\nimport { MethodType } from '../../codegen/model/methodType';\r\n\r\n\r\nexport abstract class VersionServiceBase implements VersionServiceInterface {\r\n\r\n logoClass: string;\r\n methods: MethodType[];\r\n footerText;\r\n pageTitle = 'Title';\r\n supportEmail = '';\r\n\r\n\tprotected constructor(protected document: Document) {\r\n this.footerText = `${document.defaultView.location.hostname} © ${new Date().getFullYear()}`\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ApiErrors, BadRequestResponse } from '../../codegen/model/models';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { SessionToken } from '../models';\r\n\r\ntype ErrorCode = I18N_KEY | ApiErrors;\r\n\r\n@Injectable()\r\nexport class ApiErrorsService {\r\n private token = inject(SessionToken, {optional: true}) || 'token';\r\n\r\n private _localError: ErrorCode;\r\n\r\n constructor() {\r\n }\r\n\r\n clear(): void {\r\n this._localError = null;\r\n }\r\n\r\n get hasError(): boolean {\r\n return !!this._localError;\r\n }\r\n\r\n get hasFatalError(): boolean {\r\n const formatErrors: ErrorCode[] = [\r\n ApiErrors.FORMAT_PHONE,\r\n ApiErrors.FORMAT_DATE_BIRTH,\r\n ApiErrors.FORMAT_EMAIL,\r\n ApiErrors.FORMAT_NUMERIC,\r\n ApiErrors.FORMAT_LOWER_LIMIT,\r\n ApiErrors.FORMAT_UPPER_LIMIT,\r\n ApiErrors.FORMAT_STEAM_TOKEN,\r\n ApiErrors.FORMAT_WALLET,\r\n ApiErrors.FORMAT_ZIP,\r\n ];\r\n if (formatErrors.includes(this._localError)) {\r\n return false;\r\n }\r\n return !!this._localError;\r\n }\r\n\r\n setLocalError(err?: BadRequestResponse | { code: I18N_KEY }): void {\r\n let code: ErrorCode = I18N_KEY.DEFAULT_ERROR_CODE;\r\n if (err?.code) {\r\n code = err.code;\r\n }\r\n this._localError = code;\r\n }\r\n\r\n get hasLocalError() {\r\n return !!this._localError;\r\n }\r\n\r\n getLocalError() {\r\n return this._localError;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PaymentFields } from './app/pages';\r\nimport { CheckinServiceInterface, ConfigurationApiInterface, TerminalServiceInterface } from './codegen';\r\nimport { CdeTerminalSdk, VersionServiceInterface } from './app/models';\r\n\r\nexport const CONFIGURATION_TOKEN = new InjectionToken<ConfigurationApiInterface>('CONFIGURATION_TOKEN');\r\nexport const CHECKIN_SERVICE_TOKEN = new InjectionToken<CheckinServiceInterface>('CHECKIN_SERVICE_TOKEN');\r\nexport const TERMINAL_SERVICE_TOKEN = new InjectionToken<TerminalServiceInterface>('TERMINAL_SERVICE_TOKEN');\r\nexport const TERMINAL_METHOD_CONFIGURATION_FACTORY = new InjectionToken<(method: string, defaultConfig: PaymentFields) => PaymentFields>('TERMINAL_METHOD_CONFIGURATION_FACTORY');\r\nexport const ENVIRONMENT = new InjectionToken<{production: boolean, csrf: boolean}>('ENVIRONMENT');\r\nexport const TERMINAL_VERSION_SERVICE_TOKEN = new InjectionToken<VersionServiceInterface>('TERMINAL_VERSION_SERVICE_TOKEN');\r\n\r\nexport const TERMINAL_SDK_FACTORY = new InjectionToken<(token: string, id: string, options: {lang: string, tabindex?: number}) => CdeTerminalSdk>('TERMINAL_SDK_FACTORY');\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport {\r\n DEFAULT_COUNTRY_LOCALHOST_KEY,\r\n DEFAULT_CURRENCY_LOCALHOST_KEY,\r\n DEFAULT_METHOD_LOCALHOST_KEY,\r\n LOCAL_LANG_KEY,\r\n} from '../models/constants';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalStorage {\r\n private _document: Document = inject(DOCUMENT);\r\n private readonly _supported: boolean = true;\r\n constructor() {\r\n try {\r\n if (!this._document.defaultView.localStorage) {\r\n this._supported = false;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (error) {\r\n this._supported = false;\r\n }\r\n }\r\n\r\n private get _storage(): Storage {\r\n return this._document.defaultView.localStorage;\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!this._supported) {\r\n return null;\r\n }\r\n return this._storage.getItem(key);\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!this._supported) {\r\n return;\r\n }\r\n this._storage.setItem(key, value);\r\n }\r\n\r\n private _defaultCountry: Alpha2Code;\r\n private _defaultMethodName: string;\r\n private _defaultCurrency: string;\r\n private _defaultLang: string;\r\n\r\n get defaultCountry(): Alpha2Code | null {\r\n return (\r\n this._defaultCountry ||\r\n (this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY) as Alpha2Code)\r\n );\r\n }\r\n\r\n get defaultMethodName(): string | null {\r\n return (\r\n this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY)\r\n );\r\n }\r\n\r\n get defaultCurrency(): string | null {\r\n return (\r\n this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY)\r\n );\r\n }\r\n\r\n get defaultLang(): string | null {\r\n return this._defaultLang || this.getItem(LOCAL_LANG_KEY);\r\n }\r\n\r\n saveDefaultCountry(value: string): void {\r\n this._defaultCountry = value as Alpha2Code;\r\n this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultMethodName(value: string): void {\r\n this._defaultMethodName = value;\r\n this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultCurrency(value: string): void {\r\n this._defaultCurrency = value;\r\n this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultLang(value: string): void {\r\n this._defaultLang = value;\r\n this.setItem(LOCAL_LANG_KEY, value);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport momentjs from 'moment-timezone';\r\nimport { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';\r\nimport { ConfigurationApiInterface } from '../../codegen/api/configuration';\r\nimport { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { LocalStorage } from \"./local-storage\";\r\n\r\n@Injectable()\r\nexport class CSRFResolver {\r\n private cookieSrv = inject(CookieService);\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private configuration = inject<ConfigurationApiInterface>(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };\r\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n private token = inject(SessionToken, { optional: true }) || 'token';\r\n private environment = inject(ENVIRONMENT);\r\n\r\n private storage: LocalStorage = inject(LocalStorage);\r\n\r\n constructor() {\r\n }\r\n\r\n private saveDefaultCountry(defaultCountryISOCode: string) {\r\n if (defaultCountryISOCode) {\r\n this.storage.saveDefaultCountry(defaultCountryISOCode);\r\n }\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\r\n const token = this.token;\r\n if (!token) {\r\n if (!this.apiErrorsSrv.hasError) {\r\n this.apiErrorsSrv.setLocalError({code: ApiErrors.SESSION_NOT_FOUND});\r\n }\r\n return of(true);\r\n }\r\n const timezone = momentjs.tz.guess();\r\n\r\n if (!this.environment.csrf) {\r\n return of(false);\r\n }\r\n if (this.resolveCSRF(token)) {\r\n return of(true);\r\n }\r\n return this.terminalApi.postTerminalOpen({\r\n token,\r\n terminalOpenRequest: {\r\n timezone\r\n }\r\n })\r\n .pipe(\r\n catchError((err) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n return of({csrf: null, defaultCountryISOCode: null});\r\n }),\r\n map(({csrf, defaultCountryISOCode}) => {\r\n this.saveDefaultCountry(defaultCountryISOCode);\r\n this.resolveCSRF(token, csrf);\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n resolveCSRF(token: string, csrf?: string): boolean {\r\n if (!csrf) {\r\n if (token && this.cookieSrv.check(`${token}_${CSRF_COOKIE_NAME}`)) {\r\n this.apiErrorsSrv.clear();\r\n this.configuration.credentials.CSRF = this.cookieSrv.get(`${token}_${CSRF_COOKIE_NAME}`);\r\n return true;\r\n }\r\n } else {\r\n this.apiErrorsSrv.clear();\r\n this.cookieSrv.set(`${token}_${CSRF_COOKIE_NAME}`, csrf, momentjs().add(24, 'hours').toDate(), undefined, undefined, this.environment.production);\r\n this.configuration.credentials.CSRF = csrf;\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ApiErrorsService } from './api-errors.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n private apiErrorSrv = inject(ApiErrorsService);\r\n\r\n\r\n constructor() { }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next\r\n .handle(req)\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err.status === 404 || err.status === 500) {\r\n this.apiErrorSrv.setLocalError();\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","import { EventEmitter, inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { DEFAULT_LANG, LANGUAGE } from '../../models/constants'\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';\r\nimport { VersionServiceInterface } from '../../models';\r\nimport { LocalStorage } from \"../local-storage\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\ninterface TranslationLangInfoMeta {\r\n code: string;\r\n name: string;\r\n countries: Alpha2Code[];\r\n}\r\n\r\nexport interface TranslationLangInfo {\r\n [key: string]: TranslationLangInfoMeta;\r\n}\r\n\r\nconst TRANSLATION_LANG_KEYS: TranslationLangInfo = {\r\n [LANGUAGE.RU]: {\r\n code: 'ru',\r\n name: 'Русский',\r\n countries: [\r\n 'AZ',\r\n 'AM',\r\n 'BY',\r\n 'KZ',\r\n 'KG',\r\n 'MD',\r\n 'RU',\r\n 'TJ',\r\n 'TM',\r\n 'UZ',\r\n 'UA',\r\n ],\r\n },\r\n [LANGUAGE.EN]: {\r\n code: 'gb',\r\n name: 'English',\r\n countries: [],\r\n },\r\n [LANGUAGE.ES]: {\r\n code: 'es',\r\n name: 'Español',\r\n countries: [\r\n 'BZ',\r\n 'GT',\r\n 'HN',\r\n 'CR',\r\n 'PA',\r\n 'NI',\r\n 'SV',\r\n 'AR',\r\n 'CL',\r\n 'CO',\r\n 'EC',\r\n 'PY',\r\n 'PE',\r\n 'GY',\r\n 'ES',\r\n ],\r\n },\r\n [LANGUAGE.TR]: {\r\n code: 'tr',\r\n name: 'Türkçe',\r\n countries: ['TR'],\r\n },\r\n [LANGUAGE.PT]: {\r\n code: 'pt',\r\n name: 'Português',\r\n countries: ['PT', 'BR'],\r\n },\r\n};\r\n@Injectable()\r\nexport class TranslateLangStorageService {\r\n private _storage: LocalStorage = inject(LocalStorage);\r\n\r\n constructor() {\r\n }\r\n\r\n get languages() {\r\n return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];\r\n }\r\n\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private document = inject<Document>(DOCUMENT);\r\n private translateSrv = inject(TranslateService);\r\n\r\n readonly TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;\r\n\r\n private get location(): Location {\r\n return this.document.defaultView.location;\r\n }\r\n\r\n get onLangChange$(): EventEmitter<LangChangeEvent> {\r\n return this.translateSrv.onLangChange;\r\n }\r\n\r\n get currentLang(): string {\r\n return this.translateSrv.currentLang;\r\n }\r\n\r\n get queryLang(): string | null {\r\n return new URL(this.location.href).searchParams.get('language');\r\n }\r\n\r\n private get countryLanguage(): string | null {\r\n const code = this._storage.defaultCountry?.toUpperCase();\r\n if (!code) {\r\n return null;\r\n }\r\n return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang: LANGUAGE) => {\r\n const meta = this.TRANSLATION_LANG_KEYS[lang];\r\n return meta?.countries.some((c) => c.includes(code.toUpperCase()));\r\n });\r\n }\r\n\r\n setLanguage$(\r\n options: { save: boolean; lang?: string } = {save: true},\r\n ): Observable<any> {\r\n const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);\r\n let candidateLang = DEFAULT_LANG;\r\n const lang = options?.lang?.toLowerCase();\r\n const queryLang = this.queryLang?.toLowerCase();\r\n const storageLang = this._storage.defaultLang?.toLowerCase();\r\n const countryLang = this.countryLanguage?.toLowerCase();\r\n if (availableLanguages.includes(lang)) {\r\n candidateLang = lang;\r\n } else if (availableLanguages.includes(storageLang)) {\r\n candidateLang = storageLang;\r\n } else if (availableLanguages.includes(queryLang)) {\r\n candidateLang = queryLang;\r\n } else if (availableLanguages.includes(countryLang)) {\r\n candidateLang = countryLang;\r\n }\r\n if (!this.versionSrv.langs.includes(candidateLang as LANGUAGE)) {\r\n candidateLang = DEFAULT_LANG;\r\n }\r\n\r\n if (options?.save) {\r\n this._storage.saveDefaultLang(candidateLang);\r\n }\r\n\r\n return this.translateSrv.use(candidateLang);\r\n }\r\n}\r\n","import { Observable, of } from 'rxjs';\r\nimport { delay, first, map } from 'rxjs/operators';\r\n\r\nconst DELAY_INITIAL_LOADER_HIDING = 0;\r\nconst LOADER_HIDE_CSS_CLASS = 'trm-loader-init--hide';\r\n\r\nexport function hideInitLoader(): Observable<boolean> {\r\n return of(false).pipe(\r\n first(),\r\n map(() => {\r\n const loader = document.querySelector('.trm-loader-init');\r\n if (!loader) {\r\n return false;\r\n }\r\n loader.classList.add(LOADER_HIDE_CSS_CLASS);\r\n return true;\r\n }),\r\n delay(DELAY_INITIAL_LOADER_HIDING)\r\n );\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const insertRemoveTrigger = trigger('insertRemove', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate('150ms', style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n animate('150ms', style({ opacity: 0 }))\r\n ])\r\n])\r\n","export const removeSpecSymbols = (s) => s.replace(/[\\+\\(\\)\\-\\s]+/g, '');\r\nexport const PHONE_MASKS = [\r\n {\r\n mask: '+247-dddd',\r\n cc: 'AC',\r\n name_en: 'Ascension',\r\n desc_en: '',\r\n name_ru: 'Остров Вознесения',\r\n desc_ru: ''\r\n },\r\n { mask: '+376-ddd-ddd', cc: 'AD', name_en: 'Andorra', desc_en: '', name_ru: 'Андорра', desc_ru: '' },\r\n {\r\n mask: '+971-5d-ddd-dddd',\r\n cc: 'AE',\r\n name_en: 'United Arab Emirates',\r\n desc_en: 'mobile',\r\n name_ru: 'Объединенные Арабские Эмираты',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+971-d-ddd-dddd',\r\n cc: 'AE',\r\n name_en: 'United Arab Emirates',\r\n desc_en: '',\r\n name_ru: 'Объединенные Арабские Эмираты',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+93-dd-ddd-dddd',\r\n cc: 'AF',\r\n name_en: 'Afghanistan',\r\n desc_en: '',\r\n name_ru: 'Афганистан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (268) ddd-dddd',\r\n cc: 'AG',\r\n name_en: 'Antigua & Barbuda',\r\n desc_en: '',\r\n name_ru: 'Антигуа и Барбуда',\r\n desc_ru: ''\r\n },\r\n { mask: '+1 (264) ddd-dddd', cc: 'AI', name_en: 'Anguilla', desc_en: '', name_ru: 'Ангилья', desc_ru: '' },\r\n { mask: '+355 (ddd) ddd-ddd', cc: 'AL', name_en: 'Albania', desc_en: '', name_ru: 'Албания', desc_ru: '' },\r\n { mask: '+374-dd-ddd-ddd', cc: 'AM', name_en: 'Armenia', desc_en: '', name_ru: 'Армения', desc_ru: '' },\r\n {\r\n mask: '+599-ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Caribbean Netherlands',\r\n desc_en: '',\r\n name_ru: 'Карибские Нидерланды',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+599-ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Netherlands Antilles',\r\n desc_en: '',\r\n name_ru: 'Нидерландские Антильские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+599-9ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Netherlands Antilles',\r\n desc_en: 'Curacao',\r\n name_ru: 'Нидерландские Антильские острова',\r\n desc_ru: 'Кюрасао'\r\n },\r\n { mask: '+244 (ddd) ddd-ddd', cc: 'AO', name_en: 'Angola', desc_en: '', name_ru: 'Ангола', desc_ru: '' },\r\n {\r\n mask: '+672-1dd-ddd',\r\n cc: 'AQ',\r\n name_en: 'Australian bases in Antarctica',\r\n desc_en: '',\r\n name_ru: 'Австралийская антарктическая база',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+54 (ddd) ddd-dddd',\r\n cc: 'AR',\r\n name_en: 'Argentina',\r\n desc_en: '',\r\n name_ru: 'Аргентина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (684) ddd-dddd',\r\n cc: 'AS',\r\n name_en: 'American Samoa',\r\n desc_en: '',\r\n name_ru: 'Американское Самоа',\r\n desc_ru: ''\r\n },\r\n { mask: '+43 (ddd) ddd-dddd', cc: 'AT', name_en: 'Austria', desc_en: '', name_ru: 'Австрия', desc_ru: '' },\r\n { mask: '+61-d-dddd-dddd', cc: 'AU', name_en: 'Australia', desc_en: '', name_ru: 'Австралия', desc_ru: '' },\r\n { mask: '+297-ddd-dddd', cc: 'AW', name_en: 'Aruba', desc_en: '', name_ru: 'Аруба', desc_ru: '' },\r\n {\r\n mask: '+994-dd-ddd-dd-dd',\r\n cc: 'AZ',\r\n name_en: 'Azerbaijan',\r\n desc_en: '',\r\n name_ru: 'Азербайджан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+387-dd-ddddd',\r\n cc: 'BA',\r\n name_en: 'Bosnia and Herzegovina',\r\n desc_en: '',\r\n name_ru: 'Босния и Герцеговина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+387-dd-dddd',\r\n cc: 'BA',\r\n name_en: 'Bosnia and Herzegovina',\r\n desc_en: '',\r\n name_ru: 'Босния и Герцеговина',\r\n desc_ru: ''\r\n },\r\n { mask: '+1 (246) ddd-dddd', cc: 'BB', name_en: 'Barbados', desc_en: '', name_ru: 'Барбадос', desc_ru: '' },\r\n {\r\n mask: '+880-dd-ddd-ddd',\r\n cc: 'BD',\r\n name_en: 'Bangladesh',\r\n desc_en: '',\r\n name_ru: 'Бангладеш',\r\n desc_ru: ''\r\n },\r\n { mask: '+32 (ddd) ddd-ddd', cc: 'BE', name_en: 'Belgium', desc_en: '', name_ru: 'Бельгия', desc_ru: '' },\r\n {\r\n mask: '+226-dd-dd-dddd',\r\n cc: 'BF',\r\n name_en: 'Burkina Faso',\r\n desc_en: '',\r\n name_ru: 'Буркина Фасо',\r\n desc_ru: ''\r\n },\r\n { mask: '+359 (ddd) ddd-ddd', cc: 'BG', name_en: 'Bulgaria', desc_en: '', name_ru: 'Болгария', desc_ru: '' },\r\n { mask: '+973-dddd-dddd', cc: 'BH', name_en: 'Bahrain', desc_en: '', name_ru: 'Бахрейн', desc_ru: '' },\r\n { mask: '+257-dd-dd-dddd', cc: 'BI', name_en: 'Burundi', desc_en: '', name_ru: 'Бурунди', desc_ru: '' },\r\n { mask: '+229-dd-dd-dddd', cc: 'BJ', name_en: 'Benin', desc_en: '', name_ru: 'Бенин', desc_ru: '' },\r\n {\r\n mask: '+1 (441) ddd-dddd',\r\n cc: 'BM',\r\n name_en: 'Bermuda',\r\n desc_en: '',\r\n name_ru: 'Бермудские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+673-ddd-dddd',\r\n cc: 'BN',\r\n name_en: 'Brunei Darussalam',\r\n desc_en: '',\r\n name_ru: 'Бруней-Даруссалам',\r\n desc_ru: ''\r\n },\r\n { mask: '+591-d-ddd-dddd', cc: 'BO', name_en: 'Bolivia', desc_en: '', name_ru: 'Боливия', desc_ru: '' },\r\n { mask: '+55 (dd) dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n { mask: '+55 (dd) 9dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n {\r\n mask: '+1 (242) ddd-dddd',\r\n cc: 'BS',\r\n name_en: 'Bahamas',\r\n desc_en: '',\r\n name_ru: 'Багамские Острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+975-17-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n { mask: '+975-d-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n { mask: '+267-dd-ddd-ddd', cc: 'BW', name_en: 'Botswana', desc_en: '', name_ru: 'Ботсвана', desc_ru: '' },\r\n {\r\n mask: '+375 (dd) ddd-dd-dd',\r\n cc: 'BY',\r\n name_en: 'Belarus',\r\n desc_en: '',\r\n name_ru: 'Беларусь (Белоруссия) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+501-ddd-dddd', cc: 'BZ', name_en: 'Belize', desc_en: '', name_ru: 'Белиз', desc_ru: '' },\r\n {\r\n mask: '+243 (ddd) ddd-ddd',\r\n cc: 'CD',\r\n name_en: 'Dem. Rep. Congo',\r\n desc_en: '',\r\n name_ru: 'Дем. Респ. Конго (Киншаса) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+236-dd-dd-dddd',\r\n cc: 'CF',\r\n name_en: 'Central African Republic',\r\n desc_en: '',\r\n name_ru: 'Центральноафриканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+242-dd-ddd-dddd',\r\n cc: 'CG',\r\n name_en: 'Congo (Brazzaville) ',\r\n desc_en: '',\r\n name_ru: 'Конго (Браззавиль) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+41-dd-ddd-dddd',\r\n cc: 'CH',\r\n name_en: 'Switzerland',\r\n desc_en: '',\r\n name_ru: 'Швейцария',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+225-dd-ddd-ddd',\r\n cc: 'CI',\r\n name_en: 'Cote d’Ivoire (Ivory Coast) ',\r\n desc_en: '',\r\n name_ru: 'Кот-д’Ивуар',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+682-dd-ddd',\r\n cc: 'CK',\r\n name_en: 'Cook Islands',\r\n desc_en: '',\r\n name_ru: 'Острова Кука',\r\n desc_ru: ''\r\n },\r\n { mask: '+56-d-dddd-dddd', cc: 'CL', name_en: 'Chile', desc_en: '', name_ru: 'Чили', desc_ru: '' },\r\n { mask: '+237-dddd-dddd', cc: 'CM', name_en: 'Cameroon', desc_en: '', name_ru: 'Камерун', desc_ru: '' },\r\n {\r\n mask: '+86 (ddd) dddd-dddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+86 (ddd) dddd-ddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+86-dd-ddddd-ddddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n { mask: '+57 (ddd) ddd-dddd', cc: 'CO', name_en: 'Colombia', desc_en: '', name_ru: 'Колумбия', desc_ru: '' },\r\n {\r\n mask: '+506-dddd-dddd',\r\n cc: 'CR',\r\n name_en: 'Costa Rica',\r\n desc_en: '',\r\n name_ru: 'Коста-Рика',\r\n desc_ru: ''\r\n },\r\n { mask: '+53-d-ddd-dddd', cc: 'CU', name_en: 'Cuba', desc_en: '', name_ru: 'Куба', desc_ru: '' },\r\n {\r\n mask: '+238 (ddd) dd-dd',\r\n cc: 'CV',\r\n name_en: 'Cape Verde',\r\n desc_en: '',\r\n name_ru: 'Кабо-Верде',\r\n desc_ru: ''\r\n },\r\n { mask: '+599-ddd-dddd', cc: 'CW', name_en: 'Curacao', desc_en: '', name_ru: 'Кюрасао', desc_ru: '' },\r\n { mask: '+357-dd-ddd-ddd', cc: 'CY', name_en: 'Cyprus', desc_en: '', name_ru: 'Кипр', desc_ru: '' },\r\n {\r\n mask: '+420 (ddd) ddd-ddd',\r\n cc: 'CZ',\r\n name_en: 'Czech Republic',\r\n desc_en: '',\r\n name_ru: 'Чехия',\r\n desc_ru: ''\r\n },\r\n { mask: '+49 (dddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-dd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49-ddd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+253-dd-dd-dd-dd', cc: 'DJ', name_en: 'Djibouti', desc_en: '', name_ru: 'Джибути', desc_ru: '' },\r\n { mask: '+45-dd-dd-dd-dd', cc: 'DK', name_en: 'Denmark', desc_en: '', name_ru: 'Дания', desc_ru: '' },\r\n { mask: '+1 (767) ddd-dddd', cc: 'DM', name_en: 'Dominica', desc_en: '', name_ru: 'Доминика', desc_ru: '' },\r\n {\r\n mask: '+1 (809) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (829) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (849) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n { mask: '+213-dd-ddd-dddd', cc: 'DZ', name_en: 'Algeria', desc_en: '', name_ru: 'Алжир', desc_ru: '' },\r\n {\r\n mask: '+593-dd-ddd-dddd',\r\n cc: 'EC',\r\n name_en: 'Ecuador ',\r\n desc_en: 'mobile',\r\n name_ru: 'Эквадор ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+593-d-ddd-dddd', cc: 'EC', name_en: 'Ecuador', desc_en: '', name_ru: 'Эквадор', desc_ru: '' },\r\n {\r\n mask: '+372-dddd-dddd',\r\n cc: 'EE',\r\n name_en: 'Estonia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Эстония ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+372-ddd-dddd', cc: 'EE', name_en: 'Estonia', desc_en: '', name_ru: 'Эстония', desc_ru: '' },\r\n { mask: '+20 (ddd) ddd-dddd', cc: 'EG', name_en: 'Egypt', desc_en: '', name_ru: 'Египет', desc_ru: '' },\r\n { mask: '+291-d-ddd-ddd', cc: 'ER', name_en: 'Eritrea', desc_en: '', name_ru: 'Эритрея', desc_ru: '' },\r\n { mask: '+34 (ddd) ddd-ddd', cc: 'ES', name_en: 'Spain', desc_en: '', name_ru: 'Испания', desc_ru: '' },\r\n { mask: '+251-dd-ddd-dddd', cc: 'ET', name_en: 'Ethiopia', desc_en: '', name_ru: 'Эфиопия', desc_ru: '' },\r\n {\r\n mask: '+358 (ddd) ddd-dd-dd',\r\n cc: 'FI',\r\n name_en: 'Finland',\r\n desc_en: '',\r\n name_ru: 'Финляндия',\r\n desc_ru: ''\r\n },\r\n { mask: '+679-dd-ddddd', cc: 'FJ', name_en: 'Fiji', desc_en: '', name_ru: 'Фиджи', desc_ru: '' },\r\n {\r\n mask: '+500-ddddd',\r\n cc: 'FK',\r\n name_en: 'Falkland Islands',\r\n desc_en: '',\r\n name_ru: 'Фолклендские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+691-ddd-dddd',\r\n cc: 'FM',\r\n name_en: 'F.S. Micronesia',\r\n desc_en: '',\r\n name_ru: 'Ф.Ш. Микронезии',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+298-ddd-ddd',\r\n cc: 'FO',\r\n name_en: 'Faroe Islands',\r\n desc_en: '',\r\n name_ru: 'Фарерские острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+262-ddddd-dddd', cc: 'FR', name_en: 'Mayotte', desc_en: '', name_ru: 'Майотта', desc_ru: '' },\r\n { mask: '+33 (ddd) ddd-ddd', cc: 'FR', name_en: 'France', desc_en: '', name_ru: 'Франция', desc_ru: '' },\r\n {\r\n mask: '+508-dd-dddd',\r\n cc: 'FR',\r\n name_en: 'St Pierre & Miquelon',\r\n desc_en: '',\r\n name_ru: 'Сен-Пьер и Микелон',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+590 (ddd) ddd-ddd',\r\n cc: 'FR',\r\n name_en: 'Guadeloupe',\r\n desc_en: '',\r\n name_ru: 'Гваделупа',\r\n desc_ru: ''\r\n },\r\n { mask: '+241-d-dd-dd-dd', cc: 'GA', name_en: 'Gabon', desc_en: '', name_ru: 'Габон', desc_ru: '' },\r\n { mask: '+1 (473) ddd-dddd', cc: 'GD', name_en: 'Grenada', desc_en: '', name_ru: 'Гренада', desc_ru: '' },\r\n {\r\n mask: '+995 (ddd) ddd-ddd',\r\n cc: 'GE',\r\n name_en: 'Rep. of Georgia',\r\n desc_en: '',\r\n name_ru: 'Грузия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+594-ddddd-dddd',\r\n cc: 'GF',\r\n name_en: 'Guiana (French) ',\r\n desc_en: '',\r\n name_ru: 'Фр. Гвиана',\r\n desc_ru: ''\r\n },\r\n { mask: '+233 (ddd) ddd-ddd', cc: 'GH', name_en: 'Ghana', desc_en: '', name_ru: 'Гана', desc_ru: '' },\r\n { mask: '+350-ddd-ddddd', cc: 'GI', name_en: 'Gibraltar', desc_en: '', name_ru: 'Гибралтар', desc_ru: '' },\r\n { mask: '+299-dd-dd-dd', cc: 'GL', name_en: 'Greenland', desc_en: '', name_ru: 'Гренландия', desc_ru: '' },\r\n { mask: '+220 (ddd) dd-dd', cc: 'GM', name_en: 'Gambia', desc_en: '', name_ru: 'Гамбия', desc_ru: '' },\r\n { mask: '+224-dd-ddd-ddd', cc: 'GN', name_en: 'Guinea', desc_en: '', name_ru: 'Гвинея', desc_ru: '' },\r\n {\r\n mask: '+240-dd-ddd-dddd',\r\n cc: 'GQ',\r\n name_en: 'Equatorial Guinea',\r\n desc_en: '',\r\n name_ru: 'Экваториальная Гвинея',\r\n desc_ru: ''\r\n },\r\n { mask: '+30 (ddd) ddd-dddd', cc: 'GR', name_en: 'Greece', desc_en: '', name_ru: 'Греция', desc_ru: '' },\r\n { mask: '+502-d-ddd-dddd', cc: 'GT', name_en: 'Guatemala', desc_en: '', name_ru: 'Гватемала', desc_ru: '' },\r\n { mask: '+1 (671) ddd-dddd', cc: 'GU', name_en: 'Guam', desc_en: '', name_ru: 'Гуам', desc_ru: '' },\r\n {\r\n mask: '+245-d-dddddd',\r\n cc: 'GW',\r\n name_en: 'Guinea-Bissau',\r\n desc_en: '',\r\n name_ru: 'Гвинея-Бисау',\r\n desc_ru: ''\r\n },\r\n { mask: '+592-ddd-dddd', cc: 'GY', name_en: 'Guyana', desc_en: '', name_ru: 'Гайана', desc_ru: '' },\r\n { mask: '+852-dddd-dddd', cc: 'HK', name_en: 'Hong Kong', desc_en: '', name_ru: 'Гонконг', desc_ru: '' },\r\n { mask: '+504-dddd-dddd', cc: 'HN', name_en: 'Honduras', desc_en: '', name_ru: 'Гондурас', desc_ru: '' },\r\n { mask: '+385-dd-ddd-ddd', cc: 'HR', name_en: 'Croatia', desc_en: '', name_ru: 'Хорватия', desc_ru: '' },\r\n { mask: '+509-dd-dd-dddd', cc: 'HT', name_en: 'Haiti', desc_en: '', name_ru: 'Гаити', desc_ru: '' },\r\n { mask: '+36 (ddd) ddd-ddd', cc: 'HU', name_en: 'Hungary', desc_en: '', name_ru: 'Венгрия', desc_ru: '' },\r\n {\r\n mask: '+62 (8dd) ddd-dddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+62-dd-ddd-dd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n { mask: '+62-dd-ddd-ddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n { mask: '+62-dd-ddd-dddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n {\r\n mask: '+62 (8dd) ddd-ddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+62 (8dd) ddd-dd-ddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+62 (8dd) dddd-ddddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+353 (ddd) ddd-ddd', cc: 'IE', name_en: 'Ireland', desc_en: '', name_ru: 'Ирландия', desc_ru: '' },\r\n {\r\n mask: '+972-5d-ddd-dddd',\r\n cc: 'IL',\r\n name_en: 'Israel ',\r\n desc_en: 'mobile',\r\n name_ru: 'Израиль ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+972-d-ddd-dddd', cc: 'IL', name_en: 'Israel', desc_en: '', name_ru: 'Израиль', desc_ru: '' },\r\n { mask: '+91 (dddd) ddd-ddd', cc: 'IN', name_en: 'India', desc_en: '', name_ru: 'Индия', desc_ru: '' },\r\n {\r\n mask: '+246-ddd-dddd',\r\n cc: 'IO',\r\n name_en: 'Diego Garcia',\r\n desc_en: '',\r\n name_ru: 'Диего-Гарсия',\r\n desc_ru: ''\r\n },\r\n { mask: '+964 (ddd) ddd-dddd', cc: 'IQ', name_en: 'Iraq', desc_en: '', name_ru: 'Ирак', desc_ru: '' },\r\n { mask: '+98 (ddd) ddd-dddd', cc: 'IR', name_en: 'Iran', desc_en: '', name_ru: 'Иран', desc_ru: '' },\r\n { mask: '+354-ddd-dddd', cc: 'IS', name_en: 'Iceland', desc_en: '', name_ru: 'Исландия', desc_ru: '' },\r\n { mask: '+39 (ddd) dddd-ddd', cc: 'IT', name_en: 'Italy', desc_en: '', name_ru: 'Италия', desc_ru: '' },\r\n { mask: '+1 (876) ddd-dddd', cc: 'JM', name_en: 'Jamaica', desc_en: '', name_ru: 'Ямайка', desc_ru: '' },\r\n { mask: '+962-d-dddd-dddd', cc: 'JO', name_en: 'Jordan', desc_en: '', name_ru: 'Иордания', desc_ru: '' },\r\n {\r\n mask: '+81-dd-dddd-dddd',\r\n cc: 'JP',\r\n name_en: 'Japan ',\r\n desc_en: 'mobile',\r\n name_ru: 'Япония ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+81 (ddd) ddd-ddd', cc: 'JP', name_en: 'Japan', desc_en: '', name_ru: 'Япония', desc_ru: '' },\r\n { mask: '+254-ddd-dddddd', cc: 'KE', name_en: 'Kenya', desc_en: '', name_ru: 'Кения', desc_ru: '' },\r\n {\r\n mask: '+996 (ddd) ddd-ddd',\r\n cc: 'KG',\r\n name_en: 'Kyrgyzstan',\r\n desc_en: '',\r\n name_ru: 'Киргизия',\r\n desc_ru: ''\r\n },\r\n { mask: '+855-dd-ddd-ddd', cc: 'KH', name_en: 'Cambodia', desc_en: '', name_ru: 'Камбоджа', desc_ru: '' },\r\n { mask: '+686-dd-ddd', cc: 'KI', name_en: 'Kiribati', desc_en: '', name_ru: 'Кирибати', desc_ru: '' },\r\n { mask: '+269-dd-ddddd', cc: 'KM', name_en: 'Comoros', desc_en: '', name_ru: 'Коморы', desc_ru: '' },\r\n {\r\n mask: '+1 (869) ddd-dddd',\r\n cc: 'KN',\r\n name_en: 'Saint Kitts & Nevis',\r\n desc_en: '',\r\n name_ru: 'Сент-Китс и Невис',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-191-ddd-dddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: 'mobile',\r\n name_ru: 'Корейская НДР ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+850-dd-ddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-ddd-dddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-ddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-dddd-dddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-dddd-ddddddddddddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+82-dd-ddd-dddd',\r\n cc: 'KR',\r\n name_en: 'Korea (South) ',\r\n desc_en: '',\r\n name_ru: 'Респ. Корея',\r\n desc_ru: ''\r\n },\r\n { mask: '+965-dddd-dddd', cc: 'KW', name_en: 'Kuwait', desc_en: '', name_ru: 'Кувейт', desc_ru: '' },\r\n {\r\n mask: '+1 (345) ddd-dddd',\r\n cc: 'KY',\r\n name_en: 'Cayman Islands',\r\n desc_en: '',\r\n name_ru: 'Каймановы острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+7 (6dd) ddd-dd-dd',\r\n cc: 'KZ',\r\n name_en: 'Kazakhstan',\r\n desc_en: '',\r\n name_ru: 'Казахстан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+7 (7dd) ddd-dd-dd',\r\n cc: 'KZ',\r\n name_en: 'Kazakhstan',\r\n desc_en: '',\r\n name_ru: 'Казахстан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+856 (20dd) ddd-ddd',\r\n cc: 'LA',\r\n name_en: 'Laos ',\r\n desc_en: 'mobile',\r\n name_ru: 'Лаос ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+856-dd-ddd-ddd', cc: 'LA', name_en: 'Laos', desc_en: '', name_ru: 'Лаос', desc_ru: '' },\r\n {\r\n mask: '+961-dd-ddd-ddd',\r\n cc: 'LB',\r\n name_en: 'Lebanon ',\r\n desc_en: 'mobile',\r\n name_ru: 'Ливан ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+961-d-ddd-ddd', cc: 'LB', name_en: 'Lebanon', desc_en: '', name_ru: 'Ливан', desc_ru: '' },\r\n {\r\n mask: '+1 (758) ddd-dddd',\r\n cc: 'LC',\r\n name_en: 'Saint Lucia',\r\n desc_en: '',\r\n name_ru: 'Сент-Люсия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+423 (ddd) ddd-dddd',\r\n cc: 'LI',\r\n name_en: 'Liechtenstein',\r\n desc_en: '',\r\n name_ru: 'Лихтенштейн',\r\n desc_ru: ''\r\n },\r\n { mask: '+94-dd-ddd-dddd', cc: 'LK', name_en: 'Sri Lanka', desc_en: '', name_ru: 'Шри-Ланка', desc_ru: '' },\r\n { mask: '+231-dd-ddd-ddd', cc: 'LR', name_en: 'Liberia', desc_en: '', name_ru: 'Либерия', desc_ru: '' },\r\n { mask: '+266-d-ddd-dddd', cc: 'LS', name_en: 'Lesotho', desc_en: '', name_ru: 'Лесото', desc_ru: '' },\r\n { mask: '+370 (ddd) dd-ddd', cc: 'LT', name_en: 'Lithuania', desc_en: '', name_ru: 'Литва', desc_ru: '' },\r\n {\r\n mask: '+352 (ddd) ddd-ddd',\r\n cc: 'LU',\r\n name_en: 'Luxembourg',\r\n desc_en: '',\r\n name_ru: 'Люксембург',\r\n desc_ru: ''\r\n },\r\n { mask: '+371-dd-ddd-ddd', cc: 'LV', name_en: 'Latvia', desc_en: '', name_ru: 'Латвия', desc_ru: '' },\r\n { mask: '+218-dd-ddd-ddd', cc: 'LY', name_en: 'Libya', desc_en: '', name_ru: 'Ливия', desc_ru: '' },\r\n {\r\n mask: '+218-21-ddd-dddd',\r\n cc: 'LY',\r\n name_en: 'Libya',\r\n desc_en: 'Tripoli',\r\n name_ru: 'Ливия',\r\n desc_ru: 'Триполи'\r\n },\r\n { mask: '+212-dd-dddd-ddd', cc: 'MA', name_en: 'Morocco', desc_en: '', name_ru: 'Марокко', desc_ru: '' },\r\n { mask: '+377 (ddd) ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n { mask: '+377-dd-ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n { mask: '+373-dddd-dddd', cc: 'MD', name_en: 'Moldova', desc_en: '', name_ru: 'Молдова', desc_ru: '' },\r\n {\r\n mask: '+382-dd-ddd-ddd',\r\n cc: 'ME',\r\n name_en: 'Montenegro',\r\n desc_en: '',\r\n name_ru: 'Черногория',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+261-dd-dd-ddddd',\r\n cc: 'MG',\r\n name_en: 'Madagascar',\r\n desc_en: '',\r\n name_ru: 'Мадагаскар',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+692-ddd-dddd',\r\n cc: 'MH',\r\n name_en: 'Marshall Islands',\r\n desc_en: '',\r\n name_ru: 'Маршалловы Острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+389-dd-ddd-ddd',\r\n cc: 'MK',\r\n name_en: 'Republic of Macedonia',\r\n desc_en: '',\r\n name_ru: 'Респ. Македония',\r\n desc_ru: ''\r\n },\r\n { mask: '+223-dd-dd-dddd', cc: 'ML', name_en: 'Mali', desc_en: '', name_ru: 'Мали', desc_ru: '' },\r\n {\r\n mask: '+95-dd-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+95-d-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+95-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+976-dd-dd-dddd', cc: 'MN', name_en: 'Mongolia', desc_en: '', name_ru: 'Монголия', desc_ru: '' },\r\n { mask: '+853-dddd-dddd', cc: 'MO', name_en: 'Macau', desc_en: '', name_ru: 'Макао', desc_ru: '' },\r\n {\r\n mask: '+1 (670) ddd-dddd',\r\n cc: 'MP',\r\n name_en: 'Northern Mariana Islands',\r\n desc_en: '',\r\n name_ru: 'Северные Марианские острова Сайпан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+596 (ddd) dd-dd-dd',\r\n cc: 'MQ',\r\n name_en: 'Martinique',\r\n desc_en: '',\r\n name_ru: 'Мартиника',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+222-dd-dd-dddd',\r\n cc: 'MR',\r\n name_en: 'Mauritania',\r\n desc_en: '',\r\n name_ru: 'Мавритания',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (664) ddd-dddd',\r\n cc: 'MS',\r\n name_en: 'Montserrat',\r\n desc_en: '',\r\n name_ru: 'Монтсеррат',\r\n desc_ru: ''\r\n },\r\n { mask: '+356-dddd-dddd', cc: 'MT', name_en: 'Malta', desc_en: '', name_ru: 'Мальта', desc_ru: '' },\r\n { mask: '+230-ddd-dddd', cc: 'MU', name_en: 'Mauritius', desc_en: '', name_ru: 'Маврикий', desc_ru: '' },\r\n {\r\n mask: '+960-ddd-dddd',\r\n cc: 'MV',\r\n name_en: 'Maldives',\r\n desc_en: '',\r\n name_ru: 'Мальдивские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+265-1-ddd-ddd',\r\n cc: 'MW',\r\n name_en: 'Malawi',\r\n desc_en: 'Telecom Ltd',\r\n name_ru: 'Малави',\r\n desc_ru: 'Telecom Ltd'\r\n },\r\n { mask: '+265-d-dddd-dddd', cc: 'MW', name_en: 'Malawi', desc_en: '', name_ru: 'Малави', desc_ru: '' },\r\n { mask: '+52 (ddd) ddd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n { mask: '+52-dd-dd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n { mask: '+60 (ddd) ddd-dddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n {\r\n mask: '+60-ddd-ddd-ddd',\r\n cc: 'MY',\r\n name_en: 'Malaysia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Малайзия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+60-dd-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n { mask: '+60-d-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n { mask: '+258-dd-ddd-ddd', cc: 'MZ', name_en: 'Mozambique', desc_en: '', name_ru: 'Мозамбик', desc_ru: '' },\r\n { mask: '+264-dd-ddd-dddd', cc: 'NA', name_en: 'Namibia', desc_en: '', name_ru: 'Намибия', desc_ru: '' },\r\n {\r\n mask: '+687-dd-dddd',\r\n cc: 'NC',\r\n name_en: 'New Caledonia',\r\n desc_en: '',\r\n name_ru: 'Новая Каледония',\r\n desc_ru: ''\r\n },\r\n { mask: '+227-dd-dd-dddd', cc: 'NE', name_en: 'Niger', desc_en: '', name_ru: 'Нигер', desc_ru: '' },\r\n {\r\n mask: '+672-3dd-ddd',\r\n cc: 'NF',\r\n name_en: 'Norfolk Island',\r\n desc_en: '',\r\n name_ru: 'Норфолк (остров) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+234 (ddd) ddd-dddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n { mask: '+234-dd-ddd-ddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n { mask: '+234-dd-ddd-dd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n {\r\n mask: '+234 (ddd) ddd-dddd',\r\n cc: 'NG',\r\n name_en: 'Nigeria ',\r\n desc_en: 'mobile',\r\n name_ru: 'Нигерия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+505-dddd-dddd', cc: 'NI', name_en: 'Nicaragua', desc_en: '', name_ru: 'Никарагуа', desc_ru: '' },\r\n {\r\n mask: '+31-dd-ddd-dddd',\r\n cc: 'NL',\r\n name_en: 'Netherlands',\r\n desc_en: '',\r\n name_ru: 'Нидерланды',\r\n desc_ru: ''\r\n },\r\n { mask: '+47 (ddd) dd-ddd', cc: 'NO', name_en: 'Norway', desc_en: '', name_ru: 'Норвегия', desc_ru: '' },\r\n { mask: '+977-dd-ddd-ddd', cc: 'NP', name_en: 'Nepal', desc_en: '', name_ru: 'Непал', desc_ru: '' },\r\n { mask: '+674-ddd-dddd', cc: 'NR', name_en: 'Nauru', desc_en: '', name_ru: 'Науру', desc_ru: '' },\r\n { mask: '+683-dddd', cc: 'NU', name_en: 'Niue', desc_en: '', name_ru: 'Ниуэ', desc_ru: '' },\r\n {\r\n mask: '+64 (ddd) ddd-ddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+64-dd-ddd-ddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+64 (ddd) ddd-dddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n { mask: '+968-dd-ddd-ddd', cc: 'OM', name_en: 'Oman', desc_en: '', name_ru: 'Оман', desc_ru: '' },\r\n { mask: '+507-ddd-dddd', cc: 'PA', name_en: 'Panama', desc_en: '', name_ru: 'Панама', desc_ru: '' },\r\n { mask: '+51 (ddd) ddd-ddd', cc: 'PE', name_en: 'Peru', desc_en: '', name_ru: 'Перу', desc_ru: '' },\r\n {\r\n mask: '+689-dd-dd-dd',\r\n cc: 'PF',\r\n name_en: 'French Polynesia',\r\n desc_en: '',\r\n name_ru: 'Французская Полинезия (Таити) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+675 (ddd) dd-ddd',\r\n cc: 'PG',\r\n name_en: 'Papua New Guinea',\r\n desc_en: '',\r\n name_ru: 'Папуа-Новая Гвинея',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+63 (ddd) ddd-dddd',\r\n cc: 'PH',\r\n name_en: 'Philippines',\r\n desc_en: '',\r\n name_ru: 'Филиппины',\r\n desc_ru: ''\r\n },\r\n { mask: '+92 (ddd) ddd-dddd', cc: 'PK', name_en: 'Pakistan', desc_en: '', name_ru: 'Пакистан', desc_ru: '' },\r\n { mask: '+48 (ddd) ddd-ddd', cc: 'PL', name_en: 'Poland', desc_en: '', name_ru: 'Польша', desc_ru: '' },\r\n {\r\n mask: '+970-dd-ddd-dddd',\r\n cc: 'PS',\r\n name_en: 'Palestine',\r\n desc_en: '',\r\n name_ru: 'Палестина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+351-dd-ddd-dddd',\r\n cc: 'PT',\r\n name_en: 'Portugal',\r\n desc_en: '',\r\n name_ru: 'Португалия',\r\n desc_ru: ''\r\n },\r\n { mask: '+680-ddd-dddd', cc: 'PW', name_en: 'Palau', desc_en: '', name_ru: 'Палау', desc_ru: '' },\r\n { mask: '+595 (ddd) ddd-ddd', cc: 'PY', name_en: 'Paraguay', desc_en: '', name_ru: 'Парагвай', desc_ru: '' },\r\n { mask: '+974-dddd-dddd', cc: 'QA', name_en: 'Qatar', desc_en: '', name_ru: 'Катар', desc_ru: '' },\r\n { mask: '+262-ddddd-dddd', cc: 'RE', name_en: 'Reunion', desc_en: '', name_ru: 'Реюньон', desc_ru: '' },\r\n { mask: '+40-dd-ddd-dddd', cc: 'RO', name_en: 'Romania', desc_en: '', name_ru: 'Румыния', desc_ru: '' },\r\n { mask: '+381-dd-ddd-dddd', cc: 'RS', name_en: 'Serbia', desc_en: '', name_ru: 'Сербия', desc_ru: '' },\r\n { mask: '+7 (ddd) ddd-dd-dd', cc: 'RU', name_en: 'Russia', desc_en: '', name_ru: 'Россия', desc_ru: '' },\r\n { mask: '+250 (ddd) ddd-ddd', cc: 'RW', name_en: 'Rwanda', desc_en: '', name_ru: 'Руанда', desc_ru: '' },\r\n {\r\n mask: '+966-5-dddd-dddd',\r\n cc: 'SA',\r\n name_en: 'Saudi Arabia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Саудовская Аравия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+966-d-ddd-dddd',\r\n cc: 'SA',\r\n name_en: 'Saudi Arabia',\r\n desc_en: '',\r\n name_ru: 'Саудовская Аравия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+677-ddd-dddd',\r\n cc: 'SB',\r\n name_en: 'Solomon Islands ',\r\n desc_en: 'mobile',\r\n name_ru: 'Соломоновы Острова ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+677-ddddd',\r\n cc: 'SB',\r\n name_en: 'Solomon Islands',\r\n desc_en: '',\r\n name_ru: 'Соломоновы Острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+248-d-ddd-ddd', cc: 'SC', name_en: 'Seychelles', desc_en: '', name_ru: 'Сейшелы', desc_ru: '' },\r\n { mask: '+249-dd-ddd-dddd', cc: 'SD', name_en: 'Sudan', desc_en: '', name_ru: 'Судан', desc_ru: '' },\r\n { mask: '+46-dd-ddd-dddd', cc: 'SE', name_en: 'Sweden', desc_en: '', name_ru: 'Швеция', desc_ru: '' },\r\n { mask: '+65-dddd-dddd', cc: 'SG', name_en: 'Singapore', desc_en: '', name_ru: 'Сингапур', desc_ru: '' },\r\n {\r\n mask: '+290-dddd',\r\n cc: 'SH',\r\n name_en: 'Saint Helena',\r\n desc_en: '',\r\n name_ru: 'Остров Святой Елены',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+290-dddd',\r\n cc: 'SH',\r\n name_en: 'Tristan da Cunha',\r\n desc_en: '',\r\n name_ru: 'Тристан-да-Кунья',\r\n desc_ru: ''\r\n },\r\n { mask: '+386-dd-ddd-ddd', cc: 'SI', name_en: 'Slovenia', desc_en: '', name_ru: 'Словения', desc_ru: '' },\r\n { mask: '+421 (ddd) ddd-ddd', cc: 'SK', name_en: 'Slovakia', desc_en: '', name_ru: 'Словакия', desc_ru: '' },\r\n {\r\n mask: '+232-dd-dddddd',\r\n cc: 'SL',\r\n name_en: 'Sierra Leone',\r\n desc_en: '',\r\n name_ru: 'Сьерра-Леоне',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+378-dddd-dddddd',\r\n cc: 'SM',\r\n name_en: 'San Marino',\r\n desc_en: '',\r\n name_ru: 'Сан-Марино',\r\n desc_ru: ''\r\n },\r\n { mask: '+221-dd-ddd-dddd', cc: 'SN', name_en: 'Senegal', desc_en: '', name_ru: 'Сенегал', desc_ru: '' },\r\n { mask: '+252-dd-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n { mask: '+252-d-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n {\r\n mask: '+252-d-ddd-ddd',\r\n cc: 'SO',\r\n name_en: 'Somalia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Сомали ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+597-ddd-dddd',\r\n cc: 'SR',\r\n name_en: 'Suriname ',\r\n desc_en: 'mobile',\r\n name_ru: 'Суринам ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+597-ddd-ddd', cc: 'SR', name_en: 'Suriname', desc_en: '', name_ru: 'Суринам', desc_ru: '' },\r\n {\r\n mask: '+211-dd-ddd-dddd',\r\n cc: 'SS',\r\n name_en: 'South Sudan',\r\n desc_en: '',\r\n name_ru: 'Южный Судан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+239-dd-ddddd',\r\n cc: 'ST',\r\n name_en: 'Sao Tome and Principe',\r\n desc_en: '',\r\n name_ru: 'Сан-Томе и Принсипи',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+503-dd-dd-dddd',\r\n cc: 'SV',\r\n name_en: 'El Salvador',\r\n desc_en: '',\r\n name_ru: 'Сальвадор',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (721) ddd-dddd',\r\n cc: 'SX',\r\n name_en: 'Sint Maarten',\r\n desc_en: '',\r\n name_ru: 'Синт-Маартен',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+963-dd-dddd-ddd',\r\n cc: 'SY',\r\n name_en: 'Syrian Arab Republic',\r\n desc_en: '',\r\n name_ru: 'Сирийская арабская республика',\r\n desc_ru: ''\r\n },\r\n { mask: '+268-dd-dd-dddd', cc: 'SZ', name_en: 'Swaziland', desc_en: '', name_ru: 'Свазиленд', desc_ru: '' },\r\n {\r\n mask: '+1 (649) ddd-dddd',\r\n cc: 'TC',\r\n name_en: 'Turks & Caicos',\r\n desc_en: '',\r\n name_ru: 'Тёркс и Кайкос',\r\n desc_ru: ''\r\n },\r\n { mask: '+235-dd-dd-dd-dd', cc: 'TD', name_en: 'Chad', desc_en: '', name_ru: 'Чад', desc_ru: '' },\r\n { mask: '+228-dd-ddd-ddd', cc: 'TG', name_en: 'Togo', desc_en: '', name_ru: 'Того', desc_ru: '' },\r\n {\r\n mask: '+66-dd-ddd-dddd',\r\n cc: 'TH',\r\n name_en: 'Thailand ',\r\n desc_en: 'mobile',\r\n name_ru: 'Таиланд ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+66-dd-ddd-ddd', cc: 'TH', name_en: 'Thailand', desc_en: '', name_ru: 'Таиланд', desc_ru: '' },\r\n {\r\n mask: '+992-dd-ddd-dddd',\r\n cc: 'TJ',\r\n name_en: 'Tajikistan',\r\n desc_en: '',\r\n name_ru: 'Таджикистан',\r\n desc_ru: ''\r\n },\r\n { mask: '+690-dddd', cc: 'TK', name_en: 'Tokelau', desc_en: '', name_ru: 'Токелау', desc_ru: '' },\r\n {\r\n mask: '+670-ddd-dddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: '',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+670-77d-ddddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: 'Timor Telecom',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: 'Timor Telecom'\r\n },\r\n {\r\n mask: '+670-78d-ddddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: 'Timor Telecom',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: 'Timor Telecom'\r\n },\r\n {\r\n mask: '+993-d-ddd-dddd',\r\n cc: 'TM',\r\n name_en: 'Turkmenistan',\r\n desc_en: '',\r\n name_ru: 'Туркменистан',\r\n desc_ru: ''\r\n },\r\n { mask: '+216-dd-ddd-ddd', cc: 'TN', name_en: 'Tunisia', desc_en: '', name_ru: 'Тунис', desc_ru: '' },\r\n { mask: '+676-ddddd', cc: 'TO', name_en: 'Tonga', desc_en: '', name_ru: 'Тонга', desc_ru: '' },\r\n { mask: '+90 (ddd) ddd-dddd', cc: 'TR', name_en: 'Turkey', desc_en: '', name_ru: 'Турция', desc_ru: '' },\r\n {\r\n mask: '+1 (868) ddd-dddd',\r\n cc: 'TT',\r\n name_en: 'Trinidad & Tobago',\r\n desc_en: '',\r\n name_ru: 'Тринидад и Тобаго',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+688-90dddd',\r\n cc: 'TV',\r\n name_en: 'Tuvalu ',\r\n desc_en: 'mobile',\r\n name_ru: 'Тувалу ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+688-2dddd', cc: 'TV', name_en: 'Tuvalu', desc_en: '', name_ru: 'Тувалу', desc_ru: '' },\r\n { mask: '+886-d-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n { mask: '+886-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n { mask: '+255-dd-ddd-dddd', cc: 'TZ', name_en: 'Tanzania', desc_en: '', name_ru: 'Танзания', desc_ru: '' },\r\n { mask: '+380 (dd) ddd-dd-dd', cc: 'UA', name_en: 'Ukraine', desc_en: '', name_ru: 'Украина', desc_ru: '' },\r\n { mask: '+256 (ddd) ddd-ddd', cc: 'UG', name_en: 'Uganda', desc_en: '', name_ru: 'Уганда', desc_ru: '' },\r\n {\r\n mask: '+44-dd-dddd-dddd',\r\n cc: 'UK',\r\n name_en: 'United Kingdom',\r\n desc_en: '',\r\n name_ru: 'Великобритания',\r\n desc_ru: ''\r\n },\r\n { mask: '+598-d-ddd-dd-dd', cc: 'UY', name_en: 'Uruguay', desc_en: '', name_ru: 'Уругвай', desc_ru: '' },\r\n {\r\n mask: '+998-dd-ddd-dddd',\r\n cc: 'UZ',\r\n name_en: 'Uzbekistan',\r\n desc_en: '',\r\n name_ru: 'Узбекистан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+39-6-698-ddddd',\r\n cc: 'VA',\r\n name_en: 'Vatican City',\r\n desc_en: '',\r\n name_ru: 'Ватикан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (784) ddd-dddd',\r\n cc: 'VC',\r\n name_en: 'Saint Vincent & the Grenadines',\r\n desc_en: '',\r\n name_ru: 'Сент-Винсент и Гренадины',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+58 (ddd) ddd-dddd',\r\n cc: 'VE',\r\n name_en: 'Venezuela',\r\n desc_en: '',\r\n name_ru: 'Венесуэла',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (284) ddd-dddd',\r\n cc: 'VG',\r\n name_en: 'British Virgin Islands',\r\n desc_en: '',\r\n name_ru: 'Британские Виргинские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (340) ddd-dddd',\r\n cc: 'VI',\r\n name_en: 'US Virgin Islands',\r\n desc_en: '',\r\n name_ru: 'Американские Виргинские острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+84-dd-dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n { mask: '+84 (ddd) dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n {\r\n mask: '+678-dd-ddddd',\r\n cc: 'VU',\r\n name_en: 'Vanuatu ',\r\n desc_en: 'mobile',\r\n name_ru: 'Вануату ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+678-ddddd', cc: 'VU', name_en: 'Vanuatu', desc_en: '', name_ru: 'Вануату', desc_ru: '' },\r\n {\r\n mask: '+681-dd-dddd',\r\n cc: 'WF',\r\n name_en: 'Wallis and Futuna',\r\n desc_en: '',\r\n name_ru: 'Уоллис и Футуна',\r\n desc_ru: ''\r\n },\r\n { mask: '+685-dd-dddd', cc: 'WS', name_en: 'Samoa', desc_en: '', name_ru: 'Самоа', desc_ru: '' },\r\n {\r\n mask: '+967-ddd-ddd-ddd',\r\n cc: 'YE',\r\n name_en: 'Yemen ',\r\n desc_en: 'mobile',\r\n name_ru: 'Йемен ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+967-d-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n { mask: '+967-dd-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n {\r\n mask: '+27-dd-ddd-dddd',\r\n cc: 'ZA',\r\n name_en: 'South Africa',\r\n desc_en: '',\r\n name_ru: 'Южно-Африканская Респ.',\r\n desc_ru: ''\r\n },\r\n { mask: '+260-dd-ddd-dddd', cc: 'ZM', name_en: 'Zambia', desc_en: '', name_ru: 'Замбия', desc_ru: '' },\r\n { mask: '+263-d-dddddd', cc: 'ZW', name_en: 'Zimbabwe', desc_en: '', name_ru: 'Зимбабве', desc_ru: '' },\r\n {\r\n mask: '+1 (ddd) ddd-dddd',\r\n cc: 'CA',\r\n name_en: 'Canada',\r\n desc_en: '',\r\n name_ru: 'Канада',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (ddd) ddd-dddd',\r\n cc: 'US',\r\n name_en: 'USA',\r\n desc_en: '',\r\n name_ru: 'США',\r\n desc_ru: ''\r\n }\r\n]\r\n .map(m => m.mask)\r\n .sort((a, b) => {\r\n a = removeSpecSymbols(a);\r\n b = removeSpecSymbols(b)\r\n return a > b ? 1 : (a === b ? 0 : -1);\r\n });\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { PaymentField } from '../pages/components/constructor-form/models';\r\nimport { PHONE_MASKS, removeSpecSymbols } from './phone-codes';\r\n\r\nexport enum MASKS {\r\n CPF = 'CPF',\r\n CPF_CNPJ = 'CPF_CNPJ',\r\n PHONE = 'PHONE',\r\n CI = 'CI',\r\n CURP = 'CURP',\r\n CUIT_DNI = 'CUIT_DNI',\r\n CC = 'CC'\r\n}\r\n\r\nexport const INITIAL_PHONE_MASK = '+D';\r\nexport const PHONE_MASK_PATTERNS = {\r\n 'D': {\r\n pattern: /\\d/\r\n },\r\n '9': {\r\n pattern: /\\d/,\r\n optional: true\r\n }\r\n};\r\n\r\n\r\n@Injectable()\r\nexport class MaskResolver {\r\n private maskService = inject(NgxMaskService);\r\n\r\n constructor() {\r\n }\r\n\r\n getMaskPattern(mask: string, value?: string) {\r\n switch (mask) {\r\n case MASKS.PHONE:\r\n return (...args) => this.calcMask(...args);\r\n case MASKS.CPF_CNPJ:\r\n if (value?.length > 11) {\r\n return '00.000.000/0000-00';\r\n }\r\n return '000.000.000-009';\r\n case MASKS.CI:\r\n return '0000000000';\r\n case MASKS.CURP:\r\n return 'SSSS000000SSSSSS00';\r\n case MASKS.CUIT_DNI:\r\n return '00-00000000-0||00-000-000';\r\n case MASKS.CC:\r\n return '0000000000000000';\r\n case MASKS.CPF:\r\n return '000.000.000-00';\r\n default:\r\n return mask;\r\n }\r\n }\r\n\r\n getMaskByValue(mask: string, value?: string) {\r\n const maskValue = this.getMaskPattern(mask, value);\r\n if (typeof maskValue === 'function') {\r\n return maskValue.call(null, value) || null;\r\n } else {\r\n return maskValue || null;\r\n }\r\n }\r\n\r\n getPatterns(config: PaymentField) {\r\n if (config?.mask === MASKS.PHONE) {\r\n return PHONE_MASK_PATTERNS;\r\n }\r\n if (config?.maskPatterns) {\r\n return config?.maskPatterns;\r\n }\r\n return this.maskService.patterns;\r\n }\r\n\r\n getSpecialCharacters(config: PaymentField) {\r\n return config?.specialCharacters || this.maskService.specialCharacters;\r\n }\r\n\r\n\r\n private calcMask(value?: string) {\r\n let mask = INITIAL_PHONE_MASK\r\n if (value) {\r\n const valueArray = Array.from(removeSpecSymbols(value));\r\n let masks: string[] = PHONE_MASKS;\r\n for (let sIndex = 0; sIndex < valueArray.length; sIndex++) {\r\n const s = valueArray[sIndex];\r\n const filteredMasks = masks.filter((m) => {\r\n const maskValue = removeSpecSymbols(m);\r\n const maskSymbol = maskValue[sIndex];\r\n if (/\\d/.test(maskSymbol)) {\r\n return maskSymbol === s;\r\n }\r\n return !!maskSymbol;\r\n });\r\n if (filteredMasks.length > 0) {\r\n masks = filteredMasks;\r\n } else {\r\n break;\r\n }\r\n }\r\n // Candidate of mask\r\n mask = masks[0];\r\n\r\n // Calculation of the additional numbers\r\n let masksNormalized: string[] = masks.map(m => removeSpecSymbols(m));\r\n let maskNormalized = removeSpecSymbols(mask);\r\n const optionalSymbols = masksNormalized.filter(s => s.startsWith(maskNormalized) && s.length > maskNormalized.length).length;\r\n if (optionalSymbols) {\r\n mask += Array(optionalSymbols).fill('[d]').join('');\r\n }\r\n }\r\n mask = mask.replace(/[d\\d]/g, 'D').replace(/\\[D]/g, '9');\r\n return mask;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nfunction sortByTabIndex(list: HTMLElement[]): HTMLElement[] {\r\n return list.sort((a, b) => {\r\n const index1 = +a.getAttribute('tabindex');\r\n const index2 = +b.getAttribute('tabindex');\r\n if (index1<index2) {\r\n return -1;\r\n }\r\n if (index1>index2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FocusHandler {\r\n static document: Document;\r\n private static get focusableList(): HTMLElement[] {\r\n return sortByTabIndex(\r\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]'))\r\n );\r\n }\r\n private static get focusableEnabledList(): HTMLElement[] {\r\n return sortByTabIndex(\r\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]:not([class*=\"--disabled\"])'))\r\n );\r\n }\r\n static previous(ev?: Event) {\r\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n const index = focusedElement?.getAttribute('tabindex');\r\n const focusableList = this.focusableList;\r\n if (index === null) {\r\n focusableList.pop()?.focus();\r\n ev?.preventDefault();\r\n return;\r\n }\r\n for (let i=0; i < focusableList.length; i++) {\r\n const element = focusableList[i];\r\n if (element === focusedElement) {\r\n const prev = focusableList[i - 1];\r\n if (prev) {\r\n ev?.preventDefault();\r\n prev.focus();\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n static next(ev?: Event) {\r\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n const index = focusedElement?.getAttribute('tabindex');\r\n const focusableList = this.focusableList;\r\n if (index === null) {\r\n focusableList.shift()?.focus();\r\n ev?.preventDefault();\r\n return;\r\n }\r\n for (let i=0; i < focusableList.length; i++) {\r\n const element = focusableList[i];\r\n if (element === focusedElement) {\r\n const next = focusableList[i + 1];\r\n if (next) {\r\n ev?.preventDefault();\r\n next.focus();\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n static previousEnabled(ev?: Event) {\r\n this.previous.call({\r\n focusableList: this.focusableEnabledList\r\n }, ev);\r\n }\r\n static nextEnabled(ev?: Event) {\r\n this.next.call({\r\n focusableList: this.focusableEnabledList\r\n }, ev);\r\n }\r\n\r\n constructor() {\r\n FocusHandler.document = inject(DOCUMENT);\r\n }\r\n}\r\n","export const isObjectTheSame = (object1, object2) => {\r\n if (object1 === object2) {\r\n return true;\r\n }\r\n if (!object1 && object2 || object1 && !object2) {\r\n return false;\r\n }\r\n const objKeys1 = Object.keys(object1);\r\n const objKeys2 = Object.keys(object2);\r\n\r\n if (objKeys1.length !== objKeys2.length) return false;\r\n\r\n for (var key of objKeys1) {\r\n const value1 = object1[key];\r\n const value2 = object2[key];\r\n\r\n const isObjects = isObject(value1) && isObject(value2);\r\n\r\n if ((isObjects && !isObjectTheSame(value1, value2)) ||\r\n (!isObjects && value1 !== value2)\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\nexport const isObject = (object) => {\r\n return object != null && typeof object === \"object\";\r\n};\r\n","export const warningConsole = () => {\r\n console.log(\"%cОпасно! WARNING!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:50px;font-weight:bold;text-transform:uppercase;color:#FF3B34;-webkit-text-stroke:2px #000;\");\r\n console.log(\"\\n\");\r\n console.log(\"%cЭта часть окна предназначена для разработчиков. Пожалуйста не вставляйте сюда ничего! Особенно текст который \\\"якобы\\\" поможет увеличить баланс вашего кошелька! Вас обманут!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n console.log(\"%cThis part of the window is for developers. Please don't put anything in here! Especially the text that \\\"allegedly\\\" will help to increase the balance of your wallet! You will be deceived!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n console.log(\"\\n\");\r\n}","export enum PaymentFieldTypeEnum {\r\n Amount = 'amount',\r\n Email = 'email',\r\n Text = 'text',\r\n Number = 'number',\r\n Date = 'date',\r\n Select = 'select',\r\n Iframe = 'iframe'\r\n}\r\n","export enum CollectionType {\r\n Banks = 1,\r\n Documents = 2\r\n}\r\n","import { I18N_KEY } from '../../../../i18n';\r\nimport { MASKS } from '../../../../helpers';\r\nimport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nimport { PaymentField } from './payment-field';\r\nimport momentjs from 'moment-timezone';\r\nimport { CollectionType } from './collection-type.enum';\r\n\r\nconst PHONE_FIELD = {\r\n name: 'add_phone_number',\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE,\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_PHONE,\r\n mask: MASKS.PHONE,\r\n maskValidation: true,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n};\r\n\r\nconst EMAIL_FIELD = {\r\n name: 'add_email',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_EMAIL,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Email\r\n};\r\n\r\nconst castWallet = (config) => {\r\n return {\r\n ...config,\r\n ...{\r\n name: 'wallet',\r\n wallet: true\r\n }\r\n }\r\n}\r\n\r\nexport const FIELD_TEMPLATE: {[key: string]: PaymentField} = {\r\n AMOUNT: {\r\n name: 'amount',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT,\r\n pattern: /^\\d+\\.?\\d{0,2}/,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT,\r\n mask: 'separator.2',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Amount\r\n },\r\n CARD_TERMINAL: {\r\n name: 'card_terminal',\r\n type: PaymentFieldTypeEnum.Iframe\r\n },\r\n EMAIL: EMAIL_FIELD,\r\n EMAIL_WALLET: castWallet(EMAIL_FIELD),\r\n FIRST_NAME: {\r\n name: 'add_first_name',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n SECOND_NAME: {\r\n name: 'add_last_name',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n DATE_OF_BIRTH: {\r\n name: 'add_day_of_birth',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH,\r\n placeholder: '1993-04-20',\r\n require: true,\r\n mask: '0000-00-00',\r\n type: PaymentFieldTypeEnum.Date,\r\n options: {\r\n startCalendarDate: momentjs().subtract(18, 'years')\r\n }\r\n },\r\n ZIP: {\r\n name: 'add_zip',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_ZIP,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP,\r\n pattern: /\\d{6}/,\r\n mask: '000000',\r\n maskValidation: true,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n PHONE: PHONE_FIELD,\r\n PHONE_WALLET: castWallet(PHONE_FIELD),\r\n DOCUMENT_TYPE: {\r\n name: 'add_document_type',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Select,\r\n options: {\r\n collection: CollectionType.Documents\r\n }\r\n },\r\n BANK_TYPE: {\r\n name: 'add_bank_id',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_BANK,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Select,\r\n options: {\r\n collection: CollectionType.Banks\r\n }\r\n }\r\n}\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const advcash: PaymentFields = {\r\n confirmation: '',\r\n title: 'Advcash',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","export enum TerminalStep {\r\n Prepare,\r\n Confirmation,\r\n Status\r\n}\r\n","export { PaymentField } from './payment-field';\r\nexport { PaymentFieldOptions, PaymentFieldOptionsItem } from './payment-field-options';\r\nexport { PaymentFields } from './payment-fields';\r\nexport { TerminalStep } from './terminal-step.enum';\r\nexport { CollectionType } from './collection-type.enum';\r\nexport { MASKS } from './../../../../helpers/mask-resolver';\r\nexport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nexport * from './field-template';\r\nexport const FORMAT_DATE = 'YYYY-MM-DD';\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const alfabank: PaymentFields = {\r\n confirmation: '',\r\n title: 'AlfaClick',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay_plus: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay Plus',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const applepay: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY,\r\n title: 'ApplePay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const argentina_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Argentina',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const atf24: PaymentFields = {\r\n confirmation: '',\r\n title: 'ATF24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const baloto: PaymentFields = {\r\n confirmation: '',\r\n title: 'Baloto',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CC',\r\n mask: MASKS.CC,\r\n placeholder: '0000000000000000',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const beeline: PaymentFields = {\r\n confirmation: '',\r\n title: 'Beeline',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const blik: PaymentFields = {\r\n confirmation: '',\r\n title: 'Blik',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const boleto: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Boleto',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF/CNPJ',\r\n mask: MASKS.CPF_CNPJ,\r\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.ZIP\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const brazil_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Brazil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\nexport const card: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank cards',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.CARD_TERMINAL,\r\n FIELD_TEMPLATE.EMAIL,\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const carga_virtual: PaymentFields = {\r\n confirmation: '',\r\n title: 'Carga virtual',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cash: PaymentFields = {\r\n confirmation: '',\r\n title: 'Оплата наличными',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const cashtocode: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE,\r\n title: 'CashToCode',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const codi: PaymentFields = {\r\n confirmation: '',\r\n title: 'Codi',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const comepay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Comepay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay Bank',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_p2p: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay P2P',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const deposit_express: PaymentFields = {\r\n confirmation: '',\r\n title: 'Deposit Express',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n placeholder: '000.000.000-00',\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.BANK_TYPE,\r\n FIELD_TEMPLATE.PHONE\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\n\r\nexport const direct_banking_europe: PaymentFields = {\r\n confirmation: '',\r\n title: 'Direct Banking Europe',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const dotpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Dotpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ecopayz: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ecopayz',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const eps: PaymentFields = {\r\n confirmation: '',\r\n title: 'Eps',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const giropay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Giropay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const gmmoney: PaymentFields = {\r\n confirmation: '',\r\n title: 'GM Money',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const internal_gamemoney: PaymentFields = {\r\n confirmation: '',\r\n title: 'GM Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const googlepay: PaymentFields = {\r\n confirmation: '',\r\n title: 'GooglePay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ideal: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ideal',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.BANK_TYPE\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Indonesia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Indonesia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton: PaymentFields = {\r\n confirmation: '',\r\n title: 'Jeton Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton_voucher: PaymentFields = {\r\n confirmation: '',\r\n title: 'Jeton Voucher',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const kassa24: PaymentFields = {\r\n confirmation: '',\r\n title: 'Kassa24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const link: PaymentFields = {\r\n confirmation: '',\r\n title: 'Link',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const local_card_brazil: PaymentFields = {\r\n confirmation: '',\r\n title: 'Local Card Brazil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const local_card_mexico: PaymentFields = {\r\n confirmation: '',\r\n title: 'Local Card Mexico',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const loterica: PaymentFields = {\r\n confirmation: '',\r\n title: 'Loterica',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF/CNPJ',\r\n mask: MASKS.CPF_CNPJ,\r\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.ZIP\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const malaysia_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Malaysia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const megafon: PaymentFields = {\r\n confirmation: I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT,\r\n title: 'Megafon',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mexico_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Mexico',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const momopay: PaymentFields = {\r\n confirmation: '',\r\n title: 'MoMo Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const moneta: PaymentFields = {\r\n confirmation: '',\r\n title: 'Moneta',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mts: PaymentFields = {\r\n confirmation: '',\r\n title: 'MTS',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const multibanco: PaymentFields = {\r\n confirmation: '',\r\n title: 'Multibanco',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neosurf: PaymentFields = {\r\n confirmation: '',\r\n title: 'Neosurf',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neteller: PaymentFields = {\r\n confirmation: '',\r\n title: 'Neteller',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const nupay: PaymentFields = {\r\n confirmation: '',\r\n title: 'NuPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.PHONE,\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const onecard: PaymentFields = {\r\n confirmation: '',\r\n title: 'Onecard',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const oxxo: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Oxxo',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CURP',\r\n mask: MASKS.CURP,\r\n placeholder: 'ZAZD000000MBSYQN00',\r\n uppercase: true,\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagoefectivo: PaymentFields = {\r\n confirmation: '',\r\n title: 'Pagoefectivo',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.DOCUMENT_TYPE,\r\n {\r\n name: 'add_identify_number',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.PHONE\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const pagoexpress: PaymentFields = {\r\n confirmation: '',\r\n title: 'Pago Express',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CI',\r\n placeholder: '0000000000',\r\n mask: MASKS.CI,\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagofacil: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Pagofacil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paypal: PaymentFields = {\r\n confirmation: '',\r\n title: 'Paypal',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paysafecard: PaymentFields = {\r\n confirmation: '',\r\n title: 'Paysafecard',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const picpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'PicPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pix: PaymentFields = {\r\n title: 'Pix',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.DATE_OF_BIRTH,\r\n {\r\n name: 'wallet',\r\n label: 'PixKey',\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET,\r\n readonly: false,\r\n require: true,\r\n wallet: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const philippines_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Philippines',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promptpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Promptpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promsviaz: PaymentFields = {\r\n confirmation: '',\r\n title: 'PSB',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const przelewy24: PaymentFields = {\r\n confirmation: '',\r\n title: 'Przelewy24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const qiwi: PaymentFields = {\r\n confirmation: '',\r\n title: 'Qiwi',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const rapid: PaymentFields = {\r\n confirmation: '',\r\n title: 'Rapid transfer',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const rapipago: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Rapipago',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'DNI/CUIT',\r\n mask: MASKS.CUIT_DNI,\r\n maskValidation: true,\r\n placeholder: '00-00000000-0 or 00-000-000',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const redpagos: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sberbank: PaymentFields = {\r\n confirmation: '',\r\n title: 'SberPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sbp: PaymentFields = {\r\n confirmation: '',\r\n title: 'Система быстрых платежей',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sepa: PaymentFields = {\r\n confirmation: '',\r\n title: 'SEPA',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const servipag: PaymentFields = {\r\n confirmation: '',\r\n title: 'Servipag',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinify: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinify',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinsback: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinsback',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skrill: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skrill',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sofort: PaymentFields = {\r\n confirmation: '',\r\n title: 'Sofort',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const spei: PaymentFields = {\r\n confirmation: '',\r\n title: 'Spei',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const store_mexico: PaymentFields = {\r\n confirmation: '',\r\n title: 'Convenience store',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tele2: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tele2',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Thailand',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Thailand',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tinkoff: PaymentFields = {\r\n title: 'Tinkoff',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const trustly: PaymentFields = {\r\n confirmation: '',\r\n title: 'Trustly',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Vietnam',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_qr: PaymentFields = {\r\n confirmation: '',\r\n title: 'Vietnamese QR banking',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Vietnam',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const webpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wechat: PaymentFields = {\r\n confirmation: '',\r\n title: 'WeChat',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wme: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WME)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmr: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMR)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmu: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMU)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmz: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMZ)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const zen_wallet: PaymentFields = {\r\n confirmation: '',\r\n title: 'Zen wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const yandex: PaymentFields = {\r\n confirmation: '',\r\n title: 'YooMoney',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wallester: PaymentFields = {\r\n confirmation: '',\r\n title: 'Wallester',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const bitcoin: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bitcoin',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tron: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tron (TRX)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ethereum: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ethereum',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tether(USDT) erc20',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether_trc20: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tether(USDT) trc20',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mercado_pago: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mercado Pago',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mirpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mir Pay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mbway: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mbway',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { advcash } from './advcash';\r\nimport { alfabank } from './alfabank';\r\nimport { alipay } from './alipay';\r\nimport { alipay_plus } from './alipay_plus';\r\nimport { applepay } from './applepay';\r\nimport { argentina_bank } from './argentina_bank';\r\nimport { atf24 } from './atf24';\r\nimport { baloto } from './baloto';\r\nimport { beeline } from './beeline';\r\nimport { blik } from './blik';\r\nimport { boleto } from './boleto';\r\nimport { brazil_bank } from './brazil_bank';\r\nimport { card } from './card';\r\nimport { carga_virtual } from './carga_virtual';\r\nimport { cash } from './cash';\r\nimport { cashtocode } from './cashtocode';\r\nimport { codi } from './codi';\r\nimport { comepay } from './comepay';\r\nimport { cup } from './cup';\r\nimport { cup_bank } from './cup_bank';\r\nimport { cup_p2p } from './cup_p2p';\r\nimport { deposit_express } from './deposit_express';\r\nimport { direct_banking_europe } from './direct_banking_europe';\r\nimport { dotpay } from './dotpay';\r\nimport { ecopayz } from './ecopayz';\r\nimport { eps } from './eps';\r\nimport { giropay } from './giropay';\r\nimport { gmmoney } from './gmmoney';\r\nimport { internal_gamemoney } from './internal_gamemoney';\r\nimport { googlepay } from './googlepay';\r\nimport { ideal } from './ideal';\r\nimport { indonesia_bank } from './indonesia_bank';\r\nimport { indonesia_bank_transfer } from './indonesia_bank_transfer';\r\nimport { jeton } from './jeton';\r\nimport { jeton_voucher } from './jeton_voucher';\r\nimport { kassa24 } from './kassa24';\r\nimport { link } from './link';\r\nimport { local_card_brazil } from './local_card_brazil';\r\nimport { local_card_mexico } from './local_card_mexico';\r\nimport { loterica } from './loterica';\r\nimport { malaysia_bank } from './malaysia_bank';\r\nimport { megafon } from './megafon';\r\nimport { mexico_bank } from './mexico_bank';\r\nimport { momopay } from './momopay';\r\nimport { moneta } from './moneta';\r\nimport { mts } from './mts';\r\nimport { multibanco } from './multibanco';\r\nimport { neosurf } from './neosurf';\r\nimport { neteller } from './neteller';\r\nimport { nupay } from './nupay';\r\nimport { onecard } from './onecard';\r\nimport { oxxo } from './oxxo';\r\nimport { pagoefectivo } from './pagoefectivo';\r\nimport { pagoexpress } from './pagoexpress';\r\nimport { pagofacil } from './pagofacil';\r\nimport { paypal } from './paypal';\r\nimport { paysafecard } from './paysafecard';\r\nimport { picpay } from './picpay';\r\nimport { pix } from './pix';\r\nimport { philippines_bank } from './philippines_bank';\r\nimport { promptpay } from './promptpay';\r\nimport { promsviaz } from './promsviaz';\r\nimport { przelewy24 } from './przelewy24';\r\nimport { qiwi } from './qiwi';\r\nimport { rapid } from './rapid';\r\nimport { rapipago } from './rapipago';\r\nimport { redpagos } from './redpagos';\r\nimport { sberbank } from './sberbank';\r\nimport { sbp } from './sbp';\r\nimport { sepa } from './sepa';\r\nimport { servipag } from './servipag';\r\nimport { skinify } from './skinify';\r\nimport { skinpay } from './skinpay';\r\nimport { skinsback } from './skinsback';\r\nimport { skrill } from './skrill';\r\nimport { sofort } from './sofort';\r\nimport { spei } from './spei';\r\nimport { store_mexico } from './store_mexico';\r\nimport { tele2 } from './tele2';\r\nimport { thailand_bank } from './thailand_bank';\r\nimport { thailand_bank_transfer } from './thailand_bank_transfer';\r\nimport { tinkoff } from './tinkoff';\r\nimport { trustly } from './trustly';\r\nimport { vietnam_bank } from './vietnam_bank';\r\nimport { vietnam_bank_qr } from './vietnam_bank_qr';\r\nimport { vietnam_bank_transfer } from './vietnam_bank_transfer';\r\nimport { webpay } from './webpay';\r\nimport { wechat } from './wechat';\r\nimport { wme } from './wme';\r\nimport { wmr } from './wmr';\r\nimport { wmu } from './wmu';\r\nimport { wmz } from './wmz';\r\nimport { zen_wallet } from './zen_wallet';\r\nimport { yandex } from './yandex';\r\nimport { wallester } from './wallester';\r\nimport { bitcoin } from './bitcoin';\r\nimport { tron } from './tron';\r\nimport { ethereum } from './ethereum';\r\nimport { tether } from './tether';\r\nimport { tether_trc20 } from './tether_trc20';\r\nimport { mercado_pago } from './mercado_pago';\r\nimport { mirpay } from './mirpay';\r\nimport { mbway } from './mbway';\r\nimport { PaymentFields } from '../payment-fields';\r\n\r\nexport const CONFIG: {[key: string]: PaymentFields} = {\r\n advcash,\r\n alfabank,\r\n alipay,\r\n alipay_plus,\r\n applepay,\r\n argentina_bank,\r\n atf24,\r\n baloto,\r\n beeline,\r\n blik,\r\n boleto,\r\n brazil_bank,\r\n card,\r\n carga_virtual,\r\n cash,\r\n cashtocode,\r\n codi,\r\n comepay,\r\n cup,\r\n cup_bank,\r\n cup_p2p,\r\n deposit_express,\r\n direct_banking_europe,\r\n dotpay,\r\n ecopayz,\r\n eps,\r\n giropay,\r\n gmmoney,\r\n internal_gamemoney,\r\n googlepay,\r\n ideal,\r\n indonesia_bank,\r\n indonesia_bank_transfer,\r\n jeton,\r\n jeton_voucher,\r\n kassa24,\r\n link,\r\n local_card_brazil,\r\n local_card_mexico,\r\n loterica,\r\n malaysia_bank,\r\n megafon,\r\n mexico_bank,\r\n momopay,\r\n moneta,\r\n mts,\r\n multibanco,\r\n neosurf,\r\n neteller,\r\n nupay,\r\n onecard,\r\n oxxo,\r\n pagoefectivo,\r\n pagoexpress,\r\n pagofacil,\r\n paypal,\r\n paysafecard,\r\n picpay,\r\n pix,\r\n philippines_bank,\r\n promptpay,\r\n promsviaz,\r\n przelewy24,\r\n qiwi,\r\n rapid,\r\n rapipago,\r\n redpagos,\r\n sberbank,\r\n sbp,\r\n sepa,\r\n servipag,\r\n skinify,\r\n skinpay,\r\n skinsback,\r\n skrill,\r\n sofort,\r\n spei,\r\n store_mexico,\r\n tele2,\r\n thailand_bank,\r\n thailand_bank_transfer,\r\n tinkoff,\r\n trustly,\r\n vietnam_bank,\r\n vietnam_bank_qr,\r\n vietnam_bank_transfer,\r\n webpay,\r\n wechat,\r\n wme,\r\n wmr,\r\n wmu,\r\n wmz,\r\n zen_wallet,\r\n yandex,\r\n wallester,\r\n bitcoin,\r\n tron,\r\n ethereum,\r\n tether,\r\n tether_trc20,\r\n mercado_pago,\r\n mirpay,\r\n mbway\r\n};\r\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\r\nimport {\r\n MethodInfo,\r\n MethodType,\r\n SessionInfo,\r\n TerminalMethodBanksResponse,\r\n TerminalMethodDocumentTypesResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../codegen/model/models';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, delay, map, tap } from 'rxjs/operators';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { PaymentFields } from './../pages/components/constructor-form/models';\r\nimport { HttpBadRequestResponse } from '../models/http-bad-request-response';\r\nimport { TranslateLangStorageService } from './translation/translate-lang-storage.service';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\nimport { CdeTerminalSdk, SessionToken } from '../models';\r\nimport { CONFIG } from '../pages/components/constructor-form/models/config/all';\r\n\r\n@Injectable()\r\nexport class SessionDataSource {\r\n document = inject<Document>(DOCUMENT);\r\n private langStorage = inject(TranslateLangStorageService);\r\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n private token = inject(SessionToken, {optional: true}) || 'token';\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private cookieSrv = inject(CookieService);\r\n private cd = inject(ChangeDetectorRef);\r\n private cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);\r\n\r\n payment_token?: string;\r\n data$: BehaviorSubject<SessionInfo> = new BehaviorSubject<SessionInfo>(undefined);\r\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n loadingMethodInfo$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private redirectUrl: string;\r\n private returnUrl: string;\r\n private configurations: Map<string, PaymentFields> = new Map();\r\n\r\n private fillConfigurations(methods: MethodType[] = this.getSessionValue()?.methodTypes || []) {\r\n return methods.forEach(\r\n (m: MethodType) => this.configurations.set(\r\n m.type.name,\r\n CONFIG[m.type.name]\r\n )\r\n );\r\n }\r\n\r\n private unionGlobalCountries(session: SessionInfo) {\r\n let methods = session.methodTypes;\r\n\r\n // sort methods by countries in map\r\n const countriesTypes: Map<string, Set<number>> = new Map<string, Set<number>>();\r\n methods.forEach(({countryISOCode, type: {id}}) => {\r\n let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);\r\n countriesTypes.set(countryISOCode, types);\r\n });\r\n\r\n // Check every type in the country on having in other countries and getting ones in collection\r\n const globalCountries: string[] = [];\r\n const typesCountriesArray = Array.from(countriesTypes.values());\r\n const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));\r\n countriesTypes.forEach((types, iso) => {\r\n // Check every type includes in all countries\r\n const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);\r\n if (hasOnlyGlobalTypes) {\r\n globalCountries.push(iso);\r\n }\r\n });\r\n\r\n // if we have more than one country with only global types collapse them into one category\r\n if (globalCountries.length > 0) {\r\n const firstGlobalCountry = globalCountries.pop();\r\n methods = methods\r\n .filter(({countryISOCode}) => !globalCountries.includes(countryISOCode));\r\n methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));\r\n }\r\n session.methodTypes = methods;\r\n return session;\r\n }\r\n\r\n getConfiguration(name: string) {\r\n return this.configurations.get(name);\r\n }\r\n\r\n redirect() {\r\n if (this.redirectUrl) {\r\n this.document.defaultView.location.href = this.redirectUrl;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n returnBack() {\r\n if (this.returnUrl) {\r\n this.document.defaultView.location.href = this.returnUrl;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get canReturnToProject() {\r\n return !!this.returnUrl;\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this.returnUrl;\r\n }\r\n\r\n getTypeNameById(id: number) {\r\n return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;\r\n }\r\n\r\n getSessionValue(): SessionInfo {\r\n return this.data$.getValue();\r\n }\r\n\r\n get(): Observable<SessionInfo> {\r\n if (!this.loading$.getValue()) {\r\n this.loading$.next(true);\r\n }\r\n\r\n return this.terminalApi.getTerminalSessionInfo({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loading$)\r\n ),\r\n map((session: SessionInfo) => {\r\n this.data$.next(this.unionGlobalCountries(session));\r\n this.fillConfigurations();\r\n this.loading$.next(false);\r\n this.returnUrl = session.returnUrl;\r\n return this.data$.getValue();\r\n })\r\n );\r\n }\r\n\r\n getMethodInfo(currency, typeId: number): Observable<MethodInfo> {\r\n if (!this.loadingMethodInfo$.getValue()) {\r\n this.loadingMethodInfo$.next(true);\r\n }\r\n if (!typeId || !currency) {\r\n return throwError({})\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loadingMethodInfo$)\r\n )\r\n );\r\n }\r\n return this.terminalApi\r\n .getTerminalMethodInfo({\r\n token: this.token,\r\n lang: this.langStorage.currentLang,\r\n currency,\r\n typeId\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loadingMethodInfo$)\r\n ),\r\n tap((method) => {\r\n if (method.payment_token) {\r\n this.payment_token = method.payment_token;\r\n }\r\n this.loadingMethodInfo$.next(false);\r\n })\r\n );\r\n }\r\n\r\n private catchError(loading$?: BehaviorSubject<boolean>) {\r\n return (err: HttpBadRequestResponse) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n loading$?.next(false);\r\n this.cd.markForCheck();\r\n return throwError(err);\r\n }\r\n }\r\n\r\n prepare(data: TerminalPaymentPrepareRequest): Observable<TerminalPaymentPrepareResponse> {\r\n return this.terminalApi\r\n .postTerminalPaymentPrepare({\r\n token: this.token,\r\n terminalPaymentPrepareRequest: data\r\n })\r\n .pipe(\r\n delay(2000),\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n confirm() {\r\n return this.terminalApi\r\n .postTerminalPaymentConfirm({\r\n token: this.token,\r\n terminalPaymentConfirmRequest: {\r\n lang: this.langStorage.currentLang,\r\n gaCookie: this.cookieSrv.get('_ga') || null\r\n }\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n ),\r\n tap((resp) => {\r\n this.redirectUrl = resp.redirectUrl;\r\n })\r\n );\r\n }\r\n\r\n close() {\r\n\r\n return this.terminalApi\r\n .postTerminalClose({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n ),\r\n map(() => {\r\n if (!this.returnBack()) {\r\n const error = {code: I18N_KEY.SESSION_CLOSED};\r\n this.apiErrorsSrv.setLocalError(error);\r\n this.cd.markForCheck();\r\n\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n\r\n getBanks(typeId: number): Observable<TerminalMethodBanksResponse> {\r\n return this.terminalApi\r\n .getTerminalMethodBanks({\r\n typeId,\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n getDocuments(typeId: number): Observable<TerminalMethodDocumentTypesResponse> {\r\n\r\n return this.terminalApi\r\n .getTerminalMethodDocumentTypes({\r\n typeId,\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n createCardTerminalSdk(lang: string, id: string, tabindex?: number): CdeTerminalSdk {\r\n return this.cardTerminalSdkFactory(this.payment_token, id, {lang, tabindex});\r\n }\r\n\r\n feeChangeable = !!this.terminalApi.getFee;\r\n\r\n feeOptions(payment: any) {\r\n return this.terminalApi.getFee(payment);\r\n }\r\n}\r\n\r\n\r\n","import { CSP_NONCE, inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ENVIRONMENT } from '../../const';\r\n\r\nexport type SDKScriptId = 'cde_sdk' | 'mir-pay-sdk' | 'apple-pay-sdk' | 'google-pay-sdk';\r\n\r\n@Injectable()\r\nexport class ScriptLoader {\r\n private document = inject<Document>(DOCUMENT);\r\n private nonce = inject(CSP_NONCE);\r\n private environment = inject(ENVIRONMENT);\r\n\r\n\r\n readonly SCRIPT_HASH_MAP = new Map<SDKScriptId, { src: string; hash?: string; }>([\r\n [\r\n 'cde_sdk',\r\n this.environment.production ? {\r\n src: 'https://app.cde.cloud/iframe-sdk/sdk-v1.0.2.js',\r\n hash: 'sha384-p4PUsA47nBEOaOoEy4iXVnqntD4mpWM2cXFtpol6Tl7OdUCwDgqxoi0W71WJdGhi'\r\n } : {\r\n src: 'https://app.cde-cloud.dev/iframe-sdk/sdk.js',\r\n hash: ''\r\n }\r\n ]\r\n ]);\r\n\r\n fetchScript(id: SDKScriptId) {\r\n return new Promise<void>((resolve, reject) => {\r\n let script: HTMLScriptElement;\r\n if (id === 'cde_sdk' && this.document.defaultView?.hasOwnProperty('CdeTerminalSdk')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'google-pay-sdk' && this.document.defaultView?.hasOwnProperty('google')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'apple-pay-sdk' && this.document.defaultView?.hasOwnProperty('ApplePaySession')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'mir-pay-sdk' && this.document.defaultView?.hasOwnProperty('YooMoneyCheckoutWidget')) {\r\n resolve();\r\n return;\r\n }\r\n\r\n if (id === 'google-pay-sdk' || id === 'apple-pay-sdk' || id === 'mir-pay-sdk') {\r\n const template: HTMLTemplateElement = this.document.querySelector(`template#${id}`)\r\n if (!template) {\r\n reject();\r\n }\r\n script = template.content.children.item(0) as HTMLScriptElement;\r\n } else {\r\n const {src, hash} = this.SCRIPT_HASH_MAP.get(id);\r\n script = this.document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = src;\r\n if (hash) {\r\n script.integrity = hash;\r\n script.crossOrigin = 'anonymous';\r\n }\r\n script.async = true;\r\n }\r\n script.nonce = this.nonce;\r\n script.onload = (): void => resolve();\r\n script.onerror = (err): void => reject(err);\r\n this.document.body.appendChild(script);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { loadI18NData } from './helpers/i18n-countries';\r\nimport { ApiErrorsService, ScriptLoader, TranslateLangStorageService } from './services';\r\nimport { I18N_COUNTRIES, LANGUAGE } from './models';\r\nimport { getNames } from 'i18n-iso-countries';\r\n\r\nloadI18NData();\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n loadChildren: () => import('./pages/pages.module')\r\n },\r\n {\r\n path: 'checkin',\r\n loadChildren: () => import('./checkin/checkin.module').then(m => m.CheckinModule)\r\n },\r\n {\r\n path: '**',\r\n redirectTo: ''\r\n }\r\n ])\r\n ]\r\n})\r\nexport class TerminalModule {\r\n}\r\n\r\nexport const provideTerminal = () => {\r\n return [\r\n TranslateLangStorageService,\r\n {\r\n provide: I18N_COUNTRIES,\r\n useValue: {\r\n ru: getNames(LANGUAGE.RU),\r\n lt: getNames(LANGUAGE.LT),\r\n en: getNames(LANGUAGE.EN),\r\n es: getNames(LANGUAGE.ES),\r\n tr: getNames(LANGUAGE.TR),\r\n pt: getNames(LANGUAGE.PT)\r\n }\r\n },\r\n ApiErrorsService,\r\n ScriptLoader\r\n ];\r\n};\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[terminalFee]',\r\n standalone: true\r\n})\r\nexport class FeeTemplateDirective {}\r\n","import { Component, ContentChild, HostListener, inject, OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, Router, RouterOutlet } from '@angular/router';\r\nimport { filter, first, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { BehaviorSubject, of, Subject } from 'rxjs';\r\nimport { TranslateLangStorageService } from './services/translation/translate-lang-storage.service';\r\nimport { APP_READY_TOKEN } from './models/constants';\r\nimport { FocusHandler } from './helpers/key-down-handler';\r\nimport { hideInitLoader } from './helpers/hide-init-loader';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FeeTemplateDirective } from './pages/directives/fee-template.directive';\r\n\r\n@Component({\r\n selector: 'terminal',\r\n host: {\r\n class: 'trm'\r\n },\r\n templateUrl: './terminal-tpl.component.html',\r\n styleUrls: ['./terminal-tpl.component.scss'],\r\n imports: [RouterOutlet, AsyncPipe]\r\n})\r\nexport class TerminalTplComponent implements OnInit, OnDestroy {\r\n private router = inject(Router);\r\n ready$ = inject<BehaviorSubject<boolean>>(APP_READY_TOKEN);\r\n langStorage = inject(TranslateLangStorageService);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @ContentChild(FeeTemplateDirective, {read: TemplateRef, static: false}) feeTpl;\r\n\r\n @HostListener('document:keydown.arrowDown', ['$event', '$event.currentTarget']) next(ev, document: Document) {\r\n FocusHandler.nextEnabled(ev);\r\n }\r\n @HostListener('document:keydown.arrowUp', ['$event', '$event.currentTarget']) prev(ev, document: Document) {\r\n FocusHandler.previousEnabled(ev);\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.navigationEnd$()\r\n .pipe(\r\n switchMap(() => this.langStorage.setLanguage$({ save: false })),\r\n switchMap(() => hideInitLoader()),\r\n first(),\r\n takeUntil(this.unSubscriber),\r\n )\r\n .subscribe(() => this.ready$.next(true));\r\n }\r\n\r\n private navigationEnd$() {\r\n if (this.router.navigated) {\r\n return of({});\r\n }\r\n return this.router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)\r\n )\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (ready$ | async) {\r\n <div class=\"app__container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[trmSelectLabelTemplate]',\r\n standalone: true\r\n})\r\nexport class TrmSelectLabelTemplateDirective {\r\n tpl = inject<TemplateRef<TrmSelectLabelTemplateDirective>>(TemplateRef);\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, inject, OnDestroy, Renderer2 } from '@angular/core';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n\r\n@Directive({\r\n selector: 'ng-scrollbar[appScrollbarSelectHeight]',\r\n standalone: true\r\n})\r\nexport class ScrollbarSelectHeightDirective implements AfterViewInit, OnDestroy {\r\n private element = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private layoutScrollbar = inject(NgScrollbar, { skipSelf: true });\r\n private scrollbar = inject(NgScrollbar);\r\n\r\n private afterInitSub?: { unsubscribe: () => void };\r\n private afterUpdateSub?: { unsubscribe: () => void };\r\n\r\n readonly DEFAULT_MAX_HEIGHT = 250;\r\n\r\n ngAfterViewInit() {\r\n const contentWrapper = this.scrollbar?.viewport?.contentWrapperElement;\r\n if (!contentWrapper) return;\r\n\r\n const updateFn = () => {\r\n const viewport = this.layoutScrollbar.viewport;\r\n const css = this.element.nativeElement.getBoundingClientRect();\r\n const height = viewport.offsetHeight - parseFloat(css.top);\r\n this.renderer.setStyle(\r\n this.scrollbar.nativeElement,\r\n 'maxHeight',\r\n (height < this.DEFAULT_MAX_HEIGHT ? this.DEFAULT_MAX_HEIGHT : (height - 12)) + 'px'\r\n );\r\n };\r\n\r\n this.afterInitSub = this.scrollbar.afterInit.subscribe(updateFn);\r\n this.afterUpdateSub = this.scrollbar.afterUpdate.subscribe(updateFn);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.afterInitSub?.unsubscribe();\r\n this.afterUpdateSub?.unsubscribe();\r\n }\r\n}","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_KEY, i18nMap } from './../../i18n';\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Pipe({\r\n name: 'trans',\r\n pure: false,\r\n standalone: true\r\n})\r\nexport class TranslateByKeyPipe implements PipeTransform, OnDestroy {\r\n private cd = inject(ChangeDetectorRef);\r\n private translateSrv = inject(TranslateService);\r\n\r\n lang: string;\r\n private onLangChangeSubscription: Subscription;\r\n\r\n transform(query: string, ...args: any[]): any {\r\n if (query === '') {\r\n return '';\r\n }\r\n\r\n this._dispose();\r\n this._subscribe();\r\n this.lang = this.translateSrv.currentLang;\r\n return this.translateSrv.instant(i18nMap.get(query as I18N_KEY) || query, ...args);\r\n }\r\n\r\n private _subscribe() {\r\n this.onLangChangeSubscription = this.translateSrv.onLangChange\r\n .subscribe(({lang}) => {\r\n if (lang === this.lang) {\r\n return\r\n }\r\n this.lang = lang;\r\n this.cd.markForCheck()\r\n });\r\n }\r\n\r\n private _dispose() {\r\n if (this.onLangChangeSubscription && !this.onLangChangeSubscription.closed) {\r\n this.onLangChangeSubscription.unsubscribe();\r\n }\r\n this.onLangChangeSubscription = null;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._dispose();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output\r\n} from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TrmSelectLabelTemplateDirective } from './trm-select-label-template.directive';\r\nimport { ScrollbarSelectHeightDirective } from './scrollbar-select-height.directive';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-trm-select',\r\n templateUrl: './trm-select.component.html',\r\n styleUrls: ['./trm-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TrmSelectComponent),\r\n multi: true,\r\n }\r\n ],\r\n animations: [insertRemoveTrigger],\r\n imports: [NgTemplateOutlet, NgClass, ScrollbarSelectHeightDirective, NgScrollbar, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class TrmSelectComponent implements OnDestroy, ControlValueAccessor, AfterViewInit {\r\n private el = inject(ElementRef);\r\n private document = inject<Document>(DOCUMENT);\r\n private cd = inject(ChangeDetectorRef);\r\n\r\n private unSubscriber: Subject<void> = new Subject<void>();\r\n private _disabled = false;\r\n I18N_KEY = I18N_KEY;\r\n\r\n get disabled() {\r\n return this.data && this.data.length === 1 && this.selected === this.getItemValue(this.data[0])\r\n }\r\n\r\n @Input() label: string;\r\n @Input() hasBorder = true;\r\n @Input() data: any[] | false;\r\n @Input() tabIndex = 0;\r\n @Input() name = '';\r\n @Input() placeholder = '';\r\n @Input() searchable = true;\r\n @Input() hasScrollbar = true;\r\n searchControl = new FormControl();\r\n @Output() open = new EventEmitter();\r\n @Output() search = new EventEmitter();\r\n selected: any;\r\n selectedItem: any;\r\n filteredData = [];\r\n\r\n onChange = (value) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n @ContentChild(TrmSelectLabelTemplateDirective) labelTeplate: TrmSelectLabelTemplateDirective;\r\n get labelTpl() {\r\n return this.labelTeplate?.tpl;\r\n }\r\n\r\n @Input() nameId = 'id';\r\n @Input() nameLabel = 'name';\r\n opened = false;\r\n\r\n constructor() {\r\n fromEvent(this.document, 'click')\r\n .pipe(\r\n debounceTime(100),\r\n filter((ev) => this.opened && !this.el.nativeElement.contains(ev.target)),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.toggle());\r\n }\r\n\r\n get selectedLabel() {\r\n return this.selectedItem?.[this.nameLabel] || this.getItemLabel(this.selected);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.searchable) {\r\n this.searchControl\r\n .valueChanges\r\n .pipe(\r\n takeUntil(this.unSubscriber),\r\n debounceTime(200)\r\n )\r\n .subscribe((search) => this.triggerSearch(search));\r\n }\r\n }\r\n\r\n get list() {\r\n if (Array.isArray(this.data)) {\r\n return this.data?.filter(item => !this.isSelected(item));\r\n }\r\n return [];\r\n }\r\n\r\n get focusableEl() {\r\n return this.el.nativeElement.querySelector('[tabindex]');\r\n }\r\n\r\n get focused(): boolean {\r\n return this.el.nativeElement.contains(this.document.activeElement);\r\n }\r\n\r\n onBlur() {\r\n if (!this.opened) {\r\n return;\r\n }\r\n // closed select when focus out\r\n setTimeout(() => !this.focused && this.toggle(), 100);\r\n }\r\n\r\n private searchAutofocusTimer: number;\r\n\r\n toggle() {\r\n if (this.data === false) {\r\n return;\r\n }\r\n if (!this.opened && !this.data?.length) {\r\n return;\r\n }\r\n if ((!this.searchable || !this.searchControl.value) && this.data?.length === 1 && this.selected === this.data[0]) {\r\n return;\r\n }\r\n if (this.searchable) {\r\n if (this.opened === false) {\r\n clearTimeout(this.searchAutofocusTimer);\r\n this.searchAutofocusTimer = this.document.defaultView.setTimeout(\r\n () => this.el.nativeElement.querySelector('.trm-select-list__search input').focus(),\r\n 200\r\n );\r\n } else {\r\n this.searchControl.setValue('');\r\n }\r\n }\r\n this.opened = !this.opened;\r\n this.open.emit(this.opened);\r\n this.onTouch();\r\n this.cd.detectChanges();\r\n }\r\n\r\n isSelected(item) {\r\n let value = this.getItemValue(item);\r\n if (value) {\r\n return this.selected === value;\r\n }\r\n return false;\r\n }\r\n\r\n getItemValue(item) {\r\n return item?.[this.nameId] || item;\r\n }\r\n\r\n getItemLabel(id) {\r\n if (!this.data) {\r\n return '';\r\n }\r\n id = this.getItemValue(id);\r\n const item = this.getCollectionItem(id);\r\n return item?.[this.nameLabel] || id;\r\n }\r\n\r\n getCollectionItem(id) {\r\n if (!this.data) {\r\n return id;\r\n }\r\n return this.data.find(f => this.getItemValue(f) === id);\r\n }\r\n\r\n select(item) {\r\n if (this.selected !== this.getItemValue(item)) {\r\n this.onChange(this.getItemValue(item));\r\n }\r\n this.selected = this.getItemValue(item);\r\n this.selectedItem = this.getCollectionItem(this.selected);\r\n this.toggle();\r\n this.focusableEl.focus();\r\n }\r\n\r\n writeValue(value: any) {\r\n if (!this.data) {\r\n return;\r\n }\r\n this.selected = value;\r\n this.selectedItem = this.getCollectionItem(this.selected);\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n triggerSearch(value = this.searchControl.value) {\r\n if (this.data === false) {\r\n return;\r\n }\r\n this.search.emit(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (label) {\r\n <label class=\"trm-label\"\r\n [for]=\"name\"\r\n (click)=\"toggle()\"\r\n > {{ label }} </label>\r\n}\r\n<div class=\"trm-select\"\r\n [class.trm-select--noBordered]=\"!hasBorder\"\r\n [class.trm-select--opened]=\"opened\"\r\n [class.trm-select--disabled]=\"disabled\"\r\n [tabindex]=\"tabIndex\"\r\n (blur)=\"onBlur()\"\r\n [id]=\"name\"\r\n (keydown.enter)=\"toggle()\"\r\n>\r\n @if (labelTpl) {\r\n <div class=\"trm-select-value\"\r\n (click)=\"toggle()\">\r\n @if (selected && selectedItem) {\r\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item: selectedItem}\"></ng-container>\r\n }\r\n @if (!selected) {\r\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n }\r\n <span class=\"trm-select-value__arrow\"\r\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n @if (data === false) {\r\n <div class=\"trm-spinner\"></div>\r\n }\r\n </div>\r\n @if (opened && hasScrollbar) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-scrollbar appearance=\"compact\" class=\"trm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n </ng-scrollbar>\r\n </ul>\r\n }\r\n @if (opened && !hasScrollbar) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n </ul>\r\n }\r\n <ng-template #listTpl>\r\n @if (searchable) {\r\n <li class=\"trm-select-list__item trm-select-list__search\">\r\n <input class=\"trm-form-field\"\r\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation(); $event.preventDefault();\"\r\n [formControl]=\"searchControl\">\r\n </li>\r\n }\r\n @if (searchable && searchControl.value && list.length === 0) {\r\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n >\r\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n </li>\r\n }\r\n @for (item of list; track getItemValue(item)) {\r\n <li class=\"trm-select-list__item\"\r\n (click)=\"select(item)\"\r\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n [tabindex]=\"tabIndex\"\r\n (blur)=\"onBlur()\">\r\n @if (item) {\r\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item}\"></ng-container>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n } @else {\r\n <div class=\"trm-select-value\"\r\n (click)=\"toggle()\"\r\n (keydown.enter)=\"toggle()\">\r\n {{ selectedLabel }}\r\n @if (!selected) {\r\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n }\r\n <span class=\"trm-select-value__arrow\"\r\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n @if (data === false) {\r\n <div class=\"trm-spinner\"></div>\r\n }\r\n </div>\r\n @if (opened) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-scrollbar class=\"gm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n @if (searchable) {\r\n <li class=\"trm-select-list__item trm-select-list__search\">\r\n <input class=\"trm-form-field\"\r\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation();\"\r\n [formControl]=\"searchControl\">\r\n </li>\r\n }\r\n @if (searchable && searchControl.value && list.length === 0) {\r\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n >\r\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n </li>\r\n }\r\n @for (item of list; track getItemValue(item)) {\r\n <li class=\"trm-select-list__item\"\r\n [tabindex]=\"tabIndex\"\r\n (click)=\"select(item)\"\r\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n (blur)=\"onBlur()\">\r\n {{ getItemLabel(item) }}\r\n </li>\r\n }\r\n </ng-scrollbar>\r\n </ul>\r\n }\r\n }\r\n</div>\r\n<ng-content select=\"[app-trm-select-hint]\"></ng-content>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output\r\n} from '@angular/core';\r\nimport { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgClass } from '@angular/common';\r\nimport { TrmSelectComponent } from '../trm-select/trm-select.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from \"../../../../const\";\r\nimport { VersionServiceInterface } from \"../../../models\";\r\n\r\n@Component({\r\n selector: 'app-terminal-lang-switcher',\r\n templateUrl: './terminal-lang-switcher.component.html',\r\n styleUrls: ['./terminal-lang-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent]\r\n})\r\nexport class TerminalLangSwitcherComponent implements OnDestroy {\r\n private versionSrv: VersionServiceInterface = inject(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private langStorageSrv = inject(TranslateLangStorageService);\r\n private cd = inject(ChangeDetectorRef);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @Input() loading = false;\r\n @Output() langChange = new EventEmitter<string>();\r\n @Input() tabIndex = 0;\r\n\r\n get translation_keys() {\r\n return this.langStorageSrv.TRANSLATION_LANG_KEYS;\r\n }\r\n\r\n constructor() {\r\n this.langStorageSrv.onLangChange$\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.cd.detectChanges());\r\n }\r\n\r\n get lang() {\r\n return this.langStorageSrv.currentLang;\r\n }\r\n get langs(): string[] {\r\n return this.versionSrv.langs;\r\n }\r\n\r\n changeLang(lang: string) {\r\n this.langStorageSrv.setLanguage$({ lang, save: true });\r\n this.cd.markForCheck();\r\n this.langChange.emit(lang);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (!loading) {\r\n <app-trm-select class=\"lang-switcher\"\r\n [hasBorder]=\"false\"\r\n [searchable]=\"false\"\r\n [hasScrollbar]=\"false\"\r\n [data]=\"langs\"\r\n [ngModel]=\"lang\"\r\n [tabIndex]=\"tabIndex\"\r\n (ngModelChange)=\"changeLang($event)\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\r\n <span> {{translation_keys[item].name | translate}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n} @else {\r\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\r\n}\r\n","import { ChangeDetectorRef, Component, inject, Input, OnDestroy } from '@angular/core';\r\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TerminalLangSwitcherComponent } from '../terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n selector: 'app-terminal-layout-tpl',\r\n templateUrl: './terminal-layout-tpl.component.html',\r\n styleUrls: ['./terminal-layout-tpl.component.scss'],\r\n imports: [NgScrollbar, TerminalLangSwitcherComponent, GmSkeletonComponent]\r\n})\r\nexport class TerminalLayoutTplComponent implements OnDestroy {\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private translateSrv = inject(TranslateService);\r\n private cd = inject(ChangeDetectorRef);\r\n private translateStorageSrv = inject(TranslateLangStorageService);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @Input() projectName: string;\r\n @Input() description: string;\r\n @Input() loading = true;\r\n\r\n constructor() {\r\n this.translateSrv.onLangChange\r\n .pipe(takeUntil(this.unSubscriber))\r\n .subscribe(() => {\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n get hasChoice() {\r\n return this.translateStorageSrv.languages.length > 1;\r\n }\r\n\r\n get logoClass(): string {\r\n return this.versionSrv.logoClass;\r\n }\r\n get footerText() {\r\n return this.versionSrv.footerText;\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher\r\n [loading]=\"loading\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n <ng-content selector=\"[terminal-layout-status]\"></ng-content>\r\n <ng-content selector=\"[terminal-layout-form]\"></ng-content>\r\n @if (loading) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{footerText}}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'sanitize',\r\n standalone: true\r\n})\r\nexport class SanitizerPipe implements PipeTransform {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n transform(value: any, context: SecurityContext): any {\r\n return this._sanitizer.sanitize(context, value);\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\n\r\nimport { SanitizerPipe } from '../../pipes/sanitizer.pipe';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-status',\r\n templateUrl: './constructor-status.component.html',\r\n styleUrls: ['./constructor-status.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [SanitizerPipe, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorStatusComponent {\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n SecurityContext = SecurityContext;\r\n I18N_KEY = I18N_KEY;\r\n @Input() failed = false;\r\n @Input() inProgress = false;\r\n @Input() animation = true;\r\n @Input() message: string;\r\n @Input() failTitle: string;\r\n @Input() progressTitle: string;\r\n @Input() successTitle: string;\r\n @Input() tabIndex: number;\r\n @Input() backUrl: string;\r\n @Input() backUrlTitle: string;\r\n @Input() hasSupportHint = true;\r\n get supportEmail() {\r\n return this.versionSrv.supportEmail;\r\n }\r\n}\r\n","<div class=\"c-status\">\r\n <div class=\"c-status__content\"\r\n [class.c-status--failed]=\"failed\"\r\n [class.c-status--progress]=\"inProgress\"\r\n [class.c-status--live]=\"animation\"\r\n >\r\n <i class=\"c-status__img\"></i>\r\n <h5 class=\"c-status__title\">\r\n @if (inProgress) {\r\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\r\n } @else {\r\n @if (failed) {\r\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\r\n }\r\n @if (!failed) {\r\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\r\n }\r\n }\r\n </h5>\r\n <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\r\n @if (hasSupportHint) {\r\n <div class=\"c-status__hint\">\r\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\r\n @if (supportEmail) {\r\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (!!backUrl) {\r\n <div class=\"c-status__actions\">\r\n <a class=\"trm-button trm-button--primary\"\r\n [tabindex]=\"tabIndex\"\r\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\r\n <div class=\"c-status__hint c-status__hint-button\">\r\n <ng-content constructor-status-button-hint></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Directive, EmbeddedViewRef, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngVar]',\r\n standalone: true,\r\n})\r\nexport class NgVarDirective<T = unknown> {\r\n private _viewContainer = inject(ViewContainerRef);\r\n private _templateRef = inject<TemplateRef<NgVarContext<T>>>(TemplateRef);\r\n\r\n private _context: NgVarContext<T> = new NgVarContext<T>();\r\n private _viewRef: EmbeddedViewRef<NgVarContext<T>> | null = null;\r\n\r\n @Input()\r\n set ngVar(context: T) {\r\n this._context.$implicit = this._context.ngVar = context;\r\n\r\n if (!this._viewRef) {\r\n this._viewRef = this._viewContainer.createEmbeddedView(\r\n this._templateRef,\r\n this._context\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport class NgVarContext<T = unknown> {\r\n public $implicit: T = null!;\r\n public ngVar: T = null!;\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\nfunction symbolCurrency(code: string, format: 'symbol' | 'narrowSymbol', lang = 'en'): string {\r\n try {\r\n return Intl.NumberFormat(lang, {\r\n style: 'currency',\r\n currency: code,\r\n currencyDisplay: format,\r\n })\r\n .formatToParts()\r\n .find((part) => part.type === 'currency').value;\r\n } catch (e) {\r\n return code;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'trm-amount',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './trm-amount.component.html',\r\n styleUrl: './trm-amount.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CurrencyPipe\r\n ]\r\n})\r\nexport class TrmAmountComponent {\r\n private currencyPipe: CurrencyPipe = inject(CurrencyPipe);\r\n private _thousandSeparator = ' ';\r\n private _format = '1.2-8';\r\n separator = '.';\r\n\r\n value = input<number | string>(0);\r\n code = input<string>('');\r\n\r\n symbol = computed(() => symbolCurrency(this.code(), 'narrowSymbol'));\r\n symbolWide = computed(() => symbolCurrency(this.code(), 'symbol'));\r\n private _amount = computed(() => this.currencyPipe\r\n .transform(this.value(), this.code(), 'symbol-narrow', this._format, 'en')\r\n .replace(/,/g, this._thousandSeparator)\r\n .replace(this.symbol(), '')\r\n .trim()\r\n );\r\n resultSymbol = computed(() => this.symbol() === '$' ? this.symbolWide() : this.symbol());\r\n amountSplitted = computed(() => {\r\n const [int, fract] = this._amount().split('.');\r\n return {int, fract};\r\n });\r\n}\r\n","<span class=\"trm-amount\">\r\n <span class=\"trm-amount__value\">\r\n <span class=\"trm-amount__int\">{{ amountSplitted().int }}</span>\r\n @if (amountSplitted().fract) {\r\n <span class=\"trm-amount__fract\">{{ separator }}{{ amountSplitted().fract }}</span>\r\n }\r\n </span>\r\n <span class=\"trm-currency\">{{ resultSymbol() }}</span>\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TerminalLayoutTplComponent } from './components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { TerminalLangSwitcherComponent } from './components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorStatusComponent } from './components/constructor-status/constructor-status.component';\r\nimport { TrmSelectComponent } from './components/trm-select/trm-select.component';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ScrollbarSelectHeightDirective } from './components/trm-select/scrollbar-select-height.directive';\r\nimport { TranslateByKeyPipe } from './pipes/translate-by-key.pipe';\r\nimport { NgVarDirective } from './directives/ng-var.directive';\r\nimport { TrmSelectLabelTemplateDirective } from './components';\r\n\r\nconst components = [\r\n TerminalLayoutTplComponent,\r\n TerminalLangSwitcherComponent,\r\n ConstructorStatusComponent,\r\n TrmSelectComponent,\r\n ScrollbarSelectHeightDirective,\r\n TranslateByKeyPipe,\r\n NgVarDirective,\r\n TrmSelectLabelTemplateDirective\r\n]\r\n\r\n@NgModule({\r\n exports: components,\r\n providers: [\r\n TranslatePipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgScrollbar,\r\n TranslateModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ...components\r\n ]\r\n})\r\nexport class SharedModule {\r\n}\r\n","export function removeEmptyProps<T extends { [key: string]: any }>(obj: T, options: { nullValue: boolean } = { nullValue: true }): T {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return obj;\r\n }\r\n\r\n Object.keys(obj).forEach((key: string) => {\r\n const value: any = obj[key];\r\n if (typeof value === 'undefined' || (options?.nullValue === true && value === null) || value === '' || (typeof value === 'number' && isNaN(value))) {\r\n delete obj[key];\r\n }\r\n });\r\n return obj;\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { CollectionType, PaymentField, PaymentFieldOptionsItem, PaymentFields, PaymentFieldTypeEnum } from '../models';\r\nimport { SessionDataSource } from '../../../../services/session.data-source';\r\nimport { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { MethodInfo, TerminalPaymentPrepareRequest } from '../../../../../codegen/model/models';\r\nimport { distinctUntilChanged, Observable, of, Subject } from 'rxjs';\r\nimport { removeEmptyProps } from \"../../../../../helpers/remove-empty-props\";\r\nimport { I18N_KEY } from \"./../../../../i18n\";\r\nimport { TERMINAL_METHOD_CONFIGURATION_FACTORY } from '../../../../../const';\r\nimport { LocalStorage } from \"../../../../services/local-storage\";\r\n\r\n@Injectable()\r\nexport class ConstructorFormService extends FormGroup<{ [key: string]: FormControl | FormGroup }> implements OnDestroy {\r\n private sessionDS = inject(SessionDataSource);\r\n private cd = inject(ChangeDetectorRef);\r\n private configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, {optional: true}) || ((method: string, defaultConfig: PaymentFields) => defaultConfig);\r\n\r\n private _storage: LocalStorage = inject(LocalStorage);\r\n private cancelRequestsSubscriber = new Subject<void>();\r\n private unSubscriber = new Subject<void>();\r\n config: PaymentFields;\r\n fields: PaymentField[] = [];\r\n maskedWallet: string;\r\n ready = false;\r\n\r\n constructor() {\r\n super({\r\n country: new FormControl(undefined, Validators.required),\r\n method: new FormControl(undefined, Validators.required),\r\n currency: new FormControl(undefined, Validators.required),\r\n user_currency: new FormControl(undefined, Validators.required),\r\n payment: new FormGroup({})\r\n });\r\n }\r\n\r\n get methodInfoLoading() {\r\n return this.sessionDS.loadingMethodInfo$.getValue();\r\n }\r\n\r\n get paymentFormFieldNames() {\r\n return Object.keys(this.payment.controls);\r\n }\r\n\r\n removePaymentFormControls() {\r\n this.paymentFormFieldNames\r\n .forEach((controlName: string) => this.payment.removeControl(controlName));\r\n }\r\n\r\n init() {\r\n this.ready = false;\r\n this.cd.detectChanges();\r\n if (this.configurationFactory) {\r\n this.config = this.configurationFactory(\r\n this.methodName,\r\n this.sessionDS.getConfiguration(this.methodName)\r\n );\r\n } else {\r\n this.config = this.sessionDS.getConfiguration(this.methodName);\r\n }\r\n\r\n this.fields = [...this.config.fields];\r\n // that trick for z-index order in page (reverse array + reverse flex-direction)\r\n this.fields.reverse();\r\n return this.sessionDS\r\n .getMethodInfo(\r\n this.currency.value,\r\n this.method.value\r\n )\r\n .pipe(\r\n switchMap((methodInfo) => this.generateFields(methodInfo)),\r\n first(),\r\n takeUntil(this.cancelRequestsSubscriber)\r\n );\r\n }\r\n\r\n public amountDynamic = false;\r\n\r\n private async generateFields(methodInfo: MethodInfo): Promise<void> {\r\n this.fields\r\n .forEach((field: PaymentField) => {\r\n if (!field.name) {\r\n return;\r\n }\r\n const control = new FormControl<string | number>({\r\n value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,\r\n disabled: false,\r\n });\r\n const validators: ValidatorFn[] = [];\r\n this.amountDynamic = methodInfo.amountDynamic;\r\n const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();\r\n field.placeholder = field.placeholder || '';\r\n if (field.type === PaymentFieldTypeEnum.Amount) {\r\n if (methodInfo.defaultAmount || methodInfo.defaultAmount === 0) {\r\n control.setValue(methodInfo.defaultAmount);\r\n }\r\n if (!isEditable) {\r\n field.readonly = true;\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n } else {\r\n field.readonly = false;\r\n validators.push((control) => +control.value === 0 ? {required: true} : null);\r\n }\r\n field.options = field.options || {};\r\n field.options.currency = this.currency.value;\r\n if (methodInfo.fee) {\r\n field.options.fee = methodInfo.fee;\r\n } else {\r\n field.options.fee = 0;\r\n }\r\n if (methodInfo.fixedFee) {\r\n field.options.fixedFee = methodInfo.fixedFee;\r\n } else {\r\n field.options.fixedFee = 0;\r\n }\r\n if (!methodInfo.amountDynamic && methodInfo.limits?.max) {\r\n field.options.max = methodInfo.limits.max;\r\n } else {\r\n delete field.options.max;\r\n }\r\n if (!methodInfo.amountDynamic && methodInfo.limits?.min) {\r\n field.options.min = methodInfo.limits.min;\r\n } else {\r\n delete field.options.min;\r\n }\r\n }\r\n if (field.wallet && methodInfo.defaultWallet) {\r\n control.setValue(methodInfo.defaultWallet);\r\n } else if (methodInfo.email && field.type === PaymentFieldTypeEnum.Email) {\r\n control.setValue(methodInfo.email);\r\n }\r\n if (field.require) {\r\n validators.push(Validators.required);\r\n }\r\n if (field.pattern) {\r\n validators.push(Validators.pattern(new RegExp(field.pattern)));\r\n }\r\n\r\n if (field.type === PaymentFieldTypeEnum.Email) {\r\n validators.push(Validators.email);\r\n }\r\n if (field.options?.max && typeof field.options?.max === 'number') {\r\n validators.push(Validators.max(field.options?.max));\r\n }\r\n if (field.options?.min && typeof field.options?.min === 'number') {\r\n validators.push(Validators.min(field.options?.min));\r\n }\r\n if (field.options?.maxLength) {\r\n validators.push(Validators.maxLength(field.options?.maxLength));\r\n }\r\n if (field.options?.minLength) {\r\n validators.push(Validators.minLength(field.options?.minLength));\r\n }\r\n if (field.type === PaymentFieldTypeEnum.Amount && methodInfo.amountDynamic) {\r\n validators.length = 0;\r\n }\r\n if (typeof field.validator === 'function') {\r\n validators.push(field.validator(this.payment));\r\n }\r\n control.setValidators(validators);\r\n this.payment.addControl(field.name, control);\r\n this.fetchCollection(field)\r\n .subscribe(() => {\r\n control.updateValueAndValidity();\r\n });\r\n });\r\n this.ready = true;\r\n }\r\n\r\n private fetchCollection(field: PaymentField): Observable<PaymentFieldOptionsItem[]> {\r\n const EMPTY_LIST = of([]).pipe(first());\r\n if (!field.options?.collection) {\r\n return EMPTY_LIST;\r\n }\r\n switch (field.options.collection) {\r\n case CollectionType.Banks:\r\n field.options.items = false;\r\n return this.sessionDS\r\n .getBanks(this.method.value)\r\n .pipe(\r\n map(({data}) => {\r\n field.options.items = data;\r\n this.cd.detectChanges();\r\n return data;\r\n })\r\n );\r\n case CollectionType.Documents:\r\n field.options.items = false;\r\n return this.sessionDS\r\n .getDocuments(this.method.value)\r\n .pipe(\r\n map(({data}) => {\r\n field.options.items = data;\r\n this.cd.detectChanges();\r\n return data;\r\n })\r\n );\r\n default:\r\n return EMPTY_LIST;\r\n }\r\n }\r\n\r\n get country(): AbstractControl {\r\n return this.get('country') as AbstractControl;\r\n }\r\n\r\n get method(): AbstractControl {\r\n return this.get('method') as AbstractControl;\r\n }\r\n\r\n get currency(): FormControl {\r\n return this.get('currency') as FormControl;\r\n }\r\n\r\n get userCurrency(): FormControl {\r\n return this.get('user_currency') as FormControl;\r\n }\r\n\r\n get payment(): FormGroup {\r\n return this.get('payment') as FormGroup;\r\n }\r\n\r\n get amount(): AbstractControl {\r\n return this.payment.get(this.fields.find(field => field.type === PaymentFieldTypeEnum.Amount).name) as AbstractControl;\r\n }\r\n\r\n public get methodName(): string {\r\n if (!this.method.value) {\r\n return null;\r\n }\r\n return this.sessionDS.getTypeNameById(this.method.value);\r\n }\r\n\r\n getTypeNameById(id) {\r\n return this.sessionDS.getTypeNameById(id);\r\n }\r\n\r\n saveDefaultCountry(): void {\r\n this._storage.saveDefaultCountry(this.country.value);\r\n }\r\n\r\n saveDefaultMethodName(): void {\r\n this._storage.saveDefaultMethodName(this.methodName);\r\n }\r\n\r\n saveDefaultCurrency(): void {\r\n this._storage.saveDefaultCurrency(this.currency.value);\r\n }\r\n\r\n get defaultCountry(): string {\r\n return this._storage.defaultCountry;\r\n }\r\n\r\n get defaultMethodName(): string {\r\n return this._storage.defaultMethodName;\r\n }\r\n\r\n get defaultCurrency(): string {\r\n return this._storage.defaultCurrency;\r\n }\r\n\r\n public cancelRequests() {\r\n this.cancelRequestsSubscriber.next();\r\n }\r\n\r\n public getPaymentValue() {\r\n const data: TerminalPaymentPrepareRequest = {\r\n typeId: this.method.value,\r\n currency: this.currency.value,\r\n type: this.getTypeNameById(this.method.value),\r\n user_currency: this.userCurrency.value,\r\n ...this.payment.getRawValue()\r\n }\r\n this.fields.forEach((field: PaymentField) => {\r\n if (field.type === PaymentFieldTypeEnum.Amount) {\r\n data[field.name] = +data[field.name];\r\n }\r\n });\r\n return removeEmptyProps(data);\r\n }\r\n updateValueAndValidityIframes(): void {\r\n this.fields.forEach(({ name, type }) => {\r\n if (type === PaymentFieldTypeEnum.Iframe) {\r\n this.payment.get(name).updateValueAndValidity({ emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n get readyIframesSubmit(): boolean {\r\n return this.fields\r\n .filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)\r\n .every(({ name, type }) => !this.payment.get(name).invalid);\r\n }\r\n\r\n isAmountEditable(): boolean {\r\n return this.sessionDS.getSessionValue().amountEditable;\r\n }\r\n\r\n hasWhatToFill() {\r\n const _hasWhatToFill = this.country.enabled || this.method.enabled || this.currency.enabled || this.isAmountEditable();\r\n const fields = this.fields;\r\n if (_hasWhatToFill) {\r\n return true;\r\n }\r\n if (!fields.length) {\r\n return false;\r\n }\r\n return fields.some((f) => {\r\n const control = this.payment.get(f.name);\r\n if (f.type === PaymentFieldTypeEnum.Amount) {\r\n return !control.valid;\r\n }\r\n return this.payment.get(f.name).enabled;\r\n });\r\n }\r\n\r\n setCDEError(code: I18N_KEY) {\r\n this.clearValidators();\r\n this.setValidators(() => {\r\n if (this.methodName === 'card') {\r\n return {cde_error: code};\r\n }\r\n return null;\r\n });\r\n this.updateValueAndValidity({emitEvent: false});\r\n }\r\n\r\n distinctValueChanges(): Observable<Partial<{ [x: string]: any }>> {\r\n return this.valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged((prev, curr) => {\r\n if (\r\n !prev ||\r\n !curr ||\r\n Object.keys(prev.payment).length !== Object.keys(curr.payment).length\r\n ) {\r\n return false;\r\n }\r\n return (\r\n prev.country === curr.country &&\r\n prev.method === curr.method &&\r\n prev.currency === curr.currency &&\r\n prev.payment.amount === curr.payment.amount\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.cancelRequestsSubscriber.next();\r\n this.cancelRequestsSubscriber.unsubscribe();\r\n }\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_COUNTRIES } from '../models/constants';\r\n\r\n@Pipe({\r\n name: 'country_translate',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class CountryTranslatePipe implements PipeTransform {\r\n\tprivate i18n_countries = inject(I18N_COUNTRIES);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(code: string, lang: string = this.translateSrv.currentLang): any {\r\n\t\treturn this.i18n_countries[lang][code] || code;\r\n\t}\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CountryTranslatePipe } from './country-translate.pipe';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\n\r\n@Pipe({\r\n name: 'countries_sort',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class CountriesSortPipe implements PipeTransform {\r\n\tprivate countryTranslatePipe = inject(CountryTranslatePipe);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(types: string[], lang: string = this.translateSrv.currentLang): any {\r\n return types.sort((c1, c2) => {\r\n if (c1 === OTHER_COUNTRY_CODE) {\r\n return 1;\r\n }\r\n const c1Translation = this.countryTranslatePipe\r\n .transform(c1, lang);\r\n const c2Translation = this.countryTranslatePipe\r\n .transform(c2,lang );\r\n return c1Translation > c2Translation ? 1: (c1Translation === c2Translation ? 0 : -1);\r\n });\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\r\nimport { map } from 'rxjs/operators';\r\nimport { ScriptLoader } from '../../../../../services/script-loader';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\nimport { SessionDataSource } from \"../../../../../services/session.data-source\";\r\n\r\n@Injectable()\r\nexport class CardSdkService {\r\n private scriptLoaderSrv: ScriptLoader = inject(ScriptLoader);\r\n private sessionSrv = inject(SessionDataSource);\r\n private _sdk: CdeTerminalSdk;\r\n private _pending = false;\r\n private _submitted = false;\r\n\r\n markAsReady(): void {\r\n this._pending = false;\r\n }\r\n\r\n markAsSubmitted() {\r\n this._submitted = true;\r\n }\r\n\r\n get pending(): boolean {\r\n return this._pending;\r\n }\r\n\r\n public submit(): void {\r\n if (!this._submitted && this._sdk) {\r\n this._sdk.submit();\r\n this._pending = true;\r\n }\r\n }\r\n\r\n private get _ready$(): Observable<void> {\r\n return fromPromise(this.scriptLoaderSrv.fetchScript('cde_sdk'));\r\n }\r\n\r\n createCardTerminalSdk$(\r\n lang: string,\r\n id: string,\r\n tabindex?: number\r\n ): Observable<CdeTerminalSdk> {\r\n return this._ready$.pipe(\r\n map(() => (this._sdk = this.sessionSrv.createCardTerminalSdk(lang, id, tabindex))),\r\n );\r\n }\r\n}\r\n","import { Directive, forwardRef, inject } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n AsyncValidator,\r\n NG_ASYNC_VALIDATORS,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { I18N_KEY } from './../../../../../i18n/i18n-key.enum';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\n@Directive({\r\n selector: '[appIframeValidatorDirective]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_ASYNC_VALIDATORS,\r\n useExisting: forwardRef(() => IframeValidatorDirectiveDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class IframeValidatorDirectiveDirective implements AsyncValidator {\r\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n private _sdk: CdeTerminalSdk;\r\n\r\n private submitting$: Subject<ValidationErrors | null> = new Subject();\r\n\r\n private _fatalError: I18N_KEY;\r\n private _validationSdkError = false;\r\n\r\n registerSDK(sdk?: CdeTerminalSdk): void {\r\n if (!sdk) {\r\n this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;\r\n } else {\r\n this._sdk = sdk;\r\n this.handleSubmitting();\r\n }\r\n }\r\n\r\n private handleSubmitting(): void {\r\n this._sdk.onInputPending(() => {\r\n this._validationSdkError = true;\r\n });\r\n this._sdk.onError((code) => {\r\n this._validationSdkError = false;\r\n let codeError = I18N_KEY.ERROR_OCCUR;\r\n if (code === 501) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_501;\r\n } else if (code === 500) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_500;\r\n } else if (code === 504) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_504;\r\n }\r\n this._fatalError = codeError;\r\n });\r\n this._sdk.onInputReady(() => {\r\n this._validationSdkError = false;\r\n this.submitting$.next(null);\r\n });\r\n this._sdk.onInputSubmitted(() => {\r\n this._validationSdkError = false;\r\n this.submitting$.next(null);\r\n });\r\n this._sdk.onTimeout(() => {\r\n this._validationSdkError = false;\r\n this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;\r\n });\r\n }\r\n\r\n validate(\r\n control: AbstractControl,\r\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\r\n if (this._fatalError) {\r\n return of({ cde_error: this._fatalError });\r\n }\r\n if (this._validationSdkError) {\r\n return of({ cde_validation_error: true });\r\n }\r\n if (this.cardSdkSrv.pending) {\r\n return this.submitting$.asObservable();\r\n }\r\n return of(null);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';\r\nimport { I18N_KEY } from '../../../../../i18n';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';\r\nimport { insertRemoveTrigger } from '../../../../../helpers';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\nconst ID_CDE_CONTAINER = 'cde-container';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-iframe',\r\n templateUrl: './constructor-field-iframe.component.html',\r\n styleUrls: ['./constructor-field-iframe.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldIframeComponent),\r\n multi: true,\r\n },\r\n CardSdkService,\r\n ],\r\n imports: [TranslateByKeyPipe, GmSkeletonComponent],\r\n hostDirectives: [\r\n {\r\n directive: IframeValidatorDirectiveDirective,\r\n },\r\n ]\r\n})\r\nexport class ConstructorFieldIframeComponent\r\n implements AfterViewInit, ControlValueAccessor\r\n{\r\n private _translateSrv: TranslateService = inject(TranslateService);\r\n private _cd: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n private _control: AbstractControl;\r\n private _injector: Injector = inject(Injector);\r\n private _destroyRef: DestroyRef = inject(DestroyRef);\r\n viewReady = false;\r\n\r\n @Input() tabIndex: number;\r\n\r\n private validator: IframeValidatorDirectiveDirective = inject(\r\n IframeValidatorDirectiveDirective,\r\n );\r\n\r\n private _sdk: CdeTerminalSdk;\r\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n\r\n private _loading = true;\r\n status: I18N_KEY;\r\n readonly I18N_KEY = I18N_KEY;\r\n\r\n readonly ID_CDE_CONTAINER = ID_CDE_CONTAINER;\r\n registerOnTouched(fn: any): void {}\r\n registerOnChange(fn: any): void {}\r\n writeValue(): void {}\r\n\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._control = this._injector.get(NgControl).control;\r\n this.cardSdkSrv\r\n .createCardTerminalSdk$(\r\n this._translateSrv.currentLang,\r\n this.ID_CDE_CONTAINER,\r\n this.tabIndex\r\n )\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe({\r\n next: (sdk: CdeTerminalSdk) => {\r\n this._sdk = sdk;\r\n this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());\r\n this.validator.registerSDK(sdk);\r\n this._init();\r\n },\r\n error: () => {\r\n this.validator.registerSDK();\r\n this._updateValueAndValidity();\r\n },\r\n });\r\n }\r\n\r\n private _updateValueAndValidity(): void {\r\n this.cardSdkSrv.markAsReady();\r\n this._control?.updateValueAndValidity({ onlySelf: true });\r\n this._cd.detectChanges();\r\n this.refreshHeight();\r\n }\r\n\r\n refreshHeight(): void {\r\n setTimeout(() => {\r\n this._sdk?.refreshHeight();\r\n this.viewReady = true;\r\n this._cd.detectChanges();\r\n }, 100);\r\n }\r\n\r\n private _init(): void {\r\n this._sdk.onInputPending(() => {\r\n this._loading = false;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onInputReady(() => {\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onInputSubmitted(() => {\r\n this._loading = false;\r\n this.cardSdkSrv.markAsSubmitted();\r\n this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onTimeout(() => {\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onError(() => {\r\n this._loading = false;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._translateSrv.onLangChange\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe({\r\n next: (options: LangChangeEvent) => {\r\n if (!options.lang) {\r\n return;\r\n }\r\n this._sdk.useLang(options.lang);\r\n },\r\n });\r\n }\r\n}\r\n","@if (!status) {\r\n <div\r\n class=\"iframe-container\"\r\n [id]=\"ID_CDE_CONTAINER\"\r\n [class.iframe-container--ready]=\"viewReady\"\r\n ></div>\r\n} @else if (!loading) {\r\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\r\n}\r\n\r\n@if (loading) {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of [1,2]; track i) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionDataSource } from '../services/session.data-source';\r\n\r\n@Pipe({\r\n name: 'method_title',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class MethodTitlePipe implements PipeTransform {\r\n private sessionDS = inject(SessionDataSource);\r\n\r\n constructor() {\r\n }\r\n\r\n transform(name: string): any {\r\n return this.sessionDS.getConfiguration(name)?.title;\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { FocusHandler } from '../../helpers/key-down-handler';\r\n\r\n@Directive({\r\n selector: '[tabindex]',\r\n standalone: true\r\n})\r\nexport class TabIndexFocusDirective {\r\n\r\n @HostListener('focus', ['$event.target']) focus(target: HTMLElement) {\r\n Array.from(target.classList).some(cl => /--disabled$/.test(cl)) && FocusHandler.next();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MethodTypeType } from '../../../../../../codegen/model/models';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MethodTitlePipe } from './../../../../../pipes/method-title.pipe';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { NgClass } from '@angular/common';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n TrmSelectLabelTemplateDirective\r\n} from '../../../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-ps-select',\r\n templateUrl: './ps-select.component.html',\r\n styleUrls: ['./ps-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PsSelectComponent),\r\n multi: true,\r\n },\r\n MethodTitlePipe,\r\n TranslatePipe\r\n ],\r\n imports: [TabIndexFocusDirective, NgClass, TrmSelectComponent, FormsModule, ReactiveFormsModule, TrmSelectLabelTemplateDirective, MethodTitlePipe, TranslateByKeyPipe]\r\n})\r\nexport class PsSelectComponent implements OnInit, ControlValueAccessor {\r\n private cd = inject(ChangeDetectorRef);\r\n private methodTitlePipe = inject(MethodTitlePipe);\r\n private translatePipe = inject(TranslatePipe);\r\n private destroyRef: DestroyRef = inject(DestroyRef);\r\n I18N_KEY = I18N_KEY;\r\n onChange = (_value) => {\r\n };\r\n onTouch = () => {\r\n };\r\n @Input() methods: MethodTypeType[] = [];\r\n disabled = false;\r\n @Input() tabIndex: number;\r\n\r\n selectedType: number;\r\n otherMethodControl: FormControl = new FormControl<number>(undefined);\r\n searchString: string;\r\n\r\n get popularMethods(): MethodTypeType[] {\r\n if (this.disabled) {\r\n return null;\r\n }\r\n return this.methods.slice(0, 4);\r\n }\r\n\r\n get otherMethods(): MethodTypeType[] {\r\n if (this.disabled) {\r\n return this.methods.slice(0);\r\n }\r\n return this.methods\r\n .slice(this.popularMethods.length)\r\n .filter((m: MethodTypeType) => {\r\n if (!this.searchString) {\r\n return true;\r\n } else {\r\n const title: string = this.translatePipe.transform(\r\n this.methodTitlePipe.transform(m.name)\r\n );\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.otherMethodControl\r\n .valueChanges\r\n .pipe(\r\n filter(m => !!m),\r\n takeUntilDestroyed(this.destroyRef)\r\n )\r\n .subscribe((method) => this.selectMethod(method));\r\n }\r\n\r\n selectMethod(method: number, options: { emitChange: boolean } = {emitChange: true}) {\r\n if (!method || this.selectedType === method) {\r\n return;\r\n }\r\n this.selectedType = method;\r\n if (options?.emitChange) {\r\n this.onChange(method);\r\n }\r\n const hasInOtherList = this.otherMethods.some(m => m.id === method);\r\n this.otherMethodControl.setValue(hasInOtherList ? method : undefined, {emitEvent: false, onlySelf: true});\r\n }\r\n\r\n writeValue(method: number) {\r\n this.cd.detectChanges();\r\n this.selectMethod(method, {emitChange: false});\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled\r\n if (isDisabled) {\r\n if (!this.otherMethodControl.value && this.selectedType) {\r\n this.otherMethodControl.setValue(this.selectedType, {emitEvent: false, onlySelf: true});\r\n }\r\n this.otherMethodControl.disable();\r\n } else {\r\n this.otherMethodControl.enable();\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n search(value: string) {\r\n this.searchString = value;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","<label class=\"trm-label\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}}\r\n</label>\r\n<ul class=\"methods\">\r\n @for (method of popularMethods; track method.id) {\r\n <li class=\"method\"\r\n [class.method--selected]=\"selectedType === method.id\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation(); selectMethod(method.id)\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"selectMethod(method.id)\"\r\n >\r\n <span class=\"method__icon\"\r\n [ngClass]=\"'ps-icon-'+method.name\"\r\n ></span>\r\n <span class=\"method__name\" [title]=\"method.name | trans\" > {{method.name | method_title | trans}} </span>\r\n </li>\r\n }\r\n @if (searchString || otherMethods.length) {\r\n <li class=\"methods__other\">\r\n <app-trm-select [data]=\"otherMethods\"\r\n idLabel=\"method\"\r\n (search)=\"search($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"otherMethodControl\"\r\n [placeholder]=\"I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS | trans\"\r\n class=\"c-field-select trm-form-field\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"method__icon\"\r\n [ngClass]=\"'ps-icon-'+item.name\"></span>\r\n <span class=\"method__name\"\r\n [title]=\"item.name | trans\" >{{item.name | method_title | trans}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </li>\r\n }\r\n</ul>\r\n<ng-content select=\"[app-ps-select-hint]\"></ng-content>\r\n<ng-content select=\"[app-ps-select-error]\"></ng-content>\r\n\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptionsItem } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\n\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-select',\r\n templateUrl: './constructor-field-select.component.html',\r\n styleUrls: ['./constructor-field-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldSelectComponent implements ControlValueAccessor, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private injector = inject(Injector);\r\n @Input() config: PaymentField;\r\n @Input() items: PaymentFieldOptionsItem[];\r\n @Input() tabIndex: number;\r\n searchString: string;\r\n I18N_KEY = I18N_KEY;\r\n\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n control: AbstractControl;\r\n\r\n get data() {\r\n if (!this.items) {\r\n return [];\r\n }\r\n return this.items\r\n .filter((option: PaymentFieldOptionsItem) => {\r\n if (!this.searchString) {\r\n return true;\r\n } else {\r\n const title: string = option.name;\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n })\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n search(searchString: string) {\r\n this.searchString = searchString;\r\n this.cd.markForCheck();\r\n }\r\n\r\n writeValue(value: any) {\r\n this.cd.markForCheck();\r\n }\r\n\r\n get apiError(): string {\r\n return this.control?.getError('error');\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","@if (control) {\r\n <app-trm-select [data]=\"data\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n [label]=\"config.label | trans\"\r\n [name]=\"config.name\"\r\n (search)=\"search($event)\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"c-field-select trm-form-field\"\r\n ></app-trm-select>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n\r\n}\r\n","import { NgxMaskService } from 'ngx-mask';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MaskService extends NgxMaskService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n numberToString(value: number | string): string {\r\n return super.numberToString(value).replace(/,/g,'.');\r\n }\r\n applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any): string {\r\n // Fix bug of cursor position in ngx-mask\r\n this['_shift'].clear();\r\n return super.applyMask(inputValue, maskExpression, position, justPasted, backspaced, cb);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { MaskService } from '../services/mask.service';\r\n\r\n@Directive({\r\n providers: [{\r\n provide: NgxMaskService,\r\n useClass: MaskService\r\n }],\r\n selector: 'input[mask]',\r\n standalone: true\r\n})\r\nexport class InputMaskCorrector { }\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField, PaymentFieldTypeEnum } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDatepicker, MatDatepickerInput } from '@angular/material/datepicker';\r\nimport momentjs from 'moment-timezone';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';\r\nimport { NgxMaskConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { removeSpecSymbols } from '../../../../../helpers/phone-codes';\r\nimport { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-text',\r\n templateUrl: './constructor-field-text.component.html',\r\n styleUrls: ['./constructor-field-text.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldTextComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldTextComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private maskSrv = inject(MaskResolver);\r\n private injector = inject(Injector);\r\n private maskPipe = inject(NgxMaskPipe);\r\n\r\n private unsub: Subject<void> = new Subject<void>();\r\n private _type = 'text';\r\n\r\n get disabled() {\r\n return this.config.readonly || false;\r\n };\r\n\r\n readonly FORMAT_DATE = FORMAT_DATE;\r\n mask: string;\r\n dropSpecialCharacters = true;\r\n I18N_KEY = I18N_KEY;\r\n\r\n @Input() config: PaymentField;\r\n\r\n get inputmode(): \"text\" | \"tel\" | \"numeric\" | \"email\" | \"url\" | \"none\" {\r\n return this.config.inputMode || 'text';\r\n }\r\n\r\n @Input() matDatepicker: MatDatepicker<momentjs.Moment>;\r\n @Input() tabIndex: number;\r\n @Output() maskedValueChange: EventEmitter<string> = new EventEmitter();\r\n control: AbstractControl;\r\n @ViewChild(NgxMaskDirective) dir: NgxMaskDirective;\r\n maskPatterns: NgxMaskConfig['patterns'];\r\n specialCharacters: string[];\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n get type() {\r\n if (this.config.type === PaymentFieldTypeEnum.Email) {\r\n return 'email';\r\n }\r\n return this._type;\r\n }\r\n\r\n get name() {\r\n return this.config.name;\r\n }\r\n\r\n onDateInput(e: InputEvent) {\r\n const target: HTMLInputElement = e.target as HTMLInputElement;\r\n let {selectionStart, selectionEnd} = target;\r\n this.control?.markAsUntouched();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n target.value = this.maskPipe\r\n .transform(target.value, this.mask, {patterns: this.maskPatterns})\r\n .replace(/^-|-$/, '');\r\n\r\n setTimeout(() => {\r\n this.control?.updateValueAndValidity();\r\n\r\n if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {\r\n while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {\r\n selectionEnd += 1;\r\n selectionStart += 1;\r\n }\r\n }\r\n target.setSelectionRange(selectionStart, selectionEnd);\r\n });\r\n }\r\n\r\n onPaste(e: ClipboardEvent) {\r\n const t = e.target as HTMLInputElement;\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n this._emitMaskedValueChanges(t);\r\n return;\r\n }\r\n const value = t.value;\r\n let content = e.clipboardData?.getData('text') || '';\r\n let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;\r\n if (value) {\r\n const arr = Array.from(value);\r\n arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));\r\n content = removeSpecSymbols(arr.join(''));\r\n }\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);\r\n this.cd.detectChanges();\r\n this.control?.setValue(content);\r\n this.cd.detectChanges();\r\n e.preventDefault();\r\n this._emitMaskedValueChanges(t, selectionStart);\r\n }\r\n\r\n onInput(e: InputEvent) {\r\n this.control?.markAsUntouched();\r\n this.cd.markForCheck();\r\n if (this.matDatepicker) {\r\n return;\r\n }\r\n const target = e.target as HTMLInputElement;\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n this._emitMaskedValueChanges(target);\r\n return;\r\n }\r\n const value: string = this.control?.value;\r\n let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;\r\n const mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n if (!mask || mask === INITIAL_PHONE_MASK) {\r\n return;\r\n }\r\n this.mask = mask;\r\n\r\n this.cd.detectChanges();\r\n this._emitMaskedValueChanges(target, selectionStart);\r\n }\r\n\r\n private _emitMaskedValueChanges(target, positionInUnmaskedValue?) {\r\n setTimeout(() => {\r\n this.control?.updateValueAndValidity();\r\n if (this.mask) {\r\n this.maskedValueChange.emit(target.value);\r\n }\r\n this._setSelection(target, positionInUnmaskedValue);\r\n });\r\n }\r\n\r\n private _setSelection(target: HTMLInputElement, positionInUnmaskedValue?) {\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n return;\r\n }\r\n let positionMaskedValue = 0;\r\n let i = 0;\r\n while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {\r\n if (/\\d/.test(target.value[positionMaskedValue])) {\r\n i++;\r\n }\r\n positionMaskedValue++;\r\n }\r\n target.setSelectionRange(positionMaskedValue, positionMaskedValue);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n }\r\n\r\n get apiError(): string {\r\n return this.control?.getError('error');\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value) {\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnInit() {\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask);\r\n if (this.config.maskValidation !== true) {\r\n this.config.maskValidation = false;\r\n }\r\n this.maskPatterns = this.maskSrv.getPatterns(this.config);\r\n this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];\r\n this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsub.next();\r\n this.unsub.unsubscribe();\r\n }\r\n}\r\n","@if (control) {\r\n <label class=\"trm-label\"\r\n [for]=\"config.name\"\r\n > {{ config.label | trans }} </label>\r\n <div class=\"input-wrapper trm-form-field-wrapper c-text\"\r\n [class.c-text--disabled]=\"disabled\"\r\n [class.c-text--uppercase]=\"config.uppercase\">\r\n @if (!matDatepicker) {\r\n <input\r\n class=\"trm-form-field trm-input\"\r\n [class.trm-form-field--disabled]=\"disabled\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n (blur)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n (input)=\"onInput($event)\"\r\n (paste)=\"onPaste($event)\"\r\n [type]=\"type\"\r\n [name]=\"name\"\r\n [id]=\"name\"\r\n [mask]=\"mask\"\r\n [attr.inputmode]=\"inputmode\"\r\n [patterns]=\"maskPatterns\"\r\n [allowNegativeNumbers]=\"false\"\r\n [thousandSeparator]=\"' '\"\r\n [decimalMarker]=\"'.'\"\r\n [validation]=\"config.maskValidation || false\"\r\n [specialCharacters]=\"specialCharacters\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [tabindex]=\"tabIndex\"\r\n />\r\n } @else {\r\n <input class=\"trm-form-field trm-input\"\r\n [matDatepicker]=\"matDatepicker\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n (input)=\"onDateInput($event)\"\r\n [attr.inputmode]=\"inputmode\"\r\n (blur)=\"onTouch()\"\r\n [min]=\"config?.options?.min\"\r\n [max]=\"config?.options?.max\"\r\n [tabindex]=\"tabIndex\"\r\n type=\"text\"\r\n [name]=\"name\"\r\n [id]=\"name\"\r\n />\r\n }\r\n <ng-content select=\"[app-c-text-suffix]\"></ng-content>\r\n </div>\r\n @if (config.description) {\r\n <div class=\"c-text__hint\"\r\n [innerHTML]=\"config.description | trans\"></div>\r\n }\r\n <ng-content select=\"[app-c-text-hint]\"></ng-content>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('email') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_EMAIL | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('min') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_MIN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('max') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_MAX | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('pattern') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('mask') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerParse') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerMin') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ (I18N_KEY.VALIDATION_DATE_MIN | trans) + ' ' + control.getError('matDatepickerMin').min.format(FORMAT_DATE) }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerMax') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ (I18N_KEY.VALIDATION_DATE_MAX | trans) + ' ' + control.getError('matDatepickerMax').max.format(FORMAT_DATE) }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n}\r\n","import { Component, inject, Input, TemplateRef } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe, NgTemplateOutlet } from '@angular/common';\r\nimport { PaymentFieldOptions } from \"../../models\";\r\nimport { insertRemoveTrigger } from \"../../../../../helpers\";\r\nimport { TerminalTplComponent } from '../../../../../terminal-tpl.component';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n selector: 'app-method-amount-hint',\r\n templateUrl: './method-amount-hint.component.html',\r\n styleUrls: ['./method-amount-hint.component.scss'],\r\n animations: [insertRemoveTrigger],\r\n providers: [CurrencyPipe],\r\n imports: [TranslateByKeyPipe, NgTemplateOutlet, TrmAmountComponent],\r\n host: {\r\n '[hidden]': '!loading && (!options || (!options.fee && !options.fixedFee && !options.minFixedFee && !options.min && !options.max))'\r\n }\r\n})\r\nexport class MethodAmountHintComponent {\r\n private mainTpl: TerminalTplComponent = inject(TerminalTplComponent);\r\n @Input() loading: boolean;\r\n @Input() options: PaymentFieldOptions = {};\r\n I18N_KEY = I18N_KEY;\r\n\r\n get feeTpl(): TemplateRef<any> {\r\n return this.mainTpl.feeTpl;\r\n }\r\n}\r\n","<div class=\"c-method-hint\" @insertRemove>\r\n @if (loading) {\r\n <span class=\"trm-spinner\" @insertRemove></span>\r\n }\r\n @if (options.fee || options.fixedFee) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_FEE | trans) }}\r\n @if (options.fee) {\r\n <span class=\"trm-amount\">\r\n <span class=\"trm-amount__value\">{{ options.fee }}<span class=\"trm-currency\">%</span></span>\r\n </span>\r\n }\r\n @if (options.fixedFee && options.fee) {\r\n <span> + </span>\r\n }\r\n @if (options.fixedFee) {\r\n <trm-amount [value]=\"options.fixedFee\" [code]=\"options.currency\"></trm-amount>\r\n }\r\n @if (options.minFixedFee) {\r\n ({{ I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE | trans }}<trm-amount [value]=\"options.minFixedFee\" [code]=\"options.currency\"></trm-amount>)\r\n }\r\n </div>\r\n }\r\n @if (options.min) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT | trans) }}\r\n <trm-amount [value]=\"options.min\" [code]=\"options.currency\"></trm-amount>\r\n </div>\r\n }\r\n @if (options.max) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT | trans) }}\r\n <trm-amount [value]=\"options.max\" [code]=\"options.currency\"></trm-amount>\r\n </div>\r\n }\r\n\r\n @if (feeTpl) {\r\n <div *ngTemplateOutlet=\"feeTpl; context: {options}\" @insertRemove></div>\r\n }\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { isMoment, Moment } from 'moment';\r\nimport { ConstructorFieldTextComponent } from '../constructor-field-text/constructor-field-text.component';\r\nimport { MatDatepicker, MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-constructor-field-date',\r\n templateUrl: './constructor-field-date.component.html',\r\n styleUrls: ['./constructor-field-date.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldDateComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [ConstructorFieldTextComponent, FormsModule, ReactiveFormsModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatDatepicker]\r\n})\r\nexport class ConstructorFieldDateComponent implements ControlValueAccessor, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private injector = inject(Injector);\r\n private destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n readonly FORMAT_DATE = FORMAT_DATE;\r\n @Input() config: PaymentField;\r\n @Input() tabIndex: number;\r\n control: AbstractControl;\r\n\r\n get startCalendarDate(): Moment {\r\n return this.config.options?.startCalendarDate;\r\n }\r\n\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: unknown) {\r\n if (isMoment(value) || typeof value === 'string') {\r\n if (isMoment(value)) {\r\n this.control?.setValue(value.format(FORMAT_DATE), {emitEvent: false});\r\n } else {\r\n this.control?.setValue(value, {emitEvent: false});\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n\r\n this.control\r\n .valueChanges\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n )\r\n .subscribe((value) => {\r\n if (isMoment(value)) {\r\n this.onChange(value.format(this.FORMAT_DATE));\r\n }\r\n });\r\n }\r\n}\r\n","@if (control) {\r\n <app-constructor-field-text\r\n class=\"c-date__input\"\r\n [tabIndex]=\"tabIndex\"\r\n [config]=\"config\"\r\n [formControl]=\"control\"\r\n [matDatepicker]=\"picker\">\r\n <mat-datepicker-toggle [for]=\"picker\"\r\n app-c-text-suffix\r\n class=\"date__toggle\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <div class=\"date__toggleIcon\"\r\n matDatepickerToggleIcon\r\n app-c-text-suffix></div>\r\n </mat-datepicker-toggle>\r\n </app-constructor-field-text>\r\n\r\n <mat-datepicker #picker [tabIndex]=\"tabIndex\" [startAt]=\"startCalendarDate\"></mat-datepicker>\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n selector: 'app-constructor-preparation',\r\n templateUrl: './constructor-preparation.component.html',\r\n styleUrls: ['./constructor-preparation.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CurrencyPipe],\r\n imports: [TranslateByKeyPipe, TrmAmountComponent]\r\n})\r\nexport class ConstructorPreparationComponent {\r\n @Input() maskedWallet = null;\r\n @Input() wallet: string;\r\n @Input() confirmationText: string;\r\n @Input() methodName: string;\r\n @Input() currency: string;\r\n @Input() amount: number;\r\n @Input() total: number;\r\n I18N_KEY = I18N_KEY;\r\n}\r\n","<div class=\"confirmation\">\r\n <h5> {{ I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER | trans }} </h5>\r\n <div class=\"confirmation__content\">\r\n <ul class=\"confirmation__list\">\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}} </div>\r\n <div class=\"confirmation__value\"> {{methodName | trans}} </div>\r\n </li>\r\n\r\n @if (maskedWallet || wallet) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_WALLET | trans}} </div>\r\n <div class=\"confirmation__value\"> {{ maskedWallet || wallet}} </div>\r\n </li>\r\n }\r\n\r\n @if (amount) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT | trans}} </div>\r\n <div class=\"confirmation__value\">\r\n <trm-amount [value]=\"amount\" [code]=\"currency\"></trm-amount>\r\n </div>\r\n </li>\r\n }\r\n\r\n @if (total) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE | trans}} </div>\r\n <div class=\"confirmation__value\">\r\n <trm-amount [value]=\"total\" [code]=\"currency\"></trm-amount>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n @if (confirmationText) {\r\n <p\r\n class=\"confirmation__text\" [innerHTML]=\"confirmationText\"></p>\r\n }\r\n <ng-content selector=\"[app-constructor-preparation-error]\"></ng-content>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptions, PaymentFieldTypeEnum, TerminalStep } from './models';\r\nimport { ConstructorFormService } from './services/constructor-form.service';\r\nimport {\r\n MethodType,\r\n MethodTypeType,\r\n TerminalPaymentConfirmResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { distinctUntilChanged, Subject } from 'rxjs';\r\nimport { first, takeUntil } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountriesSortPipe } from '../../../pipes/countries-sort.pipe';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n ConstructorFieldIframeComponent\r\n} from \"./components/constructor-field-iframe/constructor-field-iframe.component\";\r\nimport { CountryTranslatePipe } from '../../../pipes/country-translate.pipe';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { TrmSelectComponent } from '../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n TrmSelectLabelTemplateDirective\r\n} from '../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { PsSelectComponent } from './components/ps-select/ps-select.component';\r\nimport {\r\n ConstructorFieldSelectComponent\r\n} from './components/constructor-field-select/constructor-field-select.component';\r\nimport { ConstructorFieldTextComponent } from './components/constructor-field-text/constructor-field-text.component';\r\nimport { MethodAmountHintComponent } from './components/method-amount-hint/method-amount-hint.component';\r\nimport { ConstructorFieldDateComponent } from './components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n ConstructorPreparationComponent\r\n} from './components/constructor-preparation/constructor-preparation.component';\r\nimport { TabIndexFocusDirective } from '../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { OTHER_COUNTRY_CODE } from \"../../../helpers\";\r\nimport { CardSdkService } from \"./components/constructor-field-iframe/card-sdk.service\";\r\n\r\n@Component({\r\n selector: 'app-constructor-form',\r\n templateUrl: './constructor-form.component.html',\r\n styleUrls: ['./constructor-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n ConstructorFormService,\r\n CountryTranslatePipe, CountriesSortPipe\r\n ],\r\n imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent]\r\n})\r\nexport class ConstructorFormComponent implements OnChanges, AfterViewInit, OnDestroy {\r\n private cd = inject(ChangeDetectorRef);\r\n form = inject(ConstructorFormService);\r\n private translateSrv = inject(TranslateService);\r\n private countriesSortPipe = inject(CountriesSortPipe);\r\n private countryTranslatePipe = inject(CountryTranslatePipe);\r\n private ngScrollBar = inject(NgScrollbar);\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n private unSubscriber = new Subject<void>();\r\n private preparationStepFilled = false;\r\n TERMINAL_STEP = TerminalStep;\r\n @Input() step: TerminalStep;\r\n @Input() error?: string;\r\n @Input() response: TerminalPaymentPrepareResponse & TerminalPaymentConfirmResponse & {\r\n typeId?: number;\r\n };\r\n CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;\r\n @Input() feeLoading: boolean;\r\n @Input() feeOptions: PaymentFieldOptions;\r\n @Input() currency: string;\r\n @Input() userCurrency: string[];\r\n @Input() loading = null;\r\n @Input() types: MethodType[] = [];\r\n @Input() canReturnToProject = true;\r\n @Output() amountChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() back: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() prepare: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() confirm: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onPaymentChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() tabIndex: number;\r\n countrySearchString: string;\r\n @ViewChild('paymentRequisites', {static: false}) requisites: ElementRef;\r\n @ViewChild('hintMethod', {static: false}) hintMethod: ElementRef;\r\n @ViewChildren(CardSdkService) sdkList: QueryList<CardSdkService>;\r\n maskedWallet: string;\r\n\r\n I18N_KEY = I18N_KEY;\r\n\r\n get countriesList(): string[] {\r\n return this.countriesSortPipe\r\n .transform(\r\n this.types\r\n .map(type => type.countryISOCode)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n )\r\n .filter((m: string) => {\r\n if (!this.countrySearchString) {\r\n return true;\r\n } else {\r\n const title: string = this.countryTranslatePipe.transform(m);\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.countrySearchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n });\r\n }\r\n\r\n get methodsList(): MethodTypeType[] {\r\n return this.types\r\n .filter(type => type.countryISOCode === this.form.country.value)\r\n // distinct\r\n .filter((type, index, self) => self.map(m => m.type.id).indexOf(type.type.id) === index)\r\n //sorting by the priority\r\n .sort((m1, m2) => m1.priority > m2.priority ? 1 : ((m1.priority === m2.priority) ? 0 : -1))\r\n .map(type => type.type);\r\n }\r\n\r\n get currenciesList() {\r\n return this.types\r\n .filter(type => type.countryISOCode === this.form.country.value && type.type.id === this.form.method.value)\r\n .map(type => type.currency)\r\n }\r\n\r\n get userCurrenciesList() {\r\n const filteredTypes = this.currenciesList;\r\n\r\n if (!this.userCurrency) {\r\n return filteredTypes;\r\n }\r\n\r\n return this.userCurrency\r\n .filter(userCurrency => filteredTypes.includes(userCurrency))\r\n }\r\n\r\n private setCurrencyValue() {\r\n let defaultCurrency = this.form.defaultCurrency;\r\n\r\n let currencies = this.currenciesList;\r\n let currency = currencies[0];\r\n if (defaultCurrency && this.currenciesList.includes(defaultCurrency)) {\r\n currency = defaultCurrency;\r\n } else if (this.currency && this.currenciesList.includes(this.currency)) {\r\n currency = this.currency;\r\n }\r\n this.form.currency.setValue(currency);\r\n\r\n currencies = this.userCurrenciesList;\r\n currency = currencies[0];\r\n if (defaultCurrency && this.userCurrenciesList.includes(defaultCurrency)) {\r\n currency = defaultCurrency;\r\n } else if (this.currency && this.userCurrenciesList.includes(this.currency)) {\r\n currency = this.currency;\r\n }\r\n this.form.userCurrency.setValue(currency, {emitEvent: false});\r\n if (currencies.length === 1 && currency && this.form.method.disabled) {\r\n this.form.userCurrency.disable();\r\n }\r\n }\r\n\r\n get hasCurrencyMethodSelector(): boolean {\r\n return this.versionSrv.hasCurrencyMethodSelector === true;\r\n }\r\n\r\n get lang(): string {\r\n return this.translateSrv.currentLang;\r\n }\r\n\r\n get skeletonLength() {\r\n return new Array(this.form.fields?.length || 3).fill(0);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.types && this.types?.length || changes.currency && this.currency) {\r\n // Get configuration fields\r\n const countries = this.countriesList;\r\n const defaultCountry = this.form.defaultCountry;\r\n let country = null;\r\n if (!countries.includes(defaultCountry)) {\r\n if (countries.includes(OTHER_COUNTRY_CODE)) {\r\n country = OTHER_COUNTRY_CODE;\r\n }\r\n } else {\r\n country = defaultCountry;\r\n }\r\n this.form.country.setValue(country);\r\n if (!country) {\r\n return;\r\n }\r\n if (countries.length === 1 && this.form.country.value) {\r\n this.form.country.disable();\r\n }\r\n\r\n const methods = this.methodsList;\r\n const defaultMethodName = this.form.defaultMethodName;\r\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n this.form.method.setValue(defaultMethod || methods[0]?.id);\r\n\r\n this.cd.detectChanges();\r\n if (methods.length === 1 && this.form.country.disabled) {\r\n this.form.method.disable();\r\n }\r\n this.cd.detectChanges();\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n\r\n this.form\r\n .distinctValueChanges()\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.onPaymentChanged.emit(this.form.getRawValue()));\r\n this.fetchForm();\r\n }\r\n\r\n if (changes.step?.currentValue && !changes.types && !changes.currency) {\r\n this.fetchForm();\r\n }\r\n\r\n if (changes.feeOptions && !changes.feeOptions.firstChange) {\r\n // need for triggering of the custom validator\r\n this.form.amount?.updateValueAndValidity();\r\n }\r\n\r\n if (this.step === TerminalStep.Confirmation) {\r\n this.preparationStepFilled = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form\r\n .country\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.cd.detectChanges();\r\n this.form.saveDefaultCountry();\r\n this.form.method.setValue(this.methodsList[0].id, {emitEvent: false});\r\n\r\n const methods = this.methodsList;\r\n const defaultMethodName = this.form.defaultMethodName;\r\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n this.form.method.setValue(defaultMethod || methods[0].id, {emitEvent: false});\r\n this.cd.detectChanges();\r\n\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n\r\n this.fetchForm();\r\n });\r\n this.form\r\n .method\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.form.method.clearValidators();\r\n this.form.saveDefaultMethodName();\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n this.fetchForm();\r\n })\r\n this.form\r\n .currency\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.fetchForm();\r\n this.form.saveDefaultCurrency();\r\n });\r\n }\r\n\r\n private fetchForm() {\r\n if (!this.form.method.value) {\r\n this.form.ready = true;\r\n return;\r\n }\r\n this.form.cancelRequests();\r\n if (this.step !== this.TERMINAL_STEP.Prepare) {\r\n return;\r\n }\r\n this.form.removePaymentFormControls();\r\n this.cd.detectChanges();\r\n this.form\r\n .init()\r\n .subscribe(() => {\r\n if (!this.preparationStepFilled && !this.form.hasWhatToFill()) {\r\n this.send();\r\n return;\r\n }\r\n this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n this.cd.detectChanges();\r\n this.scrollToRequisits();\r\n this.form.maskedWallet = '';\r\n }, (err) => {\r\n this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n private scrollToRequisits() {\r\n if (this.requisites || this.hintMethod) {\r\n this.ngScrollBar?.scrollToElement(this.hintMethod?.nativeElement || this.requisites.nativeElement, {\r\n duration: 500,\r\n top: -75\r\n });\r\n }\r\n }\r\n\r\n get description() {\r\n return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;\r\n }\r\n\r\n submit() {\r\n if (this.feeLoading) {\r\n return;\r\n }\r\n if (this.step === TerminalStep.Confirmation) {\r\n this.confirm.emit();\r\n return;\r\n }\r\n\r\n if (this.form.config === null || !this.form.ready) {\r\n return;\r\n }\r\n this.triggerIframeSubmit();\r\n if (this.form.invalid || this.error) {\r\n Object.values(this.form.controls).forEach((control) => {\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n });\r\n Object.values(this.form.payment.controls).forEach((control) => {\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n control.updateValueAndValidity({ emitEvent: false });\r\n });\r\n this.cd.detectChanges();\r\n return;\r\n }\r\n\r\n if (this.form.pending) {\r\n this.form.statusChanges\r\n .pipe(first(), takeUntil(this.unSubscriber))\r\n .subscribe((status) => {\r\n if (status === 'VALID') {\r\n this.send();\r\n }\r\n });\r\n } else {\r\n this.send();\r\n }\r\n }\r\n\r\n private triggerIframeSubmit() {\r\n if (!this.form.readyIframesSubmit) {\r\n return;\r\n }\r\n this.sdkList?.forEach((sdk: CardSdkService) => sdk.submit());\r\n this.form.updateValueAndValidityIframes();\r\n }\r\n\r\n private send() {\r\n const data: TerminalPaymentPrepareRequest = this.form.getPaymentValue();\r\n this.maskedWallet = this.form.maskedWallet;\r\n this.prepare.emit(data);\r\n }\r\n\r\n searchCountry(value) {\r\n this.countrySearchString = value;\r\n this.cd.markForCheck();\r\n }\r\n\r\n get backBtnLabel(): string {\r\n if (this.step === TerminalStep.Prepare) {\r\n return I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN;\r\n }\r\n return I18N_KEY.CONSTRUCTOR_LABEL_RETURN;\r\n }\r\n\r\n changeTextFieldValue(maskedValue, field: PaymentField) {\r\n if (field.wallet) {\r\n this.form.maskedWallet = maskedValue;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","<form class=\"constructor\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"submit()\"\r\n >\r\n @if (loading !== null) {\r\n @if (step === TERMINAL_STEP.Prepare) {\r\n <div class=\"constructor__fields\">\r\n @if (countrySearchString || countriesList.length > 1) {\r\n <div class=\"constructor__field\">\r\n <app-trm-select [data]=\"countriesList\"\r\n @insertRemove\r\n name=\"country\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\r\n formControlName=\"country\"\r\n class=\"c-field-select trm-form-field\"\r\n (search)=\"searchCountry($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\"\r\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\r\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </div>\r\n }\r\n @if (form.country.value) {\r\n <app-ps-select [methods]=\"methodsList\"\r\n @insertRemove\r\n formControlName=\"method\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n @if (form.config?.description) {\r\n <div class=\"constructor__hint text--warn\"\r\n app-ps-select-hint\r\n #hintMethod\r\n @insertRemove\r\n >\r\n {{description | trans }}\r\n </div>\r\n }\r\n </app-ps-select>\r\n\r\n @if (\r\n form.method?.hasError('required') &&\r\n form.method.touched &&\r\n form.method.dirty\r\n ) {\r\n <div class=\"gm-error\" @insertRemove>\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n }\r\n\r\n @if (form.ready) {\r\n <div formGroupName=\"payment\"\r\n @insertRemove\r\n #paymentRequisites\r\n class=\"constructor__fields constructor__fields--reverse\">\r\n @if (form.method.value && form.amountDynamic) {\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\r\n }\r\n @for (field of form.fields; track field.name; let i = $index) {\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\r\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\r\n <div class=\"constructor__hint cde-error\" @insertRemove>\r\n {{\r\n form.payment.get(field.name).getError('cde_error')\r\n | trans\r\n }}\r\n </div>\r\n }\r\n <app-constructor-field-iframe\r\n [formControlName]=\"field.name\"\r\n @insertRemove\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n </app-constructor-field-iframe>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\r\n <app-constructor-field-select\r\n @insertRemove\r\n [config]=\"field\"\r\n [items]=\"field?.options?.items\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n ></app-constructor-field-select>\r\n }\r\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\">\r\n <app-method-amount-hint app-c-text-hint\r\n class=\"constructor__hint\"\r\n [loading]=\"feeLoading\"\r\n [options]=\"feeOptions || field.options\"\r\n ></app-method-amount-hint>\r\n @if (!hasCurrencyMethodSelector) {\r\n <div app-c-text-suffix\r\n class=\"constructor__currency\"\r\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\r\n </div>\r\n }\r\n </app-constructor-field-text>\r\n @if (hasCurrencyMethodSelector) {\r\n <app-trm-select\r\n @insertRemove\r\n class=\"constructor-field\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\r\n [formControl]=\"form.currency\"\r\n [searchable]=\"false\"\r\n [data]=\"currenciesList\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n }\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\r\n <app-constructor-field-date\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\r\n }\r\n }\r\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\r\n <app-trm-select\r\n class=\"constructor-field-inner\"\r\n @insertRemove\r\n [label]=\"label\"\r\n [formControl]=\"form.userCurrency\"\r\n [searchable]=\"false\"\r\n [data]=\"userCurrenciesList\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\"\r\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n </ng-template>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of skeletonLength; track $index) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (error && !form.methodInfoLoading) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (step === TERMINAL_STEP.Confirmation) {\r\n <app-constructor-preparation\r\n @insertRemove\r\n [currency]=\"response?.currency\"\r\n [methodName]=\"form.getTypeNameById(response.typeId)\"\r\n [wallet]=\"response.wallet\"\r\n [maskedWallet]=\"maskedWallet\"\r\n [amount]=\"response.amount\"\r\n [total]=\"response.total\"\r\n [confirmationText]=\"form.config?.confirmation\"\r\n >\r\n @if (error && !form.payment.pending) {\r\n <div class=\"trm-error\"\r\n app-constructor-preparation-error\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </app-constructor-preparation>\r\n }\r\n <div class=\"constructor__actions\"\r\n @insertRemove>\r\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\r\n type=\"submit\"\r\n [tabindex]=\"form.fields.length + tabIndex\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\r\n @if (loading) {\r\n <span class=\"trm-spinner trm-spinner-white\"></span>\r\n }\r\n </button>\r\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\r\n type=\"button\"\r\n [tabindex]=\"form.fields.length + tabIndex\"\r\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n</form>\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n MethodType,\r\n TerminalPaymentConfirmResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { SessionDataSource } from '../../../services/session.data-source';\r\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\r\nimport { Subject, throwError } from 'rxjs';\r\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { PaymentFieldOptions, TerminalStep } from './../../../pages/components/constructor-form/models';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { AsyncPipe, CurrencyPipe, DOCUMENT, Location } from '@angular/common';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { getI18Key } from './../../../i18n/keys';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport {\r\n TerminalLangSwitcherComponent\r\n} from '../../../shared/components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorFormComponent } from '../constructor-form/constructor-form.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n selector: 'app-terminal-layout',\r\n templateUrl: './terminal-layout.component.html',\r\n styleUrls: ['./terminal-layout.component.scss'],\r\n providers: [\r\n SessionDataSource,\r\n CurrencyPipe\r\n ],\r\n imports: [\r\n NgScrollbar,\r\n TerminalLangSwitcherComponent,\r\n ConstructorFormComponent, ConstructorStatusComponent,\r\n AsyncPipe,\r\n TranslateByKeyPipe, GmSkeletonComponent\r\n ]\r\n})\r\nexport class TerminalLayoutComponent implements OnInit, OnDestroy {\r\n private document = inject<Document>(DOCUMENT);\r\n sessionDS = inject(SessionDataSource);\r\n translateLoader = inject<any>(TranslateLoader);\r\n private cd = inject(ChangeDetectorRef);\r\n private translateStorageSrv = inject(TranslateLangStorageService);\r\n private translateSrv = inject(TranslateService);\r\n private adapter = inject<DateAdapter<moment.Moment>>(DateAdapter);\r\n private apiErrorSrv = inject(ApiErrorsService);\r\n private location = inject(Location);\r\n private titleSrv = inject(Title);\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n private unSubscriber = new Subject<void>();\r\n private resizeObserver: ResizeObserver;\r\n\r\n private get contentEl() {\r\n return this.scrollComponent.viewport.contentWrapperElement;\r\n }\r\n\r\n TERMINAL_STEP = TerminalStep;\r\n\r\n types: MethodType[] = [];\r\n currency: string;\r\n projectName: string;\r\n description: string;\r\n step = TerminalStep.Prepare;\r\n data: TerminalPaymentPrepareResponse & { typeId?: number; };\r\n @ViewChild('scrollComponent') scrollComponent: NgScrollbar;\r\n private urlChangeListener: VoidFunction;\r\n sessionLoading = null;\r\n\r\n constructor() {\r\n this.adapter.setLocale(this.translateSrv.currentLang);\r\n this._setTitle();\r\n\r\n this.translateSrv.onLangChange\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe((e) => {\r\n this.adapter.setLocale(e.lang);\r\n this._setTitle();\r\n this.cd.detectChanges();\r\n });\r\n this.checkFatalError();\r\n }\r\n\r\n get hasChoice() {\r\n return this.translateStorageSrv.languages.length > 1;\r\n }\r\n\r\n get logoClass(): string {\r\n return this.versionSrv.logoClass;\r\n }\r\n\r\n get footerText() {\r\n return this.versionSrv.footerText;\r\n }\r\n\r\n private _setTitle() {\r\n this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));\r\n }\r\n\r\n public changeLang() {\r\n }\r\n\r\n get hostname() {\r\n return this.document.defaultView.location.hostname;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.apiErrorSrv.hasFatalError) {\r\n this.sessionDS.loading$.next(false);\r\n this.catchError();\r\n return;\r\n }\r\n this.sessionDS.get()\r\n .subscribe((sessionInfo) => {\r\n this.types = sessionInfo.methodTypes;\r\n this.currency = sessionInfo.defaultCurrency;\r\n this.projectName = sessionInfo.projectName;\r\n this.description = sessionInfo.description;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n }, () => {\r\n this.sessionLoading = false;\r\n this.catchError();\r\n });\r\n\r\n this.pushState();\r\n this.urlChangeListener = this.location.onUrlChange((url, state: { step?: TerminalStep }) => {\r\n if (typeof state?.step === 'number') {\r\n this.step = state.step;\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n\r\n private _submitted = false;\r\n\r\n prepare(data: TerminalPaymentPrepareRequest) {\r\n if (this._submitted) {\r\n return;\r\n }\r\n this._submitted = true;\r\n this.sessionLoading = true;\r\n this.sessionDS\r\n .prepare(data)\r\n .subscribe((resp: TerminalPaymentPrepareResponse) => {\r\n if (!resp.amount && !resp.currency && !resp.total) {\r\n return;\r\n }\r\n this.step = TerminalStep.Confirmation;\r\n this.location.go(this.location.path(), '', {step: this.step});\r\n this.data = resp;\r\n this.data.typeId = data.typeId;\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n }, () => {\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.catchError();\r\n });\r\n }\r\n\r\n confirm() {\r\n if (this._submitted) {\r\n return;\r\n }\r\n this._submitted = true;\r\n this.sessionLoading = true;\r\n this.sessionDS\r\n .confirm()\r\n .subscribe(\r\n (resp: TerminalPaymentConfirmResponse) => {\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n if (this.sessionDS.redirect()) {\r\n this._submitted = false;\r\n return;\r\n }\r\n this.step += 1;\r\n if (resp.success) {\r\n this._statusText = resp.message;\r\n }\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n },\r\n () => {\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.catchError();\r\n },\r\n );\r\n }\r\n\r\n checkFatalError() {\r\n // Clear form error when any values have changed.\r\n if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {\r\n this.apiErrorSrv.clear();\r\n }\r\n }\r\n\r\n pushState() {\r\n this.location.replaceState(this.location.path(), undefined, {step: this.step});\r\n }\r\n\r\n back() {\r\n if (this.step) {\r\n this.location.back();\r\n } else {\r\n this.sessionLoading = true;\r\n this.sessionDS.close()\r\n .pipe(\r\n finalize(() => {\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this.sessionDS.returnBackUrl;\r\n }\r\n\r\n catchError() {\r\n if (this.hasStatusError) {\r\n this.step = TerminalStep.Status;\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n private _statusText: string;\r\n get statusText() {\r\n return this.apiErrorSrv.getLocalError() || this._statusText;\r\n }\r\n\r\n get hasStatusError() {\r\n return this.apiErrorSrv.hasFatalError;\r\n }\r\n\r\n public get currentYear() {\r\n return new Date().getFullYear();\r\n }\r\n\r\n private feeCalculateSubject = new Subject<void>();\r\n public calculateFee(value: any) {\r\n if (!this.sessionDS.feeChangeable) {\r\n return;\r\n }\r\n this.feeCalculateSubject.next();\r\n this.feeLoading = true;\r\n this.feeOptions = {};\r\n this.cd.detectChanges();\r\n\r\n this.sessionDS\r\n .feeOptions(value)\r\n .pipe(\r\n tap((options: PaymentFieldOptions) => {\r\n this.feeOptions = options;\r\n this.feeLoading = false;\r\n this.cd.detectChanges();\r\n }),\r\n catchError((err) => {\r\n this.feeLoading = false;\r\n this.cd.detectChanges();\r\n return throwError(() => err);\r\n }),\r\n takeUntil(this.feeCalculateSubject),\r\n takeUntil(this.unSubscriber)\r\n ).subscribe();\r\n }\r\n\r\n feeLoading = false;\r\n feeOptions: PaymentFieldOptions;\r\n\r\n public ngOnDestroy() {\r\n this.feeCalculateSubject.unsubscribe();\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.resizeObserver?.unobserve(this.contentEl);\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if (sessionDS.loading$ | async) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"sessionLoading\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n","import { Component, } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.scss'],\r\n imports: [\r\n TerminalLayoutTplComponent,\r\n ConstructorStatusComponent,\r\n TranslateByKeyPipe,\r\n ]\r\n})\r\nexport class ErrorComponent {\r\n I18N_KEY = I18N_KEY\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"false\">\r\n <app-constructor-status terminal-layout-status\r\n [failed]=\"true\"\r\n [failTitle]=\"(I18N_KEY.ERROR_OCCUR | trans)\"\r\n [hasSupportHint]=\"false\"\r\n >\r\n </app-constructor-status>\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { ConstructorFormComponent } from './components/constructor-form/constructor-form.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ConstructorFieldTextComponent\r\n} from './components/constructor-form/components/constructor-field-text/constructor-field-text.component';\r\nimport {\r\n ConstructorFieldDateComponent\r\n} from './components/constructor-form/components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n ConstructorFieldSelectComponent\r\n} from './components/constructor-form/components/constructor-field-select/constructor-field-select.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PsSelectComponent } from './components/constructor-form/components/ps-select/ps-select.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport {\r\n ConstructorPreparationComponent\r\n} from './components/constructor-form/components/constructor-preparation/constructor-preparation.component';\r\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { CSRFResolver } from '../services/csrf.resolver';\r\nimport {\r\n MethodAmountHintComponent\r\n} from './components/constructor-form/components/method-amount-hint/method-amount-hint.component';\r\nimport { MaskResolver } from './../helpers/mask-resolver';\r\nimport { InputMaskCorrector } from './directives/input-mask-corrector.directive';\r\nimport { FORMAT_DATE } from './../pages/components/constructor-form/models';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TabIndexFocusDirective } from './directives/tab-index-focus.directive';\r\n\r\nimport {\r\n ConstructorFieldIframeComponent\r\n} from './components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component';\r\nimport { TerminalLayoutComponent } from './components/terminal-layout/terminal-layout.component';\r\nimport { ErrorComponent } from './components/error/error.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule.forChild([\r\n {\r\n path: 'error',\r\n loadComponent: () => import('./components/error/error.component').then(m => m.ErrorComponent)\r\n },\r\n {\r\n resolve: {\r\n csrf: CSRFResolver\r\n },\r\n loadComponent: () => import('./components/terminal-layout/terminal-layout.component').then(m => m.TerminalLayoutComponent),\r\n path: ''\r\n },\r\n ]),\r\n NgScrollbar,\r\n TranslateModule,\r\n CommonModule,\r\n MatDatepickerModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n SharedModule,\r\n TerminalLayoutComponent,\r\n ConstructorFormComponent,\r\n ErrorComponent,\r\n ConstructorFieldTextComponent,\r\n ConstructorFieldDateComponent,\r\n ConstructorFieldSelectComponent,\r\n PsSelectComponent,\r\n ConstructorPreparationComponent,\r\n MethodAmountHintComponent,\r\n InputMaskCorrector,\r\n TabIndexFocusDirective,\r\n ConstructorFieldIframeComponent\r\n ],\r\n providers: [\r\n provideNgxMask(),\r\n NgxMaskPipe,\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: FORMAT_DATE,\r\n },\r\n display: {\r\n dateInput: FORMAT_DATE,\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n },\r\n },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n CSRFResolver,\r\n MaskResolver\r\n ]\r\n})\r\nexport default class PagesModule {\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { CheckinSessionInfoResponse, InvoiceStatus } from '../../../codegen/model/models';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { HttpBadRequestResponse } from '../../models/http-bad-request-response';\r\nimport { ApiErrorsService } from '../../services/api-errors.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Mode } from '../../models/mode';\r\nimport { CHECKIN_SERVICE_TOKEN } from '../../../const';\r\nimport { CheckinServiceInterface } from '../../../codegen/api/checkin.service';\r\nimport { CheckinModeToken, SessionToken } from '../../models';\r\n\r\n@Injectable()\r\nexport class CheckinDatasource {\r\n document = inject<Document>(DOCUMENT);\r\n private checkInApi = inject<CheckinServiceInterface>(CHECKIN_SERVICE_TOKEN);\r\n private token = inject(SessionToken, { optional: true }) || 'token';\r\n private cd = inject(ChangeDetectorRef);\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private mode = inject<Mode>(CheckinModeToken);\r\n\r\n private _returnFailUrl: string;\r\n private _returnUrl: string;\r\n\r\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n check(options = {emitLoading: true}): Observable<CheckinSessionInfoResponse> {\r\n if (!this.token) {\r\n this.loading$.next(false);\r\n\r\n return of({\r\n invoiceId: 0,\r\n status: this.mode === Mode.Success ? InvoiceStatus.New : InvoiceStatus.Refused,\r\n redirectImmediate: false,\r\n successUrl: '',\r\n failUrl: ''\r\n });\r\n }\r\n\r\n if (options?.emitLoading) {\r\n this.loading$.next(true);\r\n }\r\n return this.checkInApi\r\n .getCheckinSessionInfo({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(options?.emitLoading ? this.loading$ : undefined)\r\n ),\r\n tap(({status, failUrl, successUrl, redirectImmediate, error}) => {\r\n this._returnFailUrl = failUrl;\r\n this._returnUrl = successUrl;\r\n if (status === InvoiceStatus.Refused) {\r\n this._returnUrl = failUrl;\r\n this.apiErrorsSrv.setLocalError({code: error});\r\n }\r\n if (redirectImmediate && status !== InvoiceStatus.New) {\r\n this.returnBack();\r\n } else if (options?.emitLoading) {\r\n this.loading$.next(false);\r\n }\r\n })\r\n );\r\n }\r\n\r\n returnBack() {\r\n if (this._returnUrl) {\r\n this.document.defaultView.location.assign(this._returnUrl);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n setBackUrlAsFail() {\r\n this._returnUrl = this._returnFailUrl;\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this._returnUrl;\r\n }\r\n\r\n private catchError(loading$?: BehaviorSubject<boolean>) {\r\n return (err: HttpBadRequestResponse) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n loading$?.next(false);\r\n this.cd.markForCheck();\r\n return throwError(err);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { CheckinDatasource } from '../../services/checkin.datasource';\r\nimport { InvoiceStatus } from '../../../../codegen/model/invoiceStatus';\r\nimport { interval, Subject, timer } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { Mode } from '../../../models/mode';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { CheckinModeToken } from '../../../models';\r\nimport {\r\n TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-checkin-page',\r\n templateUrl: './checkin-page.component.html',\r\n styleUrls: ['./checkin-page.component.scss'],\r\n providers: [\r\n {\r\n provide: CheckinModeToken,\r\n deps: [ActivatedRoute],\r\n useFactory: (activatedRoute: ActivatedRoute) => activatedRoute.snapshot.paramMap.get('mode')\r\n },\r\n CheckinDatasource\r\n ],\r\n imports: [TerminalLayoutTplComponent, ConstructorStatusComponent, AsyncPipe, TranslateByKeyPipe]\r\n})\r\nexport class CheckinPageComponent implements OnInit, OnDestroy {\r\n private checkinDS = inject(CheckinDatasource);\r\n private errorApiSrv = inject(ApiErrorsService);\r\n private cd = inject(ChangeDetectorRef);\r\n private mode = inject<Mode>(CheckinModeToken);\r\n\r\n private CHECK_TIME_INTERVAL = 1000;\r\n private CHECK_TIME = 10000;\r\n private REDIRECT_TIME_AFTER = 15000;\r\n private unSubscriber = new Subject<void>();\r\n private checkinClearTimerSubj$ = new Subject<void>();\r\n private checkinClearRedirectTimerSubj$ = new Subject<void>();\r\n I18N_KEY = I18N_KEY;\r\n hasStatusError = false;\r\n animation = true;\r\n inProgress = false;\r\n message = '';\r\n invoiceId: number | string;\r\n\r\n redirectTimerStarted = false;\r\n\r\n get returnBackUrl(): string {\r\n return this.checkinDS.returnBackUrl;\r\n }\r\n\r\n get loading() {\r\n return this.checkinDS.loading$;\r\n }\r\n\r\n get redirectTime() {\r\n return this.REDIRECT_TIME_AFTER / 1000;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.check();\r\n }\r\n\r\n private check(options = {emitLoading: true}) {\r\n this.checkinDS\r\n .check(options)\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(({status, invoiceId}) => {\r\n this.invoiceId = invoiceId;\r\n this.setMessage(status);\r\n\r\n this.inProgress = status === InvoiceStatus.New;\r\n if (this.inProgress) {\r\n this.startTimer();\r\n } else {\r\n this.startRedirectTimer();\r\n }\r\n\r\n this.cd.detectChanges();\r\n }, () => {\r\n this.setMessage(InvoiceStatus.Refused);\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n setMessage(status: InvoiceStatus = this.mode === Mode.Fail ? InvoiceStatus.Refused : InvoiceStatus.New) {\r\n switch (status) {\r\n case InvoiceStatus.New:\r\n this.inProgress = true;\r\n if (this.invoiceId === 0) {\r\n this.animation = false;\r\n this.message = I18N_KEY.CHECKIN_MESSAGE;\r\n return;\r\n }\r\n this.message = I18N_KEY.CHECKIN_WAIT;\r\n if (!this.CHECK_TIME) {\r\n this.animation = false;\r\n this.message = I18N_KEY.CHECKIN_WAIT_TIMEOVER;\r\n }\r\n break;\r\n case InvoiceStatus.Paid:\r\n this.inProgress = false;\r\n this.message = ``;\r\n break;\r\n case InvoiceStatus.Refused:\r\n this.checkinDS.setBackUrlAsFail();\r\n this.hasStatusError = true;\r\n this.inProgress = false;\r\n this.message = this.errorApiSrv.getLocalError() || I18N_KEY.CHECKIN_FAILED;\r\n break;\r\n }\r\n }\r\n\r\n get operationIdHint(): string {\r\n return this.invoiceId ? ` (Transaction&nbsp;ID:&nbsp;<b>${this.invoiceId}</b>)` : '';\r\n }\r\n\r\n private startTimer() {\r\n this.checkinClearTimerSubj$.next();\r\n this.CHECK_TIME -= this.CHECK_TIME_INTERVAL;\r\n if (!this.CHECK_TIME) {\r\n this.checkinClearTimerSubj$.next();\r\n this.setMessage();\r\n this.startRedirectTimer();\r\n return;\r\n }\r\n timer(this.CHECK_TIME_INTERVAL)\r\n .pipe(takeUntil(this.checkinClearTimerSubj$))\r\n .subscribe(() => this.check({emitLoading: false}));\r\n }\r\n\r\n private startRedirectTimer() {\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.redirectTimerStarted = true;\r\n this.cd.detectChanges();\r\n interval(1000)\r\n .pipe(takeUntil(this.checkinClearRedirectTimerSubj$))\r\n .subscribe(() => {\r\n this.REDIRECT_TIME_AFTER -= 1000;\r\n this.cd.detectChanges();\r\n if (!this.REDIRECT_TIME_AFTER) {\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.checkinDS.returnBack();\r\n }\r\n });\r\n }\r\n\r\n back() {\r\n this.checkinDS.returnBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.checkinClearTimerSubj$.next();\r\n this.checkinClearTimerSubj$.unsubscribe();\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.checkinClearRedirectTimerSubj$.unsubscribe();\r\n }\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"loading | async\">\r\n @if (!(loading | async)) {\r\n <app-constructor-status terminal-layout-status\r\n [inProgress]=\"inProgress\"\r\n [failed]=\"hasStatusError\"\r\n [animation]=\"animation\"\r\n [progressTitle]=\"(I18N_KEY.PROGRESS_TITLE | trans)\"\r\n [failTitle]=\"(I18N_KEY.FAIL_TITLE | trans)\"\r\n [successTitle]=\"(I18N_KEY.SUCCESS_TITLE | trans)\"\r\n [hasSupportHint]=\"false\"\r\n [message]=\"(message | trans) + operationIdHint\"\r\n [backUrl]=\"returnBackUrl\"\r\n [backUrlTitle]=\"I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans\"\r\n >\r\n @if (redirectTimerStarted) {\r\n <div constructor-status-button-hint>\r\n {{ I18N_KEY.REDIRECT_TEXT | trans }}&nbsp;<b>{{redirectTime}}</b>\r\n </div>\r\n }\r\n </app-constructor-status>\r\n }\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CheckinPageComponent } from './components/checkin-page/checkin-page.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n TranslateModule,\r\n RouterModule.forChild([\r\n {\r\n path: ':mode',\r\n loadComponent: () => import('./components/checkin-page/checkin-page.component').then(m => m.CheckinPageComponent)\r\n }\r\n ]),\r\n CheckinPageComponent\r\n ]\r\n})\r\nexport class CheckinModule {\r\n}\r\n","import * as momentjs from 'moment-timezone';\r\n\r\nexport const moment = momentjs;\r\n","/*\r\n * Public API Surface of terminal\r\n */\r\n\r\nexport * from './lib';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["momentjs","i1","i1.IframeValidatorDirectiveDirective"],"mappings":"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"}
1
+ {"version":3,"file":"trm-tmpl.mjs","sources":["../../../projects/terminal-template/src/lib/codegen/model/apiErrors.ts","../../../projects/terminal-template/src/lib/codegen/model/invoiceStatus.ts","../../../projects/terminal-template/src/lib/app/helpers/i18n-countries.ts","../../../projects/terminal-template/src/lib/app/i18n/i18n-key.enum.ts","../../../projects/terminal-template/src/lib/app/i18n/keys.ts","../../../projects/terminal-template/src/lib/app/models/constants.ts","../../../projects/terminal-template/src/lib/app/models/mode.ts","../../../projects/terminal-template/src/lib/app/models/version-service-base-class.ts","../../../projects/terminal-template/src/lib/app/services/api-errors.service.ts","../../../projects/terminal-template/src/lib/const.ts","../../../projects/terminal-template/src/lib/app/services/local-storage.ts","../../../projects/terminal-template/src/lib/app/services/csrf.resolver.ts","../../../projects/terminal-template/src/lib/app/services/error.interceptior.ts","../../../projects/terminal-template/src/lib/app/services/translation/translate-lang-storage.service.ts","../../../projects/terminal-template/src/lib/app/helpers/hide-init-loader.ts","../../../projects/terminal-template/src/lib/app/helpers/insertRemoveTrigger.ts","../../../projects/terminal-template/src/lib/app/helpers/phone-codes.ts","../../../projects/terminal-template/src/lib/app/helpers/mask-resolver.ts","../../../projects/terminal-template/src/lib/app/helpers/key-down-handler.ts","../../../projects/terminal-template/src/lib/app/helpers/is-object-the-same.ts","../../../projects/terminal-template/src/lib/app/helpers/warning-console-message.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/payment-field-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/collection-type.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/field-template.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/advcash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/terminal-step.enum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/index.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alfabank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/alipay_plus.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/applepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/argentina_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/atf24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/baloto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/beeline.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/blik.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/boleto.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/brazil_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/card.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/carga_virtual.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cash.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cashtocode.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/codi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/comepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/cup_p2p.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/deposit_express.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/dotpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ecopayz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/eps.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/giropay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/gmmoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/googlepay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ideal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/jeton_voucher.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/kassa24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/link.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_brazil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/local_card_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/loterica.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/malaysia_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/megafon.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mexico_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/momopay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/moneta.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mts.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/multibanco.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neosurf.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/neteller.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/nupay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/onecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/oxxo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoefectivo.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagoexpress.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pagofacil.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paypal.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/paysafecard.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/picpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/pix.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/philippines_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promptpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/promsviaz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/przelewy24.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/qiwi.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapid.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/rapipago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/redpagos.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sberbank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sbp.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sepa.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/servipag.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinify.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skinsback.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/skrill.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/sofort.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/spei.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/store_mexico.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tele2.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tinkoff.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/trustly.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/webpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wechat.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wme.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmr.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmu.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wmz.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/zen_wallet.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/yandex.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/wallester.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/bitcoin.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tron.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/ethereum.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/tether_trc20.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mercado_pago.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mirpay.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/mbway.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/models/config/all.ts","../../../projects/terminal-template/src/lib/app/services/session.data-source.ts","../../../projects/terminal-template/src/lib/app/services/script-loader.ts","../../../projects/terminal-template/src/lib/app/terminal.module.ts","../../../projects/terminal-template/src/lib/app/pages/directives/fee-template.directive.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.ts","../../../projects/terminal-template/src/lib/app/terminal-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select-label-template.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/scrollbar-select-height.directive.ts","../../../projects/terminal-template/src/lib/app/shared/pipes/translate-by-key.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-select/trm-select.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.html","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.html","../../../projects/terminal-template/src/lib/app/shared/pipes/sanitizer.pipe.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/constructor-status/constructor-status.component.html","../../../projects/terminal-template/src/lib/app/shared/directives/ng-var.directive.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.ts","../../../projects/terminal-template/src/lib/app/shared/components/trm-amount/trm-amount.component.html","../../../projects/terminal-template/src/lib/app/shared/shared.module.ts","../../../projects/terminal-template/src/lib/helpers/remove-empty-props.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/services/constructor-form.service.ts","../../../projects/terminal-template/src/lib/app/pipes/country-translate.pipe.ts","../../../projects/terminal-template/src/lib/app/pipes/countries-sort.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.html","../../../projects/terminal-template/src/lib/app/pipes/method-title.pipe.ts","../../../projects/terminal-template/src/lib/app/pages/directives/tab-index-focus.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.html","../../../projects/terminal-template/src/lib/app/pages/services/mask.service.ts","../../../projects/terminal-template/src/lib/app/pages/directives/input-mask-corrector.directive.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.html","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/constructor-form/constructor-form.component.html","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/terminal-layout/terminal-layout.component.html","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.ts","../../../projects/terminal-template/src/lib/app/pages/components/error/error.component.html","../../../projects/terminal-template/src/lib/app/pages/pages.module.ts","../../../projects/terminal-template/src/lib/app/checkin/services/checkin.datasource.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.ts","../../../projects/terminal-template/src/lib/app/checkin/components/checkin-page/checkin-page.component.html","../../../projects/terminal-template/src/lib/app/checkin/checkin.module.ts","../../../projects/terminal-template/src/lib/helpers/moment-import.ts","../../../projects/terminal-template/src/public-api.ts","../../../projects/terminal-template/src/trm-tmpl.ts"],"sourcesContent":["/**\r\n * Codes of the data validation API errors\r\n */\r\nexport enum ApiErrors {\r\n SESSION_NOT_FOUND = 'error_session_not_found',\r\n SESSION_USED = 'error_session_used',\r\n SESSION_EXPIRED = 'error_session_expired',\r\n FORMAT_WALLET = 'error_format_wallet',\r\n FORMAT_PHONE = 'error_format_phone',\r\n FORMAT_DATE_BIRTH = 'error_format_date_birth',\r\n FORMAT_EMAIL = 'error_format_email',\r\n FORMAT_STEAM_TOKEN = 'error_format_steam_token',\r\n FORMAT_NUMERIC = 'error_format_numeric',\r\n FORMAT_ZIP = 'error_format_zip',\r\n FORMAT_UPPER_LIMIT = 'error_format_upper_limit',\r\n FORMAT_LOWER_LIMIT = 'error_format_lower_limit',\r\n FORMAT_AMOUNT_OUT_OF_LIMIT = 'error_format_amount_out_of_limit',\r\n FORMAT_AMOUNT_NOT_POSITIVE = 'error_format_amount_not_positive',\r\n INSUFFICIENT_FUNDS = 'error_insufficient_funds',\r\n PAYMENT_COUNT_EXCEEDED = 'error_payment_count_exceeded',\r\n SECURITY_CHECK_FAILED = 'error_security_check_failed',\r\n INCORRECT_CARD_NUMBER = 'error_incorrect_card_number',\r\n INCORRECT_CARD_HOLDER = 'error_incorrect_card_holder',\r\n INCORRECT_CARD_CVV = 'error_incorrect_card_cvv',\r\n INCORRECT_CARD_DATE = 'error_incorrect_card_date',\r\n INCORRECT_CARD_DATA = 'error_incorrect_card_data',\r\n TRANSACTION_3DS_EXPIRED = 'error_transaction_3ds_expired',\r\n CARD_DATA_NOT_ENTERED = 'error_card_data_not_entered',\r\n CARD_EXPIRED = 'error_card_expired',\r\n AUTH_3DS_FAILED = 'error_auth_3ds_failed',\r\n CARD_LIMIT_EXCEEDED = 'error_card_limit_exceeded',\r\n USER_CANCEL_TRANSACTION = 'error_user_cancel_transaction',\r\n NOT_3DS_SECURE_PAYMENT = 'error_not_3ds_secure_payment',\r\n TIME_FOR_PAY_EXPIRED = 'error_time_for_expired',\r\n SOFT_DECLINE = 'error_soft_decline',\r\n USER_ACCOUNT_NOT_FOUND = 'error_user_account_not_found',\r\n PROVIDER_DENIED = 'error_provider_denied',\r\n INTERNAL = 'error_internal'\r\n};\r\n\r\n","export enum InvoiceStatus {\r\n New = 'new',\r\n Paid = 'paid',\r\n Refused = 'refused'\r\n};\r\n\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeRu from '@angular/common/locales/ru';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport localeTr from '@angular/common/locales/tr';\r\nimport localeEs from '@angular/common/locales/es';\r\nimport localePt from '@angular/common/locales/pt';\r\nimport localeLt from '@angular/common/locales/lt';\r\nimport EN_COUNTRIES from 'i18n-iso-countries/langs/en.json';\r\nimport RU_COUNTRIES from 'i18n-iso-countries/langs/ru.json';\r\nimport ES_COUNTRIES from 'i18n-iso-countries/langs/es.json';\r\nimport TR_COUNTRIES from 'i18n-iso-countries/langs/tr.json';\r\nimport PT_COUNTRIES from 'i18n-iso-countries/langs/pt.json';\r\nimport LT_COUNTRIES from 'i18n-iso-countries/langs/lt.json';\r\nimport { registerLocale } from 'i18n-iso-countries';\r\n\r\nexport const OTHER_COUNTRY_CODE = 'other';\r\n\r\n// Additional countries\r\nObject.assign(EN_COUNTRIES.countries, {\r\n OS: 'South Ossetia',\r\n AB: 'Abkhazia',\r\n [OTHER_COUNTRY_CODE]: 'Other'\r\n});\r\nObject.assign(RU_COUNTRIES.countries, {\r\n OS: 'Южная Осетия',\r\n AB: 'Абхазия',\r\n [OTHER_COUNTRY_CODE]: 'Другие'\r\n});\r\n\r\nObject.assign(ES_COUNTRIES.countries, {\r\n OS: 'Osetia del Sur',\r\n AB: 'Abjasia',\r\n [OTHER_COUNTRY_CODE]: 'Otro'\r\n});\r\n\r\nObject.assign(TR_COUNTRIES.countries, {\r\n OS: 'Güney Osetya',\r\n AB: 'Abhazya',\r\n [OTHER_COUNTRY_CODE]: 'Diğer'\r\n});\r\n\r\nObject.assign(PT_COUNTRIES.countries, {\r\n OS: 'Ossétia do Sul',\r\n AB: 'Abecásia',\r\n [OTHER_COUNTRY_CODE]: 'Outro'\r\n});\r\n\r\nexport const loadI18NData = () => {\r\n registerLocaleData(localeRu);\r\n registerLocaleData(localeEn);\r\n registerLocaleData(localeEs);\r\n registerLocaleData(localeTr);\r\n registerLocaleData(localePt);\r\n registerLocaleData(localeLt);\r\n registerLocale(EN_COUNTRIES);\r\n registerLocale(RU_COUNTRIES);\r\n registerLocale(ES_COUNTRIES);\r\n registerLocale(TR_COUNTRIES);\r\n registerLocale(PT_COUNTRIES);\r\n registerLocale(LT_COUNTRIES);\r\n}\r\n\r\n","export enum I18N_KEY {\r\n TITLE_PAGE_INVOICE = 'TITLE_PAGE_INVOICE',\r\n TITLE_PAGE_SAVE_CARD = 'TITLE_PAGE_SAVE_CARD',\r\n TITLE_PAGE_PAY_CARD = 'TITLE_PAGE_PAY_CARD',\r\n CARD_SAVE_HEADER = 'CARD_SAVE_HEADER',\r\n CARD_PAY_HEADER = 'CARD_PAY_HEADER',\r\n CDE_CARD_ERROR_500 = 'CDE_CARD_ERROR_500',\r\n CDE_CARD_ERROR_501 = 'CDE_CARD_ERROR_501',\r\n CDE_CARD_ERROR_504 = 'CDE_CARD_ERROR_504',\r\n SESSION_CLOSED = 'session_closed',\r\n APPLE_NOT_AVAILABLE = 'apple_not_available',\r\n MIRPAY_NOT_AVAILABLE = 'mirpay_not_available',\r\n CDE_CARD_ERROR_ALREADY_PAID = 'CDE_CARD_ERROR_ALREADY_PAID',\r\n CDE_CARD_PAID = 'CDE_CARD_PAID',\r\n PAGE_NOT_FOUNT = 'page_not_found',\r\n DEFAULT_ERROR_CODE = 'error_api',\r\n DEFAULT_ERROR_CODE_GENERAL = 'error_general',\r\n ERROR_OCCUR = 'ERROR_OCCUR',\r\n ERROR_OCCUR_SDK = 'ERROR_OCCUR_SDK',\r\n PROGRESS_TITLE = 'PROGRESS_TITLE',\r\n FAIL_TITLE = 'FAIL_TITLE',\r\n SUCCESS_TITLE = 'SUCCESS_TITLE',\r\n REDIRECT_TEXT = 'REDIRECT_TEXT',\r\n CHECKIN_MESSAGE = 'CHECKIN_MESSAGE',\r\n CHECKIN_WAIT = 'CHECKIN_WAIT',\r\n CHECKIN_WAIT_TIMEOVER = 'CHECKIN_WAIT_TIMEOVER',\r\n CHECKIN_FAILED = 'CHECKIN_FAILED',\r\n PROGRESS_3DS_TITLE = 'PROGRESS_3DS_TITLE',\r\n PROGRESS_3DS_WAIT = 'PROGRESS_3DS_WAIT',\r\n PROGRESS_3DS_FAILED = 'PROGRESS_3DS_FAILED',\r\n SESSION_BREAK = 'SESSION_BREAK',\r\n TERMINAL_SESSION_BREAK = 'TERMINAL_SESSION_BREAK',\r\n TERMINAL_SESSION_SUCCESS = 'TERMINAL_SESSION_SUCCESS',\r\n TERMINAL_SESSION_SUPPORT = 'TERMINAL_SESSION_SUPPORT',\r\n SELECT_SEARCH = 'SELECT_SEARCH',\r\n SELECT_EMPTY_LIST = 'SELECT_EMPTY_LIST',\r\n VALIDATION_REQUIRED = 'validation_required',\r\n VALIDATION_EMAIL = 'validation_email',\r\n VALIDATION_MIN = 'validation_min',\r\n VALIDATION_MAX = 'validation_max',\r\n VALIDATION_PATTERN = 'validation_pattern',\r\n VALIDATION_DATE_MIN = 'validation_date_min',\r\n VALIDATION_DATE_MAX = 'validation_date_max',\r\n CONSTRUCTOR_LABEL_PHONE = 'CONSTRUCTOR_LABEL_PHONE',\r\n CONSTRUCTOR_LABEL_EMAIL = 'CONSTRUCTOR_LABEL_EMAIL',\r\n CONSTRUCTOR_LABEL_AMOUNT = 'CONSTRUCTOR_LABEL_AMOUNT',\r\n CONSTRUCTOR_LABEL_FIRSTNAME = 'CONSTRUCTOR_LABEL_FIRSTNAME',\r\n CONSTRUCTOR_LABEL_LASTNAME = 'CONSTRUCTOR_LABEL_LASTNAME',\r\n CONSTRUCTOR_LABEL_DATEBIRTH = 'CONSTRUCTOR_LABEL_DATEBIRTH',\r\n CONSTRUCTOR_LABEL_ZIP = 'CONSTRUCTOR_LABEL_ZIP',\r\n CONSTRUCTOR_LABEL_TYPEDOCUMENT = 'CONSTRUCTOR_LABEL_TYPEDOCUMENT',\r\n CONSTRUCTOR_LABEL_DOCUMENT = 'CONSTRUCTOR_LABEL_DOCUMENT',\r\n CONSTRUCTOR_LABEL_BANK = 'CONSTRUCTOR_LABEL_BANK',\r\n CONSTRUCTOR_LABEL_COUNTRY = 'CONSTRUCTOR_LABEL_COUNTRY',\r\n CONSTRUCTOR_LABEL_CONTINUE = 'CONSTRUCTOR_LABEL_CONTINUE',\r\n CONSTRUCTOR_LABEL_RETURN = 'CONSTRUCTOR_LABEL_RETURN',\r\n CONSTRUCTOR_LABEL_RETURN_TO_SHOP = 'CONSTRUCTOR_LABEL_RETURN_TO_SHOP',\r\n CONSTRUCTOR_LABEL_CANCEL_RETURN = 'CONSTRUCTOR_LABEL_CANCEL_RETURN',\r\n CONSTRUCTOR_LABEL_FEE = 'CONSTRUCTOR_LABEL_FEE',\r\n CONSTRUCTOR_LABEL_MIN_AMOUNT = 'CONSTRUCTOR_LABEL_MIN_AMOUNT',\r\n CONSTRUCTOR_LABEL_MAX_AMOUNT = 'CONSTRUCTOR_LABEL_MAX_AMOUNT',\r\n CONSTRUCTOR_LABEL_PS = 'CONSTRUCTOR_LABEL_PS',\r\n CONSTRUCTOR_LABEL_WALLET = 'CONSTRUCTOR_LABEL_WALLET',\r\n CONSTRUCTOR_LABEL_AMOUNT_FEE = 'CONSTRUCTOR_LABEL_AMOUNT_FEE',\r\n CONSTRUCTOR_LABEL_MIN_FIXED_FEE = 'CONSTRUCTOR_LABEL_MIN_FIXED_FEE',\r\n CONSTRUCTOR_LABEL_CURRENCY = 'CONSTRUCTOR_LABEL_CURRENCY',\r\n CONSTRUCTOR_PREPARATION_HEADER = 'CONSTRUCTOR_PREPARATION_HEADER',\r\n CONSTRUCTOR_MEGAFON_PREPARATION_TEXT = 'constructor_megafon_preparation_text',\r\n CONSTRUCTOR_PLACEHOLDER_PHONE = 'CONSTRUCTOR_PLACEHOLDER_PHONE',\r\n CONSTRUCTOR_PLACEHOLDER_EMAIL = 'CONSTRUCTOR_PLACEHOLDER_EMAIL',\r\n CONSTRUCTOR_PLACEHOLDER_AMOUNT = 'CONSTRUCTOR_PLACEHOLDER_AMOUNT',\r\n CONSTRUCTOR_PLACEHOLDER_FIRSTNAME = 'CONSTRUCTOR_PLACEHOLDER_FIRSTNAME',\r\n CONSTRUCTOR_PLACEHOLDER_LASTNAME = 'CONSTRUCTOR_PLACEHOLDER_LASTNAME',\r\n CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT',\r\n CONSTRUCTOR_PLACEHOLDER_ZIP = 'CONSTRUCTOR_PLACEHOLDER_ZIP',\r\n CONSTRUCTOR_PLACEHOLDER_BANK = 'CONSTRUCTOR_PLACEHOLDER_BANK',\r\n CONSTRUCTOR_PLACEHOLDER_DOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_DOCUMENT',\r\n CONSTRUCTOR_PLACEHOLDER_WALLET = 'CONSTRUCTOR_PLACEHOLDER_WALLET',\r\n CONSTRUCTOR_PLACEHOLDER_PS = 'CONSTRUCTOR_PLACEHOLDER_PS',\r\n CONSTRUCTOR_DESCRIPTION_VOUCHER = 'CONSTRUCTOR_DESCRIPTION_VOUCHER',\r\n CONSTRUCTOR_DESCRIPTION_APPLEPAY = 'CONSTRUCTOR_DESCRIPTION_APPLEPAY',\r\n CONSTRUCTOR_DESCRIPTION_CASHTOCODE = 'CONSTRUCTOR_DESCRIPTION_CASHTOCODE',\r\n CONSTRUCTOR_DESCRIPTION_PHONE = 'CONSTRUCTOR_DESCRIPTION_PHONE'\r\n}\r\n","import { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { I18N_KEY } from './i18n-key.enum';\r\n\r\nexport const i18nMap: Map<ApiErrors | I18N_KEY, string> = new Map<ApiErrors | I18N_KEY, string>(\r\n [\r\n [I18N_KEY.TITLE_PAGE_INVOICE, 'Пополнение'],\r\n [I18N_KEY.TITLE_PAGE_SAVE_CARD, 'Сохранение карты'],\r\n [I18N_KEY.TITLE_PAGE_PAY_CARD, 'Пополнение картой'],\r\n [ApiErrors.SESSION_USED, 'Сессия не установлена'],\r\n [ApiErrors.SESSION_EXPIRED, 'Сессия уже использована'],\r\n [ApiErrors.SESSION_NOT_FOUND, 'Время жизни сессии истекло'],\r\n [I18N_KEY.SESSION_BREAK, 'Сессия прервана'],\r\n [I18N_KEY.ERROR_OCCUR, 'Произошла ошибка'],\r\n [ApiErrors.FORMAT_DATE_BIRTH, 'Неправильный формат даты'],\r\n [ApiErrors.FORMAT_EMAIL, 'Неправильный формат email'],\r\n [ApiErrors.FORMAT_NUMERIC, 'Неправильный формат одного из числовых полей'],\r\n [ApiErrors.FORMAT_LOWER_LIMIT, 'Сумма меньше минимального значения'],\r\n [ApiErrors.FORMAT_UPPER_LIMIT, 'Превышено максимальное значение суммы'],\r\n [ApiErrors.FORMAT_AMOUNT_OUT_OF_LIMIT, 'Сумма за пределами допустимых лимитов'],\r\n [ApiErrors.FORMAT_AMOUNT_NOT_POSITIVE, 'Сумма должна быть положительной'],\r\n [ApiErrors.FORMAT_STEAM_TOKEN, 'Неправильный формат токена steam'],\r\n [ApiErrors.FORMAT_WALLET, 'Неправильный формат кошелька'],\r\n [ApiErrors.FORMAT_ZIP, 'Неправильный формат почтового индекса'],\r\n [ApiErrors.FORMAT_PHONE, 'Неправильный формат телефона'],\r\n [ApiErrors.INSUFFICIENT_FUNDS, 'Недостаточно средств, чтобы провести операцию'],\r\n [ApiErrors.PAYMENT_COUNT_EXCEEDED, 'Исчерпан лимит платежей для платёжного направления'],\r\n [ApiErrors.SECURITY_CHECK_FAILED, 'Операция отклонена системой безопасности'],\r\n [ApiErrors.PROVIDER_DENIED, 'Платёж отклонён провайдером'],\r\n [ApiErrors.INTERNAL, 'Внутренняя ошибка'],\r\n [I18N_KEY.CARD_SAVE_HEADER, 'Сохранение карты для дальнейших покупок'],\r\n [I18N_KEY.CARD_PAY_HEADER, 'Пополнение банковской картой'],\r\n [I18N_KEY.CDE_CARD_ERROR_501, 'Сессия с указанным токеном не найдена'],\r\n [I18N_KEY.CDE_CARD_ERROR_504, 'Время сессии истекло'],\r\n [I18N_KEY.CDE_CARD_ERROR_500, 'Внутренняя ошибка. Попробуйте повторить попытку позже'],\r\n [I18N_KEY.DEFAULT_ERROR_CODE, 'Обратитесь в техническую поддержку магазина'],\r\n [I18N_KEY.DEFAULT_ERROR_CODE_GENERAL, 'Произошла ошибка. Обратитесь в службу поддержки.'],\r\n [I18N_KEY.PAGE_NOT_FOUNT, 'Страница не найдена'],\r\n [I18N_KEY.SESSION_CLOSED, 'Сессия закрыта'],\r\n [I18N_KEY.APPLE_NOT_AVAILABLE, 'ApplePay недоступен в текущем окружении'],\r\n [I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID, 'Данные карты отправлены. Подтвердите платеж.'],\r\n [I18N_KEY.CDE_CARD_PAID, 'Данные карты отправлены.'],\r\n [I18N_KEY.MIRPAY_NOT_AVAILABLE, 'MirPay временно недоступен'],\r\n [I18N_KEY.VALIDATION_REQUIRED, 'Обязательное поле'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_PHONE, 'Номер телефона'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_EMAIL, 'Email'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT, 'Сумма платежа'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME, 'Имя'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME, 'Фамилия'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH, 'Дата рождения'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_ZIP, 'Индекс'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT, 'Тип документа'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT, 'Документ'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_BANK, 'Банк'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE, 'Введите номер'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL, 'Введите email'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT, 'Укажите сумму'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME, 'Введите имя'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME, 'Введите фамилию'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT, 'Выберите тип'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP, 'Укажите индекс (например, 125047)'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK, 'Выберите банк'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT, 'Введите номер документа'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET, 'Введите номер кошелька'],\r\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS, 'Выбрать другой метод'],\r\n [I18N_KEY.VALIDATION_EMAIL, 'Некорректный адрес почты'],\r\n [I18N_KEY.VALIDATION_MIN, 'Значение ниже минимально возможного'],\r\n [I18N_KEY.VALIDATION_MAX, 'Значение выше максимально возможного'],\r\n [I18N_KEY.VALIDATION_PATTERN, 'Некорректное значение'],\r\n [I18N_KEY.VALIDATION_DATE_MIN, 'Значение ниже минимальной даты'],\r\n [I18N_KEY.VALIDATION_DATE_MAX, 'Превышено значение максимальной даты'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER, 'Ваучер действителен в течение 48 часов. Обработка платежей может занять до 3 рабочих дней.'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY, 'Данный метод работает только в браузере Safari'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE, 'Для успешного пополнения счета сумма пополнения должна быть равна: 10, 25, 50, 100, 200 или 400 евро.'],\r\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE, 'С кодом страны в международном формате'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_PS, 'Платежная система'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_WALLET, 'Кошелек'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE, 'Сумма с учетом комиссии'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE, 'но не менее '],\r\n [I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER, 'Подтвердите реквизиты платежа'],\r\n [I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT, 'Оплачивая услуги с помощью Мегафон, вы соглашаетесь с <a target=\"_blank\" href=\"https://moscow.megafon.ru/download/~federal/oferts/oferta_m_platezhi.pdf\">офертой</a>.'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY, 'Страна'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE, 'Продолжить'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN, 'Вернуться назад'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP, 'Вернуться в магазин'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN, 'Отменить и вернуться'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY, 'Валюта'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_FEE, 'Комиссия'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT, 'Минимальная сумма'],\r\n [I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT, 'Максимальная сумма'],\r\n [I18N_KEY.PROGRESS_TITLE, 'Платёж принят в обработку'],\r\n [I18N_KEY.FAIL_TITLE, 'Не удалось провести платёж'],\r\n [I18N_KEY.SUCCESS_TITLE, 'Ваш платёж успешно оплачен!'],\r\n [I18N_KEY.REDIRECT_TEXT, 'Вы будете автоматически перенаправлены через'],\r\n [I18N_KEY.CHECKIN_MESSAGE, 'Операция будет обработана в ближайшее время.'],\r\n [I18N_KEY.CHECKIN_WAIT, 'Пожалуйста, дождитесь окончательного статуса платежа.'],\r\n [I18N_KEY.CHECKIN_WAIT_TIMEOVER, 'Время ожидания статуса истекло. Транзакция будет обработана в ближайшее время.'],\r\n [I18N_KEY.CHECKIN_FAILED, 'Платежная операция не может быть обработана или завершилась с ошибкой.'],\r\n [I18N_KEY.PROGRESS_3DS_TITLE, 'Принято в обработку'],\r\n [I18N_KEY.PROGRESS_3DS_WAIT, 'Пожалуйста, дождитесь окончания проверки.'],\r\n [I18N_KEY.PROGRESS_3DS_FAILED, 'Произошла ошибка при обработке 3ds пароля.'],\r\n [I18N_KEY.TERMINAL_SESSION_BREAK, 'Сессия терминала была прервана'],\r\n [I18N_KEY.TERMINAL_SESSION_SUCCESS, 'Операция прошла успешно!'],\r\n [I18N_KEY.TERMINAL_SESSION_SUPPORT, 'В случае возникновения проблем с платежом, обращайтесь в техническую поддержку магазина или к нам на почту'],\r\n [I18N_KEY.SELECT_SEARCH, 'Поиск'],\r\n [I18N_KEY.SELECT_EMPTY_LIST, 'Список пуст'],\r\n [I18N_KEY.ERROR_OCCUR_SDK, 'Ошибка загрузки терминала']\r\n ]\r\n);\r\n\r\nexport const getI18Key: ((key: I18N_KEY | ApiErrors) => string) = (key: I18N_KEY | ApiErrors) => {\r\n return i18nMap.get(key);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Mode } from './mode';\r\n\r\nexport enum LANGUAGE {\r\n EN = 'en',\r\n RU = 'ru',\r\n ES = 'es',\r\n TR = 'tr',\r\n PT = 'pt',\r\n LT = 'lt'\r\n}\r\nexport const LOCAL_LANG_KEY = 'TERMINAL_LANG';\r\nexport const DEFAULT_LANG = 'en';\r\nexport const APP_READY_TOKEN = new InjectionToken<BehaviorSubject<boolean>>(\r\n 'APP_READY',\r\n { providedIn: 'root', factory: () => new BehaviorSubject<boolean>(false) }\r\n);\r\nexport const CSRF_COOKIE_NAME = 'TERMINAL-CSRF-KEY';\r\nexport const I18N_COUNTRIES = new InjectionToken('i18n-iso-countries');\r\n\r\nexport const SessionToken = new InjectionToken<string>('SessionToken');\r\nexport const CheckinModeToken = new InjectionToken<Mode>('CheckinModeToken');\r\nexport const DEFAULT_COUNTRY_LOCALHOST_KEY = 'GM_TERMINAL_COUNTRY';\r\nexport const DEFAULT_METHOD_LOCALHOST_KEY = 'GM_TERMINAL_METHOD';\r\nexport const DEFAULT_CURRENCY_LOCALHOST_KEY = 'GM_TERMINAL_CURRENCY';\r\n","export enum Mode {\r\n Success = 'success',\r\n Fail = 'fail'\r\n}\r\n","import { VersionServiceInterface } from './version-service-interface';\r\nimport { MethodType } from '../../codegen/model/methodType';\r\n\r\n\r\nexport abstract class VersionServiceBase implements VersionServiceInterface {\r\n\r\n logoClass: string;\r\n methods: MethodType[];\r\n footerText;\r\n pageTitle = 'Title';\r\n supportEmail = '';\r\n\r\n\tprotected constructor(protected document: Document) {\r\n this.footerText = `${document.defaultView.location.hostname} © ${new Date().getFullYear()}`\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ApiErrors, BadRequestResponse } from '../../codegen/model/models';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { SessionToken } from '../models';\r\n\r\ntype ErrorCode = I18N_KEY | ApiErrors;\r\n\r\n@Injectable()\r\nexport class ApiErrorsService {\r\n private token = inject(SessionToken, {optional: true}) || 'token';\r\n\r\n private _localError: ErrorCode;\r\n\r\n constructor() {\r\n }\r\n\r\n clear(): void {\r\n this._localError = null;\r\n }\r\n\r\n get hasError(): boolean {\r\n return !!this._localError;\r\n }\r\n\r\n get hasFatalError(): boolean {\r\n const formatErrors: ErrorCode[] = [\r\n ApiErrors.FORMAT_PHONE,\r\n ApiErrors.FORMAT_DATE_BIRTH,\r\n ApiErrors.FORMAT_EMAIL,\r\n ApiErrors.FORMAT_NUMERIC,\r\n ApiErrors.FORMAT_LOWER_LIMIT,\r\n ApiErrors.FORMAT_UPPER_LIMIT,\r\n ApiErrors.FORMAT_STEAM_TOKEN,\r\n ApiErrors.FORMAT_WALLET,\r\n ApiErrors.FORMAT_ZIP,\r\n ];\r\n if (formatErrors.includes(this._localError)) {\r\n return false;\r\n }\r\n return !!this._localError;\r\n }\r\n\r\n setLocalError(err?: BadRequestResponse | { code: I18N_KEY }): void {\r\n let code: ErrorCode = I18N_KEY.DEFAULT_ERROR_CODE;\r\n if (err?.code) {\r\n code = err.code;\r\n }\r\n this._localError = code;\r\n }\r\n\r\n get hasLocalError() {\r\n return !!this._localError;\r\n }\r\n\r\n getLocalError() {\r\n return this._localError;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PaymentFields } from './app/pages';\r\nimport { CheckinServiceInterface, ConfigurationApiInterface, TerminalServiceInterface } from './codegen';\r\nimport { CdeTerminalSdk, VersionServiceInterface } from './app/models';\r\n\r\nexport const CONFIGURATION_TOKEN = new InjectionToken<ConfigurationApiInterface>('CONFIGURATION_TOKEN');\r\nexport const CHECKIN_SERVICE_TOKEN = new InjectionToken<CheckinServiceInterface>('CHECKIN_SERVICE_TOKEN');\r\nexport const TERMINAL_SERVICE_TOKEN = new InjectionToken<TerminalServiceInterface>('TERMINAL_SERVICE_TOKEN');\r\nexport const TERMINAL_METHOD_CONFIGURATION_FACTORY = new InjectionToken<(method: string, defaultConfig: PaymentFields) => PaymentFields>('TERMINAL_METHOD_CONFIGURATION_FACTORY');\r\nexport const ENVIRONMENT = new InjectionToken<{production: boolean, csrf: boolean}>('ENVIRONMENT');\r\nexport const TERMINAL_VERSION_SERVICE_TOKEN = new InjectionToken<VersionServiceInterface>('TERMINAL_VERSION_SERVICE_TOKEN');\r\n\r\nexport const TERMINAL_SDK_FACTORY = new InjectionToken<(token: string, id: string, options: {lang: string, tabindex?: number}) => CdeTerminalSdk>('TERMINAL_SDK_FACTORY');\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport {\r\n DEFAULT_COUNTRY_LOCALHOST_KEY,\r\n DEFAULT_CURRENCY_LOCALHOST_KEY,\r\n DEFAULT_METHOD_LOCALHOST_KEY,\r\n LOCAL_LANG_KEY,\r\n} from '../models/constants';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocalStorage {\r\n private _document: Document = inject(DOCUMENT);\r\n private readonly _supported: boolean = true;\r\n constructor() {\r\n try {\r\n if (!this._document.defaultView.localStorage) {\r\n this._supported = false;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (error) {\r\n this._supported = false;\r\n }\r\n }\r\n\r\n private get _storage(): Storage {\r\n return this._document.defaultView.localStorage;\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!this._supported) {\r\n return null;\r\n }\r\n return this._storage.getItem(key);\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!this._supported) {\r\n return;\r\n }\r\n this._storage.setItem(key, value);\r\n }\r\n\r\n private _defaultCountry: Alpha2Code;\r\n private _defaultMethodName: string;\r\n private _defaultCurrency: string;\r\n private _defaultLang: string;\r\n\r\n get defaultCountry(): Alpha2Code | null {\r\n return (\r\n this._defaultCountry ||\r\n (this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY) as Alpha2Code)\r\n );\r\n }\r\n\r\n get defaultMethodName(): string | null {\r\n return (\r\n this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY)\r\n );\r\n }\r\n\r\n get defaultCurrency(): string | null {\r\n return (\r\n this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY)\r\n );\r\n }\r\n\r\n get defaultLang(): string | null {\r\n return this._defaultLang || this.getItem(LOCAL_LANG_KEY);\r\n }\r\n\r\n saveDefaultCountry(value: string): void {\r\n this._defaultCountry = value as Alpha2Code;\r\n this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultMethodName(value: string): void {\r\n this._defaultMethodName = value;\r\n this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultCurrency(value: string): void {\r\n this._defaultCurrency = value;\r\n this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);\r\n }\r\n\r\n saveDefaultLang(value: string): void {\r\n this._defaultLang = value;\r\n this.setItem(LOCAL_LANG_KEY, value);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport momentjs from 'moment-timezone';\r\nimport { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';\r\nimport { ConfigurationApiInterface } from '../../codegen/api/configuration';\r\nimport { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { ApiErrors } from '../../codegen/model/apiErrors';\r\nimport { LocalStorage } from \"./local-storage\";\r\n\r\n@Injectable()\r\nexport class CSRFResolver {\r\n private cookieSrv = inject(CookieService);\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private configuration = inject<ConfigurationApiInterface>(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };\r\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n private token = inject(SessionToken, { optional: true }) || 'token';\r\n private environment = inject(ENVIRONMENT);\r\n\r\n private storage: LocalStorage = inject(LocalStorage);\r\n\r\n constructor() {\r\n }\r\n\r\n private saveDefaultCountry(defaultCountryISOCode: string) {\r\n if (defaultCountryISOCode) {\r\n this.storage.saveDefaultCountry(defaultCountryISOCode);\r\n }\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\r\n const token = this.token;\r\n if (!token) {\r\n if (!this.apiErrorsSrv.hasError) {\r\n this.apiErrorsSrv.setLocalError({code: ApiErrors.SESSION_NOT_FOUND});\r\n }\r\n return of(true);\r\n }\r\n const timezone = momentjs.tz.guess();\r\n\r\n if (!this.environment.csrf) {\r\n return of(false);\r\n }\r\n if (this.resolveCSRF(token)) {\r\n return of(true);\r\n }\r\n return this.terminalApi.postTerminalOpen({\r\n token,\r\n terminalOpenRequest: {\r\n timezone\r\n }\r\n })\r\n .pipe(\r\n catchError((err) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n return of({csrf: null, defaultCountryISOCode: null});\r\n }),\r\n map(({csrf, defaultCountryISOCode}) => {\r\n this.saveDefaultCountry(defaultCountryISOCode);\r\n this.resolveCSRF(token, csrf);\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n resolveCSRF(token: string, csrf?: string): boolean {\r\n if (!csrf) {\r\n if (token && this.cookieSrv.check(`${token}_${CSRF_COOKIE_NAME}`)) {\r\n this.apiErrorsSrv.clear();\r\n this.configuration.credentials.CSRF = this.cookieSrv.get(`${token}_${CSRF_COOKIE_NAME}`);\r\n return true;\r\n }\r\n } else {\r\n this.apiErrorsSrv.clear();\r\n this.cookieSrv.set(`${token}_${CSRF_COOKIE_NAME}`, csrf, momentjs().add(24, 'hours').toDate(), undefined, undefined, this.environment.production);\r\n this.configuration.credentials.CSRF = csrf;\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ApiErrorsService } from './api-errors.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n private apiErrorSrv = inject(ApiErrorsService);\r\n\r\n\r\n constructor() { }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next\r\n .handle(req)\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err.status === 404 || err.status === 500) {\r\n this.apiErrorSrv.setLocalError();\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","import { EventEmitter, inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { DEFAULT_LANG, LANGUAGE } from '../../models/constants'\r\nimport { Alpha2Code } from 'i18n-iso-countries';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';\r\nimport { VersionServiceInterface } from '../../models';\r\nimport { LocalStorage } from \"../local-storage\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\ninterface TranslationLangInfoMeta {\r\n code: string;\r\n name: string;\r\n countries: Alpha2Code[];\r\n}\r\n\r\nexport interface TranslationLangInfo {\r\n [key: string]: TranslationLangInfoMeta;\r\n}\r\n\r\nconst TRANSLATION_LANG_KEYS: TranslationLangInfo = {\r\n [LANGUAGE.RU]: {\r\n code: 'ru',\r\n name: 'Русский',\r\n countries: [\r\n 'AZ',\r\n 'AM',\r\n 'BY',\r\n 'KZ',\r\n 'KG',\r\n 'MD',\r\n 'RU',\r\n 'TJ',\r\n 'TM',\r\n 'UZ',\r\n 'UA',\r\n ],\r\n },\r\n [LANGUAGE.EN]: {\r\n code: 'gb',\r\n name: 'English',\r\n countries: [],\r\n },\r\n [LANGUAGE.ES]: {\r\n code: 'es',\r\n name: 'Español',\r\n countries: [\r\n 'BZ',\r\n 'GT',\r\n 'HN',\r\n 'CR',\r\n 'PA',\r\n 'NI',\r\n 'SV',\r\n 'AR',\r\n 'CL',\r\n 'CO',\r\n 'EC',\r\n 'PY',\r\n 'PE',\r\n 'GY',\r\n 'ES',\r\n ],\r\n },\r\n [LANGUAGE.TR]: {\r\n code: 'tr',\r\n name: 'Türkçe',\r\n countries: ['TR'],\r\n },\r\n [LANGUAGE.PT]: {\r\n code: 'pt',\r\n name: 'Português',\r\n countries: ['PT', 'BR'],\r\n },\r\n};\r\n@Injectable()\r\nexport class TranslateLangStorageService {\r\n private _storage: LocalStorage = inject(LocalStorage);\r\n\r\n constructor() {\r\n }\r\n\r\n get languages() {\r\n return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];\r\n }\r\n\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private document = inject<Document>(DOCUMENT);\r\n private translateSrv = inject(TranslateService);\r\n\r\n readonly TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;\r\n\r\n private get location(): Location {\r\n return this.document.defaultView.location;\r\n }\r\n\r\n get onLangChange$(): EventEmitter<LangChangeEvent> {\r\n return this.translateSrv.onLangChange;\r\n }\r\n\r\n get currentLang(): string {\r\n return this.translateSrv.currentLang;\r\n }\r\n\r\n get queryLang(): string | null {\r\n return new URL(this.location.href).searchParams.get('language');\r\n }\r\n\r\n private get countryLanguage(): string | null {\r\n const code = this._storage.defaultCountry?.toUpperCase();\r\n if (!code) {\r\n return null;\r\n }\r\n return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang: LANGUAGE) => {\r\n const meta = this.TRANSLATION_LANG_KEYS[lang];\r\n return meta?.countries.some((c) => c.includes(code.toUpperCase()));\r\n });\r\n }\r\n\r\n setLanguage$(\r\n options: { save: boolean; lang?: string } = {save: true},\r\n ): Observable<any> {\r\n const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);\r\n let candidateLang = DEFAULT_LANG;\r\n const lang = options?.lang?.toLowerCase();\r\n const queryLang = this.queryLang?.toLowerCase();\r\n const storageLang = this._storage.defaultLang?.toLowerCase();\r\n const countryLang = this.countryLanguage?.toLowerCase();\r\n if (availableLanguages.includes(lang)) {\r\n candidateLang = lang;\r\n } else if (availableLanguages.includes(storageLang)) {\r\n candidateLang = storageLang;\r\n } else if (availableLanguages.includes(queryLang)) {\r\n candidateLang = queryLang;\r\n } else if (availableLanguages.includes(countryLang)) {\r\n candidateLang = countryLang;\r\n }\r\n if (!this.versionSrv.langs.includes(candidateLang as LANGUAGE)) {\r\n candidateLang = DEFAULT_LANG;\r\n }\r\n\r\n if (options?.save) {\r\n this._storage.saveDefaultLang(candidateLang);\r\n }\r\n\r\n return this.translateSrv.use(candidateLang);\r\n }\r\n}\r\n","import { Observable, of } from 'rxjs';\r\nimport { delay, first, map } from 'rxjs/operators';\r\n\r\nconst DELAY_INITIAL_LOADER_HIDING = 0;\r\nconst LOADER_HIDE_CSS_CLASS = 'trm-loader-init--hide';\r\n\r\nexport function hideInitLoader(): Observable<boolean> {\r\n return of(false).pipe(\r\n first(),\r\n map(() => {\r\n const loader = document.querySelector('.trm-loader-init');\r\n if (!loader) {\r\n return false;\r\n }\r\n loader.classList.add(LOADER_HIDE_CSS_CLASS);\r\n return true;\r\n }),\r\n delay(DELAY_INITIAL_LOADER_HIDING)\r\n );\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const insertRemoveTrigger = trigger('insertRemove', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate('150ms', style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n animate('150ms', style({ opacity: 0 }))\r\n ])\r\n])\r\n","export const removeSpecSymbols = (s) => s.replace(/[\\+\\(\\)\\-\\s]+/g, '');\r\nexport const PHONE_MASKS = [\r\n {\r\n mask: '+247-dddd',\r\n cc: 'AC',\r\n name_en: 'Ascension',\r\n desc_en: '',\r\n name_ru: 'Остров Вознесения',\r\n desc_ru: ''\r\n },\r\n { mask: '+376-ddd-ddd', cc: 'AD', name_en: 'Andorra', desc_en: '', name_ru: 'Андорра', desc_ru: '' },\r\n {\r\n mask: '+971-5d-ddd-dddd',\r\n cc: 'AE',\r\n name_en: 'United Arab Emirates',\r\n desc_en: 'mobile',\r\n name_ru: 'Объединенные Арабские Эмираты',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+971-d-ddd-dddd',\r\n cc: 'AE',\r\n name_en: 'United Arab Emirates',\r\n desc_en: '',\r\n name_ru: 'Объединенные Арабские Эмираты',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+93-dd-ddd-dddd',\r\n cc: 'AF',\r\n name_en: 'Afghanistan',\r\n desc_en: '',\r\n name_ru: 'Афганистан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (268) ddd-dddd',\r\n cc: 'AG',\r\n name_en: 'Antigua & Barbuda',\r\n desc_en: '',\r\n name_ru: 'Антигуа и Барбуда',\r\n desc_ru: ''\r\n },\r\n { mask: '+1 (264) ddd-dddd', cc: 'AI', name_en: 'Anguilla', desc_en: '', name_ru: 'Ангилья', desc_ru: '' },\r\n { mask: '+355 (ddd) ddd-ddd', cc: 'AL', name_en: 'Albania', desc_en: '', name_ru: 'Албания', desc_ru: '' },\r\n { mask: '+374-dd-ddd-ddd', cc: 'AM', name_en: 'Armenia', desc_en: '', name_ru: 'Армения', desc_ru: '' },\r\n {\r\n mask: '+599-ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Caribbean Netherlands',\r\n desc_en: '',\r\n name_ru: 'Карибские Нидерланды',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+599-ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Netherlands Antilles',\r\n desc_en: '',\r\n name_ru: 'Нидерландские Антильские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+599-9ddd-dddd',\r\n cc: 'AN',\r\n name_en: 'Netherlands Antilles',\r\n desc_en: 'Curacao',\r\n name_ru: 'Нидерландские Антильские острова',\r\n desc_ru: 'Кюрасао'\r\n },\r\n { mask: '+244 (ddd) ddd-ddd', cc: 'AO', name_en: 'Angola', desc_en: '', name_ru: 'Ангола', desc_ru: '' },\r\n {\r\n mask: '+672-1dd-ddd',\r\n cc: 'AQ',\r\n name_en: 'Australian bases in Antarctica',\r\n desc_en: '',\r\n name_ru: 'Австралийская антарктическая база',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+54 (ddd) ddd-dddd',\r\n cc: 'AR',\r\n name_en: 'Argentina',\r\n desc_en: '',\r\n name_ru: 'Аргентина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (684) ddd-dddd',\r\n cc: 'AS',\r\n name_en: 'American Samoa',\r\n desc_en: '',\r\n name_ru: 'Американское Самоа',\r\n desc_ru: ''\r\n },\r\n { mask: '+43 (ddd) ddd-dddd', cc: 'AT', name_en: 'Austria', desc_en: '', name_ru: 'Австрия', desc_ru: '' },\r\n { mask: '+61-d-dddd-dddd', cc: 'AU', name_en: 'Australia', desc_en: '', name_ru: 'Австралия', desc_ru: '' },\r\n { mask: '+297-ddd-dddd', cc: 'AW', name_en: 'Aruba', desc_en: '', name_ru: 'Аруба', desc_ru: '' },\r\n {\r\n mask: '+994-dd-ddd-dd-dd',\r\n cc: 'AZ',\r\n name_en: 'Azerbaijan',\r\n desc_en: '',\r\n name_ru: 'Азербайджан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+387-dd-ddddd',\r\n cc: 'BA',\r\n name_en: 'Bosnia and Herzegovina',\r\n desc_en: '',\r\n name_ru: 'Босния и Герцеговина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+387-dd-dddd',\r\n cc: 'BA',\r\n name_en: 'Bosnia and Herzegovina',\r\n desc_en: '',\r\n name_ru: 'Босния и Герцеговина',\r\n desc_ru: ''\r\n },\r\n { mask: '+1 (246) ddd-dddd', cc: 'BB', name_en: 'Barbados', desc_en: '', name_ru: 'Барбадос', desc_ru: '' },\r\n {\r\n mask: '+880-dd-ddd-ddd',\r\n cc: 'BD',\r\n name_en: 'Bangladesh',\r\n desc_en: '',\r\n name_ru: 'Бангладеш',\r\n desc_ru: ''\r\n },\r\n { mask: '+32 (ddd) ddd-ddd', cc: 'BE', name_en: 'Belgium', desc_en: '', name_ru: 'Бельгия', desc_ru: '' },\r\n {\r\n mask: '+226-dd-dd-dddd',\r\n cc: 'BF',\r\n name_en: 'Burkina Faso',\r\n desc_en: '',\r\n name_ru: 'Буркина Фасо',\r\n desc_ru: ''\r\n },\r\n { mask: '+359 (ddd) ddd-ddd', cc: 'BG', name_en: 'Bulgaria', desc_en: '', name_ru: 'Болгария', desc_ru: '' },\r\n { mask: '+973-dddd-dddd', cc: 'BH', name_en: 'Bahrain', desc_en: '', name_ru: 'Бахрейн', desc_ru: '' },\r\n { mask: '+257-dd-dd-dddd', cc: 'BI', name_en: 'Burundi', desc_en: '', name_ru: 'Бурунди', desc_ru: '' },\r\n { mask: '+229-dd-dd-dddd', cc: 'BJ', name_en: 'Benin', desc_en: '', name_ru: 'Бенин', desc_ru: '' },\r\n {\r\n mask: '+1 (441) ddd-dddd',\r\n cc: 'BM',\r\n name_en: 'Bermuda',\r\n desc_en: '',\r\n name_ru: 'Бермудские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+673-ddd-dddd',\r\n cc: 'BN',\r\n name_en: 'Brunei Darussalam',\r\n desc_en: '',\r\n name_ru: 'Бруней-Даруссалам',\r\n desc_ru: ''\r\n },\r\n { mask: '+591-d-ddd-dddd', cc: 'BO', name_en: 'Bolivia', desc_en: '', name_ru: 'Боливия', desc_ru: '' },\r\n { mask: '+55 (dd) dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n { mask: '+55 (dd) 9dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\r\n {\r\n mask: '+1 (242) ddd-dddd',\r\n cc: 'BS',\r\n name_en: 'Bahamas',\r\n desc_en: '',\r\n name_ru: 'Багамские Острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+975-17-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n { mask: '+975-d-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\r\n { mask: '+267-dd-ddd-ddd', cc: 'BW', name_en: 'Botswana', desc_en: '', name_ru: 'Ботсвана', desc_ru: '' },\r\n {\r\n mask: '+375 (dd) ddd-dd-dd',\r\n cc: 'BY',\r\n name_en: 'Belarus',\r\n desc_en: '',\r\n name_ru: 'Беларусь (Белоруссия) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+501-ddd-dddd', cc: 'BZ', name_en: 'Belize', desc_en: '', name_ru: 'Белиз', desc_ru: '' },\r\n {\r\n mask: '+243 (ddd) ddd-ddd',\r\n cc: 'CD',\r\n name_en: 'Dem. Rep. Congo',\r\n desc_en: '',\r\n name_ru: 'Дем. Респ. Конго (Киншаса) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+236-dd-dd-dddd',\r\n cc: 'CF',\r\n name_en: 'Central African Republic',\r\n desc_en: '',\r\n name_ru: 'Центральноафриканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+242-dd-ddd-dddd',\r\n cc: 'CG',\r\n name_en: 'Congo (Brazzaville) ',\r\n desc_en: '',\r\n name_ru: 'Конго (Браззавиль) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+41-dd-ddd-dddd',\r\n cc: 'CH',\r\n name_en: 'Switzerland',\r\n desc_en: '',\r\n name_ru: 'Швейцария',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+225-dd-ddd-ddd',\r\n cc: 'CI',\r\n name_en: 'Cote d’Ivoire (Ivory Coast) ',\r\n desc_en: '',\r\n name_ru: 'Кот-д’Ивуар',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+682-dd-ddd',\r\n cc: 'CK',\r\n name_en: 'Cook Islands',\r\n desc_en: '',\r\n name_ru: 'Острова Кука',\r\n desc_ru: ''\r\n },\r\n { mask: '+56-d-dddd-dddd', cc: 'CL', name_en: 'Chile', desc_en: '', name_ru: 'Чили', desc_ru: '' },\r\n { mask: '+237-dddd-dddd', cc: 'CM', name_en: 'Cameroon', desc_en: '', name_ru: 'Камерун', desc_ru: '' },\r\n {\r\n mask: '+86 (ddd) dddd-dddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+86 (ddd) dddd-ddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+86-dd-ddddd-ddddd',\r\n cc: 'CN',\r\n name_en: 'China (PRC) ',\r\n desc_en: '',\r\n name_ru: 'Китайская Н.Р.',\r\n desc_ru: ''\r\n },\r\n { mask: '+57 (ddd) ddd-dddd', cc: 'CO', name_en: 'Colombia', desc_en: '', name_ru: 'Колумбия', desc_ru: '' },\r\n {\r\n mask: '+506-dddd-dddd',\r\n cc: 'CR',\r\n name_en: 'Costa Rica',\r\n desc_en: '',\r\n name_ru: 'Коста-Рика',\r\n desc_ru: ''\r\n },\r\n { mask: '+53-d-ddd-dddd', cc: 'CU', name_en: 'Cuba', desc_en: '', name_ru: 'Куба', desc_ru: '' },\r\n {\r\n mask: '+238 (ddd) dd-dd',\r\n cc: 'CV',\r\n name_en: 'Cape Verde',\r\n desc_en: '',\r\n name_ru: 'Кабо-Верде',\r\n desc_ru: ''\r\n },\r\n { mask: '+599-ddd-dddd', cc: 'CW', name_en: 'Curacao', desc_en: '', name_ru: 'Кюрасао', desc_ru: '' },\r\n { mask: '+357-dd-ddd-ddd', cc: 'CY', name_en: 'Cyprus', desc_en: '', name_ru: 'Кипр', desc_ru: '' },\r\n {\r\n mask: '+420 (ddd) ddd-ddd',\r\n cc: 'CZ',\r\n name_en: 'Czech Republic',\r\n desc_en: '',\r\n name_ru: 'Чехия',\r\n desc_ru: ''\r\n },\r\n { mask: '+49 (dddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49 (ddd) dd-dd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+49-ddd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\r\n { mask: '+253-dd-dd-dd-dd', cc: 'DJ', name_en: 'Djibouti', desc_en: '', name_ru: 'Джибути', desc_ru: '' },\r\n { mask: '+45-dd-dd-dd-dd', cc: 'DK', name_en: 'Denmark', desc_en: '', name_ru: 'Дания', desc_ru: '' },\r\n { mask: '+1 (767) ddd-dddd', cc: 'DM', name_en: 'Dominica', desc_en: '', name_ru: 'Доминика', desc_ru: '' },\r\n {\r\n mask: '+1 (809) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (829) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (849) ddd-dddd',\r\n cc: 'DO',\r\n name_en: 'Dominican Republic',\r\n desc_en: '',\r\n name_ru: 'Доминиканская Республика',\r\n desc_ru: ''\r\n },\r\n { mask: '+213-dd-ddd-dddd', cc: 'DZ', name_en: 'Algeria', desc_en: '', name_ru: 'Алжир', desc_ru: '' },\r\n {\r\n mask: '+593-dd-ddd-dddd',\r\n cc: 'EC',\r\n name_en: 'Ecuador ',\r\n desc_en: 'mobile',\r\n name_ru: 'Эквадор ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+593-d-ddd-dddd', cc: 'EC', name_en: 'Ecuador', desc_en: '', name_ru: 'Эквадор', desc_ru: '' },\r\n {\r\n mask: '+372-dddd-dddd',\r\n cc: 'EE',\r\n name_en: 'Estonia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Эстония ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+372-ddd-dddd', cc: 'EE', name_en: 'Estonia', desc_en: '', name_ru: 'Эстония', desc_ru: '' },\r\n { mask: '+20 (ddd) ddd-dddd', cc: 'EG', name_en: 'Egypt', desc_en: '', name_ru: 'Египет', desc_ru: '' },\r\n { mask: '+291-d-ddd-ddd', cc: 'ER', name_en: 'Eritrea', desc_en: '', name_ru: 'Эритрея', desc_ru: '' },\r\n { mask: '+34 (ddd) ddd-ddd', cc: 'ES', name_en: 'Spain', desc_en: '', name_ru: 'Испания', desc_ru: '' },\r\n { mask: '+251-dd-ddd-dddd', cc: 'ET', name_en: 'Ethiopia', desc_en: '', name_ru: 'Эфиопия', desc_ru: '' },\r\n {\r\n mask: '+358 (ddd) ddd-dd-dd',\r\n cc: 'FI',\r\n name_en: 'Finland',\r\n desc_en: '',\r\n name_ru: 'Финляндия',\r\n desc_ru: ''\r\n },\r\n { mask: '+679-dd-ddddd', cc: 'FJ', name_en: 'Fiji', desc_en: '', name_ru: 'Фиджи', desc_ru: '' },\r\n {\r\n mask: '+500-ddddd',\r\n cc: 'FK',\r\n name_en: 'Falkland Islands',\r\n desc_en: '',\r\n name_ru: 'Фолклендские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+691-ddd-dddd',\r\n cc: 'FM',\r\n name_en: 'F.S. Micronesia',\r\n desc_en: '',\r\n name_ru: 'Ф.Ш. Микронезии',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+298-ddd-ddd',\r\n cc: 'FO',\r\n name_en: 'Faroe Islands',\r\n desc_en: '',\r\n name_ru: 'Фарерские острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+262-ddddd-dddd', cc: 'FR', name_en: 'Mayotte', desc_en: '', name_ru: 'Майотта', desc_ru: '' },\r\n { mask: '+33 (ddd) ddd-ddd', cc: 'FR', name_en: 'France', desc_en: '', name_ru: 'Франция', desc_ru: '' },\r\n {\r\n mask: '+508-dd-dddd',\r\n cc: 'FR',\r\n name_en: 'St Pierre & Miquelon',\r\n desc_en: '',\r\n name_ru: 'Сен-Пьер и Микелон',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+590 (ddd) ddd-ddd',\r\n cc: 'FR',\r\n name_en: 'Guadeloupe',\r\n desc_en: '',\r\n name_ru: 'Гваделупа',\r\n desc_ru: ''\r\n },\r\n { mask: '+241-d-dd-dd-dd', cc: 'GA', name_en: 'Gabon', desc_en: '', name_ru: 'Габон', desc_ru: '' },\r\n { mask: '+1 (473) ddd-dddd', cc: 'GD', name_en: 'Grenada', desc_en: '', name_ru: 'Гренада', desc_ru: '' },\r\n {\r\n mask: '+995 (ddd) ddd-ddd',\r\n cc: 'GE',\r\n name_en: 'Rep. of Georgia',\r\n desc_en: '',\r\n name_ru: 'Грузия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+594-ddddd-dddd',\r\n cc: 'GF',\r\n name_en: 'Guiana (French) ',\r\n desc_en: '',\r\n name_ru: 'Фр. Гвиана',\r\n desc_ru: ''\r\n },\r\n { mask: '+233 (ddd) ddd-ddd', cc: 'GH', name_en: 'Ghana', desc_en: '', name_ru: 'Гана', desc_ru: '' },\r\n { mask: '+350-ddd-ddddd', cc: 'GI', name_en: 'Gibraltar', desc_en: '', name_ru: 'Гибралтар', desc_ru: '' },\r\n { mask: '+299-dd-dd-dd', cc: 'GL', name_en: 'Greenland', desc_en: '', name_ru: 'Гренландия', desc_ru: '' },\r\n { mask: '+220 (ddd) dd-dd', cc: 'GM', name_en: 'Gambia', desc_en: '', name_ru: 'Гамбия', desc_ru: '' },\r\n { mask: '+224-dd-ddd-ddd', cc: 'GN', name_en: 'Guinea', desc_en: '', name_ru: 'Гвинея', desc_ru: '' },\r\n {\r\n mask: '+240-dd-ddd-dddd',\r\n cc: 'GQ',\r\n name_en: 'Equatorial Guinea',\r\n desc_en: '',\r\n name_ru: 'Экваториальная Гвинея',\r\n desc_ru: ''\r\n },\r\n { mask: '+30 (ddd) ddd-dddd', cc: 'GR', name_en: 'Greece', desc_en: '', name_ru: 'Греция', desc_ru: '' },\r\n { mask: '+502-d-ddd-dddd', cc: 'GT', name_en: 'Guatemala', desc_en: '', name_ru: 'Гватемала', desc_ru: '' },\r\n { mask: '+1 (671) ddd-dddd', cc: 'GU', name_en: 'Guam', desc_en: '', name_ru: 'Гуам', desc_ru: '' },\r\n {\r\n mask: '+245-d-dddddd',\r\n cc: 'GW',\r\n name_en: 'Guinea-Bissau',\r\n desc_en: '',\r\n name_ru: 'Гвинея-Бисау',\r\n desc_ru: ''\r\n },\r\n { mask: '+592-ddd-dddd', cc: 'GY', name_en: 'Guyana', desc_en: '', name_ru: 'Гайана', desc_ru: '' },\r\n { mask: '+852-dddd-dddd', cc: 'HK', name_en: 'Hong Kong', desc_en: '', name_ru: 'Гонконг', desc_ru: '' },\r\n { mask: '+504-dddd-dddd', cc: 'HN', name_en: 'Honduras', desc_en: '', name_ru: 'Гондурас', desc_ru: '' },\r\n { mask: '+385-dd-ddd-ddd', cc: 'HR', name_en: 'Croatia', desc_en: '', name_ru: 'Хорватия', desc_ru: '' },\r\n { mask: '+509-dd-dd-dddd', cc: 'HT', name_en: 'Haiti', desc_en: '', name_ru: 'Гаити', desc_ru: '' },\r\n { mask: '+36 (ddd) ddd-ddd', cc: 'HU', name_en: 'Hungary', desc_en: '', name_ru: 'Венгрия', desc_ru: '' },\r\n {\r\n mask: '+62 (8dd) ddd-dddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+62-dd-ddd-dd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n { mask: '+62-dd-ddd-ddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n { mask: '+62-dd-ddd-dddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\r\n {\r\n mask: '+62 (8dd) ddd-ddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+62 (8dd) ddd-dd-ddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+62 (8dd) dddd-ddddd',\r\n cc: 'ID',\r\n name_en: 'Indonesia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Индонезия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+353 (ddd) ddd-ddd', cc: 'IE', name_en: 'Ireland', desc_en: '', name_ru: 'Ирландия', desc_ru: '' },\r\n {\r\n mask: '+972-5d-ddd-dddd',\r\n cc: 'IL',\r\n name_en: 'Israel ',\r\n desc_en: 'mobile',\r\n name_ru: 'Израиль ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+972-d-ddd-dddd', cc: 'IL', name_en: 'Israel', desc_en: '', name_ru: 'Израиль', desc_ru: '' },\r\n { mask: '+91 (dddd) ddd-ddd', cc: 'IN', name_en: 'India', desc_en: '', name_ru: 'Индия', desc_ru: '' },\r\n {\r\n mask: '+246-ddd-dddd',\r\n cc: 'IO',\r\n name_en: 'Diego Garcia',\r\n desc_en: '',\r\n name_ru: 'Диего-Гарсия',\r\n desc_ru: ''\r\n },\r\n { mask: '+964 (ddd) ddd-dddd', cc: 'IQ', name_en: 'Iraq', desc_en: '', name_ru: 'Ирак', desc_ru: '' },\r\n { mask: '+98 (ddd) ddd-dddd', cc: 'IR', name_en: 'Iran', desc_en: '', name_ru: 'Иран', desc_ru: '' },\r\n { mask: '+354-ddd-dddd', cc: 'IS', name_en: 'Iceland', desc_en: '', name_ru: 'Исландия', desc_ru: '' },\r\n { mask: '+39 (ddd) dddd-ddd', cc: 'IT', name_en: 'Italy', desc_en: '', name_ru: 'Италия', desc_ru: '' },\r\n { mask: '+1 (876) ddd-dddd', cc: 'JM', name_en: 'Jamaica', desc_en: '', name_ru: 'Ямайка', desc_ru: '' },\r\n { mask: '+962-d-dddd-dddd', cc: 'JO', name_en: 'Jordan', desc_en: '', name_ru: 'Иордания', desc_ru: '' },\r\n {\r\n mask: '+81-dd-dddd-dddd',\r\n cc: 'JP',\r\n name_en: 'Japan ',\r\n desc_en: 'mobile',\r\n name_ru: 'Япония ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+81 (ddd) ddd-ddd', cc: 'JP', name_en: 'Japan', desc_en: '', name_ru: 'Япония', desc_ru: '' },\r\n { mask: '+254-ddd-dddddd', cc: 'KE', name_en: 'Kenya', desc_en: '', name_ru: 'Кения', desc_ru: '' },\r\n {\r\n mask: '+996 (ddd) ddd-ddd',\r\n cc: 'KG',\r\n name_en: 'Kyrgyzstan',\r\n desc_en: '',\r\n name_ru: 'Киргизия',\r\n desc_ru: ''\r\n },\r\n { mask: '+855-dd-ddd-ddd', cc: 'KH', name_en: 'Cambodia', desc_en: '', name_ru: 'Камбоджа', desc_ru: '' },\r\n { mask: '+686-dd-ddd', cc: 'KI', name_en: 'Kiribati', desc_en: '', name_ru: 'Кирибати', desc_ru: '' },\r\n { mask: '+269-dd-ddddd', cc: 'KM', name_en: 'Comoros', desc_en: '', name_ru: 'Коморы', desc_ru: '' },\r\n {\r\n mask: '+1 (869) ddd-dddd',\r\n cc: 'KN',\r\n name_en: 'Saint Kitts & Nevis',\r\n desc_en: '',\r\n name_ru: 'Сент-Китс и Невис',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-191-ddd-dddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: 'mobile',\r\n name_ru: 'Корейская НДР ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+850-dd-ddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-ddd-dddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-ddd-ddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-dddd-dddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+850-dddd-ddddddddddddd',\r\n cc: 'KP',\r\n name_en: 'DPR Korea (North) ',\r\n desc_en: '',\r\n name_ru: 'Корейская НДР',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+82-dd-ddd-dddd',\r\n cc: 'KR',\r\n name_en: 'Korea (South) ',\r\n desc_en: '',\r\n name_ru: 'Респ. Корея',\r\n desc_ru: ''\r\n },\r\n { mask: '+965-dddd-dddd', cc: 'KW', name_en: 'Kuwait', desc_en: '', name_ru: 'Кувейт', desc_ru: '' },\r\n {\r\n mask: '+1 (345) ddd-dddd',\r\n cc: 'KY',\r\n name_en: 'Cayman Islands',\r\n desc_en: '',\r\n name_ru: 'Каймановы острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+7 (6dd) ddd-dd-dd',\r\n cc: 'KZ',\r\n name_en: 'Kazakhstan',\r\n desc_en: '',\r\n name_ru: 'Казахстан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+7 (7dd) ddd-dd-dd',\r\n cc: 'KZ',\r\n name_en: 'Kazakhstan',\r\n desc_en: '',\r\n name_ru: 'Казахстан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+856 (20dd) ddd-ddd',\r\n cc: 'LA',\r\n name_en: 'Laos ',\r\n desc_en: 'mobile',\r\n name_ru: 'Лаос ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+856-dd-ddd-ddd', cc: 'LA', name_en: 'Laos', desc_en: '', name_ru: 'Лаос', desc_ru: '' },\r\n {\r\n mask: '+961-dd-ddd-ddd',\r\n cc: 'LB',\r\n name_en: 'Lebanon ',\r\n desc_en: 'mobile',\r\n name_ru: 'Ливан ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+961-d-ddd-ddd', cc: 'LB', name_en: 'Lebanon', desc_en: '', name_ru: 'Ливан', desc_ru: '' },\r\n {\r\n mask: '+1 (758) ddd-dddd',\r\n cc: 'LC',\r\n name_en: 'Saint Lucia',\r\n desc_en: '',\r\n name_ru: 'Сент-Люсия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+423 (ddd) ddd-dddd',\r\n cc: 'LI',\r\n name_en: 'Liechtenstein',\r\n desc_en: '',\r\n name_ru: 'Лихтенштейн',\r\n desc_ru: ''\r\n },\r\n { mask: '+94-dd-ddd-dddd', cc: 'LK', name_en: 'Sri Lanka', desc_en: '', name_ru: 'Шри-Ланка', desc_ru: '' },\r\n { mask: '+231-dd-ddd-ddd', cc: 'LR', name_en: 'Liberia', desc_en: '', name_ru: 'Либерия', desc_ru: '' },\r\n { mask: '+266-d-ddd-dddd', cc: 'LS', name_en: 'Lesotho', desc_en: '', name_ru: 'Лесото', desc_ru: '' },\r\n { mask: '+370 (ddd) dd-ddd', cc: 'LT', name_en: 'Lithuania', desc_en: '', name_ru: 'Литва', desc_ru: '' },\r\n {\r\n mask: '+352 (ddd) ddd-ddd',\r\n cc: 'LU',\r\n name_en: 'Luxembourg',\r\n desc_en: '',\r\n name_ru: 'Люксембург',\r\n desc_ru: ''\r\n },\r\n { mask: '+371-dd-ddd-ddd', cc: 'LV', name_en: 'Latvia', desc_en: '', name_ru: 'Латвия', desc_ru: '' },\r\n { mask: '+218-dd-ddd-ddd', cc: 'LY', name_en: 'Libya', desc_en: '', name_ru: 'Ливия', desc_ru: '' },\r\n {\r\n mask: '+218-21-ddd-dddd',\r\n cc: 'LY',\r\n name_en: 'Libya',\r\n desc_en: 'Tripoli',\r\n name_ru: 'Ливия',\r\n desc_ru: 'Триполи'\r\n },\r\n { mask: '+212-dd-dddd-ddd', cc: 'MA', name_en: 'Morocco', desc_en: '', name_ru: 'Марокко', desc_ru: '' },\r\n { mask: '+377 (ddd) ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n { mask: '+377-dd-ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\r\n { mask: '+373-dddd-dddd', cc: 'MD', name_en: 'Moldova', desc_en: '', name_ru: 'Молдова', desc_ru: '' },\r\n {\r\n mask: '+382-dd-ddd-ddd',\r\n cc: 'ME',\r\n name_en: 'Montenegro',\r\n desc_en: '',\r\n name_ru: 'Черногория',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+261-dd-dd-ddddd',\r\n cc: 'MG',\r\n name_en: 'Madagascar',\r\n desc_en: '',\r\n name_ru: 'Мадагаскар',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+692-ddd-dddd',\r\n cc: 'MH',\r\n name_en: 'Marshall Islands',\r\n desc_en: '',\r\n name_ru: 'Маршалловы Острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+389-dd-ddd-ddd',\r\n cc: 'MK',\r\n name_en: 'Republic of Macedonia',\r\n desc_en: '',\r\n name_ru: 'Респ. Македония',\r\n desc_ru: ''\r\n },\r\n { mask: '+223-dd-dd-dddd', cc: 'ML', name_en: 'Mali', desc_en: '', name_ru: 'Мали', desc_ru: '' },\r\n {\r\n mask: '+95-dd-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+95-d-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+95-ddd-ddd',\r\n cc: 'MM',\r\n name_en: 'Burma (Myanmar) ',\r\n desc_en: '',\r\n name_ru: 'Бирма (Мьянма) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+976-dd-dd-dddd', cc: 'MN', name_en: 'Mongolia', desc_en: '', name_ru: 'Монголия', desc_ru: '' },\r\n { mask: '+853-dddd-dddd', cc: 'MO', name_en: 'Macau', desc_en: '', name_ru: 'Макао', desc_ru: '' },\r\n {\r\n mask: '+1 (670) ddd-dddd',\r\n cc: 'MP',\r\n name_en: 'Northern Mariana Islands',\r\n desc_en: '',\r\n name_ru: 'Северные Марианские острова Сайпан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+596 (ddd) dd-dd-dd',\r\n cc: 'MQ',\r\n name_en: 'Martinique',\r\n desc_en: '',\r\n name_ru: 'Мартиника',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+222-dd-dd-dddd',\r\n cc: 'MR',\r\n name_en: 'Mauritania',\r\n desc_en: '',\r\n name_ru: 'Мавритания',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (664) ddd-dddd',\r\n cc: 'MS',\r\n name_en: 'Montserrat',\r\n desc_en: '',\r\n name_ru: 'Монтсеррат',\r\n desc_ru: ''\r\n },\r\n { mask: '+356-dddd-dddd', cc: 'MT', name_en: 'Malta', desc_en: '', name_ru: 'Мальта', desc_ru: '' },\r\n { mask: '+230-ddd-dddd', cc: 'MU', name_en: 'Mauritius', desc_en: '', name_ru: 'Маврикий', desc_ru: '' },\r\n {\r\n mask: '+960-ddd-dddd',\r\n cc: 'MV',\r\n name_en: 'Maldives',\r\n desc_en: '',\r\n name_ru: 'Мальдивские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+265-1-ddd-ddd',\r\n cc: 'MW',\r\n name_en: 'Malawi',\r\n desc_en: 'Telecom Ltd',\r\n name_ru: 'Малави',\r\n desc_ru: 'Telecom Ltd'\r\n },\r\n { mask: '+265-d-dddd-dddd', cc: 'MW', name_en: 'Malawi', desc_en: '', name_ru: 'Малави', desc_ru: '' },\r\n { mask: '+52 (ddd) ddd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n { mask: '+52-dd-dd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\r\n { mask: '+60 (ddd) ddd-dddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n {\r\n mask: '+60-ddd-ddd-ddd',\r\n cc: 'MY',\r\n name_en: 'Malaysia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Малайзия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+60-dd-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n { mask: '+60-d-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\r\n { mask: '+258-dd-ddd-ddd', cc: 'MZ', name_en: 'Mozambique', desc_en: '', name_ru: 'Мозамбик', desc_ru: '' },\r\n { mask: '+264-dd-ddd-dddd', cc: 'NA', name_en: 'Namibia', desc_en: '', name_ru: 'Намибия', desc_ru: '' },\r\n {\r\n mask: '+687-dd-dddd',\r\n cc: 'NC',\r\n name_en: 'New Caledonia',\r\n desc_en: '',\r\n name_ru: 'Новая Каледония',\r\n desc_ru: ''\r\n },\r\n { mask: '+227-dd-dd-dddd', cc: 'NE', name_en: 'Niger', desc_en: '', name_ru: 'Нигер', desc_ru: '' },\r\n {\r\n mask: '+672-3dd-ddd',\r\n cc: 'NF',\r\n name_en: 'Norfolk Island',\r\n desc_en: '',\r\n name_ru: 'Норфолк (остров) ',\r\n desc_ru: ''\r\n },\r\n { mask: '+234 (ddd) ddd-dddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n { mask: '+234-dd-ddd-ddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n { mask: '+234-dd-ddd-dd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\r\n {\r\n mask: '+234 (ddd) ddd-dddd',\r\n cc: 'NG',\r\n name_en: 'Nigeria ',\r\n desc_en: 'mobile',\r\n name_ru: 'Нигерия ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+505-dddd-dddd', cc: 'NI', name_en: 'Nicaragua', desc_en: '', name_ru: 'Никарагуа', desc_ru: '' },\r\n {\r\n mask: '+31-dd-ddd-dddd',\r\n cc: 'NL',\r\n name_en: 'Netherlands',\r\n desc_en: '',\r\n name_ru: 'Нидерланды',\r\n desc_ru: ''\r\n },\r\n { mask: '+47 (ddd) dd-ddd', cc: 'NO', name_en: 'Norway', desc_en: '', name_ru: 'Норвегия', desc_ru: '' },\r\n { mask: '+977-dd-ddd-ddd', cc: 'NP', name_en: 'Nepal', desc_en: '', name_ru: 'Непал', desc_ru: '' },\r\n { mask: '+674-ddd-dddd', cc: 'NR', name_en: 'Nauru', desc_en: '', name_ru: 'Науру', desc_ru: '' },\r\n { mask: '+683-dddd', cc: 'NU', name_en: 'Niue', desc_en: '', name_ru: 'Ниуэ', desc_ru: '' },\r\n {\r\n mask: '+64 (ddd) ddd-ddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+64-dd-ddd-ddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+64 (ddd) ddd-dddd',\r\n cc: 'NZ',\r\n name_en: 'New Zealand',\r\n desc_en: '',\r\n name_ru: 'Новая Зеландия',\r\n desc_ru: ''\r\n },\r\n { mask: '+968-dd-ddd-ddd', cc: 'OM', name_en: 'Oman', desc_en: '', name_ru: 'Оман', desc_ru: '' },\r\n { mask: '+507-ddd-dddd', cc: 'PA', name_en: 'Panama', desc_en: '', name_ru: 'Панама', desc_ru: '' },\r\n { mask: '+51 (ddd) ddd-ddd', cc: 'PE', name_en: 'Peru', desc_en: '', name_ru: 'Перу', desc_ru: '' },\r\n {\r\n mask: '+689-dd-dd-dd',\r\n cc: 'PF',\r\n name_en: 'French Polynesia',\r\n desc_en: '',\r\n name_ru: 'Французская Полинезия (Таити) ',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+675 (ddd) dd-ddd',\r\n cc: 'PG',\r\n name_en: 'Papua New Guinea',\r\n desc_en: '',\r\n name_ru: 'Папуа-Новая Гвинея',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+63 (ddd) ddd-dddd',\r\n cc: 'PH',\r\n name_en: 'Philippines',\r\n desc_en: '',\r\n name_ru: 'Филиппины',\r\n desc_ru: ''\r\n },\r\n { mask: '+92 (ddd) ddd-dddd', cc: 'PK', name_en: 'Pakistan', desc_en: '', name_ru: 'Пакистан', desc_ru: '' },\r\n { mask: '+48 (ddd) ddd-ddd', cc: 'PL', name_en: 'Poland', desc_en: '', name_ru: 'Польша', desc_ru: '' },\r\n {\r\n mask: '+970-dd-ddd-dddd',\r\n cc: 'PS',\r\n name_en: 'Palestine',\r\n desc_en: '',\r\n name_ru: 'Палестина',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+351-dd-ddd-dddd',\r\n cc: 'PT',\r\n name_en: 'Portugal',\r\n desc_en: '',\r\n name_ru: 'Португалия',\r\n desc_ru: ''\r\n },\r\n { mask: '+680-ddd-dddd', cc: 'PW', name_en: 'Palau', desc_en: '', name_ru: 'Палау', desc_ru: '' },\r\n { mask: '+595 (ddd) ddd-ddd', cc: 'PY', name_en: 'Paraguay', desc_en: '', name_ru: 'Парагвай', desc_ru: '' },\r\n { mask: '+974-dddd-dddd', cc: 'QA', name_en: 'Qatar', desc_en: '', name_ru: 'Катар', desc_ru: '' },\r\n { mask: '+262-ddddd-dddd', cc: 'RE', name_en: 'Reunion', desc_en: '', name_ru: 'Реюньон', desc_ru: '' },\r\n { mask: '+40-dd-ddd-dddd', cc: 'RO', name_en: 'Romania', desc_en: '', name_ru: 'Румыния', desc_ru: '' },\r\n { mask: '+381-dd-ddd-dddd', cc: 'RS', name_en: 'Serbia', desc_en: '', name_ru: 'Сербия', desc_ru: '' },\r\n { mask: '+7 (ddd) ddd-dd-dd', cc: 'RU', name_en: 'Russia', desc_en: '', name_ru: 'Россия', desc_ru: '' },\r\n { mask: '+250 (ddd) ddd-ddd', cc: 'RW', name_en: 'Rwanda', desc_en: '', name_ru: 'Руанда', desc_ru: '' },\r\n {\r\n mask: '+966-5-dddd-dddd',\r\n cc: 'SA',\r\n name_en: 'Saudi Arabia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Саудовская Аравия ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+966-d-ddd-dddd',\r\n cc: 'SA',\r\n name_en: 'Saudi Arabia',\r\n desc_en: '',\r\n name_ru: 'Саудовская Аравия',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+677-ddd-dddd',\r\n cc: 'SB',\r\n name_en: 'Solomon Islands ',\r\n desc_en: 'mobile',\r\n name_ru: 'Соломоновы Острова ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+677-ddddd',\r\n cc: 'SB',\r\n name_en: 'Solomon Islands',\r\n desc_en: '',\r\n name_ru: 'Соломоновы Острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+248-d-ddd-ddd', cc: 'SC', name_en: 'Seychelles', desc_en: '', name_ru: 'Сейшелы', desc_ru: '' },\r\n { mask: '+249-dd-ddd-dddd', cc: 'SD', name_en: 'Sudan', desc_en: '', name_ru: 'Судан', desc_ru: '' },\r\n { mask: '+46-dd-ddd-dddd', cc: 'SE', name_en: 'Sweden', desc_en: '', name_ru: 'Швеция', desc_ru: '' },\r\n { mask: '+65-dddd-dddd', cc: 'SG', name_en: 'Singapore', desc_en: '', name_ru: 'Сингапур', desc_ru: '' },\r\n {\r\n mask: '+290-dddd',\r\n cc: 'SH',\r\n name_en: 'Saint Helena',\r\n desc_en: '',\r\n name_ru: 'Остров Святой Елены',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+290-dddd',\r\n cc: 'SH',\r\n name_en: 'Tristan da Cunha',\r\n desc_en: '',\r\n name_ru: 'Тристан-да-Кунья',\r\n desc_ru: ''\r\n },\r\n { mask: '+386-dd-ddd-ddd', cc: 'SI', name_en: 'Slovenia', desc_en: '', name_ru: 'Словения', desc_ru: '' },\r\n { mask: '+421 (ddd) ddd-ddd', cc: 'SK', name_en: 'Slovakia', desc_en: '', name_ru: 'Словакия', desc_ru: '' },\r\n {\r\n mask: '+232-dd-dddddd',\r\n cc: 'SL',\r\n name_en: 'Sierra Leone',\r\n desc_en: '',\r\n name_ru: 'Сьерра-Леоне',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+378-dddd-dddddd',\r\n cc: 'SM',\r\n name_en: 'San Marino',\r\n desc_en: '',\r\n name_ru: 'Сан-Марино',\r\n desc_ru: ''\r\n },\r\n { mask: '+221-dd-ddd-dddd', cc: 'SN', name_en: 'Senegal', desc_en: '', name_ru: 'Сенегал', desc_ru: '' },\r\n { mask: '+252-dd-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n { mask: '+252-d-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\r\n {\r\n mask: '+252-d-ddd-ddd',\r\n cc: 'SO',\r\n name_en: 'Somalia ',\r\n desc_en: 'mobile',\r\n name_ru: 'Сомали ',\r\n desc_ru: 'мобильные'\r\n },\r\n {\r\n mask: '+597-ddd-dddd',\r\n cc: 'SR',\r\n name_en: 'Suriname ',\r\n desc_en: 'mobile',\r\n name_ru: 'Суринам ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+597-ddd-ddd', cc: 'SR', name_en: 'Suriname', desc_en: '', name_ru: 'Суринам', desc_ru: '' },\r\n {\r\n mask: '+211-dd-ddd-dddd',\r\n cc: 'SS',\r\n name_en: 'South Sudan',\r\n desc_en: '',\r\n name_ru: 'Южный Судан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+239-dd-ddddd',\r\n cc: 'ST',\r\n name_en: 'Sao Tome and Principe',\r\n desc_en: '',\r\n name_ru: 'Сан-Томе и Принсипи',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+503-dd-dd-dddd',\r\n cc: 'SV',\r\n name_en: 'El Salvador',\r\n desc_en: '',\r\n name_ru: 'Сальвадор',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (721) ddd-dddd',\r\n cc: 'SX',\r\n name_en: 'Sint Maarten',\r\n desc_en: '',\r\n name_ru: 'Синт-Маартен',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+963-dd-dddd-ddd',\r\n cc: 'SY',\r\n name_en: 'Syrian Arab Republic',\r\n desc_en: '',\r\n name_ru: 'Сирийская арабская республика',\r\n desc_ru: ''\r\n },\r\n { mask: '+268-dd-dd-dddd', cc: 'SZ', name_en: 'Swaziland', desc_en: '', name_ru: 'Свазиленд', desc_ru: '' },\r\n {\r\n mask: '+1 (649) ddd-dddd',\r\n cc: 'TC',\r\n name_en: 'Turks & Caicos',\r\n desc_en: '',\r\n name_ru: 'Тёркс и Кайкос',\r\n desc_ru: ''\r\n },\r\n { mask: '+235-dd-dd-dd-dd', cc: 'TD', name_en: 'Chad', desc_en: '', name_ru: 'Чад', desc_ru: '' },\r\n { mask: '+228-dd-ddd-ddd', cc: 'TG', name_en: 'Togo', desc_en: '', name_ru: 'Того', desc_ru: '' },\r\n {\r\n mask: '+66-dd-ddd-dddd',\r\n cc: 'TH',\r\n name_en: 'Thailand ',\r\n desc_en: 'mobile',\r\n name_ru: 'Таиланд ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+66-dd-ddd-ddd', cc: 'TH', name_en: 'Thailand', desc_en: '', name_ru: 'Таиланд', desc_ru: '' },\r\n {\r\n mask: '+992-dd-ddd-dddd',\r\n cc: 'TJ',\r\n name_en: 'Tajikistan',\r\n desc_en: '',\r\n name_ru: 'Таджикистан',\r\n desc_ru: ''\r\n },\r\n { mask: '+690-dddd', cc: 'TK', name_en: 'Tokelau', desc_en: '', name_ru: 'Токелау', desc_ru: '' },\r\n {\r\n mask: '+670-ddd-dddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: '',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+670-77d-ddddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: 'Timor Telecom',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: 'Timor Telecom'\r\n },\r\n {\r\n mask: '+670-78d-ddddd',\r\n cc: 'TL',\r\n name_en: 'East Timor',\r\n desc_en: 'Timor Telecom',\r\n name_ru: 'Восточный Тимор',\r\n desc_ru: 'Timor Telecom'\r\n },\r\n {\r\n mask: '+993-d-ddd-dddd',\r\n cc: 'TM',\r\n name_en: 'Turkmenistan',\r\n desc_en: '',\r\n name_ru: 'Туркменистан',\r\n desc_ru: ''\r\n },\r\n { mask: '+216-dd-ddd-ddd', cc: 'TN', name_en: 'Tunisia', desc_en: '', name_ru: 'Тунис', desc_ru: '' },\r\n { mask: '+676-ddddd', cc: 'TO', name_en: 'Tonga', desc_en: '', name_ru: 'Тонга', desc_ru: '' },\r\n { mask: '+90 (ddd) ddd-dddd', cc: 'TR', name_en: 'Turkey', desc_en: '', name_ru: 'Турция', desc_ru: '' },\r\n {\r\n mask: '+1 (868) ddd-dddd',\r\n cc: 'TT',\r\n name_en: 'Trinidad & Tobago',\r\n desc_en: '',\r\n name_ru: 'Тринидад и Тобаго',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+688-90dddd',\r\n cc: 'TV',\r\n name_en: 'Tuvalu ',\r\n desc_en: 'mobile',\r\n name_ru: 'Тувалу ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+688-2dddd', cc: 'TV', name_en: 'Tuvalu', desc_en: '', name_ru: 'Тувалу', desc_ru: '' },\r\n { mask: '+886-d-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n { mask: '+886-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\r\n { mask: '+255-dd-ddd-dddd', cc: 'TZ', name_en: 'Tanzania', desc_en: '', name_ru: 'Танзания', desc_ru: '' },\r\n { mask: '+380 (dd) ddd-dd-dd', cc: 'UA', name_en: 'Ukraine', desc_en: '', name_ru: 'Украина', desc_ru: '' },\r\n { mask: '+256 (ddd) ddd-ddd', cc: 'UG', name_en: 'Uganda', desc_en: '', name_ru: 'Уганда', desc_ru: '' },\r\n {\r\n mask: '+44-dd-dddd-dddd',\r\n cc: 'UK',\r\n name_en: 'United Kingdom',\r\n desc_en: '',\r\n name_ru: 'Великобритания',\r\n desc_ru: ''\r\n },\r\n { mask: '+598-d-ddd-dd-dd', cc: 'UY', name_en: 'Uruguay', desc_en: '', name_ru: 'Уругвай', desc_ru: '' },\r\n {\r\n mask: '+998-dd-ddd-dddd',\r\n cc: 'UZ',\r\n name_en: 'Uzbekistan',\r\n desc_en: '',\r\n name_ru: 'Узбекистан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+39-6-698-ddddd',\r\n cc: 'VA',\r\n name_en: 'Vatican City',\r\n desc_en: '',\r\n name_ru: 'Ватикан',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (784) ddd-dddd',\r\n cc: 'VC',\r\n name_en: 'Saint Vincent & the Grenadines',\r\n desc_en: '',\r\n name_ru: 'Сент-Винсент и Гренадины',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+58 (ddd) ddd-dddd',\r\n cc: 'VE',\r\n name_en: 'Venezuela',\r\n desc_en: '',\r\n name_ru: 'Венесуэла',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (284) ddd-dddd',\r\n cc: 'VG',\r\n name_en: 'British Virgin Islands',\r\n desc_en: '',\r\n name_ru: 'Британские Виргинские острова',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (340) ddd-dddd',\r\n cc: 'VI',\r\n name_en: 'US Virgin Islands',\r\n desc_en: '',\r\n name_ru: 'Американские Виргинские острова',\r\n desc_ru: ''\r\n },\r\n { mask: '+84-dd-dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n { mask: '+84 (ddd) dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\r\n {\r\n mask: '+678-dd-ddddd',\r\n cc: 'VU',\r\n name_en: 'Vanuatu ',\r\n desc_en: 'mobile',\r\n name_ru: 'Вануату ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+678-ddddd', cc: 'VU', name_en: 'Vanuatu', desc_en: '', name_ru: 'Вануату', desc_ru: '' },\r\n {\r\n mask: '+681-dd-dddd',\r\n cc: 'WF',\r\n name_en: 'Wallis and Futuna',\r\n desc_en: '',\r\n name_ru: 'Уоллис и Футуна',\r\n desc_ru: ''\r\n },\r\n { mask: '+685-dd-dddd', cc: 'WS', name_en: 'Samoa', desc_en: '', name_ru: 'Самоа', desc_ru: '' },\r\n {\r\n mask: '+967-ddd-ddd-ddd',\r\n cc: 'YE',\r\n name_en: 'Yemen ',\r\n desc_en: 'mobile',\r\n name_ru: 'Йемен ',\r\n desc_ru: 'мобильные'\r\n },\r\n { mask: '+967-d-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n { mask: '+967-dd-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\r\n {\r\n mask: '+27-dd-ddd-dddd',\r\n cc: 'ZA',\r\n name_en: 'South Africa',\r\n desc_en: '',\r\n name_ru: 'Южно-Африканская Респ.',\r\n desc_ru: ''\r\n },\r\n { mask: '+260-dd-ddd-dddd', cc: 'ZM', name_en: 'Zambia', desc_en: '', name_ru: 'Замбия', desc_ru: '' },\r\n { mask: '+263-d-dddddd', cc: 'ZW', name_en: 'Zimbabwe', desc_en: '', name_ru: 'Зимбабве', desc_ru: '' },\r\n {\r\n mask: '+1 (ddd) ddd-dddd',\r\n cc: 'CA',\r\n name_en: 'Canada',\r\n desc_en: '',\r\n name_ru: 'Канада',\r\n desc_ru: ''\r\n },\r\n {\r\n mask: '+1 (ddd) ddd-dddd',\r\n cc: 'US',\r\n name_en: 'USA',\r\n desc_en: '',\r\n name_ru: 'США',\r\n desc_ru: ''\r\n }\r\n]\r\n .map(m => m.mask)\r\n .sort((a, b) => {\r\n a = removeSpecSymbols(a);\r\n b = removeSpecSymbols(b)\r\n return a > b ? 1 : (a === b ? 0 : -1);\r\n });\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { PaymentField } from '../pages/components/constructor-form/models';\r\nimport { PHONE_MASKS, removeSpecSymbols } from './phone-codes';\r\n\r\nexport enum MASKS {\r\n CPF = 'CPF',\r\n CPF_CNPJ = 'CPF_CNPJ',\r\n PHONE = 'PHONE',\r\n CI = 'CI',\r\n CURP = 'CURP',\r\n CUIT_DNI = 'CUIT_DNI',\r\n CC = 'CC'\r\n}\r\n\r\nexport const INITIAL_PHONE_MASK = '+D';\r\nexport const PHONE_MASK_PATTERNS = {\r\n 'D': {\r\n pattern: /\\d/\r\n },\r\n '9': {\r\n pattern: /\\d/,\r\n optional: true\r\n }\r\n};\r\n\r\n\r\n@Injectable()\r\nexport class MaskResolver {\r\n private maskService = inject(NgxMaskService);\r\n\r\n constructor() {\r\n }\r\n\r\n getMaskPattern(mask: string, value?: string) {\r\n switch (mask) {\r\n case MASKS.PHONE:\r\n return (...args) => this.calcMask(...args);\r\n case MASKS.CPF_CNPJ:\r\n if (value?.length > 11) {\r\n return '00.000.000/0000-00';\r\n }\r\n return '000.000.000-009';\r\n case MASKS.CI:\r\n return '0000000000';\r\n case MASKS.CURP:\r\n return 'SSSS000000SSSSSS00';\r\n case MASKS.CUIT_DNI:\r\n return '00-00000000-0||00-000-000';\r\n case MASKS.CC:\r\n return '0000000000000000';\r\n case MASKS.CPF:\r\n return '000.000.000-00';\r\n default:\r\n return mask;\r\n }\r\n }\r\n\r\n getMaskByValue(mask: string, value?: string) {\r\n const maskValue = this.getMaskPattern(mask, value);\r\n if (typeof maskValue === 'function') {\r\n return maskValue.call(null, value) || null;\r\n } else {\r\n return maskValue || null;\r\n }\r\n }\r\n\r\n getPatterns(config: PaymentField) {\r\n if (config?.mask === MASKS.PHONE) {\r\n return PHONE_MASK_PATTERNS;\r\n }\r\n if (config?.maskPatterns) {\r\n return config?.maskPatterns;\r\n }\r\n return this.maskService.patterns;\r\n }\r\n\r\n getSpecialCharacters(config: PaymentField) {\r\n return config?.specialCharacters || this.maskService.specialCharacters;\r\n }\r\n\r\n\r\n private calcMask(value?: string) {\r\n let mask = INITIAL_PHONE_MASK\r\n if (value) {\r\n const valueArray = Array.from(removeSpecSymbols(value));\r\n let masks: string[] = PHONE_MASKS;\r\n for (let sIndex = 0; sIndex < valueArray.length; sIndex++) {\r\n const s = valueArray[sIndex];\r\n const filteredMasks = masks.filter((m) => {\r\n const maskValue = removeSpecSymbols(m);\r\n const maskSymbol = maskValue[sIndex];\r\n if (/\\d/.test(maskSymbol)) {\r\n return maskSymbol === s;\r\n }\r\n return !!maskSymbol;\r\n });\r\n if (filteredMasks.length > 0) {\r\n masks = filteredMasks;\r\n } else {\r\n break;\r\n }\r\n }\r\n // Candidate of mask\r\n mask = masks[0];\r\n\r\n // Calculation of the additional numbers\r\n let masksNormalized: string[] = masks.map(m => removeSpecSymbols(m));\r\n let maskNormalized = removeSpecSymbols(mask);\r\n const optionalSymbols = masksNormalized.filter(s => s.startsWith(maskNormalized) && s.length > maskNormalized.length).length;\r\n if (optionalSymbols) {\r\n mask += Array(optionalSymbols).fill('[d]').join('');\r\n }\r\n }\r\n mask = mask.replace(/[d\\d]/g, 'D').replace(/\\[D]/g, '9');\r\n return mask;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nfunction sortByTabIndex(list: HTMLElement[]): HTMLElement[] {\r\n return list.sort((a, b) => {\r\n const index1 = +a.getAttribute('tabindex');\r\n const index2 = +b.getAttribute('tabindex');\r\n if (index1<index2) {\r\n return -1;\r\n }\r\n if (index1>index2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FocusHandler {\r\n static document: Document;\r\n private static get focusableList(): HTMLElement[] {\r\n return sortByTabIndex(\r\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]'))\r\n );\r\n }\r\n private static get focusableEnabledList(): HTMLElement[] {\r\n return sortByTabIndex(\r\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]:not([class*=\"--disabled\"])'))\r\n );\r\n }\r\n static previous(ev?: Event) {\r\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n const index = focusedElement?.getAttribute('tabindex');\r\n const focusableList = this.focusableList;\r\n if (index === null) {\r\n focusableList.pop()?.focus();\r\n ev?.preventDefault();\r\n return;\r\n }\r\n for (let i=0; i < focusableList.length; i++) {\r\n const element = focusableList[i];\r\n if (element === focusedElement) {\r\n const prev = focusableList[i - 1];\r\n if (prev) {\r\n ev?.preventDefault();\r\n prev.focus();\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n static next(ev?: Event) {\r\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\r\n const index = focusedElement?.getAttribute('tabindex');\r\n const focusableList = this.focusableList;\r\n if (index === null) {\r\n focusableList.shift()?.focus();\r\n ev?.preventDefault();\r\n return;\r\n }\r\n for (let i=0; i < focusableList.length; i++) {\r\n const element = focusableList[i];\r\n if (element === focusedElement) {\r\n const next = focusableList[i + 1];\r\n if (next) {\r\n ev?.preventDefault();\r\n next.focus();\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n static previousEnabled(ev?: Event) {\r\n this.previous.call({\r\n focusableList: this.focusableEnabledList\r\n }, ev);\r\n }\r\n static nextEnabled(ev?: Event) {\r\n this.next.call({\r\n focusableList: this.focusableEnabledList\r\n }, ev);\r\n }\r\n\r\n constructor() {\r\n FocusHandler.document = inject(DOCUMENT);\r\n }\r\n}\r\n","export const isObjectTheSame = (object1, object2) => {\r\n if (object1 === object2) {\r\n return true;\r\n }\r\n if (!object1 && object2 || object1 && !object2) {\r\n return false;\r\n }\r\n const objKeys1 = Object.keys(object1);\r\n const objKeys2 = Object.keys(object2);\r\n\r\n if (objKeys1.length !== objKeys2.length) return false;\r\n\r\n for (var key of objKeys1) {\r\n const value1 = object1[key];\r\n const value2 = object2[key];\r\n\r\n const isObjects = isObject(value1) && isObject(value2);\r\n\r\n if ((isObjects && !isObjectTheSame(value1, value2)) ||\r\n (!isObjects && value1 !== value2)\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\nexport const isObject = (object) => {\r\n return object != null && typeof object === \"object\";\r\n};\r\n","export const warningConsole = () => {\r\n console.log(\"%cОпасно! WARNING!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:50px;font-weight:bold;text-transform:uppercase;color:#FF3B34;-webkit-text-stroke:2px #000;\");\r\n console.log(\"\\n\");\r\n console.log(\"%cЭта часть окна предназначена для разработчиков. Пожалуйста не вставляйте сюда ничего! Особенно текст который \\\"якобы\\\" поможет увеличить баланс вашего кошелька! Вас обманут!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n console.log(\"%cThis part of the window is for developers. Please don't put anything in here! Especially the text that \\\"allegedly\\\" will help to increase the balance of your wallet! You will be deceived!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\r\n console.log(\"\\n\");\r\n}","export enum PaymentFieldTypeEnum {\r\n Amount = 'amount',\r\n Email = 'email',\r\n Text = 'text',\r\n Number = 'number',\r\n Date = 'date',\r\n Select = 'select',\r\n Iframe = 'iframe'\r\n}\r\n","export enum CollectionType {\r\n Banks = 1,\r\n Documents = 2\r\n}\r\n","import { I18N_KEY } from '../../../../i18n';\r\nimport { MASKS } from '../../../../helpers';\r\nimport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nimport { PaymentField } from './payment-field';\r\nimport momentjs from 'moment-timezone';\r\nimport { CollectionType } from './collection-type.enum';\r\n\r\nconst PHONE_FIELD = {\r\n name: 'add_phone_number',\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE,\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_PHONE,\r\n mask: MASKS.PHONE,\r\n maskValidation: true,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n};\r\n\r\nconst EMAIL_FIELD = {\r\n name: 'add_email',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_EMAIL,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Email\r\n};\r\n\r\nconst castWallet = (config) => {\r\n return {\r\n ...config,\r\n ...{\r\n name: 'wallet',\r\n wallet: true\r\n }\r\n }\r\n}\r\n\r\nexport const FIELD_TEMPLATE: {[key: string]: PaymentField} = {\r\n AMOUNT: {\r\n name: 'amount',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT,\r\n pattern: /^\\d+\\.?\\d{0,2}/,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT,\r\n mask: 'separator.2',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Amount\r\n },\r\n CARD_TERMINAL: {\r\n name: 'card_terminal',\r\n type: PaymentFieldTypeEnum.Iframe\r\n },\r\n EMAIL: EMAIL_FIELD,\r\n EMAIL_WALLET: castWallet(EMAIL_FIELD),\r\n FIRST_NAME: {\r\n name: 'add_first_name',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n SECOND_NAME: {\r\n name: 'add_last_name',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n DATE_OF_BIRTH: {\r\n name: 'add_day_of_birth',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH,\r\n placeholder: '1993-04-20',\r\n require: true,\r\n mask: '0000-00-00',\r\n type: PaymentFieldTypeEnum.Date,\r\n options: {\r\n startCalendarDate: momentjs().subtract(18, 'years')\r\n }\r\n },\r\n ZIP: {\r\n name: 'add_zip',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_ZIP,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP,\r\n pattern: /\\d{6}/,\r\n mask: '000000',\r\n maskValidation: true,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n PHONE: PHONE_FIELD,\r\n PHONE_WALLET: castWallet(PHONE_FIELD),\r\n DOCUMENT_TYPE: {\r\n name: 'add_document_type',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Select,\r\n options: {\r\n collection: CollectionType.Documents\r\n }\r\n },\r\n BANK_TYPE: {\r\n name: 'add_bank_id',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_BANK,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK,\r\n readonly: false,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Select,\r\n options: {\r\n collection: CollectionType.Banks\r\n }\r\n }\r\n}\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const advcash: PaymentFields = {\r\n confirmation: '',\r\n title: 'Advcash',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","export enum TerminalStep {\r\n Prepare,\r\n Confirmation,\r\n Status\r\n}\r\n","export { PaymentField } from './payment-field';\r\nexport { PaymentFieldOptions, PaymentFieldOptionsItem } from './payment-field-options';\r\nexport { PaymentFields } from './payment-fields';\r\nexport { TerminalStep } from './terminal-step.enum';\r\nexport { CollectionType } from './collection-type.enum';\r\nexport { MASKS } from './../../../../helpers/mask-resolver';\r\nexport { PaymentFieldTypeEnum } from './payment-field-type.enum';\r\nexport * from './field-template';\r\nexport const FORMAT_DATE = 'YYYY-MM-DD';\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const alfabank: PaymentFields = {\r\n confirmation: '',\r\n title: 'AlfaClick',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const alipay_plus: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay Plus',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const applepay: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY,\r\n title: 'ApplePay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const argentina_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Argentina',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../field-template';\r\n\r\nexport const atf24: PaymentFields = {\r\n confirmation: '',\r\n title: 'ATF24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const baloto: PaymentFields = {\r\n confirmation: '',\r\n title: 'Baloto',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CC',\r\n mask: MASKS.CC,\r\n placeholder: '0000000000000000',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const beeline: PaymentFields = {\r\n confirmation: '',\r\n title: 'Beeline',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const blik: PaymentFields = {\r\n confirmation: '',\r\n title: 'Blik',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const boleto: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Boleto',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF/CNPJ',\r\n mask: MASKS.CPF_CNPJ,\r\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.ZIP\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const brazil_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Brazil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\nexport const card: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank cards',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.CARD_TERMINAL,\r\n FIELD_TEMPLATE.EMAIL,\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const carga_virtual: PaymentFields = {\r\n confirmation: '',\r\n title: 'Carga virtual',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cash: PaymentFields = {\r\n confirmation: '',\r\n title: 'Оплата наличными',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const cashtocode: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE,\r\n title: 'CashToCode',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const codi: PaymentFields = {\r\n confirmation: '',\r\n title: 'Codi',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const comepay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Comepay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay Bank',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const cup_p2p: PaymentFields = {\r\n confirmation: '',\r\n title: 'China Union Pay P2P',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const deposit_express: PaymentFields = {\r\n confirmation: '',\r\n title: 'Deposit Express',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n placeholder: '000.000.000-00',\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.BANK_TYPE,\r\n FIELD_TEMPLATE.PHONE\r\n ]\r\n};\r\n","import { PaymentFields } from '../payment-fields';\r\nimport { FIELD_TEMPLATE } from '../index';\r\n\r\n\r\nexport const direct_banking_europe: PaymentFields = {\r\n confirmation: '',\r\n title: 'Direct Banking Europe',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const dotpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Dotpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ecopayz: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ecopayz',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const eps: PaymentFields = {\r\n confirmation: '',\r\n title: 'Eps',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const giropay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Giropay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const gmmoney: PaymentFields = {\r\n confirmation: '',\r\n title: 'GM Money',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const internal_gamemoney: PaymentFields = {\r\n confirmation: '',\r\n title: 'GM Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const googlepay: PaymentFields = {\r\n confirmation: '',\r\n title: 'GooglePay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ideal: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ideal',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.BANK_TYPE\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Indonesia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const indonesia_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Indonesia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton: PaymentFields = {\r\n confirmation: '',\r\n title: 'Jeton Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const jeton_voucher: PaymentFields = {\r\n confirmation: '',\r\n title: 'Jeton Voucher',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const kassa24: PaymentFields = {\r\n confirmation: '',\r\n title: 'Kassa24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const link: PaymentFields = {\r\n confirmation: '',\r\n title: 'Link',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const local_card_brazil: PaymentFields = {\r\n confirmation: '',\r\n title: 'Local Card Brazil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const local_card_mexico: PaymentFields = {\r\n confirmation: '',\r\n title: 'Local Card Mexico',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const loterica: PaymentFields = {\r\n confirmation: '',\r\n title: 'Loterica',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF/CNPJ',\r\n mask: MASKS.CPF_CNPJ,\r\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\r\n require: true,\r\n maskValidation: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.ZIP\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const malaysia_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Malaysia',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const megafon: PaymentFields = {\r\n confirmation: I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT,\r\n title: 'Megafon',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mexico_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Mexico',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const momopay: PaymentFields = {\r\n confirmation: '',\r\n title: 'MoMo Wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const moneta: PaymentFields = {\r\n confirmation: '',\r\n title: 'Moneta',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mts: PaymentFields = {\r\n confirmation: '',\r\n title: 'MTS',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const multibanco: PaymentFields = {\r\n confirmation: '',\r\n title: 'Multibanco',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neosurf: PaymentFields = {\r\n confirmation: '',\r\n title: 'Neosurf',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const neteller: PaymentFields = {\r\n confirmation: '',\r\n title: 'Neteller',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const nupay: PaymentFields = {\r\n confirmation: '',\r\n title: 'NuPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.PHONE,\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const onecard: PaymentFields = {\r\n confirmation: '',\r\n title: 'Onecard',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const oxxo: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Oxxo',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CURP',\r\n mask: MASKS.CURP,\r\n placeholder: 'ZAZD000000MBSYQN00',\r\n uppercase: true,\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagoefectivo: PaymentFields = {\r\n confirmation: '',\r\n title: 'Pagoefectivo',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.DOCUMENT_TYPE,\r\n {\r\n name: 'add_identify_number',\r\n label: I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT,\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n FIELD_TEMPLATE.PHONE\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const pagoexpress: PaymentFields = {\r\n confirmation: '',\r\n title: 'Pago Express',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CI',\r\n placeholder: '0000000000',\r\n mask: MASKS.CI,\r\n maskValidation: true,\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pagofacil: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Pagofacil',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paypal: PaymentFields = {\r\n confirmation: '',\r\n title: 'Paypal',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const paysafecard: PaymentFields = {\r\n confirmation: '',\r\n title: 'Paysafecard',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\n\r\nexport const picpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'PicPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const pix: PaymentFields = {\r\n title: 'Pix',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n FIELD_TEMPLATE.DATE_OF_BIRTH,\r\n {\r\n name: 'wallet',\r\n label: 'PixKey',\r\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET,\r\n readonly: false,\r\n require: true,\r\n wallet: true,\r\n type: PaymentFieldTypeEnum.Text\r\n },\r\n {\r\n name: 'add_identify_number',\r\n label: 'CPF',\r\n mask: MASKS.CPF,\r\n maskValidation: true,\r\n placeholder: '000.000.000-00',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const philippines_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Philippines',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promptpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Promptpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const promsviaz: PaymentFields = {\r\n confirmation: '',\r\n title: 'PSB',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const przelewy24: PaymentFields = {\r\n confirmation: '',\r\n title: 'Przelewy24',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const qiwi: PaymentFields = {\r\n confirmation: '',\r\n title: 'Qiwi',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const rapid: PaymentFields = {\r\n confirmation: '',\r\n title: 'Rapid transfer',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\n\r\nexport const rapipago: PaymentFields = {\r\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\r\n title: 'Rapipago',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME,\r\n {\r\n name: 'add_identify_number',\r\n label: 'DNI/CUIT',\r\n mask: MASKS.CUIT_DNI,\r\n maskValidation: true,\r\n placeholder: '00-00000000-0 or 00-000-000',\r\n require: true,\r\n type: PaymentFieldTypeEnum.Text\r\n }\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const redpagos: PaymentFields = {\r\n confirmation: '',\r\n title: 'Alipay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sberbank: PaymentFields = {\r\n confirmation: '',\r\n title: 'SberPay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sbp: PaymentFields = {\r\n confirmation: '',\r\n title: 'Система быстрых платежей',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sepa: PaymentFields = {\r\n confirmation: '',\r\n title: 'SEPA',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const servipag: PaymentFields = {\r\n confirmation: '',\r\n title: 'Servipag',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinify: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinify',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skinsback: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skinsback',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const skrill: PaymentFields = {\r\n confirmation: '',\r\n title: 'Skrill',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const sofort: PaymentFields = {\r\n confirmation: '',\r\n title: 'Sofort',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const spei: PaymentFields = {\r\n confirmation: '',\r\n title: 'Spei',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const store_mexico: PaymentFields = {\r\n confirmation: '',\r\n title: 'Convenience store',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tele2: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tele2',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Thailand',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const thailand_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Thailand',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tinkoff: PaymentFields = {\r\n title: 'Tinkoff',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const trustly: PaymentFields = {\r\n confirmation: '',\r\n title: 'Trustly',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank: PaymentFields = {\r\n confirmation: '',\r\n title: 'Banks of Vietnam',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_qr: PaymentFields = {\r\n confirmation: '',\r\n title: 'Vietnamese QR banking',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const vietnam_bank_transfer: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bank transfers in Vietnam',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const webpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webpay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wechat: PaymentFields = {\r\n confirmation: '',\r\n title: 'WeChat',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wme: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WME)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmr: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMR)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmu: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMU)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wmz: PaymentFields = {\r\n confirmation: '',\r\n title: 'Webmoney (WMZ)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const zen_wallet: PaymentFields = {\r\n confirmation: '',\r\n title: 'Zen wallet',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const yandex: PaymentFields = {\r\n confirmation: '',\r\n title: 'YooMoney',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const wallester: PaymentFields = {\r\n confirmation: '',\r\n title: 'Wallester',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const bitcoin: PaymentFields = {\r\n confirmation: '',\r\n title: 'Bitcoin',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tron: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tron (TRX)',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const ethereum: PaymentFields = {\r\n confirmation: '',\r\n title: 'Ethereum',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tether(USDT) erc20',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const tether_trc20: PaymentFields = {\r\n confirmation: '',\r\n title: 'Tether(USDT) trc20',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mercado_pago: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mercado Pago',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.EMAIL,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mirpay: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mir Pay',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT\r\n ]\r\n};\r\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\r\n\r\nexport const mbway: PaymentFields = {\r\n confirmation: '',\r\n title: 'Mbway',\r\n fields: [\r\n FIELD_TEMPLATE.AMOUNT,\r\n FIELD_TEMPLATE.PHONE_WALLET,\r\n FIELD_TEMPLATE.FIRST_NAME,\r\n FIELD_TEMPLATE.SECOND_NAME\r\n ]\r\n};\r\n","import { advcash } from './advcash';\r\nimport { alfabank } from './alfabank';\r\nimport { alipay } from './alipay';\r\nimport { alipay_plus } from './alipay_plus';\r\nimport { applepay } from './applepay';\r\nimport { argentina_bank } from './argentina_bank';\r\nimport { atf24 } from './atf24';\r\nimport { baloto } from './baloto';\r\nimport { beeline } from './beeline';\r\nimport { blik } from './blik';\r\nimport { boleto } from './boleto';\r\nimport { brazil_bank } from './brazil_bank';\r\nimport { card } from './card';\r\nimport { carga_virtual } from './carga_virtual';\r\nimport { cash } from './cash';\r\nimport { cashtocode } from './cashtocode';\r\nimport { codi } from './codi';\r\nimport { comepay } from './comepay';\r\nimport { cup } from './cup';\r\nimport { cup_bank } from './cup_bank';\r\nimport { cup_p2p } from './cup_p2p';\r\nimport { deposit_express } from './deposit_express';\r\nimport { direct_banking_europe } from './direct_banking_europe';\r\nimport { dotpay } from './dotpay';\r\nimport { ecopayz } from './ecopayz';\r\nimport { eps } from './eps';\r\nimport { giropay } from './giropay';\r\nimport { gmmoney } from './gmmoney';\r\nimport { internal_gamemoney } from './internal_gamemoney';\r\nimport { googlepay } from './googlepay';\r\nimport { ideal } from './ideal';\r\nimport { indonesia_bank } from './indonesia_bank';\r\nimport { indonesia_bank_transfer } from './indonesia_bank_transfer';\r\nimport { jeton } from './jeton';\r\nimport { jeton_voucher } from './jeton_voucher';\r\nimport { kassa24 } from './kassa24';\r\nimport { link } from './link';\r\nimport { local_card_brazil } from './local_card_brazil';\r\nimport { local_card_mexico } from './local_card_mexico';\r\nimport { loterica } from './loterica';\r\nimport { malaysia_bank } from './malaysia_bank';\r\nimport { megafon } from './megafon';\r\nimport { mexico_bank } from './mexico_bank';\r\nimport { momopay } from './momopay';\r\nimport { moneta } from './moneta';\r\nimport { mts } from './mts';\r\nimport { multibanco } from './multibanco';\r\nimport { neosurf } from './neosurf';\r\nimport { neteller } from './neteller';\r\nimport { nupay } from './nupay';\r\nimport { onecard } from './onecard';\r\nimport { oxxo } from './oxxo';\r\nimport { pagoefectivo } from './pagoefectivo';\r\nimport { pagoexpress } from './pagoexpress';\r\nimport { pagofacil } from './pagofacil';\r\nimport { paypal } from './paypal';\r\nimport { paysafecard } from './paysafecard';\r\nimport { picpay } from './picpay';\r\nimport { pix } from './pix';\r\nimport { philippines_bank } from './philippines_bank';\r\nimport { promptpay } from './promptpay';\r\nimport { promsviaz } from './promsviaz';\r\nimport { przelewy24 } from './przelewy24';\r\nimport { qiwi } from './qiwi';\r\nimport { rapid } from './rapid';\r\nimport { rapipago } from './rapipago';\r\nimport { redpagos } from './redpagos';\r\nimport { sberbank } from './sberbank';\r\nimport { sbp } from './sbp';\r\nimport { sepa } from './sepa';\r\nimport { servipag } from './servipag';\r\nimport { skinify } from './skinify';\r\nimport { skinpay } from './skinpay';\r\nimport { skinsback } from './skinsback';\r\nimport { skrill } from './skrill';\r\nimport { sofort } from './sofort';\r\nimport { spei } from './spei';\r\nimport { store_mexico } from './store_mexico';\r\nimport { tele2 } from './tele2';\r\nimport { thailand_bank } from './thailand_bank';\r\nimport { thailand_bank_transfer } from './thailand_bank_transfer';\r\nimport { tinkoff } from './tinkoff';\r\nimport { trustly } from './trustly';\r\nimport { vietnam_bank } from './vietnam_bank';\r\nimport { vietnam_bank_qr } from './vietnam_bank_qr';\r\nimport { vietnam_bank_transfer } from './vietnam_bank_transfer';\r\nimport { webpay } from './webpay';\r\nimport { wechat } from './wechat';\r\nimport { wme } from './wme';\r\nimport { wmr } from './wmr';\r\nimport { wmu } from './wmu';\r\nimport { wmz } from './wmz';\r\nimport { zen_wallet } from './zen_wallet';\r\nimport { yandex } from './yandex';\r\nimport { wallester } from './wallester';\r\nimport { bitcoin } from './bitcoin';\r\nimport { tron } from './tron';\r\nimport { ethereum } from './ethereum';\r\nimport { tether } from './tether';\r\nimport { tether_trc20 } from './tether_trc20';\r\nimport { mercado_pago } from './mercado_pago';\r\nimport { mirpay } from './mirpay';\r\nimport { mbway } from './mbway';\r\nimport { PaymentFields } from '../payment-fields';\r\n\r\nexport const CONFIG: {[key: string]: PaymentFields} = {\r\n advcash,\r\n alfabank,\r\n alipay,\r\n alipay_plus,\r\n applepay,\r\n argentina_bank,\r\n atf24,\r\n baloto,\r\n beeline,\r\n blik,\r\n boleto,\r\n brazil_bank,\r\n card,\r\n carga_virtual,\r\n cash,\r\n cashtocode,\r\n codi,\r\n comepay,\r\n cup,\r\n cup_bank,\r\n cup_p2p,\r\n deposit_express,\r\n direct_banking_europe,\r\n dotpay,\r\n ecopayz,\r\n eps,\r\n giropay,\r\n gmmoney,\r\n internal_gamemoney,\r\n googlepay,\r\n ideal,\r\n indonesia_bank,\r\n indonesia_bank_transfer,\r\n jeton,\r\n jeton_voucher,\r\n kassa24,\r\n link,\r\n local_card_brazil,\r\n local_card_mexico,\r\n loterica,\r\n malaysia_bank,\r\n megafon,\r\n mexico_bank,\r\n momopay,\r\n moneta,\r\n mts,\r\n multibanco,\r\n neosurf,\r\n neteller,\r\n nupay,\r\n onecard,\r\n oxxo,\r\n pagoefectivo,\r\n pagoexpress,\r\n pagofacil,\r\n paypal,\r\n paysafecard,\r\n picpay,\r\n pix,\r\n philippines_bank,\r\n promptpay,\r\n promsviaz,\r\n przelewy24,\r\n qiwi,\r\n rapid,\r\n rapipago,\r\n redpagos,\r\n sberbank,\r\n sbp,\r\n sepa,\r\n servipag,\r\n skinify,\r\n skinpay,\r\n skinsback,\r\n skrill,\r\n sofort,\r\n spei,\r\n store_mexico,\r\n tele2,\r\n thailand_bank,\r\n thailand_bank_transfer,\r\n tinkoff,\r\n trustly,\r\n vietnam_bank,\r\n vietnam_bank_qr,\r\n vietnam_bank_transfer,\r\n webpay,\r\n wechat,\r\n wme,\r\n wmr,\r\n wmu,\r\n wmz,\r\n zen_wallet,\r\n yandex,\r\n wallester,\r\n bitcoin,\r\n tron,\r\n ethereum,\r\n tether,\r\n tether_trc20,\r\n mercado_pago,\r\n mirpay,\r\n mbway\r\n};\r\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\r\nimport {\r\n MethodInfo,\r\n MethodType,\r\n SessionInfo,\r\n TerminalMethodBanksResponse,\r\n TerminalMethodDocumentTypesResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../codegen/model/models';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, delay, map, tap } from 'rxjs/operators';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ApiErrorsService } from './api-errors.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { PaymentFields } from './../pages/components/constructor-form/models';\r\nimport { HttpBadRequestResponse } from '../models/http-bad-request-response';\r\nimport { TranslateLangStorageService } from './translation/translate-lang-storage.service';\r\nimport { I18N_KEY } from './../i18n';\r\nimport { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';\r\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\nimport { CdeTerminalSdk, SessionToken } from '../models';\r\nimport { CONFIG } from '../pages/components/constructor-form/models/config/all';\r\n\r\n@Injectable()\r\nexport class SessionDataSource {\r\n document = inject<Document>(DOCUMENT);\r\n private langStorage = inject(TranslateLangStorageService);\r\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\r\n private token = inject(SessionToken, {optional: true}) || 'token';\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private cookieSrv = inject(CookieService);\r\n private cd = inject(ChangeDetectorRef);\r\n private cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);\r\n\r\n payment_token?: string;\r\n data$: BehaviorSubject<SessionInfo> = new BehaviorSubject<SessionInfo>(undefined);\r\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n loadingMethodInfo$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private redirectUrl: string;\r\n private returnUrl: string;\r\n private configurations: Map<string, PaymentFields> = new Map();\r\n\r\n private fillConfigurations(methods: MethodType[] = this.getSessionValue()?.methodTypes || []) {\r\n return methods.forEach(\r\n (m: MethodType) => this.configurations.set(\r\n m.type.name,\r\n CONFIG[m.type.name]\r\n )\r\n );\r\n }\r\n\r\n private unionGlobalCountries(session: SessionInfo) {\r\n let methods = session.methodTypes;\r\n\r\n // sort methods by countries in map\r\n const countriesTypes: Map<string, Set<number>> = new Map<string, Set<number>>();\r\n methods.forEach(({countryISOCode, type: {id}}) => {\r\n let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);\r\n countriesTypes.set(countryISOCode, types);\r\n });\r\n\r\n // Check every type in the country on having in other countries and getting ones in collection\r\n const globalCountries: string[] = [];\r\n const typesCountriesArray = Array.from(countriesTypes.values());\r\n const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));\r\n countriesTypes.forEach((types, iso) => {\r\n // Check every type includes in all countries\r\n const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);\r\n if (hasOnlyGlobalTypes) {\r\n globalCountries.push(iso);\r\n }\r\n });\r\n\r\n // if we have more than one country with only global types collapse them into one category\r\n if (globalCountries.length > 0) {\r\n const firstGlobalCountry = globalCountries.pop();\r\n methods = methods\r\n .filter(({countryISOCode}) => !globalCountries.includes(countryISOCode));\r\n methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));\r\n }\r\n session.methodTypes = methods;\r\n return session;\r\n }\r\n\r\n getConfiguration(name: string) {\r\n return this.configurations.get(name);\r\n }\r\n\r\n redirect() {\r\n if (this.redirectUrl) {\r\n this.document.defaultView.location.href = this.redirectUrl;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n returnBack() {\r\n if (this.returnUrl) {\r\n this.document.defaultView.location.href = this.returnUrl;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get canReturnToProject() {\r\n return !!this.returnUrl;\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this.returnUrl;\r\n }\r\n\r\n getTypeNameById(id: number) {\r\n return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;\r\n }\r\n\r\n getSessionValue(): SessionInfo {\r\n return this.data$.getValue();\r\n }\r\n\r\n get(): Observable<SessionInfo> {\r\n if (!this.loading$.getValue()) {\r\n this.loading$.next(true);\r\n }\r\n\r\n return this.terminalApi.getTerminalSessionInfo({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loading$)\r\n ),\r\n map((session: SessionInfo) => {\r\n this.data$.next(this.unionGlobalCountries(session));\r\n this.fillConfigurations();\r\n this.loading$.next(false);\r\n this.returnUrl = session.returnUrl;\r\n return this.data$.getValue();\r\n })\r\n );\r\n }\r\n\r\n getMethodInfo(currency, typeId: number): Observable<MethodInfo> {\r\n if (!this.loadingMethodInfo$.getValue()) {\r\n this.loadingMethodInfo$.next(true);\r\n }\r\n if (!typeId || !currency) {\r\n return throwError({})\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loadingMethodInfo$)\r\n )\r\n );\r\n }\r\n return this.terminalApi\r\n .getTerminalMethodInfo({\r\n token: this.token,\r\n lang: this.langStorage.currentLang,\r\n currency,\r\n typeId\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(this.loadingMethodInfo$)\r\n ),\r\n tap((method) => {\r\n if (method.payment_token) {\r\n this.payment_token = method.payment_token;\r\n }\r\n this.loadingMethodInfo$.next(false);\r\n })\r\n );\r\n }\r\n\r\n private catchError(loading$?: BehaviorSubject<boolean>) {\r\n return (err: HttpBadRequestResponse) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n loading$?.next(false);\r\n this.cd.markForCheck();\r\n return throwError(err);\r\n }\r\n }\r\n\r\n prepare(data: TerminalPaymentPrepareRequest): Observable<TerminalPaymentPrepareResponse> {\r\n return this.terminalApi\r\n .postTerminalPaymentPrepare({\r\n token: this.token,\r\n terminalPaymentPrepareRequest: data\r\n })\r\n .pipe(\r\n delay(2000),\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n confirm() {\r\n return this.terminalApi\r\n .postTerminalPaymentConfirm({\r\n token: this.token,\r\n terminalPaymentConfirmRequest: {\r\n lang: this.langStorage.currentLang,\r\n gaCookie: this.cookieSrv.get('_ga') || null\r\n }\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n ),\r\n tap((resp) => {\r\n this.redirectUrl = resp.redirectUrl;\r\n })\r\n );\r\n }\r\n\r\n close() {\r\n\r\n return this.terminalApi\r\n .postTerminalClose({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n ),\r\n map(() => {\r\n if (!this.returnBack()) {\r\n const error = {code: I18N_KEY.SESSION_CLOSED};\r\n this.apiErrorsSrv.setLocalError(error);\r\n this.cd.markForCheck();\r\n\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n\r\n getBanks(typeId: number): Observable<TerminalMethodBanksResponse> {\r\n return this.terminalApi\r\n .getTerminalMethodBanks({\r\n typeId,\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n getDocuments(typeId: number): Observable<TerminalMethodDocumentTypesResponse> {\r\n\r\n return this.terminalApi\r\n .getTerminalMethodDocumentTypes({\r\n typeId,\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError()\r\n )\r\n );\r\n }\r\n\r\n createCardTerminalSdk(lang: string, id: string, tabindex?: number): CdeTerminalSdk {\r\n return this.cardTerminalSdkFactory(this.payment_token, id, {lang, tabindex});\r\n }\r\n\r\n feeChangeable = !!this.terminalApi.getFee;\r\n\r\n feeOptions(payment: any) {\r\n return this.terminalApi.getFee(payment);\r\n }\r\n}\r\n\r\n\r\n","import { CSP_NONCE, inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ENVIRONMENT } from '../../const';\r\n\r\nexport type SDKScriptId = 'cde_sdk' | 'mir-pay-sdk' | 'apple-pay-sdk' | 'google-pay-sdk';\r\n\r\n@Injectable()\r\nexport class ScriptLoader {\r\n private document = inject<Document>(DOCUMENT);\r\n private nonce = inject(CSP_NONCE);\r\n private environment = inject(ENVIRONMENT);\r\n\r\n\r\n readonly SCRIPT_HASH_MAP = new Map<SDKScriptId, { src: string; hash?: string; }>([\r\n [\r\n 'cde_sdk',\r\n this.environment.production ? {\r\n src: 'https://sdk.cde.cloud/iframe/sdk-v1.0.4.js',\r\n hash: 'sha384-I0qNl4ogKez0CNyBsdmucHGgwLsiou3eq/bwdBq1bJumX22uFs9tQhIASrQFImmA'\r\n } : {\r\n src: 'https://app.cde-cloud.dev/iframe-sdk/sdk.js',\r\n hash: ''\r\n }\r\n ]\r\n ]);\r\n\r\n fetchScript(id: SDKScriptId) {\r\n return new Promise<void>((resolve, reject) => {\r\n let script: HTMLScriptElement;\r\n if (id === 'cde_sdk' && this.document.defaultView?.hasOwnProperty('CdeTerminalSdk')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'google-pay-sdk' && this.document.defaultView?.hasOwnProperty('google')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'apple-pay-sdk' && this.document.defaultView?.hasOwnProperty('ApplePaySession')) {\r\n resolve();\r\n return;\r\n }\r\n if (id === 'mir-pay-sdk' && this.document.defaultView?.hasOwnProperty('YooMoneyCheckoutWidget')) {\r\n resolve();\r\n return;\r\n }\r\n\r\n if (id === 'google-pay-sdk' || id === 'apple-pay-sdk' || id === 'mir-pay-sdk') {\r\n const template: HTMLTemplateElement = this.document.querySelector(`template#${id}`)\r\n if (!template) {\r\n reject();\r\n }\r\n script = template.content.children.item(0) as HTMLScriptElement;\r\n } else {\r\n const {src, hash} = this.SCRIPT_HASH_MAP.get(id);\r\n script = this.document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = src;\r\n if (hash) {\r\n script.integrity = hash;\r\n script.crossOrigin = 'anonymous';\r\n }\r\n script.async = true;\r\n }\r\n script.nonce = this.nonce;\r\n script.onload = (): void => resolve();\r\n script.onerror = (err): void => reject(err);\r\n this.document.body.appendChild(script);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { loadI18NData } from './helpers/i18n-countries';\r\nimport { ApiErrorsService, ScriptLoader, TranslateLangStorageService } from './services';\r\nimport { I18N_COUNTRIES, LANGUAGE } from './models';\r\nimport { getNames } from 'i18n-iso-countries';\r\n\r\nloadI18NData();\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n loadChildren: () => import('./pages/pages.module')\r\n },\r\n {\r\n path: 'checkin',\r\n loadChildren: () => import('./checkin/checkin.module').then(m => m.CheckinModule)\r\n },\r\n {\r\n path: '**',\r\n redirectTo: ''\r\n }\r\n ])\r\n ]\r\n})\r\nexport class TerminalModule {\r\n}\r\n\r\nexport const provideTerminal = () => {\r\n return [\r\n TranslateLangStorageService,\r\n {\r\n provide: I18N_COUNTRIES,\r\n useValue: {\r\n ru: getNames(LANGUAGE.RU),\r\n lt: getNames(LANGUAGE.LT),\r\n en: getNames(LANGUAGE.EN),\r\n es: getNames(LANGUAGE.ES),\r\n tr: getNames(LANGUAGE.TR),\r\n pt: getNames(LANGUAGE.PT)\r\n }\r\n },\r\n ApiErrorsService,\r\n ScriptLoader\r\n ];\r\n};\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[terminalFee]',\r\n standalone: true\r\n})\r\nexport class FeeTemplateDirective {}\r\n","import { Component, ContentChild, HostListener, inject, OnDestroy, OnInit, TemplateRef } from '@angular/core';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, Router, RouterOutlet } from '@angular/router';\r\nimport { filter, first, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { BehaviorSubject, of, Subject } from 'rxjs';\r\nimport { TranslateLangStorageService } from './services/translation/translate-lang-storage.service';\r\nimport { APP_READY_TOKEN } from './models/constants';\r\nimport { FocusHandler } from './helpers/key-down-handler';\r\nimport { hideInitLoader } from './helpers/hide-init-loader';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FeeTemplateDirective } from './pages/directives/fee-template.directive';\r\n\r\n@Component({\r\n selector: 'terminal',\r\n host: {\r\n class: 'trm'\r\n },\r\n templateUrl: './terminal-tpl.component.html',\r\n styleUrls: ['./terminal-tpl.component.scss'],\r\n imports: [RouterOutlet, AsyncPipe]\r\n})\r\nexport class TerminalTplComponent implements OnInit, OnDestroy {\r\n private router = inject(Router);\r\n ready$ = inject<BehaviorSubject<boolean>>(APP_READY_TOKEN);\r\n langStorage = inject(TranslateLangStorageService);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @ContentChild(FeeTemplateDirective, {read: TemplateRef, static: false}) feeTpl;\r\n\r\n @HostListener('document:keydown.arrowDown', ['$event', '$event.currentTarget']) next(ev, document: Document) {\r\n FocusHandler.nextEnabled(ev);\r\n }\r\n @HostListener('document:keydown.arrowUp', ['$event', '$event.currentTarget']) prev(ev, document: Document) {\r\n FocusHandler.previousEnabled(ev);\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.navigationEnd$()\r\n .pipe(\r\n switchMap(() => this.langStorage.setLanguage$({ save: false })),\r\n switchMap(() => hideInitLoader()),\r\n first(),\r\n takeUntil(this.unSubscriber),\r\n )\r\n .subscribe(() => this.ready$.next(true));\r\n }\r\n\r\n private navigationEnd$() {\r\n if (this.router.navigated) {\r\n return of({});\r\n }\r\n return this.router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)\r\n )\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (ready$ | async) {\r\n <div class=\"app__container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[trmSelectLabelTemplate]',\r\n standalone: true\r\n})\r\nexport class TrmSelectLabelTemplateDirective {\r\n tpl = inject<TemplateRef<TrmSelectLabelTemplateDirective>>(TemplateRef);\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, inject, OnDestroy, Renderer2 } from '@angular/core';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n\r\n@Directive({\r\n selector: 'ng-scrollbar[appScrollbarSelectHeight]',\r\n standalone: true\r\n})\r\nexport class ScrollbarSelectHeightDirective implements AfterViewInit, OnDestroy {\r\n private element = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private layoutScrollbar = inject(NgScrollbar, { skipSelf: true });\r\n private scrollbar = inject(NgScrollbar);\r\n\r\n private afterInitSub?: { unsubscribe: () => void };\r\n private afterUpdateSub?: { unsubscribe: () => void };\r\n\r\n readonly DEFAULT_MAX_HEIGHT = 250;\r\n\r\n ngAfterViewInit() {\r\n const contentWrapper = this.scrollbar?.viewport?.contentWrapperElement;\r\n if (!contentWrapper) return;\r\n\r\n const updateFn = () => {\r\n const viewport = this.layoutScrollbar.viewport;\r\n const css = this.element.nativeElement.getBoundingClientRect();\r\n const height = viewport.offsetHeight - parseFloat(css.top);\r\n this.renderer.setStyle(\r\n this.scrollbar.nativeElement,\r\n 'maxHeight',\r\n (height < this.DEFAULT_MAX_HEIGHT ? this.DEFAULT_MAX_HEIGHT : (height - 12)) + 'px'\r\n );\r\n };\r\n\r\n this.afterInitSub = this.scrollbar.afterInit.subscribe(updateFn);\r\n this.afterUpdateSub = this.scrollbar.afterUpdate.subscribe(updateFn);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.afterInitSub?.unsubscribe();\r\n this.afterUpdateSub?.unsubscribe();\r\n }\r\n}","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_KEY, i18nMap } from './../../i18n';\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Pipe({\r\n name: 'trans',\r\n pure: false,\r\n standalone: true\r\n})\r\nexport class TranslateByKeyPipe implements PipeTransform, OnDestroy {\r\n private cd = inject(ChangeDetectorRef);\r\n private translateSrv = inject(TranslateService);\r\n\r\n lang: string;\r\n private onLangChangeSubscription: Subscription;\r\n\r\n transform(query: string, ...args: any[]): any {\r\n if (query === '') {\r\n return '';\r\n }\r\n\r\n this._dispose();\r\n this._subscribe();\r\n this.lang = this.translateSrv.currentLang;\r\n return this.translateSrv.instant(i18nMap.get(query as I18N_KEY) || query, ...args);\r\n }\r\n\r\n private _subscribe() {\r\n this.onLangChangeSubscription = this.translateSrv.onLangChange\r\n .subscribe(({lang}) => {\r\n if (lang === this.lang) {\r\n return\r\n }\r\n this.lang = lang;\r\n this.cd.markForCheck()\r\n });\r\n }\r\n\r\n private _dispose() {\r\n if (this.onLangChangeSubscription && !this.onLangChangeSubscription.closed) {\r\n this.onLangChangeSubscription.unsubscribe();\r\n }\r\n this.onLangChangeSubscription = null;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._dispose();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output\r\n} from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TrmSelectLabelTemplateDirective } from './trm-select-label-template.directive';\r\nimport { ScrollbarSelectHeightDirective } from './scrollbar-select-height.directive';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-trm-select',\r\n templateUrl: './trm-select.component.html',\r\n styleUrls: ['./trm-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TrmSelectComponent),\r\n multi: true,\r\n }\r\n ],\r\n animations: [insertRemoveTrigger],\r\n imports: [NgTemplateOutlet, NgClass, ScrollbarSelectHeightDirective, NgScrollbar, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class TrmSelectComponent implements OnDestroy, ControlValueAccessor, AfterViewInit {\r\n private el = inject(ElementRef);\r\n private document = inject<Document>(DOCUMENT);\r\n private cd = inject(ChangeDetectorRef);\r\n\r\n private unSubscriber: Subject<void> = new Subject<void>();\r\n private _disabled = false;\r\n I18N_KEY = I18N_KEY;\r\n\r\n get disabled() {\r\n return this.data && this.data.length === 1 && this.selected === this.getItemValue(this.data[0])\r\n }\r\n\r\n @Input() label: string;\r\n @Input() hasBorder = true;\r\n @Input() data: any[] | false;\r\n @Input() tabIndex = 0;\r\n @Input() name = '';\r\n @Input() placeholder = '';\r\n @Input() searchable = true;\r\n @Input() hasScrollbar = true;\r\n searchControl = new FormControl();\r\n @Output() open = new EventEmitter();\r\n @Output() search = new EventEmitter();\r\n selected: any;\r\n selectedItem: any;\r\n filteredData = [];\r\n\r\n onChange = (value) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n @ContentChild(TrmSelectLabelTemplateDirective) labelTeplate: TrmSelectLabelTemplateDirective;\r\n get labelTpl() {\r\n return this.labelTeplate?.tpl;\r\n }\r\n\r\n @Input() nameId = 'id';\r\n @Input() nameLabel = 'name';\r\n opened = false;\r\n\r\n constructor() {\r\n fromEvent(this.document, 'click')\r\n .pipe(\r\n debounceTime(100),\r\n filter((ev) => this.opened && !this.el.nativeElement.contains(ev.target)),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.toggle());\r\n }\r\n\r\n get selectedLabel() {\r\n return this.selectedItem?.[this.nameLabel] || this.getItemLabel(this.selected);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.searchable) {\r\n this.searchControl\r\n .valueChanges\r\n .pipe(\r\n takeUntil(this.unSubscriber),\r\n debounceTime(200)\r\n )\r\n .subscribe((search) => this.triggerSearch(search));\r\n }\r\n }\r\n\r\n get list() {\r\n if (Array.isArray(this.data)) {\r\n return this.data?.filter(item => !this.isSelected(item));\r\n }\r\n return [];\r\n }\r\n\r\n get focusableEl() {\r\n return this.el.nativeElement.querySelector('[tabindex]');\r\n }\r\n\r\n get focused(): boolean {\r\n return this.el.nativeElement.contains(this.document.activeElement);\r\n }\r\n\r\n onBlur() {\r\n if (!this.opened) {\r\n return;\r\n }\r\n // closed select when focus out\r\n setTimeout(() => !this.focused && this.toggle(), 100);\r\n }\r\n\r\n private searchAutofocusTimer: number;\r\n\r\n toggle() {\r\n if (this.data === false) {\r\n return;\r\n }\r\n if (!this.opened && !this.data?.length) {\r\n return;\r\n }\r\n if ((!this.searchable || !this.searchControl.value) && this.data?.length === 1 && this.selected === this.data[0]) {\r\n return;\r\n }\r\n if (this.searchable) {\r\n if (this.opened === false) {\r\n clearTimeout(this.searchAutofocusTimer);\r\n this.searchAutofocusTimer = this.document.defaultView.setTimeout(\r\n () => this.el.nativeElement.querySelector('.trm-select-list__search input').focus(),\r\n 200\r\n );\r\n } else {\r\n this.searchControl.setValue('');\r\n }\r\n }\r\n this.opened = !this.opened;\r\n this.open.emit(this.opened);\r\n this.onTouch();\r\n this.cd.detectChanges();\r\n }\r\n\r\n isSelected(item) {\r\n let value = this.getItemValue(item);\r\n if (value) {\r\n return this.selected === value;\r\n }\r\n return false;\r\n }\r\n\r\n getItemValue(item) {\r\n return item?.[this.nameId] || item;\r\n }\r\n\r\n getItemLabel(id) {\r\n if (!this.data) {\r\n return '';\r\n }\r\n id = this.getItemValue(id);\r\n const item = this.getCollectionItem(id);\r\n return item?.[this.nameLabel] || id;\r\n }\r\n\r\n getCollectionItem(id) {\r\n if (!this.data) {\r\n return id;\r\n }\r\n return this.data.find(f => this.getItemValue(f) === id);\r\n }\r\n\r\n select(item) {\r\n if (this.selected !== this.getItemValue(item)) {\r\n this.onChange(this.getItemValue(item));\r\n }\r\n this.selected = this.getItemValue(item);\r\n this.selectedItem = this.getCollectionItem(this.selected);\r\n this.toggle();\r\n this.focusableEl.focus();\r\n }\r\n\r\n writeValue(value: any) {\r\n if (!this.data) {\r\n return;\r\n }\r\n this.selected = value;\r\n this.selectedItem = this.getCollectionItem(this.selected);\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n triggerSearch(value = this.searchControl.value) {\r\n if (this.data === false) {\r\n return;\r\n }\r\n this.search.emit(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (label) {\r\n <label class=\"trm-label\"\r\n [for]=\"name\"\r\n (click)=\"toggle()\"\r\n > {{ label }} </label>\r\n}\r\n<div class=\"trm-select\"\r\n [class.trm-select--noBordered]=\"!hasBorder\"\r\n [class.trm-select--opened]=\"opened\"\r\n [class.trm-select--disabled]=\"disabled\"\r\n [tabindex]=\"tabIndex\"\r\n (blur)=\"onBlur()\"\r\n [id]=\"name\"\r\n (keydown.enter)=\"toggle()\"\r\n>\r\n @if (labelTpl) {\r\n <div class=\"trm-select-value\"\r\n (click)=\"toggle()\">\r\n @if (selected && selectedItem) {\r\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item: selectedItem}\"></ng-container>\r\n }\r\n @if (!selected) {\r\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n }\r\n <span class=\"trm-select-value__arrow\"\r\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n @if (data === false) {\r\n <div class=\"trm-spinner\"></div>\r\n }\r\n </div>\r\n @if (opened && hasScrollbar) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-scrollbar appearance=\"compact\" class=\"trm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n </ng-scrollbar>\r\n </ul>\r\n }\r\n @if (opened && !hasScrollbar) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\r\n </ul>\r\n }\r\n <ng-template #listTpl>\r\n @if (searchable) {\r\n <li class=\"trm-select-list__item trm-select-list__search\">\r\n <input class=\"trm-form-field\"\r\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation(); $event.preventDefault();\"\r\n [formControl]=\"searchControl\">\r\n </li>\r\n }\r\n @if (searchable && searchControl.value && list.length === 0) {\r\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n >\r\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n </li>\r\n }\r\n @for (item of list; track getItemValue(item)) {\r\n <li class=\"trm-select-list__item\"\r\n (click)=\"select(item)\"\r\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n [tabindex]=\"tabIndex\"\r\n (blur)=\"onBlur()\">\r\n @if (item) {\r\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item}\"></ng-container>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n } @else {\r\n <div class=\"trm-select-value\"\r\n (click)=\"toggle()\"\r\n (keydown.enter)=\"toggle()\">\r\n {{ selectedLabel }}\r\n @if (!selected) {\r\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\r\n }\r\n <span class=\"trm-select-value__arrow\"\r\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\r\n @if (data === false) {\r\n <div class=\"trm-spinner\"></div>\r\n }\r\n </div>\r\n @if (opened) {\r\n <ul class=\"trm-select-list\" @insertRemove>\r\n <ng-scrollbar class=\"gm-select-list-scrollbar\" appScrollbarSelectHeight>\r\n @if (searchable) {\r\n <li class=\"trm-select-list__item trm-select-list__search\">\r\n <input class=\"trm-form-field\"\r\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation();\"\r\n [formControl]=\"searchControl\">\r\n </li>\r\n }\r\n @if (searchable && searchControl.value && list.length === 0) {\r\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\r\n >\r\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\r\n </li>\r\n }\r\n @for (item of list; track getItemValue(item)) {\r\n <li class=\"trm-select-list__item\"\r\n [tabindex]=\"tabIndex\"\r\n (click)=\"select(item)\"\r\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\r\n (blur)=\"onBlur()\">\r\n {{ getItemLabel(item) }}\r\n </li>\r\n }\r\n </ng-scrollbar>\r\n </ul>\r\n }\r\n }\r\n</div>\r\n<ng-content select=\"[app-trm-select-hint]\"></ng-content>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output\r\n} from '@angular/core';\r\nimport { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgClass } from '@angular/common';\r\nimport { TrmSelectComponent } from '../trm-select/trm-select.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from \"../../../../const\";\r\nimport { VersionServiceInterface } from \"../../../models\";\r\n\r\n@Component({\r\n selector: 'app-terminal-lang-switcher',\r\n templateUrl: './terminal-lang-switcher.component.html',\r\n styleUrls: ['./terminal-lang-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent]\r\n})\r\nexport class TerminalLangSwitcherComponent implements OnDestroy {\r\n private versionSrv: VersionServiceInterface = inject(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private langStorageSrv = inject(TranslateLangStorageService);\r\n private cd = inject(ChangeDetectorRef);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @Input() loading = false;\r\n @Output() langChange = new EventEmitter<string>();\r\n @Input() tabIndex = 0;\r\n\r\n get translation_keys() {\r\n return this.langStorageSrv.TRANSLATION_LANG_KEYS;\r\n }\r\n\r\n constructor() {\r\n this.langStorageSrv.onLangChange$\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.cd.detectChanges());\r\n }\r\n\r\n get lang() {\r\n return this.langStorageSrv.currentLang;\r\n }\r\n get langs(): string[] {\r\n return this.versionSrv.langs;\r\n }\r\n\r\n changeLang(lang: string) {\r\n this.langStorageSrv.setLanguage$({ lang, save: true });\r\n this.cd.markForCheck();\r\n this.langChange.emit(lang);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","@if (!loading) {\r\n <app-trm-select class=\"lang-switcher\"\r\n [hasBorder]=\"false\"\r\n [searchable]=\"false\"\r\n [hasScrollbar]=\"false\"\r\n [data]=\"langs\"\r\n [ngModel]=\"lang\"\r\n [tabIndex]=\"tabIndex\"\r\n (ngModelChange)=\"changeLang($event)\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\r\n <span> {{translation_keys[item].name | translate}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n} @else {\r\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\r\n}\r\n","import { ChangeDetectorRef, Component, inject, Input, OnDestroy } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TerminalLangSwitcherComponent } from '../terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n selector: 'app-terminal-layout-tpl',\r\n templateUrl: './terminal-layout-tpl.component.html',\r\n styleUrls: ['./terminal-layout-tpl.component.scss'],\r\n imports: [NgScrollbar, TerminalLangSwitcherComponent, GmSkeletonComponent]\r\n})\r\nexport class TerminalLayoutTplComponent implements OnDestroy {\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n private translateSrv = inject(TranslateService);\r\n private cd = inject(ChangeDetectorRef);\r\n private translateStorageSrv = inject(TranslateLangStorageService);\r\n\r\n private unSubscriber = new Subject<void>();\r\n @Input() projectName: string;\r\n @Input() description: string;\r\n @Input() loading = true;\r\n\r\n constructor() {\r\n this.translateSrv.onLangChange\r\n .pipe(takeUntil(this.unSubscriber))\r\n .subscribe(() => {\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n get hasChoice() {\r\n return this.translateStorageSrv.languages.length > 1;\r\n }\r\n\r\n get logoClass(): string {\r\n return this.versionSrv.logoClass;\r\n }\r\n get footerText() {\r\n return this.versionSrv.footerText;\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher\r\n [loading]=\"loading\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n <ng-content selector=\"[terminal-layout-status]\"></ng-content>\r\n <ng-content selector=\"[terminal-layout-form]\"></ng-content>\r\n @if (loading) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{footerText}}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'sanitize',\r\n standalone: true\r\n})\r\nexport class SanitizerPipe implements PipeTransform {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n transform(value: any, context: SecurityContext): any {\r\n return this._sanitizer.sanitize(context, value);\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\n\r\nimport { SanitizerPipe } from '../../pipes/sanitizer.pipe';\r\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-status',\r\n templateUrl: './constructor-status.component.html',\r\n styleUrls: ['./constructor-status.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [SanitizerPipe, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorStatusComponent {\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n SecurityContext = SecurityContext;\r\n I18N_KEY = I18N_KEY;\r\n @Input() failed = false;\r\n @Input() inProgress = false;\r\n @Input() animation = true;\r\n @Input() message: string;\r\n @Input() failTitle: string;\r\n @Input() progressTitle: string;\r\n @Input() successTitle: string;\r\n @Input() tabIndex: number;\r\n @Input() backUrl: string;\r\n @Input() backUrlTitle: string;\r\n @Input() hasSupportHint = true;\r\n get supportEmail() {\r\n return this.versionSrv.supportEmail;\r\n }\r\n}\r\n","<div class=\"c-status\">\r\n <div class=\"c-status__content\"\r\n [class.c-status--failed]=\"failed\"\r\n [class.c-status--progress]=\"inProgress\"\r\n [class.c-status--live]=\"animation\"\r\n >\r\n <i class=\"c-status__img\"></i>\r\n <h5 class=\"c-status__title\">\r\n @if (inProgress) {\r\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\r\n } @else {\r\n @if (failed) {\r\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\r\n }\r\n @if (!failed) {\r\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\r\n }\r\n }\r\n </h5>\r\n <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\r\n @if (hasSupportHint) {\r\n <div class=\"c-status__hint\">\r\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\r\n @if (supportEmail) {\r\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (!!backUrl) {\r\n <div class=\"c-status__actions\">\r\n <a class=\"trm-button trm-button--primary\"\r\n [tabindex]=\"tabIndex\"\r\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\r\n <div class=\"c-status__hint c-status__hint-button\">\r\n <ng-content constructor-status-button-hint></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Directive, EmbeddedViewRef, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngVar]',\r\n standalone: true,\r\n})\r\nexport class NgVarDirective<T = unknown> {\r\n private _viewContainer = inject(ViewContainerRef);\r\n private _templateRef = inject<TemplateRef<NgVarContext<T>>>(TemplateRef);\r\n\r\n private _context: NgVarContext<T> = new NgVarContext<T>();\r\n private _viewRef: EmbeddedViewRef<NgVarContext<T>> | null = null;\r\n\r\n @Input()\r\n set ngVar(context: T) {\r\n this._context.$implicit = this._context.ngVar = context;\r\n\r\n if (!this._viewRef) {\r\n this._viewRef = this._viewContainer.createEmbeddedView(\r\n this._templateRef,\r\n this._context\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport class NgVarContext<T = unknown> {\r\n public $implicit: T = null!;\r\n public ngVar: T = null!;\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\nfunction symbolCurrency(code: string, format: 'symbol' | 'narrowSymbol', lang = 'en'): string {\r\n try {\r\n return Intl.NumberFormat(lang, {\r\n style: 'currency',\r\n currency: code,\r\n currencyDisplay: format,\r\n })\r\n .formatToParts()\r\n .find((part) => part.type === 'currency').value;\r\n } catch (e) {\r\n return code;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'trm-amount',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './trm-amount.component.html',\r\n styleUrl: './trm-amount.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n CurrencyPipe\r\n ]\r\n})\r\nexport class TrmAmountComponent {\r\n private currencyPipe: CurrencyPipe = inject(CurrencyPipe);\r\n private _thousandSeparator = ' ';\r\n private _format = '1.2-8';\r\n separator = '.';\r\n\r\n value = input<number | string>(0);\r\n code = input<string>('');\r\n\r\n symbol = computed(() => symbolCurrency(this.code(), 'narrowSymbol'));\r\n symbolWide = computed(() => symbolCurrency(this.code(), 'symbol'));\r\n private _amount = computed(() => this.currencyPipe\r\n .transform(this.value(), this.code(), 'symbol-narrow', this._format, 'en')\r\n .replace(/,/g, this._thousandSeparator)\r\n .replace(this.symbol(), '')\r\n .trim()\r\n );\r\n resultSymbol = computed(() => this.symbol() === '$' ? this.symbolWide() : this.symbol());\r\n amountSplitted = computed(() => {\r\n const [int, fract] = this._amount().split('.');\r\n return {int, fract};\r\n });\r\n}\r\n","<span class=\"trm-amount\">\r\n <span class=\"trm-amount__value\">\r\n <span class=\"trm-amount__int\">{{ amountSplitted().int }}</span>\r\n @if (amountSplitted().fract) {\r\n <span class=\"trm-amount__fract\">{{ separator }}{{ amountSplitted().fract }}</span>\r\n }\r\n </span>\r\n <span class=\"trm-currency\">{{ resultSymbol() }}</span>\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TerminalLayoutTplComponent } from './components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { TerminalLangSwitcherComponent } from './components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorStatusComponent } from './components/constructor-status/constructor-status.component';\r\nimport { TrmSelectComponent } from './components/trm-select/trm-select.component';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ScrollbarSelectHeightDirective } from './components/trm-select/scrollbar-select-height.directive';\r\nimport { TranslateByKeyPipe } from './pipes/translate-by-key.pipe';\r\nimport { NgVarDirective } from './directives/ng-var.directive';\r\nimport { TrmSelectLabelTemplateDirective } from './components';\r\n\r\nconst components = [\r\n TerminalLayoutTplComponent,\r\n TerminalLangSwitcherComponent,\r\n ConstructorStatusComponent,\r\n TrmSelectComponent,\r\n ScrollbarSelectHeightDirective,\r\n TranslateByKeyPipe,\r\n NgVarDirective,\r\n TrmSelectLabelTemplateDirective\r\n]\r\n\r\n@NgModule({\r\n exports: components,\r\n providers: [\r\n TranslatePipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgScrollbar,\r\n TranslateModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ...components\r\n ]\r\n})\r\nexport class SharedModule {\r\n}\r\n","export function removeEmptyProps<T extends { [key: string]: any }>(obj: T, options: { nullValue: boolean } = { nullValue: true }): T {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return obj;\r\n }\r\n\r\n Object.keys(obj).forEach((key: string) => {\r\n const value: any = obj[key];\r\n if (typeof value === 'undefined' || (options?.nullValue === true && value === null) || value === '' || (typeof value === 'number' && isNaN(value))) {\r\n delete obj[key];\r\n }\r\n });\r\n return obj;\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { CollectionType, PaymentField, PaymentFieldOptionsItem, PaymentFields, PaymentFieldTypeEnum } from '../models';\r\nimport { SessionDataSource } from '../../../../services/session.data-source';\r\nimport { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { MethodInfo, TerminalPaymentPrepareRequest } from '../../../../../codegen/model/models';\r\nimport { distinctUntilChanged, Observable, of, Subject } from 'rxjs';\r\nimport { removeEmptyProps } from \"../../../../../helpers/remove-empty-props\";\r\nimport { I18N_KEY } from \"./../../../../i18n\";\r\nimport { TERMINAL_METHOD_CONFIGURATION_FACTORY } from '../../../../../const';\r\nimport { LocalStorage } from \"../../../../services/local-storage\";\r\n\r\n@Injectable()\r\nexport class ConstructorFormService extends FormGroup<{ [key: string]: FormControl | FormGroup }> implements OnDestroy {\r\n private sessionDS = inject(SessionDataSource);\r\n private cd = inject(ChangeDetectorRef);\r\n private configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, {optional: true}) || ((method: string, defaultConfig: PaymentFields) => defaultConfig);\r\n\r\n private _storage: LocalStorage = inject(LocalStorage);\r\n private cancelRequestsSubscriber = new Subject<void>();\r\n private unSubscriber = new Subject<void>();\r\n config: PaymentFields;\r\n fields: PaymentField[] = [];\r\n maskedWallet: string;\r\n ready = false;\r\n\r\n constructor() {\r\n super({\r\n country: new FormControl(undefined, Validators.required),\r\n method: new FormControl(undefined, Validators.required),\r\n currency: new FormControl(undefined, Validators.required),\r\n user_currency: new FormControl(undefined, Validators.required),\r\n payment: new FormGroup({})\r\n });\r\n }\r\n\r\n get methodInfoLoading() {\r\n return this.sessionDS.loadingMethodInfo$.getValue();\r\n }\r\n\r\n get paymentFormFieldNames() {\r\n return Object.keys(this.payment.controls);\r\n }\r\n\r\n removePaymentFormControls() {\r\n this.paymentFormFieldNames\r\n .forEach((controlName: string) => this.payment.removeControl(controlName));\r\n }\r\n\r\n init() {\r\n this.ready = false;\r\n this.cd.detectChanges();\r\n if (this.configurationFactory) {\r\n this.config = this.configurationFactory(\r\n this.methodName,\r\n this.sessionDS.getConfiguration(this.methodName)\r\n );\r\n } else {\r\n this.config = this.sessionDS.getConfiguration(this.methodName);\r\n }\r\n\r\n this.fields = [...this.config.fields];\r\n // that trick for z-index order in page (reverse array + reverse flex-direction)\r\n this.fields.reverse();\r\n return this.sessionDS\r\n .getMethodInfo(\r\n this.currency.value,\r\n this.method.value\r\n )\r\n .pipe(\r\n switchMap((methodInfo) => this.generateFields(methodInfo)),\r\n first(),\r\n takeUntil(this.cancelRequestsSubscriber)\r\n );\r\n }\r\n\r\n public amountDynamic = false;\r\n\r\n private async generateFields(methodInfo: MethodInfo): Promise<void> {\r\n this.fields\r\n .forEach((field: PaymentField) => {\r\n if (!field.name) {\r\n return;\r\n }\r\n const control = new FormControl<string | number>({\r\n value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,\r\n disabled: false,\r\n });\r\n const validators: ValidatorFn[] = [];\r\n this.amountDynamic = methodInfo.amountDynamic;\r\n const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();\r\n field.placeholder = field.placeholder || '';\r\n if (field.type === PaymentFieldTypeEnum.Amount) {\r\n if (methodInfo.defaultAmount || methodInfo.defaultAmount === 0) {\r\n control.setValue(methodInfo.defaultAmount);\r\n }\r\n if (!isEditable) {\r\n field.readonly = true;\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n } else {\r\n field.readonly = false;\r\n validators.push((control) => +control.value === 0 ? {required: true} : null);\r\n }\r\n field.options = field.options || {};\r\n field.options.currency = this.currency.value;\r\n if (methodInfo.fee) {\r\n field.options.fee = methodInfo.fee;\r\n } else {\r\n field.options.fee = 0;\r\n }\r\n if (methodInfo.fixedFee) {\r\n field.options.fixedFee = methodInfo.fixedFee;\r\n } else {\r\n field.options.fixedFee = 0;\r\n }\r\n if (!methodInfo.amountDynamic && methodInfo.limits?.max) {\r\n field.options.max = methodInfo.limits.max;\r\n } else {\r\n delete field.options.max;\r\n }\r\n if (!methodInfo.amountDynamic && methodInfo.limits?.min) {\r\n field.options.min = methodInfo.limits.min;\r\n } else {\r\n delete field.options.min;\r\n }\r\n }\r\n if (field.wallet && methodInfo.defaultWallet) {\r\n control.setValue(methodInfo.defaultWallet);\r\n } else if (methodInfo.email && field.type === PaymentFieldTypeEnum.Email) {\r\n control.setValue(methodInfo.email);\r\n }\r\n if (field.require) {\r\n validators.push(Validators.required);\r\n }\r\n if (field.pattern) {\r\n validators.push(Validators.pattern(new RegExp(field.pattern)));\r\n }\r\n\r\n if (field.type === PaymentFieldTypeEnum.Email) {\r\n validators.push(Validators.email);\r\n }\r\n if (field.options?.max && typeof field.options?.max === 'number') {\r\n validators.push(Validators.max(field.options?.max));\r\n }\r\n if (field.options?.min && typeof field.options?.min === 'number') {\r\n validators.push(Validators.min(field.options?.min));\r\n }\r\n if (field.options?.maxLength) {\r\n validators.push(Validators.maxLength(field.options?.maxLength));\r\n }\r\n if (field.options?.minLength) {\r\n validators.push(Validators.minLength(field.options?.minLength));\r\n }\r\n if (field.type === PaymentFieldTypeEnum.Amount && methodInfo.amountDynamic) {\r\n validators.length = 0;\r\n }\r\n if (typeof field.validator === 'function') {\r\n validators.push(field.validator(this.payment));\r\n }\r\n control.setValidators(validators);\r\n this.payment.addControl(field.name, control);\r\n this.fetchCollection(field)\r\n .subscribe(() => {\r\n control.updateValueAndValidity();\r\n });\r\n });\r\n this.ready = true;\r\n }\r\n\r\n private fetchCollection(field: PaymentField): Observable<PaymentFieldOptionsItem[]> {\r\n const EMPTY_LIST = of([]).pipe(first());\r\n if (!field.options?.collection) {\r\n return EMPTY_LIST;\r\n }\r\n switch (field.options.collection) {\r\n case CollectionType.Banks:\r\n field.options.items = false;\r\n return this.sessionDS\r\n .getBanks(this.method.value)\r\n .pipe(\r\n map(({data}) => {\r\n field.options.items = data;\r\n this.cd.detectChanges();\r\n return data;\r\n })\r\n );\r\n case CollectionType.Documents:\r\n field.options.items = false;\r\n return this.sessionDS\r\n .getDocuments(this.method.value)\r\n .pipe(\r\n map(({data}) => {\r\n field.options.items = data;\r\n this.cd.detectChanges();\r\n return data;\r\n })\r\n );\r\n default:\r\n return EMPTY_LIST;\r\n }\r\n }\r\n\r\n get country(): AbstractControl {\r\n return this.get('country') as AbstractControl;\r\n }\r\n\r\n get method(): AbstractControl {\r\n return this.get('method') as AbstractControl;\r\n }\r\n\r\n get currency(): FormControl {\r\n return this.get('currency') as FormControl;\r\n }\r\n\r\n get userCurrency(): FormControl {\r\n return this.get('user_currency') as FormControl;\r\n }\r\n\r\n get payment(): FormGroup {\r\n return this.get('payment') as FormGroup;\r\n }\r\n\r\n get amount(): AbstractControl {\r\n return this.payment.get(this.fields.find(field => field.type === PaymentFieldTypeEnum.Amount).name) as AbstractControl;\r\n }\r\n\r\n public get methodName(): string {\r\n if (!this.method.value) {\r\n return null;\r\n }\r\n return this.sessionDS.getTypeNameById(this.method.value);\r\n }\r\n\r\n getTypeNameById(id) {\r\n return this.sessionDS.getTypeNameById(id);\r\n }\r\n\r\n saveDefaultCountry(): void {\r\n this._storage.saveDefaultCountry(this.country.value);\r\n }\r\n\r\n saveDefaultMethodName(): void {\r\n this._storage.saveDefaultMethodName(this.methodName);\r\n }\r\n\r\n saveDefaultCurrency(): void {\r\n this._storage.saveDefaultCurrency(this.currency.value);\r\n }\r\n\r\n get defaultCountry(): string {\r\n return this._storage.defaultCountry;\r\n }\r\n\r\n get defaultMethodName(): string {\r\n return this._storage.defaultMethodName;\r\n }\r\n\r\n get defaultCurrency(): string {\r\n return this._storage.defaultCurrency;\r\n }\r\n\r\n public cancelRequests() {\r\n this.cancelRequestsSubscriber.next();\r\n }\r\n\r\n public getPaymentValue() {\r\n const data: TerminalPaymentPrepareRequest = {\r\n typeId: this.method.value,\r\n currency: this.currency.value,\r\n type: this.getTypeNameById(this.method.value),\r\n user_currency: this.userCurrency.value,\r\n ...this.payment.getRawValue()\r\n }\r\n this.fields.forEach((field: PaymentField) => {\r\n if (field.type === PaymentFieldTypeEnum.Amount) {\r\n data[field.name] = +data[field.name];\r\n }\r\n });\r\n return removeEmptyProps(data);\r\n }\r\n updateValueAndValidityIframes(): void {\r\n this.fields.forEach(({ name, type }) => {\r\n if (type === PaymentFieldTypeEnum.Iframe) {\r\n this.payment.get(name).updateValueAndValidity({ emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n get readyIframesSubmit(): boolean {\r\n return this.fields\r\n .filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)\r\n .every(({ name, type }) => !this.payment.get(name).invalid);\r\n }\r\n\r\n isAmountEditable(): boolean {\r\n return this.sessionDS.getSessionValue().amountEditable;\r\n }\r\n\r\n hasWhatToFill() {\r\n const _hasWhatToFill = this.country.enabled || this.method.enabled || this.currency.enabled || this.isAmountEditable();\r\n const fields = this.fields;\r\n if (_hasWhatToFill) {\r\n return true;\r\n }\r\n if (!fields.length) {\r\n return false;\r\n }\r\n return fields.some((f) => {\r\n const control = this.payment.get(f.name);\r\n if (f.type === PaymentFieldTypeEnum.Amount) {\r\n return !control.valid;\r\n }\r\n return this.payment.get(f.name).enabled;\r\n });\r\n }\r\n\r\n setCDEError(code: I18N_KEY) {\r\n this.clearValidators();\r\n this.setValidators(() => {\r\n if (this.methodName === 'card') {\r\n return {cde_error: code};\r\n }\r\n return null;\r\n });\r\n this.updateValueAndValidity({emitEvent: false});\r\n }\r\n\r\n distinctValueChanges(): Observable<Partial<{ [x: string]: any }>> {\r\n return this.valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged((prev, curr) => {\r\n if (\r\n !prev ||\r\n !curr ||\r\n Object.keys(prev.payment).length !== Object.keys(curr.payment).length\r\n ) {\r\n return false;\r\n }\r\n return (\r\n prev.country === curr.country &&\r\n prev.method === curr.method &&\r\n prev.currency === curr.currency &&\r\n prev.payment.amount === curr.payment.amount\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.cancelRequestsSubscriber.next();\r\n this.cancelRequestsSubscriber.unsubscribe();\r\n }\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18N_COUNTRIES } from '../models/constants';\r\n\r\n@Pipe({\r\n name: 'country_translate',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class CountryTranslatePipe implements PipeTransform {\r\n\tprivate i18n_countries = inject(I18N_COUNTRIES);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(code: string, lang: string = this.translateSrv.currentLang): any {\r\n\t\treturn this.i18n_countries[lang][code] || code;\r\n\t}\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CountryTranslatePipe } from './country-translate.pipe';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\r\n\r\n@Pipe({\r\n name: 'countries_sort',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class CountriesSortPipe implements PipeTransform {\r\n\tprivate countryTranslatePipe = inject(CountryTranslatePipe);\r\n\tprivate translateSrv = inject(TranslateService);\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\ttransform(types: string[], lang: string = this.translateSrv.currentLang): any {\r\n return types.sort((c1, c2) => {\r\n if (c1 === OTHER_COUNTRY_CODE) {\r\n return 1;\r\n }\r\n const c1Translation = this.countryTranslatePipe\r\n .transform(c1, lang);\r\n const c2Translation = this.countryTranslatePipe\r\n .transform(c2,lang );\r\n return c1Translation > c2Translation ? 1: (c1Translation === c2Translation ? 0 : -1);\r\n });\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\r\nimport { map } from 'rxjs/operators';\r\nimport { ScriptLoader } from '../../../../../services/script-loader';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\nimport { SessionDataSource } from \"../../../../../services/session.data-source\";\r\n\r\n@Injectable()\r\nexport class CardSdkService {\r\n private scriptLoaderSrv: ScriptLoader = inject(ScriptLoader);\r\n private sessionSrv = inject(SessionDataSource);\r\n private _sdk: CdeTerminalSdk;\r\n private _pending = false;\r\n private _submitted = false;\r\n\r\n markAsReady(): void {\r\n this._pending = false;\r\n }\r\n\r\n markAsSubmitted() {\r\n this._submitted = true;\r\n }\r\n\r\n get pending(): boolean {\r\n return this._pending;\r\n }\r\n\r\n public submit(): void {\r\n if (!this._submitted && this._sdk) {\r\n this._sdk.submit();\r\n this._pending = true;\r\n }\r\n }\r\n\r\n private get _ready$(): Observable<void> {\r\n return fromPromise(this.scriptLoaderSrv.fetchScript('cde_sdk'));\r\n }\r\n\r\n createCardTerminalSdk$(\r\n lang: string,\r\n id: string,\r\n tabindex?: number\r\n ): Observable<CdeTerminalSdk> {\r\n return this._ready$.pipe(\r\n map(() => (this._sdk = this.sessionSrv.createCardTerminalSdk(lang, id, tabindex))),\r\n );\r\n }\r\n}\r\n","import { Directive, forwardRef, inject } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n AsyncValidator,\r\n NG_ASYNC_VALIDATORS,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { I18N_KEY } from './../../../../../i18n/i18n-key.enum';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\n@Directive({\r\n selector: '[appIframeValidatorDirective]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_ASYNC_VALIDATORS,\r\n useExisting: forwardRef(() => IframeValidatorDirectiveDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class IframeValidatorDirectiveDirective implements AsyncValidator {\r\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n private _sdk: CdeTerminalSdk;\r\n\r\n private submitting$: Subject<ValidationErrors | null> = new Subject();\r\n\r\n private _fatalError: I18N_KEY;\r\n private _validationSdkError = false;\r\n\r\n registerSDK(sdk?: CdeTerminalSdk): void {\r\n if (!sdk) {\r\n this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;\r\n } else {\r\n this._sdk = sdk;\r\n this.handleSubmitting();\r\n }\r\n }\r\n\r\n private handleSubmitting(): void {\r\n this._sdk.onInputPending(() => {\r\n this._validationSdkError = true;\r\n });\r\n this._sdk.onError((code) => {\r\n this._validationSdkError = false;\r\n let codeError = I18N_KEY.ERROR_OCCUR;\r\n if (code === 501) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_501;\r\n } else if (code === 500) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_500;\r\n } else if (code === 504) {\r\n codeError = I18N_KEY.CDE_CARD_ERROR_504;\r\n }\r\n this._fatalError = codeError;\r\n });\r\n this._sdk.onInputReady(() => {\r\n this._validationSdkError = false;\r\n this.submitting$.next(null);\r\n });\r\n this._sdk.onInputSubmitted(() => {\r\n this._validationSdkError = false;\r\n this.submitting$.next(null);\r\n });\r\n this._sdk.onTimeout(() => {\r\n this._validationSdkError = false;\r\n this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;\r\n });\r\n }\r\n\r\n validate(\r\n control: AbstractControl,\r\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\r\n if (this._fatalError) {\r\n return of({ cde_error: this._fatalError });\r\n }\r\n if (this._validationSdkError) {\r\n return of({ cde_validation_error: true });\r\n }\r\n if (this.cardSdkSrv.pending) {\r\n return this.submitting$.asObservable();\r\n }\r\n return of(null);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';\r\nimport { I18N_KEY } from '../../../../../i18n';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CardSdkService } from './card-sdk.service';\r\nimport { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';\r\nimport { insertRemoveTrigger } from '../../../../../helpers';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\r\n\r\nconst ID_CDE_CONTAINER = 'cde-container';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-iframe',\r\n templateUrl: './constructor-field-iframe.component.html',\r\n styleUrls: ['./constructor-field-iframe.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldIframeComponent),\r\n multi: true,\r\n },\r\n CardSdkService,\r\n ],\r\n imports: [TranslateByKeyPipe, GmSkeletonComponent],\r\n hostDirectives: [\r\n {\r\n directive: IframeValidatorDirectiveDirective,\r\n },\r\n ]\r\n})\r\nexport class ConstructorFieldIframeComponent\r\n implements AfterViewInit, ControlValueAccessor\r\n{\r\n private _translateSrv: TranslateService = inject(TranslateService);\r\n private _cd: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n private _control: AbstractControl;\r\n private _injector: Injector = inject(Injector);\r\n private _destroyRef: DestroyRef = inject(DestroyRef);\r\n viewReady = false;\r\n\r\n @Input() tabIndex: number;\r\n\r\n private validator: IframeValidatorDirectiveDirective = inject(\r\n IframeValidatorDirectiveDirective,\r\n );\r\n\r\n private _sdk: CdeTerminalSdk;\r\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\r\n\r\n private _loading = true;\r\n status: I18N_KEY;\r\n readonly I18N_KEY = I18N_KEY;\r\n\r\n readonly ID_CDE_CONTAINER = ID_CDE_CONTAINER;\r\n registerOnTouched(fn: any): void {}\r\n registerOnChange(fn: any): void {}\r\n writeValue(): void {}\r\n\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._control = this._injector.get(NgControl).control;\r\n this.cardSdkSrv\r\n .createCardTerminalSdk$(\r\n this._translateSrv.currentLang,\r\n this.ID_CDE_CONTAINER,\r\n this.tabIndex\r\n )\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe({\r\n next: (sdk: CdeTerminalSdk) => {\r\n this._sdk = sdk;\r\n this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());\r\n this.validator.registerSDK(sdk);\r\n this._init();\r\n },\r\n error: () => {\r\n this.validator.registerSDK();\r\n this._updateValueAndValidity();\r\n },\r\n });\r\n }\r\n\r\n private _updateValueAndValidity(): void {\r\n this.cardSdkSrv.markAsReady();\r\n this._control?.updateValueAndValidity({ onlySelf: true });\r\n this._cd.detectChanges();\r\n this.refreshHeight();\r\n }\r\n\r\n refreshHeight(): void {\r\n setTimeout(() => {\r\n this._sdk?.refreshHeight();\r\n this.viewReady = true;\r\n this._cd.detectChanges();\r\n }, 100);\r\n }\r\n\r\n private _init(): void {\r\n this._sdk.onInputPending(() => {\r\n this._loading = false;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onInputReady(() => {\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onInputSubmitted(() => {\r\n this._loading = false;\r\n this.cardSdkSrv.markAsSubmitted();\r\n this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onTimeout(() => {\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._sdk.onError(() => {\r\n this._loading = false;\r\n this._updateValueAndValidity();\r\n });\r\n\r\n this._translateSrv.onLangChange\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe({\r\n next: (options: LangChangeEvent) => {\r\n if (!options.lang) {\r\n return;\r\n }\r\n this._sdk.useLang(options.lang);\r\n },\r\n });\r\n }\r\n}\r\n","@if (!status) {\r\n <div\r\n class=\"iframe-container\"\r\n [id]=\"ID_CDE_CONTAINER\"\r\n [class.iframe-container--ready]=\"viewReady\"\r\n ></div>\r\n} @else if (!loading) {\r\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\r\n}\r\n\r\n@if (loading) {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of [1,2]; track i) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionDataSource } from '../services/session.data-source';\r\n\r\n@Pipe({\r\n name: 'method_title',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class MethodTitlePipe implements PipeTransform {\r\n private sessionDS = inject(SessionDataSource);\r\n\r\n constructor() {\r\n }\r\n\r\n transform(name: string): any {\r\n return this.sessionDS.getConfiguration(name)?.title;\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { FocusHandler } from '../../helpers/key-down-handler';\r\n\r\n@Directive({\r\n selector: '[tabindex]',\r\n standalone: true\r\n})\r\nexport class TabIndexFocusDirective {\r\n\r\n @HostListener('focus', ['$event.target']) focus(target: HTMLElement) {\r\n Array.from(target.classList).some(cl => /--disabled$/.test(cl)) && FocusHandler.next();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MethodTypeType } from '../../../../../../codegen/model/models';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MethodTitlePipe } from './../../../../../pipes/method-title.pipe';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { NgClass } from '@angular/common';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n TrmSelectLabelTemplateDirective\r\n} from '../../../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-ps-select',\r\n templateUrl: './ps-select.component.html',\r\n styleUrls: ['./ps-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PsSelectComponent),\r\n multi: true,\r\n },\r\n MethodTitlePipe,\r\n TranslatePipe\r\n ],\r\n imports: [TabIndexFocusDirective, NgClass, TrmSelectComponent, FormsModule, ReactiveFormsModule, TrmSelectLabelTemplateDirective, MethodTitlePipe, TranslateByKeyPipe]\r\n})\r\nexport class PsSelectComponent implements OnInit, ControlValueAccessor {\r\n private cd = inject(ChangeDetectorRef);\r\n private methodTitlePipe = inject(MethodTitlePipe);\r\n private translatePipe = inject(TranslatePipe);\r\n private destroyRef: DestroyRef = inject(DestroyRef);\r\n I18N_KEY = I18N_KEY;\r\n onChange = (_value) => {\r\n };\r\n onTouch = () => {\r\n };\r\n @Input() methods: MethodTypeType[] = [];\r\n disabled = false;\r\n @Input() tabIndex: number;\r\n\r\n selectedType: number;\r\n otherMethodControl: FormControl = new FormControl<number>(undefined);\r\n searchString: string;\r\n\r\n get popularMethods(): MethodTypeType[] {\r\n if (this.disabled) {\r\n return null;\r\n }\r\n return this.methods.slice(0, 4);\r\n }\r\n\r\n get otherMethods(): MethodTypeType[] {\r\n if (this.disabled) {\r\n return this.methods.slice(0);\r\n }\r\n return this.methods\r\n .slice(this.popularMethods.length)\r\n .filter((m: MethodTypeType) => {\r\n if (!this.searchString) {\r\n return true;\r\n } else {\r\n const title: string = this.translatePipe.transform(\r\n this.methodTitlePipe.transform(m.name)\r\n );\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.otherMethodControl\r\n .valueChanges\r\n .pipe(\r\n filter(m => !!m),\r\n takeUntilDestroyed(this.destroyRef)\r\n )\r\n .subscribe((method) => this.selectMethod(method));\r\n }\r\n\r\n selectMethod(method: number, options: { emitChange: boolean } = {emitChange: true}) {\r\n if (!method || this.selectedType === method) {\r\n return;\r\n }\r\n this.selectedType = method;\r\n if (options?.emitChange) {\r\n this.onChange(method);\r\n }\r\n const hasInOtherList = this.otherMethods.some(m => m.id === method);\r\n this.otherMethodControl.setValue(hasInOtherList ? method : undefined, {emitEvent: false, onlySelf: true});\r\n }\r\n\r\n writeValue(method: number) {\r\n this.cd.detectChanges();\r\n this.selectMethod(method, {emitChange: false});\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled\r\n if (isDisabled) {\r\n if (!this.otherMethodControl.value && this.selectedType) {\r\n this.otherMethodControl.setValue(this.selectedType, {emitEvent: false, onlySelf: true});\r\n }\r\n this.otherMethodControl.disable();\r\n } else {\r\n this.otherMethodControl.enable();\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n search(value: string) {\r\n this.searchString = value;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","<label class=\"trm-label\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}}\r\n</label>\r\n<ul class=\"methods\">\r\n @for (method of popularMethods; track method.id) {\r\n <li class=\"method\"\r\n [class.method--selected]=\"selectedType === method.id\"\r\n [tabindex]=\"tabIndex\"\r\n (keydown.enter)=\"$event.stopPropagation(); selectMethod(method.id)\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"selectMethod(method.id)\"\r\n >\r\n <span class=\"method__icon\"\r\n [ngClass]=\"'ps-icon-'+method.name\"\r\n ></span>\r\n <span class=\"method__name\" [title]=\"method.name | trans\" > {{method.name | method_title | trans}} </span>\r\n </li>\r\n }\r\n @if (searchString || otherMethods.length) {\r\n <li class=\"methods__other\">\r\n <app-trm-select [data]=\"otherMethods\"\r\n idLabel=\"method\"\r\n (search)=\"search($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"otherMethodControl\"\r\n [placeholder]=\"I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS | trans\"\r\n class=\"c-field-select trm-form-field\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"method__icon\"\r\n [ngClass]=\"'ps-icon-'+item.name\"></span>\r\n <span class=\"method__name\"\r\n [title]=\"item.name | trans\" >{{item.name | method_title | trans}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </li>\r\n }\r\n</ul>\r\n<ng-content select=\"[app-ps-select-hint]\"></ng-content>\r\n<ng-content select=\"[app-ps-select-error]\"></ng-content>\r\n\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptionsItem } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\r\n\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-select',\r\n templateUrl: './constructor-field-select.component.html',\r\n styleUrls: ['./constructor-field-select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldSelectComponent implements ControlValueAccessor, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private injector = inject(Injector);\r\n @Input() config: PaymentField;\r\n @Input() items: PaymentFieldOptionsItem[];\r\n @Input() tabIndex: number;\r\n searchString: string;\r\n I18N_KEY = I18N_KEY;\r\n\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n control: AbstractControl;\r\n\r\n get data() {\r\n if (!this.items) {\r\n return [];\r\n }\r\n return this.items\r\n .filter((option: PaymentFieldOptionsItem) => {\r\n if (!this.searchString) {\r\n return true;\r\n } else {\r\n const title: string = option.name;\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n })\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n search(searchString: string) {\r\n this.searchString = searchString;\r\n this.cd.markForCheck();\r\n }\r\n\r\n writeValue(value: any) {\r\n this.cd.markForCheck();\r\n }\r\n\r\n get apiError(): string {\r\n return this.control?.getError('error');\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","@if (control) {\r\n <app-trm-select [data]=\"data\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n [label]=\"config.label | trans\"\r\n [name]=\"config.name\"\r\n (search)=\"search($event)\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"c-field-select trm-form-field\"\r\n ></app-trm-select>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n\r\n}\r\n","import { NgxMaskService } from 'ngx-mask';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MaskService extends NgxMaskService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n numberToString(value: number | string): string {\r\n return super.numberToString(value).replace(/,/g,'.');\r\n }\r\n applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any): string {\r\n // Fix bug of cursor position in ngx-mask\r\n this['_shift'].clear();\r\n return super.applyMask(inputValue, maskExpression, position, justPasted, backspaced, cb);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { MaskService } from '../services/mask.service';\r\n\r\n@Directive({\r\n providers: [{\r\n provide: NgxMaskService,\r\n useClass: MaskService\r\n }],\r\n selector: 'input[mask]',\r\n standalone: true\r\n})\r\nexport class InputMaskCorrector { }\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField, PaymentFieldTypeEnum } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDatepicker, MatDatepickerInput } from '@angular/material/datepicker';\r\nimport momentjs from 'moment-timezone';\r\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\r\nimport { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';\r\nimport { NgxMaskConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { removeSpecSymbols } from '../../../../../helpers/phone-codes';\r\nimport { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';\r\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-constructor-field-text',\r\n templateUrl: './constructor-field-text.component.html',\r\n styleUrls: ['./constructor-field-text.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldTextComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe]\r\n})\r\nexport class ConstructorFieldTextComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private maskSrv = inject(MaskResolver);\r\n private injector = inject(Injector);\r\n private maskPipe = inject(NgxMaskPipe);\r\n\r\n private unsub: Subject<void> = new Subject<void>();\r\n private _type = 'text';\r\n\r\n get disabled() {\r\n return this.config.readonly || false;\r\n };\r\n\r\n readonly FORMAT_DATE = FORMAT_DATE;\r\n mask: string;\r\n dropSpecialCharacters = true;\r\n I18N_KEY = I18N_KEY;\r\n\r\n @Input() config: PaymentField;\r\n\r\n get inputmode(): \"text\" | \"tel\" | \"numeric\" | \"email\" | \"url\" | \"none\" {\r\n return this.config.inputMode || 'text';\r\n }\r\n\r\n @Input() matDatepicker: MatDatepicker<momentjs.Moment>;\r\n @Input() tabIndex: number;\r\n @Output() maskedValueChange: EventEmitter<string> = new EventEmitter();\r\n control: AbstractControl;\r\n @ViewChild(NgxMaskDirective) dir: NgxMaskDirective;\r\n maskPatterns: NgxMaskConfig['patterns'];\r\n specialCharacters: string[];\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n get type() {\r\n if (this.config.type === PaymentFieldTypeEnum.Email) {\r\n return 'email';\r\n }\r\n return this._type;\r\n }\r\n\r\n get name() {\r\n return this.config.name;\r\n }\r\n\r\n onDateInput(e: InputEvent) {\r\n const target: HTMLInputElement = e.target as HTMLInputElement;\r\n let {selectionStart, selectionEnd} = target;\r\n this.control?.markAsUntouched();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n target.value = this.maskPipe\r\n .transform(target.value, this.mask, {patterns: this.maskPatterns})\r\n .replace(/^-|-$/, '');\r\n\r\n setTimeout(() => {\r\n this.control?.updateValueAndValidity();\r\n\r\n if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {\r\n while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {\r\n selectionEnd += 1;\r\n selectionStart += 1;\r\n }\r\n }\r\n target.setSelectionRange(selectionStart, selectionEnd);\r\n });\r\n }\r\n\r\n onPaste(e: ClipboardEvent) {\r\n const t = e.target as HTMLInputElement;\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n this._emitMaskedValueChanges(t);\r\n return;\r\n }\r\n const value = t.value;\r\n let content = e.clipboardData?.getData('text') || '';\r\n let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;\r\n if (value) {\r\n const arr = Array.from(value);\r\n arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));\r\n content = removeSpecSymbols(arr.join(''));\r\n }\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);\r\n this.cd.detectChanges();\r\n this.control?.setValue(content);\r\n this.cd.detectChanges();\r\n e.preventDefault();\r\n this._emitMaskedValueChanges(t, selectionStart);\r\n }\r\n\r\n onInput(e: InputEvent) {\r\n this.control?.markAsUntouched();\r\n this.cd.markForCheck();\r\n if (this.matDatepicker) {\r\n return;\r\n }\r\n const target = e.target as HTMLInputElement;\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n this._emitMaskedValueChanges(target);\r\n return;\r\n }\r\n const value: string = this.control?.value;\r\n let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;\r\n const mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n if (!mask || mask === INITIAL_PHONE_MASK) {\r\n return;\r\n }\r\n this.mask = mask;\r\n\r\n this.cd.detectChanges();\r\n this._emitMaskedValueChanges(target, selectionStart);\r\n }\r\n\r\n private _emitMaskedValueChanges(target, positionInUnmaskedValue?) {\r\n setTimeout(() => {\r\n this.control?.updateValueAndValidity();\r\n if (this.mask) {\r\n this.maskedValueChange.emit(target.value);\r\n }\r\n this._setSelection(target, positionInUnmaskedValue);\r\n });\r\n }\r\n\r\n private _setSelection(target: HTMLInputElement, positionInUnmaskedValue?) {\r\n if (this.type === PaymentFieldTypeEnum.Email) {\r\n return;\r\n }\r\n let positionMaskedValue = 0;\r\n let i = 0;\r\n while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {\r\n if (/\\d/.test(target.value[positionMaskedValue])) {\r\n i++;\r\n }\r\n positionMaskedValue++;\r\n }\r\n target.setSelectionRange(positionMaskedValue, positionMaskedValue);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n }\r\n\r\n get apiError(): string {\r\n return this.control?.getError('error');\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value) {\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnInit() {\r\n this.mask = this.maskSrv.getMaskByValue(this.config.mask);\r\n if (this.config.maskValidation !== true) {\r\n this.config.maskValidation = false;\r\n }\r\n this.maskPatterns = this.maskSrv.getPatterns(this.config);\r\n this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];\r\n this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsub.next();\r\n this.unsub.unsubscribe();\r\n }\r\n}\r\n","@if (control) {\r\n <label class=\"trm-label\"\r\n [for]=\"config.name\"\r\n > {{ config.label | trans }} </label>\r\n <div class=\"input-wrapper trm-form-field-wrapper c-text\"\r\n [class.c-text--disabled]=\"disabled\"\r\n [class.c-text--uppercase]=\"config.uppercase\">\r\n @if (!matDatepicker) {\r\n <input\r\n class=\"trm-form-field trm-input\"\r\n [class.trm-form-field--disabled]=\"disabled\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n (blur)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n (input)=\"onInput($event)\"\r\n (paste)=\"onPaste($event)\"\r\n [type]=\"type\"\r\n [name]=\"name\"\r\n [id]=\"name\"\r\n [mask]=\"mask\"\r\n [attr.inputmode]=\"inputmode\"\r\n [patterns]=\"maskPatterns\"\r\n [allowNegativeNumbers]=\"false\"\r\n [thousandSeparator]=\"' '\"\r\n [decimalMarker]=\"'.'\"\r\n [validation]=\"config.maskValidation || false\"\r\n [specialCharacters]=\"specialCharacters\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [tabindex]=\"tabIndex\"\r\n />\r\n } @else {\r\n <input class=\"trm-form-field trm-input\"\r\n [matDatepicker]=\"matDatepicker\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n (input)=\"onDateInput($event)\"\r\n [attr.inputmode]=\"inputmode\"\r\n (blur)=\"onTouch()\"\r\n [min]=\"config?.options?.min\"\r\n [max]=\"config?.options?.max\"\r\n [tabindex]=\"tabIndex\"\r\n type=\"text\"\r\n [name]=\"name\"\r\n [id]=\"name\"\r\n />\r\n }\r\n <ng-content select=\"[app-c-text-suffix]\"></ng-content>\r\n </div>\r\n @if (config.description) {\r\n <div class=\"c-text__hint\"\r\n [innerHTML]=\"config.description | trans\"></div>\r\n }\r\n <ng-content select=\"[app-c-text-hint]\"></ng-content>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('email') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_EMAIL | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('min') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_MIN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('max') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_MAX | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('pattern') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('mask') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerParse') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerMin') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ (I18N_KEY.VALIDATION_DATE_MIN | trans) + ' ' + control.getError('matDatepickerMin').min.format(FORMAT_DATE) }}\r\n </div>\r\n }\r\n @if (control.hasError('matDatepickerMax') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ (I18N_KEY.VALIDATION_DATE_MAX | trans) + ' ' + control.getError('matDatepickerMax').max.format(FORMAT_DATE) }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n}\r\n","import { Component, inject, Input, TemplateRef } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe, NgTemplateOutlet } from '@angular/common';\r\nimport { PaymentFieldOptions } from \"../../models\";\r\nimport { insertRemoveTrigger } from \"../../../../../helpers\";\r\nimport { TerminalTplComponent } from '../../../../../terminal-tpl.component';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n selector: 'app-method-amount-hint',\r\n templateUrl: './method-amount-hint.component.html',\r\n styleUrls: ['./method-amount-hint.component.scss'],\r\n animations: [insertRemoveTrigger],\r\n providers: [CurrencyPipe],\r\n imports: [TranslateByKeyPipe, NgTemplateOutlet, TrmAmountComponent],\r\n host: {\r\n '[hidden]': '!loading && (!options || (!options.fee && !options.fixedFee && !options.minFixedFee && !options.min && !options.max))'\r\n }\r\n})\r\nexport class MethodAmountHintComponent {\r\n private mainTpl: TerminalTplComponent = inject(TerminalTplComponent);\r\n @Input() loading: boolean;\r\n @Input() options: PaymentFieldOptions = {};\r\n I18N_KEY = I18N_KEY;\r\n\r\n get feeTpl(): TemplateRef<any> {\r\n return this.mainTpl.feeTpl;\r\n }\r\n}\r\n","<div class=\"c-method-hint\" @insertRemove>\r\n @if (loading) {\r\n <span class=\"trm-spinner\" @insertRemove></span>\r\n }\r\n @if (options.fee || options.fixedFee) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_FEE | trans) }}\r\n @if (options.fee) {\r\n <span class=\"trm-amount\">\r\n <span class=\"trm-amount__value\">{{ options.fee }}<span class=\"trm-currency\">%</span></span>\r\n </span>\r\n }\r\n @if (options.fixedFee && options.fee) {\r\n <span> + </span>\r\n }\r\n @if (options.fixedFee) {\r\n <trm-amount [value]=\"options.fixedFee\" [code]=\"options.currency\"></trm-amount>\r\n }\r\n @if (options.minFixedFee) {\r\n ({{ I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE | trans }}<trm-amount [value]=\"options.minFixedFee\" [code]=\"options.currency\"></trm-amount>)\r\n }\r\n </div>\r\n }\r\n @if (options.min) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT | trans) }}\r\n <trm-amount [value]=\"options.min\" [code]=\"options.currency\"></trm-amount>\r\n </div>\r\n }\r\n @if (options.max) {\r\n <div @insertRemove>\r\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT | trans) }}\r\n <trm-amount [value]=\"options.max\" [code]=\"options.currency\"></trm-amount>\r\n </div>\r\n }\r\n\r\n @if (feeTpl) {\r\n <div *ngTemplateOutlet=\"feeTpl; context: {options}\" @insertRemove></div>\r\n }\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\nimport { FORMAT_DATE, PaymentField } from '../../models';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ReactiveFormsModule\r\n} from '@angular/forms';\r\nimport { isMoment, Moment } from 'moment';\r\nimport { ConstructorFieldTextComponent } from '../constructor-field-text/constructor-field-text.component';\r\nimport { MatDatepicker, MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-constructor-field-date',\r\n templateUrl: './constructor-field-date.component.html',\r\n styleUrls: ['./constructor-field-date.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ConstructorFieldDateComponent),\r\n multi: true\r\n }\r\n ],\r\n imports: [ConstructorFieldTextComponent, FormsModule, ReactiveFormsModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatDatepicker]\r\n})\r\nexport class ConstructorFieldDateComponent implements ControlValueAccessor, AfterViewInit {\r\n private cd = inject(ChangeDetectorRef);\r\n private injector = inject(Injector);\r\n private destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n readonly FORMAT_DATE = FORMAT_DATE;\r\n @Input() config: PaymentField;\r\n @Input() tabIndex: number;\r\n control: AbstractControl;\r\n\r\n get startCalendarDate(): Moment {\r\n return this.config.options?.startCalendarDate;\r\n }\r\n\r\n onChange = (_value: any) => {\r\n };\r\n onTouch = () => {\r\n };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: unknown) {\r\n if (isMoment(value) || typeof value === 'string') {\r\n if (isMoment(value)) {\r\n this.control?.setValue(value.format(FORMAT_DATE), {emitEvent: false});\r\n } else {\r\n this.control?.setValue(value, {emitEvent: false});\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl).control;\r\n this.cd.detectChanges();\r\n\r\n this.control\r\n .valueChanges\r\n .pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n )\r\n .subscribe((value) => {\r\n if (isMoment(value)) {\r\n this.onChange(value.format(this.FORMAT_DATE));\r\n }\r\n });\r\n }\r\n}\r\n","@if (control) {\r\n <app-constructor-field-text\r\n class=\"c-date__input\"\r\n [tabIndex]=\"tabIndex\"\r\n [config]=\"config\"\r\n [formControl]=\"control\"\r\n [matDatepicker]=\"picker\">\r\n <mat-datepicker-toggle [for]=\"picker\"\r\n app-c-text-suffix\r\n class=\"date__toggle\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <div class=\"date__toggleIcon\"\r\n matDatepickerToggleIcon\r\n app-c-text-suffix></div>\r\n </mat-datepicker-toggle>\r\n </app-constructor-field-text>\r\n\r\n <mat-datepicker #picker [tabIndex]=\"tabIndex\" [startAt]=\"startCalendarDate\"></mat-datepicker>\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { I18N_KEY } from './../../../../../i18n';\r\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\r\n\r\n@Component({\r\n selector: 'app-constructor-preparation',\r\n templateUrl: './constructor-preparation.component.html',\r\n styleUrls: ['./constructor-preparation.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CurrencyPipe],\r\n imports: [TranslateByKeyPipe, TrmAmountComponent]\r\n})\r\nexport class ConstructorPreparationComponent {\r\n @Input() maskedWallet = null;\r\n @Input() wallet: string;\r\n @Input() confirmationText: string;\r\n @Input() methodName: string;\r\n @Input() currency: string;\r\n @Input() amount: number;\r\n @Input() total: number;\r\n I18N_KEY = I18N_KEY;\r\n}\r\n","<div class=\"confirmation\">\r\n <h5> {{ I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER | trans }} </h5>\r\n <div class=\"confirmation__content\">\r\n <ul class=\"confirmation__list\">\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}} </div>\r\n <div class=\"confirmation__value\"> {{methodName | trans}} </div>\r\n </li>\r\n\r\n @if (maskedWallet || wallet) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_WALLET | trans}} </div>\r\n <div class=\"confirmation__value\"> {{ maskedWallet || wallet}} </div>\r\n </li>\r\n }\r\n\r\n @if (amount) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT | trans}} </div>\r\n <div class=\"confirmation__value\">\r\n <trm-amount [value]=\"amount\" [code]=\"currency\"></trm-amount>\r\n </div>\r\n </li>\r\n }\r\n\r\n @if (total) {\r\n <li class=\"confirmation__list__item\">\r\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE | trans}} </div>\r\n <div class=\"confirmation__value\">\r\n <trm-amount [value]=\"total\" [code]=\"currency\"></trm-amount>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n @if (confirmationText) {\r\n <p\r\n class=\"confirmation__text\" [innerHTML]=\"confirmationText\"></p>\r\n }\r\n <ng-content selector=\"[app-constructor-preparation-error]\"></ng-content>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { PaymentField, PaymentFieldOptions, PaymentFieldTypeEnum, TerminalStep } from './models';\r\nimport { ConstructorFormService } from './services/constructor-form.service';\r\nimport {\r\n MethodType,\r\n MethodTypeType,\r\n TerminalPaymentConfirmResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\r\nimport { distinctUntilChanged, Subject } from 'rxjs';\r\nimport { first, takeUntil } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountriesSortPipe } from '../../../pipes/countries-sort.pipe';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n ConstructorFieldIframeComponent\r\n} from \"./components/constructor-field-iframe/constructor-field-iframe.component\";\r\nimport { CountryTranslatePipe } from '../../../pipes/country-translate.pipe';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { TrmSelectComponent } from '../../../shared/components/trm-select/trm-select.component';\r\nimport {\r\n TrmSelectLabelTemplateDirective\r\n} from '../../../shared/components/trm-select/trm-select-label-template.directive';\r\nimport { PsSelectComponent } from './components/ps-select/ps-select.component';\r\nimport {\r\n ConstructorFieldSelectComponent\r\n} from './components/constructor-field-select/constructor-field-select.component';\r\nimport { ConstructorFieldTextComponent } from './components/constructor-field-text/constructor-field-text.component';\r\nimport { MethodAmountHintComponent } from './components/method-amount-hint/method-amount-hint.component';\r\nimport { ConstructorFieldDateComponent } from './components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n ConstructorPreparationComponent\r\n} from './components/constructor-preparation/constructor-preparation.component';\r\nimport { TabIndexFocusDirective } from '../../directives/tab-index-focus.directive';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\nimport { OTHER_COUNTRY_CODE } from \"../../../helpers\";\r\nimport { CardSdkService } from \"./components/constructor-field-iframe/card-sdk.service\";\r\n\r\n@Component({\r\n selector: 'app-constructor-form',\r\n templateUrl: './constructor-form.component.html',\r\n styleUrls: ['./constructor-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [insertRemoveTrigger],\r\n providers: [\r\n ConstructorFormService,\r\n CountryTranslatePipe, CountriesSortPipe\r\n ],\r\n imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent]\r\n})\r\nexport class ConstructorFormComponent implements OnChanges, AfterViewInit, OnDestroy {\r\n private cd = inject(ChangeDetectorRef);\r\n form = inject(ConstructorFormService);\r\n private translateSrv = inject(TranslateService);\r\n private countriesSortPipe = inject(CountriesSortPipe);\r\n private countryTranslatePipe = inject(CountryTranslatePipe);\r\n private ngScrollBar = inject(NgScrollbar);\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n private unSubscriber = new Subject<void>();\r\n private preparationStepFilled = false;\r\n TERMINAL_STEP = TerminalStep;\r\n @Input() step: TerminalStep;\r\n @Input() error?: string;\r\n @Input() response: TerminalPaymentPrepareResponse & TerminalPaymentConfirmResponse & {\r\n typeId?: number;\r\n };\r\n CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;\r\n @Input() feeLoading: boolean;\r\n @Input() feeOptions: PaymentFieldOptions;\r\n @Input() currency: string;\r\n @Input() userCurrency: string[];\r\n @Input() loading = null;\r\n @Input() types: MethodType[] = [];\r\n @Input() canReturnToProject = true;\r\n @Output() amountChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() back: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() prepare: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() confirm: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onPaymentChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Input() tabIndex: number;\r\n countrySearchString: string;\r\n @ViewChild('paymentRequisites', {static: false}) requisites: ElementRef;\r\n @ViewChild('hintMethod', {static: false}) hintMethod: ElementRef;\r\n @ViewChildren(CardSdkService) sdkList: QueryList<CardSdkService>;\r\n maskedWallet: string;\r\n\r\n I18N_KEY = I18N_KEY;\r\n\r\n get countriesList(): string[] {\r\n return this.countriesSortPipe\r\n .transform(\r\n this.types\r\n .map(type => type.countryISOCode)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n )\r\n .filter((m: string) => {\r\n if (!this.countrySearchString) {\r\n return true;\r\n } else {\r\n const title: string = this.countryTranslatePipe.transform(m);\r\n return title.toLowerCase()\r\n .split(' ').some(\r\n ts => this.countrySearchString.toLowerCase().split(' ').some(s => ts.includes(s))\r\n );\r\n }\r\n });\r\n }\r\n\r\n get methodsList(): MethodTypeType[] {\r\n return this.types\r\n .filter(type => type.countryISOCode === this.form.country.value)\r\n // distinct\r\n .filter((type, index, self) => self.map(m => m.type.id).indexOf(type.type.id) === index)\r\n //sorting by the priority\r\n .sort((m1, m2) => m1.priority > m2.priority ? 1 : ((m1.priority === m2.priority) ? 0 : -1))\r\n .map(type => type.type);\r\n }\r\n\r\n get currenciesList() {\r\n return this.types\r\n .filter(type => type.countryISOCode === this.form.country.value && type.type.id === this.form.method.value)\r\n .map(type => type.currency)\r\n }\r\n\r\n get userCurrenciesList() {\r\n const filteredTypes = this.currenciesList;\r\n\r\n if (!this.userCurrency) {\r\n return filteredTypes;\r\n }\r\n\r\n return this.userCurrency\r\n .filter(userCurrency => filteredTypes.includes(userCurrency))\r\n }\r\n\r\n private setCurrencyValue() {\r\n let defaultCurrency = this.form.defaultCurrency;\r\n\r\n let currencies = this.currenciesList;\r\n let currency = currencies[0];\r\n if (defaultCurrency && this.currenciesList.includes(defaultCurrency)) {\r\n currency = defaultCurrency;\r\n } else if (this.currency && this.currenciesList.includes(this.currency)) {\r\n currency = this.currency;\r\n }\r\n this.form.currency.setValue(currency);\r\n\r\n currencies = this.userCurrenciesList;\r\n currency = currencies[0];\r\n if (defaultCurrency && this.userCurrenciesList.includes(defaultCurrency)) {\r\n currency = defaultCurrency;\r\n } else if (this.currency && this.userCurrenciesList.includes(this.currency)) {\r\n currency = this.currency;\r\n }\r\n this.form.userCurrency.setValue(currency, {emitEvent: false});\r\n if (currencies.length === 1 && currency && this.form.method.disabled) {\r\n this.form.userCurrency.disable();\r\n }\r\n }\r\n\r\n get hasCurrencyMethodSelector(): boolean {\r\n return this.versionSrv.hasCurrencyMethodSelector === true;\r\n }\r\n\r\n get lang(): string {\r\n return this.translateSrv.currentLang;\r\n }\r\n\r\n get skeletonLength() {\r\n return new Array(this.form.fields?.length || 3).fill(0);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.types && this.types?.length || changes.currency && this.currency) {\r\n // Get configuration fields\r\n const countries = this.countriesList;\r\n const defaultCountry = this.form.defaultCountry;\r\n let country = null;\r\n if (!countries.includes(defaultCountry)) {\r\n if (countries.includes(OTHER_COUNTRY_CODE)) {\r\n country = OTHER_COUNTRY_CODE;\r\n }\r\n } else {\r\n country = defaultCountry;\r\n }\r\n this.form.country.setValue(country);\r\n if (!country) {\r\n return;\r\n }\r\n if (countries.length === 1 && this.form.country.value) {\r\n this.form.country.disable();\r\n }\r\n\r\n const methods = this.methodsList;\r\n const defaultMethodName = this.form.defaultMethodName;\r\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n this.form.method.setValue(defaultMethod || methods[0]?.id);\r\n\r\n this.cd.detectChanges();\r\n if (methods.length === 1 && this.form.country.disabled) {\r\n this.form.method.disable();\r\n }\r\n this.cd.detectChanges();\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n\r\n this.form\r\n .distinctValueChanges()\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => this.onPaymentChanged.emit(this.form.getRawValue()));\r\n this.fetchForm();\r\n }\r\n\r\n if (changes.step?.currentValue && !changes.types && !changes.currency) {\r\n this.fetchForm();\r\n }\r\n\r\n if (changes.feeOptions && !changes.feeOptions.firstChange) {\r\n // need for triggering of the custom validator\r\n this.form.amount?.updateValueAndValidity();\r\n }\r\n\r\n if (this.step === TerminalStep.Confirmation) {\r\n this.preparationStepFilled = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form\r\n .country\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.cd.detectChanges();\r\n this.form.saveDefaultCountry();\r\n this.form.method.setValue(this.methodsList[0].id, {emitEvent: false});\r\n\r\n const methods = this.methodsList;\r\n const defaultMethodName = this.form.defaultMethodName;\r\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\r\n this.form.method.setValue(defaultMethod || methods[0].id, {emitEvent: false});\r\n this.cd.detectChanges();\r\n\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n\r\n this.fetchForm();\r\n });\r\n this.form\r\n .method\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.form.method.clearValidators();\r\n this.form.saveDefaultMethodName();\r\n this.setCurrencyValue();\r\n this.cd.detectChanges();\r\n this.fetchForm();\r\n })\r\n this.form\r\n .currency\r\n .valueChanges\r\n .pipe(\r\n distinctUntilChanged((a, b) => a === b),\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(() => {\r\n this.fetchForm();\r\n this.form.saveDefaultCurrency();\r\n });\r\n }\r\n\r\n private fetchForm() {\r\n if (!this.form.method.value) {\r\n this.form.ready = true;\r\n return;\r\n }\r\n this.form.cancelRequests();\r\n if (this.step !== this.TERMINAL_STEP.Prepare) {\r\n return;\r\n }\r\n this.form.removePaymentFormControls();\r\n this.cd.detectChanges();\r\n this.form\r\n .init()\r\n .subscribe(() => {\r\n if (!this.preparationStepFilled && !this.form.hasWhatToFill()) {\r\n this.send();\r\n return;\r\n }\r\n this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n this.cd.detectChanges();\r\n this.scrollToRequisits();\r\n this.form.maskedWallet = '';\r\n }, (err) => {\r\n this.form.payment.updateValueAndValidity({ onlySelf: true });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n private scrollToRequisits() {\r\n if (this.requisites || this.hintMethod) {\r\n this.ngScrollBar?.scrollToElement(this.hintMethod?.nativeElement || this.requisites.nativeElement, {\r\n duration: 500,\r\n top: -75\r\n });\r\n }\r\n }\r\n\r\n get description() {\r\n return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;\r\n }\r\n\r\n submit() {\r\n if (this.feeLoading) {\r\n return;\r\n }\r\n if (this.step === TerminalStep.Confirmation) {\r\n this.confirm.emit();\r\n return;\r\n }\r\n\r\n if (this.form.config === null || !this.form.ready) {\r\n return;\r\n }\r\n this.triggerIframeSubmit();\r\n if (this.form.invalid || this.error) {\r\n Object.values(this.form.controls).forEach((control) => {\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n });\r\n Object.values(this.form.payment.controls).forEach((control) => {\r\n control.markAsDirty();\r\n control.markAsTouched();\r\n control.updateValueAndValidity({ emitEvent: false });\r\n });\r\n this.cd.detectChanges();\r\n return;\r\n }\r\n\r\n if (this.form.pending) {\r\n this.form.statusChanges\r\n .pipe(first(), takeUntil(this.unSubscriber))\r\n .subscribe((status) => {\r\n if (status === 'VALID') {\r\n this.send();\r\n }\r\n });\r\n } else {\r\n this.send();\r\n }\r\n }\r\n\r\n private triggerIframeSubmit() {\r\n if (!this.form.readyIframesSubmit) {\r\n return;\r\n }\r\n this.sdkList?.forEach((sdk: CardSdkService) => sdk.submit());\r\n this.form.updateValueAndValidityIframes();\r\n }\r\n\r\n private send() {\r\n const data: TerminalPaymentPrepareRequest = this.form.getPaymentValue();\r\n this.maskedWallet = this.form.maskedWallet;\r\n this.prepare.emit(data);\r\n }\r\n\r\n searchCountry(value) {\r\n this.countrySearchString = value;\r\n this.cd.markForCheck();\r\n }\r\n\r\n get backBtnLabel(): string {\r\n if (this.step === TerminalStep.Prepare) {\r\n return I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN;\r\n }\r\n return I18N_KEY.CONSTRUCTOR_LABEL_RETURN;\r\n }\r\n\r\n changeTextFieldValue(maskedValue, field: PaymentField) {\r\n if (field.wallet) {\r\n this.form.maskedWallet = maskedValue;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n }\r\n}\r\n","<form class=\"constructor\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"submit()\"\r\n >\r\n @if (loading !== null) {\r\n @if (step === TERMINAL_STEP.Prepare) {\r\n <div class=\"constructor__fields\">\r\n @if (countrySearchString || countriesList.length > 1) {\r\n <div class=\"constructor__field\">\r\n <app-trm-select [data]=\"countriesList\"\r\n @insertRemove\r\n name=\"country\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\r\n formControlName=\"country\"\r\n class=\"c-field-select trm-form-field\"\r\n (search)=\"searchCountry($event)\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"fi\"\r\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\r\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\r\n </ng-template>\r\n </app-trm-select>\r\n </div>\r\n }\r\n @if (form.country.value) {\r\n <app-ps-select [methods]=\"methodsList\"\r\n @insertRemove\r\n formControlName=\"method\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n @if (form.config?.description) {\r\n <div class=\"constructor__hint text--warn\"\r\n app-ps-select-hint\r\n #hintMethod\r\n @insertRemove\r\n >\r\n {{description | trans }}\r\n </div>\r\n }\r\n </app-ps-select>\r\n\r\n @if (\r\n form.method?.hasError('required') &&\r\n form.method.touched &&\r\n form.method.dirty\r\n ) {\r\n <div class=\"gm-error\" @insertRemove>\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n }\r\n\r\n @if (form.ready) {\r\n <div formGroupName=\"payment\"\r\n @insertRemove\r\n #paymentRequisites\r\n class=\"constructor__fields constructor__fields--reverse\">\r\n @if (form.method.value && form.amountDynamic) {\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\r\n }\r\n @for (field of form.fields; track field.name; let i = $index) {\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\r\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\r\n <div class=\"constructor__hint cde-error\" @insertRemove>\r\n {{\r\n form.payment.get(field.name).getError('cde_error')\r\n | trans\r\n }}\r\n </div>\r\n }\r\n <app-constructor-field-iframe\r\n [formControlName]=\"field.name\"\r\n @insertRemove\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n </app-constructor-field-iframe>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\r\n <app-constructor-field-select\r\n @insertRemove\r\n [config]=\"field\"\r\n [items]=\"field?.options?.items\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n ></app-constructor-field-select>\r\n }\r\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\r\n <app-constructor-field-text\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\">\r\n <app-method-amount-hint app-c-text-hint\r\n class=\"constructor__hint\"\r\n [loading]=\"feeLoading\"\r\n [options]=\"feeOptions || field.options\"\r\n ></app-method-amount-hint>\r\n @if (!hasCurrencyMethodSelector) {\r\n <div app-c-text-suffix\r\n class=\"constructor__currency\"\r\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\r\n </div>\r\n }\r\n </app-constructor-field-text>\r\n @if (hasCurrencyMethodSelector) {\r\n <app-trm-select\r\n @insertRemove\r\n class=\"constructor-field\"\r\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\r\n [formControl]=\"form.currency\"\r\n [searchable]=\"false\"\r\n [data]=\"currenciesList\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n }\r\n }\r\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\r\n <app-constructor-field-date\r\n @insertRemove\r\n [config]=\"field\"\r\n [formControlName]=\"field.name\"\r\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\r\n }\r\n }\r\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\r\n <app-trm-select\r\n class=\"constructor-field-inner\"\r\n @insertRemove\r\n [label]=\"label\"\r\n [formControl]=\"form.userCurrency\"\r\n [searchable]=\"false\"\r\n [data]=\"userCurrenciesList\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <ng-template trmSelectLabelTemplate let-item=\"item\">\r\n <span class=\"trm-icon\"\r\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\r\n [title]=\"item\"></span>\r\n {{item}}\r\n </ng-template>\r\n </app-trm-select>\r\n </ng-template>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of skeletonLength; track $index) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (error && !form.methodInfoLoading) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (step === TERMINAL_STEP.Confirmation) {\r\n <app-constructor-preparation\r\n @insertRemove\r\n [currency]=\"response?.currency\"\r\n [methodName]=\"form.getTypeNameById(response.typeId)\"\r\n [wallet]=\"response.wallet\"\r\n [maskedWallet]=\"maskedWallet\"\r\n [amount]=\"response.amount\"\r\n [total]=\"response.total\"\r\n [confirmationText]=\"form.config?.confirmation\"\r\n >\r\n @if (error && !form.payment.pending) {\r\n <div class=\"trm-error\"\r\n app-constructor-preparation-error\r\n @insertRemove\r\n >\r\n {{ error | trans }}\r\n </div>\r\n }\r\n </app-constructor-preparation>\r\n }\r\n <div class=\"constructor__actions\"\r\n @insertRemove>\r\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\r\n type=\"submit\"\r\n [tabindex]=\"form.fields.length + tabIndex\">\r\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\r\n @if (loading) {\r\n <span class=\"trm-spinner trm-spinner-white\"></span>\r\n }\r\n </button>\r\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\r\n type=\"button\"\r\n [tabindex]=\"form.fields.length + tabIndex\"\r\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\r\n </div>\r\n } @else {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n }\r\n</form>\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n MethodType,\r\n TerminalPaymentConfirmResponse,\r\n TerminalPaymentPrepareRequest,\r\n TerminalPaymentPrepareResponse\r\n} from '../../../../codegen/model/models';\r\nimport { SessionDataSource } from '../../../services/session.data-source';\r\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\r\nimport { Subject, throwError } from 'rxjs';\r\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { PaymentFieldOptions, TerminalStep } from './../../../pages/components/constructor-form/models';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { AsyncPipe, CurrencyPipe, DOCUMENT, Location } from '@angular/common';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { getI18Key } from './../../../i18n/keys';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\r\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\r\nimport { TranslateLangStorageService } from '../../../services';\r\nimport {\r\n TerminalLangSwitcherComponent\r\n} from '../../../shared/components/terminal-lang-switcher/terminal-lang-switcher.component';\r\nimport { ConstructorFormComponent } from '../constructor-form/constructor-form.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\r\n\r\n@Component({\r\n selector: 'app-terminal-layout',\r\n templateUrl: './terminal-layout.component.html',\r\n styleUrls: ['./terminal-layout.component.scss'],\r\n providers: [\r\n SessionDataSource,\r\n CurrencyPipe\r\n ],\r\n imports: [\r\n NgScrollbar,\r\n TerminalLangSwitcherComponent,\r\n ConstructorFormComponent, ConstructorStatusComponent,\r\n AsyncPipe,\r\n TranslateByKeyPipe, GmSkeletonComponent\r\n ]\r\n})\r\nexport class TerminalLayoutComponent implements OnInit, OnDestroy {\r\n private document = inject<Document>(DOCUMENT);\r\n sessionDS = inject(SessionDataSource);\r\n translateLoader = inject<any>(TranslateLoader);\r\n private cd = inject(ChangeDetectorRef);\r\n private translateStorageSrv = inject(TranslateLangStorageService);\r\n private translateSrv = inject(TranslateService);\r\n private adapter = inject<DateAdapter<moment.Moment>>(DateAdapter);\r\n private apiErrorSrv = inject(ApiErrorsService);\r\n private location = inject(Location);\r\n private titleSrv = inject(Title);\r\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\r\n\r\n private unSubscriber = new Subject<void>();\r\n private resizeObserver: ResizeObserver;\r\n\r\n private get contentEl() {\r\n return this.scrollComponent.viewport.contentWrapperElement;\r\n }\r\n\r\n TERMINAL_STEP = TerminalStep;\r\n\r\n types: MethodType[] = [];\r\n currency: string;\r\n projectName: string;\r\n description: string;\r\n step = TerminalStep.Prepare;\r\n data: TerminalPaymentPrepareResponse & { typeId?: number; };\r\n @ViewChild('scrollComponent') scrollComponent: NgScrollbar;\r\n private urlChangeListener: VoidFunction;\r\n sessionLoading = null;\r\n\r\n constructor() {\r\n this.adapter.setLocale(this.translateSrv.currentLang);\r\n this._setTitle();\r\n\r\n this.translateSrv.onLangChange\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe((e) => {\r\n this.adapter.setLocale(e.lang);\r\n this._setTitle();\r\n this.cd.detectChanges();\r\n });\r\n this.checkFatalError();\r\n }\r\n\r\n get hasChoice() {\r\n return this.translateStorageSrv.languages.length > 1;\r\n }\r\n\r\n get logoClass(): string {\r\n return this.versionSrv.logoClass;\r\n }\r\n\r\n get footerText() {\r\n return this.versionSrv.footerText;\r\n }\r\n\r\n private _setTitle() {\r\n this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));\r\n }\r\n\r\n public changeLang() {\r\n }\r\n\r\n get hostname() {\r\n return this.document.defaultView.location.hostname;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.apiErrorSrv.hasFatalError) {\r\n this.sessionDS.loading$.next(false);\r\n this.catchError();\r\n return;\r\n }\r\n this.sessionDS.get()\r\n .subscribe((sessionInfo) => {\r\n this.types = sessionInfo.methodTypes;\r\n this.currency = sessionInfo.defaultCurrency;\r\n this.projectName = sessionInfo.projectName;\r\n this.description = sessionInfo.description;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n }, () => {\r\n this.sessionLoading = false;\r\n this.catchError();\r\n });\r\n\r\n this.pushState();\r\n this.urlChangeListener = this.location.onUrlChange((url, state: { step?: TerminalStep }) => {\r\n if (typeof state?.step === 'number') {\r\n this.step = state.step;\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n\r\n private _submitted = false;\r\n\r\n prepare(data: TerminalPaymentPrepareRequest) {\r\n if (this._submitted) {\r\n return;\r\n }\r\n this._submitted = true;\r\n this.sessionLoading = true;\r\n this.sessionDS\r\n .prepare(data)\r\n .subscribe((resp: TerminalPaymentPrepareResponse) => {\r\n if (!resp.amount && !resp.currency && !resp.total) {\r\n return;\r\n }\r\n this.step = TerminalStep.Confirmation;\r\n this.location.go(this.location.path(), '', {step: this.step});\r\n this.data = resp;\r\n this.data.typeId = data.typeId;\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n }, () => {\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.catchError();\r\n });\r\n }\r\n\r\n confirm() {\r\n if (this._submitted) {\r\n return;\r\n }\r\n this._submitted = true;\r\n this.sessionLoading = true;\r\n this.sessionDS\r\n .confirm()\r\n .subscribe(\r\n (resp: TerminalPaymentConfirmResponse) => {\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n if (this.sessionDS.redirect()) {\r\n this._submitted = false;\r\n return;\r\n }\r\n this.step += 1;\r\n if (resp.success) {\r\n this._statusText = resp.message;\r\n }\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n },\r\n () => {\r\n this._submitted = false;\r\n this.sessionLoading = false;\r\n this.catchError();\r\n },\r\n );\r\n }\r\n\r\n checkFatalError() {\r\n // Clear form error when any values have changed.\r\n if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {\r\n this.apiErrorSrv.clear();\r\n }\r\n }\r\n\r\n pushState() {\r\n this.location.replaceState(this.location.path(), undefined, {step: this.step});\r\n }\r\n\r\n back() {\r\n if (this.step) {\r\n this.location.back();\r\n } else {\r\n this.sessionLoading = true;\r\n this.sessionDS.close()\r\n .pipe(\r\n finalize(() => {\r\n this.sessionLoading = false;\r\n this.cd.markForCheck();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this.sessionDS.returnBackUrl;\r\n }\r\n\r\n catchError() {\r\n if (this.hasStatusError) {\r\n this.step = TerminalStep.Status;\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n private _statusText: string;\r\n get statusText() {\r\n return this.apiErrorSrv.getLocalError() || this._statusText;\r\n }\r\n\r\n get hasStatusError() {\r\n return this.apiErrorSrv.hasFatalError;\r\n }\r\n\r\n public get currentYear() {\r\n return new Date().getFullYear();\r\n }\r\n\r\n private feeCalculateSubject = new Subject<void>();\r\n public calculateFee(value: any) {\r\n if (!this.sessionDS.feeChangeable) {\r\n return;\r\n }\r\n this.feeCalculateSubject.next();\r\n this.feeLoading = true;\r\n this.feeOptions = {};\r\n this.cd.detectChanges();\r\n\r\n this.sessionDS\r\n .feeOptions(value)\r\n .pipe(\r\n tap((options: PaymentFieldOptions) => {\r\n this.feeOptions = options;\r\n this.feeLoading = false;\r\n this.cd.detectChanges();\r\n }),\r\n catchError((err) => {\r\n this.feeLoading = false;\r\n this.cd.detectChanges();\r\n return throwError(() => err);\r\n }),\r\n takeUntil(this.feeCalculateSubject),\r\n takeUntil(this.unSubscriber)\r\n ).subscribe();\r\n }\r\n\r\n feeLoading = false;\r\n feeOptions: PaymentFieldOptions;\r\n\r\n public ngOnDestroy() {\r\n this.feeCalculateSubject.unsubscribe();\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.resizeObserver?.unobserve(this.contentEl);\r\n if (this.urlChangeListener) {\r\n this.urlChangeListener();\r\n }\r\n }\r\n}\r\n","<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if (sessionDS.loading$ | async) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"sessionLoading\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n","import { Component, } from '@angular/core';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport {\r\n TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.scss'],\r\n imports: [\r\n TerminalLayoutTplComponent,\r\n ConstructorStatusComponent,\r\n TranslateByKeyPipe,\r\n ]\r\n})\r\nexport class ErrorComponent {\r\n I18N_KEY = I18N_KEY\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"false\">\r\n <app-constructor-status terminal-layout-status\r\n [failed]=\"true\"\r\n [failTitle]=\"(I18N_KEY.ERROR_OCCUR | trans)\"\r\n [hasSupportHint]=\"false\"\r\n >\r\n </app-constructor-status>\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { ConstructorFormComponent } from './components/constructor-form/constructor-form.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ConstructorFieldTextComponent\r\n} from './components/constructor-form/components/constructor-field-text/constructor-field-text.component';\r\nimport {\r\n ConstructorFieldDateComponent\r\n} from './components/constructor-form/components/constructor-field-date/constructor-field-date.component';\r\nimport {\r\n ConstructorFieldSelectComponent\r\n} from './components/constructor-form/components/constructor-field-select/constructor-field-select.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PsSelectComponent } from './components/constructor-form/components/ps-select/ps-select.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport {\r\n ConstructorPreparationComponent\r\n} from './components/constructor-form/components/constructor-preparation/constructor-preparation.component';\r\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { CSRFResolver } from '../services/csrf.resolver';\r\nimport {\r\n MethodAmountHintComponent\r\n} from './components/constructor-form/components/method-amount-hint/method-amount-hint.component';\r\nimport { MaskResolver } from './../helpers/mask-resolver';\r\nimport { InputMaskCorrector } from './directives/input-mask-corrector.directive';\r\nimport { FORMAT_DATE } from './../pages/components/constructor-form/models';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TabIndexFocusDirective } from './directives/tab-index-focus.directive';\r\n\r\nimport {\r\n ConstructorFieldIframeComponent\r\n} from './components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component';\r\nimport { TerminalLayoutComponent } from './components/terminal-layout/terminal-layout.component';\r\nimport { ErrorComponent } from './components/error/error.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule.forChild([\r\n {\r\n path: 'error',\r\n loadComponent: () => import('./components/error/error.component').then(m => m.ErrorComponent)\r\n },\r\n {\r\n resolve: {\r\n csrf: CSRFResolver\r\n },\r\n loadComponent: () => import('./components/terminal-layout/terminal-layout.component').then(m => m.TerminalLayoutComponent),\r\n path: ''\r\n },\r\n ]),\r\n NgScrollbar,\r\n TranslateModule,\r\n CommonModule,\r\n MatDatepickerModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n SharedModule,\r\n TerminalLayoutComponent,\r\n ConstructorFormComponent,\r\n ErrorComponent,\r\n ConstructorFieldTextComponent,\r\n ConstructorFieldDateComponent,\r\n ConstructorFieldSelectComponent,\r\n PsSelectComponent,\r\n ConstructorPreparationComponent,\r\n MethodAmountHintComponent,\r\n InputMaskCorrector,\r\n TabIndexFocusDirective,\r\n ConstructorFieldIframeComponent\r\n ],\r\n providers: [\r\n provideNgxMask(),\r\n NgxMaskPipe,\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: FORMAT_DATE,\r\n },\r\n display: {\r\n dateInput: FORMAT_DATE,\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n },\r\n },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n CSRFResolver,\r\n MaskResolver\r\n ]\r\n})\r\nexport default class PagesModule {\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { CheckinSessionInfoResponse, InvoiceStatus } from '../../../codegen/model/models';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { HttpBadRequestResponse } from '../../models/http-bad-request-response';\r\nimport { ApiErrorsService } from '../../services/api-errors.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Mode } from '../../models/mode';\r\nimport { CHECKIN_SERVICE_TOKEN } from '../../../const';\r\nimport { CheckinServiceInterface } from '../../../codegen/api/checkin.service';\r\nimport { CheckinModeToken, SessionToken } from '../../models';\r\n\r\n@Injectable()\r\nexport class CheckinDatasource {\r\n document = inject<Document>(DOCUMENT);\r\n private checkInApi = inject<CheckinServiceInterface>(CHECKIN_SERVICE_TOKEN);\r\n private token = inject(SessionToken, { optional: true }) || 'token';\r\n private cd = inject(ChangeDetectorRef);\r\n private apiErrorsSrv = inject(ApiErrorsService);\r\n private mode = inject<Mode>(CheckinModeToken);\r\n\r\n private _returnFailUrl: string;\r\n private _returnUrl: string;\r\n\r\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n check(options = {emitLoading: true}): Observable<CheckinSessionInfoResponse> {\r\n if (!this.token) {\r\n this.loading$.next(false);\r\n\r\n return of({\r\n invoiceId: 0,\r\n status: this.mode === Mode.Success ? InvoiceStatus.New : InvoiceStatus.Refused,\r\n redirectImmediate: false,\r\n successUrl: '',\r\n failUrl: ''\r\n });\r\n }\r\n\r\n if (options?.emitLoading) {\r\n this.loading$.next(true);\r\n }\r\n return this.checkInApi\r\n .getCheckinSessionInfo({\r\n token: this.token\r\n })\r\n .pipe(\r\n catchError(\r\n this.catchError(options?.emitLoading ? this.loading$ : undefined)\r\n ),\r\n tap(({status, failUrl, successUrl, redirectImmediate, error}) => {\r\n this._returnFailUrl = failUrl;\r\n this._returnUrl = successUrl;\r\n if (status === InvoiceStatus.Refused) {\r\n this._returnUrl = failUrl;\r\n this.apiErrorsSrv.setLocalError({code: error});\r\n }\r\n if (redirectImmediate && status !== InvoiceStatus.New) {\r\n this.returnBack();\r\n } else if (options?.emitLoading) {\r\n this.loading$.next(false);\r\n }\r\n })\r\n );\r\n }\r\n\r\n returnBack() {\r\n if (this._returnUrl) {\r\n this.document.defaultView.location.assign(this._returnUrl);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n setBackUrlAsFail() {\r\n this._returnUrl = this._returnFailUrl;\r\n }\r\n\r\n get returnBackUrl(): string {\r\n return this._returnUrl;\r\n }\r\n\r\n private catchError(loading$?: BehaviorSubject<boolean>) {\r\n return (err: HttpBadRequestResponse) => {\r\n this.apiErrorsSrv.setLocalError(err.error);\r\n loading$?.next(false);\r\n this.cd.markForCheck();\r\n return throwError(err);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { CheckinDatasource } from '../../services/checkin.datasource';\r\nimport { InvoiceStatus } from '../../../../codegen/model/invoiceStatus';\r\nimport { interval, Subject, timer } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ApiErrorsService } from '../../../services/api-errors.service';\r\nimport { Mode } from '../../../models/mode';\r\nimport { I18N_KEY } from './../../../i18n';\r\nimport { CheckinModeToken } from '../../../models';\r\nimport {\r\n TerminalLayoutTplComponent\r\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\r\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\r\n\r\n@Component({\r\n selector: 'app-checkin-page',\r\n templateUrl: './checkin-page.component.html',\r\n styleUrls: ['./checkin-page.component.scss'],\r\n providers: [\r\n {\r\n provide: CheckinModeToken,\r\n deps: [ActivatedRoute],\r\n useFactory: (activatedRoute: ActivatedRoute) => activatedRoute.snapshot.paramMap.get('mode')\r\n },\r\n CheckinDatasource\r\n ],\r\n imports: [TerminalLayoutTplComponent, ConstructorStatusComponent, AsyncPipe, TranslateByKeyPipe]\r\n})\r\nexport class CheckinPageComponent implements OnInit, OnDestroy {\r\n private checkinDS = inject(CheckinDatasource);\r\n private errorApiSrv = inject(ApiErrorsService);\r\n private cd = inject(ChangeDetectorRef);\r\n private mode = inject<Mode>(CheckinModeToken);\r\n\r\n private CHECK_TIME_INTERVAL = 1000;\r\n private CHECK_TIME = 10000;\r\n private REDIRECT_TIME_AFTER = 15000;\r\n private unSubscriber = new Subject<void>();\r\n private checkinClearTimerSubj$ = new Subject<void>();\r\n private checkinClearRedirectTimerSubj$ = new Subject<void>();\r\n I18N_KEY = I18N_KEY;\r\n hasStatusError = false;\r\n animation = true;\r\n inProgress = false;\r\n message = '';\r\n invoiceId: number | string;\r\n\r\n redirectTimerStarted = false;\r\n\r\n get returnBackUrl(): string {\r\n return this.checkinDS.returnBackUrl;\r\n }\r\n\r\n get loading() {\r\n return this.checkinDS.loading$;\r\n }\r\n\r\n get redirectTime() {\r\n return this.REDIRECT_TIME_AFTER / 1000;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.check();\r\n }\r\n\r\n private check(options = {emitLoading: true}) {\r\n this.checkinDS\r\n .check(options)\r\n .pipe(\r\n takeUntil(this.unSubscriber)\r\n )\r\n .subscribe(({status, invoiceId}) => {\r\n this.invoiceId = invoiceId;\r\n this.setMessage(status);\r\n\r\n this.inProgress = status === InvoiceStatus.New;\r\n if (this.inProgress) {\r\n this.startTimer();\r\n } else {\r\n this.startRedirectTimer();\r\n }\r\n\r\n this.cd.detectChanges();\r\n }, () => {\r\n this.setMessage(InvoiceStatus.Refused);\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n setMessage(status: InvoiceStatus = this.mode === Mode.Fail ? InvoiceStatus.Refused : InvoiceStatus.New) {\r\n switch (status) {\r\n case InvoiceStatus.New:\r\n this.inProgress = true;\r\n if (this.invoiceId === 0) {\r\n this.animation = false;\r\n this.message = I18N_KEY.CHECKIN_MESSAGE;\r\n return;\r\n }\r\n this.message = I18N_KEY.CHECKIN_WAIT;\r\n if (!this.CHECK_TIME) {\r\n this.animation = false;\r\n this.message = I18N_KEY.CHECKIN_WAIT_TIMEOVER;\r\n }\r\n break;\r\n case InvoiceStatus.Paid:\r\n this.inProgress = false;\r\n this.message = ``;\r\n break;\r\n case InvoiceStatus.Refused:\r\n this.checkinDS.setBackUrlAsFail();\r\n this.hasStatusError = true;\r\n this.inProgress = false;\r\n this.message = this.errorApiSrv.getLocalError() || I18N_KEY.CHECKIN_FAILED;\r\n break;\r\n }\r\n }\r\n\r\n get operationIdHint(): string {\r\n return this.invoiceId ? ` (Transaction&nbsp;ID:&nbsp;<b>${this.invoiceId}</b>)` : '';\r\n }\r\n\r\n private startTimer() {\r\n this.checkinClearTimerSubj$.next();\r\n this.CHECK_TIME -= this.CHECK_TIME_INTERVAL;\r\n if (!this.CHECK_TIME) {\r\n this.checkinClearTimerSubj$.next();\r\n this.setMessage();\r\n this.startRedirectTimer();\r\n return;\r\n }\r\n timer(this.CHECK_TIME_INTERVAL)\r\n .pipe(takeUntil(this.checkinClearTimerSubj$))\r\n .subscribe(() => this.check({emitLoading: false}));\r\n }\r\n\r\n private startRedirectTimer() {\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.redirectTimerStarted = true;\r\n this.cd.detectChanges();\r\n interval(1000)\r\n .pipe(takeUntil(this.checkinClearRedirectTimerSubj$))\r\n .subscribe(() => {\r\n this.REDIRECT_TIME_AFTER -= 1000;\r\n this.cd.detectChanges();\r\n if (!this.REDIRECT_TIME_AFTER) {\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.checkinDS.returnBack();\r\n }\r\n });\r\n }\r\n\r\n back() {\r\n this.checkinDS.returnBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscriber.next();\r\n this.unSubscriber.unsubscribe();\r\n this.checkinClearTimerSubj$.next();\r\n this.checkinClearTimerSubj$.unsubscribe();\r\n this.checkinClearRedirectTimerSubj$.next();\r\n this.checkinClearRedirectTimerSubj$.unsubscribe();\r\n }\r\n}\r\n","<app-terminal-layout-tpl [loading]=\"loading | async\">\r\n @if (!(loading | async)) {\r\n <app-constructor-status terminal-layout-status\r\n [inProgress]=\"inProgress\"\r\n [failed]=\"hasStatusError\"\r\n [animation]=\"animation\"\r\n [progressTitle]=\"(I18N_KEY.PROGRESS_TITLE | trans)\"\r\n [failTitle]=\"(I18N_KEY.FAIL_TITLE | trans)\"\r\n [successTitle]=\"(I18N_KEY.SUCCESS_TITLE | trans)\"\r\n [hasSupportHint]=\"false\"\r\n [message]=\"(message | trans) + operationIdHint\"\r\n [backUrl]=\"returnBackUrl\"\r\n [backUrlTitle]=\"I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans\"\r\n >\r\n @if (redirectTimerStarted) {\r\n <div constructor-status-button-hint>\r\n {{ I18N_KEY.REDIRECT_TEXT | trans }}&nbsp;<b>{{redirectTime}}</b>\r\n </div>\r\n }\r\n </app-constructor-status>\r\n }\r\n</app-terminal-layout-tpl>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CheckinPageComponent } from './components/checkin-page/checkin-page.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n TranslateModule,\r\n RouterModule.forChild([\r\n {\r\n path: ':mode',\r\n loadComponent: () => import('./components/checkin-page/checkin-page.component').then(m => m.CheckinPageComponent)\r\n }\r\n ]),\r\n CheckinPageComponent\r\n ]\r\n})\r\nexport class CheckinModule {\r\n}\r\n","import * as momentjs from 'moment-timezone';\r\n\r\nexport const moment = momentjs;\r\n","/*\r\n * Public API Surface of terminal\r\n */\r\n\r\nexport * from './lib';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["momentjs","i1","i1.IframeValidatorDirectiveDirective"],"mappings":"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"}