trm-tmpl 3.3.3 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/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/pipes/currency.pipe.ts","../../../projects/terminal-template/src/lib/app/pipes/html-sanitizer.pipe.ts","../../../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":["/**\n * Codes of the data validation API errors\n */\nexport enum ApiErrors {\n SESSION_NOT_FOUND = 'error_session_not_found',\n SESSION_USED = 'error_session_used',\n SESSION_EXPIRED = 'error_session_expired',\n FORMAT_WALLET = 'error_format_wallet',\n FORMAT_PHONE = 'error_format_phone',\n FORMAT_DATE_BIRTH = 'error_format_date_birth',\n FORMAT_EMAIL = 'error_format_email',\n FORMAT_STEAM_TOKEN = 'error_format_steam_token',\n FORMAT_NUMERIC = 'error_format_numeric',\n FORMAT_ZIP = 'error_format_zip',\n FORMAT_UPPER_LIMIT = 'error_format_upper_limit',\n FORMAT_LOWER_LIMIT = 'error_format_lower_limit',\n FORMAT_AMOUNT_OUT_OF_LIMIT = 'error_format_amount_out_of_limit',\n FORMAT_AMOUNT_NOT_POSITIVE = 'error_format_amount_not_positive',\n INSUFFICIENT_FUNDS = 'error_insufficient_funds',\n PAYMENT_COUNT_EXCEEDED = 'error_payment_count_exceeded',\n SECURITY_CHECK_FAILED = 'error_security_check_failed',\n INCORRECT_CARD_NUMBER = 'error_incorrect_card_number',\n INCORRECT_CARD_HOLDER = 'error_incorrect_card_holder',\n INCORRECT_CARD_CVV = 'error_incorrect_card_cvv',\n INCORRECT_CARD_DATE = 'error_incorrect_card_date',\n INCORRECT_CARD_DATA = 'error_incorrect_card_data',\n TRANSACTION_3DS_EXPIRED = 'error_transaction_3ds_expired',\n CARD_DATA_NOT_ENTERED = 'error_card_data_not_entered',\n CARD_EXPIRED = 'error_card_expired',\n AUTH_3DS_FAILED = 'error_auth_3ds_failed',\n CARD_LIMIT_EXCEEDED = 'error_card_limit_exceeded',\n USER_CANCEL_TRANSACTION = 'error_user_cancel_transaction',\n NOT_3DS_SECURE_PAYMENT = 'error_not_3ds_secure_payment',\n TIME_FOR_PAY_EXPIRED = 'error_time_for_expired',\n SOFT_DECLINE = 'error_soft_decline',\n USER_ACCOUNT_NOT_FOUND = 'error_user_account_not_found',\n PROVIDER_DENIED = 'error_provider_denied',\n INTERNAL = 'error_internal'\n};\n\n","export enum InvoiceStatus {\n New = 'new',\n Paid = 'paid',\n Refused = 'refused'\n};\n\n","import { registerLocaleData } from '@angular/common';\nimport localeRu from '@angular/common/locales/ru';\nimport localeEn from '@angular/common/locales/en';\nimport localeTr from '@angular/common/locales/tr';\nimport localeEs from '@angular/common/locales/es';\nimport localePt from '@angular/common/locales/pt';\nimport localeLt from '@angular/common/locales/lt';\nimport EN_COUNTRIES from 'i18n-iso-countries/langs/en.json';\nimport RU_COUNTRIES from 'i18n-iso-countries/langs/ru.json';\nimport ES_COUNTRIES from 'i18n-iso-countries/langs/es.json';\nimport TR_COUNTRIES from 'i18n-iso-countries/langs/tr.json';\nimport PT_COUNTRIES from 'i18n-iso-countries/langs/pt.json';\nimport LT_COUNTRIES from 'i18n-iso-countries/langs/lt.json';\nimport { registerLocale } from 'i18n-iso-countries';\n\nexport const OTHER_COUNTRY_CODE = 'other';\n\n// Additional countries\nObject.assign(EN_COUNTRIES.countries, {\n OS: 'South Ossetia',\n AB: 'Abkhazia',\n [OTHER_COUNTRY_CODE]: 'Other'\n});\nObject.assign(RU_COUNTRIES.countries, {\n OS: 'Южная Осетия',\n AB: 'Абхазия',\n [OTHER_COUNTRY_CODE]: 'Другие'\n});\n\nObject.assign(ES_COUNTRIES.countries, {\n OS: 'Osetia del Sur',\n AB: 'Abjasia',\n [OTHER_COUNTRY_CODE]: 'Otro'\n});\n\nObject.assign(TR_COUNTRIES.countries, {\n OS: 'Güney Osetya',\n AB: 'Abhazya',\n [OTHER_COUNTRY_CODE]: 'Diğer'\n});\n\nObject.assign(PT_COUNTRIES.countries, {\n OS: 'Ossétia do Sul',\n AB: 'Abecásia',\n [OTHER_COUNTRY_CODE]: 'Outro'\n});\n\nexport const loadI18NData = () => {\n registerLocaleData(localeRu);\n registerLocaleData(localeEn);\n registerLocaleData(localeEs);\n registerLocaleData(localeTr);\n registerLocaleData(localePt);\n registerLocaleData(localeLt);\n registerLocale(EN_COUNTRIES);\n registerLocale(RU_COUNTRIES);\n registerLocale(ES_COUNTRIES);\n registerLocale(TR_COUNTRIES);\n registerLocale(PT_COUNTRIES);\n registerLocale(LT_COUNTRIES);\n}\n\n","export enum I18N_KEY {\n TITLE_PAGE_INVOICE = 'TITLE_PAGE_INVOICE',\n TITLE_PAGE_SAVE_CARD = 'TITLE_PAGE_SAVE_CARD',\n TITLE_PAGE_PAY_CARD = 'TITLE_PAGE_PAY_CARD',\n CARD_SAVE_HEADER = 'CARD_SAVE_HEADER',\n CARD_PAY_HEADER = 'CARD_PAY_HEADER',\n CDE_CARD_ERROR_500 = 'CDE_CARD_ERROR_500',\n CDE_CARD_ERROR_501 = 'CDE_CARD_ERROR_501',\n CDE_CARD_ERROR_504 = 'CDE_CARD_ERROR_504',\n SESSION_CLOSED = 'session_closed',\n APPLE_NOT_AVAILABLE = 'apple_not_available',\n MIRPAY_NOT_AVAILABLE = 'mirpay_not_available',\n CDE_CARD_ERROR_ALREADY_PAID = 'CDE_CARD_ERROR_ALREADY_PAID',\n CDE_CARD_PAID = 'CDE_CARD_PAID',\n PAGE_NOT_FOUNT = 'page_not_found',\n DEFAULT_ERROR_CODE = 'error_api',\n DEFAULT_ERROR_CODE_GENERAL = 'error_general',\n ERROR_OCCUR = 'ERROR_OCCUR',\n ERROR_OCCUR_SDK = 'ERROR_OCCUR_SDK',\n PROGRESS_TITLE = 'PROGRESS_TITLE',\n FAIL_TITLE = 'FAIL_TITLE',\n SUCCESS_TITLE = 'SUCCESS_TITLE',\n REDIRECT_TEXT = 'REDIRECT_TEXT',\n CHECKIN_MESSAGE = 'CHECKIN_MESSAGE',\n CHECKIN_WAIT = 'CHECKIN_WAIT',\n CHECKIN_WAIT_TIMEOVER = 'CHECKIN_WAIT_TIMEOVER',\n CHECKIN_FAILED = 'CHECKIN_FAILED',\n PROGRESS_3DS_TITLE = 'PROGRESS_3DS_TITLE',\n PROGRESS_3DS_WAIT = 'PROGRESS_3DS_WAIT',\n PROGRESS_3DS_FAILED = 'PROGRESS_3DS_FAILED',\n SESSION_BREAK = 'SESSION_BREAK',\n TERMINAL_SESSION_BREAK = 'TERMINAL_SESSION_BREAK',\n TERMINAL_SESSION_SUCCESS = 'TERMINAL_SESSION_SUCCESS',\n TERMINAL_SESSION_SUPPORT = 'TERMINAL_SESSION_SUPPORT',\n SELECT_SEARCH = 'SELECT_SEARCH',\n SELECT_EMPTY_LIST = 'SELECT_EMPTY_LIST',\n VALIDATION_REQUIRED = 'validation_required',\n VALIDATION_EMAIL = 'validation_email',\n VALIDATION_MIN = 'validation_min',\n VALIDATION_MAX = 'validation_max',\n VALIDATION_PATTERN = 'validation_pattern',\n VALIDATION_DATE_MIN = 'validation_date_min',\n VALIDATION_DATE_MAX = 'validation_date_max',\n CONSTRUCTOR_LABEL_PHONE = 'CONSTRUCTOR_LABEL_PHONE',\n CONSTRUCTOR_LABEL_EMAIL = 'CONSTRUCTOR_LABEL_EMAIL',\n CONSTRUCTOR_LABEL_AMOUNT = 'CONSTRUCTOR_LABEL_AMOUNT',\n CONSTRUCTOR_LABEL_FIRSTNAME = 'CONSTRUCTOR_LABEL_FIRSTNAME',\n CONSTRUCTOR_LABEL_LASTNAME = 'CONSTRUCTOR_LABEL_LASTNAME',\n CONSTRUCTOR_LABEL_DATEBIRTH = 'CONSTRUCTOR_LABEL_DATEBIRTH',\n CONSTRUCTOR_LABEL_ZIP = 'CONSTRUCTOR_LABEL_ZIP',\n CONSTRUCTOR_LABEL_TYPEDOCUMENT = 'CONSTRUCTOR_LABEL_TYPEDOCUMENT',\n CONSTRUCTOR_LABEL_DOCUMENT = 'CONSTRUCTOR_LABEL_DOCUMENT',\n CONSTRUCTOR_LABEL_BANK = 'CONSTRUCTOR_LABEL_BANK',\n CONSTRUCTOR_LABEL_COUNTRY = 'CONSTRUCTOR_LABEL_COUNTRY',\n CONSTRUCTOR_LABEL_CONTINUE = 'CONSTRUCTOR_LABEL_CONTINUE',\n CONSTRUCTOR_LABEL_RETURN = 'CONSTRUCTOR_LABEL_RETURN',\n CONSTRUCTOR_LABEL_RETURN_TO_SHOP = 'CONSTRUCTOR_LABEL_RETURN_TO_SHOP',\n CONSTRUCTOR_LABEL_CANCEL_RETURN = 'CONSTRUCTOR_LABEL_CANCEL_RETURN',\n CONSTRUCTOR_LABEL_FEE = 'CONSTRUCTOR_LABEL_FEE',\n CONSTRUCTOR_LABEL_MIN_AMOUNT = 'CONSTRUCTOR_LABEL_MIN_AMOUNT',\n CONSTRUCTOR_LABEL_MAX_AMOUNT = 'CONSTRUCTOR_LABEL_MAX_AMOUNT',\n CONSTRUCTOR_LABEL_PS = 'CONSTRUCTOR_LABEL_PS',\n CONSTRUCTOR_LABEL_WALLET = 'CONSTRUCTOR_LABEL_WALLET',\n CONSTRUCTOR_LABEL_AMOUNT_FEE = 'CONSTRUCTOR_LABEL_AMOUNT_FEE',\n CONSTRUCTOR_LABEL_MIN_FIXED_FEE = 'CONSTRUCTOR_LABEL_MIN_FIXED_FEE',\n CONSTRUCTOR_LABEL_CURRENCY = 'CONSTRUCTOR_LABEL_CURRENCY',\n CONSTRUCTOR_PREPARATION_HEADER = 'CONSTRUCTOR_PREPARATION_HEADER',\n CONSTRUCTOR_MEGAFON_PREPARATION_TEXT = 'constructor_megafon_preparation_text',\n CONSTRUCTOR_PLACEHOLDER_PHONE = 'CONSTRUCTOR_PLACEHOLDER_PHONE',\n CONSTRUCTOR_PLACEHOLDER_EMAIL = 'CONSTRUCTOR_PLACEHOLDER_EMAIL',\n CONSTRUCTOR_PLACEHOLDER_AMOUNT = 'CONSTRUCTOR_PLACEHOLDER_AMOUNT',\n CONSTRUCTOR_PLACEHOLDER_FIRSTNAME = 'CONSTRUCTOR_PLACEHOLDER_FIRSTNAME',\n CONSTRUCTOR_PLACEHOLDER_LASTNAME = 'CONSTRUCTOR_PLACEHOLDER_LASTNAME',\n CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT',\n CONSTRUCTOR_PLACEHOLDER_ZIP = 'CONSTRUCTOR_PLACEHOLDER_ZIP',\n CONSTRUCTOR_PLACEHOLDER_BANK = 'CONSTRUCTOR_PLACEHOLDER_BANK',\n CONSTRUCTOR_PLACEHOLDER_DOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_DOCUMENT',\n CONSTRUCTOR_PLACEHOLDER_WALLET = 'CONSTRUCTOR_PLACEHOLDER_WALLET',\n CONSTRUCTOR_PLACEHOLDER_PS = 'CONSTRUCTOR_PLACEHOLDER_PS',\n CONSTRUCTOR_DESCRIPTION_VOUCHER = 'CONSTRUCTOR_DESCRIPTION_VOUCHER',\n CONSTRUCTOR_DESCRIPTION_APPLEPAY = 'CONSTRUCTOR_DESCRIPTION_APPLEPAY',\n CONSTRUCTOR_DESCRIPTION_CASHTOCODE = 'CONSTRUCTOR_DESCRIPTION_CASHTOCODE',\n CONSTRUCTOR_DESCRIPTION_PHONE = 'CONSTRUCTOR_DESCRIPTION_PHONE'\n}\n","import { ApiErrors } from '../../codegen/model/apiErrors';\nimport { I18N_KEY } from './i18n-key.enum';\n\nexport const i18nMap: Map<ApiErrors | I18N_KEY, string> = new Map<ApiErrors | I18N_KEY, string>(\n [\n [I18N_KEY.TITLE_PAGE_INVOICE, 'Пополнение'],\n [I18N_KEY.TITLE_PAGE_SAVE_CARD, 'Сохранение карты'],\n [I18N_KEY.TITLE_PAGE_PAY_CARD, 'Пополнение картой'],\n [ApiErrors.SESSION_USED, 'Сессия не установлена'],\n [ApiErrors.SESSION_EXPIRED, 'Сессия уже использована'],\n [ApiErrors.SESSION_NOT_FOUND, 'Время жизни сессии истекло'],\n [I18N_KEY.SESSION_BREAK, 'Сессия прервана'],\n [I18N_KEY.ERROR_OCCUR, 'Произошла ошибка'],\n [ApiErrors.FORMAT_DATE_BIRTH, 'Неправильный формат даты'],\n [ApiErrors.FORMAT_EMAIL, 'Неправильный формат email'],\n [ApiErrors.FORMAT_NUMERIC, 'Неправильный формат одного из числовых полей'],\n [ApiErrors.FORMAT_LOWER_LIMIT, 'Сумма меньше минимального значения'],\n [ApiErrors.FORMAT_UPPER_LIMIT, 'Превышено максимальное значение суммы'],\n [ApiErrors.FORMAT_AMOUNT_OUT_OF_LIMIT, 'Сумма за пределами допустимых лимитов'],\n [ApiErrors.FORMAT_AMOUNT_NOT_POSITIVE, 'Сумма должна быть положительной'],\n [ApiErrors.FORMAT_STEAM_TOKEN, 'Неправильный формат токена steam'],\n [ApiErrors.FORMAT_WALLET, 'Неправильный формат кошелька'],\n [ApiErrors.FORMAT_ZIP, 'Неправильный формат почтового индекса'],\n [ApiErrors.FORMAT_PHONE, 'Неправильный формат телефона'],\n [ApiErrors.INSUFFICIENT_FUNDS, 'Недостаточно средств, чтобы провести операцию'],\n [ApiErrors.PAYMENT_COUNT_EXCEEDED, 'Исчерпан лимит платежей для платёжного направления'],\n [ApiErrors.SECURITY_CHECK_FAILED, 'Операция отклонена системой безопасности'],\n [ApiErrors.PROVIDER_DENIED, 'Платёж отклонён провайдером'],\n [ApiErrors.INTERNAL, 'Внутренняя ошибка'],\n [I18N_KEY.CARD_SAVE_HEADER, 'Сохранение карты для дальнейших покупок'],\n [I18N_KEY.CARD_PAY_HEADER, 'Пополнение банковской картой'],\n [I18N_KEY.CDE_CARD_ERROR_501, 'Сессия с указанным токеном не найдена'],\n [I18N_KEY.CDE_CARD_ERROR_504, 'Время сессии истекло'],\n [I18N_KEY.CDE_CARD_ERROR_500, 'Внутренняя ошибка. Попробуйте повторить попытку позже'],\n [I18N_KEY.DEFAULT_ERROR_CODE, 'Обратитесь в техническую поддержку магазина'],\n [I18N_KEY.DEFAULT_ERROR_CODE_GENERAL, 'Произошла ошибка. Обратитесь в службу поддержки.'],\n [I18N_KEY.PAGE_NOT_FOUNT, 'Страница не найдена'],\n [I18N_KEY.SESSION_CLOSED, 'Сессия закрыта'],\n [I18N_KEY.APPLE_NOT_AVAILABLE, 'ApplePay недоступен в текущем окружении'],\n [I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID, 'Данные карты отправлены. Подтвердите платеж.'],\n [I18N_KEY.CDE_CARD_PAID, 'Данные карты отправлены.'],\n [I18N_KEY.MIRPAY_NOT_AVAILABLE, 'MirPay временно недоступен'],\n [I18N_KEY.VALIDATION_REQUIRED, 'Обязательное поле'],\n [I18N_KEY.CONSTRUCTOR_LABEL_PHONE, 'Номер телефона'],\n [I18N_KEY.CONSTRUCTOR_LABEL_EMAIL, 'Email'],\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT, 'Сумма платежа'],\n [I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME, 'Имя'],\n [I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME, 'Фамилия'],\n [I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH, 'Дата рождения'],\n [I18N_KEY.CONSTRUCTOR_LABEL_ZIP, 'Индекс'],\n [I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT, 'Тип документа'],\n [I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT, 'Документ'],\n [I18N_KEY.CONSTRUCTOR_LABEL_BANK, 'Банк'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE, 'Введите номер'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL, 'Введите email'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT, 'Укажите сумму'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME, 'Введите имя'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME, 'Введите фамилию'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT, 'Выберите тип'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP, 'Укажите индекс (например, 125047)'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK, 'Выберите банк'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT, 'Введите номер документа'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET, 'Введите номер кошелька'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS, 'Выбрать другой метод'],\n [I18N_KEY.VALIDATION_EMAIL, 'Некорректный адрес почты'],\n [I18N_KEY.VALIDATION_MIN, 'Значение ниже минимально возможного'],\n [I18N_KEY.VALIDATION_MAX, 'Значение выше максимально возможного'],\n [I18N_KEY.VALIDATION_PATTERN, 'Некорректное значение'],\n [I18N_KEY.VALIDATION_DATE_MIN, 'Значение ниже минимальной даты'],\n [I18N_KEY.VALIDATION_DATE_MAX, 'Превышено значение максимальной даты'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER, 'Ваучер действителен в течение 48 часов. Обработка платежей может занять до 3 рабочих дней.'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY, 'Данный метод работает только в браузере Safari'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE, 'Для успешного пополнения счета сумма пополнения должна быть равна: 10, 25, 50, 100, 200 или 400 евро.'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE, 'С кодом страны в международном формате'],\n [I18N_KEY.CONSTRUCTOR_LABEL_PS, 'Платежная система'],\n [I18N_KEY.CONSTRUCTOR_LABEL_WALLET, 'Кошелек'],\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE, 'Сумма с учетом комиссии'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE, 'но не менее '],\n [I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER, 'Подтвердите реквизиты платежа'],\n [I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT, 'Оплачивая услуги с помощью Мегафон, вы соглашаетесь с <a target=\"_blank\" href=\"https://moscow.megafon.ru/download/~federal/oferts/oferta_m_platezhi.pdf\">офертой</a>.'],\n [I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY, 'Страна'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE, 'Продолжить'],\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN, 'Вернуться назад'],\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP, 'Вернуться в магазин'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN, 'Отменить и вернуться'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY, 'Валюта'],\n [I18N_KEY.CONSTRUCTOR_LABEL_FEE, 'Комиссия'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT, 'Минимальная сумма'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT, 'Максимальная сумма'],\n [I18N_KEY.PROGRESS_TITLE, 'Платёж принят в обработку'],\n [I18N_KEY.FAIL_TITLE, 'Не удалось провести платёж'],\n [I18N_KEY.SUCCESS_TITLE, 'Ваш платёж успешно оплачен!'],\n [I18N_KEY.REDIRECT_TEXT, 'Вы будете автоматически перенаправлены через'],\n [I18N_KEY.CHECKIN_MESSAGE, 'Операция будет обработана в ближайшее время.'],\n [I18N_KEY.CHECKIN_WAIT, 'Пожалуйста, дождитесь окончательного статуса платежа.'],\n [I18N_KEY.CHECKIN_WAIT_TIMEOVER, 'Время ожидания статуса истекло. Транзакция будет обработана в ближайшее время.'],\n [I18N_KEY.CHECKIN_FAILED, 'Платежная операция не может быть обработана или завершилась с ошибкой.'],\n [I18N_KEY.PROGRESS_3DS_TITLE, 'Принято в обработку'],\n [I18N_KEY.PROGRESS_3DS_WAIT, 'Пожалуйста, дождитесь окончания проверки.'],\n [I18N_KEY.PROGRESS_3DS_FAILED, 'Произошла ошибка при обработке 3ds пароля.'],\n [I18N_KEY.TERMINAL_SESSION_BREAK, 'Сессия терминала была прервана'],\n [I18N_KEY.TERMINAL_SESSION_SUCCESS, 'Операция прошла успешно!'],\n [I18N_KEY.TERMINAL_SESSION_SUPPORT, 'В случае возникновения проблем с платежом, обращайтесь в техническую поддержку магазина или к нам на почту'],\n [I18N_KEY.SELECT_SEARCH, 'Поиск'],\n [I18N_KEY.SELECT_EMPTY_LIST, 'Список пуст'],\n [I18N_KEY.ERROR_OCCUR_SDK, 'Ошибка загрузки терминала']\n ]\n);\n\nexport const getI18Key: ((key: I18N_KEY | ApiErrors) => string) = (key: I18N_KEY | ApiErrors) => {\n return i18nMap.get(key);\n}\n","import { InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Mode } from './mode';\n\nexport enum LANGUAGE {\n EN = 'en',\n RU = 'ru',\n ES = 'es',\n TR = 'tr',\n PT = 'pt',\n LT = 'lt'\n}\nexport const LOCAL_LANG_KEY = 'TERMINAL_LANG';\nexport const DEFAULT_LANG = 'en';\nexport const APP_READY_TOKEN = new InjectionToken<BehaviorSubject<boolean>>(\n 'APP_READY',\n { providedIn: 'root', factory: () => new BehaviorSubject<boolean>(false) }\n);\nexport const CSRF_COOKIE_NAME = 'TERMINAL-CSRF-KEY';\nexport const I18N_COUNTRIES = new InjectionToken('i18n-iso-countries');\n\nexport const SessionToken = new InjectionToken<string>('SessionToken');\nexport const CheckinModeToken = new InjectionToken<Mode>('CheckinModeToken');\nexport const DEFAULT_COUNTRY_LOCALHOST_KEY = 'GM_TERMINAL_COUNTRY';\nexport const DEFAULT_METHOD_LOCALHOST_KEY = 'GM_TERMINAL_METHOD';\nexport const DEFAULT_CURRENCY_LOCALHOST_KEY = 'GM_TERMINAL_CURRENCY';\n","export enum Mode {\n Success = 'success',\n Fail = 'fail'\n}\n","import { VersionServiceInterface } from './version-service-interface';\nimport { MethodType } from '../../codegen/model/methodType';\n\n\nexport abstract class VersionServiceBase implements VersionServiceInterface {\n\n logoClass: string;\n methods: MethodType[];\n footerText;\n pageTitle = 'Title';\n supportEmail = '';\n\n\tprotected constructor(protected document: Document) {\n this.footerText = `${document.defaultView.location.hostname} © ${new Date().getFullYear()}`\n\t}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ApiErrors, BadRequestResponse } from '../../codegen/model/models';\nimport { I18N_KEY } from './../i18n';\nimport { SessionToken } from '../models';\n\ntype ErrorCode = I18N_KEY | ApiErrors;\n\n@Injectable()\nexport class ApiErrorsService {\n private token = inject(SessionToken, {optional: true}) || 'token';\n\n private _localError: ErrorCode;\n\n constructor() {\n }\n\n clear(): void {\n this._localError = null;\n }\n\n get hasError(): boolean {\n return !!this._localError;\n }\n\n get hasFatalError(): boolean {\n const formatErrors: ErrorCode[] = [\n ApiErrors.FORMAT_PHONE,\n ApiErrors.FORMAT_DATE_BIRTH,\n ApiErrors.FORMAT_EMAIL,\n ApiErrors.FORMAT_NUMERIC,\n ApiErrors.FORMAT_LOWER_LIMIT,\n ApiErrors.FORMAT_UPPER_LIMIT,\n ApiErrors.FORMAT_STEAM_TOKEN,\n ApiErrors.FORMAT_WALLET,\n ApiErrors.FORMAT_ZIP,\n ];\n if (formatErrors.includes(this._localError)) {\n return false;\n }\n return !!this._localError;\n }\n\n setLocalError(err?: BadRequestResponse | { code: I18N_KEY }): void {\n let code: ErrorCode = I18N_KEY.DEFAULT_ERROR_CODE;\n if (err?.code) {\n code = err.code;\n }\n this._localError = code;\n }\n\n get hasLocalError() {\n return !!this._localError;\n }\n\n getLocalError() {\n return this._localError;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { PaymentFields } from './app/pages';\nimport { CheckinServiceInterface, ConfigurationApiInterface, TerminalServiceInterface } from './codegen';\nimport { CdeTerminalSdk, VersionServiceInterface } from './app/models';\n\nexport const CONFIGURATION_TOKEN = new InjectionToken<ConfigurationApiInterface>('CONFIGURATION_TOKEN');\nexport const CHECKIN_SERVICE_TOKEN = new InjectionToken<CheckinServiceInterface>('CHECKIN_SERVICE_TOKEN');\nexport const TERMINAL_SERVICE_TOKEN = new InjectionToken<TerminalServiceInterface>('TERMINAL_SERVICE_TOKEN');\nexport const TERMINAL_METHOD_CONFIGURATION_FACTORY = new InjectionToken<(method: string, defaultConfig: PaymentFields) => PaymentFields>('TERMINAL_METHOD_CONFIGURATION_FACTORY');\nexport const ENVIRONMENT = new InjectionToken<{production: boolean, csrf: boolean}>('ENVIRONMENT');\nexport const TERMINAL_VERSION_SERVICE_TOKEN = new InjectionToken<VersionServiceInterface>('TERMINAL_VERSION_SERVICE_TOKEN');\n\nexport const TERMINAL_SDK_FACTORY = new InjectionToken<(token: string, id: string, options: {lang: string, tabindex?: number}) => CdeTerminalSdk>('TERMINAL_SDK_FACTORY');\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { Alpha2Code } from 'i18n-iso-countries';\nimport {\n DEFAULT_COUNTRY_LOCALHOST_KEY,\n DEFAULT_CURRENCY_LOCALHOST_KEY,\n DEFAULT_METHOD_LOCALHOST_KEY,\n LOCAL_LANG_KEY,\n} from '../models/constants';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorage {\n private _document: Document = inject(DOCUMENT);\n private readonly _supported: boolean = true;\n constructor() {\n try {\n if (!this._document.defaultView.localStorage) {\n this._supported = false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n this._supported = false;\n }\n }\n\n private get _storage(): Storage {\n return this._document.defaultView.localStorage;\n }\n\n getItem(key: string): string | null {\n if (!this._supported) {\n return null;\n }\n return this._storage.getItem(key);\n }\n\n setItem(key: string, value: string): void {\n if (!this._supported) {\n return;\n }\n this._storage.setItem(key, value);\n }\n\n private _defaultCountry: Alpha2Code;\n private _defaultMethodName: string;\n private _defaultCurrency: string;\n private _defaultLang: string;\n\n get defaultCountry(): Alpha2Code | null {\n return (\n this._defaultCountry ||\n (this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY) as Alpha2Code)\n );\n }\n\n get defaultMethodName(): string | null {\n return (\n this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY)\n );\n }\n\n get defaultCurrency(): string | null {\n return (\n this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY)\n );\n }\n\n get defaultLang(): string | null {\n return this._defaultLang || this.getItem(LOCAL_LANG_KEY);\n }\n\n saveDefaultCountry(value: string): void {\n this._defaultCountry = value as Alpha2Code;\n this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);\n }\n\n saveDefaultMethodName(value: string): void {\n this._defaultMethodName = value;\n this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);\n }\n\n saveDefaultCurrency(value: string): void {\n this._defaultCurrency = value;\n this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);\n }\n\n saveDefaultLang(value: string): void {\n this._defaultLang = value;\n this.setItem(LOCAL_LANG_KEY, value);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ApiErrorsService } from './api-errors.service';\nimport momentjs from 'moment-timezone';\nimport { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';\nimport { ConfigurationApiInterface } from '../../codegen/api/configuration';\nimport { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\nimport { ApiErrors } from '../../codegen/model/apiErrors';\nimport { LocalStorage } from \"./local-storage\";\n\n@Injectable()\nexport class CSRFResolver {\n private cookieSrv = inject(CookieService);\n private apiErrorsSrv = inject(ApiErrorsService);\n private configuration = inject<ConfigurationApiInterface>(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\n private token = inject(SessionToken, { optional: true }) || 'token';\n private environment = inject(ENVIRONMENT);\n\n private storage: LocalStorage = inject(LocalStorage);\n\n constructor() {\n }\n\n private saveDefaultCountry(defaultCountryISOCode: string) {\n if (defaultCountryISOCode) {\n this.storage.saveDefaultCountry(defaultCountryISOCode);\n }\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n const token = this.token;\n if (!token) {\n if (!this.apiErrorsSrv.hasError) {\n this.apiErrorsSrv.setLocalError({code: ApiErrors.SESSION_NOT_FOUND});\n }\n return of(true);\n }\n const timezone = momentjs.tz.guess();\n\n if (!this.environment.csrf) {\n return of(false);\n }\n if (this.resolveCSRF(token)) {\n return of(true);\n }\n return this.terminalApi.postTerminalOpen({\n token,\n terminalOpenRequest: {\n timezone\n }\n })\n .pipe(\n catchError((err) => {\n this.apiErrorsSrv.setLocalError(err.error);\n return of({csrf: null, defaultCountryISOCode: null});\n }),\n map(({csrf, defaultCountryISOCode}) => {\n this.saveDefaultCountry(defaultCountryISOCode);\n this.resolveCSRF(token, csrf);\n return true;\n })\n );\n }\n\n resolveCSRF(token: string, csrf?: string): boolean {\n if (!csrf) {\n if (token && this.cookieSrv.check(`${token}_${CSRF_COOKIE_NAME}`)) {\n this.apiErrorsSrv.clear();\n this.configuration.credentials.CSRF = this.cookieSrv.get(`${token}_${CSRF_COOKIE_NAME}`);\n return true;\n }\n } else {\n this.apiErrorsSrv.clear();\n this.cookieSrv.set(`${token}_${CSRF_COOKIE_NAME}`, csrf, momentjs().add(24, 'hours').toDate(), undefined, undefined, this.environment.production);\n this.configuration.credentials.CSRF = csrf;\n return true;\n }\n return false;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ApiErrorsService } from './api-errors.service';\n\n@Injectable()\nexport class ErrorInterceptorService implements HttpInterceptor {\n private apiErrorSrv = inject(ApiErrorsService);\n\n\n constructor() { }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next\n .handle(req)\n .pipe(\n catchError((err: HttpErrorResponse) => {\n if (err.status === 404 || err.status === 500) {\n this.apiErrorSrv.setLocalError();\n }\n return throwError(err);\n })\n );\n }\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DEFAULT_LANG, LANGUAGE } from '../../models/constants'\nimport { Alpha2Code } from 'i18n-iso-countries';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';\nimport { VersionServiceInterface } from '../../models';\nimport { LocalStorage } from \"../local-storage\";\nimport { Observable } from \"rxjs\";\n\n\ninterface TranslationLangInfoMeta {\n code: string;\n name: string;\n countries: Alpha2Code[];\n}\n\nexport interface TranslationLangInfo {\n [key: string]: TranslationLangInfoMeta;\n}\n\nconst TRANSLATION_LANG_KEYS: TranslationLangInfo = {\n [LANGUAGE.RU]: {\n code: 'ru',\n name: 'Русский',\n countries: [\n 'AZ',\n 'AM',\n 'BY',\n 'KZ',\n 'KG',\n 'MD',\n 'RU',\n 'TJ',\n 'TM',\n 'UZ',\n 'UA',\n ],\n },\n [LANGUAGE.EN]: {\n code: 'gb',\n name: 'English',\n countries: [],\n },\n [LANGUAGE.ES]: {\n code: 'es',\n name: 'Español',\n countries: [\n 'BZ',\n 'GT',\n 'HN',\n 'CR',\n 'PA',\n 'NI',\n 'SV',\n 'AR',\n 'CL',\n 'CO',\n 'EC',\n 'PY',\n 'PE',\n 'GY',\n 'ES',\n ],\n },\n [LANGUAGE.TR]: {\n code: 'tr',\n name: 'Türkçe',\n countries: ['TR'],\n },\n [LANGUAGE.PT]: {\n code: 'pt',\n name: 'Português',\n countries: ['PT', 'BR'],\n },\n};\n@Injectable()\nexport class TranslateLangStorageService {\n private _storage: LocalStorage = inject(LocalStorage);\n\n constructor() {\n }\n\n get languages() {\n return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];\n }\n\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n private document = inject<Document>(DOCUMENT);\n private translateSrv = inject(TranslateService);\n\n readonly TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;\n\n private get location(): Location {\n return this.document.defaultView.location;\n }\n\n get onLangChange$(): EventEmitter<LangChangeEvent> {\n return this.translateSrv.onLangChange;\n }\n\n get currentLang(): string {\n return this.translateSrv.currentLang;\n }\n\n get queryLang(): string | null {\n return new URL(this.location.href).searchParams.get('language');\n }\n\n private get countryLanguage(): string | null {\n const code = this._storage.defaultCountry?.toUpperCase();\n if (!code) {\n return null;\n }\n return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang: LANGUAGE) => {\n const meta = this.TRANSLATION_LANG_KEYS[lang];\n return meta?.countries.some((c) => c.includes(code.toUpperCase()));\n });\n }\n\n setLanguage$(\n options: { save: boolean; lang?: string } = {save: true},\n ): Observable<any> {\n const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);\n let candidateLang = DEFAULT_LANG;\n const lang = options?.lang?.toLowerCase();\n const queryLang = this.queryLang?.toLowerCase();\n const storageLang = this._storage.defaultLang?.toLowerCase();\n const countryLang = this.countryLanguage?.toLowerCase();\n if (availableLanguages.includes(lang)) {\n candidateLang = lang;\n } else if (availableLanguages.includes(storageLang)) {\n candidateLang = storageLang;\n } else if (availableLanguages.includes(queryLang)) {\n candidateLang = queryLang;\n } else if (availableLanguages.includes(countryLang)) {\n candidateLang = countryLang;\n }\n if (!this.versionSrv.langs.includes(candidateLang as LANGUAGE)) {\n candidateLang = DEFAULT_LANG;\n }\n\n if (options?.save) {\n this._storage.saveDefaultLang(candidateLang);\n }\n\n return this.translateSrv.use(candidateLang);\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { delay, first, map } from 'rxjs/operators';\n\nconst DELAY_INITIAL_LOADER_HIDING = 0;\nconst LOADER_HIDE_CSS_CLASS = 'trm-loader-init--hide';\n\nexport function hideInitLoader(): Observable<boolean> {\n return of(false).pipe(\n first(),\n map(() => {\n const loader = document.querySelector('.trm-loader-init');\n if (!loader) {\n return false;\n }\n loader.classList.add(LOADER_HIDE_CSS_CLASS);\n return true;\n }),\n delay(DELAY_INITIAL_LOADER_HIDING)\n );\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const insertRemoveTrigger = trigger('insertRemove', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('150ms', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate('150ms', style({ opacity: 0 }))\n ])\n])\n","export const removeSpecSymbols = (s) => s.replace(/[\\+\\(\\)\\-\\s]+/g, '');\nexport const PHONE_MASKS = [\n {\n mask: '+247-dddd',\n cc: 'AC',\n name_en: 'Ascension',\n desc_en: '',\n name_ru: 'Остров Вознесения',\n desc_ru: ''\n },\n { mask: '+376-ddd-ddd', cc: 'AD', name_en: 'Andorra', desc_en: '', name_ru: 'Андорра', desc_ru: '' },\n {\n mask: '+971-5d-ddd-dddd',\n cc: 'AE',\n name_en: 'United Arab Emirates',\n desc_en: 'mobile',\n name_ru: 'Объединенные Арабские Эмираты',\n desc_ru: 'мобильные'\n },\n {\n mask: '+971-d-ddd-dddd',\n cc: 'AE',\n name_en: 'United Arab Emirates',\n desc_en: '',\n name_ru: 'Объединенные Арабские Эмираты',\n desc_ru: ''\n },\n {\n mask: '+93-dd-ddd-dddd',\n cc: 'AF',\n name_en: 'Afghanistan',\n desc_en: '',\n name_ru: 'Афганистан',\n desc_ru: ''\n },\n {\n mask: '+1 (268) ddd-dddd',\n cc: 'AG',\n name_en: 'Antigua & Barbuda',\n desc_en: '',\n name_ru: 'Антигуа и Барбуда',\n desc_ru: ''\n },\n { mask: '+1 (264) ddd-dddd', cc: 'AI', name_en: 'Anguilla', desc_en: '', name_ru: 'Ангилья', desc_ru: '' },\n { mask: '+355 (ddd) ddd-ddd', cc: 'AL', name_en: 'Albania', desc_en: '', name_ru: 'Албания', desc_ru: '' },\n { mask: '+374-dd-ddd-ddd', cc: 'AM', name_en: 'Armenia', desc_en: '', name_ru: 'Армения', desc_ru: '' },\n {\n mask: '+599-ddd-dddd',\n cc: 'AN',\n name_en: 'Caribbean Netherlands',\n desc_en: '',\n name_ru: 'Карибские Нидерланды',\n desc_ru: ''\n },\n {\n mask: '+599-ddd-dddd',\n cc: 'AN',\n name_en: 'Netherlands Antilles',\n desc_en: '',\n name_ru: 'Нидерландские Антильские острова',\n desc_ru: ''\n },\n {\n mask: '+599-9ddd-dddd',\n cc: 'AN',\n name_en: 'Netherlands Antilles',\n desc_en: 'Curacao',\n name_ru: 'Нидерландские Антильские острова',\n desc_ru: 'Кюрасао'\n },\n { mask: '+244 (ddd) ddd-ddd', cc: 'AO', name_en: 'Angola', desc_en: '', name_ru: 'Ангола', desc_ru: '' },\n {\n mask: '+672-1dd-ddd',\n cc: 'AQ',\n name_en: 'Australian bases in Antarctica',\n desc_en: '',\n name_ru: 'Австралийская антарктическая база',\n desc_ru: ''\n },\n {\n mask: '+54 (ddd) ddd-dddd',\n cc: 'AR',\n name_en: 'Argentina',\n desc_en: '',\n name_ru: 'Аргентина',\n desc_ru: ''\n },\n {\n mask: '+1 (684) ddd-dddd',\n cc: 'AS',\n name_en: 'American Samoa',\n desc_en: '',\n name_ru: 'Американское Самоа',\n desc_ru: ''\n },\n { mask: '+43 (ddd) ddd-dddd', cc: 'AT', name_en: 'Austria', desc_en: '', name_ru: 'Австрия', desc_ru: '' },\n { mask: '+61-d-dddd-dddd', cc: 'AU', name_en: 'Australia', desc_en: '', name_ru: 'Австралия', desc_ru: '' },\n { mask: '+297-ddd-dddd', cc: 'AW', name_en: 'Aruba', desc_en: '', name_ru: 'Аруба', desc_ru: '' },\n {\n mask: '+994-dd-ddd-dd-dd',\n cc: 'AZ',\n name_en: 'Azerbaijan',\n desc_en: '',\n name_ru: 'Азербайджан',\n desc_ru: ''\n },\n {\n mask: '+387-dd-ddddd',\n cc: 'BA',\n name_en: 'Bosnia and Herzegovina',\n desc_en: '',\n name_ru: 'Босния и Герцеговина',\n desc_ru: ''\n },\n {\n mask: '+387-dd-dddd',\n cc: 'BA',\n name_en: 'Bosnia and Herzegovina',\n desc_en: '',\n name_ru: 'Босния и Герцеговина',\n desc_ru: ''\n },\n { mask: '+1 (246) ddd-dddd', cc: 'BB', name_en: 'Barbados', desc_en: '', name_ru: 'Барбадос', desc_ru: '' },\n {\n mask: '+880-dd-ddd-ddd',\n cc: 'BD',\n name_en: 'Bangladesh',\n desc_en: '',\n name_ru: 'Бангладеш',\n desc_ru: ''\n },\n { mask: '+32 (ddd) ddd-ddd', cc: 'BE', name_en: 'Belgium', desc_en: '', name_ru: 'Бельгия', desc_ru: '' },\n {\n mask: '+226-dd-dd-dddd',\n cc: 'BF',\n name_en: 'Burkina Faso',\n desc_en: '',\n name_ru: 'Буркина Фасо',\n desc_ru: ''\n },\n { mask: '+359 (ddd) ddd-ddd', cc: 'BG', name_en: 'Bulgaria', desc_en: '', name_ru: 'Болгария', desc_ru: '' },\n { mask: '+973-dddd-dddd', cc: 'BH', name_en: 'Bahrain', desc_en: '', name_ru: 'Бахрейн', desc_ru: '' },\n { mask: '+257-dd-dd-dddd', cc: 'BI', name_en: 'Burundi', desc_en: '', name_ru: 'Бурунди', desc_ru: '' },\n { mask: '+229-dd-dd-dddd', cc: 'BJ', name_en: 'Benin', desc_en: '', name_ru: 'Бенин', desc_ru: '' },\n {\n mask: '+1 (441) ddd-dddd',\n cc: 'BM',\n name_en: 'Bermuda',\n desc_en: '',\n name_ru: 'Бермудские острова',\n desc_ru: ''\n },\n {\n mask: '+673-ddd-dddd',\n cc: 'BN',\n name_en: 'Brunei Darussalam',\n desc_en: '',\n name_ru: 'Бруней-Даруссалам',\n desc_ru: ''\n },\n { mask: '+591-d-ddd-dddd', cc: 'BO', name_en: 'Bolivia', desc_en: '', name_ru: 'Боливия', desc_ru: '' },\n { mask: '+55 (dd) dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\n { mask: '+55 (dd) 9dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\n {\n mask: '+1 (242) ddd-dddd',\n cc: 'BS',\n name_en: 'Bahamas',\n desc_en: '',\n name_ru: 'Багамские Острова',\n desc_ru: ''\n },\n { mask: '+975-17-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\n { mask: '+975-d-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\n { mask: '+267-dd-ddd-ddd', cc: 'BW', name_en: 'Botswana', desc_en: '', name_ru: 'Ботсвана', desc_ru: '' },\n {\n mask: '+375 (dd) ddd-dd-dd',\n cc: 'BY',\n name_en: 'Belarus',\n desc_en: '',\n name_ru: 'Беларусь (Белоруссия) ',\n desc_ru: ''\n },\n { mask: '+501-ddd-dddd', cc: 'BZ', name_en: 'Belize', desc_en: '', name_ru: 'Белиз', desc_ru: '' },\n {\n mask: '+243 (ddd) ddd-ddd',\n cc: 'CD',\n name_en: 'Dem. Rep. Congo',\n desc_en: '',\n name_ru: 'Дем. Респ. Конго (Киншаса) ',\n desc_ru: ''\n },\n {\n mask: '+236-dd-dd-dddd',\n cc: 'CF',\n name_en: 'Central African Republic',\n desc_en: '',\n name_ru: 'Центральноафриканская Республика',\n desc_ru: ''\n },\n {\n mask: '+242-dd-ddd-dddd',\n cc: 'CG',\n name_en: 'Congo (Brazzaville) ',\n desc_en: '',\n name_ru: 'Конго (Браззавиль) ',\n desc_ru: ''\n },\n {\n mask: '+41-dd-ddd-dddd',\n cc: 'CH',\n name_en: 'Switzerland',\n desc_en: '',\n name_ru: 'Швейцария',\n desc_ru: ''\n },\n {\n mask: '+225-dd-ddd-ddd',\n cc: 'CI',\n name_en: 'Cote d’Ivoire (Ivory Coast) ',\n desc_en: '',\n name_ru: 'Кот-д’Ивуар',\n desc_ru: ''\n },\n {\n mask: '+682-dd-ddd',\n cc: 'CK',\n name_en: 'Cook Islands',\n desc_en: '',\n name_ru: 'Острова Кука',\n desc_ru: ''\n },\n { mask: '+56-d-dddd-dddd', cc: 'CL', name_en: 'Chile', desc_en: '', name_ru: 'Чили', desc_ru: '' },\n { mask: '+237-dddd-dddd', cc: 'CM', name_en: 'Cameroon', desc_en: '', name_ru: 'Камерун', desc_ru: '' },\n {\n mask: '+86 (ddd) dddd-dddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n {\n mask: '+86 (ddd) dddd-ddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n {\n mask: '+86-dd-ddddd-ddddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n { mask: '+57 (ddd) ddd-dddd', cc: 'CO', name_en: 'Colombia', desc_en: '', name_ru: 'Колумбия', desc_ru: '' },\n {\n mask: '+506-dddd-dddd',\n cc: 'CR',\n name_en: 'Costa Rica',\n desc_en: '',\n name_ru: 'Коста-Рика',\n desc_ru: ''\n },\n { mask: '+53-d-ddd-dddd', cc: 'CU', name_en: 'Cuba', desc_en: '', name_ru: 'Куба', desc_ru: '' },\n {\n mask: '+238 (ddd) dd-dd',\n cc: 'CV',\n name_en: 'Cape Verde',\n desc_en: '',\n name_ru: 'Кабо-Верде',\n desc_ru: ''\n },\n { mask: '+599-ddd-dddd', cc: 'CW', name_en: 'Curacao', desc_en: '', name_ru: 'Кюрасао', desc_ru: '' },\n { mask: '+357-dd-ddd-ddd', cc: 'CY', name_en: 'Cyprus', desc_en: '', name_ru: 'Кипр', desc_ru: '' },\n {\n mask: '+420 (ddd) ddd-ddd',\n cc: 'CZ',\n name_en: 'Czech Republic',\n desc_en: '',\n name_ru: 'Чехия',\n desc_ru: ''\n },\n { mask: '+49 (dddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-dd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49-ddd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+253-dd-dd-dd-dd', cc: 'DJ', name_en: 'Djibouti', desc_en: '', name_ru: 'Джибути', desc_ru: '' },\n { mask: '+45-dd-dd-dd-dd', cc: 'DK', name_en: 'Denmark', desc_en: '', name_ru: 'Дания', desc_ru: '' },\n { mask: '+1 (767) ddd-dddd', cc: 'DM', name_en: 'Dominica', desc_en: '', name_ru: 'Доминика', desc_ru: '' },\n {\n mask: '+1 (809) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n {\n mask: '+1 (829) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n {\n mask: '+1 (849) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n { mask: '+213-dd-ddd-dddd', cc: 'DZ', name_en: 'Algeria', desc_en: '', name_ru: 'Алжир', desc_ru: '' },\n {\n mask: '+593-dd-ddd-dddd',\n cc: 'EC',\n name_en: 'Ecuador ',\n desc_en: 'mobile',\n name_ru: 'Эквадор ',\n desc_ru: 'мобильные'\n },\n { mask: '+593-d-ddd-dddd', cc: 'EC', name_en: 'Ecuador', desc_en: '', name_ru: 'Эквадор', desc_ru: '' },\n {\n mask: '+372-dddd-dddd',\n cc: 'EE',\n name_en: 'Estonia ',\n desc_en: 'mobile',\n name_ru: 'Эстония ',\n desc_ru: 'мобильные'\n },\n { mask: '+372-ddd-dddd', cc: 'EE', name_en: 'Estonia', desc_en: '', name_ru: 'Эстония', desc_ru: '' },\n { mask: '+20 (ddd) ddd-dddd', cc: 'EG', name_en: 'Egypt', desc_en: '', name_ru: 'Египет', desc_ru: '' },\n { mask: '+291-d-ddd-ddd', cc: 'ER', name_en: 'Eritrea', desc_en: '', name_ru: 'Эритрея', desc_ru: '' },\n { mask: '+34 (ddd) ddd-ddd', cc: 'ES', name_en: 'Spain', desc_en: '', name_ru: 'Испания', desc_ru: '' },\n { mask: '+251-dd-ddd-dddd', cc: 'ET', name_en: 'Ethiopia', desc_en: '', name_ru: 'Эфиопия', desc_ru: '' },\n {\n mask: '+358 (ddd) ddd-dd-dd',\n cc: 'FI',\n name_en: 'Finland',\n desc_en: '',\n name_ru: 'Финляндия',\n desc_ru: ''\n },\n { mask: '+679-dd-ddddd', cc: 'FJ', name_en: 'Fiji', desc_en: '', name_ru: 'Фиджи', desc_ru: '' },\n {\n mask: '+500-ddddd',\n cc: 'FK',\n name_en: 'Falkland Islands',\n desc_en: '',\n name_ru: 'Фолклендские острова',\n desc_ru: ''\n },\n {\n mask: '+691-ddd-dddd',\n cc: 'FM',\n name_en: 'F.S. Micronesia',\n desc_en: '',\n name_ru: 'Ф.Ш. Микронезии',\n desc_ru: ''\n },\n {\n mask: '+298-ddd-ddd',\n cc: 'FO',\n name_en: 'Faroe Islands',\n desc_en: '',\n name_ru: 'Фарерские острова',\n desc_ru: ''\n },\n { mask: '+262-ddddd-dddd', cc: 'FR', name_en: 'Mayotte', desc_en: '', name_ru: 'Майотта', desc_ru: '' },\n { mask: '+33 (ddd) ddd-ddd', cc: 'FR', name_en: 'France', desc_en: '', name_ru: 'Франция', desc_ru: '' },\n {\n mask: '+508-dd-dddd',\n cc: 'FR',\n name_en: 'St Pierre & Miquelon',\n desc_en: '',\n name_ru: 'Сен-Пьер и Микелон',\n desc_ru: ''\n },\n {\n mask: '+590 (ddd) ddd-ddd',\n cc: 'FR',\n name_en: 'Guadeloupe',\n desc_en: '',\n name_ru: 'Гваделупа',\n desc_ru: ''\n },\n { mask: '+241-d-dd-dd-dd', cc: 'GA', name_en: 'Gabon', desc_en: '', name_ru: 'Габон', desc_ru: '' },\n { mask: '+1 (473) ddd-dddd', cc: 'GD', name_en: 'Grenada', desc_en: '', name_ru: 'Гренада', desc_ru: '' },\n {\n mask: '+995 (ddd) ddd-ddd',\n cc: 'GE',\n name_en: 'Rep. of Georgia',\n desc_en: '',\n name_ru: 'Грузия',\n desc_ru: ''\n },\n {\n mask: '+594-ddddd-dddd',\n cc: 'GF',\n name_en: 'Guiana (French) ',\n desc_en: '',\n name_ru: 'Фр. Гвиана',\n desc_ru: ''\n },\n { mask: '+233 (ddd) ddd-ddd', cc: 'GH', name_en: 'Ghana', desc_en: '', name_ru: 'Гана', desc_ru: '' },\n { mask: '+350-ddd-ddddd', cc: 'GI', name_en: 'Gibraltar', desc_en: '', name_ru: 'Гибралтар', desc_ru: '' },\n { mask: '+299-dd-dd-dd', cc: 'GL', name_en: 'Greenland', desc_en: '', name_ru: 'Гренландия', desc_ru: '' },\n { mask: '+220 (ddd) dd-dd', cc: 'GM', name_en: 'Gambia', desc_en: '', name_ru: 'Гамбия', desc_ru: '' },\n { mask: '+224-dd-ddd-ddd', cc: 'GN', name_en: 'Guinea', desc_en: '', name_ru: 'Гвинея', desc_ru: '' },\n {\n mask: '+240-dd-ddd-dddd',\n cc: 'GQ',\n name_en: 'Equatorial Guinea',\n desc_en: '',\n name_ru: 'Экваториальная Гвинея',\n desc_ru: ''\n },\n { mask: '+30 (ddd) ddd-dddd', cc: 'GR', name_en: 'Greece', desc_en: '', name_ru: 'Греция', desc_ru: '' },\n { mask: '+502-d-ddd-dddd', cc: 'GT', name_en: 'Guatemala', desc_en: '', name_ru: 'Гватемала', desc_ru: '' },\n { mask: '+1 (671) ddd-dddd', cc: 'GU', name_en: 'Guam', desc_en: '', name_ru: 'Гуам', desc_ru: '' },\n {\n mask: '+245-d-dddddd',\n cc: 'GW',\n name_en: 'Guinea-Bissau',\n desc_en: '',\n name_ru: 'Гвинея-Бисау',\n desc_ru: ''\n },\n { mask: '+592-ddd-dddd', cc: 'GY', name_en: 'Guyana', desc_en: '', name_ru: 'Гайана', desc_ru: '' },\n { mask: '+852-dddd-dddd', cc: 'HK', name_en: 'Hong Kong', desc_en: '', name_ru: 'Гонконг', desc_ru: '' },\n { mask: '+504-dddd-dddd', cc: 'HN', name_en: 'Honduras', desc_en: '', name_ru: 'Гондурас', desc_ru: '' },\n { mask: '+385-dd-ddd-ddd', cc: 'HR', name_en: 'Croatia', desc_en: '', name_ru: 'Хорватия', desc_ru: '' },\n { mask: '+509-dd-dd-dddd', cc: 'HT', name_en: 'Haiti', desc_en: '', name_ru: 'Гаити', desc_ru: '' },\n { mask: '+36 (ddd) ddd-ddd', cc: 'HU', name_en: 'Hungary', desc_en: '', name_ru: 'Венгрия', desc_ru: '' },\n {\n mask: '+62 (8dd) ddd-dddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n { mask: '+62-dd-ddd-dd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n { mask: '+62-dd-ddd-ddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n { mask: '+62-dd-ddd-dddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n {\n mask: '+62 (8dd) ddd-ddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+62 (8dd) ddd-dd-ddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+62 (8dd) dddd-ddddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n { mask: '+353 (ddd) ddd-ddd', cc: 'IE', name_en: 'Ireland', desc_en: '', name_ru: 'Ирландия', desc_ru: '' },\n {\n mask: '+972-5d-ddd-dddd',\n cc: 'IL',\n name_en: 'Israel ',\n desc_en: 'mobile',\n name_ru: 'Израиль ',\n desc_ru: 'мобильные'\n },\n { mask: '+972-d-ddd-dddd', cc: 'IL', name_en: 'Israel', desc_en: '', name_ru: 'Израиль', desc_ru: '' },\n { mask: '+91 (dddd) ddd-ddd', cc: 'IN', name_en: 'India', desc_en: '', name_ru: 'Индия', desc_ru: '' },\n {\n mask: '+246-ddd-dddd',\n cc: 'IO',\n name_en: 'Diego Garcia',\n desc_en: '',\n name_ru: 'Диего-Гарсия',\n desc_ru: ''\n },\n { mask: '+964 (ddd) ddd-dddd', cc: 'IQ', name_en: 'Iraq', desc_en: '', name_ru: 'Ирак', desc_ru: '' },\n { mask: '+98 (ddd) ddd-dddd', cc: 'IR', name_en: 'Iran', desc_en: '', name_ru: 'Иран', desc_ru: '' },\n { mask: '+354-ddd-dddd', cc: 'IS', name_en: 'Iceland', desc_en: '', name_ru: 'Исландия', desc_ru: '' },\n { mask: '+39 (ddd) dddd-ddd', cc: 'IT', name_en: 'Italy', desc_en: '', name_ru: 'Италия', desc_ru: '' },\n { mask: '+1 (876) ddd-dddd', cc: 'JM', name_en: 'Jamaica', desc_en: '', name_ru: 'Ямайка', desc_ru: '' },\n { mask: '+962-d-dddd-dddd', cc: 'JO', name_en: 'Jordan', desc_en: '', name_ru: 'Иордания', desc_ru: '' },\n {\n mask: '+81-dd-dddd-dddd',\n cc: 'JP',\n name_en: 'Japan ',\n desc_en: 'mobile',\n name_ru: 'Япония ',\n desc_ru: 'мобильные'\n },\n { mask: '+81 (ddd) ddd-ddd', cc: 'JP', name_en: 'Japan', desc_en: '', name_ru: 'Япония', desc_ru: '' },\n { mask: '+254-ddd-dddddd', cc: 'KE', name_en: 'Kenya', desc_en: '', name_ru: 'Кения', desc_ru: '' },\n {\n mask: '+996 (ddd) ddd-ddd',\n cc: 'KG',\n name_en: 'Kyrgyzstan',\n desc_en: '',\n name_ru: 'Киргизия',\n desc_ru: ''\n },\n { mask: '+855-dd-ddd-ddd', cc: 'KH', name_en: 'Cambodia', desc_en: '', name_ru: 'Камбоджа', desc_ru: '' },\n { mask: '+686-dd-ddd', cc: 'KI', name_en: 'Kiribati', desc_en: '', name_ru: 'Кирибати', desc_ru: '' },\n { mask: '+269-dd-ddddd', cc: 'KM', name_en: 'Comoros', desc_en: '', name_ru: 'Коморы', desc_ru: '' },\n {\n mask: '+1 (869) ddd-dddd',\n cc: 'KN',\n name_en: 'Saint Kitts & Nevis',\n desc_en: '',\n name_ru: 'Сент-Китс и Невис',\n desc_ru: ''\n },\n {\n mask: '+850-191-ddd-dddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: 'mobile',\n name_ru: 'Корейская НДР ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+850-dd-ddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-ddd-dddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-ddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-dddd-dddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-dddd-ddddddddddddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+82-dd-ddd-dddd',\n cc: 'KR',\n name_en: 'Korea (South) ',\n desc_en: '',\n name_ru: 'Респ. Корея',\n desc_ru: ''\n },\n { mask: '+965-dddd-dddd', cc: 'KW', name_en: 'Kuwait', desc_en: '', name_ru: 'Кувейт', desc_ru: '' },\n {\n mask: '+1 (345) ddd-dddd',\n cc: 'KY',\n name_en: 'Cayman Islands',\n desc_en: '',\n name_ru: 'Каймановы острова',\n desc_ru: ''\n },\n {\n mask: '+7 (6dd) ddd-dd-dd',\n cc: 'KZ',\n name_en: 'Kazakhstan',\n desc_en: '',\n name_ru: 'Казахстан',\n desc_ru: ''\n },\n {\n mask: '+7 (7dd) ddd-dd-dd',\n cc: 'KZ',\n name_en: 'Kazakhstan',\n desc_en: '',\n name_ru: 'Казахстан',\n desc_ru: ''\n },\n {\n mask: '+856 (20dd) ddd-ddd',\n cc: 'LA',\n name_en: 'Laos ',\n desc_en: 'mobile',\n name_ru: 'Лаос ',\n desc_ru: 'мобильные'\n },\n { mask: '+856-dd-ddd-ddd', cc: 'LA', name_en: 'Laos', desc_en: '', name_ru: 'Лаос', desc_ru: '' },\n {\n mask: '+961-dd-ddd-ddd',\n cc: 'LB',\n name_en: 'Lebanon ',\n desc_en: 'mobile',\n name_ru: 'Ливан ',\n desc_ru: 'мобильные'\n },\n { mask: '+961-d-ddd-ddd', cc: 'LB', name_en: 'Lebanon', desc_en: '', name_ru: 'Ливан', desc_ru: '' },\n {\n mask: '+1 (758) ddd-dddd',\n cc: 'LC',\n name_en: 'Saint Lucia',\n desc_en: '',\n name_ru: 'Сент-Люсия',\n desc_ru: ''\n },\n {\n mask: '+423 (ddd) ddd-dddd',\n cc: 'LI',\n name_en: 'Liechtenstein',\n desc_en: '',\n name_ru: 'Лихтенштейн',\n desc_ru: ''\n },\n { mask: '+94-dd-ddd-dddd', cc: 'LK', name_en: 'Sri Lanka', desc_en: '', name_ru: 'Шри-Ланка', desc_ru: '' },\n { mask: '+231-dd-ddd-ddd', cc: 'LR', name_en: 'Liberia', desc_en: '', name_ru: 'Либерия', desc_ru: '' },\n { mask: '+266-d-ddd-dddd', cc: 'LS', name_en: 'Lesotho', desc_en: '', name_ru: 'Лесото', desc_ru: '' },\n { mask: '+370 (ddd) dd-ddd', cc: 'LT', name_en: 'Lithuania', desc_en: '', name_ru: 'Литва', desc_ru: '' },\n {\n mask: '+352 (ddd) ddd-ddd',\n cc: 'LU',\n name_en: 'Luxembourg',\n desc_en: '',\n name_ru: 'Люксембург',\n desc_ru: ''\n },\n { mask: '+371-dd-ddd-ddd', cc: 'LV', name_en: 'Latvia', desc_en: '', name_ru: 'Латвия', desc_ru: '' },\n { mask: '+218-dd-ddd-ddd', cc: 'LY', name_en: 'Libya', desc_en: '', name_ru: 'Ливия', desc_ru: '' },\n {\n mask: '+218-21-ddd-dddd',\n cc: 'LY',\n name_en: 'Libya',\n desc_en: 'Tripoli',\n name_ru: 'Ливия',\n desc_ru: 'Триполи'\n },\n { mask: '+212-dd-dddd-ddd', cc: 'MA', name_en: 'Morocco', desc_en: '', name_ru: 'Марокко', desc_ru: '' },\n { mask: '+377 (ddd) ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\n { mask: '+377-dd-ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\n { mask: '+373-dddd-dddd', cc: 'MD', name_en: 'Moldova', desc_en: '', name_ru: 'Молдова', desc_ru: '' },\n {\n mask: '+382-dd-ddd-ddd',\n cc: 'ME',\n name_en: 'Montenegro',\n desc_en: '',\n name_ru: 'Черногория',\n desc_ru: ''\n },\n {\n mask: '+261-dd-dd-ddddd',\n cc: 'MG',\n name_en: 'Madagascar',\n desc_en: '',\n name_ru: 'Мадагаскар',\n desc_ru: ''\n },\n {\n mask: '+692-ddd-dddd',\n cc: 'MH',\n name_en: 'Marshall Islands',\n desc_en: '',\n name_ru: 'Маршалловы Острова',\n desc_ru: ''\n },\n {\n mask: '+389-dd-ddd-ddd',\n cc: 'MK',\n name_en: 'Republic of Macedonia',\n desc_en: '',\n name_ru: 'Респ. Македония',\n desc_ru: ''\n },\n { mask: '+223-dd-dd-dddd', cc: 'ML', name_en: 'Mali', desc_en: '', name_ru: 'Мали', desc_ru: '' },\n {\n mask: '+95-dd-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n {\n mask: '+95-d-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n {\n mask: '+95-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n { mask: '+976-dd-dd-dddd', cc: 'MN', name_en: 'Mongolia', desc_en: '', name_ru: 'Монголия', desc_ru: '' },\n { mask: '+853-dddd-dddd', cc: 'MO', name_en: 'Macau', desc_en: '', name_ru: 'Макао', desc_ru: '' },\n {\n mask: '+1 (670) ddd-dddd',\n cc: 'MP',\n name_en: 'Northern Mariana Islands',\n desc_en: '',\n name_ru: 'Северные Марианские острова Сайпан',\n desc_ru: ''\n },\n {\n mask: '+596 (ddd) dd-dd-dd',\n cc: 'MQ',\n name_en: 'Martinique',\n desc_en: '',\n name_ru: 'Мартиника',\n desc_ru: ''\n },\n {\n mask: '+222-dd-dd-dddd',\n cc: 'MR',\n name_en: 'Mauritania',\n desc_en: '',\n name_ru: 'Мавритания',\n desc_ru: ''\n },\n {\n mask: '+1 (664) ddd-dddd',\n cc: 'MS',\n name_en: 'Montserrat',\n desc_en: '',\n name_ru: 'Монтсеррат',\n desc_ru: ''\n },\n { mask: '+356-dddd-dddd', cc: 'MT', name_en: 'Malta', desc_en: '', name_ru: 'Мальта', desc_ru: '' },\n { mask: '+230-ddd-dddd', cc: 'MU', name_en: 'Mauritius', desc_en: '', name_ru: 'Маврикий', desc_ru: '' },\n {\n mask: '+960-ddd-dddd',\n cc: 'MV',\n name_en: 'Maldives',\n desc_en: '',\n name_ru: 'Мальдивские острова',\n desc_ru: ''\n },\n {\n mask: '+265-1-ddd-ddd',\n cc: 'MW',\n name_en: 'Malawi',\n desc_en: 'Telecom Ltd',\n name_ru: 'Малави',\n desc_ru: 'Telecom Ltd'\n },\n { mask: '+265-d-dddd-dddd', cc: 'MW', name_en: 'Malawi', desc_en: '', name_ru: 'Малави', desc_ru: '' },\n { mask: '+52 (ddd) ddd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\n { mask: '+52-dd-dd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\n { mask: '+60 (ddd) ddd-dddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n {\n mask: '+60-ddd-ddd-ddd',\n cc: 'MY',\n name_en: 'Malaysia ',\n desc_en: 'mobile',\n name_ru: 'Малайзия ',\n desc_ru: 'мобильные'\n },\n { mask: '+60-dd-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n { mask: '+60-d-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n { mask: '+258-dd-ddd-ddd', cc: 'MZ', name_en: 'Mozambique', desc_en: '', name_ru: 'Мозамбик', desc_ru: '' },\n { mask: '+264-dd-ddd-dddd', cc: 'NA', name_en: 'Namibia', desc_en: '', name_ru: 'Намибия', desc_ru: '' },\n {\n mask: '+687-dd-dddd',\n cc: 'NC',\n name_en: 'New Caledonia',\n desc_en: '',\n name_ru: 'Новая Каледония',\n desc_ru: ''\n },\n { mask: '+227-dd-dd-dddd', cc: 'NE', name_en: 'Niger', desc_en: '', name_ru: 'Нигер', desc_ru: '' },\n {\n mask: '+672-3dd-ddd',\n cc: 'NF',\n name_en: 'Norfolk Island',\n desc_en: '',\n name_ru: 'Норфолк (остров) ',\n desc_ru: ''\n },\n { mask: '+234 (ddd) ddd-dddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n { mask: '+234-dd-ddd-ddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n { mask: '+234-dd-ddd-dd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n {\n mask: '+234 (ddd) ddd-dddd',\n cc: 'NG',\n name_en: 'Nigeria ',\n desc_en: 'mobile',\n name_ru: 'Нигерия ',\n desc_ru: 'мобильные'\n },\n { mask: '+505-dddd-dddd', cc: 'NI', name_en: 'Nicaragua', desc_en: '', name_ru: 'Никарагуа', desc_ru: '' },\n {\n mask: '+31-dd-ddd-dddd',\n cc: 'NL',\n name_en: 'Netherlands',\n desc_en: '',\n name_ru: 'Нидерланды',\n desc_ru: ''\n },\n { mask: '+47 (ddd) dd-ddd', cc: 'NO', name_en: 'Norway', desc_en: '', name_ru: 'Норвегия', desc_ru: '' },\n { mask: '+977-dd-ddd-ddd', cc: 'NP', name_en: 'Nepal', desc_en: '', name_ru: 'Непал', desc_ru: '' },\n { mask: '+674-ddd-dddd', cc: 'NR', name_en: 'Nauru', desc_en: '', name_ru: 'Науру', desc_ru: '' },\n { mask: '+683-dddd', cc: 'NU', name_en: 'Niue', desc_en: '', name_ru: 'Ниуэ', desc_ru: '' },\n {\n mask: '+64 (ddd) ddd-ddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n {\n mask: '+64-dd-ddd-ddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n {\n mask: '+64 (ddd) ddd-dddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n { mask: '+968-dd-ddd-ddd', cc: 'OM', name_en: 'Oman', desc_en: '', name_ru: 'Оман', desc_ru: '' },\n { mask: '+507-ddd-dddd', cc: 'PA', name_en: 'Panama', desc_en: '', name_ru: 'Панама', desc_ru: '' },\n { mask: '+51 (ddd) ddd-ddd', cc: 'PE', name_en: 'Peru', desc_en: '', name_ru: 'Перу', desc_ru: '' },\n {\n mask: '+689-dd-dd-dd',\n cc: 'PF',\n name_en: 'French Polynesia',\n desc_en: '',\n name_ru: 'Французская Полинезия (Таити) ',\n desc_ru: ''\n },\n {\n mask: '+675 (ddd) dd-ddd',\n cc: 'PG',\n name_en: 'Papua New Guinea',\n desc_en: '',\n name_ru: 'Папуа-Новая Гвинея',\n desc_ru: ''\n },\n {\n mask: '+63 (ddd) ddd-dddd',\n cc: 'PH',\n name_en: 'Philippines',\n desc_en: '',\n name_ru: 'Филиппины',\n desc_ru: ''\n },\n { mask: '+92 (ddd) ddd-dddd', cc: 'PK', name_en: 'Pakistan', desc_en: '', name_ru: 'Пакистан', desc_ru: '' },\n { mask: '+48 (ddd) ddd-ddd', cc: 'PL', name_en: 'Poland', desc_en: '', name_ru: 'Польша', desc_ru: '' },\n {\n mask: '+970-dd-ddd-dddd',\n cc: 'PS',\n name_en: 'Palestine',\n desc_en: '',\n name_ru: 'Палестина',\n desc_ru: ''\n },\n {\n mask: '+351-dd-ddd-dddd',\n cc: 'PT',\n name_en: 'Portugal',\n desc_en: '',\n name_ru: 'Португалия',\n desc_ru: ''\n },\n { mask: '+680-ddd-dddd', cc: 'PW', name_en: 'Palau', desc_en: '', name_ru: 'Палау', desc_ru: '' },\n { mask: '+595 (ddd) ddd-ddd', cc: 'PY', name_en: 'Paraguay', desc_en: '', name_ru: 'Парагвай', desc_ru: '' },\n { mask: '+974-dddd-dddd', cc: 'QA', name_en: 'Qatar', desc_en: '', name_ru: 'Катар', desc_ru: '' },\n { mask: '+262-ddddd-dddd', cc: 'RE', name_en: 'Reunion', desc_en: '', name_ru: 'Реюньон', desc_ru: '' },\n { mask: '+40-dd-ddd-dddd', cc: 'RO', name_en: 'Romania', desc_en: '', name_ru: 'Румыния', desc_ru: '' },\n { mask: '+381-dd-ddd-dddd', cc: 'RS', name_en: 'Serbia', desc_en: '', name_ru: 'Сербия', desc_ru: '' },\n { mask: '+7 (ddd) ddd-dd-dd', cc: 'RU', name_en: 'Russia', desc_en: '', name_ru: 'Россия', desc_ru: '' },\n { mask: '+250 (ddd) ddd-ddd', cc: 'RW', name_en: 'Rwanda', desc_en: '', name_ru: 'Руанда', desc_ru: '' },\n {\n mask: '+966-5-dddd-dddd',\n cc: 'SA',\n name_en: 'Saudi Arabia ',\n desc_en: 'mobile',\n name_ru: 'Саудовская Аравия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+966-d-ddd-dddd',\n cc: 'SA',\n name_en: 'Saudi Arabia',\n desc_en: '',\n name_ru: 'Саудовская Аравия',\n desc_ru: ''\n },\n {\n mask: '+677-ddd-dddd',\n cc: 'SB',\n name_en: 'Solomon Islands ',\n desc_en: 'mobile',\n name_ru: 'Соломоновы Острова ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+677-ddddd',\n cc: 'SB',\n name_en: 'Solomon Islands',\n desc_en: '',\n name_ru: 'Соломоновы Острова',\n desc_ru: ''\n },\n { mask: '+248-d-ddd-ddd', cc: 'SC', name_en: 'Seychelles', desc_en: '', name_ru: 'Сейшелы', desc_ru: '' },\n { mask: '+249-dd-ddd-dddd', cc: 'SD', name_en: 'Sudan', desc_en: '', name_ru: 'Судан', desc_ru: '' },\n { mask: '+46-dd-ddd-dddd', cc: 'SE', name_en: 'Sweden', desc_en: '', name_ru: 'Швеция', desc_ru: '' },\n { mask: '+65-dddd-dddd', cc: 'SG', name_en: 'Singapore', desc_en: '', name_ru: 'Сингапур', desc_ru: '' },\n {\n mask: '+290-dddd',\n cc: 'SH',\n name_en: 'Saint Helena',\n desc_en: '',\n name_ru: 'Остров Святой Елены',\n desc_ru: ''\n },\n {\n mask: '+290-dddd',\n cc: 'SH',\n name_en: 'Tristan da Cunha',\n desc_en: '',\n name_ru: 'Тристан-да-Кунья',\n desc_ru: ''\n },\n { mask: '+386-dd-ddd-ddd', cc: 'SI', name_en: 'Slovenia', desc_en: '', name_ru: 'Словения', desc_ru: '' },\n { mask: '+421 (ddd) ddd-ddd', cc: 'SK', name_en: 'Slovakia', desc_en: '', name_ru: 'Словакия', desc_ru: '' },\n {\n mask: '+232-dd-dddddd',\n cc: 'SL',\n name_en: 'Sierra Leone',\n desc_en: '',\n name_ru: 'Сьерра-Леоне',\n desc_ru: ''\n },\n {\n mask: '+378-dddd-dddddd',\n cc: 'SM',\n name_en: 'San Marino',\n desc_en: '',\n name_ru: 'Сан-Марино',\n desc_ru: ''\n },\n { mask: '+221-dd-ddd-dddd', cc: 'SN', name_en: 'Senegal', desc_en: '', name_ru: 'Сенегал', desc_ru: '' },\n { mask: '+252-dd-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\n { mask: '+252-d-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\n {\n mask: '+252-d-ddd-ddd',\n cc: 'SO',\n name_en: 'Somalia ',\n desc_en: 'mobile',\n name_ru: 'Сомали ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+597-ddd-dddd',\n cc: 'SR',\n name_en: 'Suriname ',\n desc_en: 'mobile',\n name_ru: 'Суринам ',\n desc_ru: 'мобильные'\n },\n { mask: '+597-ddd-ddd', cc: 'SR', name_en: 'Suriname', desc_en: '', name_ru: 'Суринам', desc_ru: '' },\n {\n mask: '+211-dd-ddd-dddd',\n cc: 'SS',\n name_en: 'South Sudan',\n desc_en: '',\n name_ru: 'Южный Судан',\n desc_ru: ''\n },\n {\n mask: '+239-dd-ddddd',\n cc: 'ST',\n name_en: 'Sao Tome and Principe',\n desc_en: '',\n name_ru: 'Сан-Томе и Принсипи',\n desc_ru: ''\n },\n {\n mask: '+503-dd-dd-dddd',\n cc: 'SV',\n name_en: 'El Salvador',\n desc_en: '',\n name_ru: 'Сальвадор',\n desc_ru: ''\n },\n {\n mask: '+1 (721) ddd-dddd',\n cc: 'SX',\n name_en: 'Sint Maarten',\n desc_en: '',\n name_ru: 'Синт-Маартен',\n desc_ru: ''\n },\n {\n mask: '+963-dd-dddd-ddd',\n cc: 'SY',\n name_en: 'Syrian Arab Republic',\n desc_en: '',\n name_ru: 'Сирийская арабская республика',\n desc_ru: ''\n },\n { mask: '+268-dd-dd-dddd', cc: 'SZ', name_en: 'Swaziland', desc_en: '', name_ru: 'Свазиленд', desc_ru: '' },\n {\n mask: '+1 (649) ddd-dddd',\n cc: 'TC',\n name_en: 'Turks & Caicos',\n desc_en: '',\n name_ru: 'Тёркс и Кайкос',\n desc_ru: ''\n },\n { mask: '+235-dd-dd-dd-dd', cc: 'TD', name_en: 'Chad', desc_en: '', name_ru: 'Чад', desc_ru: '' },\n { mask: '+228-dd-ddd-ddd', cc: 'TG', name_en: 'Togo', desc_en: '', name_ru: 'Того', desc_ru: '' },\n {\n mask: '+66-dd-ddd-dddd',\n cc: 'TH',\n name_en: 'Thailand ',\n desc_en: 'mobile',\n name_ru: 'Таиланд ',\n desc_ru: 'мобильные'\n },\n { mask: '+66-dd-ddd-ddd', cc: 'TH', name_en: 'Thailand', desc_en: '', name_ru: 'Таиланд', desc_ru: '' },\n {\n mask: '+992-dd-ddd-dddd',\n cc: 'TJ',\n name_en: 'Tajikistan',\n desc_en: '',\n name_ru: 'Таджикистан',\n desc_ru: ''\n },\n { mask: '+690-dddd', cc: 'TK', name_en: 'Tokelau', desc_en: '', name_ru: 'Токелау', desc_ru: '' },\n {\n mask: '+670-ddd-dddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: '',\n name_ru: 'Восточный Тимор',\n desc_ru: ''\n },\n {\n mask: '+670-77d-ddddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: 'Timor Telecom',\n name_ru: 'Восточный Тимор',\n desc_ru: 'Timor Telecom'\n },\n {\n mask: '+670-78d-ddddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: 'Timor Telecom',\n name_ru: 'Восточный Тимор',\n desc_ru: 'Timor Telecom'\n },\n {\n mask: '+993-d-ddd-dddd',\n cc: 'TM',\n name_en: 'Turkmenistan',\n desc_en: '',\n name_ru: 'Туркменистан',\n desc_ru: ''\n },\n { mask: '+216-dd-ddd-ddd', cc: 'TN', name_en: 'Tunisia', desc_en: '', name_ru: 'Тунис', desc_ru: '' },\n { mask: '+676-ddddd', cc: 'TO', name_en: 'Tonga', desc_en: '', name_ru: 'Тонга', desc_ru: '' },\n { mask: '+90 (ddd) ddd-dddd', cc: 'TR', name_en: 'Turkey', desc_en: '', name_ru: 'Турция', desc_ru: '' },\n {\n mask: '+1 (868) ddd-dddd',\n cc: 'TT',\n name_en: 'Trinidad & Tobago',\n desc_en: '',\n name_ru: 'Тринидад и Тобаго',\n desc_ru: ''\n },\n {\n mask: '+688-90dddd',\n cc: 'TV',\n name_en: 'Tuvalu ',\n desc_en: 'mobile',\n name_ru: 'Тувалу ',\n desc_ru: 'мобильные'\n },\n { mask: '+688-2dddd', cc: 'TV', name_en: 'Tuvalu', desc_en: '', name_ru: 'Тувалу', desc_ru: '' },\n { mask: '+886-d-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\n { mask: '+886-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\n { mask: '+255-dd-ddd-dddd', cc: 'TZ', name_en: 'Tanzania', desc_en: '', name_ru: 'Танзания', desc_ru: '' },\n { mask: '+380 (dd) ddd-dd-dd', cc: 'UA', name_en: 'Ukraine', desc_en: '', name_ru: 'Украина', desc_ru: '' },\n { mask: '+256 (ddd) ddd-ddd', cc: 'UG', name_en: 'Uganda', desc_en: '', name_ru: 'Уганда', desc_ru: '' },\n {\n mask: '+44-dd-dddd-dddd',\n cc: 'UK',\n name_en: 'United Kingdom',\n desc_en: '',\n name_ru: 'Великобритания',\n desc_ru: ''\n },\n { mask: '+598-d-ddd-dd-dd', cc: 'UY', name_en: 'Uruguay', desc_en: '', name_ru: 'Уругвай', desc_ru: '' },\n {\n mask: '+998-dd-ddd-dddd',\n cc: 'UZ',\n name_en: 'Uzbekistan',\n desc_en: '',\n name_ru: 'Узбекистан',\n desc_ru: ''\n },\n {\n mask: '+39-6-698-ddddd',\n cc: 'VA',\n name_en: 'Vatican City',\n desc_en: '',\n name_ru: 'Ватикан',\n desc_ru: ''\n },\n {\n mask: '+1 (784) ddd-dddd',\n cc: 'VC',\n name_en: 'Saint Vincent & the Grenadines',\n desc_en: '',\n name_ru: 'Сент-Винсент и Гренадины',\n desc_ru: ''\n },\n {\n mask: '+58 (ddd) ddd-dddd',\n cc: 'VE',\n name_en: 'Venezuela',\n desc_en: '',\n name_ru: 'Венесуэла',\n desc_ru: ''\n },\n {\n mask: '+1 (284) ddd-dddd',\n cc: 'VG',\n name_en: 'British Virgin Islands',\n desc_en: '',\n name_ru: 'Британские Виргинские острова',\n desc_ru: ''\n },\n {\n mask: '+1 (340) ddd-dddd',\n cc: 'VI',\n name_en: 'US Virgin Islands',\n desc_en: '',\n name_ru: 'Американские Виргинские острова',\n desc_ru: ''\n },\n { mask: '+84-dd-dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\n { mask: '+84 (ddd) dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\n {\n mask: '+678-dd-ddddd',\n cc: 'VU',\n name_en: 'Vanuatu ',\n desc_en: 'mobile',\n name_ru: 'Вануату ',\n desc_ru: 'мобильные'\n },\n { mask: '+678-ddddd', cc: 'VU', name_en: 'Vanuatu', desc_en: '', name_ru: 'Вануату', desc_ru: '' },\n {\n mask: '+681-dd-dddd',\n cc: 'WF',\n name_en: 'Wallis and Futuna',\n desc_en: '',\n name_ru: 'Уоллис и Футуна',\n desc_ru: ''\n },\n { mask: '+685-dd-dddd', cc: 'WS', name_en: 'Samoa', desc_en: '', name_ru: 'Самоа', desc_ru: '' },\n {\n mask: '+967-ddd-ddd-ddd',\n cc: 'YE',\n name_en: 'Yemen ',\n desc_en: 'mobile',\n name_ru: 'Йемен ',\n desc_ru: 'мобильные'\n },\n { mask: '+967-d-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\n { mask: '+967-dd-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\n {\n mask: '+27-dd-ddd-dddd',\n cc: 'ZA',\n name_en: 'South Africa',\n desc_en: '',\n name_ru: 'Южно-Африканская Респ.',\n desc_ru: ''\n },\n { mask: '+260-dd-ddd-dddd', cc: 'ZM', name_en: 'Zambia', desc_en: '', name_ru: 'Замбия', desc_ru: '' },\n { mask: '+263-d-dddddd', cc: 'ZW', name_en: 'Zimbabwe', desc_en: '', name_ru: 'Зимбабве', desc_ru: '' },\n {\n mask: '+1 (ddd) ddd-dddd',\n cc: 'CA',\n name_en: 'Canada',\n desc_en: '',\n name_ru: 'Канада',\n desc_ru: ''\n },\n {\n mask: '+1 (ddd) ddd-dddd',\n cc: 'US',\n name_en: 'USA',\n desc_en: '',\n name_ru: 'США',\n desc_ru: ''\n }\n]\n .map(m => m.mask)\n .sort((a, b) => {\n a = removeSpecSymbols(a);\n b = removeSpecSymbols(b)\n return a > b ? 1 : (a === b ? 0 : -1);\n });\n","import { inject, Injectable } from '@angular/core';\nimport { NgxMaskService } from 'ngx-mask';\nimport { PaymentField } from '../pages/components/constructor-form/models';\nimport { PHONE_MASKS, removeSpecSymbols } from './phone-codes';\n\nexport enum MASKS {\n CPF = 'CPF',\n CPF_CNPJ = 'CPF_CNPJ',\n PHONE = 'PHONE',\n CI = 'CI',\n CURP = 'CURP',\n CUIT_DNI = 'CUIT_DNI',\n CC = 'CC'\n}\n\nexport const INITIAL_PHONE_MASK = '+D';\nexport const PHONE_MASK_PATTERNS = {\n 'D': {\n pattern: /\\d/\n },\n '9': {\n pattern: /\\d/,\n optional: true\n }\n};\n\n\n@Injectable()\nexport class MaskResolver {\n private maskService = inject(NgxMaskService);\n\n constructor() {\n }\n\n getMaskPattern(mask: string, value?: string) {\n switch (mask) {\n case MASKS.PHONE:\n return (...args) => this.calcMask(...args);\n case MASKS.CPF_CNPJ:\n if (value?.length > 11) {\n return '00.000.000/0000-00';\n }\n return '000.000.000-009';\n case MASKS.CI:\n return '0000000000';\n case MASKS.CURP:\n return 'SSSS000000SSSSSS00';\n case MASKS.CUIT_DNI:\n return '00-00000000-0||00-000-000';\n case MASKS.CC:\n return '0000000000000000';\n case MASKS.CPF:\n return '000.000.000-00';\n default:\n return mask;\n }\n }\n\n getMaskByValue(mask: string, value?: string) {\n const maskValue = this.getMaskPattern(mask, value);\n if (typeof maskValue === 'function') {\n return maskValue.call(null, value) || null;\n } else {\n return maskValue || null;\n }\n }\n\n getPatterns(config: PaymentField) {\n if (config?.mask === MASKS.PHONE) {\n return PHONE_MASK_PATTERNS;\n }\n if (config?.maskPatterns) {\n return config?.maskPatterns;\n }\n return this.maskService.patterns;\n }\n\n getSpecialCharacters(config: PaymentField) {\n return config?.specialCharacters || this.maskService.specialCharacters;\n }\n\n\n private calcMask(value?: string) {\n let mask = INITIAL_PHONE_MASK\n if (value) {\n const valueArray = Array.from(removeSpecSymbols(value));\n let masks: string[] = PHONE_MASKS;\n for (let sIndex = 0; sIndex < valueArray.length; sIndex++) {\n const s = valueArray[sIndex];\n const filteredMasks = masks.filter((m) => {\n const maskValue = removeSpecSymbols(m);\n const maskSymbol = maskValue[sIndex];\n if (/\\d/.test(maskSymbol)) {\n return maskSymbol === s;\n }\n return !!maskSymbol;\n });\n if (filteredMasks.length > 0) {\n masks = filteredMasks;\n } else {\n break;\n }\n }\n // Candidate of mask\n mask = masks[0];\n\n // Calculation of the additional numbers\n let masksNormalized: string[] = masks.map(m => removeSpecSymbols(m));\n let maskNormalized = removeSpecSymbols(mask);\n const optionalSymbols = masksNormalized.filter(s => s.startsWith(maskNormalized) && s.length > maskNormalized.length).length;\n if (optionalSymbols) {\n mask += Array(optionalSymbols).fill('[d]').join('');\n }\n }\n mask = mask.replace(/[d\\d]/g, 'D').replace(/\\[D]/g, '9');\n return mask;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nfunction sortByTabIndex(list: HTMLElement[]): HTMLElement[] {\n return list.sort((a, b) => {\n const index1 = +a.getAttribute('tabindex');\n const index2 = +b.getAttribute('tabindex');\n if (index1<index2) {\n return -1;\n }\n if (index1>index2) {\n return 1;\n }\n return 0;\n });\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusHandler {\n static document: Document;\n private static get focusableList(): HTMLElement[] {\n return sortByTabIndex(\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]'))\n );\n }\n private static get focusableEnabledList(): HTMLElement[] {\n return sortByTabIndex(\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]:not([class*=\"--disabled\"])'))\n );\n }\n static previous(ev?: Event) {\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\n const index = focusedElement?.getAttribute('tabindex');\n const focusableList = this.focusableList;\n if (index === null) {\n focusableList.pop()?.focus();\n ev?.preventDefault();\n return;\n }\n for (let i=0; i < focusableList.length; i++) {\n const element = focusableList[i];\n if (element === focusedElement) {\n const prev = focusableList[i - 1];\n if (prev) {\n ev?.preventDefault();\n prev.focus();\n }\n return;\n }\n }\n }\n static next(ev?: Event) {\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\n const index = focusedElement?.getAttribute('tabindex');\n const focusableList = this.focusableList;\n if (index === null) {\n focusableList.shift()?.focus();\n ev?.preventDefault();\n return;\n }\n for (let i=0; i < focusableList.length; i++) {\n const element = focusableList[i];\n if (element === focusedElement) {\n const next = focusableList[i + 1];\n if (next) {\n ev?.preventDefault();\n next.focus();\n }\n return;\n }\n }\n }\n static previousEnabled(ev?: Event) {\n this.previous.call({\n focusableList: this.focusableEnabledList\n }, ev);\n }\n static nextEnabled(ev?: Event) {\n this.next.call({\n focusableList: this.focusableEnabledList\n }, ev);\n }\n\n constructor() {\n FocusHandler.document = inject(DOCUMENT);\n }\n}\n","export const isObjectTheSame = (object1, object2) => {\n if (object1 === object2) {\n return true;\n }\n if (!object1 && object2 || object1 && !object2) {\n return false;\n }\n const objKeys1 = Object.keys(object1);\n const objKeys2 = Object.keys(object2);\n\n if (objKeys1.length !== objKeys2.length) return false;\n\n for (var key of objKeys1) {\n const value1 = object1[key];\n const value2 = object2[key];\n\n const isObjects = isObject(value1) && isObject(value2);\n\n if ((isObjects && !isObjectTheSame(value1, value2)) ||\n (!isObjects && value1 !== value2)\n ) {\n return false;\n }\n }\n return true;\n};\n\nexport const isObject = (object) => {\n return object != null && typeof object === \"object\";\n};\n","export const warningConsole = () => {\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;\");\n console.log(\"\\n\");\n console.log(\"%cЭта часть окна предназначена для разработчиков. Пожалуйста не вставляйте сюда ничего! Особенно текст который \\\"якобы\\\" поможет увеличить баланс вашего кошелька! Вас обманут!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\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;\");\n console.log(\"\\n\");\n}","export enum PaymentFieldTypeEnum {\n Amount = 'amount',\n Email = 'email',\n Text = 'text',\n Number = 'number',\n Date = 'date',\n Select = 'select',\n Iframe = 'iframe'\n}\n","export enum CollectionType {\n Banks = 1,\n Documents = 2\n}\n","import { I18N_KEY } from '../../../../i18n';\nimport { MASKS } from '../../../../helpers';\nimport { PaymentFieldTypeEnum } from './payment-field-type.enum';\nimport { PaymentField } from './payment-field';\nimport momentjs from 'moment-timezone';\nimport { CollectionType } from './collection-type.enum';\n\nconst PHONE_FIELD = {\n name: 'add_phone_number',\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE,\n label: I18N_KEY.CONSTRUCTOR_LABEL_PHONE,\n mask: MASKS.PHONE,\n maskValidation: true,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE,\n require: true,\n type: PaymentFieldTypeEnum.Text\n};\n\nconst EMAIL_FIELD = {\n name: 'add_email',\n label: I18N_KEY.CONSTRUCTOR_LABEL_EMAIL,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Email\n};\n\nconst castWallet = (config) => {\n return {\n ...config,\n ...{\n name: 'wallet',\n wallet: true\n }\n }\n}\n\nexport const FIELD_TEMPLATE: {[key: string]: PaymentField} = {\n AMOUNT: {\n name: 'amount',\n label: I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT,\n pattern: /^\\d+\\.?\\d{0,2}/,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT,\n mask: 'separator.2',\n require: true,\n type: PaymentFieldTypeEnum.Amount\n },\n CARD_TERMINAL: {\n name: 'card_terminal',\n type: PaymentFieldTypeEnum.Iframe\n },\n EMAIL: EMAIL_FIELD,\n EMAIL_WALLET: castWallet(EMAIL_FIELD),\n FIRST_NAME: {\n name: 'add_first_name',\n label: I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n SECOND_NAME: {\n name: 'add_last_name',\n label: I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n DATE_OF_BIRTH: {\n name: 'add_day_of_birth',\n label: I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH,\n placeholder: '1993-04-20',\n require: true,\n mask: '0000-00-00',\n type: PaymentFieldTypeEnum.Date,\n options: {\n startCalendarDate: momentjs().subtract(18, 'years')\n }\n },\n ZIP: {\n name: 'add_zip',\n label: I18N_KEY.CONSTRUCTOR_LABEL_ZIP,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP,\n pattern: /\\d{6}/,\n mask: '000000',\n maskValidation: true,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n PHONE: PHONE_FIELD,\n PHONE_WALLET: castWallet(PHONE_FIELD),\n DOCUMENT_TYPE: {\n name: 'add_document_type',\n label: I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Select,\n options: {\n collection: CollectionType.Documents\n }\n },\n BANK_TYPE: {\n name: 'add_bank_id',\n label: I18N_KEY.CONSTRUCTOR_LABEL_BANK,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Select,\n options: {\n collection: CollectionType.Banks\n }\n }\n}\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const advcash: PaymentFields = {\n confirmation: '',\n title: 'Advcash',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","export enum TerminalStep {\n Prepare,\n Confirmation,\n Status\n}\n","export { PaymentField } from './payment-field';\nexport { PaymentFieldOptions, PaymentFieldOptionsItem } from './payment-field-options';\nexport { PaymentFields } from './payment-fields';\nexport { TerminalStep } from './terminal-step.enum';\nexport { CollectionType } from './collection-type.enum';\nexport { MASKS } from './../../../../helpers/mask-resolver';\nexport { PaymentFieldTypeEnum } from './payment-field-type.enum';\nexport * from './field-template';\nexport const FORMAT_DATE = 'YYYY-MM-DD';\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const alfabank: PaymentFields = {\n confirmation: '',\n title: 'AlfaClick',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const alipay: PaymentFields = {\n confirmation: '',\n title: 'Alipay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const alipay_plus: PaymentFields = {\n confirmation: '',\n title: 'Alipay Plus',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const applepay: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY,\n title: 'ApplePay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const argentina_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Argentina',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const atf24: PaymentFields = {\n confirmation: '',\n title: 'ATF24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const baloto: PaymentFields = {\n confirmation: '',\n title: 'Baloto',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CC',\n mask: MASKS.CC,\n placeholder: '0000000000000000',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const beeline: PaymentFields = {\n confirmation: '',\n title: 'Beeline',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const blik: PaymentFields = {\n confirmation: '',\n title: 'Blik',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const boleto: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Boleto',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF/CNPJ',\n mask: MASKS.CPF_CNPJ,\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.ZIP\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const brazil_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Brazil',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../index';\n\nexport const card: PaymentFields = {\n confirmation: '',\n title: 'Bank cards',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.CARD_TERMINAL,\n FIELD_TEMPLATE.EMAIL,\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const carga_virtual: PaymentFields = {\n confirmation: '',\n title: 'Carga virtual',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cash: PaymentFields = {\n confirmation: '',\n title: 'Оплата наличными',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const cashtocode: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE,\n title: 'CashToCode',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const codi: PaymentFields = {\n confirmation: '',\n title: 'Codi',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const comepay: PaymentFields = {\n confirmation: '',\n title: 'Comepay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup_bank: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay Bank',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup_p2p: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay P2P',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const deposit_express: PaymentFields = {\n confirmation: '',\n title: 'Deposit Express',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n placeholder: '000.000.000-00',\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.BANK_TYPE,\n FIELD_TEMPLATE.PHONE\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../index';\n\n\nexport const direct_banking_europe: PaymentFields = {\n confirmation: '',\n title: 'Direct Banking Europe',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const dotpay: PaymentFields = {\n confirmation: '',\n title: 'Dotpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ecopayz: PaymentFields = {\n confirmation: '',\n title: 'Ecopayz',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const eps: PaymentFields = {\n confirmation: '',\n title: 'Eps',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const giropay: PaymentFields = {\n confirmation: '',\n title: 'Giropay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const gmmoney: PaymentFields = {\n confirmation: '',\n title: 'GM Money',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const internal_gamemoney: PaymentFields = {\n confirmation: '',\n title: 'GM Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const googlepay: PaymentFields = {\n confirmation: '',\n title: 'GooglePay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ideal: PaymentFields = {\n confirmation: '',\n title: 'Ideal',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.BANK_TYPE\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const indonesia_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Indonesia',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const indonesia_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Indonesia',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const jeton: PaymentFields = {\n confirmation: '',\n title: 'Jeton Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const jeton_voucher: PaymentFields = {\n confirmation: '',\n title: 'Jeton Voucher',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const kassa24: PaymentFields = {\n confirmation: '',\n title: 'Kassa24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const link: PaymentFields = {\n confirmation: '',\n title: 'Link',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const local_card_brazil: PaymentFields = {\n confirmation: '',\n title: 'Local Card Brazil',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const local_card_mexico: PaymentFields = {\n confirmation: '',\n title: 'Local Card Mexico',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const loterica: PaymentFields = {\n confirmation: '',\n title: 'Loterica',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF/CNPJ',\n mask: MASKS.CPF_CNPJ,\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.ZIP\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const malaysia_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Malaysia',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const megafon: PaymentFields = {\n confirmation: I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT,\n title: 'Megafon',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mexico_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Mexico',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const momopay: PaymentFields = {\n confirmation: '',\n title: 'MoMo Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const moneta: PaymentFields = {\n confirmation: '',\n title: 'Moneta',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mts: PaymentFields = {\n confirmation: '',\n title: 'MTS',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const multibanco: PaymentFields = {\n confirmation: '',\n title: 'Multibanco',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const neosurf: PaymentFields = {\n confirmation: '',\n title: 'Neosurf',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const neteller: PaymentFields = {\n confirmation: '',\n title: 'Neteller',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const nupay: PaymentFields = {\n confirmation: '',\n title: 'NuPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.PHONE,\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const onecard: PaymentFields = {\n confirmation: '',\n title: 'Onecard',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const oxxo: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Oxxo',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CURP',\n mask: MASKS.CURP,\n placeholder: 'ZAZD000000MBSYQN00',\n uppercase: true,\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pagoefectivo: PaymentFields = {\n confirmation: '',\n title: 'Pagoefectivo',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.DOCUMENT_TYPE,\n {\n name: 'add_identify_number',\n label: I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.PHONE\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const pagoexpress: PaymentFields = {\n confirmation: '',\n title: 'Pago Express',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CI',\n placeholder: '0000000000',\n mask: MASKS.CI,\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pagofacil: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Pagofacil',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const paypal: PaymentFields = {\n confirmation: '',\n title: 'Paypal',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const paysafecard: PaymentFields = {\n confirmation: '',\n title: 'Paysafecard',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const picpay: PaymentFields = {\n confirmation: '',\n title: 'PicPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pix: PaymentFields = {\n title: 'Pix',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.DATE_OF_BIRTH,\n {\n name: 'wallet',\n label: 'PixKey',\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET,\n readonly: false,\n require: true,\n wallet: true,\n type: PaymentFieldTypeEnum.Text\n },\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const philippines_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Philippines',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const promptpay: PaymentFields = {\n confirmation: '',\n title: 'Promptpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const promsviaz: PaymentFields = {\n confirmation: '',\n title: 'PSB',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const przelewy24: PaymentFields = {\n confirmation: '',\n title: 'Przelewy24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const qiwi: PaymentFields = {\n confirmation: '',\n title: 'Qiwi',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const rapid: PaymentFields = {\n confirmation: '',\n title: 'Rapid transfer',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const rapipago: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Rapipago',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'DNI/CUIT',\n mask: MASKS.CUIT_DNI,\n maskValidation: true,\n placeholder: '00-00000000-0 or 00-000-000',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const redpagos: PaymentFields = {\n confirmation: '',\n title: 'Alipay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sberbank: PaymentFields = {\n confirmation: '',\n title: 'SberPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sbp: PaymentFields = {\n confirmation: '',\n title: 'Система быстрых платежей',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sepa: PaymentFields = {\n confirmation: '',\n title: 'SEPA',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const servipag: PaymentFields = {\n confirmation: '',\n title: 'Servipag',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinify: PaymentFields = {\n confirmation: '',\n title: 'Skinify',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinpay: PaymentFields = {\n confirmation: '',\n title: 'Skinpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinsback: PaymentFields = {\n confirmation: '',\n title: 'Skinsback',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skrill: PaymentFields = {\n confirmation: '',\n title: 'Skrill',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sofort: PaymentFields = {\n confirmation: '',\n title: 'Sofort',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const spei: PaymentFields = {\n confirmation: '',\n title: 'Spei',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const store_mexico: PaymentFields = {\n confirmation: '',\n title: 'Convenience store',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tele2: PaymentFields = {\n confirmation: '',\n title: 'Tele2',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const thailand_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Thailand',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const thailand_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Thailand',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tinkoff: PaymentFields = {\n title: 'Tinkoff',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const trustly: PaymentFields = {\n confirmation: '',\n title: 'Trustly',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Vietnam',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank_qr: PaymentFields = {\n confirmation: '',\n title: 'Vietnamese QR banking',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Vietnam',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const webpay: PaymentFields = {\n confirmation: '',\n title: 'Webpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wechat: PaymentFields = {\n confirmation: '',\n title: 'WeChat',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wme: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WME)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmr: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMR)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmu: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMU)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmz: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMZ)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const zen_wallet: PaymentFields = {\n confirmation: '',\n title: 'Zen wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const yandex: PaymentFields = {\n confirmation: '',\n title: 'YooMoney',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wallester: PaymentFields = {\n confirmation: '',\n title: 'Wallester',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const bitcoin: PaymentFields = {\n confirmation: '',\n title: 'Bitcoin',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tron: PaymentFields = {\n confirmation: '',\n title: 'Tron (TRX)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ethereum: PaymentFields = {\n confirmation: '',\n title: 'Ethereum',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tether: PaymentFields = {\n confirmation: '',\n title: 'Tether(USDT) erc20',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tether_trc20: PaymentFields = {\n confirmation: '',\n title: 'Tether(USDT) trc20',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mercado_pago: PaymentFields = {\n confirmation: '',\n title: 'Mercado Pago',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mirpay: PaymentFields = {\n confirmation: '',\n title: 'Mir Pay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mbway: PaymentFields = {\n confirmation: '',\n title: 'Mbway',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { advcash } from './advcash';\nimport { alfabank } from './alfabank';\nimport { alipay } from './alipay';\nimport { alipay_plus } from './alipay_plus';\nimport { applepay } from './applepay';\nimport { argentina_bank } from './argentina_bank';\nimport { atf24 } from './atf24';\nimport { baloto } from './baloto';\nimport { beeline } from './beeline';\nimport { blik } from './blik';\nimport { boleto } from './boleto';\nimport { brazil_bank } from './brazil_bank';\nimport { card } from './card';\nimport { carga_virtual } from './carga_virtual';\nimport { cash } from './cash';\nimport { cashtocode } from './cashtocode';\nimport { codi } from './codi';\nimport { comepay } from './comepay';\nimport { cup } from './cup';\nimport { cup_bank } from './cup_bank';\nimport { cup_p2p } from './cup_p2p';\nimport { deposit_express } from './deposit_express';\nimport { direct_banking_europe } from './direct_banking_europe';\nimport { dotpay } from './dotpay';\nimport { ecopayz } from './ecopayz';\nimport { eps } from './eps';\nimport { giropay } from './giropay';\nimport { gmmoney } from './gmmoney';\nimport { internal_gamemoney } from './internal_gamemoney';\nimport { googlepay } from './googlepay';\nimport { ideal } from './ideal';\nimport { indonesia_bank } from './indonesia_bank';\nimport { indonesia_bank_transfer } from './indonesia_bank_transfer';\nimport { jeton } from './jeton';\nimport { jeton_voucher } from './jeton_voucher';\nimport { kassa24 } from './kassa24';\nimport { link } from './link';\nimport { local_card_brazil } from './local_card_brazil';\nimport { local_card_mexico } from './local_card_mexico';\nimport { loterica } from './loterica';\nimport { malaysia_bank } from './malaysia_bank';\nimport { megafon } from './megafon';\nimport { mexico_bank } from './mexico_bank';\nimport { momopay } from './momopay';\nimport { moneta } from './moneta';\nimport { mts } from './mts';\nimport { multibanco } from './multibanco';\nimport { neosurf } from './neosurf';\nimport { neteller } from './neteller';\nimport { nupay } from './nupay';\nimport { onecard } from './onecard';\nimport { oxxo } from './oxxo';\nimport { pagoefectivo } from './pagoefectivo';\nimport { pagoexpress } from './pagoexpress';\nimport { pagofacil } from './pagofacil';\nimport { paypal } from './paypal';\nimport { paysafecard } from './paysafecard';\nimport { picpay } from './picpay';\nimport { pix } from './pix';\nimport { philippines_bank } from './philippines_bank';\nimport { promptpay } from './promptpay';\nimport { promsviaz } from './promsviaz';\nimport { przelewy24 } from './przelewy24';\nimport { qiwi } from './qiwi';\nimport { rapid } from './rapid';\nimport { rapipago } from './rapipago';\nimport { redpagos } from './redpagos';\nimport { sberbank } from './sberbank';\nimport { sbp } from './sbp';\nimport { sepa } from './sepa';\nimport { servipag } from './servipag';\nimport { skinify } from './skinify';\nimport { skinpay } from './skinpay';\nimport { skinsback } from './skinsback';\nimport { skrill } from './skrill';\nimport { sofort } from './sofort';\nimport { spei } from './spei';\nimport { store_mexico } from './store_mexico';\nimport { tele2 } from './tele2';\nimport { thailand_bank } from './thailand_bank';\nimport { thailand_bank_transfer } from './thailand_bank_transfer';\nimport { tinkoff } from './tinkoff';\nimport { trustly } from './trustly';\nimport { vietnam_bank } from './vietnam_bank';\nimport { vietnam_bank_qr } from './vietnam_bank_qr';\nimport { vietnam_bank_transfer } from './vietnam_bank_transfer';\nimport { webpay } from './webpay';\nimport { wechat } from './wechat';\nimport { wme } from './wme';\nimport { wmr } from './wmr';\nimport { wmu } from './wmu';\nimport { wmz } from './wmz';\nimport { zen_wallet } from './zen_wallet';\nimport { yandex } from './yandex';\nimport { wallester } from './wallester';\nimport { bitcoin } from './bitcoin';\nimport { tron } from './tron';\nimport { ethereum } from './ethereum';\nimport { tether } from './tether';\nimport { tether_trc20 } from './tether_trc20';\nimport { mercado_pago } from './mercado_pago';\nimport { mirpay } from './mirpay';\nimport { mbway } from './mbway';\nimport { PaymentFields } from '../payment-fields';\n\nexport const CONFIG: {[key: string]: PaymentFields} = {\n advcash,\n alfabank,\n alipay,\n alipay_plus,\n applepay,\n argentina_bank,\n atf24,\n baloto,\n beeline,\n blik,\n boleto,\n brazil_bank,\n card,\n carga_virtual,\n cash,\n cashtocode,\n codi,\n comepay,\n cup,\n cup_bank,\n cup_p2p,\n deposit_express,\n direct_banking_europe,\n dotpay,\n ecopayz,\n eps,\n giropay,\n gmmoney,\n internal_gamemoney,\n googlepay,\n ideal,\n indonesia_bank,\n indonesia_bank_transfer,\n jeton,\n jeton_voucher,\n kassa24,\n link,\n local_card_brazil,\n local_card_mexico,\n loterica,\n malaysia_bank,\n megafon,\n mexico_bank,\n momopay,\n moneta,\n mts,\n multibanco,\n neosurf,\n neteller,\n nupay,\n onecard,\n oxxo,\n pagoefectivo,\n pagoexpress,\n pagofacil,\n paypal,\n paysafecard,\n picpay,\n pix,\n philippines_bank,\n promptpay,\n promsviaz,\n przelewy24,\n qiwi,\n rapid,\n rapipago,\n redpagos,\n sberbank,\n sbp,\n sepa,\n servipag,\n skinify,\n skinpay,\n skinsback,\n skrill,\n sofort,\n spei,\n store_mexico,\n tele2,\n thailand_bank,\n thailand_bank_transfer,\n tinkoff,\n trustly,\n vietnam_bank,\n vietnam_bank_qr,\n vietnam_bank_transfer,\n webpay,\n wechat,\n wme,\n wmr,\n wmu,\n wmz,\n zen_wallet,\n yandex,\n wallester,\n bitcoin,\n tron,\n ethereum,\n tether,\n tether_trc20,\n mercado_pago,\n mirpay,\n mbway\n};\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\nimport {\n MethodInfo,\n MethodType,\n SessionInfo,\n TerminalMethodBanksResponse,\n TerminalMethodDocumentTypesResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../codegen/model/models';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, delay, map, tap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\nimport { ApiErrorsService } from './api-errors.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { PaymentFields } from './../pages/components/constructor-form/models';\nimport { HttpBadRequestResponse } from '../models/http-bad-request-response';\nimport { TranslateLangStorageService } from './translation/translate-lang-storage.service';\nimport { I18N_KEY } from './../i18n';\nimport { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\nimport { CdeTerminalSdk, SessionToken } from '../models';\nimport { CONFIG } from '../pages/components/constructor-form/models/config/all';\n\n@Injectable()\nexport class SessionDataSource {\n document = inject<Document>(DOCUMENT);\n private langStorage = inject(TranslateLangStorageService);\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\n private token = inject(SessionToken, {optional: true}) || 'token';\n private apiErrorsSrv = inject(ApiErrorsService);\n private cookieSrv = inject(CookieService);\n private cd = inject(ChangeDetectorRef);\n private cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);\n\n payment_token?: string;\n data$: BehaviorSubject<SessionInfo> = new BehaviorSubject<SessionInfo>(undefined);\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n loadingMethodInfo$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n private redirectUrl: string;\n private returnUrl: string;\n private configurations: Map<string, PaymentFields> = new Map();\n\n private fillConfigurations(methods: MethodType[] = this.getSessionValue()?.methodTypes || []) {\n return methods.forEach(\n (m: MethodType) => this.configurations.set(\n m.type.name,\n CONFIG[m.type.name]\n )\n );\n }\n\n private unionGlobalCountries(session: SessionInfo) {\n let methods = session.methodTypes;\n\n // sort methods by countries in map\n const countriesTypes: Map<string, Set<number>> = new Map<string, Set<number>>();\n methods.forEach(({countryISOCode, type: {id}}) => {\n let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);\n countriesTypes.set(countryISOCode, types);\n });\n\n // Check every type in the country on having in other countries and getting ones in collection\n const globalCountries: string[] = [];\n const typesCountriesArray = Array.from(countriesTypes.values());\n const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));\n countriesTypes.forEach((types, iso) => {\n // Check every type includes in all countries\n const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);\n if (hasOnlyGlobalTypes) {\n globalCountries.push(iso);\n }\n });\n\n // if we have more than one country with only global types collapse them into one category\n if (globalCountries.length > 0) {\n const firstGlobalCountry = globalCountries.pop();\n methods = methods\n .filter(({countryISOCode}) => !globalCountries.includes(countryISOCode));\n methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));\n }\n session.methodTypes = methods;\n return session;\n }\n\n getConfiguration(name: string) {\n return this.configurations.get(name);\n }\n\n redirect() {\n if (this.redirectUrl) {\n this.document.defaultView.location.href = this.redirectUrl;\n return true;\n }\n return false;\n }\n\n returnBack() {\n if (this.returnUrl) {\n this.document.defaultView.location.href = this.returnUrl;\n return true;\n }\n return false;\n }\n\n get canReturnToProject() {\n return !!this.returnUrl;\n }\n\n get returnBackUrl(): string {\n return this.returnUrl;\n }\n\n getTypeNameById(id: number) {\n return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;\n }\n\n getSessionValue(): SessionInfo {\n return this.data$.getValue();\n }\n\n get(): Observable<SessionInfo> {\n if (!this.loading$.getValue()) {\n this.loading$.next(true);\n }\n\n return this.terminalApi.getTerminalSessionInfo({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError(this.loading$)\n ),\n map((session: SessionInfo) => {\n this.data$.next(this.unionGlobalCountries(session));\n this.fillConfigurations();\n this.loading$.next(false);\n this.returnUrl = session.returnUrl;\n return this.data$.getValue();\n })\n );\n }\n\n getMethodInfo(currency, typeId: number): Observable<MethodInfo> {\n if (!this.loadingMethodInfo$.getValue()) {\n this.loadingMethodInfo$.next(true);\n }\n if (!typeId || !currency) {\n return throwError({})\n .pipe(\n catchError(\n this.catchError(this.loadingMethodInfo$)\n )\n );\n }\n return this.terminalApi\n .getTerminalMethodInfo({\n token: this.token,\n lang: this.langStorage.currentLang,\n currency,\n typeId\n })\n .pipe(\n catchError(\n this.catchError(this.loadingMethodInfo$)\n ),\n tap((method) => {\n if (method.payment_token) {\n this.payment_token = method.payment_token;\n }\n this.loadingMethodInfo$.next(false);\n })\n );\n }\n\n private catchError(loading$?: BehaviorSubject<boolean>) {\n return (err: HttpBadRequestResponse) => {\n this.apiErrorsSrv.setLocalError(err.error);\n loading$?.next(false);\n this.cd.markForCheck();\n return throwError(err);\n }\n }\n\n prepare(data: TerminalPaymentPrepareRequest): Observable<TerminalPaymentPrepareResponse> {\n return this.terminalApi\n .postTerminalPaymentPrepare({\n token: this.token,\n terminalPaymentPrepareRequest: data\n })\n .pipe(\n delay(2000),\n catchError(\n this.catchError()\n )\n );\n }\n\n confirm() {\n return this.terminalApi\n .postTerminalPaymentConfirm({\n token: this.token,\n terminalPaymentConfirmRequest: {\n lang: this.langStorage.currentLang,\n gaCookie: this.cookieSrv.get('_ga') || null\n }\n })\n .pipe(\n catchError(\n this.catchError()\n ),\n tap((resp) => {\n this.redirectUrl = resp.redirectUrl;\n })\n );\n }\n\n close() {\n\n return this.terminalApi\n .postTerminalClose({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n ),\n map(() => {\n if (!this.returnBack()) {\n const error = {code: I18N_KEY.SESSION_CLOSED};\n this.apiErrorsSrv.setLocalError(error);\n this.cd.markForCheck();\n\n throw error;\n }\n })\n );\n }\n\n getBanks(typeId: number): Observable<TerminalMethodBanksResponse> {\n return this.terminalApi\n .getTerminalMethodBanks({\n typeId,\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n )\n );\n }\n\n getDocuments(typeId: number): Observable<TerminalMethodDocumentTypesResponse> {\n\n return this.terminalApi\n .getTerminalMethodDocumentTypes({\n typeId,\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n )\n );\n }\n\n createCardTerminalSdk(lang: string, id: string, tabindex?: number): CdeTerminalSdk {\n return this.cardTerminalSdkFactory(this.payment_token, id, {lang, tabindex});\n }\n\n feeChangeable = !!this.terminalApi.getFee;\n\n feeOptions(payment: any) {\n return this.terminalApi.getFee(payment);\n }\n}\n\n\n","import { CSP_NONCE, inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ENVIRONMENT } from '../../const';\n\nexport type SDKScriptId = 'cde_sdk' | 'mir-pay-sdk' | 'apple-pay-sdk' | 'google-pay-sdk';\n\n@Injectable()\nexport class ScriptLoader {\n private document = inject<Document>(DOCUMENT);\n private nonce = inject(CSP_NONCE);\n private environment = inject(ENVIRONMENT);\n\n\n readonly SCRIPT_HASH_MAP = new Map<SDKScriptId, { src: string; hash?: string; }>([\n [\n 'cde_sdk',\n this.environment.production ? {\n src: 'https://app.cde.cloud/iframe-sdk/sdk-v1.0.2.js',\n hash: 'sha384-p4PUsA47nBEOaOoEy4iXVnqntD4mpWM2cXFtpol6Tl7OdUCwDgqxoi0W71WJdGhi'\n } : {\n src: 'https://app.cde-cloud.dev/iframe-sdk/sdk.js',\n hash: ''\n }\n ]\n ]);\n\n fetchScript(id: SDKScriptId) {\n return new Promise<void>((resolve, reject) => {\n let script: HTMLScriptElement;\n if (id === 'cde_sdk' && this.document.defaultView?.hasOwnProperty('CdeTerminalSdk')) {\n resolve();\n return;\n }\n if (id === 'google-pay-sdk' && this.document.defaultView?.hasOwnProperty('google')) {\n resolve();\n return;\n }\n if (id === 'apple-pay-sdk' && this.document.defaultView?.hasOwnProperty('ApplePaySession')) {\n resolve();\n return;\n }\n if (id === 'mir-pay-sdk' && this.document.defaultView?.hasOwnProperty('YooMoneyCheckoutWidget')) {\n resolve();\n return;\n }\n\n if (id === 'google-pay-sdk' || id === 'apple-pay-sdk' || id === 'mir-pay-sdk') {\n const template: HTMLTemplateElement = this.document.querySelector(`template#${id}`)\n if (!template) {\n reject();\n }\n script = template.content.children.item(0) as HTMLScriptElement;\n } else {\n const {src, hash} = this.SCRIPT_HASH_MAP.get(id);\n script = this.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n if (hash) {\n script.integrity = hash;\n script.crossOrigin = 'anonymous';\n }\n script.async = true;\n }\n script.nonce = this.nonce;\n script.onload = (): void => resolve();\n script.onerror = (err): void => reject(err);\n this.document.body.appendChild(script);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { loadI18NData } from './helpers/i18n-countries';\nimport { ApiErrorsService, ScriptLoader, TranslateLangStorageService } from './services';\nimport { I18N_COUNTRIES, LANGUAGE } from './models';\nimport { getNames } from 'i18n-iso-countries';\n\nloadI18NData();\n\n@NgModule({\n imports: [\n RouterModule.forChild([\n {\n path: '',\n loadChildren: () => import('./pages/pages.module')\n },\n {\n path: 'checkin',\n loadChildren: () => import('./checkin/checkin.module').then(m => m.CheckinModule)\n },\n {\n path: '**',\n redirectTo: ''\n }\n ])\n ]\n})\nexport class TerminalModule {\n}\n\nexport const provideTerminal = () => {\n return [\n TranslateLangStorageService,\n {\n provide: I18N_COUNTRIES,\n useValue: {\n ru: getNames(LANGUAGE.RU),\n lt: getNames(LANGUAGE.LT),\n en: getNames(LANGUAGE.EN),\n es: getNames(LANGUAGE.ES),\n tr: getNames(LANGUAGE.TR),\n pt: getNames(LANGUAGE.PT)\n }\n },\n ApiErrorsService,\n ScriptLoader\n ];\n};\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[terminalFee]',\n standalone: true\n})\nexport class FeeTemplateDirective {}\n","import { Component, ContentChild, HostListener, inject, OnDestroy, OnInit, TemplateRef } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, Router, RouterOutlet } from '@angular/router';\nimport { filter, first, switchMap, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { TranslateLangStorageService } from './services/translation/translate-lang-storage.service';\nimport { APP_READY_TOKEN } from './models/constants';\nimport { FocusHandler } from './helpers/key-down-handler';\nimport { hideInitLoader } from './helpers/hide-init-loader';\nimport { AsyncPipe } from '@angular/common';\nimport { FeeTemplateDirective } from './pages/directives/fee-template.directive';\n\n@Component({\n selector: 'terminal',\n host: {\n class: 'trm'\n },\n templateUrl: './terminal-tpl.component.html',\n styleUrls: ['./terminal-tpl.component.scss'],\n standalone: true,\n imports: [RouterOutlet, AsyncPipe]\n})\nexport class TerminalTplComponent implements OnInit, OnDestroy {\n private router = inject(Router);\n ready$ = inject<BehaviorSubject<boolean>>(APP_READY_TOKEN);\n langStorage = inject(TranslateLangStorageService);\n\n private unSubscriber = new Subject<void>();\n @ContentChild(FeeTemplateDirective, {read: TemplateRef, static: false}) feeTpl;\n\n @HostListener('document:keydown.arrowDown', ['$event', '$event.currentTarget']) next(ev, document: Document) {\n FocusHandler.nextEnabled(ev);\n }\n @HostListener('document:keydown.arrowUp', ['$event', '$event.currentTarget']) prev(ev, document: Document) {\n FocusHandler.previousEnabled(ev);\n }\n\n\n ngOnInit(): void {\n this.navigationEnd$()\n .pipe(\n switchMap(() => this.langStorage.setLanguage$({ save: false })),\n switchMap(() => hideInitLoader()),\n first(),\n takeUntil(this.unSubscriber),\n )\n .subscribe(() => this.ready$.next(true));\n }\n\n private navigationEnd$() {\n if (this.router.navigated) {\n return of({});\n }\n return this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)\n )\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (ready$ | async) {\n <div class=\"app__container\">\n <router-outlet></router-outlet>\n </div>\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[trmSelectLabelTemplate]',\n standalone: true\n})\nexport class TrmSelectLabelTemplateDirective {\n tpl = inject<TemplateRef<TrmSelectLabelTemplateDirective>>(TemplateRef);\n\n}\n","import {AfterViewInit, Directive, ElementRef, inject, OnDestroy, Renderer2} from '@angular/core';\nimport {NgScrollbar} from 'ngx-scrollbar';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Directive({\n selector: 'ng-scrollbar[appScrollbarSelectHeight]',\n standalone: true\n})\nexport class ScrollbarSelectHeightDirective implements AfterViewInit, OnDestroy {\n private element = inject(ElementRef);\n private renderer = inject(Renderer2);\n private layoutScrollbar = inject(NgScrollbar, { skipSelf: true });\n private scrollbar = inject(NgScrollbar);\n\n private unsub: Subject<void> = new Subject<void>();\n\n readonly DEFAULT_MAX_HEIGHT = 250;\n\n ngAfterViewInit() {\n const contentWrapper = this.scrollbar?.viewport?.contentWrapperElement;\n if (contentWrapper) {\n merge(\n this.scrollbar.afterInit,\n this.scrollbar.afterUpdate\n )\n .pipe(\n takeUntil(this.unsub)\n )\n .subscribe(() => {\n const viewport = this.layoutScrollbar.viewport;\n const css = this.element.nativeElement.getBoundingClientRect();\n const height = viewport.offsetHeight - parseFloat(css.top);\n this.renderer.setStyle(this.scrollbar.nativeElement, 'maxHeight', (height < this.DEFAULT_MAX_HEIGHT ? this.DEFAULT_MAX_HEIGHT : (height - 12)) + 'px');\n })\n }\n }\n\n public ngOnDestroy() {\n this.unsub.next();\n this.unsub.unsubscribe();\n }\n}\n","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { I18N_KEY, i18nMap } from './../../i18n';\nimport { Subscription } from \"rxjs\";\n\n@Pipe({\n name: 'trans',\n pure: false,\n standalone: true\n})\nexport class TranslateByKeyPipe implements PipeTransform, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n private translateSrv = inject(TranslateService);\n\n lang: string;\n private onLangChangeSubscription: Subscription;\n\n transform(query: string, ...args: any[]): any {\n if (query === '') {\n return '';\n }\n\n this._dispose();\n this._subscribe();\n this.lang = this.translateSrv.currentLang;\n return this.translateSrv.instant(i18nMap.get(query as I18N_KEY) || query, ...args);\n }\n\n private _subscribe() {\n this.onLangChangeSubscription = this.translateSrv.onLangChange\n .subscribe(({lang}) => {\n if (lang === this.lang) {\n return\n }\n this.lang = lang;\n this.cd.markForCheck()\n });\n }\n\n private _dispose() {\n if (this.onLangChangeSubscription && !this.onLangChangeSubscription.closed) {\n this.onLangChangeSubscription.unsubscribe();\n }\n this.onLangChangeSubscription = null;\n }\n\n ngOnDestroy() {\n this._dispose();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\nimport { I18N_KEY } from './../../../i18n';\nimport { TrmSelectLabelTemplateDirective } from './trm-select-label-template.directive';\nimport { ScrollbarSelectHeightDirective } from './scrollbar-select-height.directive';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-trm-select',\n templateUrl: './trm-select.component.html',\n styleUrls: ['./trm-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrmSelectComponent),\n multi: true,\n }\n ],\n animations: [insertRemoveTrigger],\n standalone: true,\n imports: [NgTemplateOutlet, NgClass, ScrollbarSelectHeightDirective, NgScrollbar, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\n})\nexport class TrmSelectComponent implements OnDestroy, ControlValueAccessor, AfterViewInit {\n private el = inject(ElementRef);\n private document = inject<Document>(DOCUMENT);\n private cd = inject(ChangeDetectorRef);\n\n private unSubscriber: Subject<void> = new Subject<void>();\n private _disabled = false;\n I18N_KEY = I18N_KEY;\n\n get disabled() {\n return this.data && this.data.length === 1 && this.selected === this.getItemValue(this.data[0])\n }\n\n @Input() label: string;\n @Input() hasBorder = true;\n @Input() data: any[] | false;\n @Input() tabIndex = 0;\n @Input() name = '';\n @Input() placeholder = '';\n @Input() searchable = true;\n @Input() hasScrollbar = true;\n searchControl = new FormControl();\n @Output() open = new EventEmitter();\n @Output() search = new EventEmitter();\n selected: any;\n selectedItem: any;\n filteredData = [];\n\n onChange = (value) => {\n };\n onTouch = () => {\n };\n\n @ContentChild(TrmSelectLabelTemplateDirective) labelTeplate: TrmSelectLabelTemplateDirective;\n get labelTpl() {\n return this.labelTeplate?.tpl;\n }\n\n @Input() nameId = 'id';\n @Input() nameLabel = 'name';\n opened = false;\n\n constructor() {\n fromEvent(this.document, 'click')\n .pipe(\n debounceTime(100),\n filter((ev) => this.opened && !this.el.nativeElement.contains(ev.target)),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.toggle());\n }\n\n get selectedLabel() {\n return this.selectedItem?.[this.nameLabel] || this.getItemLabel(this.selected);\n }\n\n ngAfterViewInit() {\n if (this.searchable) {\n this.searchControl\n .valueChanges\n .pipe(\n takeUntil(this.unSubscriber),\n debounceTime(200)\n )\n .subscribe((search) => this.triggerSearch(search));\n }\n }\n\n get list() {\n if (Array.isArray(this.data)) {\n return this.data?.filter(item => !this.isSelected(item));\n }\n return [];\n }\n\n get focusableEl() {\n return this.el.nativeElement.querySelector('[tabindex]');\n }\n\n get focused(): boolean {\n return this.el.nativeElement.contains(this.document.activeElement);\n }\n\n onBlur() {\n if (!this.opened) {\n return;\n }\n // closed select when focus out\n setTimeout(() => !this.focused && this.toggle(), 100);\n }\n\n private searchAutofocusTimer: number;\n\n toggle() {\n if (this.data === false) {\n return;\n }\n if (!this.opened && !this.data?.length) {\n return;\n }\n if ((!this.searchable || !this.searchControl.value) && this.data?.length === 1 && this.selected === this.data[0]) {\n return;\n }\n if (this.searchable) {\n if (this.opened === false) {\n clearTimeout(this.searchAutofocusTimer);\n this.searchAutofocusTimer = this.document.defaultView.setTimeout(\n () => this.el.nativeElement.querySelector('.trm-select-list__search input').focus(),\n 200\n );\n } else {\n this.searchControl.setValue('');\n }\n }\n this.opened = !this.opened;\n this.open.emit(this.opened);\n this.onTouch();\n this.cd.detectChanges();\n }\n\n isSelected(item) {\n let value = this.getItemValue(item);\n if (value) {\n return this.selected === value;\n }\n return false;\n }\n\n getItemValue(item) {\n return item?.[this.nameId] || item;\n }\n\n getItemLabel(id) {\n if (!this.data) {\n return '';\n }\n id = this.getItemValue(id);\n const item = this.getCollectionItem(id);\n return item?.[this.nameLabel] || id;\n }\n\n getCollectionItem(id) {\n if (!this.data) {\n return id;\n }\n return this.data.find(f => this.getItemValue(f) === id);\n }\n\n select(item) {\n if (this.selected !== this.getItemValue(item)) {\n this.onChange(this.getItemValue(item));\n }\n this.selected = this.getItemValue(item);\n this.selectedItem = this.getCollectionItem(this.selected);\n this.toggle();\n this.focusableEl.focus();\n }\n\n writeValue(value: any) {\n if (!this.data) {\n return;\n }\n this.selected = value;\n this.selectedItem = this.getCollectionItem(this.selected);\n this.cd.markForCheck();\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this._disabled = isDisabled;\n }\n\n triggerSearch(value = this.searchControl.value) {\n if (this.data === false) {\n return;\n }\n this.search.emit(value);\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (label) {\n <label class=\"trm-label\"\n [for]=\"name\"\n (click)=\"toggle()\"\n > {{ label }} </label>\n}\n<div class=\"trm-select\"\n [class.trm-select--noBordered]=\"!hasBorder\"\n [class.trm-select--opened]=\"opened\"\n [class.trm-select--disabled]=\"disabled\"\n [tabindex]=\"tabIndex\"\n (blur)=\"onBlur()\"\n [id]=\"name\"\n (keydown.enter)=\"toggle()\"\n>\n @if (labelTpl) {\n <div class=\"trm-select-value\"\n (click)=\"toggle()\">\n @if (selected && selectedItem) {\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item: selectedItem}\"></ng-container>\n }\n @if (!selected) {\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\n }\n <span class=\"trm-select-value__arrow\"\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\n @if (data === false) {\n <div class=\"trm-spinner\"></div>\n }\n </div>\n @if (opened && hasScrollbar) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-scrollbar appearance=\"compact\" class=\"trm-select-list-scrollbar\" appScrollbarSelectHeight>\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\n </ng-scrollbar>\n </ul>\n }\n @if (opened && !hasScrollbar) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\n </ul>\n }\n <ng-template #listTpl>\n @if (searchable) {\n <li class=\"trm-select-list__item trm-select-list__search\">\n <input class=\"trm-form-field\"\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation(); $event.preventDefault();\"\n [formControl]=\"searchControl\">\n </li>\n }\n @if (searchable && searchControl.value && list.length === 0) {\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\n >\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\n </li>\n }\n @for (item of list; track getItemValue(item)) {\n <li class=\"trm-select-list__item\"\n (click)=\"select(item)\"\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\n [tabindex]=\"tabIndex\"\n (blur)=\"onBlur()\">\n @if (item) {\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item}\"></ng-container>\n }\n </li>\n }\n </ng-template>\n } @else {\n <div class=\"trm-select-value\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\">\n {{ selectedLabel }}\n @if (!selected) {\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\n }\n <span class=\"trm-select-value__arrow\"\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\n @if (data === false) {\n <div class=\"trm-spinner\"></div>\n }\n </div>\n @if (opened) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-scrollbar class=\"gm-select-list-scrollbar\" appScrollbarSelectHeight>\n @if (searchable) {\n <li class=\"trm-select-list__item trm-select-list__search\">\n <input class=\"trm-form-field\"\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation();\"\n [formControl]=\"searchControl\">\n </li>\n }\n @if (searchable && searchControl.value && list.length === 0) {\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\n >\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\n </li>\n }\n @for (item of list; track getItemValue(item)) {\n <li class=\"trm-select-list__item\"\n [tabindex]=\"tabIndex\"\n (click)=\"select(item)\"\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\n (blur)=\"onBlur()\">\n {{ getItemLabel(item) }}\n </li>\n }\n </ng-scrollbar>\n </ul>\n }\n }\n</div>\n<ng-content select=\"[app-trm-select-hint]\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NgClass } from '@angular/common';\nimport { TrmSelectComponent } from '../trm-select/trm-select.component';\nimport { FormsModule } from '@angular/forms';\nimport { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from \"../../../../const\";\nimport { VersionServiceInterface } from \"../../../models\";\n\n@Component({\n selector: 'app-terminal-lang-switcher',\n templateUrl: './terminal-lang-switcher.component.html',\n styleUrls: ['./terminal-lang-switcher.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent]\n})\nexport class TerminalLangSwitcherComponent implements OnDestroy {\n private versionSrv: VersionServiceInterface = inject(TERMINAL_VERSION_SERVICE_TOKEN);\n private langStorageSrv = inject(TranslateLangStorageService);\n private cd = inject(ChangeDetectorRef);\n\n private unSubscriber = new Subject<void>();\n @Input() loading = false;\n @Output() langChange = new EventEmitter<string>();\n @Input() tabIndex = 0;\n\n get translation_keys() {\n return this.langStorageSrv.TRANSLATION_LANG_KEYS;\n }\n\n constructor() {\n this.langStorageSrv.onLangChange$\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.cd.detectChanges());\n }\n\n get lang() {\n return this.langStorageSrv.currentLang;\n }\n get langs(): string[] {\n return this.versionSrv.langs;\n }\n\n changeLang(lang: string) {\n this.langStorageSrv.setLanguage$({ lang, save: true });\n this.cd.markForCheck();\n this.langChange.emit(lang);\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (!loading) {\n <app-trm-select class=\"lang-switcher\"\n [hasBorder]=\"false\"\n [searchable]=\"false\"\n [hasScrollbar]=\"false\"\n [data]=\"langs\"\n [ngModel]=\"lang\"\n [tabIndex]=\"tabIndex\"\n (ngModelChange)=\"changeLang($event)\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\n <span> {{translation_keys[item].name | translate}}</span>\n </ng-template>\n </app-trm-select>\n} @else {\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\n}\n","import { ChangeDetectorRef, Component, inject, Input, OnDestroy } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\nimport { TranslateLangStorageService } from '../../../services';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TerminalLangSwitcherComponent } from '../terminal-lang-switcher/terminal-lang-switcher.component';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\n\n@Component({\n selector: 'app-terminal-layout-tpl',\n templateUrl: './terminal-layout-tpl.component.html',\n styleUrls: ['./terminal-layout-tpl.component.scss'],\n standalone: true,\n imports: [NgScrollbar, TerminalLangSwitcherComponent, GmSkeletonComponent]\n})\nexport class TerminalLayoutTplComponent implements OnDestroy {\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n private document = inject<Document>(DOCUMENT);\n private translateSrv = inject(TranslateService);\n private cd = inject(ChangeDetectorRef);\n private translateStorageSrv = inject(TranslateLangStorageService);\n\n private unSubscriber = new Subject<void>();\n @Input() projectName: string;\n @Input() description: string;\n @Input() loading = true;\n\n constructor() {\n this.translateSrv.onLangChange\n .pipe(takeUntil(this.unSubscriber))\n .subscribe(() => {\n this.cd.detectChanges();\n });\n }\n\n get hasChoice() {\n return this.translateStorageSrv.languages.length > 1;\n }\n\n get logoClass(): string {\n return this.versionSrv.logoClass;\n }\n get footerText() {\n return this.versionSrv.footerText;\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","<ng-scrollbar appearance=\"compact\">\n <div class=\"terminal-layout\">\n <section class=\"terminal\">\n <div class=\"terminal__content\">\n <header class=\"terminal__header\">\n <i class=\"terminal__header-logo\"\n [class]=\"logoClass\"></i>\n <div class=\"terminal__header-lang\">\n @if (hasChoice) {\n <app-terminal-lang-switcher\n [loading]=\"loading\"\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\n }\n </div>\n </header>\n <div class=\"terminal__form\">\n <ng-content selector=\"[terminal-layout-status]\"></ng-content>\n <ng-content selector=\"[terminal-layout-form]\"></ng-content>\n @if (loading) {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n </div>\n </div>\n </section>\n <footer class=\"terminal-footer\">\n <i class=\"terminal-footer__logo\"></i>\n <p class=\"terminal-footer__txt\">\n {{footerText}}\n </p>\n </footer>\n </div>\n</ng-scrollbar>\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitize',\n standalone: true\n})\nexport class SanitizerPipe implements PipeTransform {\n private _sanitizer = inject(DomSanitizer);\n\n transform(value: any, context: SecurityContext): any {\n return this._sanitizer.sanitize(context, value);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';\nimport { I18N_KEY } from './../../../i18n';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models';\n\nimport { SanitizerPipe } from '../../pipes/sanitizer.pipe';\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-status',\n templateUrl: './constructor-status.component.html',\n styleUrls: ['./constructor-status.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SanitizerPipe, TranslateByKeyPipe]\n})\nexport class ConstructorStatusComponent {\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n SecurityContext = SecurityContext;\n I18N_KEY = I18N_KEY;\n @Input() failed = false;\n @Input() inProgress = false;\n @Input() animation = true;\n @Input() message: string;\n @Input() failTitle: string;\n @Input() progressTitle: string;\n @Input() successTitle: string;\n @Input() tabIndex: number;\n @Input() backUrl: string;\n @Input() backUrlTitle: string;\n @Input() hasSupportHint = true;\n get supportEmail() {\n return this.versionSrv.supportEmail;\n }\n}\n","<div class=\"c-status\">\n <div class=\"c-status__content\"\n [class.c-status--failed]=\"failed\"\n [class.c-status--progress]=\"inProgress\"\n [class.c-status--live]=\"animation\"\n >\n <i class=\"c-status__img\"></i>\n <h5 class=\"c-status__title\">\n @if (inProgress) {\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\n } @else {\n @if (failed) {\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\n }\n @if (!failed) {\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\n }\n }\n </h5>\n <div class=\"c-status__msg\" [innerHTML]=\"message | sanitize: SecurityContext.HTML\"> {{ message }}</div>\n @if (hasSupportHint) {\n <div class=\"c-status__hint\">\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\n @if (supportEmail) {\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\n }\n </div>\n }\n </div>\n @if (!!backUrl) {\n <div class=\"c-status__actions\">\n <a class=\"trm-button trm-button--primary\"\n [tabindex]=\"tabIndex\"\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\n <div class=\"c-status__hint c-status__hint-button\">\n <ng-content constructor-status-button-hint></ng-content>\n </div>\n </div>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngVar]',\n standalone: true,\n})\nexport class NgVarDirective<T = unknown> {\n private _viewContainer = inject(ViewContainerRef);\n private _templateRef = inject<TemplateRef<NgVarContext<T>>>(TemplateRef);\n\n private _context: NgVarContext<T> = new NgVarContext<T>();\n private _viewRef: EmbeddedViewRef<NgVarContext<T>> | null = null;\n\n @Input()\n set ngVar(context: T) {\n this._context.$implicit = this._context.ngVar = context;\n\n if (!this._viewRef) {\n this._viewRef = this._viewContainer.createEmbeddedView(\n this._templateRef,\n this._context\n );\n }\n }\n}\n\nexport class NgVarContext<T = unknown> {\n public $implicit: T = null!;\n public ngVar: T = null!;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TerminalLayoutTplComponent } from './components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { TerminalLangSwitcherComponent } from './components/terminal-lang-switcher/terminal-lang-switcher.component';\nimport { ConstructorStatusComponent } from './components/constructor-status/constructor-status.component';\nimport { TrmSelectComponent } from './components/trm-select/trm-select.component';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ScrollbarSelectHeightDirective } from './components/trm-select/scrollbar-select-height.directive';\nimport { SanitizerPipe } from './pipes/sanitizer.pipe';\nimport { TranslateByKeyPipe } from './pipes/translate-by-key.pipe';\nimport { NgVarDirective } from './directives/ng-var.directive';\nimport { TrmSelectLabelTemplateDirective } from './components';\n\nconst components = [\n TerminalLayoutTplComponent,\n TerminalLangSwitcherComponent,\n ConstructorStatusComponent,\n TrmSelectComponent,\n ScrollbarSelectHeightDirective,\n SanitizerPipe,\n TranslateByKeyPipe,\n NgVarDirective,\n TrmSelectLabelTemplateDirective\n]\n\n@NgModule({\n exports: components,\n providers: [\n TranslatePipe\n ],\n imports: [\n CommonModule,\n NgScrollbar,\n TranslateModule,\n FormsModule,\n ReactiveFormsModule,\n ...components\n ]\n})\nexport class SharedModule {\n}\n","export function removeEmptyProps<T extends { [key: string]: any }>(obj: T, options: { nullValue: boolean } = { nullValue: true }): T {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n Object.keys(obj).forEach((key: string) => {\n const value: any = obj[key];\n if (typeof value === 'undefined' || (options?.nullValue === true && value === null) || value === '' || (typeof value === 'number' && isNaN(value))) {\n delete obj[key];\n }\n });\n return obj;\n}\n","import { ChangeDetectorRef, inject, Injectable, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { CollectionType, PaymentField, PaymentFieldOptionsItem, PaymentFields, PaymentFieldTypeEnum } from '../models';\nimport { SessionDataSource } from '../../../../services/session.data-source';\nimport { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { MethodInfo, TerminalPaymentPrepareRequest } from '../../../../../codegen/model/models';\nimport { distinctUntilChanged, Observable, of, Subject } from 'rxjs';\nimport { removeEmptyProps } from \"../../../../../helpers/remove-empty-props\";\nimport { I18N_KEY } from \"./../../../../i18n\";\nimport { TERMINAL_METHOD_CONFIGURATION_FACTORY } from '../../../../../const';\nimport { LocalStorage } from \"../../../../services/local-storage\";\n\n@Injectable()\nexport class ConstructorFormService extends FormGroup<{ [key: string]: FormControl | FormGroup }> implements OnDestroy {\n private sessionDS = inject(SessionDataSource);\n private cd = inject(ChangeDetectorRef);\n private configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, {optional: true}) || ((method: string, defaultConfig: PaymentFields) => defaultConfig);\n\n private _storage: LocalStorage = inject(LocalStorage);\n private cancelRequestsSubscriber = new Subject<void>();\n private unSubscriber = new Subject<void>();\n config: PaymentFields;\n fields: PaymentField[] = [];\n maskedWallet: string;\n ready = false;\n\n constructor() {\n super({\n country: new FormControl(undefined, Validators.required),\n method: new FormControl(undefined, Validators.required),\n currency: new FormControl(undefined, Validators.required),\n user_currency: new FormControl(undefined, Validators.required),\n payment: new FormGroup({})\n });\n }\n\n get methodInfoLoading() {\n return this.sessionDS.loadingMethodInfo$.getValue();\n }\n\n get paymentFormFieldNames() {\n return Object.keys(this.payment.controls);\n }\n\n removePaymentFormControls() {\n this.paymentFormFieldNames\n .forEach((controlName: string) => this.payment.removeControl(controlName));\n }\n\n init() {\n this.ready = false;\n this.cd.detectChanges();\n if (this.configurationFactory) {\n this.config = this.configurationFactory(\n this.methodName,\n this.sessionDS.getConfiguration(this.methodName)\n );\n } else {\n this.config = this.sessionDS.getConfiguration(this.methodName);\n }\n\n this.fields = [...this.config.fields];\n // that trick for z-index order in page (reverse array + reverse flex-direction)\n this.fields.reverse();\n return this.sessionDS\n .getMethodInfo(\n this.currency.value,\n this.method.value\n )\n .pipe(\n switchMap((methodInfo) => this.generateFields(methodInfo)),\n first(),\n takeUntil(this.cancelRequestsSubscriber)\n );\n }\n\n public amountDynamic = false;\n\n private async generateFields(methodInfo: MethodInfo): Promise<void> {\n this.fields\n .forEach((field: PaymentField) => {\n if (!field.name) {\n return;\n }\n const control = new FormControl<string | number>({\n value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,\n disabled: false,\n });\n const validators: ValidatorFn[] = [];\n this.amountDynamic = methodInfo.amountDynamic;\n const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();\n field.placeholder = field.placeholder || '';\n if (field.type === PaymentFieldTypeEnum.Amount) {\n if (methodInfo.defaultAmount || methodInfo.defaultAmount === 0) {\n control.setValue(methodInfo.defaultAmount);\n }\n if (!isEditable) {\n field.readonly = true;\n control.markAsDirty();\n control.markAsTouched();\n } else {\n field.readonly = false;\n validators.push((control) => +control.value === 0 ? {required: true} : null);\n }\n field.options = field.options || {};\n field.options.currency = this.currency.value;\n if (methodInfo.fee) {\n field.options.fee = methodInfo.fee;\n } else {\n field.options.fee = 0;\n }\n if (methodInfo.fixedFee) {\n field.options.fixedFee = methodInfo.fixedFee;\n } else {\n field.options.fixedFee = 0;\n }\n if (!methodInfo.amountDynamic && methodInfo.limits?.max) {\n field.options.max = methodInfo.limits.max;\n } else {\n delete field.options.max;\n }\n if (!methodInfo.amountDynamic && methodInfo.limits?.min) {\n field.options.min = methodInfo.limits.min;\n } else {\n delete field.options.min;\n }\n }\n if (field.wallet && methodInfo.defaultWallet) {\n control.setValue(methodInfo.defaultWallet);\n } else if (methodInfo.email && field.type === PaymentFieldTypeEnum.Email) {\n control.setValue(methodInfo.email);\n }\n if (field.require) {\n validators.push(Validators.required);\n }\n if (field.pattern) {\n validators.push(Validators.pattern(new RegExp(field.pattern)));\n }\n\n if (field.type === PaymentFieldTypeEnum.Email) {\n validators.push(Validators.email);\n }\n if (field.options?.max && typeof field.options?.max === 'number') {\n validators.push(Validators.max(field.options?.max));\n }\n if (field.options?.min && typeof field.options?.min === 'number') {\n validators.push(Validators.min(field.options?.min));\n }\n if (field.options?.maxLength) {\n validators.push(Validators.maxLength(field.options?.maxLength));\n }\n if (field.options?.minLength) {\n validators.push(Validators.minLength(field.options?.minLength));\n }\n if (field.type === PaymentFieldTypeEnum.Amount && methodInfo.amountDynamic) {\n validators.length = 0;\n }\n if (typeof field.validator === 'function') {\n validators.push(field.validator(this.payment));\n }\n control.setValidators(validators);\n this.payment.addControl(field.name, control);\n this.fetchCollection(field)\n .subscribe(() => {\n control.updateValueAndValidity();\n });\n });\n this.ready = true;\n }\n\n private fetchCollection(field: PaymentField): Observable<PaymentFieldOptionsItem[]> {\n const EMPTY_LIST = of([]).pipe(first());\n if (!field.options?.collection) {\n return EMPTY_LIST;\n }\n switch (field.options.collection) {\n case CollectionType.Banks:\n field.options.items = false;\n return this.sessionDS\n .getBanks(this.method.value)\n .pipe(\n map(({data}) => {\n field.options.items = data;\n this.cd.detectChanges();\n return data;\n })\n );\n case CollectionType.Documents:\n field.options.items = false;\n return this.sessionDS\n .getDocuments(this.method.value)\n .pipe(\n map(({data}) => {\n field.options.items = data;\n this.cd.detectChanges();\n return data;\n })\n );\n default:\n return EMPTY_LIST;\n }\n }\n\n get country(): AbstractControl {\n return this.get('country') as AbstractControl;\n }\n\n get method(): AbstractControl {\n return this.get('method') as AbstractControl;\n }\n\n get currency(): FormControl {\n return this.get('currency') as FormControl;\n }\n\n get userCurrency(): FormControl {\n return this.get('user_currency') as FormControl;\n }\n\n get payment(): FormGroup {\n return this.get('payment') as FormGroup;\n }\n\n get amount(): AbstractControl {\n return this.payment.get(this.fields.find(field => field.type === PaymentFieldTypeEnum.Amount).name) as AbstractControl;\n }\n\n public get methodName(): string {\n if (!this.method.value) {\n return null;\n }\n return this.sessionDS.getTypeNameById(this.method.value);\n }\n\n getTypeNameById(id) {\n return this.sessionDS.getTypeNameById(id);\n }\n\n saveDefaultCountry(): void {\n this._storage.saveDefaultCountry(this.country.value);\n }\n\n saveDefaultMethodName(): void {\n this._storage.saveDefaultMethodName(this.methodName);\n }\n\n saveDefaultCurrency(): void {\n this._storage.saveDefaultCurrency(this.currency.value);\n }\n\n get defaultCountry(): string {\n return this._storage.defaultCountry;\n }\n\n get defaultMethodName(): string {\n return this._storage.defaultMethodName;\n }\n\n get defaultCurrency(): string {\n return this._storage.defaultCurrency;\n }\n\n public cancelRequests() {\n this.cancelRequestsSubscriber.next();\n }\n\n public getPaymentValue() {\n const data: TerminalPaymentPrepareRequest = {\n typeId: this.method.value,\n currency: this.currency.value,\n type: this.getTypeNameById(this.method.value),\n user_currency: this.userCurrency.value,\n ...this.payment.getRawValue()\n }\n this.fields.forEach((field: PaymentField) => {\n if (field.type === PaymentFieldTypeEnum.Amount) {\n data[field.name] = +data[field.name];\n }\n });\n return removeEmptyProps(data);\n }\n updateValueAndValidityIframes(): void {\n this.fields.forEach(({ name, type }) => {\n if (type === PaymentFieldTypeEnum.Iframe) {\n this.payment.get(name).updateValueAndValidity({ emitEvent: false });\n }\n });\n }\n\n get readyIframesSubmit(): boolean {\n return this.fields\n .filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)\n .every(({ name, type }) => !this.payment.get(name).invalid);\n }\n\n isAmountEditable(): boolean {\n return this.sessionDS.getSessionValue().amountEditable;\n }\n\n hasWhatToFill() {\n const _hasWhatToFill = this.country.enabled || this.method.enabled || this.currency.enabled || this.isAmountEditable();\n const fields = this.fields;\n if (_hasWhatToFill) {\n return true;\n }\n if (!fields.length) {\n return false;\n }\n return fields.some((f) => {\n const control = this.payment.get(f.name);\n if (f.type === PaymentFieldTypeEnum.Amount) {\n return !control.valid;\n }\n return this.payment.get(f.name).enabled;\n });\n }\n\n setCDEError(code: I18N_KEY) {\n this.clearValidators();\n this.setValidators(() => {\n if (this.methodName === 'card') {\n return {cde_error: code};\n }\n return null;\n });\n this.updateValueAndValidity({emitEvent: false});\n }\n\n distinctValueChanges(): Observable<Partial<{ [x: string]: any }>> {\n return this.valueChanges.pipe(\n debounceTime(300),\n distinctUntilChanged((prev, curr) => {\n if (\n !prev ||\n !curr ||\n Object.keys(prev.payment).length !== Object.keys(curr.payment).length\n ) {\n return false;\n }\n return (\n prev.country === curr.country &&\n prev.method === curr.method &&\n prev.currency === curr.currency &&\n prev.payment.amount === curr.payment.amount\n );\n }),\n );\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.cancelRequestsSubscriber.next();\n this.cancelRequestsSubscriber.unsubscribe();\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { I18N_COUNTRIES } from '../models/constants';\n\n@Pipe({\n name: 'country_translate',\n pure: true,\n standalone: true\n})\nexport class CountryTranslatePipe implements PipeTransform {\n\tprivate i18n_countries = inject(I18N_COUNTRIES);\n\tprivate translateSrv = inject(TranslateService);\n\n\tconstructor() {\n\t}\n\n\ttransform(code: string, lang: string = this.translateSrv.currentLang): any {\n\t\treturn this.i18n_countries[lang][code] || code;\n\t}\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CountryTranslatePipe } from './country-translate.pipe';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\n\n@Pipe({\n name: 'countries_sort',\n pure: true,\n standalone: true\n})\nexport class CountriesSortPipe implements PipeTransform {\n\tprivate countryTranslatePipe = inject(CountryTranslatePipe);\n\tprivate translateSrv = inject(TranslateService);\n\n\tconstructor() {\n\t}\n\n\ttransform(types: string[], lang: string = this.translateSrv.currentLang): any {\n return types.sort((c1, c2) => {\n if (c1 === OTHER_COUNTRY_CODE) {\n return 1;\n }\n const c1Translation = this.countryTranslatePipe\n .transform(c1, lang);\n const c2Translation = this.countryTranslatePipe\n .transform(c2,lang );\n return c1Translation > c2Translation ? 1: (c1Translation === c2Translation ? 0 : -1);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\nimport { map } from 'rxjs/operators';\nimport { ScriptLoader } from '../../../../../services/script-loader';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\nimport { SessionDataSource } from \"../../../../../services/session.data-source\";\n\n@Injectable()\nexport class CardSdkService {\n private scriptLoaderSrv: ScriptLoader = inject(ScriptLoader);\n private sessionSrv = inject(SessionDataSource);\n private _sdk: CdeTerminalSdk;\n private _pending = false;\n private _submitted = false;\n\n markAsReady(): void {\n this._pending = false;\n }\n\n markAsSubmitted() {\n this._submitted = true;\n }\n\n get pending(): boolean {\n return this._pending;\n }\n\n public submit(): void {\n if (!this._submitted && this._sdk) {\n this._sdk.submit();\n this._pending = true;\n }\n }\n\n private get _ready$(): Observable<void> {\n return fromPromise(this.scriptLoaderSrv.fetchScript('cde_sdk'));\n }\n\n createCardTerminalSdk$(\n lang: string,\n id: string,\n tabindex?: number\n ): Observable<CdeTerminalSdk> {\n return this._ready$.pipe(\n map(() => (this._sdk = this.sessionSrv.createCardTerminalSdk(lang, id, tabindex))),\n );\n }\n}\n","import { Directive, forwardRef, inject } from '@angular/core';\nimport {\n AbstractControl,\n AsyncValidator,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n} from '@angular/forms';\nimport { I18N_KEY } from './../../../../../i18n/i18n-key.enum';\nimport { Observable, of, Subject } from 'rxjs';\nimport { CardSdkService } from './card-sdk.service';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\n\n@Directive({\n selector: '[appIframeValidatorDirective]',\n standalone: true,\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => IframeValidatorDirectiveDirective),\n multi: true,\n },\n ],\n})\nexport class IframeValidatorDirectiveDirective implements AsyncValidator {\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\n private _sdk: CdeTerminalSdk;\n\n private submitting$: Subject<ValidationErrors | null> = new Subject();\n\n private _fatalError: I18N_KEY;\n private _validationSdkError = false;\n\n registerSDK(sdk?: CdeTerminalSdk): void {\n if (!sdk) {\n this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;\n } else {\n this._sdk = sdk;\n this.handleSubmitting();\n }\n }\n\n private handleSubmitting(): void {\n this._sdk.onInputPending(() => {\n this._validationSdkError = true;\n });\n this._sdk.onError((code) => {\n this._validationSdkError = false;\n let codeError = I18N_KEY.ERROR_OCCUR;\n if (code === 501) {\n codeError = I18N_KEY.CDE_CARD_ERROR_501;\n } else if (code === 500) {\n codeError = I18N_KEY.CDE_CARD_ERROR_500;\n } else if (code === 504) {\n codeError = I18N_KEY.CDE_CARD_ERROR_504;\n }\n this._fatalError = codeError;\n });\n this._sdk.onInputReady(() => {\n this._validationSdkError = false;\n this.submitting$.next(null);\n });\n this._sdk.onInputSubmitted(() => {\n this._validationSdkError = false;\n this.submitting$.next(null);\n });\n this._sdk.onTimeout(() => {\n this._validationSdkError = false;\n this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;\n });\n }\n\n validate(\n control: AbstractControl,\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if (this._fatalError) {\n return of({ cde_error: this._fatalError });\n }\n if (this._validationSdkError) {\n return of({ cde_validation_error: true });\n }\n if (this.cardSdkSrv.pending) {\n return this.submitting$.asObservable();\n }\n return of(null);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Injector,\n Input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';\nimport { I18N_KEY } from '../../../../../i18n';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CardSdkService } from './card-sdk.service';\nimport { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';\nimport { insertRemoveTrigger } from '../../../../../helpers';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\n\nconst ID_CDE_CONTAINER = 'cde-container';\n\n@Component({\n selector: 'app-constructor-field-iframe',\n templateUrl: './constructor-field-iframe.component.html',\n styleUrls: ['./constructor-field-iframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldIframeComponent),\n multi: true,\n },\n CardSdkService,\n ],\n imports: [TranslateByKeyPipe, GmSkeletonComponent],\n hostDirectives: [\n {\n directive: IframeValidatorDirectiveDirective,\n },\n ],\n})\nexport class ConstructorFieldIframeComponent\n implements AfterViewInit, ControlValueAccessor\n{\n private _translateSrv: TranslateService = inject(TranslateService);\n private _cd: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control: AbstractControl;\n private _injector: Injector = inject(Injector);\n private _destroyRef: DestroyRef = inject(DestroyRef);\n viewReady = false;\n\n @Input() tabIndex: number;\n\n private validator: IframeValidatorDirectiveDirective = inject(\n IframeValidatorDirectiveDirective,\n );\n\n private _sdk: CdeTerminalSdk;\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\n\n private _loading = true;\n status: I18N_KEY;\n readonly I18N_KEY = I18N_KEY;\n\n readonly ID_CDE_CONTAINER = ID_CDE_CONTAINER;\n registerOnTouched(fn: any): void {}\n registerOnChange(fn: any): void {}\n writeValue(): void {}\n\n get loading(): boolean {\n return this._loading;\n }\n\n ngAfterViewInit(): void {\n this._control = this._injector.get(NgControl).control;\n this.cardSdkSrv\n .createCardTerminalSdk$(\n this._translateSrv.currentLang,\n this.ID_CDE_CONTAINER,\n this.tabIndex\n )\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe({\n next: (sdk: CdeTerminalSdk) => {\n this._sdk = sdk;\n this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());\n this.validator.registerSDK(sdk);\n this._init();\n },\n error: () => {\n this.validator.registerSDK();\n this._updateValueAndValidity();\n },\n });\n }\n\n private _updateValueAndValidity(): void {\n this.cardSdkSrv.markAsReady();\n this._control?.updateValueAndValidity({ onlySelf: true });\n this._cd.detectChanges();\n this.refreshHeight();\n }\n\n refreshHeight(): void {\n setTimeout(() => {\n this._sdk?.refreshHeight();\n this.viewReady = true;\n this._cd.detectChanges();\n }, 100);\n }\n\n private _init(): void {\n this._sdk.onInputPending(() => {\n this._loading = false;\n this._updateValueAndValidity();\n });\n\n this._sdk.onInputReady(() => {\n this._updateValueAndValidity();\n });\n\n this._sdk.onInputSubmitted(() => {\n this._loading = false;\n this.cardSdkSrv.markAsSubmitted();\n this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;\n this._updateValueAndValidity();\n });\n\n this._sdk.onTimeout(() => {\n this._updateValueAndValidity();\n });\n\n this._sdk.onError(() => {\n this._loading = false;\n this._updateValueAndValidity();\n });\n\n this._translateSrv.onLangChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe({\n next: (options: LangChangeEvent) => {\n if (!options.lang) {\n return;\n }\n this._sdk.useLang(options.lang);\n },\n });\n }\n}\n","@if (!status) {\n <div\n class=\"iframe-container\"\n [id]=\"ID_CDE_CONTAINER\"\n [class.iframe-container--ready]=\"viewReady\"\n ></div>\n} @else if (!loading) {\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\n}\n\n@if (loading) {\n <div class=\"trm-skeleton-fields\">\n @for (i of [1,2]; track i) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { SessionDataSource } from '../services/session.data-source';\n\n@Pipe({\n name: 'method_title',\n pure: true,\n standalone: true\n})\nexport class MethodTitlePipe implements PipeTransform {\n private sessionDS = inject(SessionDataSource);\n\n constructor() {\n }\n\n transform(name: string): any {\n return this.sessionDS.getConfiguration(name)?.title;\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { FocusHandler } from '../../helpers/key-down-handler';\n\n@Directive({\n selector: '[tabindex]',\n standalone: true\n})\nexport class TabIndexFocusDirective {\n\n @HostListener('focus', ['$event.target']) focus(target: HTMLElement) {\n Array.from(target.classList).some(cl => /--disabled$/.test(cl)) && FocusHandler.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MethodTypeType } from '../../../../../../codegen/model/models';\nimport { filter } from 'rxjs/operators';\nimport { MethodTitlePipe } from './../../../../../pipes/method-title.pipe';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { NgClass } from '@angular/common';\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\nimport {\n TrmSelectLabelTemplateDirective\n} from '../../../../../shared/components/trm-select/trm-select-label-template.directive';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'app-ps-select',\n templateUrl: './ps-select.component.html',\n styleUrls: ['./ps-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PsSelectComponent),\n multi: true,\n },\n MethodTitlePipe,\n TranslatePipe\n ],\n standalone: true,\n imports: [TabIndexFocusDirective, NgClass, TrmSelectComponent, FormsModule, ReactiveFormsModule, TrmSelectLabelTemplateDirective, MethodTitlePipe, TranslateByKeyPipe]\n})\nexport class PsSelectComponent implements OnInit, ControlValueAccessor {\n private cd = inject(ChangeDetectorRef);\n private methodTitlePipe = inject(MethodTitlePipe);\n private translatePipe = inject(TranslatePipe);\n private destroyRef: DestroyRef = inject(DestroyRef);\n I18N_KEY = I18N_KEY;\n onChange = (_value) => {\n };\n onTouch = () => {\n };\n @Input() methods: MethodTypeType[] = [];\n disabled = false;\n @Input() tabIndex: number;\n\n selectedType: number;\n otherMethodControl: FormControl = new FormControl<number>(undefined);\n searchString: string;\n\n get popularMethods(): MethodTypeType[] {\n if (this.disabled) {\n return null;\n }\n return this.methods.slice(0, 4);\n }\n\n get otherMethods(): MethodTypeType[] {\n if (this.disabled) {\n return this.methods.slice(0);\n }\n return this.methods\n .slice(this.popularMethods.length)\n .filter((m: MethodTypeType) => {\n if (!this.searchString) {\n return true;\n } else {\n const title: string = this.translatePipe.transform(\n this.methodTitlePipe.transform(m.name)\n );\n return title.toLowerCase()\n .split(' ').some(\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n });\n }\n\n ngOnInit() {\n this.otherMethodControl\n .valueChanges\n .pipe(\n filter(m => !!m),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((method) => this.selectMethod(method));\n }\n\n selectMethod(method: number, options: { emitChange: boolean } = {emitChange: true}) {\n if (!method || this.selectedType === method) {\n return;\n }\n this.selectedType = method;\n if (options?.emitChange) {\n this.onChange(method);\n }\n const hasInOtherList = this.otherMethods.some(m => m.id === method);\n this.otherMethodControl.setValue(hasInOtherList ? method : undefined, {emitEvent: false, onlySelf: true});\n }\n\n writeValue(method: number) {\n this.cd.detectChanges();\n this.selectMethod(method, {emitChange: false});\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled\n if (isDisabled) {\n if (!this.otherMethodControl.value && this.selectedType) {\n this.otherMethodControl.setValue(this.selectedType, {emitEvent: false, onlySelf: true});\n }\n this.otherMethodControl.disable();\n } else {\n this.otherMethodControl.enable();\n }\n this.cd.detectChanges();\n }\n\n search(value: string) {\n this.searchString = value;\n this.cd.markForCheck();\n }\n}\n","<label class=\"trm-label\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}}\n</label>\n<ul class=\"methods\">\n @for (method of popularMethods; track method.id) {\n <li class=\"method\"\n [class.method--selected]=\"selectedType === method.id\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation(); selectMethod(method.id)\"\n (blur)=\"onTouch()\"\n (click)=\"selectMethod(method.id)\"\n >\n <span class=\"method__icon\"\n [ngClass]=\"'ps-icon-'+method.name\"\n ></span>\n <span class=\"method__name\" [title]=\"method.name | trans\" > {{method.name | method_title | trans}} </span>\n </li>\n }\n @if (searchString || otherMethods.length) {\n <li class=\"methods__other\">\n <app-trm-select [data]=\"otherMethods\"\n idLabel=\"method\"\n (search)=\"search($event)\"\n [tabIndex]=\"tabIndex\"\n (open)=\"onTouch()\"\n [formControl]=\"otherMethodControl\"\n [placeholder]=\"I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS | trans\"\n class=\"c-field-select trm-form-field\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"method__icon\"\n [ngClass]=\"'ps-icon-'+item.name\"></span>\n <span class=\"method__name\"\n [title]=\"item.name | trans\" >{{item.name | method_title | trans}}</span>\n </ng-template>\n </app-trm-select>\n </li>\n }\n</ul>\n<ng-content select=\"[app-ps-select-hint]\"></ng-content>\n<ng-content select=\"[app-ps-select-error]\"></ng-content>\n\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n inject,\n Injector,\n Input\n} from '@angular/core';\nimport { PaymentField, PaymentFieldOptionsItem } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\n\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-field-select',\n templateUrl: './constructor-field-select.component.html',\n styleUrls: ['./constructor-field-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldSelectComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\n})\nexport class ConstructorFieldSelectComponent implements ControlValueAccessor, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private injector = inject(Injector);\n @Input() config: PaymentField;\n @Input() items: PaymentFieldOptionsItem[];\n @Input() tabIndex: number;\n searchString: string;\n I18N_KEY = I18N_KEY;\n\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n control: AbstractControl;\n\n get data() {\n if (!this.items) {\n return [];\n }\n return this.items\n .filter((option: PaymentFieldOptionsItem) => {\n if (!this.searchString) {\n return true;\n } else {\n const title: string = option.name;\n return title.toLowerCase()\n .split(' ').some(\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n })\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n search(searchString: string) {\n this.searchString = searchString;\n this.cd.markForCheck();\n }\n\n writeValue(value: any) {\n this.cd.markForCheck();\n }\n\n get apiError(): string {\n return this.control?.getError('error');\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n }\n}\n","@if (control) {\n <app-trm-select [data]=\"data\"\n [placeholder]=\"config.placeholder | trans\"\n [label]=\"config.label | trans\"\n [name]=\"config.name\"\n (search)=\"search($event)\"\n (open)=\"onTouch()\"\n [formControl]=\"control\"\n [tabIndex]=\"tabIndex\"\n class=\"c-field-select trm-form-field\"\n ></app-trm-select>\n @if (control.hasError('required') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n @if (control.hasError('error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ apiError | trans }}\n </div>\n }\n\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ control.getError('custom_error') | trans }}\n </div>\n }\n\n}\n","import { NgxMaskService } from 'ngx-mask';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class MaskService extends NgxMaskService {\n constructor() {\n super();\n }\n\n numberToString(value: number | string): string {\n return super.numberToString(value).replace(/,/g,'.');\n }\n applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any): string {\n // Fix bug of cursor position in ngx-mask\n this['_shift'].clear();\n return super.applyMask(inputValue, maskExpression, position, justPasted, backspaced, cb);\n }\n}\n","import { Directive } from '@angular/core';\nimport { NgxMaskService } from 'ngx-mask';\nimport { MaskService } from '../services/mask.service';\n\n@Directive({\n providers: [{\n provide: NgxMaskService,\n useClass: MaskService\n }],\n selector: 'input[mask]',\n standalone: true\n})\nexport class InputMaskCorrector { }\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { FORMAT_DATE, PaymentField, PaymentFieldTypeEnum } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { MatDatepicker, MatDatepickerInput } from '@angular/material/datepicker';\nimport momentjs from 'moment-timezone';\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\nimport { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';\nimport { IConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { removeSpecSymbols } from '../../../../../helpers/phone-codes';\nimport { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-field-text',\n templateUrl: './constructor-field-text.component.html',\n styleUrls: ['./constructor-field-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldTextComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe]\n})\nexport class ConstructorFieldTextComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private maskSrv = inject(MaskResolver);\n private injector = inject(Injector);\n private maskPipe = inject(NgxMaskPipe);\n\n private unsub: Subject<void> = new Subject<void>();\n private _type = 'text';\n\n get disabled() {\n return this.config.readonly || false;\n };\n\n readonly FORMAT_DATE = FORMAT_DATE;\n mask: string;\n dropSpecialCharacters = true;\n I18N_KEY = I18N_KEY;\n\n @Input() config: PaymentField;\n\n get inputmode(): \"text\" | \"tel\" | \"numeric\" | \"email\" | \"url\" | \"none\" {\n return this.config.inputMode || 'text';\n }\n\n @Input() matDatepicker: MatDatepicker<momentjs.Moment>;\n @Input() tabIndex: number;\n @Output() maskedValueChange: EventEmitter<string> = new EventEmitter();\n control: AbstractControl;\n @ViewChild(NgxMaskDirective) dir: NgxMaskDirective;\n maskPatterns: IConfig['patterns'];\n specialCharacters: string[];\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n\n constructor() {\n }\n\n get type() {\n if (this.config.type === PaymentFieldTypeEnum.Email) {\n return 'email';\n }\n return this._type;\n }\n\n get name() {\n return this.config.name;\n }\n\n onDateInput(e: InputEvent) {\n const target: HTMLInputElement = e.target as HTMLInputElement;\n let {selectionStart, selectionEnd} = target;\n this.control?.markAsUntouched();\n e.preventDefault();\n e.stopPropagation();\n target.value = this.maskPipe\n .transform(target.value, this.mask, {patterns: this.maskPatterns})\n .replace(/^-|-$/, '');\n\n setTimeout(() => {\n this.control?.updateValueAndValidity();\n\n if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {\n while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {\n selectionEnd += 1;\n selectionStart += 1;\n }\n }\n target.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n onPaste(e: ClipboardEvent) {\n const t = e.target as HTMLInputElement;\n if (this.type === PaymentFieldTypeEnum.Email) {\n this._emitMaskedValueChanges(t);\n return;\n }\n const value = t.value;\n let content = e.clipboardData?.getData('text') || '';\n let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;\n if (value) {\n const arr = Array.from(value);\n arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));\n content = removeSpecSymbols(arr.join(''));\n }\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);\n this.cd.detectChanges();\n this.control?.setValue(content);\n this.cd.detectChanges();\n e.preventDefault();\n this._emitMaskedValueChanges(t, selectionStart);\n }\n\n onInput(e: InputEvent) {\n this.control?.markAsUntouched();\n this.cd.markForCheck();\n if (this.matDatepicker) {\n return;\n }\n const target = e.target as HTMLInputElement;\n if (this.type === PaymentFieldTypeEnum.Email) {\n this._emitMaskedValueChanges(target);\n return;\n }\n const value: string = this.control?.value;\n let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;\n const mask = this.maskSrv.getMaskByValue(this.config.mask, value);\n if (!mask || mask === INITIAL_PHONE_MASK) {\n return;\n }\n this.mask = mask;\n\n this.cd.detectChanges();\n this._emitMaskedValueChanges(target, selectionStart);\n }\n\n private _emitMaskedValueChanges(target, positionInUnmaskedValue?) {\n setTimeout(() => {\n this.control?.updateValueAndValidity();\n if (this.mask) {\n this.maskedValueChange.emit(target.value);\n }\n this._setSelection(target, positionInUnmaskedValue);\n });\n }\n\n private _setSelection(target: HTMLInputElement, positionInUnmaskedValue?) {\n if (this.type === PaymentFieldTypeEnum.Email) {\n return;\n }\n let positionMaskedValue = 0;\n let i = 0;\n while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {\n if (/\\d/.test(target.value[positionMaskedValue])) {\n i++;\n }\n positionMaskedValue++;\n }\n target.setSelectionRange(positionMaskedValue, positionMaskedValue);\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n }\n\n get apiError(): string {\n return this.control?.getError('error');\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: any) {\n if (value) {\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);\n }\n this.cd.markForCheck();\n }\n\n ngOnInit() {\n this.mask = this.maskSrv.getMaskByValue(this.config.mask);\n if (this.config.maskValidation !== true) {\n this.config.maskValidation = false;\n }\n this.maskPatterns = this.maskSrv.getPatterns(this.config);\n this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];\n this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;\n }\n\n ngOnDestroy() {\n this.unsub.next();\n this.unsub.unsubscribe();\n }\n}\n","@if (control) {\n <label class=\"trm-label\"\n [for]=\"config.name\"\n > {{ config.label | trans }} </label>\n <div class=\"input-wrapper trm-form-field-wrapper c-text\"\n [class.c-text--disabled]=\"disabled\"\n [class.c-text--uppercase]=\"config.uppercase\">\n @if (!matDatepicker) {\n <input\n class=\"trm-form-field trm-input\"\n [class.trm-form-field--disabled]=\"disabled\"\n [placeholder]=\"config.placeholder | trans\"\n (blur)=\"onTouch()\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (paste)=\"onPaste($event)\"\n [type]=\"type\"\n [name]=\"name\"\n [id]=\"name\"\n [mask]=\"mask\"\n [attr.inputmode]=\"inputmode\"\n [patterns]=\"maskPatterns\"\n [allowNegativeNumbers]=\"false\"\n [thousandSeparator]=\"' '\"\n [decimalMarker]=\"'.'\"\n [validation]=\"config.maskValidation || false\"\n [specialCharacters]=\"specialCharacters\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [tabindex]=\"tabIndex\"\n />\n } @else {\n <input class=\"trm-form-field trm-input\"\n [matDatepicker]=\"matDatepicker\"\n [formControl]=\"control\"\n [placeholder]=\"config.placeholder | trans\"\n (input)=\"onDateInput($event)\"\n [attr.inputmode]=\"inputmode\"\n (blur)=\"onTouch()\"\n [min]=\"config?.options?.min\"\n [max]=\"config?.options?.max\"\n [tabindex]=\"tabIndex\"\n type=\"text\"\n [name]=\"name\"\n [id]=\"name\"\n />\n }\n <ng-content select=\"[app-c-text-suffix]\"></ng-content>\n </div>\n @if (config.description) {\n <div class=\"c-text__hint\"\n [innerHTML]=\"config.description | trans\"></div>\n }\n <ng-content select=\"[app-c-text-hint]\"></ng-content>\n @if (control.hasError('required') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n @if (control.hasError('email') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_EMAIL | trans }}\n </div>\n }\n @if (control.hasError('min') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_MIN | trans }}\n </div>\n }\n @if (control.hasError('max') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_MAX | trans }}\n </div>\n }\n @if (control.hasError('pattern') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('mask') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('matDatepickerParse') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('matDatepickerMin') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ (I18N_KEY.VALIDATION_DATE_MIN | trans) + ' ' + control.getError('matDatepickerMin').min.format(FORMAT_DATE) }}\n </div>\n }\n @if (control.hasError('matDatepickerMax') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ (I18N_KEY.VALIDATION_DATE_MAX | trans) + ' ' + control.getError('matDatepickerMax').max.format(FORMAT_DATE) }}\n </div>\n }\n @if (control.hasError('error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ apiError | trans }}\n </div>\n }\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ control.getError('custom_error') | trans }}\n </div>\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe, getCurrencySymbol } from '@angular/common';\n\n@Pipe({\n name: 'trm_currency',\n pure: true,\n standalone: true\n})\nexport class TrmCurrencyPipe implements PipeTransform {\n private currency$ = inject(CurrencyPipe);\n\n constructor() {\n }\n\n transform(value: number | string, code: string): any {\n const symbol = getCurrencySymbol(code, 'narrow', 'en');\n const symbolWide = getCurrencySymbol(code, 'wide', 'en');\n const thousandSeparator = ' ';\n const separator = '.';\n const format = '1.2-8';\n const amount = this.currency$\n .transform(value, code, 'symbol-narrow', format, 'en')\n .replace(/,/g, thousandSeparator)\n .replace(symbol, '')\n .trim();\n const resultSymbol = symbol === '$' ? symbolWide : symbol;\n const [int, fract] = amount.split('.');\n return '<span class=\"trm-amount\">' +\n '<span class=\"trm-amount__value\">' +\n `<span class=\"trm-amount__int\">${int}</span>` +\n (fract ? `<span class=\"trm-amount__fract\">${separator + fract}</span>` : '') +\n '</span>' +\n `<span class=\"trm-currency\">${resultSymbol}</span>` +\n '</span>';\n }\n}\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeHtml',\n standalone: true\n})\nexport class HtmlSanitizerPipe implements PipeTransform {\n\tprivate _sanitizer = inject(DomSanitizer);\n\n\tconstructor() {\n\t}\n\n\ttransform(value: any): any {\n\t\treturn this._sanitizer.sanitize(SecurityContext.HTML, value);\n\t}\n\n}\n","import { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { I18N_KEY } from './../../../../../i18n';\n\nimport { TrmCurrencyPipe } from '../../../../../pipes/currency.pipe';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CurrencyPipe, NgTemplateOutlet } from '@angular/common';\nimport { PaymentFieldOptions } from \"../../models\";\nimport { HtmlSanitizerPipe } from \"../../../../../pipes\";\nimport { insertRemoveTrigger } from \"../../../../../helpers\";\nimport { TerminalTplComponent } from '../../../../../terminal-tpl.component';\n\n@Component({\n selector: 'app-method-amount-hint',\n templateUrl: './method-amount-hint.component.html',\n styleUrls: ['./method-amount-hint.component.scss'],\n standalone: true,\n animations: [insertRemoveTrigger],\n providers: [CurrencyPipe],\n imports: [TrmCurrencyPipe, TranslateByKeyPipe, HtmlSanitizerPipe, NgTemplateOutlet],\n host: {\n '[hidden]': '!loading && (!options || (!options.fee && !options.fixedFee && !options.minFixedFee && !options.min && !options.max))'\n }\n})\nexport class MethodAmountHintComponent {\n private mainTpl: TerminalTplComponent = inject(TerminalTplComponent);\n @Input() loading: boolean;\n @Input() options: PaymentFieldOptions = {};\n I18N_KEY = I18N_KEY;\n\n get feeTpl(): TemplateRef<any> {\n return this.mainTpl.feeTpl;\n }\n}\n","<div class=\"c-method-hint\" @insertRemove>\n @if (loading) {\n <span class=\"trm-spinner\" @insertRemove></span>\n }\n @if (options.fee || options.fixedFee) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_FEE | trans) }}\n @if (options.fee) {\n <span class=\"trm-amount\">\n <span class=\"trm-amount__value\">{{ options.fee }}<span class=\"trm-currency\">%</span></span>\n </span>\n }\n @if (options.fixedFee && options.fee) {\n <span> + </span>\n }\n @if (options.fixedFee) {\n <span\n [innerHTML]=\"options.fixedFee | trm_currency: options.currency | sanitizeHtml\"></span>\n }\n @if (options.minFixedFee) {\n ({{ I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE | trans }}<span\n [innerHTML]=\"options.minFixedFee | trm_currency: options.currency | sanitizeHtml\"></span>)\n }\n </div>\n }\n @if (options.min) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT | trans) }}\n <span [innerHTML]=\"options.min | trm_currency: options.currency\"></span>\n </div>\n }\n @if (options.max) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT | trans) }}\n <span [innerHTML]=\"options.max | trm_currency: options.currency\"></span>\n </div>\n }\n\n @if (feeTpl) {\n <div *ngTemplateOutlet=\"feeTpl; context: {options}\" @insertRemove></div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Injector,\n Input\n} from '@angular/core';\nimport { FORMAT_DATE, PaymentField } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { isMoment, Moment } from 'moment';\nimport { ConstructorFieldTextComponent } from '../constructor-field-text/constructor-field-text.component';\nimport { MatDatepicker, MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'app-constructor-field-date',\n templateUrl: './constructor-field-date.component.html',\n styleUrls: ['./constructor-field-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldDateComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [ConstructorFieldTextComponent, FormsModule, ReactiveFormsModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatDatepicker]\n})\nexport class ConstructorFieldDateComponent implements ControlValueAccessor, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private injector = inject(Injector);\n private destroyRef: DestroyRef = inject(DestroyRef);\n\n readonly FORMAT_DATE = FORMAT_DATE;\n @Input() config: PaymentField;\n @Input() tabIndex: number;\n control: AbstractControl;\n\n get startCalendarDate(): Moment {\n return this.config.options?.startCalendarDate;\n }\n\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: unknown) {\n if (isMoment(value) || typeof value === 'string') {\n if (isMoment(value)) {\n this.control?.setValue(value.format(FORMAT_DATE), {emitEvent: false});\n } else {\n this.control?.setValue(value, {emitEvent: false});\n }\n this.cd.markForCheck();\n }\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n\n this.control\n .valueChanges\n .pipe(\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((value) => {\n if (isMoment(value)) {\n this.onChange(value.format(this.FORMAT_DATE));\n }\n });\n }\n}\n","@if (control) {\n <app-constructor-field-text\n class=\"c-date__input\"\n [tabIndex]=\"tabIndex\"\n [config]=\"config\"\n [formControl]=\"control\"\n [matDatepicker]=\"picker\">\n <mat-datepicker-toggle [for]=\"picker\"\n app-c-text-suffix\n class=\"date__toggle\"\n [tabIndex]=\"tabIndex\"\n >\n <div class=\"date__toggleIcon\"\n matDatepickerToggleIcon\n app-c-text-suffix></div>\n </mat-datepicker-toggle>\n </app-constructor-field-text>\n\n <mat-datepicker #picker [tabIndex]=\"tabIndex\" [startAt]=\"startCalendarDate\"></mat-datepicker>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { I18N_KEY } from './../../../../../i18n';\n\nimport { TrmCurrencyPipe } from '../../../../../pipes/currency.pipe';\nimport { HtmlSanitizerPipe } from '../../../../../pipes/html-sanitizer.pipe';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CurrencyPipe } from '@angular/common';\n\n@Component({\n selector: 'app-constructor-preparation',\n templateUrl: './constructor-preparation.component.html',\n styleUrls: ['./constructor-preparation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [CurrencyPipe],\n imports: [TrmCurrencyPipe, HtmlSanitizerPipe, TranslateByKeyPipe]\n})\nexport class ConstructorPreparationComponent {\n @Input() maskedWallet = null;\n @Input() wallet: string;\n @Input() confirmationText: string;\n @Input() methodName: string;\n @Input() currency: string;\n @Input() amount: number;\n @Input() total: number;\n I18N_KEY = I18N_KEY;\n}\n","<div class=\"confirmation\">\n <h5> {{ I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER | trans }} </h5>\n <div class=\"confirmation__content\">\n <ul class=\"confirmation__list\">\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}} </div>\n <div class=\"confirmation__value\"> {{methodName | trans}} </div>\n </li>\n\n @if (maskedWallet || wallet) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_WALLET | trans}} </div>\n <div class=\"confirmation__value\"> {{ maskedWallet || wallet}} </div>\n </li>\n }\n\n @if (amount) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT | trans}} </div>\n <div class=\"confirmation__value\" [innerHtml]=\"amount | trm_currency: currency\"> </div>\n </li>\n }\n\n @if (total) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE | trans}} </div>\n <div class=\"confirmation__value\" [innerHtml]=\"total | trm_currency: currency\"> </div>\n </li>\n }\n </ul>\n @if (confirmationText) {\n <p\n class=\"confirmation__text\" [innerHTML]=\"confirmationText | trans | sanitizeHtml\"></p>\n }\n <ng-content selector=\"[app-constructor-preparation-error]\"></ng-content>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport { PaymentField, PaymentFieldOptions, PaymentFieldTypeEnum, TerminalStep } from './models';\nimport { ConstructorFormService } from './services/constructor-form.service';\nimport {\n MethodType,\n MethodTypeType,\n TerminalPaymentConfirmResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../../../codegen/model/models';\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\nimport { distinctUntilChanged, Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CountriesSortPipe } from '../../../pipes/countries-sort.pipe';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { I18N_KEY } from './../../../i18n';\nimport {\n ConstructorFieldIframeComponent\n} from \"./components/constructor-field-iframe/constructor-field-iframe.component\";\nimport { CountryTranslatePipe } from '../../../pipes/country-translate.pipe';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { TrmSelectComponent } from '../../../shared/components/trm-select/trm-select.component';\nimport {\n TrmSelectLabelTemplateDirective\n} from '../../../shared/components/trm-select/trm-select-label-template.directive';\nimport { PsSelectComponent } from './components/ps-select/ps-select.component';\nimport {\n ConstructorFieldSelectComponent\n} from './components/constructor-field-select/constructor-field-select.component';\nimport { ConstructorFieldTextComponent } from './components/constructor-field-text/constructor-field-text.component';\nimport { MethodAmountHintComponent } from './components/method-amount-hint/method-amount-hint.component';\nimport { ConstructorFieldDateComponent } from './components/constructor-field-date/constructor-field-date.component';\nimport {\n ConstructorPreparationComponent\n} from './components/constructor-preparation/constructor-preparation.component';\nimport { TabIndexFocusDirective } from '../../directives/tab-index-focus.directive';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { OTHER_COUNTRY_CODE } from \"../../../helpers\";\nimport { CardSdkService } from \"./components/constructor-field-iframe/card-sdk.service\";\n\n@Component({\n selector: 'app-constructor-form',\n templateUrl: './constructor-form.component.html',\n styleUrls: ['./constructor-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n ConstructorFormService,\n CountryTranslatePipe, CountriesSortPipe\n ],\n standalone: true,\n imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent]\n})\nexport class ConstructorFormComponent implements OnChanges, AfterViewInit, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n form = inject(ConstructorFormService);\n private translateSrv = inject(TranslateService);\n private countriesSortPipe = inject(CountriesSortPipe);\n private countryTranslatePipe = inject(CountryTranslatePipe);\n private ngScrollBar = inject(NgScrollbar);\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n private unSubscriber = new Subject<void>();\n private preparationStepFilled = false;\n TERMINAL_STEP = TerminalStep;\n @Input() step: TerminalStep;\n @Input() error?: string;\n @Input() response: TerminalPaymentPrepareResponse & TerminalPaymentConfirmResponse & {\n typeId?: number;\n };\n CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;\n @Input() feeLoading: boolean;\n @Input() feeOptions: PaymentFieldOptions;\n @Input() currency: string;\n @Input() userCurrency: string[];\n @Input() loading = null;\n @Input() types: MethodType[] = [];\n @Input() canReturnToProject = true;\n @Output() amountChanged: EventEmitter<number> = new EventEmitter<number>();\n @Output() back: EventEmitter<void> = new EventEmitter<void>();\n @Output() prepare: EventEmitter<any> = new EventEmitter<any>();\n @Output() confirm: EventEmitter<any> = new EventEmitter<any>();\n @Output() onPaymentChanged: EventEmitter<any> = new EventEmitter<any>();\n @Input() tabIndex: number;\n countrySearchString: string;\n @ViewChild('paymentRequisites', {static: false}) requisites: ElementRef;\n @ViewChild('hintMethod', {static: false}) hintMethod: ElementRef;\n @ViewChildren(CardSdkService) sdkList: QueryList<CardSdkService>;\n maskedWallet: string;\n\n I18N_KEY = I18N_KEY;\n\n get countriesList(): string[] {\n return this.countriesSortPipe\n .transform(\n this.types\n .map(type => type.countryISOCode)\n .filter((value, index, self) => self.indexOf(value) === index)\n )\n .filter((m: string) => {\n if (!this.countrySearchString) {\n return true;\n } else {\n const title: string = this.countryTranslatePipe.transform(m);\n return title.toLowerCase()\n .split(' ').some(\n ts => this.countrySearchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n });\n }\n\n get methodsList(): MethodTypeType[] {\n return this.types\n .filter(type => type.countryISOCode === this.form.country.value)\n // distinct\n .filter((type, index, self) => self.map(m => m.type.id).indexOf(type.type.id) === index)\n //sorting by the priority\n .sort((m1, m2) => m1.priority > m2.priority ? 1 : ((m1.priority === m2.priority) ? 0 : -1))\n .map(type => type.type);\n }\n\n get currenciesList() {\n return this.types\n .filter(type => type.countryISOCode === this.form.country.value && type.type.id === this.form.method.value)\n .map(type => type.currency)\n }\n\n get userCurrenciesList() {\n const filteredTypes = this.currenciesList;\n\n if (!this.userCurrency) {\n return filteredTypes;\n }\n\n return this.userCurrency\n .filter(userCurrency => filteredTypes.includes(userCurrency))\n }\n\n private setCurrencyValue() {\n let defaultCurrency = this.form.defaultCurrency;\n\n let currencies = this.currenciesList;\n let currency = currencies[0];\n if (defaultCurrency && this.currenciesList.includes(defaultCurrency)) {\n currency = defaultCurrency;\n } else if (this.currency && this.currenciesList.includes(this.currency)) {\n currency = this.currency;\n }\n this.form.currency.setValue(currency);\n\n currencies = this.userCurrenciesList;\n currency = currencies[0];\n if (defaultCurrency && this.userCurrenciesList.includes(defaultCurrency)) {\n currency = defaultCurrency;\n } else if (this.currency && this.userCurrenciesList.includes(this.currency)) {\n currency = this.currency;\n }\n this.form.userCurrency.setValue(currency, {emitEvent: false});\n if (currencies.length === 1 && currency && this.form.method.disabled) {\n this.form.userCurrency.disable();\n }\n }\n\n get hasCurrencyMethodSelector(): boolean {\n return this.versionSrv.hasCurrencyMethodSelector === true;\n }\n\n get lang(): string {\n return this.translateSrv.currentLang;\n }\n\n get skeletonLength() {\n return new Array(this.form.fields?.length || 3).fill(0);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.types && this.types?.length || changes.currency && this.currency) {\n // Get configuration fields\n const countries = this.countriesList;\n const defaultCountry = this.form.defaultCountry;\n let country = null;\n if (!countries.includes(defaultCountry)) {\n if (countries.includes(OTHER_COUNTRY_CODE)) {\n country = OTHER_COUNTRY_CODE;\n }\n } else {\n country = defaultCountry;\n }\n this.form.country.setValue(country);\n if (!country) {\n return;\n }\n if (countries.length === 1 && this.form.country.value) {\n this.form.country.disable();\n }\n\n const methods = this.methodsList;\n const defaultMethodName = this.form.defaultMethodName;\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\n this.form.method.setValue(defaultMethod || methods[0]?.id);\n\n this.cd.detectChanges();\n if (methods.length === 1 && this.form.country.disabled) {\n this.form.method.disable();\n }\n this.cd.detectChanges();\n this.setCurrencyValue();\n this.cd.detectChanges();\n\n this.form\n .distinctValueChanges()\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.onPaymentChanged.emit(this.form.getRawValue()));\n this.fetchForm();\n }\n\n if (changes.step?.currentValue && !changes.types && !changes.currency) {\n this.fetchForm();\n }\n\n if (changes.feeOptions && !changes.feeOptions.firstChange) {\n // need for triggering of the custom validator\n this.form.amount?.updateValueAndValidity();\n }\n\n if (this.step === TerminalStep.Confirmation) {\n this.preparationStepFilled = true;\n }\n }\n\n ngAfterViewInit() {\n this.form\n .country\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.cd.detectChanges();\n this.form.saveDefaultCountry();\n this.form.method.setValue(this.methodsList[0].id, {emitEvent: false});\n\n const methods = this.methodsList;\n const defaultMethodName = this.form.defaultMethodName;\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\n this.form.method.setValue(defaultMethod || methods[0].id, {emitEvent: false});\n this.cd.detectChanges();\n\n this.setCurrencyValue();\n this.cd.detectChanges();\n\n this.fetchForm();\n });\n this.form\n .method\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.form.method.clearValidators();\n this.form.saveDefaultMethodName();\n this.setCurrencyValue();\n this.cd.detectChanges();\n this.fetchForm();\n })\n this.form\n .currency\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.fetchForm();\n this.form.saveDefaultCurrency();\n });\n }\n\n private fetchForm() {\n if (!this.form.method.value) {\n this.form.ready = true;\n return;\n }\n this.form.cancelRequests();\n if (this.step !== this.TERMINAL_STEP.Prepare) {\n return;\n }\n this.form.removePaymentFormControls();\n this.cd.detectChanges();\n this.form\n .init()\n .subscribe(() => {\n if (!this.preparationStepFilled && !this.form.hasWhatToFill()) {\n this.send();\n return;\n }\n this.form.payment.updateValueAndValidity({ onlySelf: true });\n this.cd.detectChanges();\n this.scrollToRequisits();\n this.form.maskedWallet = '';\n }, (err) => {\n this.form.payment.updateValueAndValidity({ onlySelf: true });\n this.cd.markForCheck();\n });\n }\n\n private scrollToRequisits() {\n if (this.requisites || this.hintMethod) {\n this.ngScrollBar?.scrollToElement(this.hintMethod?.nativeElement || this.requisites.nativeElement, {\n duration: 500,\n top: -75\n });\n }\n }\n\n get description() {\n return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;\n }\n\n submit() {\n if (this.feeLoading) {\n return;\n }\n if (this.step === TerminalStep.Confirmation) {\n this.confirm.emit();\n return;\n }\n\n if (this.form.config === null || !this.form.ready) {\n return;\n }\n this.triggerIframeSubmit();\n if (this.form.invalid || this.error) {\n Object.values(this.form.controls).forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n });\n Object.values(this.form.payment.controls).forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n control.updateValueAndValidity({ emitEvent: false });\n });\n this.cd.detectChanges();\n return;\n }\n\n if (this.form.pending) {\n this.form.statusChanges\n .pipe(first(), takeUntil(this.unSubscriber))\n .subscribe((status) => {\n if (status === 'VALID') {\n this.send();\n }\n });\n } else {\n this.send();\n }\n }\n\n private triggerIframeSubmit() {\n if (!this.form.readyIframesSubmit) {\n return;\n }\n this.sdkList?.forEach((sdk: CardSdkService) => sdk.submit());\n this.form.updateValueAndValidityIframes();\n }\n\n private send() {\n const data: TerminalPaymentPrepareRequest = this.form.getPaymentValue();\n this.maskedWallet = this.form.maskedWallet;\n this.prepare.emit(data);\n }\n\n searchCountry(value) {\n this.countrySearchString = value;\n this.cd.markForCheck();\n }\n\n get backBtnLabel(): string {\n if (this.step === TerminalStep.Prepare) {\n return I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN;\n }\n return I18N_KEY.CONSTRUCTOR_LABEL_RETURN;\n }\n\n changeTextFieldValue(maskedValue, field: PaymentField) {\n if (field.wallet) {\n this.form.maskedWallet = maskedValue;\n this.cd.markForCheck();\n }\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","<form class=\"constructor\"\n [formGroup]=\"form\"\n (ngSubmit)=\"submit()\"\n >\n @if (loading !== null) {\n @if (step === TERMINAL_STEP.Prepare) {\n <div class=\"constructor__fields\">\n @if (countrySearchString || countriesList.length > 1) {\n <div class=\"constructor__field\">\n <app-trm-select [data]=\"countriesList\"\n @insertRemove\n name=\"country\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\n formControlName=\"country\"\n class=\"c-field-select trm-form-field\"\n (search)=\"searchCountry($event)\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\"\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\n </ng-template>\n </app-trm-select>\n </div>\n }\n @if (form.country.value) {\n <app-ps-select [methods]=\"methodsList\"\n @insertRemove\n formControlName=\"method\"\n [tabIndex]=\"tabIndex\"\n >\n @if (form.config?.description) {\n <div class=\"constructor__hint text--warn\"\n app-ps-select-hint\n #hintMethod\n @insertRemove\n >\n {{description | trans }}\n </div>\n }\n </app-ps-select>\n\n @if (\n form.method?.hasError('required') &&\n form.method.touched &&\n form.method.dirty\n ) {\n <div class=\"gm-error\" @insertRemove>\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n }\n\n @if (form.ready) {\n <div formGroupName=\"payment\"\n @insertRemove\n #paymentRequisites\n class=\"constructor__fields constructor__fields--reverse\">\n @if (form.method.value && form.amountDynamic) {\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\n }\n @for (field of form.fields; track field.name; let i = $index) {\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\n <div class=\"constructor__hint cde-error\" @insertRemove>\n {{\n form.payment.get(field.name).getError('cde_error')\n | trans\n }}\n </div>\n }\n <app-constructor-field-iframe\n [formControlName]=\"field.name\"\n @insertRemove\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n </app-constructor-field-iframe>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\n <app-constructor-field-select\n @insertRemove\n [config]=\"field\"\n [items]=\"field?.options?.items\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n ></app-constructor-field-select>\n }\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\">\n <app-method-amount-hint app-c-text-hint\n class=\"constructor__hint\"\n [loading]=\"feeLoading\"\n [options]=\"feeOptions || field.options\"\n ></app-method-amount-hint>\n @if (!hasCurrencyMethodSelector) {\n <div app-c-text-suffix\n class=\"constructor__currency\"\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\n >\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\n </div>\n }\n </app-constructor-field-text>\n @if (hasCurrencyMethodSelector) {\n <app-trm-select\n @insertRemove\n class=\"constructor-field\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\n [formControl]=\"form.currency\"\n [searchable]=\"false\"\n [data]=\"currenciesList\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n }\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\n <app-constructor-field-date\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\n }\n }\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\n <app-trm-select\n class=\"constructor-field-inner\"\n @insertRemove\n [label]=\"label\"\n [formControl]=\"form.userCurrency\"\n [searchable]=\"false\"\n [data]=\"userCurrenciesList\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\"\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n </ng-template>\n </div>\n } @else {\n <div class=\"trm-skeleton-fields\">\n @for (i of skeletonLength; track $index) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n }\n @if (error && !form.methodInfoLoading) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </div>\n }\n @if (step === TERMINAL_STEP.Confirmation) {\n <app-constructor-preparation\n @insertRemove\n [currency]=\"response?.currency\"\n [methodName]=\"form.getTypeNameById(response.typeId)\"\n [wallet]=\"response.wallet\"\n [maskedWallet]=\"maskedWallet\"\n [amount]=\"response.amount\"\n [total]=\"response.total\"\n [confirmationText]=\"form.config?.confirmation\"\n >\n @if (error && !form.payment.pending) {\n <div class=\"trm-error\"\n app-constructor-preparation-error\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </app-constructor-preparation>\n }\n <div class=\"constructor__actions\"\n @insertRemove>\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\n type=\"submit\"\n [tabindex]=\"form.fields.length + tabIndex\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\n @if (loading) {\n <span class=\"trm-spinner trm-spinner-white\"></span>\n }\n </button>\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\n type=\"button\"\n [tabindex]=\"form.fields.length + tabIndex\"\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\n </div>\n } @else {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n</form>\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n MethodType,\n TerminalPaymentConfirmResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../../../codegen/model/models';\nimport { SessionDataSource } from '../../../services/session.data-source';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { Subject, throwError } from 'rxjs';\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { PaymentFieldOptions, TerminalStep } from './../../../pages/components/constructor-form/models';\nimport { ApiErrorsService } from '../../../services/api-errors.service';\nimport { AsyncPipe, CurrencyPipe, DOCUMENT, Location } from '@angular/common';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { Title } from '@angular/platform-browser';\nimport { getI18Key } from './../../../i18n/keys';\nimport { I18N_KEY } from './../../../i18n';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\nimport { TranslateLangStorageService } from '../../../services';\nimport {\n TerminalLangSwitcherComponent\n} from '../../../shared/components/terminal-lang-switcher/terminal-lang-switcher.component';\nimport { ConstructorFormComponent } from '../constructor-form/constructor-form.component';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\n\n@Component({\n selector: 'app-terminal-layout',\n templateUrl: './terminal-layout.component.html',\n styleUrls: ['./terminal-layout.component.scss'],\n providers: [\n SessionDataSource,\n CurrencyPipe\n ],\n standalone: true,\n imports: [\n NgScrollbar,\n TerminalLangSwitcherComponent,\n ConstructorFormComponent, ConstructorStatusComponent,\n AsyncPipe,\n TranslateByKeyPipe, GmSkeletonComponent\n ]\n})\nexport class TerminalLayoutComponent implements OnInit, OnDestroy {\n private document = inject<Document>(DOCUMENT);\n sessionDS = inject(SessionDataSource);\n translateLoader = inject<any>(TranslateLoader);\n private cd = inject(ChangeDetectorRef);\n private translateStorageSrv = inject(TranslateLangStorageService);\n private translateSrv = inject(TranslateService);\n private adapter = inject<DateAdapter<moment.Moment>>(DateAdapter);\n private apiErrorSrv = inject(ApiErrorsService);\n private location = inject(Location);\n private titleSrv = inject(Title);\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n private unSubscriber = new Subject<void>();\n private resizeObserver: ResizeObserver;\n\n private get contentEl() {\n return this.scrollComponent.viewport.contentWrapperElement;\n }\n\n TERMINAL_STEP = TerminalStep;\n\n types: MethodType[] = [];\n currency: string;\n projectName: string;\n description: string;\n step = TerminalStep.Prepare;\n data: TerminalPaymentPrepareResponse & { typeId?: number; };\n @ViewChild('scrollComponent') scrollComponent: NgScrollbar;\n private urlChangeListener: VoidFunction;\n sessionLoading = null;\n\n constructor() {\n this.adapter.setLocale(this.translateSrv.currentLang);\n this._setTitle();\n\n this.translateSrv.onLangChange\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe((e) => {\n this.adapter.setLocale(e.lang);\n this._setTitle();\n this.cd.detectChanges();\n });\n this.checkFatalError();\n }\n\n get hasChoice() {\n return this.translateStorageSrv.languages.length > 1;\n }\n\n get logoClass(): string {\n return this.versionSrv.logoClass;\n }\n\n get footerText() {\n return this.versionSrv.footerText;\n }\n\n private _setTitle() {\n this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));\n }\n\n public changeLang() {\n }\n\n get hostname() {\n return this.document.defaultView.location.hostname;\n }\n\n ngOnInit() {\n if (this.apiErrorSrv.hasFatalError) {\n this.sessionDS.loading$.next(false);\n this.catchError();\n return;\n }\n this.sessionDS.get()\n .subscribe((sessionInfo) => {\n this.types = sessionInfo.methodTypes;\n this.currency = sessionInfo.defaultCurrency;\n this.projectName = sessionInfo.projectName;\n this.description = sessionInfo.description;\n this.sessionLoading = false;\n this.cd.markForCheck();\n }, () => {\n this.sessionLoading = false;\n this.catchError();\n });\n\n this.pushState();\n this.urlChangeListener = this.location.onUrlChange((url, state: { step?: TerminalStep }) => {\n if (typeof state?.step === 'number') {\n this.step = state.step;\n this.cd.markForCheck();\n }\n });\n }\n\n\n private _submitted = false;\n\n prepare(data: TerminalPaymentPrepareRequest) {\n if (this._submitted) {\n return;\n }\n this._submitted = true;\n this.sessionLoading = true;\n this.sessionDS\n .prepare(data)\n .subscribe((resp: TerminalPaymentPrepareResponse) => {\n if (!resp.amount && !resp.currency && !resp.total) {\n return;\n }\n this.step = TerminalStep.Confirmation;\n this.location.go(this.location.path(), '', {step: this.step});\n this.data = resp;\n this.data.typeId = data.typeId;\n this._submitted = false;\n this.sessionLoading = false;\n this.cd.markForCheck();\n }, () => {\n this._submitted = false;\n this.sessionLoading = false;\n this.catchError();\n });\n }\n\n confirm() {\n if (this._submitted) {\n return;\n }\n this._submitted = true;\n this.sessionLoading = true;\n this.sessionDS\n .confirm()\n .subscribe(\n (resp: TerminalPaymentConfirmResponse) => {\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n if (this.sessionDS.redirect()) {\n this._submitted = false;\n return;\n }\n this.step += 1;\n if (resp.success) {\n this._statusText = resp.message;\n }\n this._submitted = false;\n this.sessionLoading = false;\n this.cd.markForCheck();\n },\n () => {\n this._submitted = false;\n this.sessionLoading = false;\n this.catchError();\n },\n );\n }\n\n checkFatalError() {\n // Clear form error when any values have changed.\n if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {\n this.apiErrorSrv.clear();\n }\n }\n\n pushState() {\n this.location.replaceState(this.location.path(), undefined, {step: this.step});\n }\n\n back() {\n if (this.step) {\n this.location.back();\n } else {\n this.sessionLoading = true;\n this.sessionDS.close()\n .pipe(\n finalize(() => {\n this.sessionLoading = false;\n this.cd.markForCheck();\n })\n )\n .subscribe();\n }\n }\n\n get returnBackUrl(): string {\n return this.sessionDS.returnBackUrl;\n }\n\n catchError() {\n if (this.hasStatusError) {\n this.step = TerminalStep.Status;\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n }\n this.cd.detectChanges();\n }\n\n private _statusText: string;\n get statusText() {\n return this.apiErrorSrv.getLocalError() || this._statusText;\n }\n\n get hasStatusError() {\n return this.apiErrorSrv.hasFatalError;\n }\n\n public get currentYear() {\n return new Date().getFullYear();\n }\n\n private feeCalculateSubject = new Subject<void>();\n public calculateFee(value: any) {\n if (!this.sessionDS.feeChangeable) {\n return;\n }\n this.feeCalculateSubject.next();\n this.feeLoading = true;\n this.feeOptions = {};\n this.cd.detectChanges();\n\n this.sessionDS\n .feeOptions(value)\n .pipe(\n tap((options: PaymentFieldOptions) => {\n this.feeOptions = options;\n this.feeLoading = false;\n this.cd.detectChanges();\n }),\n catchError((err) => {\n this.feeLoading = false;\n this.cd.detectChanges();\n return throwError(() => err);\n }),\n takeUntil(this.feeCalculateSubject),\n takeUntil(this.unSubscriber)\n ).subscribe();\n }\n\n feeLoading = false;\n feeOptions: PaymentFieldOptions;\n\n public ngOnDestroy() {\n this.feeCalculateSubject.unsubscribe();\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.resizeObserver?.unobserve(this.contentEl);\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n }\n}\n","<ng-scrollbar appearance=\"compact\">\n <div class=\"terminal-layout\">\n <section class=\"terminal\">\n <div class=\"terminal__content\">\n <header class=\"terminal__header\">\n <i class=\"terminal__header-logo\"\n [class]=\"logoClass\"></i>\n <div class=\"terminal__header-lang\">\n @if (hasChoice) {\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\n }\n </div>\n </header>\n <div class=\"terminal__form\">\n @if (sessionDS.loading$ | async) {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n } @else {\n @if (projectName) {\n <div class=\"terminal__info\">\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\n @if (description) {\n <p class=\"terminal__info__desc\"> {{ description }} </p>\n }\n </div>\n }\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\n <app-constructor-form\n [feeLoading]=\"feeLoading\"\n [feeOptions]=\"feeOptions\"\n [loading]=\"sessionLoading\"\n [step]=\"step\"\n [types]=\"types\"\n [currency]=\"currency\"\n [response]=\"data\"\n [error]=\"statusText\"\n (prepare)=\"prepare($event)\"\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\n (back)=\"back()\"\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\n (confirm)=\"confirm()\"\n [tabIndex]=\"2\"></app-constructor-form>\n } @else {\n <app-constructor-status class=\"terminal__status\"\n [failed]=\"hasStatusError\"\n [message]=\"statusText ? (statusText | trans) : ''\"\n [backUrl]=\"returnBackUrl\"\n ></app-constructor-status>\n }\n }\n\n </div>\n </div>\n </section>\n <footer class=\"terminal-footer\">\n <i class=\"terminal-footer__logo\"></i>\n <p class=\"terminal-footer__txt\">\n {{ footerText }}\n </p>\n </footer>\n </div>\n</ng-scrollbar>\n","import { Component, } from '@angular/core';\nimport { I18N_KEY } from './../../../i18n';\nimport {\n TerminalLayoutTplComponent\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n standalone: true,\n imports: [\n TerminalLayoutTplComponent,\n ConstructorStatusComponent,\n TranslateByKeyPipe,\n ],\n})\nexport class ErrorComponent {\n I18N_KEY = I18N_KEY\n}\n","<app-terminal-layout-tpl [loading]=\"false\">\n <app-constructor-status terminal-layout-status\n [failed]=\"true\"\n [failTitle]=\"(I18N_KEY.ERROR_OCCUR | trans)\"\n [hasSupportHint]=\"false\"\n >\n </app-constructor-status>\n</app-terminal-layout-tpl>\n","import { NgModule } from '@angular/core';\n\nimport { RouterModule } from '@angular/router';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { ConstructorFormComponent } from './components/constructor-form/constructor-form.component';\nimport { CommonModule } from '@angular/common';\nimport {\n ConstructorFieldTextComponent\n} from './components/constructor-form/components/constructor-field-text/constructor-field-text.component';\nimport {\n ConstructorFieldDateComponent\n} from './components/constructor-form/components/constructor-field-date/constructor-field-date.component';\nimport {\n ConstructorFieldSelectComponent\n} from './components/constructor-form/components/constructor-field-select/constructor-field-select.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PsSelectComponent } from './components/constructor-form/components/ps-select/ps-select.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport {\n ConstructorPreparationComponent\n} from './components/constructor-form/components/constructor-preparation/constructor-preparation.component';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { CSRFResolver } from '../services/csrf.resolver';\nimport {\n MethodAmountHintComponent\n} from './components/constructor-form/components/method-amount-hint/method-amount-hint.component';\nimport { MaskResolver } from './../helpers/mask-resolver';\nimport { InputMaskCorrector } from './directives/input-mask-corrector.directive';\nimport { FORMAT_DATE } from './../pages/components/constructor-form/models';\nimport { SharedModule } from '../shared/shared.module';\nimport { TabIndexFocusDirective } from './directives/tab-index-focus.directive';\n\nimport {\n ConstructorFieldIframeComponent\n} from './components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component';\nimport { TerminalLayoutComponent } from './components/terminal-layout/terminal-layout.component';\nimport { ErrorComponent } from './components/error/error.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild([\n {\n path: 'error',\n loadComponent: () => import('./components/error/error.component').then(m => m.ErrorComponent)\n },\n {\n resolve: {\n csrf: CSRFResolver\n },\n loadComponent: () => import('./components/terminal-layout/terminal-layout.component').then(m => m.TerminalLayoutComponent),\n path: ''\n },\n ]),\n NgScrollbar,\n TranslateModule,\n CommonModule,\n MatDatepickerModule,\n NgxMaskDirective,\n NgxMaskPipe,\n SharedModule,\n TerminalLayoutComponent,\n ConstructorFormComponent,\n ErrorComponent,\n ConstructorFieldTextComponent,\n ConstructorFieldDateComponent,\n ConstructorFieldSelectComponent,\n PsSelectComponent,\n ConstructorPreparationComponent,\n MethodAmountHintComponent,\n InputMaskCorrector,\n TabIndexFocusDirective,\n ConstructorFieldIframeComponent\n ],\n providers: [\n provideNgxMask(),\n NgxMaskPipe,\n {\n provide: MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: FORMAT_DATE,\n },\n display: {\n dateInput: FORMAT_DATE,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n },\n },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n CSRFResolver,\n MaskResolver\n ]\n})\nexport default class PagesModule {\n}\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\nimport { CheckinSessionInfoResponse, InvoiceStatus } from '../../../codegen/model/models';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpBadRequestResponse } from '../../models/http-bad-request-response';\nimport { ApiErrorsService } from '../../services/api-errors.service';\nimport { DOCUMENT } from '@angular/common';\nimport { Mode } from '../../models/mode';\nimport { CHECKIN_SERVICE_TOKEN } from '../../../const';\nimport { CheckinServiceInterface } from '../../../codegen/api/checkin.service';\nimport { CheckinModeToken, SessionToken } from '../../models';\n\n@Injectable()\nexport class CheckinDatasource {\n document = inject<Document>(DOCUMENT);\n private checkInApi = inject<CheckinServiceInterface>(CHECKIN_SERVICE_TOKEN);\n private token = inject(SessionToken, { optional: true }) || 'token';\n private cd = inject(ChangeDetectorRef);\n private apiErrorsSrv = inject(ApiErrorsService);\n private mode = inject<Mode>(CheckinModeToken);\n\n private _returnFailUrl: string;\n private _returnUrl: string;\n\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n constructor() {\n }\n\n\n check(options = {emitLoading: true}): Observable<CheckinSessionInfoResponse> {\n if (!this.token) {\n this.loading$.next(false);\n\n return of({\n invoiceId: 0,\n status: this.mode === Mode.Success ? InvoiceStatus.New : InvoiceStatus.Refused,\n redirectImmediate: false,\n successUrl: '',\n failUrl: ''\n });\n }\n\n if (options?.emitLoading) {\n this.loading$.next(true);\n }\n return this.checkInApi\n .getCheckinSessionInfo({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError(options?.emitLoading ? this.loading$ : undefined)\n ),\n tap(({status, failUrl, successUrl, redirectImmediate, error}) => {\n this._returnFailUrl = failUrl;\n this._returnUrl = successUrl;\n if (status === InvoiceStatus.Refused) {\n this._returnUrl = failUrl;\n this.apiErrorsSrv.setLocalError({code: error});\n }\n if (redirectImmediate && status !== InvoiceStatus.New) {\n this.returnBack();\n } else if (options?.emitLoading) {\n this.loading$.next(false);\n }\n })\n );\n }\n\n returnBack() {\n if (this._returnUrl) {\n this.document.defaultView.location.assign(this._returnUrl);\n return true;\n }\n return false;\n }\n\n setBackUrlAsFail() {\n this._returnUrl = this._returnFailUrl;\n }\n\n get returnBackUrl(): string {\n return this._returnUrl;\n }\n\n private catchError(loading$?: BehaviorSubject<boolean>) {\n return (err: HttpBadRequestResponse) => {\n this.apiErrorsSrv.setLocalError(err.error);\n loading$?.next(false);\n this.cd.markForCheck();\n return throwError(err);\n }\n }\n}\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { CheckinDatasource } from '../../services/checkin.datasource';\nimport { InvoiceStatus } from '../../../../codegen/model/invoiceStatus';\nimport { interval, Subject, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiErrorsService } from '../../../services/api-errors.service';\nimport { Mode } from '../../../models/mode';\nimport { I18N_KEY } from './../../../i18n';\nimport { CheckinModeToken } from '../../../models';\nimport {\n TerminalLayoutTplComponent\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { AsyncPipe } from '@angular/common';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-checkin-page',\n templateUrl: './checkin-page.component.html',\n styleUrls: ['./checkin-page.component.scss'],\n providers: [\n {\n provide: CheckinModeToken,\n deps: [ActivatedRoute],\n useFactory: (activatedRoute: ActivatedRoute) => activatedRoute.snapshot.paramMap.get('mode')\n },\n CheckinDatasource\n ],\n standalone: true,\n imports: [TerminalLayoutTplComponent, ConstructorStatusComponent, AsyncPipe, TranslateByKeyPipe]\n})\nexport class CheckinPageComponent implements OnInit, OnDestroy {\n private checkinDS = inject(CheckinDatasource);\n private errorApiSrv = inject(ApiErrorsService);\n private cd = inject(ChangeDetectorRef);\n private mode = inject<Mode>(CheckinModeToken);\n\n private CHECK_TIME_INTERVAL = 1000;\n private CHECK_TIME = 10000;\n private REDIRECT_TIME_AFTER = 15000;\n private unSubscriber = new Subject<void>();\n private checkinClearTimerSubj$ = new Subject<void>();\n private checkinClearRedirectTimerSubj$ = new Subject<void>();\n I18N_KEY = I18N_KEY;\n hasStatusError = false;\n animation = true;\n inProgress = false;\n message = '';\n invoiceId: number | string;\n\n redirectTimerStarted = false;\n\n get returnBackUrl(): string {\n return this.checkinDS.returnBackUrl;\n }\n\n get loading() {\n return this.checkinDS.loading$;\n }\n\n get redirectTime() {\n return this.REDIRECT_TIME_AFTER / 1000;\n }\n\n constructor() {\n\n }\n\n ngOnInit() {\n this.check();\n }\n\n private check(options = {emitLoading: true}) {\n this.checkinDS\n .check(options)\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(({status, invoiceId}) => {\n this.invoiceId = invoiceId;\n this.setMessage(status);\n\n this.inProgress = status === InvoiceStatus.New;\n if (this.inProgress) {\n this.startTimer();\n } else {\n this.startRedirectTimer();\n }\n\n this.cd.detectChanges();\n }, () => {\n this.setMessage(InvoiceStatus.Refused);\n this.cd.detectChanges();\n });\n }\n\n setMessage(status: InvoiceStatus = this.mode === Mode.Fail ? InvoiceStatus.Refused : InvoiceStatus.New) {\n switch (status) {\n case InvoiceStatus.New:\n this.inProgress = true;\n if (this.invoiceId === 0) {\n this.animation = false;\n this.message = I18N_KEY.CHECKIN_MESSAGE;\n return;\n }\n this.message = I18N_KEY.CHECKIN_WAIT;\n if (!this.CHECK_TIME) {\n this.animation = false;\n this.message = I18N_KEY.CHECKIN_WAIT_TIMEOVER;\n }\n break;\n case InvoiceStatus.Paid:\n this.inProgress = false;\n this.message = ``;\n break;\n case InvoiceStatus.Refused:\n this.checkinDS.setBackUrlAsFail();\n this.hasStatusError = true;\n this.inProgress = false;\n this.message = this.errorApiSrv.getLocalError() || I18N_KEY.CHECKIN_FAILED;\n break;\n }\n }\n\n get operationIdHint(): string {\n return this.invoiceId ? ` (Transaction&nbsp;ID:&nbsp;<b>${this.invoiceId}</b>)` : '';\n }\n\n private startTimer() {\n this.checkinClearTimerSubj$.next();\n this.CHECK_TIME -= this.CHECK_TIME_INTERVAL;\n if (!this.CHECK_TIME) {\n this.checkinClearTimerSubj$.next();\n this.setMessage();\n this.startRedirectTimer();\n return;\n }\n timer(this.CHECK_TIME_INTERVAL)\n .pipe(takeUntil(this.checkinClearTimerSubj$))\n .subscribe(() => this.check({emitLoading: false}));\n }\n\n private startRedirectTimer() {\n this.checkinClearRedirectTimerSubj$.next();\n this.redirectTimerStarted = true;\n this.cd.detectChanges();\n interval(1000)\n .pipe(takeUntil(this.checkinClearRedirectTimerSubj$))\n .subscribe(() => {\n this.REDIRECT_TIME_AFTER -= 1000;\n this.cd.detectChanges();\n if (!this.REDIRECT_TIME_AFTER) {\n this.checkinClearRedirectTimerSubj$.next();\n this.checkinDS.returnBack();\n }\n });\n }\n\n back() {\n this.checkinDS.returnBack();\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.checkinClearTimerSubj$.next();\n this.checkinClearTimerSubj$.unsubscribe();\n this.checkinClearRedirectTimerSubj$.next();\n this.checkinClearRedirectTimerSubj$.unsubscribe();\n }\n}\n","<app-terminal-layout-tpl [loading]=\"loading | async\">\n @if (!(loading | async)) {\n <app-constructor-status terminal-layout-status\n [inProgress]=\"inProgress\"\n [failed]=\"hasStatusError\"\n [animation]=\"animation\"\n [progressTitle]=\"(I18N_KEY.PROGRESS_TITLE | trans)\"\n [failTitle]=\"(I18N_KEY.FAIL_TITLE | trans)\"\n [successTitle]=\"(I18N_KEY.SUCCESS_TITLE | trans)\"\n [hasSupportHint]=\"false\"\n [message]=\"(message | trans) + operationIdHint\"\n [backUrl]=\"returnBackUrl\"\n [backUrlTitle]=\"I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans\"\n >\n @if (redirectTimerStarted) {\n <div constructor-status-button-hint>\n {{ I18N_KEY.REDIRECT_TEXT | trans }}&nbsp;<b>{{redirectTime}}</b>\n </div>\n }\n </app-constructor-status>\n }\n</app-terminal-layout-tpl>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { CheckinPageComponent } from './components/checkin-page/checkin-page.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n TranslateModule,\n RouterModule.forChild([\n {\n path: ':mode',\n loadComponent: () => import('./components/checkin-page/checkin-page.component').then(m => m.CheckinPageComponent)\n }\n ]),\n CheckinPageComponent\n ]\n})\nexport class CheckinModule {\n}\n","import * as momentjs from 'moment-timezone';\n\nexport const moment = momentjs;\n","/*\n * Public API Surface of terminal\n */\n\nexport * from './lib';\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":["/**\n * Codes of the data validation API errors\n */\nexport enum ApiErrors {\n SESSION_NOT_FOUND = 'error_session_not_found',\n SESSION_USED = 'error_session_used',\n SESSION_EXPIRED = 'error_session_expired',\n FORMAT_WALLET = 'error_format_wallet',\n FORMAT_PHONE = 'error_format_phone',\n FORMAT_DATE_BIRTH = 'error_format_date_birth',\n FORMAT_EMAIL = 'error_format_email',\n FORMAT_STEAM_TOKEN = 'error_format_steam_token',\n FORMAT_NUMERIC = 'error_format_numeric',\n FORMAT_ZIP = 'error_format_zip',\n FORMAT_UPPER_LIMIT = 'error_format_upper_limit',\n FORMAT_LOWER_LIMIT = 'error_format_lower_limit',\n FORMAT_AMOUNT_OUT_OF_LIMIT = 'error_format_amount_out_of_limit',\n FORMAT_AMOUNT_NOT_POSITIVE = 'error_format_amount_not_positive',\n INSUFFICIENT_FUNDS = 'error_insufficient_funds',\n PAYMENT_COUNT_EXCEEDED = 'error_payment_count_exceeded',\n SECURITY_CHECK_FAILED = 'error_security_check_failed',\n INCORRECT_CARD_NUMBER = 'error_incorrect_card_number',\n INCORRECT_CARD_HOLDER = 'error_incorrect_card_holder',\n INCORRECT_CARD_CVV = 'error_incorrect_card_cvv',\n INCORRECT_CARD_DATE = 'error_incorrect_card_date',\n INCORRECT_CARD_DATA = 'error_incorrect_card_data',\n TRANSACTION_3DS_EXPIRED = 'error_transaction_3ds_expired',\n CARD_DATA_NOT_ENTERED = 'error_card_data_not_entered',\n CARD_EXPIRED = 'error_card_expired',\n AUTH_3DS_FAILED = 'error_auth_3ds_failed',\n CARD_LIMIT_EXCEEDED = 'error_card_limit_exceeded',\n USER_CANCEL_TRANSACTION = 'error_user_cancel_transaction',\n NOT_3DS_SECURE_PAYMENT = 'error_not_3ds_secure_payment',\n TIME_FOR_PAY_EXPIRED = 'error_time_for_expired',\n SOFT_DECLINE = 'error_soft_decline',\n USER_ACCOUNT_NOT_FOUND = 'error_user_account_not_found',\n PROVIDER_DENIED = 'error_provider_denied',\n INTERNAL = 'error_internal'\n};\n\n","export enum InvoiceStatus {\n New = 'new',\n Paid = 'paid',\n Refused = 'refused'\n};\n\n","import { registerLocaleData } from '@angular/common';\nimport localeRu from '@angular/common/locales/ru';\nimport localeEn from '@angular/common/locales/en';\nimport localeTr from '@angular/common/locales/tr';\nimport localeEs from '@angular/common/locales/es';\nimport localePt from '@angular/common/locales/pt';\nimport localeLt from '@angular/common/locales/lt';\nimport EN_COUNTRIES from 'i18n-iso-countries/langs/en.json';\nimport RU_COUNTRIES from 'i18n-iso-countries/langs/ru.json';\nimport ES_COUNTRIES from 'i18n-iso-countries/langs/es.json';\nimport TR_COUNTRIES from 'i18n-iso-countries/langs/tr.json';\nimport PT_COUNTRIES from 'i18n-iso-countries/langs/pt.json';\nimport LT_COUNTRIES from 'i18n-iso-countries/langs/lt.json';\nimport { registerLocale } from 'i18n-iso-countries';\n\nexport const OTHER_COUNTRY_CODE = 'other';\n\n// Additional countries\nObject.assign(EN_COUNTRIES.countries, {\n OS: 'South Ossetia',\n AB: 'Abkhazia',\n [OTHER_COUNTRY_CODE]: 'Other'\n});\nObject.assign(RU_COUNTRIES.countries, {\n OS: 'Южная Осетия',\n AB: 'Абхазия',\n [OTHER_COUNTRY_CODE]: 'Другие'\n});\n\nObject.assign(ES_COUNTRIES.countries, {\n OS: 'Osetia del Sur',\n AB: 'Abjasia',\n [OTHER_COUNTRY_CODE]: 'Otro'\n});\n\nObject.assign(TR_COUNTRIES.countries, {\n OS: 'Güney Osetya',\n AB: 'Abhazya',\n [OTHER_COUNTRY_CODE]: 'Diğer'\n});\n\nObject.assign(PT_COUNTRIES.countries, {\n OS: 'Ossétia do Sul',\n AB: 'Abecásia',\n [OTHER_COUNTRY_CODE]: 'Outro'\n});\n\nexport const loadI18NData = () => {\n registerLocaleData(localeRu);\n registerLocaleData(localeEn);\n registerLocaleData(localeEs);\n registerLocaleData(localeTr);\n registerLocaleData(localePt);\n registerLocaleData(localeLt);\n registerLocale(EN_COUNTRIES);\n registerLocale(RU_COUNTRIES);\n registerLocale(ES_COUNTRIES);\n registerLocale(TR_COUNTRIES);\n registerLocale(PT_COUNTRIES);\n registerLocale(LT_COUNTRIES);\n}\n\n","export enum I18N_KEY {\n TITLE_PAGE_INVOICE = 'TITLE_PAGE_INVOICE',\n TITLE_PAGE_SAVE_CARD = 'TITLE_PAGE_SAVE_CARD',\n TITLE_PAGE_PAY_CARD = 'TITLE_PAGE_PAY_CARD',\n CARD_SAVE_HEADER = 'CARD_SAVE_HEADER',\n CARD_PAY_HEADER = 'CARD_PAY_HEADER',\n CDE_CARD_ERROR_500 = 'CDE_CARD_ERROR_500',\n CDE_CARD_ERROR_501 = 'CDE_CARD_ERROR_501',\n CDE_CARD_ERROR_504 = 'CDE_CARD_ERROR_504',\n SESSION_CLOSED = 'session_closed',\n APPLE_NOT_AVAILABLE = 'apple_not_available',\n MIRPAY_NOT_AVAILABLE = 'mirpay_not_available',\n CDE_CARD_ERROR_ALREADY_PAID = 'CDE_CARD_ERROR_ALREADY_PAID',\n CDE_CARD_PAID = 'CDE_CARD_PAID',\n PAGE_NOT_FOUNT = 'page_not_found',\n DEFAULT_ERROR_CODE = 'error_api',\n DEFAULT_ERROR_CODE_GENERAL = 'error_general',\n ERROR_OCCUR = 'ERROR_OCCUR',\n ERROR_OCCUR_SDK = 'ERROR_OCCUR_SDK',\n PROGRESS_TITLE = 'PROGRESS_TITLE',\n FAIL_TITLE = 'FAIL_TITLE',\n SUCCESS_TITLE = 'SUCCESS_TITLE',\n REDIRECT_TEXT = 'REDIRECT_TEXT',\n CHECKIN_MESSAGE = 'CHECKIN_MESSAGE',\n CHECKIN_WAIT = 'CHECKIN_WAIT',\n CHECKIN_WAIT_TIMEOVER = 'CHECKIN_WAIT_TIMEOVER',\n CHECKIN_FAILED = 'CHECKIN_FAILED',\n PROGRESS_3DS_TITLE = 'PROGRESS_3DS_TITLE',\n PROGRESS_3DS_WAIT = 'PROGRESS_3DS_WAIT',\n PROGRESS_3DS_FAILED = 'PROGRESS_3DS_FAILED',\n SESSION_BREAK = 'SESSION_BREAK',\n TERMINAL_SESSION_BREAK = 'TERMINAL_SESSION_BREAK',\n TERMINAL_SESSION_SUCCESS = 'TERMINAL_SESSION_SUCCESS',\n TERMINAL_SESSION_SUPPORT = 'TERMINAL_SESSION_SUPPORT',\n SELECT_SEARCH = 'SELECT_SEARCH',\n SELECT_EMPTY_LIST = 'SELECT_EMPTY_LIST',\n VALIDATION_REQUIRED = 'validation_required',\n VALIDATION_EMAIL = 'validation_email',\n VALIDATION_MIN = 'validation_min',\n VALIDATION_MAX = 'validation_max',\n VALIDATION_PATTERN = 'validation_pattern',\n VALIDATION_DATE_MIN = 'validation_date_min',\n VALIDATION_DATE_MAX = 'validation_date_max',\n CONSTRUCTOR_LABEL_PHONE = 'CONSTRUCTOR_LABEL_PHONE',\n CONSTRUCTOR_LABEL_EMAIL = 'CONSTRUCTOR_LABEL_EMAIL',\n CONSTRUCTOR_LABEL_AMOUNT = 'CONSTRUCTOR_LABEL_AMOUNT',\n CONSTRUCTOR_LABEL_FIRSTNAME = 'CONSTRUCTOR_LABEL_FIRSTNAME',\n CONSTRUCTOR_LABEL_LASTNAME = 'CONSTRUCTOR_LABEL_LASTNAME',\n CONSTRUCTOR_LABEL_DATEBIRTH = 'CONSTRUCTOR_LABEL_DATEBIRTH',\n CONSTRUCTOR_LABEL_ZIP = 'CONSTRUCTOR_LABEL_ZIP',\n CONSTRUCTOR_LABEL_TYPEDOCUMENT = 'CONSTRUCTOR_LABEL_TYPEDOCUMENT',\n CONSTRUCTOR_LABEL_DOCUMENT = 'CONSTRUCTOR_LABEL_DOCUMENT',\n CONSTRUCTOR_LABEL_BANK = 'CONSTRUCTOR_LABEL_BANK',\n CONSTRUCTOR_LABEL_COUNTRY = 'CONSTRUCTOR_LABEL_COUNTRY',\n CONSTRUCTOR_LABEL_CONTINUE = 'CONSTRUCTOR_LABEL_CONTINUE',\n CONSTRUCTOR_LABEL_RETURN = 'CONSTRUCTOR_LABEL_RETURN',\n CONSTRUCTOR_LABEL_RETURN_TO_SHOP = 'CONSTRUCTOR_LABEL_RETURN_TO_SHOP',\n CONSTRUCTOR_LABEL_CANCEL_RETURN = 'CONSTRUCTOR_LABEL_CANCEL_RETURN',\n CONSTRUCTOR_LABEL_FEE = 'CONSTRUCTOR_LABEL_FEE',\n CONSTRUCTOR_LABEL_MIN_AMOUNT = 'CONSTRUCTOR_LABEL_MIN_AMOUNT',\n CONSTRUCTOR_LABEL_MAX_AMOUNT = 'CONSTRUCTOR_LABEL_MAX_AMOUNT',\n CONSTRUCTOR_LABEL_PS = 'CONSTRUCTOR_LABEL_PS',\n CONSTRUCTOR_LABEL_WALLET = 'CONSTRUCTOR_LABEL_WALLET',\n CONSTRUCTOR_LABEL_AMOUNT_FEE = 'CONSTRUCTOR_LABEL_AMOUNT_FEE',\n CONSTRUCTOR_LABEL_MIN_FIXED_FEE = 'CONSTRUCTOR_LABEL_MIN_FIXED_FEE',\n CONSTRUCTOR_LABEL_CURRENCY = 'CONSTRUCTOR_LABEL_CURRENCY',\n CONSTRUCTOR_PREPARATION_HEADER = 'CONSTRUCTOR_PREPARATION_HEADER',\n CONSTRUCTOR_MEGAFON_PREPARATION_TEXT = 'constructor_megafon_preparation_text',\n CONSTRUCTOR_PLACEHOLDER_PHONE = 'CONSTRUCTOR_PLACEHOLDER_PHONE',\n CONSTRUCTOR_PLACEHOLDER_EMAIL = 'CONSTRUCTOR_PLACEHOLDER_EMAIL',\n CONSTRUCTOR_PLACEHOLDER_AMOUNT = 'CONSTRUCTOR_PLACEHOLDER_AMOUNT',\n CONSTRUCTOR_PLACEHOLDER_FIRSTNAME = 'CONSTRUCTOR_PLACEHOLDER_FIRSTNAME',\n CONSTRUCTOR_PLACEHOLDER_LASTNAME = 'CONSTRUCTOR_PLACEHOLDER_LASTNAME',\n CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT',\n CONSTRUCTOR_PLACEHOLDER_ZIP = 'CONSTRUCTOR_PLACEHOLDER_ZIP',\n CONSTRUCTOR_PLACEHOLDER_BANK = 'CONSTRUCTOR_PLACEHOLDER_BANK',\n CONSTRUCTOR_PLACEHOLDER_DOCUMENT = 'CONSTRUCTOR_PLACEHOLDER_DOCUMENT',\n CONSTRUCTOR_PLACEHOLDER_WALLET = 'CONSTRUCTOR_PLACEHOLDER_WALLET',\n CONSTRUCTOR_PLACEHOLDER_PS = 'CONSTRUCTOR_PLACEHOLDER_PS',\n CONSTRUCTOR_DESCRIPTION_VOUCHER = 'CONSTRUCTOR_DESCRIPTION_VOUCHER',\n CONSTRUCTOR_DESCRIPTION_APPLEPAY = 'CONSTRUCTOR_DESCRIPTION_APPLEPAY',\n CONSTRUCTOR_DESCRIPTION_CASHTOCODE = 'CONSTRUCTOR_DESCRIPTION_CASHTOCODE',\n CONSTRUCTOR_DESCRIPTION_PHONE = 'CONSTRUCTOR_DESCRIPTION_PHONE'\n}\n","import { ApiErrors } from '../../codegen/model/apiErrors';\nimport { I18N_KEY } from './i18n-key.enum';\n\nexport const i18nMap: Map<ApiErrors | I18N_KEY, string> = new Map<ApiErrors | I18N_KEY, string>(\n [\n [I18N_KEY.TITLE_PAGE_INVOICE, 'Пополнение'],\n [I18N_KEY.TITLE_PAGE_SAVE_CARD, 'Сохранение карты'],\n [I18N_KEY.TITLE_PAGE_PAY_CARD, 'Пополнение картой'],\n [ApiErrors.SESSION_USED, 'Сессия не установлена'],\n [ApiErrors.SESSION_EXPIRED, 'Сессия уже использована'],\n [ApiErrors.SESSION_NOT_FOUND, 'Время жизни сессии истекло'],\n [I18N_KEY.SESSION_BREAK, 'Сессия прервана'],\n [I18N_KEY.ERROR_OCCUR, 'Произошла ошибка'],\n [ApiErrors.FORMAT_DATE_BIRTH, 'Неправильный формат даты'],\n [ApiErrors.FORMAT_EMAIL, 'Неправильный формат email'],\n [ApiErrors.FORMAT_NUMERIC, 'Неправильный формат одного из числовых полей'],\n [ApiErrors.FORMAT_LOWER_LIMIT, 'Сумма меньше минимального значения'],\n [ApiErrors.FORMAT_UPPER_LIMIT, 'Превышено максимальное значение суммы'],\n [ApiErrors.FORMAT_AMOUNT_OUT_OF_LIMIT, 'Сумма за пределами допустимых лимитов'],\n [ApiErrors.FORMAT_AMOUNT_NOT_POSITIVE, 'Сумма должна быть положительной'],\n [ApiErrors.FORMAT_STEAM_TOKEN, 'Неправильный формат токена steam'],\n [ApiErrors.FORMAT_WALLET, 'Неправильный формат кошелька'],\n [ApiErrors.FORMAT_ZIP, 'Неправильный формат почтового индекса'],\n [ApiErrors.FORMAT_PHONE, 'Неправильный формат телефона'],\n [ApiErrors.INSUFFICIENT_FUNDS, 'Недостаточно средств, чтобы провести операцию'],\n [ApiErrors.PAYMENT_COUNT_EXCEEDED, 'Исчерпан лимит платежей для платёжного направления'],\n [ApiErrors.SECURITY_CHECK_FAILED, 'Операция отклонена системой безопасности'],\n [ApiErrors.PROVIDER_DENIED, 'Платёж отклонён провайдером'],\n [ApiErrors.INTERNAL, 'Внутренняя ошибка'],\n [I18N_KEY.CARD_SAVE_HEADER, 'Сохранение карты для дальнейших покупок'],\n [I18N_KEY.CARD_PAY_HEADER, 'Пополнение банковской картой'],\n [I18N_KEY.CDE_CARD_ERROR_501, 'Сессия с указанным токеном не найдена'],\n [I18N_KEY.CDE_CARD_ERROR_504, 'Время сессии истекло'],\n [I18N_KEY.CDE_CARD_ERROR_500, 'Внутренняя ошибка. Попробуйте повторить попытку позже'],\n [I18N_KEY.DEFAULT_ERROR_CODE, 'Обратитесь в техническую поддержку магазина'],\n [I18N_KEY.DEFAULT_ERROR_CODE_GENERAL, 'Произошла ошибка. Обратитесь в службу поддержки.'],\n [I18N_KEY.PAGE_NOT_FOUNT, 'Страница не найдена'],\n [I18N_KEY.SESSION_CLOSED, 'Сессия закрыта'],\n [I18N_KEY.APPLE_NOT_AVAILABLE, 'ApplePay недоступен в текущем окружении'],\n [I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID, 'Данные карты отправлены. Подтвердите платеж.'],\n [I18N_KEY.CDE_CARD_PAID, 'Данные карты отправлены.'],\n [I18N_KEY.MIRPAY_NOT_AVAILABLE, 'MirPay временно недоступен'],\n [I18N_KEY.VALIDATION_REQUIRED, 'Обязательное поле'],\n [I18N_KEY.CONSTRUCTOR_LABEL_PHONE, 'Номер телефона'],\n [I18N_KEY.CONSTRUCTOR_LABEL_EMAIL, 'Email'],\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT, 'Сумма платежа'],\n [I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME, 'Имя'],\n [I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME, 'Фамилия'],\n [I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH, 'Дата рождения'],\n [I18N_KEY.CONSTRUCTOR_LABEL_ZIP, 'Индекс'],\n [I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT, 'Тип документа'],\n [I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT, 'Документ'],\n [I18N_KEY.CONSTRUCTOR_LABEL_BANK, 'Банк'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE, 'Введите номер'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL, 'Введите email'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT, 'Укажите сумму'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME, 'Введите имя'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME, 'Введите фамилию'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT, 'Выберите тип'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP, 'Укажите индекс (например, 125047)'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK, 'Выберите банк'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT, 'Введите номер документа'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET, 'Введите номер кошелька'],\n [I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS, 'Выбрать другой метод'],\n [I18N_KEY.VALIDATION_EMAIL, 'Некорректный адрес почты'],\n [I18N_KEY.VALIDATION_MIN, 'Значение ниже минимально возможного'],\n [I18N_KEY.VALIDATION_MAX, 'Значение выше максимально возможного'],\n [I18N_KEY.VALIDATION_PATTERN, 'Некорректное значение'],\n [I18N_KEY.VALIDATION_DATE_MIN, 'Значение ниже минимальной даты'],\n [I18N_KEY.VALIDATION_DATE_MAX, 'Превышено значение максимальной даты'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER, 'Ваучер действителен в течение 48 часов. Обработка платежей может занять до 3 рабочих дней.'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY, 'Данный метод работает только в браузере Safari'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE, 'Для успешного пополнения счета сумма пополнения должна быть равна: 10, 25, 50, 100, 200 или 400 евро.'],\n [I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE, 'С кодом страны в международном формате'],\n [I18N_KEY.CONSTRUCTOR_LABEL_PS, 'Платежная система'],\n [I18N_KEY.CONSTRUCTOR_LABEL_WALLET, 'Кошелек'],\n [I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE, 'Сумма с учетом комиссии'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE, 'но не менее '],\n [I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER, 'Подтвердите реквизиты платежа'],\n [I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT, 'Оплачивая услуги с помощью Мегафон, вы соглашаетесь с <a target=\"_blank\" href=\"https://moscow.megafon.ru/download/~federal/oferts/oferta_m_platezhi.pdf\">офертой</a>.'],\n [I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY, 'Страна'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE, 'Продолжить'],\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN, 'Вернуться назад'],\n [I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP, 'Вернуться в магазин'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN, 'Отменить и вернуться'],\n [I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY, 'Валюта'],\n [I18N_KEY.CONSTRUCTOR_LABEL_FEE, 'Комиссия'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT, 'Минимальная сумма'],\n [I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT, 'Максимальная сумма'],\n [I18N_KEY.PROGRESS_TITLE, 'Платёж принят в обработку'],\n [I18N_KEY.FAIL_TITLE, 'Не удалось провести платёж'],\n [I18N_KEY.SUCCESS_TITLE, 'Ваш платёж успешно оплачен!'],\n [I18N_KEY.REDIRECT_TEXT, 'Вы будете автоматически перенаправлены через'],\n [I18N_KEY.CHECKIN_MESSAGE, 'Операция будет обработана в ближайшее время.'],\n [I18N_KEY.CHECKIN_WAIT, 'Пожалуйста, дождитесь окончательного статуса платежа.'],\n [I18N_KEY.CHECKIN_WAIT_TIMEOVER, 'Время ожидания статуса истекло. Транзакция будет обработана в ближайшее время.'],\n [I18N_KEY.CHECKIN_FAILED, 'Платежная операция не может быть обработана или завершилась с ошибкой.'],\n [I18N_KEY.PROGRESS_3DS_TITLE, 'Принято в обработку'],\n [I18N_KEY.PROGRESS_3DS_WAIT, 'Пожалуйста, дождитесь окончания проверки.'],\n [I18N_KEY.PROGRESS_3DS_FAILED, 'Произошла ошибка при обработке 3ds пароля.'],\n [I18N_KEY.TERMINAL_SESSION_BREAK, 'Сессия терминала была прервана'],\n [I18N_KEY.TERMINAL_SESSION_SUCCESS, 'Операция прошла успешно!'],\n [I18N_KEY.TERMINAL_SESSION_SUPPORT, 'В случае возникновения проблем с платежом, обращайтесь в техническую поддержку магазина или к нам на почту'],\n [I18N_KEY.SELECT_SEARCH, 'Поиск'],\n [I18N_KEY.SELECT_EMPTY_LIST, 'Список пуст'],\n [I18N_KEY.ERROR_OCCUR_SDK, 'Ошибка загрузки терминала']\n ]\n);\n\nexport const getI18Key: ((key: I18N_KEY | ApiErrors) => string) = (key: I18N_KEY | ApiErrors) => {\n return i18nMap.get(key);\n}\n","import { InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Mode } from './mode';\n\nexport enum LANGUAGE {\n EN = 'en',\n RU = 'ru',\n ES = 'es',\n TR = 'tr',\n PT = 'pt',\n LT = 'lt'\n}\nexport const LOCAL_LANG_KEY = 'TERMINAL_LANG';\nexport const DEFAULT_LANG = 'en';\nexport const APP_READY_TOKEN = new InjectionToken<BehaviorSubject<boolean>>(\n 'APP_READY',\n { providedIn: 'root', factory: () => new BehaviorSubject<boolean>(false) }\n);\nexport const CSRF_COOKIE_NAME = 'TERMINAL-CSRF-KEY';\nexport const I18N_COUNTRIES = new InjectionToken('i18n-iso-countries');\n\nexport const SessionToken = new InjectionToken<string>('SessionToken');\nexport const CheckinModeToken = new InjectionToken<Mode>('CheckinModeToken');\nexport const DEFAULT_COUNTRY_LOCALHOST_KEY = 'GM_TERMINAL_COUNTRY';\nexport const DEFAULT_METHOD_LOCALHOST_KEY = 'GM_TERMINAL_METHOD';\nexport const DEFAULT_CURRENCY_LOCALHOST_KEY = 'GM_TERMINAL_CURRENCY';\n","export enum Mode {\n Success = 'success',\n Fail = 'fail'\n}\n","import { VersionServiceInterface } from './version-service-interface';\nimport { MethodType } from '../../codegen/model/methodType';\n\n\nexport abstract class VersionServiceBase implements VersionServiceInterface {\n\n logoClass: string;\n methods: MethodType[];\n footerText;\n pageTitle = 'Title';\n supportEmail = '';\n\n\tprotected constructor(protected document: Document) {\n this.footerText = `${document.defaultView.location.hostname} © ${new Date().getFullYear()}`\n\t}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ApiErrors, BadRequestResponse } from '../../codegen/model/models';\nimport { I18N_KEY } from './../i18n';\nimport { SessionToken } from '../models';\n\ntype ErrorCode = I18N_KEY | ApiErrors;\n\n@Injectable()\nexport class ApiErrorsService {\n private token = inject(SessionToken, {optional: true}) || 'token';\n\n private _localError: ErrorCode;\n\n constructor() {\n }\n\n clear(): void {\n this._localError = null;\n }\n\n get hasError(): boolean {\n return !!this._localError;\n }\n\n get hasFatalError(): boolean {\n const formatErrors: ErrorCode[] = [\n ApiErrors.FORMAT_PHONE,\n ApiErrors.FORMAT_DATE_BIRTH,\n ApiErrors.FORMAT_EMAIL,\n ApiErrors.FORMAT_NUMERIC,\n ApiErrors.FORMAT_LOWER_LIMIT,\n ApiErrors.FORMAT_UPPER_LIMIT,\n ApiErrors.FORMAT_STEAM_TOKEN,\n ApiErrors.FORMAT_WALLET,\n ApiErrors.FORMAT_ZIP,\n ];\n if (formatErrors.includes(this._localError)) {\n return false;\n }\n return !!this._localError;\n }\n\n setLocalError(err?: BadRequestResponse | { code: I18N_KEY }): void {\n let code: ErrorCode = I18N_KEY.DEFAULT_ERROR_CODE;\n if (err?.code) {\n code = err.code;\n }\n this._localError = code;\n }\n\n get hasLocalError() {\n return !!this._localError;\n }\n\n getLocalError() {\n return this._localError;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { PaymentFields } from './app/pages';\nimport { CheckinServiceInterface, ConfigurationApiInterface, TerminalServiceInterface } from './codegen';\nimport { CdeTerminalSdk, VersionServiceInterface } from './app/models';\n\nexport const CONFIGURATION_TOKEN = new InjectionToken<ConfigurationApiInterface>('CONFIGURATION_TOKEN');\nexport const CHECKIN_SERVICE_TOKEN = new InjectionToken<CheckinServiceInterface>('CHECKIN_SERVICE_TOKEN');\nexport const TERMINAL_SERVICE_TOKEN = new InjectionToken<TerminalServiceInterface>('TERMINAL_SERVICE_TOKEN');\nexport const TERMINAL_METHOD_CONFIGURATION_FACTORY = new InjectionToken<(method: string, defaultConfig: PaymentFields) => PaymentFields>('TERMINAL_METHOD_CONFIGURATION_FACTORY');\nexport const ENVIRONMENT = new InjectionToken<{production: boolean, csrf: boolean}>('ENVIRONMENT');\nexport const TERMINAL_VERSION_SERVICE_TOKEN = new InjectionToken<VersionServiceInterface>('TERMINAL_VERSION_SERVICE_TOKEN');\n\nexport const TERMINAL_SDK_FACTORY = new InjectionToken<(token: string, id: string, options: {lang: string, tabindex?: number}) => CdeTerminalSdk>('TERMINAL_SDK_FACTORY');\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { Alpha2Code } from 'i18n-iso-countries';\nimport {\n DEFAULT_COUNTRY_LOCALHOST_KEY,\n DEFAULT_CURRENCY_LOCALHOST_KEY,\n DEFAULT_METHOD_LOCALHOST_KEY,\n LOCAL_LANG_KEY,\n} from '../models/constants';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorage {\n private _document: Document = inject(DOCUMENT);\n private readonly _supported: boolean = true;\n constructor() {\n try {\n if (!this._document.defaultView.localStorage) {\n this._supported = false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n this._supported = false;\n }\n }\n\n private get _storage(): Storage {\n return this._document.defaultView.localStorage;\n }\n\n getItem(key: string): string | null {\n if (!this._supported) {\n return null;\n }\n return this._storage.getItem(key);\n }\n\n setItem(key: string, value: string): void {\n if (!this._supported) {\n return;\n }\n this._storage.setItem(key, value);\n }\n\n private _defaultCountry: Alpha2Code;\n private _defaultMethodName: string;\n private _defaultCurrency: string;\n private _defaultLang: string;\n\n get defaultCountry(): Alpha2Code | null {\n return (\n this._defaultCountry ||\n (this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY) as Alpha2Code)\n );\n }\n\n get defaultMethodName(): string | null {\n return (\n this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY)\n );\n }\n\n get defaultCurrency(): string | null {\n return (\n this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY)\n );\n }\n\n get defaultLang(): string | null {\n return this._defaultLang || this.getItem(LOCAL_LANG_KEY);\n }\n\n saveDefaultCountry(value: string): void {\n this._defaultCountry = value as Alpha2Code;\n this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);\n }\n\n saveDefaultMethodName(value: string): void {\n this._defaultMethodName = value;\n this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);\n }\n\n saveDefaultCurrency(value: string): void {\n this._defaultCurrency = value;\n this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);\n }\n\n saveDefaultLang(value: string): void {\n this._defaultLang = value;\n this.setItem(LOCAL_LANG_KEY, value);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ApiErrorsService } from './api-errors.service';\nimport momentjs from 'moment-timezone';\nimport { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';\nimport { ConfigurationApiInterface } from '../../codegen/api/configuration';\nimport { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\nimport { ApiErrors } from '../../codegen/model/apiErrors';\nimport { LocalStorage } from \"./local-storage\";\n\n@Injectable()\nexport class CSRFResolver {\n private cookieSrv = inject(CookieService);\n private apiErrorsSrv = inject(ApiErrorsService);\n private configuration = inject<ConfigurationApiInterface>(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\n private token = inject(SessionToken, { optional: true }) || 'token';\n private environment = inject(ENVIRONMENT);\n\n private storage: LocalStorage = inject(LocalStorage);\n\n constructor() {\n }\n\n private saveDefaultCountry(defaultCountryISOCode: string) {\n if (defaultCountryISOCode) {\n this.storage.saveDefaultCountry(defaultCountryISOCode);\n }\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n const token = this.token;\n if (!token) {\n if (!this.apiErrorsSrv.hasError) {\n this.apiErrorsSrv.setLocalError({code: ApiErrors.SESSION_NOT_FOUND});\n }\n return of(true);\n }\n const timezone = momentjs.tz.guess();\n\n if (!this.environment.csrf) {\n return of(false);\n }\n if (this.resolveCSRF(token)) {\n return of(true);\n }\n return this.terminalApi.postTerminalOpen({\n token,\n terminalOpenRequest: {\n timezone\n }\n })\n .pipe(\n catchError((err) => {\n this.apiErrorsSrv.setLocalError(err.error);\n return of({csrf: null, defaultCountryISOCode: null});\n }),\n map(({csrf, defaultCountryISOCode}) => {\n this.saveDefaultCountry(defaultCountryISOCode);\n this.resolveCSRF(token, csrf);\n return true;\n })\n );\n }\n\n resolveCSRF(token: string, csrf?: string): boolean {\n if (!csrf) {\n if (token && this.cookieSrv.check(`${token}_${CSRF_COOKIE_NAME}`)) {\n this.apiErrorsSrv.clear();\n this.configuration.credentials.CSRF = this.cookieSrv.get(`${token}_${CSRF_COOKIE_NAME}`);\n return true;\n }\n } else {\n this.apiErrorsSrv.clear();\n this.cookieSrv.set(`${token}_${CSRF_COOKIE_NAME}`, csrf, momentjs().add(24, 'hours').toDate(), undefined, undefined, this.environment.production);\n this.configuration.credentials.CSRF = csrf;\n return true;\n }\n return false;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ApiErrorsService } from './api-errors.service';\n\n@Injectable()\nexport class ErrorInterceptorService implements HttpInterceptor {\n private apiErrorSrv = inject(ApiErrorsService);\n\n\n constructor() { }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next\n .handle(req)\n .pipe(\n catchError((err: HttpErrorResponse) => {\n if (err.status === 404 || err.status === 500) {\n this.apiErrorSrv.setLocalError();\n }\n return throwError(err);\n })\n );\n }\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DEFAULT_LANG, LANGUAGE } from '../../models/constants'\nimport { Alpha2Code } from 'i18n-iso-countries';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../const';\nimport { VersionServiceInterface } from '../../models';\nimport { LocalStorage } from \"../local-storage\";\nimport { Observable } from \"rxjs\";\n\n\ninterface TranslationLangInfoMeta {\n code: string;\n name: string;\n countries: Alpha2Code[];\n}\n\nexport interface TranslationLangInfo {\n [key: string]: TranslationLangInfoMeta;\n}\n\nconst TRANSLATION_LANG_KEYS: TranslationLangInfo = {\n [LANGUAGE.RU]: {\n code: 'ru',\n name: 'Русский',\n countries: [\n 'AZ',\n 'AM',\n 'BY',\n 'KZ',\n 'KG',\n 'MD',\n 'RU',\n 'TJ',\n 'TM',\n 'UZ',\n 'UA',\n ],\n },\n [LANGUAGE.EN]: {\n code: 'gb',\n name: 'English',\n countries: [],\n },\n [LANGUAGE.ES]: {\n code: 'es',\n name: 'Español',\n countries: [\n 'BZ',\n 'GT',\n 'HN',\n 'CR',\n 'PA',\n 'NI',\n 'SV',\n 'AR',\n 'CL',\n 'CO',\n 'EC',\n 'PY',\n 'PE',\n 'GY',\n 'ES',\n ],\n },\n [LANGUAGE.TR]: {\n code: 'tr',\n name: 'Türkçe',\n countries: ['TR'],\n },\n [LANGUAGE.PT]: {\n code: 'pt',\n name: 'Português',\n countries: ['PT', 'BR'],\n },\n};\n@Injectable()\nexport class TranslateLangStorageService {\n private _storage: LocalStorage = inject(LocalStorage);\n\n constructor() {\n }\n\n get languages() {\n return this.versionSrv.langs || [LANGUAGE.RU, LANGUAGE.EN, LANGUAGE.PT, LANGUAGE.TR, LANGUAGE.ES];\n }\n\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n private document = inject<Document>(DOCUMENT);\n private translateSrv = inject(TranslateService);\n\n readonly TRANSLATION_LANG_KEYS = TRANSLATION_LANG_KEYS;\n\n private get location(): Location {\n return this.document.defaultView.location;\n }\n\n get onLangChange$(): EventEmitter<LangChangeEvent> {\n return this.translateSrv.onLangChange;\n }\n\n get currentLang(): string {\n return this.translateSrv.currentLang;\n }\n\n get queryLang(): string | null {\n return new URL(this.location.href).searchParams.get('language');\n }\n\n private get countryLanguage(): string | null {\n const code = this._storage.defaultCountry?.toUpperCase();\n if (!code) {\n return null;\n }\n return Object.keys(this.TRANSLATION_LANG_KEYS).find((lang: LANGUAGE) => {\n const meta = this.TRANSLATION_LANG_KEYS[lang];\n return meta?.countries.some((c) => c.includes(code.toUpperCase()));\n });\n }\n\n setLanguage$(\n options: { save: boolean; lang?: string } = {save: true},\n ): Observable<any> {\n const availableLanguages = Object.keys(this.TRANSLATION_LANG_KEYS);\n let candidateLang = DEFAULT_LANG;\n const lang = options?.lang?.toLowerCase();\n const queryLang = this.queryLang?.toLowerCase();\n const storageLang = this._storage.defaultLang?.toLowerCase();\n const countryLang = this.countryLanguage?.toLowerCase();\n if (availableLanguages.includes(lang)) {\n candidateLang = lang;\n } else if (availableLanguages.includes(storageLang)) {\n candidateLang = storageLang;\n } else if (availableLanguages.includes(queryLang)) {\n candidateLang = queryLang;\n } else if (availableLanguages.includes(countryLang)) {\n candidateLang = countryLang;\n }\n if (!this.versionSrv.langs.includes(candidateLang as LANGUAGE)) {\n candidateLang = DEFAULT_LANG;\n }\n\n if (options?.save) {\n this._storage.saveDefaultLang(candidateLang);\n }\n\n return this.translateSrv.use(candidateLang);\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { delay, first, map } from 'rxjs/operators';\n\nconst DELAY_INITIAL_LOADER_HIDING = 0;\nconst LOADER_HIDE_CSS_CLASS = 'trm-loader-init--hide';\n\nexport function hideInitLoader(): Observable<boolean> {\n return of(false).pipe(\n first(),\n map(() => {\n const loader = document.querySelector('.trm-loader-init');\n if (!loader) {\n return false;\n }\n loader.classList.add(LOADER_HIDE_CSS_CLASS);\n return true;\n }),\n delay(DELAY_INITIAL_LOADER_HIDING)\n );\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const insertRemoveTrigger = trigger('insertRemove', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('150ms', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate('150ms', style({ opacity: 0 }))\n ])\n])\n","export const removeSpecSymbols = (s) => s.replace(/[\\+\\(\\)\\-\\s]+/g, '');\nexport const PHONE_MASKS = [\n {\n mask: '+247-dddd',\n cc: 'AC',\n name_en: 'Ascension',\n desc_en: '',\n name_ru: 'Остров Вознесения',\n desc_ru: ''\n },\n { mask: '+376-ddd-ddd', cc: 'AD', name_en: 'Andorra', desc_en: '', name_ru: 'Андорра', desc_ru: '' },\n {\n mask: '+971-5d-ddd-dddd',\n cc: 'AE',\n name_en: 'United Arab Emirates',\n desc_en: 'mobile',\n name_ru: 'Объединенные Арабские Эмираты',\n desc_ru: 'мобильные'\n },\n {\n mask: '+971-d-ddd-dddd',\n cc: 'AE',\n name_en: 'United Arab Emirates',\n desc_en: '',\n name_ru: 'Объединенные Арабские Эмираты',\n desc_ru: ''\n },\n {\n mask: '+93-dd-ddd-dddd',\n cc: 'AF',\n name_en: 'Afghanistan',\n desc_en: '',\n name_ru: 'Афганистан',\n desc_ru: ''\n },\n {\n mask: '+1 (268) ddd-dddd',\n cc: 'AG',\n name_en: 'Antigua & Barbuda',\n desc_en: '',\n name_ru: 'Антигуа и Барбуда',\n desc_ru: ''\n },\n { mask: '+1 (264) ddd-dddd', cc: 'AI', name_en: 'Anguilla', desc_en: '', name_ru: 'Ангилья', desc_ru: '' },\n { mask: '+355 (ddd) ddd-ddd', cc: 'AL', name_en: 'Albania', desc_en: '', name_ru: 'Албания', desc_ru: '' },\n { mask: '+374-dd-ddd-ddd', cc: 'AM', name_en: 'Armenia', desc_en: '', name_ru: 'Армения', desc_ru: '' },\n {\n mask: '+599-ddd-dddd',\n cc: 'AN',\n name_en: 'Caribbean Netherlands',\n desc_en: '',\n name_ru: 'Карибские Нидерланды',\n desc_ru: ''\n },\n {\n mask: '+599-ddd-dddd',\n cc: 'AN',\n name_en: 'Netherlands Antilles',\n desc_en: '',\n name_ru: 'Нидерландские Антильские острова',\n desc_ru: ''\n },\n {\n mask: '+599-9ddd-dddd',\n cc: 'AN',\n name_en: 'Netherlands Antilles',\n desc_en: 'Curacao',\n name_ru: 'Нидерландские Антильские острова',\n desc_ru: 'Кюрасао'\n },\n { mask: '+244 (ddd) ddd-ddd', cc: 'AO', name_en: 'Angola', desc_en: '', name_ru: 'Ангола', desc_ru: '' },\n {\n mask: '+672-1dd-ddd',\n cc: 'AQ',\n name_en: 'Australian bases in Antarctica',\n desc_en: '',\n name_ru: 'Австралийская антарктическая база',\n desc_ru: ''\n },\n {\n mask: '+54 (ddd) ddd-dddd',\n cc: 'AR',\n name_en: 'Argentina',\n desc_en: '',\n name_ru: 'Аргентина',\n desc_ru: ''\n },\n {\n mask: '+1 (684) ddd-dddd',\n cc: 'AS',\n name_en: 'American Samoa',\n desc_en: '',\n name_ru: 'Американское Самоа',\n desc_ru: ''\n },\n { mask: '+43 (ddd) ddd-dddd', cc: 'AT', name_en: 'Austria', desc_en: '', name_ru: 'Австрия', desc_ru: '' },\n { mask: '+61-d-dddd-dddd', cc: 'AU', name_en: 'Australia', desc_en: '', name_ru: 'Австралия', desc_ru: '' },\n { mask: '+297-ddd-dddd', cc: 'AW', name_en: 'Aruba', desc_en: '', name_ru: 'Аруба', desc_ru: '' },\n {\n mask: '+994-dd-ddd-dd-dd',\n cc: 'AZ',\n name_en: 'Azerbaijan',\n desc_en: '',\n name_ru: 'Азербайджан',\n desc_ru: ''\n },\n {\n mask: '+387-dd-ddddd',\n cc: 'BA',\n name_en: 'Bosnia and Herzegovina',\n desc_en: '',\n name_ru: 'Босния и Герцеговина',\n desc_ru: ''\n },\n {\n mask: '+387-dd-dddd',\n cc: 'BA',\n name_en: 'Bosnia and Herzegovina',\n desc_en: '',\n name_ru: 'Босния и Герцеговина',\n desc_ru: ''\n },\n { mask: '+1 (246) ddd-dddd', cc: 'BB', name_en: 'Barbados', desc_en: '', name_ru: 'Барбадос', desc_ru: '' },\n {\n mask: '+880-dd-ddd-ddd',\n cc: 'BD',\n name_en: 'Bangladesh',\n desc_en: '',\n name_ru: 'Бангладеш',\n desc_ru: ''\n },\n { mask: '+32 (ddd) ddd-ddd', cc: 'BE', name_en: 'Belgium', desc_en: '', name_ru: 'Бельгия', desc_ru: '' },\n {\n mask: '+226-dd-dd-dddd',\n cc: 'BF',\n name_en: 'Burkina Faso',\n desc_en: '',\n name_ru: 'Буркина Фасо',\n desc_ru: ''\n },\n { mask: '+359 (ddd) ddd-ddd', cc: 'BG', name_en: 'Bulgaria', desc_en: '', name_ru: 'Болгария', desc_ru: '' },\n { mask: '+973-dddd-dddd', cc: 'BH', name_en: 'Bahrain', desc_en: '', name_ru: 'Бахрейн', desc_ru: '' },\n { mask: '+257-dd-dd-dddd', cc: 'BI', name_en: 'Burundi', desc_en: '', name_ru: 'Бурунди', desc_ru: '' },\n { mask: '+229-dd-dd-dddd', cc: 'BJ', name_en: 'Benin', desc_en: '', name_ru: 'Бенин', desc_ru: '' },\n {\n mask: '+1 (441) ddd-dddd',\n cc: 'BM',\n name_en: 'Bermuda',\n desc_en: '',\n name_ru: 'Бермудские острова',\n desc_ru: ''\n },\n {\n mask: '+673-ddd-dddd',\n cc: 'BN',\n name_en: 'Brunei Darussalam',\n desc_en: '',\n name_ru: 'Бруней-Даруссалам',\n desc_ru: ''\n },\n { mask: '+591-d-ddd-dddd', cc: 'BO', name_en: 'Bolivia', desc_en: '', name_ru: 'Боливия', desc_ru: '' },\n { mask: '+55 (dd) dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\n { mask: '+55 (dd) 9dddd-dddd', cc: 'BR', name_en: 'Brazil', desc_en: '', name_ru: 'Бразилия', desc_ru: '' },\n {\n mask: '+1 (242) ddd-dddd',\n cc: 'BS',\n name_en: 'Bahamas',\n desc_en: '',\n name_ru: 'Багамские Острова',\n desc_ru: ''\n },\n { mask: '+975-17-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\n { mask: '+975-d-ddd-ddd', cc: 'BT', name_en: 'Bhutan', desc_en: '', name_ru: 'Бутан', desc_ru: '' },\n { mask: '+267-dd-ddd-ddd', cc: 'BW', name_en: 'Botswana', desc_en: '', name_ru: 'Ботсвана', desc_ru: '' },\n {\n mask: '+375 (dd) ddd-dd-dd',\n cc: 'BY',\n name_en: 'Belarus',\n desc_en: '',\n name_ru: 'Беларусь (Белоруссия) ',\n desc_ru: ''\n },\n { mask: '+501-ddd-dddd', cc: 'BZ', name_en: 'Belize', desc_en: '', name_ru: 'Белиз', desc_ru: '' },\n {\n mask: '+243 (ddd) ddd-ddd',\n cc: 'CD',\n name_en: 'Dem. Rep. Congo',\n desc_en: '',\n name_ru: 'Дем. Респ. Конго (Киншаса) ',\n desc_ru: ''\n },\n {\n mask: '+236-dd-dd-dddd',\n cc: 'CF',\n name_en: 'Central African Republic',\n desc_en: '',\n name_ru: 'Центральноафриканская Республика',\n desc_ru: ''\n },\n {\n mask: '+242-dd-ddd-dddd',\n cc: 'CG',\n name_en: 'Congo (Brazzaville) ',\n desc_en: '',\n name_ru: 'Конго (Браззавиль) ',\n desc_ru: ''\n },\n {\n mask: '+41-dd-ddd-dddd',\n cc: 'CH',\n name_en: 'Switzerland',\n desc_en: '',\n name_ru: 'Швейцария',\n desc_ru: ''\n },\n {\n mask: '+225-dd-ddd-ddd',\n cc: 'CI',\n name_en: 'Cote d’Ivoire (Ivory Coast) ',\n desc_en: '',\n name_ru: 'Кот-д’Ивуар',\n desc_ru: ''\n },\n {\n mask: '+682-dd-ddd',\n cc: 'CK',\n name_en: 'Cook Islands',\n desc_en: '',\n name_ru: 'Острова Кука',\n desc_ru: ''\n },\n { mask: '+56-d-dddd-dddd', cc: 'CL', name_en: 'Chile', desc_en: '', name_ru: 'Чили', desc_ru: '' },\n { mask: '+237-dddd-dddd', cc: 'CM', name_en: 'Cameroon', desc_en: '', name_ru: 'Камерун', desc_ru: '' },\n {\n mask: '+86 (ddd) dddd-dddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n {\n mask: '+86 (ddd) dddd-ddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n {\n mask: '+86-dd-ddddd-ddddd',\n cc: 'CN',\n name_en: 'China (PRC) ',\n desc_en: '',\n name_ru: 'Китайская Н.Р.',\n desc_ru: ''\n },\n { mask: '+57 (ddd) ddd-dddd', cc: 'CO', name_en: 'Colombia', desc_en: '', name_ru: 'Колумбия', desc_ru: '' },\n {\n mask: '+506-dddd-dddd',\n cc: 'CR',\n name_en: 'Costa Rica',\n desc_en: '',\n name_ru: 'Коста-Рика',\n desc_ru: ''\n },\n { mask: '+53-d-ddd-dddd', cc: 'CU', name_en: 'Cuba', desc_en: '', name_ru: 'Куба', desc_ru: '' },\n {\n mask: '+238 (ddd) dd-dd',\n cc: 'CV',\n name_en: 'Cape Verde',\n desc_en: '',\n name_ru: 'Кабо-Верде',\n desc_ru: ''\n },\n { mask: '+599-ddd-dddd', cc: 'CW', name_en: 'Curacao', desc_en: '', name_ru: 'Кюрасао', desc_ru: '' },\n { mask: '+357-dd-ddd-ddd', cc: 'CY', name_en: 'Cyprus', desc_en: '', name_ru: 'Кипр', desc_ru: '' },\n {\n mask: '+420 (ddd) ddd-ddd',\n cc: 'CZ',\n name_en: 'Czech Republic',\n desc_en: '',\n name_ru: 'Чехия',\n desc_ru: ''\n },\n { mask: '+49 (dddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) ddd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-dddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49 (ddd) dd-dd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+49-ddd-ddd', cc: 'DE', name_en: 'Germany', desc_en: '', name_ru: 'Германия', desc_ru: '' },\n { mask: '+253-dd-dd-dd-dd', cc: 'DJ', name_en: 'Djibouti', desc_en: '', name_ru: 'Джибути', desc_ru: '' },\n { mask: '+45-dd-dd-dd-dd', cc: 'DK', name_en: 'Denmark', desc_en: '', name_ru: 'Дания', desc_ru: '' },\n { mask: '+1 (767) ddd-dddd', cc: 'DM', name_en: 'Dominica', desc_en: '', name_ru: 'Доминика', desc_ru: '' },\n {\n mask: '+1 (809) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n {\n mask: '+1 (829) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n {\n mask: '+1 (849) ddd-dddd',\n cc: 'DO',\n name_en: 'Dominican Republic',\n desc_en: '',\n name_ru: 'Доминиканская Республика',\n desc_ru: ''\n },\n { mask: '+213-dd-ddd-dddd', cc: 'DZ', name_en: 'Algeria', desc_en: '', name_ru: 'Алжир', desc_ru: '' },\n {\n mask: '+593-dd-ddd-dddd',\n cc: 'EC',\n name_en: 'Ecuador ',\n desc_en: 'mobile',\n name_ru: 'Эквадор ',\n desc_ru: 'мобильные'\n },\n { mask: '+593-d-ddd-dddd', cc: 'EC', name_en: 'Ecuador', desc_en: '', name_ru: 'Эквадор', desc_ru: '' },\n {\n mask: '+372-dddd-dddd',\n cc: 'EE',\n name_en: 'Estonia ',\n desc_en: 'mobile',\n name_ru: 'Эстония ',\n desc_ru: 'мобильные'\n },\n { mask: '+372-ddd-dddd', cc: 'EE', name_en: 'Estonia', desc_en: '', name_ru: 'Эстония', desc_ru: '' },\n { mask: '+20 (ddd) ddd-dddd', cc: 'EG', name_en: 'Egypt', desc_en: '', name_ru: 'Египет', desc_ru: '' },\n { mask: '+291-d-ddd-ddd', cc: 'ER', name_en: 'Eritrea', desc_en: '', name_ru: 'Эритрея', desc_ru: '' },\n { mask: '+34 (ddd) ddd-ddd', cc: 'ES', name_en: 'Spain', desc_en: '', name_ru: 'Испания', desc_ru: '' },\n { mask: '+251-dd-ddd-dddd', cc: 'ET', name_en: 'Ethiopia', desc_en: '', name_ru: 'Эфиопия', desc_ru: '' },\n {\n mask: '+358 (ddd) ddd-dd-dd',\n cc: 'FI',\n name_en: 'Finland',\n desc_en: '',\n name_ru: 'Финляндия',\n desc_ru: ''\n },\n { mask: '+679-dd-ddddd', cc: 'FJ', name_en: 'Fiji', desc_en: '', name_ru: 'Фиджи', desc_ru: '' },\n {\n mask: '+500-ddddd',\n cc: 'FK',\n name_en: 'Falkland Islands',\n desc_en: '',\n name_ru: 'Фолклендские острова',\n desc_ru: ''\n },\n {\n mask: '+691-ddd-dddd',\n cc: 'FM',\n name_en: 'F.S. Micronesia',\n desc_en: '',\n name_ru: 'Ф.Ш. Микронезии',\n desc_ru: ''\n },\n {\n mask: '+298-ddd-ddd',\n cc: 'FO',\n name_en: 'Faroe Islands',\n desc_en: '',\n name_ru: 'Фарерские острова',\n desc_ru: ''\n },\n { mask: '+262-ddddd-dddd', cc: 'FR', name_en: 'Mayotte', desc_en: '', name_ru: 'Майотта', desc_ru: '' },\n { mask: '+33 (ddd) ddd-ddd', cc: 'FR', name_en: 'France', desc_en: '', name_ru: 'Франция', desc_ru: '' },\n {\n mask: '+508-dd-dddd',\n cc: 'FR',\n name_en: 'St Pierre & Miquelon',\n desc_en: '',\n name_ru: 'Сен-Пьер и Микелон',\n desc_ru: ''\n },\n {\n mask: '+590 (ddd) ddd-ddd',\n cc: 'FR',\n name_en: 'Guadeloupe',\n desc_en: '',\n name_ru: 'Гваделупа',\n desc_ru: ''\n },\n { mask: '+241-d-dd-dd-dd', cc: 'GA', name_en: 'Gabon', desc_en: '', name_ru: 'Габон', desc_ru: '' },\n { mask: '+1 (473) ddd-dddd', cc: 'GD', name_en: 'Grenada', desc_en: '', name_ru: 'Гренада', desc_ru: '' },\n {\n mask: '+995 (ddd) ddd-ddd',\n cc: 'GE',\n name_en: 'Rep. of Georgia',\n desc_en: '',\n name_ru: 'Грузия',\n desc_ru: ''\n },\n {\n mask: '+594-ddddd-dddd',\n cc: 'GF',\n name_en: 'Guiana (French) ',\n desc_en: '',\n name_ru: 'Фр. Гвиана',\n desc_ru: ''\n },\n { mask: '+233 (ddd) ddd-ddd', cc: 'GH', name_en: 'Ghana', desc_en: '', name_ru: 'Гана', desc_ru: '' },\n { mask: '+350-ddd-ddddd', cc: 'GI', name_en: 'Gibraltar', desc_en: '', name_ru: 'Гибралтар', desc_ru: '' },\n { mask: '+299-dd-dd-dd', cc: 'GL', name_en: 'Greenland', desc_en: '', name_ru: 'Гренландия', desc_ru: '' },\n { mask: '+220 (ddd) dd-dd', cc: 'GM', name_en: 'Gambia', desc_en: '', name_ru: 'Гамбия', desc_ru: '' },\n { mask: '+224-dd-ddd-ddd', cc: 'GN', name_en: 'Guinea', desc_en: '', name_ru: 'Гвинея', desc_ru: '' },\n {\n mask: '+240-dd-ddd-dddd',\n cc: 'GQ',\n name_en: 'Equatorial Guinea',\n desc_en: '',\n name_ru: 'Экваториальная Гвинея',\n desc_ru: ''\n },\n { mask: '+30 (ddd) ddd-dddd', cc: 'GR', name_en: 'Greece', desc_en: '', name_ru: 'Греция', desc_ru: '' },\n { mask: '+502-d-ddd-dddd', cc: 'GT', name_en: 'Guatemala', desc_en: '', name_ru: 'Гватемала', desc_ru: '' },\n { mask: '+1 (671) ddd-dddd', cc: 'GU', name_en: 'Guam', desc_en: '', name_ru: 'Гуам', desc_ru: '' },\n {\n mask: '+245-d-dddddd',\n cc: 'GW',\n name_en: 'Guinea-Bissau',\n desc_en: '',\n name_ru: 'Гвинея-Бисау',\n desc_ru: ''\n },\n { mask: '+592-ddd-dddd', cc: 'GY', name_en: 'Guyana', desc_en: '', name_ru: 'Гайана', desc_ru: '' },\n { mask: '+852-dddd-dddd', cc: 'HK', name_en: 'Hong Kong', desc_en: '', name_ru: 'Гонконг', desc_ru: '' },\n { mask: '+504-dddd-dddd', cc: 'HN', name_en: 'Honduras', desc_en: '', name_ru: 'Гондурас', desc_ru: '' },\n { mask: '+385-dd-ddd-ddd', cc: 'HR', name_en: 'Croatia', desc_en: '', name_ru: 'Хорватия', desc_ru: '' },\n { mask: '+509-dd-dd-dddd', cc: 'HT', name_en: 'Haiti', desc_en: '', name_ru: 'Гаити', desc_ru: '' },\n { mask: '+36 (ddd) ddd-ddd', cc: 'HU', name_en: 'Hungary', desc_en: '', name_ru: 'Венгрия', desc_ru: '' },\n {\n mask: '+62 (8dd) ddd-dddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n { mask: '+62-dd-ddd-dd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n { mask: '+62-dd-ddd-ddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n { mask: '+62-dd-ddd-dddd', cc: 'ID', name_en: 'Indonesia', desc_en: '', name_ru: 'Индонезия', desc_ru: '' },\n {\n mask: '+62 (8dd) ddd-ddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+62 (8dd) ddd-dd-ddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+62 (8dd) dddd-ddddd',\n cc: 'ID',\n name_en: 'Indonesia ',\n desc_en: 'mobile',\n name_ru: 'Индонезия ',\n desc_ru: 'мобильные'\n },\n { mask: '+353 (ddd) ddd-ddd', cc: 'IE', name_en: 'Ireland', desc_en: '', name_ru: 'Ирландия', desc_ru: '' },\n {\n mask: '+972-5d-ddd-dddd',\n cc: 'IL',\n name_en: 'Israel ',\n desc_en: 'mobile',\n name_ru: 'Израиль ',\n desc_ru: 'мобильные'\n },\n { mask: '+972-d-ddd-dddd', cc: 'IL', name_en: 'Israel', desc_en: '', name_ru: 'Израиль', desc_ru: '' },\n { mask: '+91 (dddd) ddd-ddd', cc: 'IN', name_en: 'India', desc_en: '', name_ru: 'Индия', desc_ru: '' },\n {\n mask: '+246-ddd-dddd',\n cc: 'IO',\n name_en: 'Diego Garcia',\n desc_en: '',\n name_ru: 'Диего-Гарсия',\n desc_ru: ''\n },\n { mask: '+964 (ddd) ddd-dddd', cc: 'IQ', name_en: 'Iraq', desc_en: '', name_ru: 'Ирак', desc_ru: '' },\n { mask: '+98 (ddd) ddd-dddd', cc: 'IR', name_en: 'Iran', desc_en: '', name_ru: 'Иран', desc_ru: '' },\n { mask: '+354-ddd-dddd', cc: 'IS', name_en: 'Iceland', desc_en: '', name_ru: 'Исландия', desc_ru: '' },\n { mask: '+39 (ddd) dddd-ddd', cc: 'IT', name_en: 'Italy', desc_en: '', name_ru: 'Италия', desc_ru: '' },\n { mask: '+1 (876) ddd-dddd', cc: 'JM', name_en: 'Jamaica', desc_en: '', name_ru: 'Ямайка', desc_ru: '' },\n { mask: '+962-d-dddd-dddd', cc: 'JO', name_en: 'Jordan', desc_en: '', name_ru: 'Иордания', desc_ru: '' },\n {\n mask: '+81-dd-dddd-dddd',\n cc: 'JP',\n name_en: 'Japan ',\n desc_en: 'mobile',\n name_ru: 'Япония ',\n desc_ru: 'мобильные'\n },\n { mask: '+81 (ddd) ddd-ddd', cc: 'JP', name_en: 'Japan', desc_en: '', name_ru: 'Япония', desc_ru: '' },\n { mask: '+254-ddd-dddddd', cc: 'KE', name_en: 'Kenya', desc_en: '', name_ru: 'Кения', desc_ru: '' },\n {\n mask: '+996 (ddd) ddd-ddd',\n cc: 'KG',\n name_en: 'Kyrgyzstan',\n desc_en: '',\n name_ru: 'Киргизия',\n desc_ru: ''\n },\n { mask: '+855-dd-ddd-ddd', cc: 'KH', name_en: 'Cambodia', desc_en: '', name_ru: 'Камбоджа', desc_ru: '' },\n { mask: '+686-dd-ddd', cc: 'KI', name_en: 'Kiribati', desc_en: '', name_ru: 'Кирибати', desc_ru: '' },\n { mask: '+269-dd-ddddd', cc: 'KM', name_en: 'Comoros', desc_en: '', name_ru: 'Коморы', desc_ru: '' },\n {\n mask: '+1 (869) ddd-dddd',\n cc: 'KN',\n name_en: 'Saint Kitts & Nevis',\n desc_en: '',\n name_ru: 'Сент-Китс и Невис',\n desc_ru: ''\n },\n {\n mask: '+850-191-ddd-dddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: 'mobile',\n name_ru: 'Корейская НДР ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+850-dd-ddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-ddd-dddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-ddd-ddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-dddd-dddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+850-dddd-ddddddddddddd',\n cc: 'KP',\n name_en: 'DPR Korea (North) ',\n desc_en: '',\n name_ru: 'Корейская НДР',\n desc_ru: ''\n },\n {\n mask: '+82-dd-ddd-dddd',\n cc: 'KR',\n name_en: 'Korea (South) ',\n desc_en: '',\n name_ru: 'Респ. Корея',\n desc_ru: ''\n },\n { mask: '+965-dddd-dddd', cc: 'KW', name_en: 'Kuwait', desc_en: '', name_ru: 'Кувейт', desc_ru: '' },\n {\n mask: '+1 (345) ddd-dddd',\n cc: 'KY',\n name_en: 'Cayman Islands',\n desc_en: '',\n name_ru: 'Каймановы острова',\n desc_ru: ''\n },\n {\n mask: '+7 (6dd) ddd-dd-dd',\n cc: 'KZ',\n name_en: 'Kazakhstan',\n desc_en: '',\n name_ru: 'Казахстан',\n desc_ru: ''\n },\n {\n mask: '+7 (7dd) ddd-dd-dd',\n cc: 'KZ',\n name_en: 'Kazakhstan',\n desc_en: '',\n name_ru: 'Казахстан',\n desc_ru: ''\n },\n {\n mask: '+856 (20dd) ddd-ddd',\n cc: 'LA',\n name_en: 'Laos ',\n desc_en: 'mobile',\n name_ru: 'Лаос ',\n desc_ru: 'мобильные'\n },\n { mask: '+856-dd-ddd-ddd', cc: 'LA', name_en: 'Laos', desc_en: '', name_ru: 'Лаос', desc_ru: '' },\n {\n mask: '+961-dd-ddd-ddd',\n cc: 'LB',\n name_en: 'Lebanon ',\n desc_en: 'mobile',\n name_ru: 'Ливан ',\n desc_ru: 'мобильные'\n },\n { mask: '+961-d-ddd-ddd', cc: 'LB', name_en: 'Lebanon', desc_en: '', name_ru: 'Ливан', desc_ru: '' },\n {\n mask: '+1 (758) ddd-dddd',\n cc: 'LC',\n name_en: 'Saint Lucia',\n desc_en: '',\n name_ru: 'Сент-Люсия',\n desc_ru: ''\n },\n {\n mask: '+423 (ddd) ddd-dddd',\n cc: 'LI',\n name_en: 'Liechtenstein',\n desc_en: '',\n name_ru: 'Лихтенштейн',\n desc_ru: ''\n },\n { mask: '+94-dd-ddd-dddd', cc: 'LK', name_en: 'Sri Lanka', desc_en: '', name_ru: 'Шри-Ланка', desc_ru: '' },\n { mask: '+231-dd-ddd-ddd', cc: 'LR', name_en: 'Liberia', desc_en: '', name_ru: 'Либерия', desc_ru: '' },\n { mask: '+266-d-ddd-dddd', cc: 'LS', name_en: 'Lesotho', desc_en: '', name_ru: 'Лесото', desc_ru: '' },\n { mask: '+370 (ddd) dd-ddd', cc: 'LT', name_en: 'Lithuania', desc_en: '', name_ru: 'Литва', desc_ru: '' },\n {\n mask: '+352 (ddd) ddd-ddd',\n cc: 'LU',\n name_en: 'Luxembourg',\n desc_en: '',\n name_ru: 'Люксембург',\n desc_ru: ''\n },\n { mask: '+371-dd-ddd-ddd', cc: 'LV', name_en: 'Latvia', desc_en: '', name_ru: 'Латвия', desc_ru: '' },\n { mask: '+218-dd-ddd-ddd', cc: 'LY', name_en: 'Libya', desc_en: '', name_ru: 'Ливия', desc_ru: '' },\n {\n mask: '+218-21-ddd-dddd',\n cc: 'LY',\n name_en: 'Libya',\n desc_en: 'Tripoli',\n name_ru: 'Ливия',\n desc_ru: 'Триполи'\n },\n { mask: '+212-dd-dddd-ddd', cc: 'MA', name_en: 'Morocco', desc_en: '', name_ru: 'Марокко', desc_ru: '' },\n { mask: '+377 (ddd) ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\n { mask: '+377-dd-ddd-ddd', cc: 'MC', name_en: 'Monaco', desc_en: '', name_ru: 'Монако', desc_ru: '' },\n { mask: '+373-dddd-dddd', cc: 'MD', name_en: 'Moldova', desc_en: '', name_ru: 'Молдова', desc_ru: '' },\n {\n mask: '+382-dd-ddd-ddd',\n cc: 'ME',\n name_en: 'Montenegro',\n desc_en: '',\n name_ru: 'Черногория',\n desc_ru: ''\n },\n {\n mask: '+261-dd-dd-ddddd',\n cc: 'MG',\n name_en: 'Madagascar',\n desc_en: '',\n name_ru: 'Мадагаскар',\n desc_ru: ''\n },\n {\n mask: '+692-ddd-dddd',\n cc: 'MH',\n name_en: 'Marshall Islands',\n desc_en: '',\n name_ru: 'Маршалловы Острова',\n desc_ru: ''\n },\n {\n mask: '+389-dd-ddd-ddd',\n cc: 'MK',\n name_en: 'Republic of Macedonia',\n desc_en: '',\n name_ru: 'Респ. Македония',\n desc_ru: ''\n },\n { mask: '+223-dd-dd-dddd', cc: 'ML', name_en: 'Mali', desc_en: '', name_ru: 'Мали', desc_ru: '' },\n {\n mask: '+95-dd-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n {\n mask: '+95-d-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n {\n mask: '+95-ddd-ddd',\n cc: 'MM',\n name_en: 'Burma (Myanmar) ',\n desc_en: '',\n name_ru: 'Бирма (Мьянма) ',\n desc_ru: ''\n },\n { mask: '+976-dd-dd-dddd', cc: 'MN', name_en: 'Mongolia', desc_en: '', name_ru: 'Монголия', desc_ru: '' },\n { mask: '+853-dddd-dddd', cc: 'MO', name_en: 'Macau', desc_en: '', name_ru: 'Макао', desc_ru: '' },\n {\n mask: '+1 (670) ddd-dddd',\n cc: 'MP',\n name_en: 'Northern Mariana Islands',\n desc_en: '',\n name_ru: 'Северные Марианские острова Сайпан',\n desc_ru: ''\n },\n {\n mask: '+596 (ddd) dd-dd-dd',\n cc: 'MQ',\n name_en: 'Martinique',\n desc_en: '',\n name_ru: 'Мартиника',\n desc_ru: ''\n },\n {\n mask: '+222-dd-dd-dddd',\n cc: 'MR',\n name_en: 'Mauritania',\n desc_en: '',\n name_ru: 'Мавритания',\n desc_ru: ''\n },\n {\n mask: '+1 (664) ddd-dddd',\n cc: 'MS',\n name_en: 'Montserrat',\n desc_en: '',\n name_ru: 'Монтсеррат',\n desc_ru: ''\n },\n { mask: '+356-dddd-dddd', cc: 'MT', name_en: 'Malta', desc_en: '', name_ru: 'Мальта', desc_ru: '' },\n { mask: '+230-ddd-dddd', cc: 'MU', name_en: 'Mauritius', desc_en: '', name_ru: 'Маврикий', desc_ru: '' },\n {\n mask: '+960-ddd-dddd',\n cc: 'MV',\n name_en: 'Maldives',\n desc_en: '',\n name_ru: 'Мальдивские острова',\n desc_ru: ''\n },\n {\n mask: '+265-1-ddd-ddd',\n cc: 'MW',\n name_en: 'Malawi',\n desc_en: 'Telecom Ltd',\n name_ru: 'Малави',\n desc_ru: 'Telecom Ltd'\n },\n { mask: '+265-d-dddd-dddd', cc: 'MW', name_en: 'Malawi', desc_en: '', name_ru: 'Малави', desc_ru: '' },\n { mask: '+52 (ddd) ddd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\n { mask: '+52-dd-dd-dddd', cc: 'MX', name_en: 'Mexico', desc_en: '', name_ru: 'Мексика', desc_ru: '' },\n { mask: '+60 (ddd) ddd-dddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n {\n mask: '+60-ddd-ddd-ddd',\n cc: 'MY',\n name_en: 'Malaysia ',\n desc_en: 'mobile',\n name_ru: 'Малайзия ',\n desc_ru: 'мобильные'\n },\n { mask: '+60-dd-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n { mask: '+60-d-ddd-ddd', cc: 'MY', name_en: 'Malaysia', desc_en: '', name_ru: 'Малайзия', desc_ru: '' },\n { mask: '+258-dd-ddd-ddd', cc: 'MZ', name_en: 'Mozambique', desc_en: '', name_ru: 'Мозамбик', desc_ru: '' },\n { mask: '+264-dd-ddd-dddd', cc: 'NA', name_en: 'Namibia', desc_en: '', name_ru: 'Намибия', desc_ru: '' },\n {\n mask: '+687-dd-dddd',\n cc: 'NC',\n name_en: 'New Caledonia',\n desc_en: '',\n name_ru: 'Новая Каледония',\n desc_ru: ''\n },\n { mask: '+227-dd-dd-dddd', cc: 'NE', name_en: 'Niger', desc_en: '', name_ru: 'Нигер', desc_ru: '' },\n {\n mask: '+672-3dd-ddd',\n cc: 'NF',\n name_en: 'Norfolk Island',\n desc_en: '',\n name_ru: 'Норфолк (остров) ',\n desc_ru: ''\n },\n { mask: '+234 (ddd) ddd-dddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n { mask: '+234-dd-ddd-ddd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n { mask: '+234-dd-ddd-dd', cc: 'NG', name_en: 'Nigeria', desc_en: '', name_ru: 'Нигерия', desc_ru: '' },\n {\n mask: '+234 (ddd) ddd-dddd',\n cc: 'NG',\n name_en: 'Nigeria ',\n desc_en: 'mobile',\n name_ru: 'Нигерия ',\n desc_ru: 'мобильные'\n },\n { mask: '+505-dddd-dddd', cc: 'NI', name_en: 'Nicaragua', desc_en: '', name_ru: 'Никарагуа', desc_ru: '' },\n {\n mask: '+31-dd-ddd-dddd',\n cc: 'NL',\n name_en: 'Netherlands',\n desc_en: '',\n name_ru: 'Нидерланды',\n desc_ru: ''\n },\n { mask: '+47 (ddd) dd-ddd', cc: 'NO', name_en: 'Norway', desc_en: '', name_ru: 'Норвегия', desc_ru: '' },\n { mask: '+977-dd-ddd-ddd', cc: 'NP', name_en: 'Nepal', desc_en: '', name_ru: 'Непал', desc_ru: '' },\n { mask: '+674-ddd-dddd', cc: 'NR', name_en: 'Nauru', desc_en: '', name_ru: 'Науру', desc_ru: '' },\n { mask: '+683-dddd', cc: 'NU', name_en: 'Niue', desc_en: '', name_ru: 'Ниуэ', desc_ru: '' },\n {\n mask: '+64 (ddd) ddd-ddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n {\n mask: '+64-dd-ddd-ddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n {\n mask: '+64 (ddd) ddd-dddd',\n cc: 'NZ',\n name_en: 'New Zealand',\n desc_en: '',\n name_ru: 'Новая Зеландия',\n desc_ru: ''\n },\n { mask: '+968-dd-ddd-ddd', cc: 'OM', name_en: 'Oman', desc_en: '', name_ru: 'Оман', desc_ru: '' },\n { mask: '+507-ddd-dddd', cc: 'PA', name_en: 'Panama', desc_en: '', name_ru: 'Панама', desc_ru: '' },\n { mask: '+51 (ddd) ddd-ddd', cc: 'PE', name_en: 'Peru', desc_en: '', name_ru: 'Перу', desc_ru: '' },\n {\n mask: '+689-dd-dd-dd',\n cc: 'PF',\n name_en: 'French Polynesia',\n desc_en: '',\n name_ru: 'Французская Полинезия (Таити) ',\n desc_ru: ''\n },\n {\n mask: '+675 (ddd) dd-ddd',\n cc: 'PG',\n name_en: 'Papua New Guinea',\n desc_en: '',\n name_ru: 'Папуа-Новая Гвинея',\n desc_ru: ''\n },\n {\n mask: '+63 (ddd) ddd-dddd',\n cc: 'PH',\n name_en: 'Philippines',\n desc_en: '',\n name_ru: 'Филиппины',\n desc_ru: ''\n },\n { mask: '+92 (ddd) ddd-dddd', cc: 'PK', name_en: 'Pakistan', desc_en: '', name_ru: 'Пакистан', desc_ru: '' },\n { mask: '+48 (ddd) ddd-ddd', cc: 'PL', name_en: 'Poland', desc_en: '', name_ru: 'Польша', desc_ru: '' },\n {\n mask: '+970-dd-ddd-dddd',\n cc: 'PS',\n name_en: 'Palestine',\n desc_en: '',\n name_ru: 'Палестина',\n desc_ru: ''\n },\n {\n mask: '+351-dd-ddd-dddd',\n cc: 'PT',\n name_en: 'Portugal',\n desc_en: '',\n name_ru: 'Португалия',\n desc_ru: ''\n },\n { mask: '+680-ddd-dddd', cc: 'PW', name_en: 'Palau', desc_en: '', name_ru: 'Палау', desc_ru: '' },\n { mask: '+595 (ddd) ddd-ddd', cc: 'PY', name_en: 'Paraguay', desc_en: '', name_ru: 'Парагвай', desc_ru: '' },\n { mask: '+974-dddd-dddd', cc: 'QA', name_en: 'Qatar', desc_en: '', name_ru: 'Катар', desc_ru: '' },\n { mask: '+262-ddddd-dddd', cc: 'RE', name_en: 'Reunion', desc_en: '', name_ru: 'Реюньон', desc_ru: '' },\n { mask: '+40-dd-ddd-dddd', cc: 'RO', name_en: 'Romania', desc_en: '', name_ru: 'Румыния', desc_ru: '' },\n { mask: '+381-dd-ddd-dddd', cc: 'RS', name_en: 'Serbia', desc_en: '', name_ru: 'Сербия', desc_ru: '' },\n { mask: '+7 (ddd) ddd-dd-dd', cc: 'RU', name_en: 'Russia', desc_en: '', name_ru: 'Россия', desc_ru: '' },\n { mask: '+250 (ddd) ddd-ddd', cc: 'RW', name_en: 'Rwanda', desc_en: '', name_ru: 'Руанда', desc_ru: '' },\n {\n mask: '+966-5-dddd-dddd',\n cc: 'SA',\n name_en: 'Saudi Arabia ',\n desc_en: 'mobile',\n name_ru: 'Саудовская Аравия ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+966-d-ddd-dddd',\n cc: 'SA',\n name_en: 'Saudi Arabia',\n desc_en: '',\n name_ru: 'Саудовская Аравия',\n desc_ru: ''\n },\n {\n mask: '+677-ddd-dddd',\n cc: 'SB',\n name_en: 'Solomon Islands ',\n desc_en: 'mobile',\n name_ru: 'Соломоновы Острова ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+677-ddddd',\n cc: 'SB',\n name_en: 'Solomon Islands',\n desc_en: '',\n name_ru: 'Соломоновы Острова',\n desc_ru: ''\n },\n { mask: '+248-d-ddd-ddd', cc: 'SC', name_en: 'Seychelles', desc_en: '', name_ru: 'Сейшелы', desc_ru: '' },\n { mask: '+249-dd-ddd-dddd', cc: 'SD', name_en: 'Sudan', desc_en: '', name_ru: 'Судан', desc_ru: '' },\n { mask: '+46-dd-ddd-dddd', cc: 'SE', name_en: 'Sweden', desc_en: '', name_ru: 'Швеция', desc_ru: '' },\n { mask: '+65-dddd-dddd', cc: 'SG', name_en: 'Singapore', desc_en: '', name_ru: 'Сингапур', desc_ru: '' },\n {\n mask: '+290-dddd',\n cc: 'SH',\n name_en: 'Saint Helena',\n desc_en: '',\n name_ru: 'Остров Святой Елены',\n desc_ru: ''\n },\n {\n mask: '+290-dddd',\n cc: 'SH',\n name_en: 'Tristan da Cunha',\n desc_en: '',\n name_ru: 'Тристан-да-Кунья',\n desc_ru: ''\n },\n { mask: '+386-dd-ddd-ddd', cc: 'SI', name_en: 'Slovenia', desc_en: '', name_ru: 'Словения', desc_ru: '' },\n { mask: '+421 (ddd) ddd-ddd', cc: 'SK', name_en: 'Slovakia', desc_en: '', name_ru: 'Словакия', desc_ru: '' },\n {\n mask: '+232-dd-dddddd',\n cc: 'SL',\n name_en: 'Sierra Leone',\n desc_en: '',\n name_ru: 'Сьерра-Леоне',\n desc_ru: ''\n },\n {\n mask: '+378-dddd-dddddd',\n cc: 'SM',\n name_en: 'San Marino',\n desc_en: '',\n name_ru: 'Сан-Марино',\n desc_ru: ''\n },\n { mask: '+221-dd-ddd-dddd', cc: 'SN', name_en: 'Senegal', desc_en: '', name_ru: 'Сенегал', desc_ru: '' },\n { mask: '+252-dd-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\n { mask: '+252-d-ddd-ddd', cc: 'SO', name_en: 'Somalia', desc_en: '', name_ru: 'Сомали', desc_ru: '' },\n {\n mask: '+252-d-ddd-ddd',\n cc: 'SO',\n name_en: 'Somalia ',\n desc_en: 'mobile',\n name_ru: 'Сомали ',\n desc_ru: 'мобильные'\n },\n {\n mask: '+597-ddd-dddd',\n cc: 'SR',\n name_en: 'Suriname ',\n desc_en: 'mobile',\n name_ru: 'Суринам ',\n desc_ru: 'мобильные'\n },\n { mask: '+597-ddd-ddd', cc: 'SR', name_en: 'Suriname', desc_en: '', name_ru: 'Суринам', desc_ru: '' },\n {\n mask: '+211-dd-ddd-dddd',\n cc: 'SS',\n name_en: 'South Sudan',\n desc_en: '',\n name_ru: 'Южный Судан',\n desc_ru: ''\n },\n {\n mask: '+239-dd-ddddd',\n cc: 'ST',\n name_en: 'Sao Tome and Principe',\n desc_en: '',\n name_ru: 'Сан-Томе и Принсипи',\n desc_ru: ''\n },\n {\n mask: '+503-dd-dd-dddd',\n cc: 'SV',\n name_en: 'El Salvador',\n desc_en: '',\n name_ru: 'Сальвадор',\n desc_ru: ''\n },\n {\n mask: '+1 (721) ddd-dddd',\n cc: 'SX',\n name_en: 'Sint Maarten',\n desc_en: '',\n name_ru: 'Синт-Маартен',\n desc_ru: ''\n },\n {\n mask: '+963-dd-dddd-ddd',\n cc: 'SY',\n name_en: 'Syrian Arab Republic',\n desc_en: '',\n name_ru: 'Сирийская арабская республика',\n desc_ru: ''\n },\n { mask: '+268-dd-dd-dddd', cc: 'SZ', name_en: 'Swaziland', desc_en: '', name_ru: 'Свазиленд', desc_ru: '' },\n {\n mask: '+1 (649) ddd-dddd',\n cc: 'TC',\n name_en: 'Turks & Caicos',\n desc_en: '',\n name_ru: 'Тёркс и Кайкос',\n desc_ru: ''\n },\n { mask: '+235-dd-dd-dd-dd', cc: 'TD', name_en: 'Chad', desc_en: '', name_ru: 'Чад', desc_ru: '' },\n { mask: '+228-dd-ddd-ddd', cc: 'TG', name_en: 'Togo', desc_en: '', name_ru: 'Того', desc_ru: '' },\n {\n mask: '+66-dd-ddd-dddd',\n cc: 'TH',\n name_en: 'Thailand ',\n desc_en: 'mobile',\n name_ru: 'Таиланд ',\n desc_ru: 'мобильные'\n },\n { mask: '+66-dd-ddd-ddd', cc: 'TH', name_en: 'Thailand', desc_en: '', name_ru: 'Таиланд', desc_ru: '' },\n {\n mask: '+992-dd-ddd-dddd',\n cc: 'TJ',\n name_en: 'Tajikistan',\n desc_en: '',\n name_ru: 'Таджикистан',\n desc_ru: ''\n },\n { mask: '+690-dddd', cc: 'TK', name_en: 'Tokelau', desc_en: '', name_ru: 'Токелау', desc_ru: '' },\n {\n mask: '+670-ddd-dddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: '',\n name_ru: 'Восточный Тимор',\n desc_ru: ''\n },\n {\n mask: '+670-77d-ddddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: 'Timor Telecom',\n name_ru: 'Восточный Тимор',\n desc_ru: 'Timor Telecom'\n },\n {\n mask: '+670-78d-ddddd',\n cc: 'TL',\n name_en: 'East Timor',\n desc_en: 'Timor Telecom',\n name_ru: 'Восточный Тимор',\n desc_ru: 'Timor Telecom'\n },\n {\n mask: '+993-d-ddd-dddd',\n cc: 'TM',\n name_en: 'Turkmenistan',\n desc_en: '',\n name_ru: 'Туркменистан',\n desc_ru: ''\n },\n { mask: '+216-dd-ddd-ddd', cc: 'TN', name_en: 'Tunisia', desc_en: '', name_ru: 'Тунис', desc_ru: '' },\n { mask: '+676-ddddd', cc: 'TO', name_en: 'Tonga', desc_en: '', name_ru: 'Тонга', desc_ru: '' },\n { mask: '+90 (ddd) ddd-dddd', cc: 'TR', name_en: 'Turkey', desc_en: '', name_ru: 'Турция', desc_ru: '' },\n {\n mask: '+1 (868) ddd-dddd',\n cc: 'TT',\n name_en: 'Trinidad & Tobago',\n desc_en: '',\n name_ru: 'Тринидад и Тобаго',\n desc_ru: ''\n },\n {\n mask: '+688-90dddd',\n cc: 'TV',\n name_en: 'Tuvalu ',\n desc_en: 'mobile',\n name_ru: 'Тувалу ',\n desc_ru: 'мобильные'\n },\n { mask: '+688-2dddd', cc: 'TV', name_en: 'Tuvalu', desc_en: '', name_ru: 'Тувалу', desc_ru: '' },\n { mask: '+886-d-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\n { mask: '+886-dddd-dddd', cc: 'TW', name_en: 'Taiwan', desc_en: '', name_ru: 'Тайвань', desc_ru: '' },\n { mask: '+255-dd-ddd-dddd', cc: 'TZ', name_en: 'Tanzania', desc_en: '', name_ru: 'Танзания', desc_ru: '' },\n { mask: '+380 (dd) ddd-dd-dd', cc: 'UA', name_en: 'Ukraine', desc_en: '', name_ru: 'Украина', desc_ru: '' },\n { mask: '+256 (ddd) ddd-ddd', cc: 'UG', name_en: 'Uganda', desc_en: '', name_ru: 'Уганда', desc_ru: '' },\n {\n mask: '+44-dd-dddd-dddd',\n cc: 'UK',\n name_en: 'United Kingdom',\n desc_en: '',\n name_ru: 'Великобритания',\n desc_ru: ''\n },\n { mask: '+598-d-ddd-dd-dd', cc: 'UY', name_en: 'Uruguay', desc_en: '', name_ru: 'Уругвай', desc_ru: '' },\n {\n mask: '+998-dd-ddd-dddd',\n cc: 'UZ',\n name_en: 'Uzbekistan',\n desc_en: '',\n name_ru: 'Узбекистан',\n desc_ru: ''\n },\n {\n mask: '+39-6-698-ddddd',\n cc: 'VA',\n name_en: 'Vatican City',\n desc_en: '',\n name_ru: 'Ватикан',\n desc_ru: ''\n },\n {\n mask: '+1 (784) ddd-dddd',\n cc: 'VC',\n name_en: 'Saint Vincent & the Grenadines',\n desc_en: '',\n name_ru: 'Сент-Винсент и Гренадины',\n desc_ru: ''\n },\n {\n mask: '+58 (ddd) ddd-dddd',\n cc: 'VE',\n name_en: 'Venezuela',\n desc_en: '',\n name_ru: 'Венесуэла',\n desc_ru: ''\n },\n {\n mask: '+1 (284) ddd-dddd',\n cc: 'VG',\n name_en: 'British Virgin Islands',\n desc_en: '',\n name_ru: 'Британские Виргинские острова',\n desc_ru: ''\n },\n {\n mask: '+1 (340) ddd-dddd',\n cc: 'VI',\n name_en: 'US Virgin Islands',\n desc_en: '',\n name_ru: 'Американские Виргинские острова',\n desc_ru: ''\n },\n { mask: '+84-dd-dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\n { mask: '+84 (ddd) dddd-ddd', cc: 'VN', name_en: 'Vietnam', desc_en: '', name_ru: 'Вьетнам', desc_ru: '' },\n {\n mask: '+678-dd-ddddd',\n cc: 'VU',\n name_en: 'Vanuatu ',\n desc_en: 'mobile',\n name_ru: 'Вануату ',\n desc_ru: 'мобильные'\n },\n { mask: '+678-ddddd', cc: 'VU', name_en: 'Vanuatu', desc_en: '', name_ru: 'Вануату', desc_ru: '' },\n {\n mask: '+681-dd-dddd',\n cc: 'WF',\n name_en: 'Wallis and Futuna',\n desc_en: '',\n name_ru: 'Уоллис и Футуна',\n desc_ru: ''\n },\n { mask: '+685-dd-dddd', cc: 'WS', name_en: 'Samoa', desc_en: '', name_ru: 'Самоа', desc_ru: '' },\n {\n mask: '+967-ddd-ddd-ddd',\n cc: 'YE',\n name_en: 'Yemen ',\n desc_en: 'mobile',\n name_ru: 'Йемен ',\n desc_ru: 'мобильные'\n },\n { mask: '+967-d-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\n { mask: '+967-dd-ddd-ddd', cc: 'YE', name_en: 'Yemen', desc_en: '', name_ru: 'Йемен', desc_ru: '' },\n {\n mask: '+27-dd-ddd-dddd',\n cc: 'ZA',\n name_en: 'South Africa',\n desc_en: '',\n name_ru: 'Южно-Африканская Респ.',\n desc_ru: ''\n },\n { mask: '+260-dd-ddd-dddd', cc: 'ZM', name_en: 'Zambia', desc_en: '', name_ru: 'Замбия', desc_ru: '' },\n { mask: '+263-d-dddddd', cc: 'ZW', name_en: 'Zimbabwe', desc_en: '', name_ru: 'Зимбабве', desc_ru: '' },\n {\n mask: '+1 (ddd) ddd-dddd',\n cc: 'CA',\n name_en: 'Canada',\n desc_en: '',\n name_ru: 'Канада',\n desc_ru: ''\n },\n {\n mask: '+1 (ddd) ddd-dddd',\n cc: 'US',\n name_en: 'USA',\n desc_en: '',\n name_ru: 'США',\n desc_ru: ''\n }\n]\n .map(m => m.mask)\n .sort((a, b) => {\n a = removeSpecSymbols(a);\n b = removeSpecSymbols(b)\n return a > b ? 1 : (a === b ? 0 : -1);\n });\n","import { inject, Injectable } from '@angular/core';\nimport { NgxMaskService } from 'ngx-mask';\nimport { PaymentField } from '../pages/components/constructor-form/models';\nimport { PHONE_MASKS, removeSpecSymbols } from './phone-codes';\n\nexport enum MASKS {\n CPF = 'CPF',\n CPF_CNPJ = 'CPF_CNPJ',\n PHONE = 'PHONE',\n CI = 'CI',\n CURP = 'CURP',\n CUIT_DNI = 'CUIT_DNI',\n CC = 'CC'\n}\n\nexport const INITIAL_PHONE_MASK = '+D';\nexport const PHONE_MASK_PATTERNS = {\n 'D': {\n pattern: /\\d/\n },\n '9': {\n pattern: /\\d/,\n optional: true\n }\n};\n\n\n@Injectable()\nexport class MaskResolver {\n private maskService = inject(NgxMaskService);\n\n constructor() {\n }\n\n getMaskPattern(mask: string, value?: string) {\n switch (mask) {\n case MASKS.PHONE:\n return (...args) => this.calcMask(...args);\n case MASKS.CPF_CNPJ:\n if (value?.length > 11) {\n return '00.000.000/0000-00';\n }\n return '000.000.000-009';\n case MASKS.CI:\n return '0000000000';\n case MASKS.CURP:\n return 'SSSS000000SSSSSS00';\n case MASKS.CUIT_DNI:\n return '00-00000000-0||00-000-000';\n case MASKS.CC:\n return '0000000000000000';\n case MASKS.CPF:\n return '000.000.000-00';\n default:\n return mask;\n }\n }\n\n getMaskByValue(mask: string, value?: string) {\n const maskValue = this.getMaskPattern(mask, value);\n if (typeof maskValue === 'function') {\n return maskValue.call(null, value) || null;\n } else {\n return maskValue || null;\n }\n }\n\n getPatterns(config: PaymentField) {\n if (config?.mask === MASKS.PHONE) {\n return PHONE_MASK_PATTERNS;\n }\n if (config?.maskPatterns) {\n return config?.maskPatterns;\n }\n return this.maskService.patterns;\n }\n\n getSpecialCharacters(config: PaymentField) {\n return config?.specialCharacters || this.maskService.specialCharacters;\n }\n\n\n private calcMask(value?: string) {\n let mask = INITIAL_PHONE_MASK\n if (value) {\n const valueArray = Array.from(removeSpecSymbols(value));\n let masks: string[] = PHONE_MASKS;\n for (let sIndex = 0; sIndex < valueArray.length; sIndex++) {\n const s = valueArray[sIndex];\n const filteredMasks = masks.filter((m) => {\n const maskValue = removeSpecSymbols(m);\n const maskSymbol = maskValue[sIndex];\n if (/\\d/.test(maskSymbol)) {\n return maskSymbol === s;\n }\n return !!maskSymbol;\n });\n if (filteredMasks.length > 0) {\n masks = filteredMasks;\n } else {\n break;\n }\n }\n // Candidate of mask\n mask = masks[0];\n\n // Calculation of the additional numbers\n let masksNormalized: string[] = masks.map(m => removeSpecSymbols(m));\n let maskNormalized = removeSpecSymbols(mask);\n const optionalSymbols = masksNormalized.filter(s => s.startsWith(maskNormalized) && s.length > maskNormalized.length).length;\n if (optionalSymbols) {\n mask += Array(optionalSymbols).fill('[d]').join('');\n }\n }\n mask = mask.replace(/[d\\d]/g, 'D').replace(/\\[D]/g, '9');\n return mask;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nfunction sortByTabIndex(list: HTMLElement[]): HTMLElement[] {\n return list.sort((a, b) => {\n const index1 = +a.getAttribute('tabindex');\n const index2 = +b.getAttribute('tabindex');\n if (index1<index2) {\n return -1;\n }\n if (index1>index2) {\n return 1;\n }\n return 0;\n });\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusHandler {\n static document: Document;\n private static get focusableList(): HTMLElement[] {\n return sortByTabIndex(\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]'))\n );\n }\n private static get focusableEnabledList(): HTMLElement[] {\n return sortByTabIndex(\n Array.from(document.querySelectorAll<HTMLElement>('[tabindex]:not([class*=\"--disabled\"])'))\n );\n }\n static previous(ev?: Event) {\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\n const index = focusedElement?.getAttribute('tabindex');\n const focusableList = this.focusableList;\n if (index === null) {\n focusableList.pop()?.focus();\n ev?.preventDefault();\n return;\n }\n for (let i=0; i < focusableList.length; i++) {\n const element = focusableList[i];\n if (element === focusedElement) {\n const prev = focusableList[i - 1];\n if (prev) {\n ev?.preventDefault();\n prev.focus();\n }\n return;\n }\n }\n }\n static next(ev?: Event) {\n const focusedElement: HTMLElement = document.activeElement as HTMLElement;\n const index = focusedElement?.getAttribute('tabindex');\n const focusableList = this.focusableList;\n if (index === null) {\n focusableList.shift()?.focus();\n ev?.preventDefault();\n return;\n }\n for (let i=0; i < focusableList.length; i++) {\n const element = focusableList[i];\n if (element === focusedElement) {\n const next = focusableList[i + 1];\n if (next) {\n ev?.preventDefault();\n next.focus();\n }\n return;\n }\n }\n }\n static previousEnabled(ev?: Event) {\n this.previous.call({\n focusableList: this.focusableEnabledList\n }, ev);\n }\n static nextEnabled(ev?: Event) {\n this.next.call({\n focusableList: this.focusableEnabledList\n }, ev);\n }\n\n constructor() {\n FocusHandler.document = inject(DOCUMENT);\n }\n}\n","export const isObjectTheSame = (object1, object2) => {\n if (object1 === object2) {\n return true;\n }\n if (!object1 && object2 || object1 && !object2) {\n return false;\n }\n const objKeys1 = Object.keys(object1);\n const objKeys2 = Object.keys(object2);\n\n if (objKeys1.length !== objKeys2.length) return false;\n\n for (var key of objKeys1) {\n const value1 = object1[key];\n const value2 = object2[key];\n\n const isObjects = isObject(value1) && isObject(value2);\n\n if ((isObjects && !isObjectTheSame(value1, value2)) ||\n (!isObjects && value1 !== value2)\n ) {\n return false;\n }\n }\n return true;\n};\n\nexport const isObject = (object) => {\n return object != null && typeof object === \"object\";\n};\n","export const warningConsole = () => {\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;\");\n console.log(\"\\n\");\n console.log(\"%cЭта часть окна предназначена для разработчиков. Пожалуйста не вставляйте сюда ничего! Особенно текст который \\\"якобы\\\" поможет увеличить баланс вашего кошелька! Вас обманут!\", \"font-family:Whitney,Helvetica,Arial,sans-serif;font-size:25px;\");\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;\");\n console.log(\"\\n\");\n}","export enum PaymentFieldTypeEnum {\n Amount = 'amount',\n Email = 'email',\n Text = 'text',\n Number = 'number',\n Date = 'date',\n Select = 'select',\n Iframe = 'iframe'\n}\n","export enum CollectionType {\n Banks = 1,\n Documents = 2\n}\n","import { I18N_KEY } from '../../../../i18n';\nimport { MASKS } from '../../../../helpers';\nimport { PaymentFieldTypeEnum } from './payment-field-type.enum';\nimport { PaymentField } from './payment-field';\nimport momentjs from 'moment-timezone';\nimport { CollectionType } from './collection-type.enum';\n\nconst PHONE_FIELD = {\n name: 'add_phone_number',\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_PHONE,\n label: I18N_KEY.CONSTRUCTOR_LABEL_PHONE,\n mask: MASKS.PHONE,\n maskValidation: true,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PHONE,\n require: true,\n type: PaymentFieldTypeEnum.Text\n};\n\nconst EMAIL_FIELD = {\n name: 'add_email',\n label: I18N_KEY.CONSTRUCTOR_LABEL_EMAIL,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_EMAIL,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Email\n};\n\nconst castWallet = (config) => {\n return {\n ...config,\n ...{\n name: 'wallet',\n wallet: true\n }\n }\n}\n\nexport const FIELD_TEMPLATE: {[key: string]: PaymentField} = {\n AMOUNT: {\n name: 'amount',\n label: I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT,\n pattern: /^\\d+\\.?\\d{0,2}/,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_AMOUNT,\n mask: 'separator.2',\n require: true,\n type: PaymentFieldTypeEnum.Amount\n },\n CARD_TERMINAL: {\n name: 'card_terminal',\n type: PaymentFieldTypeEnum.Iframe\n },\n EMAIL: EMAIL_FIELD,\n EMAIL_WALLET: castWallet(EMAIL_FIELD),\n FIRST_NAME: {\n name: 'add_first_name',\n label: I18N_KEY.CONSTRUCTOR_LABEL_FIRSTNAME,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_FIRSTNAME,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n SECOND_NAME: {\n name: 'add_last_name',\n label: I18N_KEY.CONSTRUCTOR_LABEL_LASTNAME,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_LASTNAME,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n DATE_OF_BIRTH: {\n name: 'add_day_of_birth',\n label: I18N_KEY.CONSTRUCTOR_LABEL_DATEBIRTH,\n placeholder: '1993-04-20',\n require: true,\n mask: '0000-00-00',\n type: PaymentFieldTypeEnum.Date,\n options: {\n startCalendarDate: momentjs().subtract(18, 'years')\n }\n },\n ZIP: {\n name: 'add_zip',\n label: I18N_KEY.CONSTRUCTOR_LABEL_ZIP,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_ZIP,\n pattern: /\\d{6}/,\n mask: '000000',\n maskValidation: true,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n PHONE: PHONE_FIELD,\n PHONE_WALLET: castWallet(PHONE_FIELD),\n DOCUMENT_TYPE: {\n name: 'add_document_type',\n label: I18N_KEY.CONSTRUCTOR_LABEL_TYPEDOCUMENT,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_TYPEDOCUMENT,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Select,\n options: {\n collection: CollectionType.Documents\n }\n },\n BANK_TYPE: {\n name: 'add_bank_id',\n label: I18N_KEY.CONSTRUCTOR_LABEL_BANK,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_BANK,\n readonly: false,\n require: true,\n type: PaymentFieldTypeEnum.Select,\n options: {\n collection: CollectionType.Banks\n }\n }\n}\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const advcash: PaymentFields = {\n confirmation: '',\n title: 'Advcash',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","export enum TerminalStep {\n Prepare,\n Confirmation,\n Status\n}\n","export { PaymentField } from './payment-field';\nexport { PaymentFieldOptions, PaymentFieldOptionsItem } from './payment-field-options';\nexport { PaymentFields } from './payment-fields';\nexport { TerminalStep } from './terminal-step.enum';\nexport { CollectionType } from './collection-type.enum';\nexport { MASKS } from './../../../../helpers/mask-resolver';\nexport { PaymentFieldTypeEnum } from './payment-field-type.enum';\nexport * from './field-template';\nexport const FORMAT_DATE = 'YYYY-MM-DD';\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const alfabank: PaymentFields = {\n confirmation: '',\n title: 'AlfaClick',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const alipay: PaymentFields = {\n confirmation: '',\n title: 'Alipay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const alipay_plus: PaymentFields = {\n confirmation: '',\n title: 'Alipay Plus',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const applepay: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_APPLEPAY,\n title: 'ApplePay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const argentina_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Argentina',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../field-template';\n\nexport const atf24: PaymentFields = {\n confirmation: '',\n title: 'ATF24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const baloto: PaymentFields = {\n confirmation: '',\n title: 'Baloto',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CC',\n mask: MASKS.CC,\n placeholder: '0000000000000000',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const beeline: PaymentFields = {\n confirmation: '',\n title: 'Beeline',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const blik: PaymentFields = {\n confirmation: '',\n title: 'Blik',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const boleto: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Boleto',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF/CNPJ',\n mask: MASKS.CPF_CNPJ,\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.ZIP\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const brazil_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Brazil',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../index';\n\nexport const card: PaymentFields = {\n confirmation: '',\n title: 'Bank cards',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.CARD_TERMINAL,\n FIELD_TEMPLATE.EMAIL,\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const carga_virtual: PaymentFields = {\n confirmation: '',\n title: 'Carga virtual',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cash: PaymentFields = {\n confirmation: '',\n title: 'Оплата наличными',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const cashtocode: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_CASHTOCODE,\n title: 'CashToCode',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const codi: PaymentFields = {\n confirmation: '',\n title: 'Codi',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const comepay: PaymentFields = {\n confirmation: '',\n title: 'Comepay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup_bank: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay Bank',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const cup_p2p: PaymentFields = {\n confirmation: '',\n title: 'China Union Pay P2P',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const deposit_express: PaymentFields = {\n confirmation: '',\n title: 'Deposit Express',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n placeholder: '000.000.000-00',\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.BANK_TYPE,\n FIELD_TEMPLATE.PHONE\n ]\n};\n","import { PaymentFields } from '../payment-fields';\nimport { FIELD_TEMPLATE } from '../index';\n\n\nexport const direct_banking_europe: PaymentFields = {\n confirmation: '',\n title: 'Direct Banking Europe',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const dotpay: PaymentFields = {\n confirmation: '',\n title: 'Dotpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ecopayz: PaymentFields = {\n confirmation: '',\n title: 'Ecopayz',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const eps: PaymentFields = {\n confirmation: '',\n title: 'Eps',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const giropay: PaymentFields = {\n confirmation: '',\n title: 'Giropay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const gmmoney: PaymentFields = {\n confirmation: '',\n title: 'GM Money',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const internal_gamemoney: PaymentFields = {\n confirmation: '',\n title: 'GM Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const googlepay: PaymentFields = {\n confirmation: '',\n title: 'GooglePay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ideal: PaymentFields = {\n confirmation: '',\n title: 'Ideal',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.BANK_TYPE\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const indonesia_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Indonesia',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const indonesia_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Indonesia',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const jeton: PaymentFields = {\n confirmation: '',\n title: 'Jeton Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const jeton_voucher: PaymentFields = {\n confirmation: '',\n title: 'Jeton Voucher',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const kassa24: PaymentFields = {\n confirmation: '',\n title: 'Kassa24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const link: PaymentFields = {\n confirmation: '',\n title: 'Link',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const local_card_brazil: PaymentFields = {\n confirmation: '',\n title: 'Local Card Brazil',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const local_card_mexico: PaymentFields = {\n confirmation: '',\n title: 'Local Card Mexico',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const loterica: PaymentFields = {\n confirmation: '',\n title: 'Loterica',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF/CNPJ',\n mask: MASKS.CPF_CNPJ,\n placeholder: '000.000.000-00 or 00.000.000/0000-00',\n require: true,\n maskValidation: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.ZIP\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const malaysia_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Malaysia',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const megafon: PaymentFields = {\n confirmation: I18N_KEY.CONSTRUCTOR_MEGAFON_PREPARATION_TEXT,\n title: 'Megafon',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mexico_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Mexico',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const momopay: PaymentFields = {\n confirmation: '',\n title: 'MoMo Wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const moneta: PaymentFields = {\n confirmation: '',\n title: 'Moneta',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mts: PaymentFields = {\n confirmation: '',\n title: 'MTS',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const multibanco: PaymentFields = {\n confirmation: '',\n title: 'Multibanco',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const neosurf: PaymentFields = {\n confirmation: '',\n title: 'Neosurf',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const neteller: PaymentFields = {\n confirmation: '',\n title: 'Neteller',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const nupay: PaymentFields = {\n confirmation: '',\n title: 'NuPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.PHONE,\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const onecard: PaymentFields = {\n confirmation: '',\n title: 'Onecard',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const oxxo: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Oxxo',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CURP',\n mask: MASKS.CURP,\n placeholder: 'ZAZD000000MBSYQN00',\n uppercase: true,\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pagoefectivo: PaymentFields = {\n confirmation: '',\n title: 'Pagoefectivo',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.DOCUMENT_TYPE,\n {\n name: 'add_identify_number',\n label: I18N_KEY.CONSTRUCTOR_LABEL_DOCUMENT,\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_DOCUMENT,\n require: true,\n type: PaymentFieldTypeEnum.Text\n },\n FIELD_TEMPLATE.PHONE\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const pagoexpress: PaymentFields = {\n confirmation: '',\n title: 'Pago Express',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CI',\n placeholder: '0000000000',\n mask: MASKS.CI,\n maskValidation: true,\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pagofacil: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Pagofacil',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const paypal: PaymentFields = {\n confirmation: '',\n title: 'Paypal',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const paysafecard: PaymentFields = {\n confirmation: '',\n title: 'Paysafecard',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\n\nexport const picpay: PaymentFields = {\n confirmation: '',\n title: 'PicPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const pix: PaymentFields = {\n title: 'Pix',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n FIELD_TEMPLATE.DATE_OF_BIRTH,\n {\n name: 'wallet',\n label: 'PixKey',\n placeholder: I18N_KEY.CONSTRUCTOR_PLACEHOLDER_WALLET,\n readonly: false,\n require: true,\n wallet: true,\n type: PaymentFieldTypeEnum.Text\n },\n {\n name: 'add_identify_number',\n label: 'CPF',\n mask: MASKS.CPF,\n maskValidation: true,\n placeholder: '000.000.000-00',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const philippines_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Philippines',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const promptpay: PaymentFields = {\n confirmation: '',\n title: 'Promptpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const promsviaz: PaymentFields = {\n confirmation: '',\n title: 'PSB',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const przelewy24: PaymentFields = {\n confirmation: '',\n title: 'Przelewy24',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const qiwi: PaymentFields = {\n confirmation: '',\n title: 'Qiwi',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const rapid: PaymentFields = {\n confirmation: '',\n title: 'Rapid transfer',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, MASKS, PaymentFields, PaymentFieldTypeEnum } from '../index';\nimport { I18N_KEY } from './../../../../../i18n';\n\nexport const rapipago: PaymentFields = {\n description: I18N_KEY.CONSTRUCTOR_DESCRIPTION_VOUCHER,\n title: 'Rapipago',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME,\n {\n name: 'add_identify_number',\n label: 'DNI/CUIT',\n mask: MASKS.CUIT_DNI,\n maskValidation: true,\n placeholder: '00-00000000-0 or 00-000-000',\n require: true,\n type: PaymentFieldTypeEnum.Text\n }\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const redpagos: PaymentFields = {\n confirmation: '',\n title: 'Alipay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sberbank: PaymentFields = {\n confirmation: '',\n title: 'SberPay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sbp: PaymentFields = {\n confirmation: '',\n title: 'Система быстрых платежей',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sepa: PaymentFields = {\n confirmation: '',\n title: 'SEPA',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const servipag: PaymentFields = {\n confirmation: '',\n title: 'Servipag',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinify: PaymentFields = {\n confirmation: '',\n title: 'Skinify',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinpay: PaymentFields = {\n confirmation: '',\n title: 'Skinpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skinsback: PaymentFields = {\n confirmation: '',\n title: 'Skinsback',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const skrill: PaymentFields = {\n confirmation: '',\n title: 'Skrill',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const sofort: PaymentFields = {\n confirmation: '',\n title: 'Sofort',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const spei: PaymentFields = {\n confirmation: '',\n title: 'Spei',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const store_mexico: PaymentFields = {\n confirmation: '',\n title: 'Convenience store',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tele2: PaymentFields = {\n confirmation: '',\n title: 'Tele2',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const thailand_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Thailand',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const thailand_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Thailand',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tinkoff: PaymentFields = {\n title: 'Tinkoff',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const trustly: PaymentFields = {\n confirmation: '',\n title: 'Trustly',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank: PaymentFields = {\n confirmation: '',\n title: 'Banks of Vietnam',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank_qr: PaymentFields = {\n confirmation: '',\n title: 'Vietnamese QR banking',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const vietnam_bank_transfer: PaymentFields = {\n confirmation: '',\n title: 'Bank transfers in Vietnam',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const webpay: PaymentFields = {\n confirmation: '',\n title: 'Webpay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wechat: PaymentFields = {\n confirmation: '',\n title: 'WeChat',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wme: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WME)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmr: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMR)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmu: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMU)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wmz: PaymentFields = {\n confirmation: '',\n title: 'Webmoney (WMZ)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const zen_wallet: PaymentFields = {\n confirmation: '',\n title: 'Zen wallet',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const yandex: PaymentFields = {\n confirmation: '',\n title: 'YooMoney',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const wallester: PaymentFields = {\n confirmation: '',\n title: 'Wallester',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const bitcoin: PaymentFields = {\n confirmation: '',\n title: 'Bitcoin',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tron: PaymentFields = {\n confirmation: '',\n title: 'Tron (TRX)',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const ethereum: PaymentFields = {\n confirmation: '',\n title: 'Ethereum',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tether: PaymentFields = {\n confirmation: '',\n title: 'Tether(USDT) erc20',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const tether_trc20: PaymentFields = {\n confirmation: '',\n title: 'Tether(USDT) trc20',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mercado_pago: PaymentFields = {\n confirmation: '',\n title: 'Mercado Pago',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.EMAIL,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mirpay: PaymentFields = {\n confirmation: '',\n title: 'Mir Pay',\n fields: [\n FIELD_TEMPLATE.AMOUNT\n ]\n};\n","import { FIELD_TEMPLATE, PaymentFields } from '../index';\n\nexport const mbway: PaymentFields = {\n confirmation: '',\n title: 'Mbway',\n fields: [\n FIELD_TEMPLATE.AMOUNT,\n FIELD_TEMPLATE.PHONE_WALLET,\n FIELD_TEMPLATE.FIRST_NAME,\n FIELD_TEMPLATE.SECOND_NAME\n ]\n};\n","import { advcash } from './advcash';\nimport { alfabank } from './alfabank';\nimport { alipay } from './alipay';\nimport { alipay_plus } from './alipay_plus';\nimport { applepay } from './applepay';\nimport { argentina_bank } from './argentina_bank';\nimport { atf24 } from './atf24';\nimport { baloto } from './baloto';\nimport { beeline } from './beeline';\nimport { blik } from './blik';\nimport { boleto } from './boleto';\nimport { brazil_bank } from './brazil_bank';\nimport { card } from './card';\nimport { carga_virtual } from './carga_virtual';\nimport { cash } from './cash';\nimport { cashtocode } from './cashtocode';\nimport { codi } from './codi';\nimport { comepay } from './comepay';\nimport { cup } from './cup';\nimport { cup_bank } from './cup_bank';\nimport { cup_p2p } from './cup_p2p';\nimport { deposit_express } from './deposit_express';\nimport { direct_banking_europe } from './direct_banking_europe';\nimport { dotpay } from './dotpay';\nimport { ecopayz } from './ecopayz';\nimport { eps } from './eps';\nimport { giropay } from './giropay';\nimport { gmmoney } from './gmmoney';\nimport { internal_gamemoney } from './internal_gamemoney';\nimport { googlepay } from './googlepay';\nimport { ideal } from './ideal';\nimport { indonesia_bank } from './indonesia_bank';\nimport { indonesia_bank_transfer } from './indonesia_bank_transfer';\nimport { jeton } from './jeton';\nimport { jeton_voucher } from './jeton_voucher';\nimport { kassa24 } from './kassa24';\nimport { link } from './link';\nimport { local_card_brazil } from './local_card_brazil';\nimport { local_card_mexico } from './local_card_mexico';\nimport { loterica } from './loterica';\nimport { malaysia_bank } from './malaysia_bank';\nimport { megafon } from './megafon';\nimport { mexico_bank } from './mexico_bank';\nimport { momopay } from './momopay';\nimport { moneta } from './moneta';\nimport { mts } from './mts';\nimport { multibanco } from './multibanco';\nimport { neosurf } from './neosurf';\nimport { neteller } from './neteller';\nimport { nupay } from './nupay';\nimport { onecard } from './onecard';\nimport { oxxo } from './oxxo';\nimport { pagoefectivo } from './pagoefectivo';\nimport { pagoexpress } from './pagoexpress';\nimport { pagofacil } from './pagofacil';\nimport { paypal } from './paypal';\nimport { paysafecard } from './paysafecard';\nimport { picpay } from './picpay';\nimport { pix } from './pix';\nimport { philippines_bank } from './philippines_bank';\nimport { promptpay } from './promptpay';\nimport { promsviaz } from './promsviaz';\nimport { przelewy24 } from './przelewy24';\nimport { qiwi } from './qiwi';\nimport { rapid } from './rapid';\nimport { rapipago } from './rapipago';\nimport { redpagos } from './redpagos';\nimport { sberbank } from './sberbank';\nimport { sbp } from './sbp';\nimport { sepa } from './sepa';\nimport { servipag } from './servipag';\nimport { skinify } from './skinify';\nimport { skinpay } from './skinpay';\nimport { skinsback } from './skinsback';\nimport { skrill } from './skrill';\nimport { sofort } from './sofort';\nimport { spei } from './spei';\nimport { store_mexico } from './store_mexico';\nimport { tele2 } from './tele2';\nimport { thailand_bank } from './thailand_bank';\nimport { thailand_bank_transfer } from './thailand_bank_transfer';\nimport { tinkoff } from './tinkoff';\nimport { trustly } from './trustly';\nimport { vietnam_bank } from './vietnam_bank';\nimport { vietnam_bank_qr } from './vietnam_bank_qr';\nimport { vietnam_bank_transfer } from './vietnam_bank_transfer';\nimport { webpay } from './webpay';\nimport { wechat } from './wechat';\nimport { wme } from './wme';\nimport { wmr } from './wmr';\nimport { wmu } from './wmu';\nimport { wmz } from './wmz';\nimport { zen_wallet } from './zen_wallet';\nimport { yandex } from './yandex';\nimport { wallester } from './wallester';\nimport { bitcoin } from './bitcoin';\nimport { tron } from './tron';\nimport { ethereum } from './ethereum';\nimport { tether } from './tether';\nimport { tether_trc20 } from './tether_trc20';\nimport { mercado_pago } from './mercado_pago';\nimport { mirpay } from './mirpay';\nimport { mbway } from './mbway';\nimport { PaymentFields } from '../payment-fields';\n\nexport const CONFIG: {[key: string]: PaymentFields} = {\n advcash,\n alfabank,\n alipay,\n alipay_plus,\n applepay,\n argentina_bank,\n atf24,\n baloto,\n beeline,\n blik,\n boleto,\n brazil_bank,\n card,\n carga_virtual,\n cash,\n cashtocode,\n codi,\n comepay,\n cup,\n cup_bank,\n cup_p2p,\n deposit_express,\n direct_banking_europe,\n dotpay,\n ecopayz,\n eps,\n giropay,\n gmmoney,\n internal_gamemoney,\n googlepay,\n ideal,\n indonesia_bank,\n indonesia_bank_transfer,\n jeton,\n jeton_voucher,\n kassa24,\n link,\n local_card_brazil,\n local_card_mexico,\n loterica,\n malaysia_bank,\n megafon,\n mexico_bank,\n momopay,\n moneta,\n mts,\n multibanco,\n neosurf,\n neteller,\n nupay,\n onecard,\n oxxo,\n pagoefectivo,\n pagoexpress,\n pagofacil,\n paypal,\n paysafecard,\n picpay,\n pix,\n philippines_bank,\n promptpay,\n promsviaz,\n przelewy24,\n qiwi,\n rapid,\n rapipago,\n redpagos,\n sberbank,\n sbp,\n sepa,\n servipag,\n skinify,\n skinpay,\n skinsback,\n skrill,\n sofort,\n spei,\n store_mexico,\n tele2,\n thailand_bank,\n thailand_bank_transfer,\n tinkoff,\n trustly,\n vietnam_bank,\n vietnam_bank_qr,\n vietnam_bank_transfer,\n webpay,\n wechat,\n wme,\n wmr,\n wmu,\n wmz,\n zen_wallet,\n yandex,\n wallester,\n bitcoin,\n tron,\n ethereum,\n tether,\n tether_trc20,\n mercado_pago,\n mirpay,\n mbway\n};\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\nimport {\n MethodInfo,\n MethodType,\n SessionInfo,\n TerminalMethodBanksResponse,\n TerminalMethodDocumentTypesResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../codegen/model/models';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, delay, map, tap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\nimport { ApiErrorsService } from './api-errors.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { PaymentFields } from './../pages/components/constructor-form/models';\nimport { HttpBadRequestResponse } from '../models/http-bad-request-response';\nimport { TranslateLangStorageService } from './translation/translate-lang-storage.service';\nimport { I18N_KEY } from './../i18n';\nimport { TERMINAL_SDK_FACTORY, TERMINAL_SERVICE_TOKEN } from '../../const';\nimport { TerminalServiceInterface } from '../../codegen/api/terminal.service';\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\nimport { CdeTerminalSdk, SessionToken } from '../models';\nimport { CONFIG } from '../pages/components/constructor-form/models/config/all';\n\n@Injectable()\nexport class SessionDataSource {\n document = inject<Document>(DOCUMENT);\n private langStorage = inject(TranslateLangStorageService);\n private terminalApi = inject<TerminalServiceInterface>(TERMINAL_SERVICE_TOKEN);\n private token = inject(SessionToken, {optional: true}) || 'token';\n private apiErrorsSrv = inject(ApiErrorsService);\n private cookieSrv = inject(CookieService);\n private cd = inject(ChangeDetectorRef);\n private cardTerminalSdkFactory = inject(TERMINAL_SDK_FACTORY);\n\n payment_token?: string;\n data$: BehaviorSubject<SessionInfo> = new BehaviorSubject<SessionInfo>(undefined);\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n loadingMethodInfo$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n private redirectUrl: string;\n private returnUrl: string;\n private configurations: Map<string, PaymentFields> = new Map();\n\n private fillConfigurations(methods: MethodType[] = this.getSessionValue()?.methodTypes || []) {\n return methods.forEach(\n (m: MethodType) => this.configurations.set(\n m.type.name,\n CONFIG[m.type.name]\n )\n );\n }\n\n private unionGlobalCountries(session: SessionInfo) {\n let methods = session.methodTypes;\n\n // sort methods by countries in map\n const countriesTypes: Map<string, Set<number>> = new Map<string, Set<number>>();\n methods.forEach(({countryISOCode, type: {id}}) => {\n let types = (countriesTypes.get(countryISOCode) || new Set()).add(id);\n countriesTypes.set(countryISOCode, types);\n });\n\n // Check every type in the country on having in other countries and getting ones in collection\n const globalCountries: string[] = [];\n const typesCountriesArray = Array.from(countriesTypes.values());\n const everyCountryHasTypeIdPredicate = (typeId) => typesCountriesArray.every((countryTypes) => countryTypes.has(typeId));\n countriesTypes.forEach((types, iso) => {\n // Check every type includes in all countries\n const hasOnlyGlobalTypes = [...types].every(everyCountryHasTypeIdPredicate);\n if (hasOnlyGlobalTypes) {\n globalCountries.push(iso);\n }\n });\n\n // if we have more than one country with only global types collapse them into one category\n if (globalCountries.length > 0) {\n const firstGlobalCountry = globalCountries.pop();\n methods = methods\n .filter(({countryISOCode}) => !globalCountries.includes(countryISOCode));\n methods.forEach(m => m.countryISOCode === firstGlobalCountry && (m.countryISOCode = OTHER_COUNTRY_CODE));\n }\n session.methodTypes = methods;\n return session;\n }\n\n getConfiguration(name: string) {\n return this.configurations.get(name);\n }\n\n redirect() {\n if (this.redirectUrl) {\n this.document.defaultView.location.href = this.redirectUrl;\n return true;\n }\n return false;\n }\n\n returnBack() {\n if (this.returnUrl) {\n this.document.defaultView.location.href = this.returnUrl;\n return true;\n }\n return false;\n }\n\n get canReturnToProject() {\n return !!this.returnUrl;\n }\n\n get returnBackUrl(): string {\n return this.returnUrl;\n }\n\n getTypeNameById(id: number) {\n return this.data$.getValue().methodTypes.find(m => m.type.id === id).type.name;\n }\n\n getSessionValue(): SessionInfo {\n return this.data$.getValue();\n }\n\n get(): Observable<SessionInfo> {\n if (!this.loading$.getValue()) {\n this.loading$.next(true);\n }\n\n return this.terminalApi.getTerminalSessionInfo({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError(this.loading$)\n ),\n map((session: SessionInfo) => {\n this.data$.next(this.unionGlobalCountries(session));\n this.fillConfigurations();\n this.loading$.next(false);\n this.returnUrl = session.returnUrl;\n return this.data$.getValue();\n })\n );\n }\n\n getMethodInfo(currency, typeId: number): Observable<MethodInfo> {\n if (!this.loadingMethodInfo$.getValue()) {\n this.loadingMethodInfo$.next(true);\n }\n if (!typeId || !currency) {\n return throwError({})\n .pipe(\n catchError(\n this.catchError(this.loadingMethodInfo$)\n )\n );\n }\n return this.terminalApi\n .getTerminalMethodInfo({\n token: this.token,\n lang: this.langStorage.currentLang,\n currency,\n typeId\n })\n .pipe(\n catchError(\n this.catchError(this.loadingMethodInfo$)\n ),\n tap((method) => {\n if (method.payment_token) {\n this.payment_token = method.payment_token;\n }\n this.loadingMethodInfo$.next(false);\n })\n );\n }\n\n private catchError(loading$?: BehaviorSubject<boolean>) {\n return (err: HttpBadRequestResponse) => {\n this.apiErrorsSrv.setLocalError(err.error);\n loading$?.next(false);\n this.cd.markForCheck();\n return throwError(err);\n }\n }\n\n prepare(data: TerminalPaymentPrepareRequest): Observable<TerminalPaymentPrepareResponse> {\n return this.terminalApi\n .postTerminalPaymentPrepare({\n token: this.token,\n terminalPaymentPrepareRequest: data\n })\n .pipe(\n delay(2000),\n catchError(\n this.catchError()\n )\n );\n }\n\n confirm() {\n return this.terminalApi\n .postTerminalPaymentConfirm({\n token: this.token,\n terminalPaymentConfirmRequest: {\n lang: this.langStorage.currentLang,\n gaCookie: this.cookieSrv.get('_ga') || null\n }\n })\n .pipe(\n catchError(\n this.catchError()\n ),\n tap((resp) => {\n this.redirectUrl = resp.redirectUrl;\n })\n );\n }\n\n close() {\n\n return this.terminalApi\n .postTerminalClose({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n ),\n map(() => {\n if (!this.returnBack()) {\n const error = {code: I18N_KEY.SESSION_CLOSED};\n this.apiErrorsSrv.setLocalError(error);\n this.cd.markForCheck();\n\n throw error;\n }\n })\n );\n }\n\n getBanks(typeId: number): Observable<TerminalMethodBanksResponse> {\n return this.terminalApi\n .getTerminalMethodBanks({\n typeId,\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n )\n );\n }\n\n getDocuments(typeId: number): Observable<TerminalMethodDocumentTypesResponse> {\n\n return this.terminalApi\n .getTerminalMethodDocumentTypes({\n typeId,\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError()\n )\n );\n }\n\n createCardTerminalSdk(lang: string, id: string, tabindex?: number): CdeTerminalSdk {\n return this.cardTerminalSdkFactory(this.payment_token, id, {lang, tabindex});\n }\n\n feeChangeable = !!this.terminalApi.getFee;\n\n feeOptions(payment: any) {\n return this.terminalApi.getFee(payment);\n }\n}\n\n\n","import { CSP_NONCE, inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ENVIRONMENT } from '../../const';\n\nexport type SDKScriptId = 'cde_sdk' | 'mir-pay-sdk' | 'apple-pay-sdk' | 'google-pay-sdk';\n\n@Injectable()\nexport class ScriptLoader {\n private document = inject<Document>(DOCUMENT);\n private nonce = inject(CSP_NONCE);\n private environment = inject(ENVIRONMENT);\n\n\n readonly SCRIPT_HASH_MAP = new Map<SDKScriptId, { src: string; hash?: string; }>([\n [\n 'cde_sdk',\n this.environment.production ? {\n src: 'https://app.cde.cloud/iframe-sdk/sdk-v1.0.2.js',\n hash: 'sha384-p4PUsA47nBEOaOoEy4iXVnqntD4mpWM2cXFtpol6Tl7OdUCwDgqxoi0W71WJdGhi'\n } : {\n src: 'https://app.cde-cloud.dev/iframe-sdk/sdk.js',\n hash: ''\n }\n ]\n ]);\n\n fetchScript(id: SDKScriptId) {\n return new Promise<void>((resolve, reject) => {\n let script: HTMLScriptElement;\n if (id === 'cde_sdk' && this.document.defaultView?.hasOwnProperty('CdeTerminalSdk')) {\n resolve();\n return;\n }\n if (id === 'google-pay-sdk' && this.document.defaultView?.hasOwnProperty('google')) {\n resolve();\n return;\n }\n if (id === 'apple-pay-sdk' && this.document.defaultView?.hasOwnProperty('ApplePaySession')) {\n resolve();\n return;\n }\n if (id === 'mir-pay-sdk' && this.document.defaultView?.hasOwnProperty('YooMoneyCheckoutWidget')) {\n resolve();\n return;\n }\n\n if (id === 'google-pay-sdk' || id === 'apple-pay-sdk' || id === 'mir-pay-sdk') {\n const template: HTMLTemplateElement = this.document.querySelector(`template#${id}`)\n if (!template) {\n reject();\n }\n script = template.content.children.item(0) as HTMLScriptElement;\n } else {\n const {src, hash} = this.SCRIPT_HASH_MAP.get(id);\n script = this.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n if (hash) {\n script.integrity = hash;\n script.crossOrigin = 'anonymous';\n }\n script.async = true;\n }\n script.nonce = this.nonce;\n script.onload = (): void => resolve();\n script.onerror = (err): void => reject(err);\n this.document.body.appendChild(script);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { loadI18NData } from './helpers/i18n-countries';\nimport { ApiErrorsService, ScriptLoader, TranslateLangStorageService } from './services';\nimport { I18N_COUNTRIES, LANGUAGE } from './models';\nimport { getNames } from 'i18n-iso-countries';\n\nloadI18NData();\n\n@NgModule({\n imports: [\n RouterModule.forChild([\n {\n path: '',\n loadChildren: () => import('./pages/pages.module')\n },\n {\n path: 'checkin',\n loadChildren: () => import('./checkin/checkin.module').then(m => m.CheckinModule)\n },\n {\n path: '**',\n redirectTo: ''\n }\n ])\n ]\n})\nexport class TerminalModule {\n}\n\nexport const provideTerminal = () => {\n return [\n TranslateLangStorageService,\n {\n provide: I18N_COUNTRIES,\n useValue: {\n ru: getNames(LANGUAGE.RU),\n lt: getNames(LANGUAGE.LT),\n en: getNames(LANGUAGE.EN),\n es: getNames(LANGUAGE.ES),\n tr: getNames(LANGUAGE.TR),\n pt: getNames(LANGUAGE.PT)\n }\n },\n ApiErrorsService,\n ScriptLoader\n ];\n};\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[terminalFee]',\n standalone: true\n})\nexport class FeeTemplateDirective {}\n","import { Component, ContentChild, HostListener, inject, OnDestroy, OnInit, TemplateRef } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, Router, RouterOutlet } from '@angular/router';\nimport { filter, first, switchMap, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { TranslateLangStorageService } from './services/translation/translate-lang-storage.service';\nimport { APP_READY_TOKEN } from './models/constants';\nimport { FocusHandler } from './helpers/key-down-handler';\nimport { hideInitLoader } from './helpers/hide-init-loader';\nimport { AsyncPipe } from '@angular/common';\nimport { FeeTemplateDirective } from './pages/directives/fee-template.directive';\n\n@Component({\n selector: 'terminal',\n host: {\n class: 'trm'\n },\n templateUrl: './terminal-tpl.component.html',\n styleUrls: ['./terminal-tpl.component.scss'],\n standalone: true,\n imports: [RouterOutlet, AsyncPipe]\n})\nexport class TerminalTplComponent implements OnInit, OnDestroy {\n private router = inject(Router);\n ready$ = inject<BehaviorSubject<boolean>>(APP_READY_TOKEN);\n langStorage = inject(TranslateLangStorageService);\n\n private unSubscriber = new Subject<void>();\n @ContentChild(FeeTemplateDirective, {read: TemplateRef, static: false}) feeTpl;\n\n @HostListener('document:keydown.arrowDown', ['$event', '$event.currentTarget']) next(ev, document: Document) {\n FocusHandler.nextEnabled(ev);\n }\n @HostListener('document:keydown.arrowUp', ['$event', '$event.currentTarget']) prev(ev, document: Document) {\n FocusHandler.previousEnabled(ev);\n }\n\n\n ngOnInit(): void {\n this.navigationEnd$()\n .pipe(\n switchMap(() => this.langStorage.setLanguage$({ save: false })),\n switchMap(() => hideInitLoader()),\n first(),\n takeUntil(this.unSubscriber),\n )\n .subscribe(() => this.ready$.next(true));\n }\n\n private navigationEnd$() {\n if (this.router.navigated) {\n return of({});\n }\n return this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)\n )\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (ready$ | async) {\n <div class=\"app__container\">\n <router-outlet></router-outlet>\n </div>\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[trmSelectLabelTemplate]',\n standalone: true\n})\nexport class TrmSelectLabelTemplateDirective {\n tpl = inject<TemplateRef<TrmSelectLabelTemplateDirective>>(TemplateRef);\n\n}\n","import {AfterViewInit, Directive, ElementRef, inject, OnDestroy, Renderer2} from '@angular/core';\nimport {NgScrollbar} from 'ngx-scrollbar';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Directive({\n selector: 'ng-scrollbar[appScrollbarSelectHeight]',\n standalone: true\n})\nexport class ScrollbarSelectHeightDirective implements AfterViewInit, OnDestroy {\n private element = inject(ElementRef);\n private renderer = inject(Renderer2);\n private layoutScrollbar = inject(NgScrollbar, { skipSelf: true });\n private scrollbar = inject(NgScrollbar);\n\n private unsub: Subject<void> = new Subject<void>();\n\n readonly DEFAULT_MAX_HEIGHT = 250;\n\n ngAfterViewInit() {\n const contentWrapper = this.scrollbar?.viewport?.contentWrapperElement;\n if (contentWrapper) {\n merge(\n this.scrollbar.afterInit,\n this.scrollbar.afterUpdate\n )\n .pipe(\n takeUntil(this.unsub)\n )\n .subscribe(() => {\n const viewport = this.layoutScrollbar.viewport;\n const css = this.element.nativeElement.getBoundingClientRect();\n const height = viewport.offsetHeight - parseFloat(css.top);\n this.renderer.setStyle(this.scrollbar.nativeElement, 'maxHeight', (height < this.DEFAULT_MAX_HEIGHT ? this.DEFAULT_MAX_HEIGHT : (height - 12)) + 'px');\n })\n }\n }\n\n public ngOnDestroy() {\n this.unsub.next();\n this.unsub.unsubscribe();\n }\n}\n","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { I18N_KEY, i18nMap } from './../../i18n';\nimport { Subscription } from \"rxjs\";\n\n@Pipe({\n name: 'trans',\n pure: false,\n standalone: true\n})\nexport class TranslateByKeyPipe implements PipeTransform, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n private translateSrv = inject(TranslateService);\n\n lang: string;\n private onLangChangeSubscription: Subscription;\n\n transform(query: string, ...args: any[]): any {\n if (query === '') {\n return '';\n }\n\n this._dispose();\n this._subscribe();\n this.lang = this.translateSrv.currentLang;\n return this.translateSrv.instant(i18nMap.get(query as I18N_KEY) || query, ...args);\n }\n\n private _subscribe() {\n this.onLangChangeSubscription = this.translateSrv.onLangChange\n .subscribe(({lang}) => {\n if (lang === this.lang) {\n return\n }\n this.lang = lang;\n this.cd.markForCheck()\n });\n }\n\n private _dispose() {\n if (this.onLangChangeSubscription && !this.onLangChangeSubscription.closed) {\n this.onLangChangeSubscription.unsubscribe();\n }\n this.onLangChangeSubscription = null;\n }\n\n ngOnDestroy() {\n this._dispose();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\nimport { I18N_KEY } from './../../../i18n';\nimport { TrmSelectLabelTemplateDirective } from './trm-select-label-template.directive';\nimport { ScrollbarSelectHeightDirective } from './scrollbar-select-height.directive';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-trm-select',\n templateUrl: './trm-select.component.html',\n styleUrls: ['./trm-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrmSelectComponent),\n multi: true,\n }\n ],\n animations: [insertRemoveTrigger],\n standalone: true,\n imports: [NgTemplateOutlet, NgClass, ScrollbarSelectHeightDirective, NgScrollbar, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\n})\nexport class TrmSelectComponent implements OnDestroy, ControlValueAccessor, AfterViewInit {\n private el = inject(ElementRef);\n private document = inject<Document>(DOCUMENT);\n private cd = inject(ChangeDetectorRef);\n\n private unSubscriber: Subject<void> = new Subject<void>();\n private _disabled = false;\n I18N_KEY = I18N_KEY;\n\n get disabled() {\n return this.data && this.data.length === 1 && this.selected === this.getItemValue(this.data[0])\n }\n\n @Input() label: string;\n @Input() hasBorder = true;\n @Input() data: any[] | false;\n @Input() tabIndex = 0;\n @Input() name = '';\n @Input() placeholder = '';\n @Input() searchable = true;\n @Input() hasScrollbar = true;\n searchControl = new FormControl();\n @Output() open = new EventEmitter();\n @Output() search = new EventEmitter();\n selected: any;\n selectedItem: any;\n filteredData = [];\n\n onChange = (value) => {\n };\n onTouch = () => {\n };\n\n @ContentChild(TrmSelectLabelTemplateDirective) labelTeplate: TrmSelectLabelTemplateDirective;\n get labelTpl() {\n return this.labelTeplate?.tpl;\n }\n\n @Input() nameId = 'id';\n @Input() nameLabel = 'name';\n opened = false;\n\n constructor() {\n fromEvent(this.document, 'click')\n .pipe(\n debounceTime(100),\n filter((ev) => this.opened && !this.el.nativeElement.contains(ev.target)),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.toggle());\n }\n\n get selectedLabel() {\n return this.selectedItem?.[this.nameLabel] || this.getItemLabel(this.selected);\n }\n\n ngAfterViewInit() {\n if (this.searchable) {\n this.searchControl\n .valueChanges\n .pipe(\n takeUntil(this.unSubscriber),\n debounceTime(200)\n )\n .subscribe((search) => this.triggerSearch(search));\n }\n }\n\n get list() {\n if (Array.isArray(this.data)) {\n return this.data?.filter(item => !this.isSelected(item));\n }\n return [];\n }\n\n get focusableEl() {\n return this.el.nativeElement.querySelector('[tabindex]');\n }\n\n get focused(): boolean {\n return this.el.nativeElement.contains(this.document.activeElement);\n }\n\n onBlur() {\n if (!this.opened) {\n return;\n }\n // closed select when focus out\n setTimeout(() => !this.focused && this.toggle(), 100);\n }\n\n private searchAutofocusTimer: number;\n\n toggle() {\n if (this.data === false) {\n return;\n }\n if (!this.opened && !this.data?.length) {\n return;\n }\n if ((!this.searchable || !this.searchControl.value) && this.data?.length === 1 && this.selected === this.data[0]) {\n return;\n }\n if (this.searchable) {\n if (this.opened === false) {\n clearTimeout(this.searchAutofocusTimer);\n this.searchAutofocusTimer = this.document.defaultView.setTimeout(\n () => this.el.nativeElement.querySelector('.trm-select-list__search input').focus(),\n 200\n );\n } else {\n this.searchControl.setValue('');\n }\n }\n this.opened = !this.opened;\n this.open.emit(this.opened);\n this.onTouch();\n this.cd.detectChanges();\n }\n\n isSelected(item) {\n let value = this.getItemValue(item);\n if (value) {\n return this.selected === value;\n }\n return false;\n }\n\n getItemValue(item) {\n return item?.[this.nameId] || item;\n }\n\n getItemLabel(id) {\n if (!this.data) {\n return '';\n }\n id = this.getItemValue(id);\n const item = this.getCollectionItem(id);\n return item?.[this.nameLabel] || id;\n }\n\n getCollectionItem(id) {\n if (!this.data) {\n return id;\n }\n return this.data.find(f => this.getItemValue(f) === id);\n }\n\n select(item) {\n if (this.selected !== this.getItemValue(item)) {\n this.onChange(this.getItemValue(item));\n }\n this.selected = this.getItemValue(item);\n this.selectedItem = this.getCollectionItem(this.selected);\n this.toggle();\n this.focusableEl.focus();\n }\n\n writeValue(value: any) {\n if (!this.data) {\n return;\n }\n this.selected = value;\n this.selectedItem = this.getCollectionItem(this.selected);\n this.cd.markForCheck();\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this._disabled = isDisabled;\n }\n\n triggerSearch(value = this.searchControl.value) {\n if (this.data === false) {\n return;\n }\n this.search.emit(value);\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (label) {\n <label class=\"trm-label\"\n [for]=\"name\"\n (click)=\"toggle()\"\n > {{ label }} </label>\n}\n<div class=\"trm-select\"\n [class.trm-select--noBordered]=\"!hasBorder\"\n [class.trm-select--opened]=\"opened\"\n [class.trm-select--disabled]=\"disabled\"\n [tabindex]=\"tabIndex\"\n (blur)=\"onBlur()\"\n [id]=\"name\"\n (keydown.enter)=\"toggle()\"\n>\n @if (labelTpl) {\n <div class=\"trm-select-value\"\n (click)=\"toggle()\">\n @if (selected && selectedItem) {\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item: selectedItem}\"></ng-container>\n }\n @if (!selected) {\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\n }\n <span class=\"trm-select-value__arrow\"\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\n @if (data === false) {\n <div class=\"trm-spinner\"></div>\n }\n </div>\n @if (opened && hasScrollbar) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-scrollbar appearance=\"compact\" class=\"trm-select-list-scrollbar\" appScrollbarSelectHeight>\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\n </ng-scrollbar>\n </ul>\n }\n @if (opened && !hasScrollbar) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-container *ngTemplateOutlet=\"listTpl\"></ng-container>\n </ul>\n }\n <ng-template #listTpl>\n @if (searchable) {\n <li class=\"trm-select-list__item trm-select-list__search\">\n <input class=\"trm-form-field\"\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation(); $event.preventDefault();\"\n [formControl]=\"searchControl\">\n </li>\n }\n @if (searchable && searchControl.value && list.length === 0) {\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\n >\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\n </li>\n }\n @for (item of list; track getItemValue(item)) {\n <li class=\"trm-select-list__item\"\n (click)=\"select(item)\"\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\n [tabindex]=\"tabIndex\"\n (blur)=\"onBlur()\">\n @if (item) {\n <ng-container *ngTemplateOutlet=\"labelTpl; context: {item}\"></ng-container>\n }\n </li>\n }\n </ng-template>\n } @else {\n <div class=\"trm-select-value\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\">\n {{ selectedLabel }}\n @if (!selected) {\n <span class=\"trm-select-placeholder\">{{ placeholder }}</span>\n }\n <span class=\"trm-select-value__arrow\"\n [ngClass]=\"{'trm-select-value__arrow-top': opened}\"></span>\n @if (data === false) {\n <div class=\"trm-spinner\"></div>\n }\n </div>\n @if (opened) {\n <ul class=\"trm-select-list\" @insertRemove>\n <ng-scrollbar class=\"gm-select-list-scrollbar\" appScrollbarSelectHeight>\n @if (searchable) {\n <li class=\"trm-select-list__item trm-select-list__search\">\n <input class=\"trm-form-field\"\n [placeholder]=\"I18N_KEY.SELECT_SEARCH | trans\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation();\"\n [formControl]=\"searchControl\">\n </li>\n }\n @if (searchable && searchControl.value && list.length === 0) {\n <li class=\"trm-select-list__item trm-select-list__search trm-select-list__search-text\"\n >\n {{ I18N_KEY.SELECT_EMPTY_LIST | trans }}\n </li>\n }\n @for (item of list; track getItemValue(item)) {\n <li class=\"trm-select-list__item\"\n [tabindex]=\"tabIndex\"\n (click)=\"select(item)\"\n (keydown.enter)=\"$event.stopPropagation(); select(item)\"\n (blur)=\"onBlur()\">\n {{ getItemLabel(item) }}\n </li>\n }\n </ng-scrollbar>\n </ul>\n }\n }\n</div>\n<ng-content select=\"[app-trm-select-hint]\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { TranslateLangStorageService } from '../../../services/translation/translate-lang-storage.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NgClass } from '@angular/common';\nimport { TrmSelectComponent } from '../trm-select/trm-select.component';\nimport { FormsModule } from '@angular/forms';\nimport { TrmSelectLabelTemplateDirective } from '../trm-select/trm-select-label-template.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from \"../../../../const\";\nimport { VersionServiceInterface } from \"../../../models\";\n\n@Component({\n selector: 'app-terminal-lang-switcher',\n templateUrl: './terminal-lang-switcher.component.html',\n styleUrls: ['./terminal-lang-switcher.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TrmSelectComponent, FormsModule, TrmSelectLabelTemplateDirective, NgClass, TranslateModule, GmSkeletonComponent]\n})\nexport class TerminalLangSwitcherComponent implements OnDestroy {\n private versionSrv: VersionServiceInterface = inject(TERMINAL_VERSION_SERVICE_TOKEN);\n private langStorageSrv = inject(TranslateLangStorageService);\n private cd = inject(ChangeDetectorRef);\n\n private unSubscriber = new Subject<void>();\n @Input() loading = false;\n @Output() langChange = new EventEmitter<string>();\n @Input() tabIndex = 0;\n\n get translation_keys() {\n return this.langStorageSrv.TRANSLATION_LANG_KEYS;\n }\n\n constructor() {\n this.langStorageSrv.onLangChange$\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.cd.detectChanges());\n }\n\n get lang() {\n return this.langStorageSrv.currentLang;\n }\n get langs(): string[] {\n return this.versionSrv.langs;\n }\n\n changeLang(lang: string) {\n this.langStorageSrv.setLanguage$({ lang, save: true });\n this.cd.markForCheck();\n this.langChange.emit(lang);\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","@if (!loading) {\n <app-trm-select class=\"lang-switcher\"\n [hasBorder]=\"false\"\n [searchable]=\"false\"\n [hasScrollbar]=\"false\"\n [data]=\"langs\"\n [ngModel]=\"lang\"\n [tabIndex]=\"tabIndex\"\n (ngModelChange)=\"changeLang($event)\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\" [ngClass]=\"'fi-' + translation_keys[item].code\"></span>\n <span> {{translation_keys[item].name | translate}}</span>\n </ng-template>\n </app-trm-select>\n} @else {\n <gm-skeleton [count]=\"1\" [size]=\"30\"></gm-skeleton>\n}\n","import { ChangeDetectorRef, Component, inject, Input, OnDestroy } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\nimport { TranslateLangStorageService } from '../../../services';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TerminalLangSwitcherComponent } from '../terminal-lang-switcher/terminal-lang-switcher.component';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\n\n@Component({\n selector: 'app-terminal-layout-tpl',\n templateUrl: './terminal-layout-tpl.component.html',\n styleUrls: ['./terminal-layout-tpl.component.scss'],\n standalone: true,\n imports: [NgScrollbar, TerminalLangSwitcherComponent, GmSkeletonComponent]\n})\nexport class TerminalLayoutTplComponent implements OnDestroy {\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n private document = inject<Document>(DOCUMENT);\n private translateSrv = inject(TranslateService);\n private cd = inject(ChangeDetectorRef);\n private translateStorageSrv = inject(TranslateLangStorageService);\n\n private unSubscriber = new Subject<void>();\n @Input() projectName: string;\n @Input() description: string;\n @Input() loading = true;\n\n constructor() {\n this.translateSrv.onLangChange\n .pipe(takeUntil(this.unSubscriber))\n .subscribe(() => {\n this.cd.detectChanges();\n });\n }\n\n get hasChoice() {\n return this.translateStorageSrv.languages.length > 1;\n }\n\n get logoClass(): string {\n return this.versionSrv.logoClass;\n }\n get footerText() {\n return this.versionSrv.footerText;\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","<ng-scrollbar appearance=\"compact\">\n <div class=\"terminal-layout\">\n <section class=\"terminal\">\n <div class=\"terminal__content\">\n <header class=\"terminal__header\">\n <i class=\"terminal__header-logo\"\n [class]=\"logoClass\"></i>\n <div class=\"terminal__header-lang\">\n @if (hasChoice) {\n <app-terminal-lang-switcher\n [loading]=\"loading\"\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\n }\n </div>\n </header>\n <div class=\"terminal__form\">\n <ng-content selector=\"[terminal-layout-status]\"></ng-content>\n <ng-content selector=\"[terminal-layout-form]\"></ng-content>\n @if (loading) {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n </div>\n </div>\n </section>\n <footer class=\"terminal-footer\">\n <i class=\"terminal-footer__logo\"></i>\n <p class=\"terminal-footer__txt\">\n {{footerText}}\n </p>\n </footer>\n </div>\n</ng-scrollbar>\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitize',\n standalone: true\n})\nexport class SanitizerPipe implements PipeTransform {\n private _sanitizer = inject(DomSanitizer);\n\n transform(value: any, context: SecurityContext): any {\n return this._sanitizer.sanitize(context, value);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, inject, Input, SecurityContext } from '@angular/core';\nimport { I18N_KEY } from './../../../i18n';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models';\n\nimport { SanitizerPipe } from '../../pipes/sanitizer.pipe';\nimport { TranslateByKeyPipe } from '../../pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-status',\n templateUrl: './constructor-status.component.html',\n styleUrls: ['./constructor-status.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SanitizerPipe, TranslateByKeyPipe]\n})\nexport class ConstructorStatusComponent {\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n SecurityContext = SecurityContext;\n I18N_KEY = I18N_KEY;\n @Input() failed = false;\n @Input() inProgress = false;\n @Input() animation = true;\n @Input() message: string;\n @Input() failTitle: string;\n @Input() progressTitle: string;\n @Input() successTitle: string;\n @Input() tabIndex: number;\n @Input() backUrl: string;\n @Input() backUrlTitle: string;\n @Input() hasSupportHint = true;\n get supportEmail() {\n return this.versionSrv.supportEmail;\n }\n}\n","<div class=\"c-status\">\n <div class=\"c-status__content\"\n [class.c-status--failed]=\"failed\"\n [class.c-status--progress]=\"inProgress\"\n [class.c-status--live]=\"animation\"\n >\n <i class=\"c-status__img\"></i>\n <h5 class=\"c-status__title\">\n @if (inProgress) {\n {{ progressTitle || (I18N_KEY.PROGRESS_TITLE | trans) }}\n } @else {\n @if (failed) {\n {{ failTitle || (I18N_KEY.TERMINAL_SESSION_BREAK | trans) }}\n }\n @if (!failed) {\n {{ successTitle || (I18N_KEY.TERMINAL_SESSION_SUCCESS | trans) }}\n }\n }\n </h5>\n <div class=\"c-status__msg\" [innerHTML]=\"message\"> {{ message }}</div>\n @if (hasSupportHint) {\n <div class=\"c-status__hint\">\n {{ I18N_KEY.TERMINAL_SESSION_SUPPORT | trans }}:\n @if (supportEmail) {\n <a [href]=\"'mailto:' + supportEmail\"> {{ supportEmail }} </a>\n }\n </div>\n }\n </div>\n @if (!!backUrl) {\n <div class=\"c-status__actions\">\n <a class=\"trm-button trm-button--primary\"\n [tabindex]=\"tabIndex\"\n [href]=\"backUrl | sanitize: SecurityContext.URL\"> {{ backUrlTitle || (I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans) }}</a>\n <div class=\"c-status__hint c-status__hint-button\">\n <ng-content constructor-status-button-hint></ng-content>\n </div>\n </div>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngVar]',\n standalone: true,\n})\nexport class NgVarDirective<T = unknown> {\n private _viewContainer = inject(ViewContainerRef);\n private _templateRef = inject<TemplateRef<NgVarContext<T>>>(TemplateRef);\n\n private _context: NgVarContext<T> = new NgVarContext<T>();\n private _viewRef: EmbeddedViewRef<NgVarContext<T>> | null = null;\n\n @Input()\n set ngVar(context: T) {\n this._context.$implicit = this._context.ngVar = context;\n\n if (!this._viewRef) {\n this._viewRef = this._viewContainer.createEmbeddedView(\n this._templateRef,\n this._context\n );\n }\n }\n}\n\nexport class NgVarContext<T = unknown> {\n public $implicit: T = null!;\n public ngVar: T = null!;\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\nfunction symbolCurrency(code: string, format: string, lang = 'en'): string {\n try {\n return Intl.NumberFormat(lang, {\n style: 'currency',\n currency: code,\n currencyDisplay: format,\n })\n .formatToParts()\n .find((part) => part.type === 'currency').value;\n } catch (e) {\n return code;\n }\n}\n\n@Component({\n selector: 'trm-amount',\n standalone: true,\n imports: [],\n templateUrl: './trm-amount.component.html',\n styleUrl: './trm-amount.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n CurrencyPipe\n ]\n})\nexport class TrmAmountComponent {\n private currencyPipe: CurrencyPipe = inject(CurrencyPipe);\n private _thousandSeparator = ' ';\n private _format = '1.2-8';\n separator = '.';\n\n value = input<number | string>(0);\n code = input<string>('');\n\n symbol = computed(() => symbolCurrency(this.code(), 'narrowSymbol'));\n symbolWide = computed(() => symbolCurrency(this.code(), 'symbol'));\n private _amount = computed(() => this.currencyPipe\n .transform(this.value(), this.code(), 'symbol-narrow', this._format, 'en')\n .replace(/,/g, this._thousandSeparator)\n .replace(this.symbol(), '')\n .trim()\n );\n resultSymbol = computed(() => this.symbol() === '$' ? this.symbolWide() : this.symbol());\n amountSplitted = computed(() => {\n const [int, fract] = this._amount().split('.');\n return {int, fract};\n });\n}\n","<span class=\"trm-amount\">\n <span class=\"trm-amount__value\">\n <span class=\"trm-amount__int\">{{ amountSplitted().int }}</span>\n @if (amountSplitted().fract) {\n <span class=\"trm-amount__fract\">{{ separator }}{{ amountSplitted().fract }}</span>\n }\n </span>\n <span class=\"trm-currency\">{{ resultSymbol() }}</span>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TerminalLayoutTplComponent } from './components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { TerminalLangSwitcherComponent } from './components/terminal-lang-switcher/terminal-lang-switcher.component';\nimport { ConstructorStatusComponent } from './components/constructor-status/constructor-status.component';\nimport { TrmSelectComponent } from './components/trm-select/trm-select.component';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ScrollbarSelectHeightDirective } from './components/trm-select/scrollbar-select-height.directive';\nimport { TranslateByKeyPipe } from './pipes/translate-by-key.pipe';\nimport { NgVarDirective } from './directives/ng-var.directive';\nimport { TrmSelectLabelTemplateDirective } from './components';\n\nconst components = [\n TerminalLayoutTplComponent,\n TerminalLangSwitcherComponent,\n ConstructorStatusComponent,\n TrmSelectComponent,\n ScrollbarSelectHeightDirective,\n TranslateByKeyPipe,\n NgVarDirective,\n TrmSelectLabelTemplateDirective\n]\n\n@NgModule({\n exports: components,\n providers: [\n TranslatePipe\n ],\n imports: [\n CommonModule,\n NgScrollbar,\n TranslateModule,\n FormsModule,\n ReactiveFormsModule,\n ...components\n ]\n})\nexport class SharedModule {\n}\n","export function removeEmptyProps<T extends { [key: string]: any }>(obj: T, options: { nullValue: boolean } = { nullValue: true }): T {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n Object.keys(obj).forEach((key: string) => {\n const value: any = obj[key];\n if (typeof value === 'undefined' || (options?.nullValue === true && value === null) || value === '' || (typeof value === 'number' && isNaN(value))) {\n delete obj[key];\n }\n });\n return obj;\n}\n","import { ChangeDetectorRef, inject, Injectable, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { CollectionType, PaymentField, PaymentFieldOptionsItem, PaymentFields, PaymentFieldTypeEnum } from '../models';\nimport { SessionDataSource } from '../../../../services/session.data-source';\nimport { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { MethodInfo, TerminalPaymentPrepareRequest } from '../../../../../codegen/model/models';\nimport { distinctUntilChanged, Observable, of, Subject } from 'rxjs';\nimport { removeEmptyProps } from \"../../../../../helpers/remove-empty-props\";\nimport { I18N_KEY } from \"./../../../../i18n\";\nimport { TERMINAL_METHOD_CONFIGURATION_FACTORY } from '../../../../../const';\nimport { LocalStorage } from \"../../../../services/local-storage\";\n\n@Injectable()\nexport class ConstructorFormService extends FormGroup<{ [key: string]: FormControl | FormGroup }> implements OnDestroy {\n private sessionDS = inject(SessionDataSource);\n private cd = inject(ChangeDetectorRef);\n private configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, {optional: true}) || ((method: string, defaultConfig: PaymentFields) => defaultConfig);\n\n private _storage: LocalStorage = inject(LocalStorage);\n private cancelRequestsSubscriber = new Subject<void>();\n private unSubscriber = new Subject<void>();\n config: PaymentFields;\n fields: PaymentField[] = [];\n maskedWallet: string;\n ready = false;\n\n constructor() {\n super({\n country: new FormControl(undefined, Validators.required),\n method: new FormControl(undefined, Validators.required),\n currency: new FormControl(undefined, Validators.required),\n user_currency: new FormControl(undefined, Validators.required),\n payment: new FormGroup({})\n });\n }\n\n get methodInfoLoading() {\n return this.sessionDS.loadingMethodInfo$.getValue();\n }\n\n get paymentFormFieldNames() {\n return Object.keys(this.payment.controls);\n }\n\n removePaymentFormControls() {\n this.paymentFormFieldNames\n .forEach((controlName: string) => this.payment.removeControl(controlName));\n }\n\n init() {\n this.ready = false;\n this.cd.detectChanges();\n if (this.configurationFactory) {\n this.config = this.configurationFactory(\n this.methodName,\n this.sessionDS.getConfiguration(this.methodName)\n );\n } else {\n this.config = this.sessionDS.getConfiguration(this.methodName);\n }\n\n this.fields = [...this.config.fields];\n // that trick for z-index order in page (reverse array + reverse flex-direction)\n this.fields.reverse();\n return this.sessionDS\n .getMethodInfo(\n this.currency.value,\n this.method.value\n )\n .pipe(\n switchMap((methodInfo) => this.generateFields(methodInfo)),\n first(),\n takeUntil(this.cancelRequestsSubscriber)\n );\n }\n\n public amountDynamic = false;\n\n private async generateFields(methodInfo: MethodInfo): Promise<void> {\n this.fields\n .forEach((field: PaymentField) => {\n if (!field.name) {\n return;\n }\n const control = new FormControl<string | number>({\n value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,\n disabled: false,\n });\n const validators: ValidatorFn[] = [];\n this.amountDynamic = methodInfo.amountDynamic;\n const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();\n field.placeholder = field.placeholder || '';\n if (field.type === PaymentFieldTypeEnum.Amount) {\n if (methodInfo.defaultAmount || methodInfo.defaultAmount === 0) {\n control.setValue(methodInfo.defaultAmount);\n }\n if (!isEditable) {\n field.readonly = true;\n control.markAsDirty();\n control.markAsTouched();\n } else {\n field.readonly = false;\n validators.push((control) => +control.value === 0 ? {required: true} : null);\n }\n field.options = field.options || {};\n field.options.currency = this.currency.value;\n if (methodInfo.fee) {\n field.options.fee = methodInfo.fee;\n } else {\n field.options.fee = 0;\n }\n if (methodInfo.fixedFee) {\n field.options.fixedFee = methodInfo.fixedFee;\n } else {\n field.options.fixedFee = 0;\n }\n if (!methodInfo.amountDynamic && methodInfo.limits?.max) {\n field.options.max = methodInfo.limits.max;\n } else {\n delete field.options.max;\n }\n if (!methodInfo.amountDynamic && methodInfo.limits?.min) {\n field.options.min = methodInfo.limits.min;\n } else {\n delete field.options.min;\n }\n }\n if (field.wallet && methodInfo.defaultWallet) {\n control.setValue(methodInfo.defaultWallet);\n } else if (methodInfo.email && field.type === PaymentFieldTypeEnum.Email) {\n control.setValue(methodInfo.email);\n }\n if (field.require) {\n validators.push(Validators.required);\n }\n if (field.pattern) {\n validators.push(Validators.pattern(new RegExp(field.pattern)));\n }\n\n if (field.type === PaymentFieldTypeEnum.Email) {\n validators.push(Validators.email);\n }\n if (field.options?.max && typeof field.options?.max === 'number') {\n validators.push(Validators.max(field.options?.max));\n }\n if (field.options?.min && typeof field.options?.min === 'number') {\n validators.push(Validators.min(field.options?.min));\n }\n if (field.options?.maxLength) {\n validators.push(Validators.maxLength(field.options?.maxLength));\n }\n if (field.options?.minLength) {\n validators.push(Validators.minLength(field.options?.minLength));\n }\n if (field.type === PaymentFieldTypeEnum.Amount && methodInfo.amountDynamic) {\n validators.length = 0;\n }\n if (typeof field.validator === 'function') {\n validators.push(field.validator(this.payment));\n }\n control.setValidators(validators);\n this.payment.addControl(field.name, control);\n this.fetchCollection(field)\n .subscribe(() => {\n control.updateValueAndValidity();\n });\n });\n this.ready = true;\n }\n\n private fetchCollection(field: PaymentField): Observable<PaymentFieldOptionsItem[]> {\n const EMPTY_LIST = of([]).pipe(first());\n if (!field.options?.collection) {\n return EMPTY_LIST;\n }\n switch (field.options.collection) {\n case CollectionType.Banks:\n field.options.items = false;\n return this.sessionDS\n .getBanks(this.method.value)\n .pipe(\n map(({data}) => {\n field.options.items = data;\n this.cd.detectChanges();\n return data;\n })\n );\n case CollectionType.Documents:\n field.options.items = false;\n return this.sessionDS\n .getDocuments(this.method.value)\n .pipe(\n map(({data}) => {\n field.options.items = data;\n this.cd.detectChanges();\n return data;\n })\n );\n default:\n return EMPTY_LIST;\n }\n }\n\n get country(): AbstractControl {\n return this.get('country') as AbstractControl;\n }\n\n get method(): AbstractControl {\n return this.get('method') as AbstractControl;\n }\n\n get currency(): FormControl {\n return this.get('currency') as FormControl;\n }\n\n get userCurrency(): FormControl {\n return this.get('user_currency') as FormControl;\n }\n\n get payment(): FormGroup {\n return this.get('payment') as FormGroup;\n }\n\n get amount(): AbstractControl {\n return this.payment.get(this.fields.find(field => field.type === PaymentFieldTypeEnum.Amount).name) as AbstractControl;\n }\n\n public get methodName(): string {\n if (!this.method.value) {\n return null;\n }\n return this.sessionDS.getTypeNameById(this.method.value);\n }\n\n getTypeNameById(id) {\n return this.sessionDS.getTypeNameById(id);\n }\n\n saveDefaultCountry(): void {\n this._storage.saveDefaultCountry(this.country.value);\n }\n\n saveDefaultMethodName(): void {\n this._storage.saveDefaultMethodName(this.methodName);\n }\n\n saveDefaultCurrency(): void {\n this._storage.saveDefaultCurrency(this.currency.value);\n }\n\n get defaultCountry(): string {\n return this._storage.defaultCountry;\n }\n\n get defaultMethodName(): string {\n return this._storage.defaultMethodName;\n }\n\n get defaultCurrency(): string {\n return this._storage.defaultCurrency;\n }\n\n public cancelRequests() {\n this.cancelRequestsSubscriber.next();\n }\n\n public getPaymentValue() {\n const data: TerminalPaymentPrepareRequest = {\n typeId: this.method.value,\n currency: this.currency.value,\n type: this.getTypeNameById(this.method.value),\n user_currency: this.userCurrency.value,\n ...this.payment.getRawValue()\n }\n this.fields.forEach((field: PaymentField) => {\n if (field.type === PaymentFieldTypeEnum.Amount) {\n data[field.name] = +data[field.name];\n }\n });\n return removeEmptyProps(data);\n }\n updateValueAndValidityIframes(): void {\n this.fields.forEach(({ name, type }) => {\n if (type === PaymentFieldTypeEnum.Iframe) {\n this.payment.get(name).updateValueAndValidity({ emitEvent: false });\n }\n });\n }\n\n get readyIframesSubmit(): boolean {\n return this.fields\n .filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)\n .every(({ name, type }) => !this.payment.get(name).invalid);\n }\n\n isAmountEditable(): boolean {\n return this.sessionDS.getSessionValue().amountEditable;\n }\n\n hasWhatToFill() {\n const _hasWhatToFill = this.country.enabled || this.method.enabled || this.currency.enabled || this.isAmountEditable();\n const fields = this.fields;\n if (_hasWhatToFill) {\n return true;\n }\n if (!fields.length) {\n return false;\n }\n return fields.some((f) => {\n const control = this.payment.get(f.name);\n if (f.type === PaymentFieldTypeEnum.Amount) {\n return !control.valid;\n }\n return this.payment.get(f.name).enabled;\n });\n }\n\n setCDEError(code: I18N_KEY) {\n this.clearValidators();\n this.setValidators(() => {\n if (this.methodName === 'card') {\n return {cde_error: code};\n }\n return null;\n });\n this.updateValueAndValidity({emitEvent: false});\n }\n\n distinctValueChanges(): Observable<Partial<{ [x: string]: any }>> {\n return this.valueChanges.pipe(\n debounceTime(300),\n distinctUntilChanged((prev, curr) => {\n if (\n !prev ||\n !curr ||\n Object.keys(prev.payment).length !== Object.keys(curr.payment).length\n ) {\n return false;\n }\n return (\n prev.country === curr.country &&\n prev.method === curr.method &&\n prev.currency === curr.currency &&\n prev.payment.amount === curr.payment.amount\n );\n }),\n );\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.cancelRequestsSubscriber.next();\n this.cancelRequestsSubscriber.unsubscribe();\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { I18N_COUNTRIES } from '../models/constants';\n\n@Pipe({\n name: 'country_translate',\n pure: true,\n standalone: true\n})\nexport class CountryTranslatePipe implements PipeTransform {\n\tprivate i18n_countries = inject(I18N_COUNTRIES);\n\tprivate translateSrv = inject(TranslateService);\n\n\tconstructor() {\n\t}\n\n\ttransform(code: string, lang: string = this.translateSrv.currentLang): any {\n\t\treturn this.i18n_countries[lang][code] || code;\n\t}\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CountryTranslatePipe } from './country-translate.pipe';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OTHER_COUNTRY_CODE } from '../helpers/i18n-countries';\n\n@Pipe({\n name: 'countries_sort',\n pure: true,\n standalone: true\n})\nexport class CountriesSortPipe implements PipeTransform {\n\tprivate countryTranslatePipe = inject(CountryTranslatePipe);\n\tprivate translateSrv = inject(TranslateService);\n\n\tconstructor() {\n\t}\n\n\ttransform(types: string[], lang: string = this.translateSrv.currentLang): any {\n return types.sort((c1, c2) => {\n if (c1 === OTHER_COUNTRY_CODE) {\n return 1;\n }\n const c1Translation = this.countryTranslatePipe\n .transform(c1, lang);\n const c2Translation = this.countryTranslatePipe\n .transform(c2,lang );\n return c1Translation > c2Translation ? 1: (c1Translation === c2Translation ? 0 : -1);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\nimport { map } from 'rxjs/operators';\nimport { ScriptLoader } from '../../../../../services/script-loader';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\nimport { SessionDataSource } from \"../../../../../services/session.data-source\";\n\n@Injectable()\nexport class CardSdkService {\n private scriptLoaderSrv: ScriptLoader = inject(ScriptLoader);\n private sessionSrv = inject(SessionDataSource);\n private _sdk: CdeTerminalSdk;\n private _pending = false;\n private _submitted = false;\n\n markAsReady(): void {\n this._pending = false;\n }\n\n markAsSubmitted() {\n this._submitted = true;\n }\n\n get pending(): boolean {\n return this._pending;\n }\n\n public submit(): void {\n if (!this._submitted && this._sdk) {\n this._sdk.submit();\n this._pending = true;\n }\n }\n\n private get _ready$(): Observable<void> {\n return fromPromise(this.scriptLoaderSrv.fetchScript('cde_sdk'));\n }\n\n createCardTerminalSdk$(\n lang: string,\n id: string,\n tabindex?: number\n ): Observable<CdeTerminalSdk> {\n return this._ready$.pipe(\n map(() => (this._sdk = this.sessionSrv.createCardTerminalSdk(lang, id, tabindex))),\n );\n }\n}\n","import { Directive, forwardRef, inject } from '@angular/core';\nimport {\n AbstractControl,\n AsyncValidator,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n} from '@angular/forms';\nimport { I18N_KEY } from './../../../../../i18n/i18n-key.enum';\nimport { Observable, of, Subject } from 'rxjs';\nimport { CardSdkService } from './card-sdk.service';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\n\n@Directive({\n selector: '[appIframeValidatorDirective]',\n standalone: true,\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => IframeValidatorDirectiveDirective),\n multi: true,\n },\n ],\n})\nexport class IframeValidatorDirectiveDirective implements AsyncValidator {\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\n private _sdk: CdeTerminalSdk;\n\n private submitting$: Subject<ValidationErrors | null> = new Subject();\n\n private _fatalError: I18N_KEY;\n private _validationSdkError = false;\n\n registerSDK(sdk?: CdeTerminalSdk): void {\n if (!sdk) {\n this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;\n } else {\n this._sdk = sdk;\n this.handleSubmitting();\n }\n }\n\n private handleSubmitting(): void {\n this._sdk.onInputPending(() => {\n this._validationSdkError = true;\n });\n this._sdk.onError((code) => {\n this._validationSdkError = false;\n let codeError = I18N_KEY.ERROR_OCCUR;\n if (code === 501) {\n codeError = I18N_KEY.CDE_CARD_ERROR_501;\n } else if (code === 500) {\n codeError = I18N_KEY.CDE_CARD_ERROR_500;\n } else if (code === 504) {\n codeError = I18N_KEY.CDE_CARD_ERROR_504;\n }\n this._fatalError = codeError;\n });\n this._sdk.onInputReady(() => {\n this._validationSdkError = false;\n this.submitting$.next(null);\n });\n this._sdk.onInputSubmitted(() => {\n this._validationSdkError = false;\n this.submitting$.next(null);\n });\n this._sdk.onTimeout(() => {\n this._validationSdkError = false;\n this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;\n });\n }\n\n validate(\n control: AbstractControl,\n ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if (this._fatalError) {\n return of({ cde_error: this._fatalError });\n }\n if (this._validationSdkError) {\n return of({ cde_validation_error: true });\n }\n if (this.cardSdkSrv.pending) {\n return this.submitting$.asObservable();\n }\n return of(null);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Injector,\n Input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';\nimport { I18N_KEY } from '../../../../../i18n';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CardSdkService } from './card-sdk.service';\nimport { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';\nimport { insertRemoveTrigger } from '../../../../../helpers';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { CdeTerminalSdk } from './../../../../../models/cde-terminal-sdk';\n\nconst ID_CDE_CONTAINER = 'cde-container';\n\n@Component({\n selector: 'app-constructor-field-iframe',\n templateUrl: './constructor-field-iframe.component.html',\n styleUrls: ['./constructor-field-iframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldIframeComponent),\n multi: true,\n },\n CardSdkService,\n ],\n imports: [TranslateByKeyPipe, GmSkeletonComponent],\n hostDirectives: [\n {\n directive: IframeValidatorDirectiveDirective,\n },\n ],\n})\nexport class ConstructorFieldIframeComponent\n implements AfterViewInit, ControlValueAccessor\n{\n private _translateSrv: TranslateService = inject(TranslateService);\n private _cd: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _control: AbstractControl;\n private _injector: Injector = inject(Injector);\n private _destroyRef: DestroyRef = inject(DestroyRef);\n viewReady = false;\n\n @Input() tabIndex: number;\n\n private validator: IframeValidatorDirectiveDirective = inject(\n IframeValidatorDirectiveDirective,\n );\n\n private _sdk: CdeTerminalSdk;\n private cardSdkSrv: CardSdkService = inject(CardSdkService);\n\n private _loading = true;\n status: I18N_KEY;\n readonly I18N_KEY = I18N_KEY;\n\n readonly ID_CDE_CONTAINER = ID_CDE_CONTAINER;\n registerOnTouched(fn: any): void {}\n registerOnChange(fn: any): void {}\n writeValue(): void {}\n\n get loading(): boolean {\n return this._loading;\n }\n\n ngAfterViewInit(): void {\n this._control = this._injector.get(NgControl).control;\n this.cardSdkSrv\n .createCardTerminalSdk$(\n this._translateSrv.currentLang,\n this.ID_CDE_CONTAINER,\n this.tabIndex\n )\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe({\n next: (sdk: CdeTerminalSdk) => {\n this._sdk = sdk;\n this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());\n this.validator.registerSDK(sdk);\n this._init();\n },\n error: () => {\n this.validator.registerSDK();\n this._updateValueAndValidity();\n },\n });\n }\n\n private _updateValueAndValidity(): void {\n this.cardSdkSrv.markAsReady();\n this._control?.updateValueAndValidity({ onlySelf: true });\n this._cd.detectChanges();\n this.refreshHeight();\n }\n\n refreshHeight(): void {\n setTimeout(() => {\n this._sdk?.refreshHeight();\n this.viewReady = true;\n this._cd.detectChanges();\n }, 100);\n }\n\n private _init(): void {\n this._sdk.onInputPending(() => {\n this._loading = false;\n this._updateValueAndValidity();\n });\n\n this._sdk.onInputReady(() => {\n this._updateValueAndValidity();\n });\n\n this._sdk.onInputSubmitted(() => {\n this._loading = false;\n this.cardSdkSrv.markAsSubmitted();\n this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;\n this._updateValueAndValidity();\n });\n\n this._sdk.onTimeout(() => {\n this._updateValueAndValidity();\n });\n\n this._sdk.onError(() => {\n this._loading = false;\n this._updateValueAndValidity();\n });\n\n this._translateSrv.onLangChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe({\n next: (options: LangChangeEvent) => {\n if (!options.lang) {\n return;\n }\n this._sdk.useLang(options.lang);\n },\n });\n }\n}\n","@if (!status) {\n <div\n class=\"iframe-container\"\n [id]=\"ID_CDE_CONTAINER\"\n [class.iframe-container--ready]=\"viewReady\"\n ></div>\n} @else if (!loading) {\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\n}\n\n@if (loading) {\n <div class=\"trm-skeleton-fields\">\n @for (i of [1,2]; track i) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { SessionDataSource } from '../services/session.data-source';\n\n@Pipe({\n name: 'method_title',\n pure: true,\n standalone: true\n})\nexport class MethodTitlePipe implements PipeTransform {\n private sessionDS = inject(SessionDataSource);\n\n constructor() {\n }\n\n transform(name: string): any {\n return this.sessionDS.getConfiguration(name)?.title;\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { FocusHandler } from '../../helpers/key-down-handler';\n\n@Directive({\n selector: '[tabindex]',\n standalone: true\n})\nexport class TabIndexFocusDirective {\n\n @HostListener('focus', ['$event.target']) focus(target: HTMLElement) {\n Array.from(target.classList).some(cl => /--disabled$/.test(cl)) && FocusHandler.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MethodTypeType } from '../../../../../../codegen/model/models';\nimport { filter } from 'rxjs/operators';\nimport { MethodTitlePipe } from './../../../../../pipes/method-title.pipe';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { NgClass } from '@angular/common';\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\nimport {\n TrmSelectLabelTemplateDirective\n} from '../../../../../shared/components/trm-select/trm-select-label-template.directive';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'app-ps-select',\n templateUrl: './ps-select.component.html',\n styleUrls: ['./ps-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PsSelectComponent),\n multi: true,\n },\n MethodTitlePipe,\n TranslatePipe\n ],\n standalone: true,\n imports: [TabIndexFocusDirective, NgClass, TrmSelectComponent, FormsModule, ReactiveFormsModule, TrmSelectLabelTemplateDirective, MethodTitlePipe, TranslateByKeyPipe]\n})\nexport class PsSelectComponent implements OnInit, ControlValueAccessor {\n private cd = inject(ChangeDetectorRef);\n private methodTitlePipe = inject(MethodTitlePipe);\n private translatePipe = inject(TranslatePipe);\n private destroyRef: DestroyRef = inject(DestroyRef);\n I18N_KEY = I18N_KEY;\n onChange = (_value) => {\n };\n onTouch = () => {\n };\n @Input() methods: MethodTypeType[] = [];\n disabled = false;\n @Input() tabIndex: number;\n\n selectedType: number;\n otherMethodControl: FormControl = new FormControl<number>(undefined);\n searchString: string;\n\n get popularMethods(): MethodTypeType[] {\n if (this.disabled) {\n return null;\n }\n return this.methods.slice(0, 4);\n }\n\n get otherMethods(): MethodTypeType[] {\n if (this.disabled) {\n return this.methods.slice(0);\n }\n return this.methods\n .slice(this.popularMethods.length)\n .filter((m: MethodTypeType) => {\n if (!this.searchString) {\n return true;\n } else {\n const title: string = this.translatePipe.transform(\n this.methodTitlePipe.transform(m.name)\n );\n return title.toLowerCase()\n .split(' ').some(\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n });\n }\n\n ngOnInit() {\n this.otherMethodControl\n .valueChanges\n .pipe(\n filter(m => !!m),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((method) => this.selectMethod(method));\n }\n\n selectMethod(method: number, options: { emitChange: boolean } = {emitChange: true}) {\n if (!method || this.selectedType === method) {\n return;\n }\n this.selectedType = method;\n if (options?.emitChange) {\n this.onChange(method);\n }\n const hasInOtherList = this.otherMethods.some(m => m.id === method);\n this.otherMethodControl.setValue(hasInOtherList ? method : undefined, {emitEvent: false, onlySelf: true});\n }\n\n writeValue(method: number) {\n this.cd.detectChanges();\n this.selectMethod(method, {emitChange: false});\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled\n if (isDisabled) {\n if (!this.otherMethodControl.value && this.selectedType) {\n this.otherMethodControl.setValue(this.selectedType, {emitEvent: false, onlySelf: true});\n }\n this.otherMethodControl.disable();\n } else {\n this.otherMethodControl.enable();\n }\n this.cd.detectChanges();\n }\n\n search(value: string) {\n this.searchString = value;\n this.cd.markForCheck();\n }\n}\n","<label class=\"trm-label\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}}\n</label>\n<ul class=\"methods\">\n @for (method of popularMethods; track method.id) {\n <li class=\"method\"\n [class.method--selected]=\"selectedType === method.id\"\n [tabindex]=\"tabIndex\"\n (keydown.enter)=\"$event.stopPropagation(); selectMethod(method.id)\"\n (blur)=\"onTouch()\"\n (click)=\"selectMethod(method.id)\"\n >\n <span class=\"method__icon\"\n [ngClass]=\"'ps-icon-'+method.name\"\n ></span>\n <span class=\"method__name\" [title]=\"method.name | trans\" > {{method.name | method_title | trans}} </span>\n </li>\n }\n @if (searchString || otherMethods.length) {\n <li class=\"methods__other\">\n <app-trm-select [data]=\"otherMethods\"\n idLabel=\"method\"\n (search)=\"search($event)\"\n [tabIndex]=\"tabIndex\"\n (open)=\"onTouch()\"\n [formControl]=\"otherMethodControl\"\n [placeholder]=\"I18N_KEY.CONSTRUCTOR_PLACEHOLDER_PS | trans\"\n class=\"c-field-select trm-form-field\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"method__icon\"\n [ngClass]=\"'ps-icon-'+item.name\"></span>\n <span class=\"method__name\"\n [title]=\"item.name | trans\" >{{item.name | method_title | trans}}</span>\n </ng-template>\n </app-trm-select>\n </li>\n }\n</ul>\n<ng-content select=\"[app-ps-select-hint]\"></ng-content>\n<ng-content select=\"[app-ps-select-error]\"></ng-content>\n\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n inject,\n Injector,\n Input\n} from '@angular/core';\nimport { PaymentField, PaymentFieldOptionsItem } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';\n\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-field-select',\n templateUrl: './constructor-field-select.component.html',\n styleUrls: ['./constructor-field-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldSelectComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe]\n})\nexport class ConstructorFieldSelectComponent implements ControlValueAccessor, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private injector = inject(Injector);\n @Input() config: PaymentField;\n @Input() items: PaymentFieldOptionsItem[];\n @Input() tabIndex: number;\n searchString: string;\n I18N_KEY = I18N_KEY;\n\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n control: AbstractControl;\n\n get data() {\n if (!this.items) {\n return [];\n }\n return this.items\n .filter((option: PaymentFieldOptionsItem) => {\n if (!this.searchString) {\n return true;\n } else {\n const title: string = option.name;\n return title.toLowerCase()\n .split(' ').some(\n ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n })\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n search(searchString: string) {\n this.searchString = searchString;\n this.cd.markForCheck();\n }\n\n writeValue(value: any) {\n this.cd.markForCheck();\n }\n\n get apiError(): string {\n return this.control?.getError('error');\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n }\n}\n","@if (control) {\n <app-trm-select [data]=\"data\"\n [placeholder]=\"config.placeholder | trans\"\n [label]=\"config.label | trans\"\n [name]=\"config.name\"\n (search)=\"search($event)\"\n (open)=\"onTouch()\"\n [formControl]=\"control\"\n [tabIndex]=\"tabIndex\"\n class=\"c-field-select trm-form-field\"\n ></app-trm-select>\n @if (control.hasError('required') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n @if (control.hasError('error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ apiError | trans }}\n </div>\n }\n\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ control.getError('custom_error') | trans }}\n </div>\n }\n\n}\n","import { NgxMaskService } from 'ngx-mask';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class MaskService extends NgxMaskService {\n constructor() {\n super();\n }\n\n numberToString(value: number | string): string {\n return super.numberToString(value).replace(/,/g,'.');\n }\n applyMask(inputValue: string, maskExpression: string, position?: number, justPasted?: boolean, backspaced?: boolean, cb?: (...args: any[]) => any): string {\n // Fix bug of cursor position in ngx-mask\n this['_shift'].clear();\n return super.applyMask(inputValue, maskExpression, position, justPasted, backspaced, cb);\n }\n}\n","import { Directive } from '@angular/core';\nimport { NgxMaskService } from 'ngx-mask';\nimport { MaskService } from '../services/mask.service';\n\n@Directive({\n providers: [{\n provide: NgxMaskService,\n useClass: MaskService\n }],\n selector: 'input[mask]',\n standalone: true\n})\nexport class InputMaskCorrector { }\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { FORMAT_DATE, PaymentField, PaymentFieldTypeEnum } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { MatDatepicker, MatDatepickerInput } from '@angular/material/datepicker';\nimport momentjs from 'moment-timezone';\nimport { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';\nimport { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';\nimport { IConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { removeSpecSymbols } from '../../../../../helpers/phone-codes';\nimport { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';\nimport { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-constructor-field-text',\n templateUrl: './constructor-field-text.component.html',\n styleUrls: ['./constructor-field-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldTextComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe]\n})\nexport class ConstructorFieldTextComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private maskSrv = inject(MaskResolver);\n private injector = inject(Injector);\n private maskPipe = inject(NgxMaskPipe);\n\n private unsub: Subject<void> = new Subject<void>();\n private _type = 'text';\n\n get disabled() {\n return this.config.readonly || false;\n };\n\n readonly FORMAT_DATE = FORMAT_DATE;\n mask: string;\n dropSpecialCharacters = true;\n I18N_KEY = I18N_KEY;\n\n @Input() config: PaymentField;\n\n get inputmode(): \"text\" | \"tel\" | \"numeric\" | \"email\" | \"url\" | \"none\" {\n return this.config.inputMode || 'text';\n }\n\n @Input() matDatepicker: MatDatepicker<momentjs.Moment>;\n @Input() tabIndex: number;\n @Output() maskedValueChange: EventEmitter<string> = new EventEmitter();\n control: AbstractControl;\n @ViewChild(NgxMaskDirective) dir: NgxMaskDirective;\n maskPatterns: IConfig['patterns'];\n specialCharacters: string[];\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n\n constructor() {\n }\n\n get type() {\n if (this.config.type === PaymentFieldTypeEnum.Email) {\n return 'email';\n }\n return this._type;\n }\n\n get name() {\n return this.config.name;\n }\n\n onDateInput(e: InputEvent) {\n const target: HTMLInputElement = e.target as HTMLInputElement;\n let {selectionStart, selectionEnd} = target;\n this.control?.markAsUntouched();\n e.preventDefault();\n e.stopPropagation();\n target.value = this.maskPipe\n .transform(target.value, this.mask, {patterns: this.maskPatterns})\n .replace(/^-|-$/, '');\n\n setTimeout(() => {\n this.control?.updateValueAndValidity();\n\n if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {\n while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {\n selectionEnd += 1;\n selectionStart += 1;\n }\n }\n target.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n onPaste(e: ClipboardEvent) {\n const t = e.target as HTMLInputElement;\n if (this.type === PaymentFieldTypeEnum.Email) {\n this._emitMaskedValueChanges(t);\n return;\n }\n const value = t.value;\n let content = e.clipboardData?.getData('text') || '';\n let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;\n if (value) {\n const arr = Array.from(value);\n arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));\n content = removeSpecSymbols(arr.join(''));\n }\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);\n this.cd.detectChanges();\n this.control?.setValue(content);\n this.cd.detectChanges();\n e.preventDefault();\n this._emitMaskedValueChanges(t, selectionStart);\n }\n\n onInput(e: InputEvent) {\n this.control?.markAsUntouched();\n this.cd.markForCheck();\n if (this.matDatepicker) {\n return;\n }\n const target = e.target as HTMLInputElement;\n if (this.type === PaymentFieldTypeEnum.Email) {\n this._emitMaskedValueChanges(target);\n return;\n }\n const value: string = this.control?.value;\n let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;\n const mask = this.maskSrv.getMaskByValue(this.config.mask, value);\n if (!mask || mask === INITIAL_PHONE_MASK) {\n return;\n }\n this.mask = mask;\n\n this.cd.detectChanges();\n this._emitMaskedValueChanges(target, selectionStart);\n }\n\n private _emitMaskedValueChanges(target, positionInUnmaskedValue?) {\n setTimeout(() => {\n this.control?.updateValueAndValidity();\n if (this.mask) {\n this.maskedValueChange.emit(target.value);\n }\n this._setSelection(target, positionInUnmaskedValue);\n });\n }\n\n private _setSelection(target: HTMLInputElement, positionInUnmaskedValue?) {\n if (this.type === PaymentFieldTypeEnum.Email) {\n return;\n }\n let positionMaskedValue = 0;\n let i = 0;\n while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {\n if (/\\d/.test(target.value[positionMaskedValue])) {\n i++;\n }\n positionMaskedValue++;\n }\n target.setSelectionRange(positionMaskedValue, positionMaskedValue);\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n }\n\n get apiError(): string {\n return this.control?.getError('error');\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: any) {\n if (value) {\n this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);\n }\n this.cd.markForCheck();\n }\n\n ngOnInit() {\n this.mask = this.maskSrv.getMaskByValue(this.config.mask);\n if (this.config.maskValidation !== true) {\n this.config.maskValidation = false;\n }\n this.maskPatterns = this.maskSrv.getPatterns(this.config);\n this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];\n this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;\n }\n\n ngOnDestroy() {\n this.unsub.next();\n this.unsub.unsubscribe();\n }\n}\n","@if (control) {\n <label class=\"trm-label\"\n [for]=\"config.name\"\n > {{ config.label | trans }} </label>\n <div class=\"input-wrapper trm-form-field-wrapper c-text\"\n [class.c-text--disabled]=\"disabled\"\n [class.c-text--uppercase]=\"config.uppercase\">\n @if (!matDatepicker) {\n <input\n class=\"trm-form-field trm-input\"\n [class.trm-form-field--disabled]=\"disabled\"\n [placeholder]=\"config.placeholder | trans\"\n (blur)=\"onTouch()\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (paste)=\"onPaste($event)\"\n [type]=\"type\"\n [name]=\"name\"\n [id]=\"name\"\n [mask]=\"mask\"\n [attr.inputmode]=\"inputmode\"\n [patterns]=\"maskPatterns\"\n [allowNegativeNumbers]=\"false\"\n [thousandSeparator]=\"' '\"\n [decimalMarker]=\"'.'\"\n [validation]=\"config.maskValidation || false\"\n [specialCharacters]=\"specialCharacters\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [tabindex]=\"tabIndex\"\n />\n } @else {\n <input class=\"trm-form-field trm-input\"\n [matDatepicker]=\"matDatepicker\"\n [formControl]=\"control\"\n [placeholder]=\"config.placeholder | trans\"\n (input)=\"onDateInput($event)\"\n [attr.inputmode]=\"inputmode\"\n (blur)=\"onTouch()\"\n [min]=\"config?.options?.min\"\n [max]=\"config?.options?.max\"\n [tabindex]=\"tabIndex\"\n type=\"text\"\n [name]=\"name\"\n [id]=\"name\"\n />\n }\n <ng-content select=\"[app-c-text-suffix]\"></ng-content>\n </div>\n @if (config.description) {\n <div class=\"c-text__hint\"\n [innerHTML]=\"config.description | trans\"></div>\n }\n <ng-content select=\"[app-c-text-hint]\"></ng-content>\n @if (control.hasError('required') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n @if (control.hasError('email') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_EMAIL | trans }}\n </div>\n }\n @if (control.hasError('min') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_MIN | trans }}\n </div>\n }\n @if (control.hasError('max') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_MAX | trans }}\n </div>\n }\n @if (control.hasError('pattern') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('mask') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('matDatepickerParse') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ I18N_KEY.VALIDATION_PATTERN | trans }}\n </div>\n }\n @if (control.hasError('matDatepickerMin') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ (I18N_KEY.VALIDATION_DATE_MIN | trans) + ' ' + control.getError('matDatepickerMin').min.format(FORMAT_DATE) }}\n </div>\n }\n @if (control.hasError('matDatepickerMax') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ (I18N_KEY.VALIDATION_DATE_MAX | trans) + ' ' + control.getError('matDatepickerMax').max.format(FORMAT_DATE) }}\n </div>\n }\n @if (control.hasError('error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ apiError | trans }}\n </div>\n }\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ control.getError('custom_error') | trans }}\n </div>\n }\n}\n","import { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CurrencyPipe, NgTemplateOutlet } from '@angular/common';\nimport { PaymentFieldOptions } from \"../../models\";\nimport { insertRemoveTrigger } from \"../../../../../helpers\";\nimport { TerminalTplComponent } from '../../../../../terminal-tpl.component';\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\n\n@Component({\n selector: 'app-method-amount-hint',\n templateUrl: './method-amount-hint.component.html',\n styleUrls: ['./method-amount-hint.component.scss'],\n standalone: true,\n animations: [insertRemoveTrigger],\n providers: [CurrencyPipe],\n imports: [TranslateByKeyPipe, NgTemplateOutlet, TrmAmountComponent],\n host: {\n '[hidden]': '!loading && (!options || (!options.fee && !options.fixedFee && !options.minFixedFee && !options.min && !options.max))'\n }\n})\nexport class MethodAmountHintComponent {\n private mainTpl: TerminalTplComponent = inject(TerminalTplComponent);\n @Input() loading: boolean;\n @Input() options: PaymentFieldOptions = {};\n I18N_KEY = I18N_KEY;\n\n get feeTpl(): TemplateRef<any> {\n return this.mainTpl.feeTpl;\n }\n}\n","<div class=\"c-method-hint\" @insertRemove>\n @if (loading) {\n <span class=\"trm-spinner\" @insertRemove></span>\n }\n @if (options.fee || options.fixedFee) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_FEE | trans) }}\n @if (options.fee) {\n <span class=\"trm-amount\">\n <span class=\"trm-amount__value\">{{ options.fee }}<span class=\"trm-currency\">%</span></span>\n </span>\n }\n @if (options.fixedFee && options.fee) {\n <span> + </span>\n }\n @if (options.fixedFee) {\n <trm-amount [value]=\"options.fixedFee\" [code]=\"options.currency\"></trm-amount>\n }\n @if (options.minFixedFee) {\n ({{ I18N_KEY.CONSTRUCTOR_LABEL_MIN_FIXED_FEE | trans }}<trm-amount [value]=\"options.minFixedFee\" [code]=\"options.currency\"></trm-amount>)\n }\n </div>\n }\n @if (options.min) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MIN_AMOUNT | trans) }}\n <trm-amount [value]=\"options.min\" [code]=\"options.currency\"></trm-amount>\n </div>\n }\n @if (options.max) {\n <div @insertRemove>\n {{ (I18N_KEY.CONSTRUCTOR_LABEL_MAX_AMOUNT | trans) }}\n <trm-amount [value]=\"options.max\" [code]=\"options.currency\"></trm-amount>\n </div>\n }\n\n @if (feeTpl) {\n <div *ngTemplateOutlet=\"feeTpl; context: {options}\" @insertRemove></div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n forwardRef,\n inject,\n Injector,\n Input\n} from '@angular/core';\nimport { FORMAT_DATE, PaymentField } from '../../models';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgControl,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { isMoment, Moment } from 'moment';\nimport { ConstructorFieldTextComponent } from '../constructor-field-text/constructor-field-text.component';\nimport { MatDatepicker, MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'app-constructor-field-date',\n templateUrl: './constructor-field-date.component.html',\n styleUrls: ['./constructor-field-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ConstructorFieldDateComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [ConstructorFieldTextComponent, FormsModule, ReactiveFormsModule, MatDatepickerToggle, MatDatepickerToggleIcon, MatDatepicker]\n})\nexport class ConstructorFieldDateComponent implements ControlValueAccessor, AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private injector = inject(Injector);\n private destroyRef: DestroyRef = inject(DestroyRef);\n\n readonly FORMAT_DATE = FORMAT_DATE;\n @Input() config: PaymentField;\n @Input() tabIndex: number;\n control: AbstractControl;\n\n get startCalendarDate(): Moment {\n return this.config.options?.startCalendarDate;\n }\n\n onChange = (_value: any) => {\n };\n onTouch = () => {\n };\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: unknown) {\n if (isMoment(value) || typeof value === 'string') {\n if (isMoment(value)) {\n this.control?.setValue(value.format(FORMAT_DATE), {emitEvent: false});\n } else {\n this.control?.setValue(value, {emitEvent: false});\n }\n this.cd.markForCheck();\n }\n }\n\n ngAfterViewInit() {\n this.control = this.injector.get(NgControl).control;\n this.cd.detectChanges();\n\n this.control\n .valueChanges\n .pipe(\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((value) => {\n if (isMoment(value)) {\n this.onChange(value.format(this.FORMAT_DATE));\n }\n });\n }\n}\n","@if (control) {\n <app-constructor-field-text\n class=\"c-date__input\"\n [tabIndex]=\"tabIndex\"\n [config]=\"config\"\n [formControl]=\"control\"\n [matDatepicker]=\"picker\">\n <mat-datepicker-toggle [for]=\"picker\"\n app-c-text-suffix\n class=\"date__toggle\"\n [tabIndex]=\"tabIndex\"\n >\n <div class=\"date__toggleIcon\"\n matDatepickerToggleIcon\n app-c-text-suffix></div>\n </mat-datepicker-toggle>\n </app-constructor-field-text>\n\n <mat-datepicker #picker [tabIndex]=\"tabIndex\" [startAt]=\"startCalendarDate\"></mat-datepicker>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { I18N_KEY } from './../../../../../i18n';\nimport { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';\nimport { CurrencyPipe } from '@angular/common';\nimport { TrmAmountComponent } from '../../../../../shared/components/trm-amount/trm-amount.component';\n\n@Component({\n selector: 'app-constructor-preparation',\n templateUrl: './constructor-preparation.component.html',\n styleUrls: ['./constructor-preparation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [CurrencyPipe],\n imports: [TranslateByKeyPipe, TrmAmountComponent]\n})\nexport class ConstructorPreparationComponent {\n @Input() maskedWallet = null;\n @Input() wallet: string;\n @Input() confirmationText: string;\n @Input() methodName: string;\n @Input() currency: string;\n @Input() amount: number;\n @Input() total: number;\n I18N_KEY = I18N_KEY;\n}\n","<div class=\"confirmation\">\n <h5> {{ I18N_KEY.CONSTRUCTOR_PREPARATION_HEADER | trans }} </h5>\n <div class=\"confirmation__content\">\n <ul class=\"confirmation__list\">\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_PS | trans}} </div>\n <div class=\"confirmation__value\"> {{methodName | trans}} </div>\n </li>\n\n @if (maskedWallet || wallet) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_WALLET | trans}} </div>\n <div class=\"confirmation__value\"> {{ maskedWallet || wallet}} </div>\n </li>\n }\n\n @if (amount) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT | trans}} </div>\n <div class=\"confirmation__value\">\n <trm-amount [value]=\"amount\" [code]=\"currency\"></trm-amount>\n </div>\n </li>\n }\n\n @if (total) {\n <li class=\"confirmation__list__item\">\n <div class=\"confirmation__header\"> {{I18N_KEY.CONSTRUCTOR_LABEL_AMOUNT_FEE | trans}} </div>\n <div class=\"confirmation__value\">\n <trm-amount [value]=\"total\" [code]=\"currency\"></trm-amount>\n </div>\n </li>\n }\n </ul>\n @if (confirmationText) {\n <p\n class=\"confirmation__text\" [innerHTML]=\"confirmationText\"></p>\n }\n <ng-content selector=\"[app-constructor-preparation-error]\"></ng-content>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport { PaymentField, PaymentFieldOptions, PaymentFieldTypeEnum, TerminalStep } from './models';\nimport { ConstructorFormService } from './services/constructor-form.service';\nimport {\n MethodType,\n MethodTypeType,\n TerminalPaymentConfirmResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../../../codegen/model/models';\nimport { insertRemoveTrigger } from './../../../helpers/insertRemoveTrigger';\nimport { distinctUntilChanged, Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CountriesSortPipe } from '../../../pipes/countries-sort.pipe';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { I18N_KEY } from './../../../i18n';\nimport {\n ConstructorFieldIframeComponent\n} from \"./components/constructor-field-iframe/constructor-field-iframe.component\";\nimport { CountryTranslatePipe } from '../../../pipes/country-translate.pipe';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { TrmSelectComponent } from '../../../shared/components/trm-select/trm-select.component';\nimport {\n TrmSelectLabelTemplateDirective\n} from '../../../shared/components/trm-select/trm-select-label-template.directive';\nimport { PsSelectComponent } from './components/ps-select/ps-select.component';\nimport {\n ConstructorFieldSelectComponent\n} from './components/constructor-field-select/constructor-field-select.component';\nimport { ConstructorFieldTextComponent } from './components/constructor-field-text/constructor-field-text.component';\nimport { MethodAmountHintComponent } from './components/method-amount-hint/method-amount-hint.component';\nimport { ConstructorFieldDateComponent } from './components/constructor-field-date/constructor-field-date.component';\nimport {\n ConstructorPreparationComponent\n} from './components/constructor-preparation/constructor-preparation.component';\nimport { TabIndexFocusDirective } from '../../directives/tab-index-focus.directive';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\nimport { OTHER_COUNTRY_CODE } from \"../../../helpers\";\nimport { CardSdkService } from \"./components/constructor-field-iframe/card-sdk.service\";\n\n@Component({\n selector: 'app-constructor-form',\n templateUrl: './constructor-form.component.html',\n styleUrls: ['./constructor-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [insertRemoveTrigger],\n providers: [\n ConstructorFormService,\n CountryTranslatePipe, CountriesSortPipe\n ],\n standalone: true,\n imports: [CountryTranslatePipe, CountriesSortPipe, FormsModule, ReactiveFormsModule, TrmSelectComponent, TrmSelectLabelTemplateDirective, NgClass, PsSelectComponent, NgTemplateOutlet, ConstructorFieldIframeComponent, ConstructorFieldSelectComponent, ConstructorFieldTextComponent, MethodAmountHintComponent, ConstructorFieldDateComponent, ConstructorPreparationComponent, TabIndexFocusDirective, CountryTranslatePipe, TranslateByKeyPipe, GmSkeletonComponent]\n})\nexport class ConstructorFormComponent implements OnChanges, AfterViewInit, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n form = inject(ConstructorFormService);\n private translateSrv = inject(TranslateService);\n private countriesSortPipe = inject(CountriesSortPipe);\n private countryTranslatePipe = inject(CountryTranslatePipe);\n private ngScrollBar = inject(NgScrollbar);\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n private unSubscriber = new Subject<void>();\n private preparationStepFilled = false;\n TERMINAL_STEP = TerminalStep;\n @Input() step: TerminalStep;\n @Input() error?: string;\n @Input() response: TerminalPaymentPrepareResponse & TerminalPaymentConfirmResponse & {\n typeId?: number;\n };\n CONSTRUCTOR_FIELD_TYPES = PaymentFieldTypeEnum;\n @Input() feeLoading: boolean;\n @Input() feeOptions: PaymentFieldOptions;\n @Input() currency: string;\n @Input() userCurrency: string[];\n @Input() loading = null;\n @Input() types: MethodType[] = [];\n @Input() canReturnToProject = true;\n @Output() amountChanged: EventEmitter<number> = new EventEmitter<number>();\n @Output() back: EventEmitter<void> = new EventEmitter<void>();\n @Output() prepare: EventEmitter<any> = new EventEmitter<any>();\n @Output() confirm: EventEmitter<any> = new EventEmitter<any>();\n @Output() onPaymentChanged: EventEmitter<any> = new EventEmitter<any>();\n @Input() tabIndex: number;\n countrySearchString: string;\n @ViewChild('paymentRequisites', {static: false}) requisites: ElementRef;\n @ViewChild('hintMethod', {static: false}) hintMethod: ElementRef;\n @ViewChildren(CardSdkService) sdkList: QueryList<CardSdkService>;\n maskedWallet: string;\n\n I18N_KEY = I18N_KEY;\n\n get countriesList(): string[] {\n return this.countriesSortPipe\n .transform(\n this.types\n .map(type => type.countryISOCode)\n .filter((value, index, self) => self.indexOf(value) === index)\n )\n .filter((m: string) => {\n if (!this.countrySearchString) {\n return true;\n } else {\n const title: string = this.countryTranslatePipe.transform(m);\n return title.toLowerCase()\n .split(' ').some(\n ts => this.countrySearchString.toLowerCase().split(' ').some(s => ts.includes(s))\n );\n }\n });\n }\n\n get methodsList(): MethodTypeType[] {\n return this.types\n .filter(type => type.countryISOCode === this.form.country.value)\n // distinct\n .filter((type, index, self) => self.map(m => m.type.id).indexOf(type.type.id) === index)\n //sorting by the priority\n .sort((m1, m2) => m1.priority > m2.priority ? 1 : ((m1.priority === m2.priority) ? 0 : -1))\n .map(type => type.type);\n }\n\n get currenciesList() {\n return this.types\n .filter(type => type.countryISOCode === this.form.country.value && type.type.id === this.form.method.value)\n .map(type => type.currency)\n }\n\n get userCurrenciesList() {\n const filteredTypes = this.currenciesList;\n\n if (!this.userCurrency) {\n return filteredTypes;\n }\n\n return this.userCurrency\n .filter(userCurrency => filteredTypes.includes(userCurrency))\n }\n\n private setCurrencyValue() {\n let defaultCurrency = this.form.defaultCurrency;\n\n let currencies = this.currenciesList;\n let currency = currencies[0];\n if (defaultCurrency && this.currenciesList.includes(defaultCurrency)) {\n currency = defaultCurrency;\n } else if (this.currency && this.currenciesList.includes(this.currency)) {\n currency = this.currency;\n }\n this.form.currency.setValue(currency);\n\n currencies = this.userCurrenciesList;\n currency = currencies[0];\n if (defaultCurrency && this.userCurrenciesList.includes(defaultCurrency)) {\n currency = defaultCurrency;\n } else if (this.currency && this.userCurrenciesList.includes(this.currency)) {\n currency = this.currency;\n }\n this.form.userCurrency.setValue(currency, {emitEvent: false});\n if (currencies.length === 1 && currency && this.form.method.disabled) {\n this.form.userCurrency.disable();\n }\n }\n\n get hasCurrencyMethodSelector(): boolean {\n return this.versionSrv.hasCurrencyMethodSelector === true;\n }\n\n get lang(): string {\n return this.translateSrv.currentLang;\n }\n\n get skeletonLength() {\n return new Array(this.form.fields?.length || 3).fill(0);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.types && this.types?.length || changes.currency && this.currency) {\n // Get configuration fields\n const countries = this.countriesList;\n const defaultCountry = this.form.defaultCountry;\n let country = null;\n if (!countries.includes(defaultCountry)) {\n if (countries.includes(OTHER_COUNTRY_CODE)) {\n country = OTHER_COUNTRY_CODE;\n }\n } else {\n country = defaultCountry;\n }\n this.form.country.setValue(country);\n if (!country) {\n return;\n }\n if (countries.length === 1 && this.form.country.value) {\n this.form.country.disable();\n }\n\n const methods = this.methodsList;\n const defaultMethodName = this.form.defaultMethodName;\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\n this.form.method.setValue(defaultMethod || methods[0]?.id);\n\n this.cd.detectChanges();\n if (methods.length === 1 && this.form.country.disabled) {\n this.form.method.disable();\n }\n this.cd.detectChanges();\n this.setCurrencyValue();\n this.cd.detectChanges();\n\n this.form\n .distinctValueChanges()\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => this.onPaymentChanged.emit(this.form.getRawValue()));\n this.fetchForm();\n }\n\n if (changes.step?.currentValue && !changes.types && !changes.currency) {\n this.fetchForm();\n }\n\n if (changes.feeOptions && !changes.feeOptions.firstChange) {\n // need for triggering of the custom validator\n this.form.amount?.updateValueAndValidity();\n }\n\n if (this.step === TerminalStep.Confirmation) {\n this.preparationStepFilled = true;\n }\n }\n\n ngAfterViewInit() {\n this.form\n .country\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.cd.detectChanges();\n this.form.saveDefaultCountry();\n this.form.method.setValue(this.methodsList[0].id, {emitEvent: false});\n\n const methods = this.methodsList;\n const defaultMethodName = this.form.defaultMethodName;\n const defaultMethod = methods.find(m => m.name === defaultMethodName)?.id;\n this.form.method.setValue(defaultMethod || methods[0].id, {emitEvent: false});\n this.cd.detectChanges();\n\n this.setCurrencyValue();\n this.cd.detectChanges();\n\n this.fetchForm();\n });\n this.form\n .method\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.form.method.clearValidators();\n this.form.saveDefaultMethodName();\n this.setCurrencyValue();\n this.cd.detectChanges();\n this.fetchForm();\n })\n this.form\n .currency\n .valueChanges\n .pipe(\n distinctUntilChanged((a, b) => a === b),\n takeUntil(this.unSubscriber)\n )\n .subscribe(() => {\n this.fetchForm();\n this.form.saveDefaultCurrency();\n });\n }\n\n private fetchForm() {\n if (!this.form.method.value) {\n this.form.ready = true;\n return;\n }\n this.form.cancelRequests();\n if (this.step !== this.TERMINAL_STEP.Prepare) {\n return;\n }\n this.form.removePaymentFormControls();\n this.cd.detectChanges();\n this.form\n .init()\n .subscribe(() => {\n if (!this.preparationStepFilled && !this.form.hasWhatToFill()) {\n this.send();\n return;\n }\n this.form.payment.updateValueAndValidity({ onlySelf: true });\n this.cd.detectChanges();\n this.scrollToRequisits();\n this.form.maskedWallet = '';\n }, (err) => {\n this.form.payment.updateValueAndValidity({ onlySelf: true });\n this.cd.markForCheck();\n });\n }\n\n private scrollToRequisits() {\n if (this.requisites || this.hintMethod) {\n this.ngScrollBar?.scrollToElement(this.hintMethod?.nativeElement || this.requisites.nativeElement, {\n duration: 500,\n top: -75\n });\n }\n }\n\n get description() {\n return typeof this.form.config?.description === 'function' ? this.form.config?.description(this.form.getRawValue()) : this.form.config?.description;\n }\n\n submit() {\n if (this.feeLoading) {\n return;\n }\n if (this.step === TerminalStep.Confirmation) {\n this.confirm.emit();\n return;\n }\n\n if (this.form.config === null || !this.form.ready) {\n return;\n }\n this.triggerIframeSubmit();\n if (this.form.invalid || this.error) {\n Object.values(this.form.controls).forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n });\n Object.values(this.form.payment.controls).forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n control.updateValueAndValidity({ emitEvent: false });\n });\n this.cd.detectChanges();\n return;\n }\n\n if (this.form.pending) {\n this.form.statusChanges\n .pipe(first(), takeUntil(this.unSubscriber))\n .subscribe((status) => {\n if (status === 'VALID') {\n this.send();\n }\n });\n } else {\n this.send();\n }\n }\n\n private triggerIframeSubmit() {\n if (!this.form.readyIframesSubmit) {\n return;\n }\n this.sdkList?.forEach((sdk: CardSdkService) => sdk.submit());\n this.form.updateValueAndValidityIframes();\n }\n\n private send() {\n const data: TerminalPaymentPrepareRequest = this.form.getPaymentValue();\n this.maskedWallet = this.form.maskedWallet;\n this.prepare.emit(data);\n }\n\n searchCountry(value) {\n this.countrySearchString = value;\n this.cd.markForCheck();\n }\n\n get backBtnLabel(): string {\n if (this.step === TerminalStep.Prepare) {\n return I18N_KEY.CONSTRUCTOR_LABEL_CANCEL_RETURN;\n }\n return I18N_KEY.CONSTRUCTOR_LABEL_RETURN;\n }\n\n changeTextFieldValue(maskedValue, field: PaymentField) {\n if (field.wallet) {\n this.form.maskedWallet = maskedValue;\n this.cd.markForCheck();\n }\n }\n\n public ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n }\n}\n","<form class=\"constructor\"\n [formGroup]=\"form\"\n (ngSubmit)=\"submit()\"\n >\n @if (loading !== null) {\n @if (step === TERMINAL_STEP.Prepare) {\n <div class=\"constructor__fields\">\n @if (countrySearchString || countriesList.length > 1) {\n <div class=\"constructor__field\">\n <app-trm-select [data]=\"countriesList\"\n @insertRemove\n name=\"country\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_COUNTRY | trans\"\n formControlName=\"country\"\n class=\"c-field-select trm-form-field\"\n (search)=\"searchCountry($event)\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"fi\"\n [ngClass]=\"'fi-' + item.toLowerCase()\"></span>\n <span class=\"method__name\">{{item | country_translate: lang}}</span>\n </ng-template>\n </app-trm-select>\n </div>\n }\n @if (form.country.value) {\n <app-ps-select [methods]=\"methodsList\"\n @insertRemove\n formControlName=\"method\"\n [tabIndex]=\"tabIndex\"\n >\n @if (form.config?.description) {\n <div class=\"constructor__hint text--warn\"\n app-ps-select-hint\n #hintMethod\n @insertRemove\n >\n {{description | trans }}\n </div>\n }\n </app-ps-select>\n\n @if (\n form.method?.hasError('required') &&\n form.method.touched &&\n form.method.dirty\n ) {\n <div class=\"gm-error\" @insertRemove>\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\n </div>\n }\n }\n\n @if (form.ready) {\n <div formGroupName=\"payment\"\n @insertRemove\n #paymentRequisites\n class=\"constructor__fields constructor__fields--reverse\">\n @if (form.method.value && form.amountDynamic) {\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {label: I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans, tabIndex: 0}\"></ng-container>\n }\n @for (field of form.fields; track field.name; let i = $index) {\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Iframe) {\n @if (form.payment.get(field.name)?.hasError('cde_error')) {\n <div class=\"constructor__hint cde-error\" @insertRemove>\n {{\n form.payment.get(field.name).getError('cde_error')\n | trans\n }}\n </div>\n }\n <app-constructor-field-iframe\n [formControlName]=\"field.name\"\n @insertRemove\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n </app-constructor-field-iframe>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Select) {\n <app-constructor-field-select\n @insertRemove\n [config]=\"field\"\n [items]=\"field?.options?.items\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n ></app-constructor-field-select>\n }\n @if ([CONSTRUCTOR_FIELD_TYPES.Text, CONSTRUCTOR_FIELD_TYPES.Number, CONSTRUCTOR_FIELD_TYPES.Email].includes(field.type)) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n (maskedValueChange)=\"changeTextFieldValue($event, field)\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-text>\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Amount) {\n <app-constructor-field-text\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\">\n <app-method-amount-hint app-c-text-hint\n class=\"constructor__hint\"\n [loading]=\"feeLoading\"\n [options]=\"feeOptions || field.options\"\n ></app-method-amount-hint>\n @if (!hasCurrencyMethodSelector) {\n <div app-c-text-suffix\n class=\"constructor__currency\"\n [class.constructor__currency--transparent]=\"form.isAmountEditable\"\n >\n <ng-container *ngTemplateOutlet=\"currencyTpl; context: {tabIndex: form.fields.length - i + tabIndex}\"></ng-container>\n </div>\n }\n </app-constructor-field-text>\n @if (hasCurrencyMethodSelector) {\n <app-trm-select\n @insertRemove\n class=\"constructor-field\"\n [label]=\"I18N_KEY.CONSTRUCTOR_LABEL_CURRENCY | trans\"\n [formControl]=\"form.currency\"\n [searchable]=\"false\"\n [data]=\"currenciesList\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\" [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n }\n }\n @if (field.type === CONSTRUCTOR_FIELD_TYPES.Date) {\n <app-constructor-field-date\n @insertRemove\n [config]=\"field\"\n [formControlName]=\"field.name\"\n [tabIndex]=\"form.fields.length - i + tabIndex\"></app-constructor-field-date>\n }\n }\n <ng-template #currencyTpl let-label=\"label\" let-tabIndex=\"tabIndex\">\n <app-trm-select\n class=\"constructor-field-inner\"\n @insertRemove\n [label]=\"label\"\n [formControl]=\"form.userCurrency\"\n [searchable]=\"false\"\n [data]=\"userCurrenciesList\"\n [tabIndex]=\"tabIndex\"\n >\n <ng-template trmSelectLabelTemplate let-item=\"item\">\n <span class=\"trm-icon\"\n [ngClass]=\"'trm-curr-' + item.toLowerCase()\"\n [title]=\"item\"></span>\n {{item}}\n </ng-template>\n </app-trm-select>\n </ng-template>\n </div>\n } @else {\n <div class=\"trm-skeleton-fields\">\n @for (i of skeletonLength; track $index) {\n <div class=\"trm-skeleton-field\">\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\n </div>\n }\n </div>\n }\n @if (error && !form.methodInfoLoading) {\n <div class=\"trm-error\"\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </div>\n }\n @if (step === TERMINAL_STEP.Confirmation) {\n <app-constructor-preparation\n @insertRemove\n [currency]=\"response?.currency\"\n [methodName]=\"form.getTypeNameById(response.typeId)\"\n [wallet]=\"response.wallet\"\n [maskedWallet]=\"maskedWallet\"\n [amount]=\"response.amount\"\n [total]=\"response.total\"\n [confirmationText]=\"form.config?.confirmation\"\n >\n @if (error && !form.payment.pending) {\n <div class=\"trm-error\"\n app-constructor-preparation-error\n @insertRemove\n >\n {{ error | trans }}\n </div>\n }\n </app-constructor-preparation>\n }\n <div class=\"constructor__actions\"\n @insertRemove>\n <button class=\"trm-button trm-button--primary constructor__actions-continue\"\n type=\"submit\"\n [tabindex]=\"form.fields.length + tabIndex\">\n {{I18N_KEY.CONSTRUCTOR_LABEL_CONTINUE | trans}}\n @if (loading) {\n <span class=\"trm-spinner trm-spinner-white\"></span>\n }\n </button>\n <button class=\"trm-button trm-button--secondary constructor__actions-back\"\n type=\"button\"\n [tabindex]=\"form.fields.length + tabIndex\"\n (click)=\"back.emit()\"> {{ backBtnLabel | trans}}</button>\n </div>\n } @else {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n }\n</form>\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n MethodType,\n TerminalPaymentConfirmResponse,\n TerminalPaymentPrepareRequest,\n TerminalPaymentPrepareResponse\n} from '../../../../codegen/model/models';\nimport { SessionDataSource } from '../../../services/session.data-source';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { Subject, throwError } from 'rxjs';\nimport { TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { PaymentFieldOptions, TerminalStep } from './../../../pages/components/constructor-form/models';\nimport { ApiErrorsService } from '../../../services/api-errors.service';\nimport { AsyncPipe, CurrencyPipe, DOCUMENT, Location } from '@angular/common';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { Title } from '@angular/platform-browser';\nimport { getI18Key } from './../../../i18n/keys';\nimport { I18N_KEY } from './../../../i18n';\nimport { TERMINAL_VERSION_SERVICE_TOKEN } from '../../../../const';\nimport { VersionServiceInterface } from '../../../models/version-service-interface';\nimport { TranslateLangStorageService } from '../../../services';\nimport {\n TerminalLangSwitcherComponent\n} from '../../../shared/components/terminal-lang-switcher/terminal-lang-switcher.component';\nimport { ConstructorFormComponent } from '../constructor-form/constructor-form.component';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\nimport { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';\n\n@Component({\n selector: 'app-terminal-layout',\n templateUrl: './terminal-layout.component.html',\n styleUrls: ['./terminal-layout.component.scss'],\n providers: [\n SessionDataSource,\n CurrencyPipe\n ],\n standalone: true,\n imports: [\n NgScrollbar,\n TerminalLangSwitcherComponent,\n ConstructorFormComponent, ConstructorStatusComponent,\n AsyncPipe,\n TranslateByKeyPipe, GmSkeletonComponent\n ]\n})\nexport class TerminalLayoutComponent implements OnInit, OnDestroy {\n private document = inject<Document>(DOCUMENT);\n sessionDS = inject(SessionDataSource);\n translateLoader = inject<any>(TranslateLoader);\n private cd = inject(ChangeDetectorRef);\n private translateStorageSrv = inject(TranslateLangStorageService);\n private translateSrv = inject(TranslateService);\n private adapter = inject<DateAdapter<moment.Moment>>(DateAdapter);\n private apiErrorSrv = inject(ApiErrorsService);\n private location = inject(Location);\n private titleSrv = inject(Title);\n private versionSrv = inject<VersionServiceInterface>(TERMINAL_VERSION_SERVICE_TOKEN);\n\n private unSubscriber = new Subject<void>();\n private resizeObserver: ResizeObserver;\n\n private get contentEl() {\n return this.scrollComponent.viewport.contentWrapperElement;\n }\n\n TERMINAL_STEP = TerminalStep;\n\n types: MethodType[] = [];\n currency: string;\n projectName: string;\n description: string;\n step = TerminalStep.Prepare;\n data: TerminalPaymentPrepareResponse & { typeId?: number; };\n @ViewChild('scrollComponent') scrollComponent: NgScrollbar;\n private urlChangeListener: VoidFunction;\n sessionLoading = null;\n\n constructor() {\n this.adapter.setLocale(this.translateSrv.currentLang);\n this._setTitle();\n\n this.translateSrv.onLangChange\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe((e) => {\n this.adapter.setLocale(e.lang);\n this._setTitle();\n this.cd.detectChanges();\n });\n this.checkFatalError();\n }\n\n get hasChoice() {\n return this.translateStorageSrv.languages.length > 1;\n }\n\n get logoClass(): string {\n return this.versionSrv.logoClass;\n }\n\n get footerText() {\n return this.versionSrv.footerText;\n }\n\n private _setTitle() {\n this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));\n }\n\n public changeLang() {\n }\n\n get hostname() {\n return this.document.defaultView.location.hostname;\n }\n\n ngOnInit() {\n if (this.apiErrorSrv.hasFatalError) {\n this.sessionDS.loading$.next(false);\n this.catchError();\n return;\n }\n this.sessionDS.get()\n .subscribe((sessionInfo) => {\n this.types = sessionInfo.methodTypes;\n this.currency = sessionInfo.defaultCurrency;\n this.projectName = sessionInfo.projectName;\n this.description = sessionInfo.description;\n this.sessionLoading = false;\n this.cd.markForCheck();\n }, () => {\n this.sessionLoading = false;\n this.catchError();\n });\n\n this.pushState();\n this.urlChangeListener = this.location.onUrlChange((url, state: { step?: TerminalStep }) => {\n if (typeof state?.step === 'number') {\n this.step = state.step;\n this.cd.markForCheck();\n }\n });\n }\n\n\n private _submitted = false;\n\n prepare(data: TerminalPaymentPrepareRequest) {\n if (this._submitted) {\n return;\n }\n this._submitted = true;\n this.sessionLoading = true;\n this.sessionDS\n .prepare(data)\n .subscribe((resp: TerminalPaymentPrepareResponse) => {\n if (!resp.amount && !resp.currency && !resp.total) {\n return;\n }\n this.step = TerminalStep.Confirmation;\n this.location.go(this.location.path(), '', {step: this.step});\n this.data = resp;\n this.data.typeId = data.typeId;\n this._submitted = false;\n this.sessionLoading = false;\n this.cd.markForCheck();\n }, () => {\n this._submitted = false;\n this.sessionLoading = false;\n this.catchError();\n });\n }\n\n confirm() {\n if (this._submitted) {\n return;\n }\n this._submitted = true;\n this.sessionLoading = true;\n this.sessionDS\n .confirm()\n .subscribe(\n (resp: TerminalPaymentConfirmResponse) => {\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n if (this.sessionDS.redirect()) {\n this._submitted = false;\n return;\n }\n this.step += 1;\n if (resp.success) {\n this._statusText = resp.message;\n }\n this._submitted = false;\n this.sessionLoading = false;\n this.cd.markForCheck();\n },\n () => {\n this._submitted = false;\n this.sessionLoading = false;\n this.catchError();\n },\n );\n }\n\n checkFatalError() {\n // Clear form error when any values have changed.\n if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {\n this.apiErrorSrv.clear();\n }\n }\n\n pushState() {\n this.location.replaceState(this.location.path(), undefined, {step: this.step});\n }\n\n back() {\n if (this.step) {\n this.location.back();\n } else {\n this.sessionLoading = true;\n this.sessionDS.close()\n .pipe(\n finalize(() => {\n this.sessionLoading = false;\n this.cd.markForCheck();\n })\n )\n .subscribe();\n }\n }\n\n get returnBackUrl(): string {\n return this.sessionDS.returnBackUrl;\n }\n\n catchError() {\n if (this.hasStatusError) {\n this.step = TerminalStep.Status;\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n }\n this.cd.detectChanges();\n }\n\n private _statusText: string;\n get statusText() {\n return this.apiErrorSrv.getLocalError() || this._statusText;\n }\n\n get hasStatusError() {\n return this.apiErrorSrv.hasFatalError;\n }\n\n public get currentYear() {\n return new Date().getFullYear();\n }\n\n private feeCalculateSubject = new Subject<void>();\n public calculateFee(value: any) {\n if (!this.sessionDS.feeChangeable) {\n return;\n }\n this.feeCalculateSubject.next();\n this.feeLoading = true;\n this.feeOptions = {};\n this.cd.detectChanges();\n\n this.sessionDS\n .feeOptions(value)\n .pipe(\n tap((options: PaymentFieldOptions) => {\n this.feeOptions = options;\n this.feeLoading = false;\n this.cd.detectChanges();\n }),\n catchError((err) => {\n this.feeLoading = false;\n this.cd.detectChanges();\n return throwError(() => err);\n }),\n takeUntil(this.feeCalculateSubject),\n takeUntil(this.unSubscriber)\n ).subscribe();\n }\n\n feeLoading = false;\n feeOptions: PaymentFieldOptions;\n\n public ngOnDestroy() {\n this.feeCalculateSubject.unsubscribe();\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.resizeObserver?.unobserve(this.contentEl);\n if (this.urlChangeListener) {\n this.urlChangeListener();\n }\n }\n}\n","<ng-scrollbar appearance=\"compact\">\n <div class=\"terminal-layout\">\n <section class=\"terminal\">\n <div class=\"terminal__content\">\n <header class=\"terminal__header\">\n <i class=\"terminal__header-logo\"\n [class]=\"logoClass\"></i>\n <div class=\"terminal__header-lang\">\n @if (hasChoice) {\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\n }\n </div>\n </header>\n <div class=\"terminal__form\">\n @if (sessionDS.loading$ | async) {\n <div class=\"trm-skeleton-group\">\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\n </div>\n } @else {\n @if (projectName) {\n <div class=\"terminal__info\">\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\n @if (description) {\n <p class=\"terminal__info__desc\"> {{ description }} </p>\n }\n </div>\n }\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\n <app-constructor-form\n [feeLoading]=\"feeLoading\"\n [feeOptions]=\"feeOptions\"\n [loading]=\"sessionLoading\"\n [step]=\"step\"\n [types]=\"types\"\n [currency]=\"currency\"\n [response]=\"data\"\n [error]=\"statusText\"\n (prepare)=\"prepare($event)\"\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\n (back)=\"back()\"\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\n (confirm)=\"confirm()\"\n [tabIndex]=\"2\"></app-constructor-form>\n } @else {\n <app-constructor-status class=\"terminal__status\"\n [failed]=\"hasStatusError\"\n [message]=\"statusText ? (statusText | trans) : ''\"\n [backUrl]=\"returnBackUrl\"\n ></app-constructor-status>\n }\n }\n\n </div>\n </div>\n </section>\n <footer class=\"terminal-footer\">\n <i class=\"terminal-footer__logo\"></i>\n <p class=\"terminal-footer__txt\">\n {{ footerText }}\n </p>\n </footer>\n </div>\n</ng-scrollbar>\n","import { Component, } from '@angular/core';\nimport { I18N_KEY } from './../../../i18n';\nimport {\n TerminalLayoutTplComponent\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n standalone: true,\n imports: [\n TerminalLayoutTplComponent,\n ConstructorStatusComponent,\n TranslateByKeyPipe,\n ],\n})\nexport class ErrorComponent {\n I18N_KEY = I18N_KEY\n}\n","<app-terminal-layout-tpl [loading]=\"false\">\n <app-constructor-status terminal-layout-status\n [failed]=\"true\"\n [failTitle]=\"(I18N_KEY.ERROR_OCCUR | trans)\"\n [hasSupportHint]=\"false\"\n >\n </app-constructor-status>\n</app-terminal-layout-tpl>\n","import { NgModule } from '@angular/core';\n\nimport { RouterModule } from '@angular/router';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { ConstructorFormComponent } from './components/constructor-form/constructor-form.component';\nimport { CommonModule } from '@angular/common';\nimport {\n ConstructorFieldTextComponent\n} from './components/constructor-form/components/constructor-field-text/constructor-field-text.component';\nimport {\n ConstructorFieldDateComponent\n} from './components/constructor-form/components/constructor-field-date/constructor-field-date.component';\nimport {\n ConstructorFieldSelectComponent\n} from './components/constructor-form/components/constructor-field-select/constructor-field-select.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PsSelectComponent } from './components/constructor-form/components/ps-select/ps-select.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport {\n ConstructorPreparationComponent\n} from './components/constructor-form/components/constructor-preparation/constructor-preparation.component';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { CSRFResolver } from '../services/csrf.resolver';\nimport {\n MethodAmountHintComponent\n} from './components/constructor-form/components/method-amount-hint/method-amount-hint.component';\nimport { MaskResolver } from './../helpers/mask-resolver';\nimport { InputMaskCorrector } from './directives/input-mask-corrector.directive';\nimport { FORMAT_DATE } from './../pages/components/constructor-form/models';\nimport { SharedModule } from '../shared/shared.module';\nimport { TabIndexFocusDirective } from './directives/tab-index-focus.directive';\n\nimport {\n ConstructorFieldIframeComponent\n} from './components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component';\nimport { TerminalLayoutComponent } from './components/terminal-layout/terminal-layout.component';\nimport { ErrorComponent } from './components/error/error.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild([\n {\n path: 'error',\n loadComponent: () => import('./components/error/error.component').then(m => m.ErrorComponent)\n },\n {\n resolve: {\n csrf: CSRFResolver\n },\n loadComponent: () => import('./components/terminal-layout/terminal-layout.component').then(m => m.TerminalLayoutComponent),\n path: ''\n },\n ]),\n NgScrollbar,\n TranslateModule,\n CommonModule,\n MatDatepickerModule,\n NgxMaskDirective,\n NgxMaskPipe,\n SharedModule,\n TerminalLayoutComponent,\n ConstructorFormComponent,\n ErrorComponent,\n ConstructorFieldTextComponent,\n ConstructorFieldDateComponent,\n ConstructorFieldSelectComponent,\n PsSelectComponent,\n ConstructorPreparationComponent,\n MethodAmountHintComponent,\n InputMaskCorrector,\n TabIndexFocusDirective,\n ConstructorFieldIframeComponent\n ],\n providers: [\n provideNgxMask(),\n NgxMaskPipe,\n {\n provide: MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: FORMAT_DATE,\n },\n display: {\n dateInput: FORMAT_DATE,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n },\n },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n CSRFResolver,\n MaskResolver\n ]\n})\nexport default class PagesModule {\n}\n","import { ChangeDetectorRef, inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\nimport { CheckinSessionInfoResponse, InvoiceStatus } from '../../../codegen/model/models';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpBadRequestResponse } from '../../models/http-bad-request-response';\nimport { ApiErrorsService } from '../../services/api-errors.service';\nimport { DOCUMENT } from '@angular/common';\nimport { Mode } from '../../models/mode';\nimport { CHECKIN_SERVICE_TOKEN } from '../../../const';\nimport { CheckinServiceInterface } from '../../../codegen/api/checkin.service';\nimport { CheckinModeToken, SessionToken } from '../../models';\n\n@Injectable()\nexport class CheckinDatasource {\n document = inject<Document>(DOCUMENT);\n private checkInApi = inject<CheckinServiceInterface>(CHECKIN_SERVICE_TOKEN);\n private token = inject(SessionToken, { optional: true }) || 'token';\n private cd = inject(ChangeDetectorRef);\n private apiErrorsSrv = inject(ApiErrorsService);\n private mode = inject<Mode>(CheckinModeToken);\n\n private _returnFailUrl: string;\n private _returnUrl: string;\n\n loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n constructor() {\n }\n\n\n check(options = {emitLoading: true}): Observable<CheckinSessionInfoResponse> {\n if (!this.token) {\n this.loading$.next(false);\n\n return of({\n invoiceId: 0,\n status: this.mode === Mode.Success ? InvoiceStatus.New : InvoiceStatus.Refused,\n redirectImmediate: false,\n successUrl: '',\n failUrl: ''\n });\n }\n\n if (options?.emitLoading) {\n this.loading$.next(true);\n }\n return this.checkInApi\n .getCheckinSessionInfo({\n token: this.token\n })\n .pipe(\n catchError(\n this.catchError(options?.emitLoading ? this.loading$ : undefined)\n ),\n tap(({status, failUrl, successUrl, redirectImmediate, error}) => {\n this._returnFailUrl = failUrl;\n this._returnUrl = successUrl;\n if (status === InvoiceStatus.Refused) {\n this._returnUrl = failUrl;\n this.apiErrorsSrv.setLocalError({code: error});\n }\n if (redirectImmediate && status !== InvoiceStatus.New) {\n this.returnBack();\n } else if (options?.emitLoading) {\n this.loading$.next(false);\n }\n })\n );\n }\n\n returnBack() {\n if (this._returnUrl) {\n this.document.defaultView.location.assign(this._returnUrl);\n return true;\n }\n return false;\n }\n\n setBackUrlAsFail() {\n this._returnUrl = this._returnFailUrl;\n }\n\n get returnBackUrl(): string {\n return this._returnUrl;\n }\n\n private catchError(loading$?: BehaviorSubject<boolean>) {\n return (err: HttpBadRequestResponse) => {\n this.apiErrorsSrv.setLocalError(err.error);\n loading$?.next(false);\n this.cd.markForCheck();\n return throwError(err);\n }\n }\n}\n","import { ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { CheckinDatasource } from '../../services/checkin.datasource';\nimport { InvoiceStatus } from '../../../../codegen/model/invoiceStatus';\nimport { interval, Subject, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiErrorsService } from '../../../services/api-errors.service';\nimport { Mode } from '../../../models/mode';\nimport { I18N_KEY } from './../../../i18n';\nimport { CheckinModeToken } from '../../../models';\nimport {\n TerminalLayoutTplComponent\n} from '../../../shared/components/terminal-layout-tpl/terminal-layout-tpl.component';\nimport { AsyncPipe } from '@angular/common';\nimport { ConstructorStatusComponent } from '../../../shared/components/constructor-status/constructor-status.component';\nimport { TranslateByKeyPipe } from '../../../shared/pipes/translate-by-key.pipe';\n\n@Component({\n selector: 'app-checkin-page',\n templateUrl: './checkin-page.component.html',\n styleUrls: ['./checkin-page.component.scss'],\n providers: [\n {\n provide: CheckinModeToken,\n deps: [ActivatedRoute],\n useFactory: (activatedRoute: ActivatedRoute) => activatedRoute.snapshot.paramMap.get('mode')\n },\n CheckinDatasource\n ],\n standalone: true,\n imports: [TerminalLayoutTplComponent, ConstructorStatusComponent, AsyncPipe, TranslateByKeyPipe]\n})\nexport class CheckinPageComponent implements OnInit, OnDestroy {\n private checkinDS = inject(CheckinDatasource);\n private errorApiSrv = inject(ApiErrorsService);\n private cd = inject(ChangeDetectorRef);\n private mode = inject<Mode>(CheckinModeToken);\n\n private CHECK_TIME_INTERVAL = 1000;\n private CHECK_TIME = 10000;\n private REDIRECT_TIME_AFTER = 15000;\n private unSubscriber = new Subject<void>();\n private checkinClearTimerSubj$ = new Subject<void>();\n private checkinClearRedirectTimerSubj$ = new Subject<void>();\n I18N_KEY = I18N_KEY;\n hasStatusError = false;\n animation = true;\n inProgress = false;\n message = '';\n invoiceId: number | string;\n\n redirectTimerStarted = false;\n\n get returnBackUrl(): string {\n return this.checkinDS.returnBackUrl;\n }\n\n get loading() {\n return this.checkinDS.loading$;\n }\n\n get redirectTime() {\n return this.REDIRECT_TIME_AFTER / 1000;\n }\n\n constructor() {\n\n }\n\n ngOnInit() {\n this.check();\n }\n\n private check(options = {emitLoading: true}) {\n this.checkinDS\n .check(options)\n .pipe(\n takeUntil(this.unSubscriber)\n )\n .subscribe(({status, invoiceId}) => {\n this.invoiceId = invoiceId;\n this.setMessage(status);\n\n this.inProgress = status === InvoiceStatus.New;\n if (this.inProgress) {\n this.startTimer();\n } else {\n this.startRedirectTimer();\n }\n\n this.cd.detectChanges();\n }, () => {\n this.setMessage(InvoiceStatus.Refused);\n this.cd.detectChanges();\n });\n }\n\n setMessage(status: InvoiceStatus = this.mode === Mode.Fail ? InvoiceStatus.Refused : InvoiceStatus.New) {\n switch (status) {\n case InvoiceStatus.New:\n this.inProgress = true;\n if (this.invoiceId === 0) {\n this.animation = false;\n this.message = I18N_KEY.CHECKIN_MESSAGE;\n return;\n }\n this.message = I18N_KEY.CHECKIN_WAIT;\n if (!this.CHECK_TIME) {\n this.animation = false;\n this.message = I18N_KEY.CHECKIN_WAIT_TIMEOVER;\n }\n break;\n case InvoiceStatus.Paid:\n this.inProgress = false;\n this.message = ``;\n break;\n case InvoiceStatus.Refused:\n this.checkinDS.setBackUrlAsFail();\n this.hasStatusError = true;\n this.inProgress = false;\n this.message = this.errorApiSrv.getLocalError() || I18N_KEY.CHECKIN_FAILED;\n break;\n }\n }\n\n get operationIdHint(): string {\n return this.invoiceId ? ` (Transaction&nbsp;ID:&nbsp;<b>${this.invoiceId}</b>)` : '';\n }\n\n private startTimer() {\n this.checkinClearTimerSubj$.next();\n this.CHECK_TIME -= this.CHECK_TIME_INTERVAL;\n if (!this.CHECK_TIME) {\n this.checkinClearTimerSubj$.next();\n this.setMessage();\n this.startRedirectTimer();\n return;\n }\n timer(this.CHECK_TIME_INTERVAL)\n .pipe(takeUntil(this.checkinClearTimerSubj$))\n .subscribe(() => this.check({emitLoading: false}));\n }\n\n private startRedirectTimer() {\n this.checkinClearRedirectTimerSubj$.next();\n this.redirectTimerStarted = true;\n this.cd.detectChanges();\n interval(1000)\n .pipe(takeUntil(this.checkinClearRedirectTimerSubj$))\n .subscribe(() => {\n this.REDIRECT_TIME_AFTER -= 1000;\n this.cd.detectChanges();\n if (!this.REDIRECT_TIME_AFTER) {\n this.checkinClearRedirectTimerSubj$.next();\n this.checkinDS.returnBack();\n }\n });\n }\n\n back() {\n this.checkinDS.returnBack();\n }\n\n ngOnDestroy() {\n this.unSubscriber.next();\n this.unSubscriber.unsubscribe();\n this.checkinClearTimerSubj$.next();\n this.checkinClearTimerSubj$.unsubscribe();\n this.checkinClearRedirectTimerSubj$.next();\n this.checkinClearRedirectTimerSubj$.unsubscribe();\n }\n}\n","<app-terminal-layout-tpl [loading]=\"loading | async\">\n @if (!(loading | async)) {\n <app-constructor-status terminal-layout-status\n [inProgress]=\"inProgress\"\n [failed]=\"hasStatusError\"\n [animation]=\"animation\"\n [progressTitle]=\"(I18N_KEY.PROGRESS_TITLE | trans)\"\n [failTitle]=\"(I18N_KEY.FAIL_TITLE | trans)\"\n [successTitle]=\"(I18N_KEY.SUCCESS_TITLE | trans)\"\n [hasSupportHint]=\"false\"\n [message]=\"(message | trans) + operationIdHint\"\n [backUrl]=\"returnBackUrl\"\n [backUrlTitle]=\"I18N_KEY.CONSTRUCTOR_LABEL_RETURN_TO_SHOP | trans\"\n >\n @if (redirectTimerStarted) {\n <div constructor-status-button-hint>\n {{ I18N_KEY.REDIRECT_TEXT | trans }}&nbsp;<b>{{redirectTime}}</b>\n </div>\n }\n </app-constructor-status>\n }\n</app-terminal-layout-tpl>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { CheckinPageComponent } from './components/checkin-page/checkin-page.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n TranslateModule,\n RouterModule.forChild([\n {\n path: ':mode',\n loadComponent: () => import('./components/checkin-page/checkin-page.component').then(m => m.CheckinPageComponent)\n }\n ]),\n CheckinPageComponent\n ]\n})\nexport class CheckinModule {\n}\n","import * as momentjs from 'moment-timezone';\n\nexport const moment = momentjs;\n","/*\n * Public API Surface of terminal\n */\n\nexport * from './lib';\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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"}