trm-tmpl 3.3.3 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/assets/svg/arrow_down.svg +3 -3
- package/assets/svg/currencies/brl.svg +5 -5
- package/assets/svg/currencies/btc.svg +4 -4
- package/assets/svg/currencies/cny.svg +4 -4
- package/assets/svg/currencies/eth.svg +9 -9
- package/assets/svg/currencies/eur.svg +4 -4
- package/assets/svg/currencies/gbp.svg +4 -4
- package/assets/svg/currencies/kzt.svg +4 -4
- package/assets/svg/currencies/mxn.svg +5 -5
- package/assets/svg/currencies/rub.svg +4 -4
- package/assets/svg/currencies/trx.svg +11 -11
- package/assets/svg/currencies/uah.svg +4 -4
- package/assets/svg/currencies/usd.svg +4 -4
- package/assets/svg/currencies/usdt.svg +4 -4
- package/assets/svg/datepicker.svg +9 -9
- package/assets/svg/es.svg +573 -573
- package/assets/svg/flags/ab.svg +23 -23
- package/assets/svg/flags/os.svg +12 -12
- package/assets/svg/flags/other.svg +19 -19
- package/assets/svg/pay/advcash.svg +6 -6
- package/assets/svg/pay/alfabank.svg +5 -5
- package/assets/svg/pay/alipay.svg +5 -5
- package/assets/svg/pay/alipay_plus.svg +6 -6
- package/assets/svg/pay/applepay.svg +4 -4
- package/assets/svg/pay/argentina_bank.svg +74 -74
- package/assets/svg/pay/atf24.svg +14 -14
- package/assets/svg/pay/baloto.svg +8 -8
- package/assets/svg/pay/bancontact.svg +16 -16
- package/assets/svg/pay/beeline.svg +19 -19
- package/assets/svg/pay/bitcoin.svg +4 -4
- package/assets/svg/pay/blik.svg +12 -12
- package/assets/svg/pay/boleto.svg +39 -39
- package/assets/svg/pay/brazil_bank.svg +27 -27
- package/assets/svg/pay/card.svg +4 -4
- package/assets/svg/pay/carga_virtual.svg +30 -30
- package/assets/svg/pay/cash.svg +6 -6
- package/assets/svg/pay/cashtocode.svg +6 -6
- package/assets/svg/pay/codi.svg +10 -10
- package/assets/svg/pay/comepay.svg +41 -41
- package/assets/svg/pay/cup.svg +6 -6
- package/assets/svg/pay/cup_bank.svg +10 -10
- package/assets/svg/pay/cup_p2p.svg +9 -9
- package/assets/svg/pay/deposit_express.svg +8 -8
- package/assets/svg/pay/direct_banking_europe.svg +8 -8
- package/assets/svg/pay/dotpay.svg +6 -6
- package/assets/svg/pay/ecopayz.svg +7 -7
- package/assets/svg/pay/eps.svg +6 -6
- package/assets/svg/pay/ethereum.svg +9 -9
- package/assets/svg/pay/g2a.svg +7 -7
- package/assets/svg/pay/giropay.svg +5 -5
- package/assets/svg/pay/gmmoney.svg +4 -4
- package/assets/svg/pay/googlepay.svg +7 -7
- package/assets/svg/pay/ideal.svg +7 -7
- package/assets/svg/pay/indonesia_bank.svg +4 -4
- package/assets/svg/pay/jeton.svg +4 -4
- package/assets/svg/pay/kassa24.svg +10 -10
- package/assets/svg/pay/link.svg +14 -14
- package/assets/svg/pay/local_card_mexico.svg +16 -16
- package/assets/svg/pay/loterica.svg +7 -7
- package/assets/svg/pay/malaysia_bank.svg +16 -16
- package/assets/svg/pay/mbway.svg +6 -6
- package/assets/svg/pay/megafon.svg +5 -5
- package/assets/svg/pay/mercado_pago.svg +9 -9
- package/assets/svg/pay/mexico_bank.svg +14 -14
- package/assets/svg/pay/mirpay.svg +4 -4
- package/assets/svg/pay/momopay.svg +4 -4
- package/assets/svg/pay/moneta.svg +5 -5
- package/assets/svg/pay/mts.svg +4 -4
- package/assets/svg/pay/multibanco.svg +6 -6
- package/assets/svg/pay/neosurf.svg +4 -4
- package/assets/svg/pay/neteller.svg +4 -4
- package/assets/svg/pay/nupay.svg +4 -4
- package/assets/svg/pay/onecard.svg +6 -6
- package/assets/svg/pay/oxxo.svg +8 -8
- package/assets/svg/pay/pagoefectivo.svg +4 -4
- package/assets/svg/pay/pagoexpress.svg +5 -5
- package/assets/svg/pay/pagofacil.svg +5 -5
- package/assets/svg/pay/paypal.svg +7 -7
- package/assets/svg/pay/paysafecard.svg +5 -5
- package/assets/svg/pay/philippines_bank.svg +12 -12
- package/assets/svg/pay/picpay.svg +4 -4
- package/assets/svg/pay/pix.svg +6 -6
- package/assets/svg/pay/polish_bank.svg +4 -4
- package/assets/svg/pay/promptpay.svg +4 -4
- package/assets/svg/pay/promsviaz.svg +5 -5
- package/assets/svg/pay/przelewy24.svg +6 -6
- package/assets/svg/pay/qiwi.svg +6 -6
- package/assets/svg/pay/rapid.svg +5 -5
- package/assets/svg/pay/rapipago.svg +5 -5
- package/assets/svg/pay/redcompra.svg +4 -4
- package/assets/svg/pay/redpagos.svg +5 -5
- package/assets/svg/pay/sberbank.svg +23 -23
- package/assets/svg/pay/sbp.svg +11 -11
- package/assets/svg/pay/sepa.svg +7 -7
- package/assets/svg/pay/servipag.svg +7 -7
- package/assets/svg/pay/skinify.svg +5 -5
- package/assets/svg/pay/skinpay.svg +4 -4
- package/assets/svg/pay/skinsback.svg +4 -4
- package/assets/svg/pay/skrill.svg +4 -4
- package/assets/svg/pay/sofort.svg +4 -4
- package/assets/svg/pay/spei.svg +8 -8
- package/assets/svg/pay/steam.svg +15 -15
- package/assets/svg/pay/store_mexico.svg +8 -8
- package/assets/svg/pay/tele2.svg +4 -4
- package/assets/svg/pay/tether.svg +4 -4
- package/assets/svg/pay/thailand_bank.svg +10 -10
- package/assets/svg/pay/tinkoff.svg +38 -38
- package/assets/svg/pay/tron.svg +11 -11
- package/assets/svg/pay/trustly.svg +4 -4
- package/assets/svg/pay/vietnam_bank.svg +4 -4
- package/assets/svg/pay/wallester.svg +35 -35
- package/assets/svg/pay/webmoney.svg +4 -4
- package/assets/svg/pay/webpay.svg +5 -5
- package/assets/svg/pay/wechat.svg +5 -5
- package/assets/svg/pay/yandex.svg +5 -5
- package/assets/svg/pay/zen_wallet.svg +5 -5
- package/assets/svg/pci-dss.svg +19 -19
- package/assets/svg/pt.svg +144 -144
- package/assets/svg/ru.svg +16 -16
- package/assets/svg/status-error.svg +5 -5
- package/assets/svg/status-success.svg +4 -4
- package/assets/svg/status-wait-rotate.svg +18 -18
- package/assets/svg/status-wait.svg +11 -11
- package/assets/svg/tr.svg +13 -13
- package/assets/svg/us.svg +13 -13
- package/assets/svg/wait.svg +11 -11
- package/fesm2022/trm-tmpl.mjs +233 -246
- package/fesm2022/trm-tmpl.mjs.map +1 -1
- package/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.d.ts +2 -2
- package/lib/app/pages/components/constructor-form/models/payment-field.d.ts +2 -2
- package/lib/app/pipes/index.d.ts +0 -2
- package/lib/app/shared/components/index.d.ts +1 -0
- package/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.d.ts +0 -1
- package/lib/app/shared/components/trm-amount/trm-amount.component.d.ts +19 -0
- package/lib/app/shared/components/trm-select/scrollbar-select-height.directive.d.ts +2 -1
- package/lib/app/shared/shared.module.d.ts +4 -5
- package/package.json +5 -8
- package/scss/base.scss +12 -12
- package/scss/btn.scss +50 -50
- package/scss/currency.scss +31 -31
- package/scss/datepicker.scss +19 -19
- package/scss/fonts.scss +18 -18
- package/scss/icons.scss +9 -9
- package/scss/images.scss +43 -43
- package/scss/index.scss +12 -12
- package/scss/input.scss +60 -60
- package/scss/mixins.scss +193 -193
- package/scss/skeleton.scss +68 -68
- package/scss/spinner.scss +65 -65
- package/scss/theme.scss +33 -33
- package/scss/utils.scss +14 -14
- package/scss/validation.scss +7 -7
- package/scss/variables.scss +1 -1
- package/esm2022/lib/app/checkin/checkin.module.mjs +0 -42
- package/esm2022/lib/app/checkin/components/checkin-page/checkin-page.component.mjs +0 -157
- package/esm2022/lib/app/checkin/components/index.mjs +0 -2
- package/esm2022/lib/app/checkin/index.mjs +0 -4
- package/esm2022/lib/app/checkin/services/checkin.datasource.mjs +0 -81
- package/esm2022/lib/app/checkin/services/index.mjs +0 -2
- package/esm2022/lib/app/helpers/hide-init-loader.mjs +0 -15
- package/esm2022/lib/app/helpers/i18n-countries.mjs +0 -56
- package/esm2022/lib/app/helpers/index.mjs +0 -9
- package/esm2022/lib/app/helpers/insertRemoveTrigger.mjs +0 -11
- package/esm2022/lib/app/helpers/is-object-the-same.mjs +0 -26
- package/esm2022/lib/app/helpers/key-down-handler.mjs +0 -88
- package/esm2022/lib/app/helpers/mask-resolver.mjs +0 -114
- package/esm2022/lib/app/helpers/phone-codes.mjs +0 -1250
- package/esm2022/lib/app/helpers/warning-console-message.mjs +0 -8
- package/esm2022/lib/app/i18n/i18n-key.enum.mjs +0 -86
- package/esm2022/lib/app/i18n/index.mjs +0 -3
- package/esm2022/lib/app/i18n/keys.mjs +0 -109
- package/esm2022/lib/app/intex.mjs +0 -11
- package/esm2022/lib/app/models/cde-terminal-sdk.mjs +0 -2
- package/esm2022/lib/app/models/constants.mjs +0 -22
- package/esm2022/lib/app/models/http-bad-request-response.mjs +0 -2
- package/esm2022/lib/app/models/index.mjs +0 -8
- package/esm2022/lib/app/models/mode.mjs +0 -6
- package/esm2022/lib/app/models/version-service-base-class.mjs +0 -9
- package/esm2022/lib/app/models/version-service-interface.mjs +0 -2
- package/esm2022/lib/app/models/version.interface.mjs +0 -2
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +0 -76
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +0 -41
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +0 -123
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +0 -88
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +0 -80
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +0 -196
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-preparation/constructor-preparation.component.mjs +0 -34
- package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.mjs +0 -32
- package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +0 -124
- package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +0 -374
- package/esm2022/lib/app/pages/components/constructor-form/index.mjs +0 -5
- package/esm2022/lib/app/pages/components/constructor-form/models/collection-type.enum.mjs +0 -6
- package/esm2022/lib/app/pages/components/constructor-form/models/config/advcash.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/alfabank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/alipay_plus.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/all.mjs +0 -209
- package/esm2022/lib/app/pages/components/constructor-form/models/config/applepay.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/argentina_bank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/atf24.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/baloto.mjs +0 -21
- package/esm2022/lib/app/pages/components/constructor-form/models/config/beeline.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/bitcoin.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/blik.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/boleto.mjs +0 -23
- package/esm2022/lib/app/pages/components/constructor-form/models/config/brazil_bank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/card.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/carga_virtual.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/cash.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/cashtocode.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/codi.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/comepay.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/cup.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_bank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/cup_p2p.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/deposit_express.mjs +0 -23
- package/esm2022/lib/app/pages/components/constructor-form/models/config/direct_banking_europe.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/dotpay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/ecopayz.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/eps.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/ethereum.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/giropay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/gmmoney.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/googlepay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/ideal.mjs +0 -13
- package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/indonesia_bank_transfer.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/internal_gamemoney.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/jeton_voucher.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/kassa24.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/link.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_brazil.mjs +0 -19
- package/esm2022/lib/app/pages/components/constructor-form/models/config/local_card_mexico.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/loterica.mjs +0 -22
- package/esm2022/lib/app/pages/components/constructor-form/models/config/malaysia_bank.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/mbway.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/megafon.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/mercado_pago.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/mexico_bank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/mirpay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/momopay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/moneta.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/mts.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/multibanco.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/neosurf.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/neteller.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/nupay.mjs +0 -22
- package/esm2022/lib/app/pages/components/constructor-form/models/config/onecard.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/oxxo.mjs +0 -23
- package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoefectivo.mjs +0 -22
- package/esm2022/lib/app/pages/components/constructor-form/models/config/pagoexpress.mjs +0 -21
- package/esm2022/lib/app/pages/components/constructor-form/models/config/pagofacil.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/paypal.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/paysafecard.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/philippines_bank.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/picpay.mjs +0 -21
- package/esm2022/lib/app/pages/components/constructor-form/models/config/pix.mjs +0 -31
- package/esm2022/lib/app/pages/components/constructor-form/models/config/promptpay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/promsviaz.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/przelewy24.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/qiwi.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/rapid.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/rapipago.mjs +0 -22
- package/esm2022/lib/app/pages/components/constructor-form/models/config/redpagos.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/sberbank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/sbp.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/sepa.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/servipag.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/skinify.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/skinpay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/skinsback.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/skrill.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/sofort.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/spei.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/store_mexico.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/tele2.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/tether.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/tether_trc20.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/thailand_bank_transfer.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/tinkoff.mjs +0 -8
- package/esm2022/lib/app/pages/components/constructor-form/models/config/tron.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/trustly.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_qr.mjs +0 -10
- package/esm2022/lib/app/pages/components/constructor-form/models/config/vietnam_bank_transfer.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wallester.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/webpay.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wechat.mjs +0 -12
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wme.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wmr.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wmu.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/wmz.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/yandex.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/config/zen_wallet.mjs +0 -9
- package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +0 -110
- package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +0 -7
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-options.mjs +0 -2
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-type.enum.mjs +0 -11
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +0 -2
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-fields.mjs +0 -2
- package/esm2022/lib/app/pages/components/constructor-form/models/terminal-step.enum.mjs +0 -7
- package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +0 -310
- package/esm2022/lib/app/pages/components/constructor-form/services/index.mjs +0 -2
- package/esm2022/lib/app/pages/components/error/error.component.mjs +0 -22
- package/esm2022/lib/app/pages/components/index.mjs +0 -4
- package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +0 -249
- package/esm2022/lib/app/pages/directives/fee-template.directive.mjs +0 -14
- package/esm2022/lib/app/pages/directives/index.mjs +0 -4
- package/esm2022/lib/app/pages/directives/input-mask-corrector.directive.mjs +0 -23
- package/esm2022/lib/app/pages/directives/tab-index-focus.directive.mjs +0 -21
- package/esm2022/lib/app/pages/index.mjs +0 -5
- package/esm2022/lib/app/pages/pages.module.mjs +0 -170
- package/esm2022/lib/app/pages/services/index.mjs +0 -2
- package/esm2022/lib/app/pages/services/mask.service.mjs +0 -22
- package/esm2022/lib/app/pipes/countries-sort.pipe.mjs +0 -34
- package/esm2022/lib/app/pipes/country-translate.pipe.mjs +0 -24
- package/esm2022/lib/app/pipes/currency.pipe.mjs +0 -40
- package/esm2022/lib/app/pipes/html-sanitizer.pipe.mjs +0 -21
- package/esm2022/lib/app/pipes/index.mjs +0 -6
- package/esm2022/lib/app/pipes/method-title.pipe.mjs +0 -22
- package/esm2022/lib/app/services/api-errors.service.mjs +0 -52
- package/esm2022/lib/app/services/csrf.resolver.mjs +0 -79
- package/esm2022/lib/app/services/error.interceptior.mjs +0 -26
- package/esm2022/lib/app/services/index.mjs +0 -7
- package/esm2022/lib/app/services/local-storage.mjs +0 -70
- package/esm2022/lib/app/services/script-loader.mjs +0 -72
- package/esm2022/lib/app/services/session.data-source.mjs +0 -199
- package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +0 -129
- package/esm2022/lib/app/shared/components/constructor-status/constructor-status.component.mjs +0 -49
- package/esm2022/lib/app/shared/components/index.mjs +0 -7
- package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +0 -59
- package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +0 -53
- package/esm2022/lib/app/shared/components/trm-select/scrollbar-select-height.directive.mjs +0 -42
- package/esm2022/lib/app/shared/components/trm-select/trm-select-label-template.directive.mjs +0 -17
- package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +0 -209
- package/esm2022/lib/app/shared/directives/index.mjs +0 -2
- package/esm2022/lib/app/shared/directives/ng-var.directive.mjs +0 -34
- package/esm2022/lib/app/shared/index.mjs +0 -5
- package/esm2022/lib/app/shared/pipes/index.mjs +0 -3
- package/esm2022/lib/app/shared/pipes/sanitizer.pipe.mjs +0 -21
- package/esm2022/lib/app/shared/pipes/translate-by-key.pipe.mjs +0 -49
- package/esm2022/lib/app/shared/shared.module.mjs +0 -77
- package/esm2022/lib/app/terminal-tpl.component.mjs +0 -59
- package/esm2022/lib/app/terminal.module.mjs +0 -67
- package/esm2022/lib/codegen/api/api.mjs +0 -4
- package/esm2022/lib/codegen/api/checkin.service.mjs +0 -2
- package/esm2022/lib/codegen/api/configuration.mjs +0 -2
- package/esm2022/lib/codegen/api/terminal.service.mjs +0 -2
- package/esm2022/lib/codegen/index.mjs +0 -3
- package/esm2022/lib/codegen/model/apiErrors.mjs +0 -42
- package/esm2022/lib/codegen/model/badRequestResponse.mjs +0 -2
- package/esm2022/lib/codegen/model/bank.mjs +0 -2
- package/esm2022/lib/codegen/model/documentType.mjs +0 -2
- package/esm2022/lib/codegen/model/getCheckinSessionInfo200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/getTerminalMethodBanks200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/getTerminalMethodDocumentTypes200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/invoiceStatus.mjs +0 -8
- package/esm2022/lib/codegen/model/methodInfo.mjs +0 -2
- package/esm2022/lib/codegen/model/methodInfoLimits.mjs +0 -2
- package/esm2022/lib/codegen/model/methodType.mjs +0 -2
- package/esm2022/lib/codegen/model/methodTypeType.mjs +0 -2
- package/esm2022/lib/codegen/model/models.mjs +0 -22
- package/esm2022/lib/codegen/model/postTerminalClose200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalOpen200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalOpenRequest.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalPaymentConfirm200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalPaymentConfirmRequest.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalPaymentPrepare200Response.mjs +0 -2
- package/esm2022/lib/codegen/model/postTerminalPaymentPrepareRequest.mjs +0 -2
- package/esm2022/lib/codegen/model/sessionInfo.mjs +0 -2
- package/esm2022/lib/codegen/model/sessionInfoAntiFraudPixel.mjs +0 -2
- package/esm2022/lib/const.mjs +0 -9
- package/esm2022/lib/helpers/index.mjs +0 -3
- package/esm2022/lib/helpers/moment-import.mjs +0 -3
- package/esm2022/lib/helpers/remove-empty-props.mjs +0 -13
- package/esm2022/lib/index.mjs +0 -5
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/trm-tmpl.mjs +0 -5
- package/lib/app/pipes/currency.pipe.d.ts +0 -9
- package/lib/app/pipes/html-sanitizer.pipe.d.ts +0 -9
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, forwardRef, inject, Injector, Input, } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
4
|
-
import { I18N_KEY } from '../../../../../i18n';
|
|
5
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
-
import { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';
|
|
7
|
-
import { CardSdkService } from './card-sdk.service';
|
|
8
|
-
import { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';
|
|
9
|
-
import { insertRemoveTrigger } from '../../../../../helpers';
|
|
10
|
-
import { GmSkeletonComponent } from '@gmmoney/gm-ui-kit';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "./iframe-validator-directive.directive";
|
|
13
|
-
const ID_CDE_CONTAINER = 'cde-container';
|
|
14
|
-
export class ConstructorFieldIframeComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
this._translateSrv = inject(TranslateService);
|
|
17
|
-
this._cd = inject(ChangeDetectorRef);
|
|
18
|
-
this._injector = inject(Injector);
|
|
19
|
-
this._destroyRef = inject(DestroyRef);
|
|
20
|
-
this.viewReady = false;
|
|
21
|
-
this.validator = inject(IframeValidatorDirectiveDirective);
|
|
22
|
-
this.cardSdkSrv = inject(CardSdkService);
|
|
23
|
-
this._loading = true;
|
|
24
|
-
this.I18N_KEY = I18N_KEY;
|
|
25
|
-
this.ID_CDE_CONTAINER = ID_CDE_CONTAINER;
|
|
26
|
-
}
|
|
27
|
-
registerOnTouched(fn) { }
|
|
28
|
-
registerOnChange(fn) { }
|
|
29
|
-
writeValue() { }
|
|
30
|
-
get loading() {
|
|
31
|
-
return this._loading;
|
|
32
|
-
}
|
|
33
|
-
ngAfterViewInit() {
|
|
34
|
-
this._control = this._injector.get(NgControl).control;
|
|
35
|
-
this.cardSdkSrv
|
|
36
|
-
.createCardTerminalSdk$(this._translateSrv.currentLang, this.ID_CDE_CONTAINER, this.tabIndex)
|
|
37
|
-
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
38
|
-
.subscribe({
|
|
39
|
-
next: (sdk) => {
|
|
40
|
-
this._sdk = sdk;
|
|
41
|
-
this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());
|
|
42
|
-
this.validator.registerSDK(sdk);
|
|
43
|
-
this._init();
|
|
44
|
-
},
|
|
45
|
-
error: () => {
|
|
46
|
-
this.validator.registerSDK();
|
|
47
|
-
this._updateValueAndValidity();
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
_updateValueAndValidity() {
|
|
52
|
-
this.cardSdkSrv.markAsReady();
|
|
53
|
-
this._control?.updateValueAndValidity({ onlySelf: true });
|
|
54
|
-
this._cd.detectChanges();
|
|
55
|
-
this.refreshHeight();
|
|
56
|
-
}
|
|
57
|
-
refreshHeight() {
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
this._sdk?.refreshHeight();
|
|
60
|
-
this.viewReady = true;
|
|
61
|
-
this._cd.detectChanges();
|
|
62
|
-
}, 100);
|
|
63
|
-
}
|
|
64
|
-
_init() {
|
|
65
|
-
this._sdk.onInputPending(() => {
|
|
66
|
-
this._loading = false;
|
|
67
|
-
this._updateValueAndValidity();
|
|
68
|
-
});
|
|
69
|
-
this._sdk.onInputReady(() => {
|
|
70
|
-
this._updateValueAndValidity();
|
|
71
|
-
});
|
|
72
|
-
this._sdk.onInputSubmitted(() => {
|
|
73
|
-
this._loading = false;
|
|
74
|
-
this.cardSdkSrv.markAsSubmitted();
|
|
75
|
-
this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;
|
|
76
|
-
this._updateValueAndValidity();
|
|
77
|
-
});
|
|
78
|
-
this._sdk.onTimeout(() => {
|
|
79
|
-
this._updateValueAndValidity();
|
|
80
|
-
});
|
|
81
|
-
this._sdk.onError(() => {
|
|
82
|
-
this._loading = false;
|
|
83
|
-
this._updateValueAndValidity();
|
|
84
|
-
});
|
|
85
|
-
this._translateSrv.onLangChange
|
|
86
|
-
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
87
|
-
.subscribe({
|
|
88
|
-
next: (options) => {
|
|
89
|
-
if (!options.lang) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
this._sdk.useLang(options.lang);
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldIframeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldIframeComponent, isStandalone: true, selector: "app-constructor-field-iframe", inputs: { tabIndex: "tabIndex" }, providers: [
|
|
98
|
-
{
|
|
99
|
-
provide: NG_VALUE_ACCESSOR,
|
|
100
|
-
useExisting: forwardRef(() => ConstructorFieldIframeComponent),
|
|
101
|
-
multi: true,
|
|
102
|
-
},
|
|
103
|
-
CardSdkService,
|
|
104
|
-
], hostDirectives: [{ directive: i1.IframeValidatorDirectiveDirective }], ngImport: i0, template: "@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", styles: [":host{position:relative}.iframe-container{position:absolute;width:100%;visibility:hidden}.iframe-container--ready{position:relative;visibility:visible}.iframe-warning{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}\n"], dependencies: [{ kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
|
-
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldIframeComponent, decorators: [{
|
|
107
|
-
type: Component,
|
|
108
|
-
args: [{ selector: 'app-constructor-field-iframe', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, animations: [insertRemoveTrigger], providers: [
|
|
109
|
-
{
|
|
110
|
-
provide: NG_VALUE_ACCESSOR,
|
|
111
|
-
useExisting: forwardRef(() => ConstructorFieldIframeComponent),
|
|
112
|
-
multi: true,
|
|
113
|
-
},
|
|
114
|
-
CardSdkService,
|
|
115
|
-
], imports: [TranslateByKeyPipe, GmSkeletonComponent], hostDirectives: [
|
|
116
|
-
{
|
|
117
|
-
directive: IframeValidatorDirectiveDirective,
|
|
118
|
-
},
|
|
119
|
-
], template: "@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", styles: [":host{position:relative}.iframe-container{position:absolute;width:100%;visibility:hidden}.iframe-container--ready{position:relative;visibility:visible}.iframe-warning{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}\n"] }]
|
|
120
|
-
}], propDecorators: { tabIndex: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXlDLGlCQUFpQixFQUFFLFNBQVMsR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFHekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUF3QnpDLE1BQU0sT0FBTywrQkFBK0I7SUF0QjVDO1FBeUJVLGtCQUFhLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELFFBQUcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbkQsY0FBUyxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxnQkFBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSVYsY0FBUyxHQUFzQyxNQUFNLENBQzNELGlDQUFpQyxDQUNsQyxDQUFDO1FBR00sZUFBVSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFcEQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVmLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFFcEIscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7S0FvRjlDO0lBbkZDLGlCQUFpQixDQUFDLEVBQU8sSUFBUyxDQUFDO0lBQ25DLGdCQUFnQixDQUFDLEVBQU8sSUFBUyxDQUFDO0lBQ2xDLFVBQVUsS0FBVSxDQUFDO0lBRXJCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVO2FBQ1osc0JBQXNCLENBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxRQUFRLENBQ2Q7YUFDQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQW1CLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsMkJBQTJCLENBQUM7WUFDbkQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7YUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxQyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ2xCLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUdVLCtCQUErQjtrR0FBL0IsK0JBQStCLDZHQWYvQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQzlELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxjQUFjO1NBQ2YsaUdDdENILHVqQkFvQkEseVREbUJZLGtCQUFrQiw4Q0FBRSxtQkFBbUIsb0dBVHJDLENBQUMsbUJBQW1CLENBQUM7OzJGQWdCdEIsK0JBQStCO2tCQXRCM0MsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxjQUNKLENBQUMsbUJBQW1CLENBQUMsYUFDdEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0NBQWdDLENBQUM7NEJBQzlELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELGNBQWM7cUJBQ2YsV0FDUSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLGtCQUNsQzt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsaUNBQWlDO3lCQUM3QztxQkFDRjs4QkFZUSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9pMThuJztcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlQnlLZXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XG5pbXBvcnQgeyBDYXJkU2RrU2VydmljZSB9IGZyb20gJy4vY2FyZC1zZGsuc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVWYWxpZGF0b3JEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2lmcmFtZS12YWxpZGF0b3ItZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmVUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcbmltcG9ydCB7IENkZVRlcm1pbmFsU2RrIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvY2RlLXRlcm1pbmFsLXNkayc7XG5cbmNvbnN0IElEX0NERV9DT05UQUlORVIgPSAnY2RlLWNvbnRhaW5lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBhbmltYXRpb25zOiBbaW5zZXJ0UmVtb3ZlVHJpZ2dlcl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIENhcmRTZGtTZXJ2aWNlLFxuICBdLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlQnlLZXlQaXBlLCBHbVNrZWxldG9uQ29tcG9uZW50XSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RvckZpZWxkSWZyYW1lQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlU3J2OiBUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHZpZXdSZWFkeSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSB2YWxpZGF0b3I6IElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZURpcmVjdGl2ZSA9IGluamVjdChcbiAgICBJZnJhbWVWYWxpZGF0b3JEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICk7XG5cbiAgcHJpdmF0ZSBfc2RrOiBDZGVUZXJtaW5hbFNkaztcbiAgcHJpdmF0ZSBjYXJkU2RrU3J2OiBDYXJkU2RrU2VydmljZSA9IGluamVjdChDYXJkU2RrU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfbG9hZGluZyA9IHRydWU7XG4gIHN0YXR1czogSTE4Tl9LRVk7XG4gIHJlYWRvbmx5IEkxOE5fS0VZID0gSTE4Tl9LRVk7XG5cbiAgcmVhZG9ubHkgSURfQ0RFX0NPTlRBSU5FUiA9IElEX0NERV9DT05UQUlORVI7XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge31cbiAgd3JpdGVWYWx1ZSgpOiB2b2lkIHt9XG5cbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udHJvbCA9IHRoaXMuX2luamVjdG9yLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XG4gICAgdGhpcy5jYXJkU2RrU3J2XG4gICAgICAuY3JlYXRlQ2FyZFRlcm1pbmFsU2RrJChcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU3J2LmN1cnJlbnRMYW5nLFxuICAgICAgICB0aGlzLklEX0NERV9DT05UQUlORVIsXG4gICAgICAgIHRoaXMudGFiSW5kZXhcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoc2RrOiBDZGVUZXJtaW5hbFNkaykgPT4ge1xuICAgICAgICAgIHRoaXMuX3NkayA9IHNkaztcbiAgICAgICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLl9zZGs/LnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgIHRoaXMudmFsaWRhdG9yLnJlZ2lzdGVyU0RLKHNkayk7XG4gICAgICAgICAgdGhpcy5faW5pdCgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsaWRhdG9yLnJlZ2lzdGVyU0RLKCk7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZFNka1Nydi5tYXJrQXNSZWFkeSgpO1xuICAgIHRoaXMuX2NvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZWZyZXNoSGVpZ2h0KCk7XG4gIH1cblxuICByZWZyZXNoSGVpZ2h0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc2RrPy5yZWZyZXNoSGVpZ2h0KCk7XG4gICAgICB0aGlzLnZpZXdSZWFkeSA9IHRydWU7XG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2RrLm9uSW5wdXRQZW5kaW5nKCgpID0+IHtcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3Nkay5vbklucHV0UmVhZHkoKCkgPT4ge1xuICAgICAgdGhpcy5fdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc2RrLm9uSW5wdXRTdWJtaXR0ZWQoKCkgPT4ge1xuICAgICAgdGhpcy5fbG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5jYXJkU2RrU3J2Lm1hcmtBc1N1Ym1pdHRlZCgpO1xuICAgICAgdGhpcy5zdGF0dXMgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl9BTFJFQURZX1BBSUQ7XG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZGsub25UaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3Nkay5vbkVycm9yKCgpID0+IHtcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3RyYW5zbGF0ZVNydi5vbkxhbmdDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAob3B0aW9uczogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKCFvcHRpb25zLmxhbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fc2RrLnVzZUxhbmcob3B0aW9ucy5sYW5nKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKCFzdGF0dXMpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwiaWZyYW1lLWNvbnRhaW5lclwiXG4gICAgW2lkXT1cIklEX0NERV9DT05UQUlORVJcIlxuICAgIFtjbGFzcy5pZnJhbWUtY29udGFpbmVyLS1yZWFkeV09XCJ2aWV3UmVhZHlcIlxuICA+PC9kaXY+XG59IEBlbHNlIGlmICghbG9hZGluZykge1xuICA8cCBjbGFzcz1cImlmcmFtZS13YXJuaW5nIHRleHQtLXdhcm5cIj57eyBzdGF0dXMgfCB0cmFucyB9fTwvcD5cbn1cblxuQGlmIChsb2FkaW5nKSB7XG4gIDxkaXYgY2xhc3M9XCJ0cm0tc2tlbGV0b24tZmllbGRzXCI+XG4gICAgQGZvciAoaSBvZiBbMSwyXTsgdHJhY2sgaSkge1xuICAgICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZFwiPlxuICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2hhcGVdPVwiJ3JlY3QtbWQnXCIgW3NpemVdPVwiMThcIj48L2dtLXNrZWxldG9uPlxuICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2l6ZV09XCI1MFwiPjwvZ20tc2tlbGV0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef, inject } from '@angular/core';
|
|
2
|
-
import { NG_ASYNC_VALIDATORS, } from '@angular/forms';
|
|
3
|
-
import { I18N_KEY } from './../../../../../i18n/i18n-key.enum';
|
|
4
|
-
import { of, Subject } from 'rxjs';
|
|
5
|
-
import { CardSdkService } from './card-sdk.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class IframeValidatorDirectiveDirective {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.cardSdkSrv = inject(CardSdkService);
|
|
10
|
-
this.submitting$ = new Subject();
|
|
11
|
-
this._validationSdkError = false;
|
|
12
|
-
}
|
|
13
|
-
registerSDK(sdk) {
|
|
14
|
-
if (!sdk) {
|
|
15
|
-
this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
this._sdk = sdk;
|
|
19
|
-
this.handleSubmitting();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
handleSubmitting() {
|
|
23
|
-
this._sdk.onInputPending(() => {
|
|
24
|
-
this._validationSdkError = true;
|
|
25
|
-
});
|
|
26
|
-
this._sdk.onError((code) => {
|
|
27
|
-
this._validationSdkError = false;
|
|
28
|
-
let codeError = I18N_KEY.ERROR_OCCUR;
|
|
29
|
-
if (code === 501) {
|
|
30
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_501;
|
|
31
|
-
}
|
|
32
|
-
else if (code === 500) {
|
|
33
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_500;
|
|
34
|
-
}
|
|
35
|
-
else if (code === 504) {
|
|
36
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_504;
|
|
37
|
-
}
|
|
38
|
-
this._fatalError = codeError;
|
|
39
|
-
});
|
|
40
|
-
this._sdk.onInputReady(() => {
|
|
41
|
-
this._validationSdkError = false;
|
|
42
|
-
this.submitting$.next(null);
|
|
43
|
-
});
|
|
44
|
-
this._sdk.onInputSubmitted(() => {
|
|
45
|
-
this._validationSdkError = false;
|
|
46
|
-
this.submitting$.next(null);
|
|
47
|
-
});
|
|
48
|
-
this._sdk.onTimeout(() => {
|
|
49
|
-
this._validationSdkError = false;
|
|
50
|
-
this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
validate(control) {
|
|
54
|
-
if (this._fatalError) {
|
|
55
|
-
return of({ cde_error: this._fatalError });
|
|
56
|
-
}
|
|
57
|
-
if (this._validationSdkError) {
|
|
58
|
-
return of({ cde_validation_error: true });
|
|
59
|
-
}
|
|
60
|
-
if (this.cardSdkSrv.pending) {
|
|
61
|
-
return this.submitting$.asObservable();
|
|
62
|
-
}
|
|
63
|
-
return of(null);
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IframeValidatorDirectiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: IframeValidatorDirectiveDirective, isStandalone: true, selector: "[appIframeValidatorDirective]", providers: [
|
|
67
|
-
{
|
|
68
|
-
provide: NG_ASYNC_VALIDATORS,
|
|
69
|
-
useExisting: forwardRef(() => IframeValidatorDirectiveDirective),
|
|
70
|
-
multi: true,
|
|
71
|
-
},
|
|
72
|
-
], ngImport: i0 }); }
|
|
73
|
-
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IframeValidatorDirectiveDirective, decorators: [{
|
|
75
|
-
type: Directive,
|
|
76
|
-
args: [{
|
|
77
|
-
selector: '[appIframeValidatorDirective]',
|
|
78
|
-
standalone: true,
|
|
79
|
-
providers: [
|
|
80
|
-
{
|
|
81
|
-
provide: NG_ASYNC_VALIDATORS,
|
|
82
|
-
useExisting: forwardRef(() => IframeValidatorDirectiveDirective),
|
|
83
|
-
multi: true,
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
}]
|
|
87
|
-
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLXZhbGlkYXRvci1kaXJlY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2lmcmFtZS12YWxpZGF0b3ItZGlyZWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUdMLG1CQUFtQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBY3BELE1BQU0sT0FBTyxpQ0FBaUM7SUFYOUM7UUFZVSxlQUFVLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUdwRCxnQkFBVyxHQUFxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRzlELHdCQUFtQixHQUFHLEtBQUssQ0FBQztLQXVEckM7SUFyREMsV0FBVyxDQUFDLEdBQW9CO1FBQzlCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdC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b3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9pMThuL2kxOG4ta2V5LmVudW0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhcmRTZGtTZXJ2aWNlIH0gZnJvbSAnLi9jYXJkLXNkay5zZXJ2aWNlJztcbmltcG9ydCB7IENkZVRlcm1pbmFsU2RrIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvY2RlLXRlcm1pbmFsLXNkayc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBJZnJhbWVWYWxpZGF0b3JEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfQVNZTkNfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZURpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJZnJhbWVWYWxpZGF0b3JEaXJlY3RpdmVEaXJlY3RpdmUgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvciB7XG4gIHByaXZhdGUgY2FyZFNka1NydjogQ2FyZFNka1NlcnZpY2UgPSBpbmplY3QoQ2FyZFNka1NlcnZpY2UpO1xuICBwcml2YXRlIF9zZGs6IENkZVRlcm1pbmFsU2RrO1xuXG4gIHByaXZhdGUgc3VibWl0dGluZyQ6IFN1YmplY3Q8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9mYXRhbEVycm9yOiBJMThOX0tFWTtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvblNka0Vycm9yID0gZmFsc2U7XG5cbiAgcmVnaXN0ZXJTREsoc2RrPzogQ2RlVGVybWluYWxTZGspOiB2b2lkIHtcbiAgICBpZiAoIXNkaykge1xuICAgICAgdGhpcy5fZmF0YWxFcnJvciA9IEkxOE5fS0VZLkVSUk9SX09DQ1VSX1NESztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2RrID0gc2RrO1xuICAgICAgdGhpcy5oYW5kbGVTdWJtaXR0aW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXR0aW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX3Nkay5vbklucHV0UGVuZGluZygoKSA9PiB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uU2RrRXJyb3IgPSB0cnVlO1xuICAgIH0pO1xuICAgIHRoaXMuX3Nkay5vbkVycm9yKChjb2RlKSA9PiB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uU2RrRXJyb3IgPSBmYWxzZTtcbiAgICAgIGxldCBjb2RlRXJyb3IgPSBJMThOX0tFWS5FUlJPUl9PQ0NVUjtcbiAgICAgIGlmIChjb2RlID09PSA1MDEpIHtcbiAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTAxO1xuICAgICAgfSBlbHNlIGlmIChjb2RlID09PSA1MDApIHtcbiAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTAwO1xuICAgICAgfSBlbHNlIGlmIChjb2RlID09PSA1MDQpIHtcbiAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTA0O1xuICAgICAgfVxuICAgICAgdGhpcy5fZmF0YWxFcnJvciA9IGNvZGVFcnJvcjtcbiAgICB9KTtcbiAgICB0aGlzLl9zZGsub25JbnB1dFJlYWR5KCgpID0+IHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25TZGtFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5zdWJtaXR0aW5nJC5uZXh0KG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuX3Nkay5vbklucHV0U3VibWl0dGVkKCgpID0+IHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25TZGtFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5zdWJtaXR0aW5nJC5uZXh0KG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuX3Nkay5vblRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvblNka0Vycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLl9mYXRhbEVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTA0O1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGUoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHtcbiAgICBpZiAodGhpcy5fZmF0YWxFcnJvcikge1xuICAgICAgcmV0dXJuIG9mKHsgY2RlX2Vycm9yOiB0aGlzLl9mYXRhbEVycm9yIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdmFsaWRhdGlvblNka0Vycm9yKSB7XG4gICAgICByZXR1cm4gb2YoeyBjZGVfdmFsaWRhdGlvbl9lcnJvcjogdHJ1ZSB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2FyZFNka1Nydi5wZW5kaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdWJtaXR0aW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, inject, Injector, Input } from '@angular/core';
|
|
2
|
-
import { FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';
|
|
4
|
-
import { I18N_KEY } from './../../../../../i18n';
|
|
5
|
-
import { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';
|
|
6
|
-
import { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
|
-
export class ConstructorFieldSelectComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.cd = inject(ChangeDetectorRef);
|
|
12
|
-
this.injector = inject(Injector);
|
|
13
|
-
this.I18N_KEY = I18N_KEY;
|
|
14
|
-
this.onChange = (_value) => {
|
|
15
|
-
};
|
|
16
|
-
this.onTouch = () => {
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
get data() {
|
|
20
|
-
if (!this.items) {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
return this.items
|
|
24
|
-
.filter((option) => {
|
|
25
|
-
if (!this.searchString) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
const title = option.name;
|
|
30
|
-
return title.toLowerCase()
|
|
31
|
-
.split(' ').some(ts => this.searchString.toLowerCase().split(' ').some(s => ts.includes(s)));
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
registerOnChange(fn) {
|
|
36
|
-
this.onChange = fn;
|
|
37
|
-
}
|
|
38
|
-
registerOnTouched(fn) {
|
|
39
|
-
this.onTouch = fn;
|
|
40
|
-
}
|
|
41
|
-
search(searchString) {
|
|
42
|
-
this.searchString = searchString;
|
|
43
|
-
this.cd.markForCheck();
|
|
44
|
-
}
|
|
45
|
-
writeValue(value) {
|
|
46
|
-
this.cd.markForCheck();
|
|
47
|
-
}
|
|
48
|
-
get apiError() {
|
|
49
|
-
return this.control?.getError('error');
|
|
50
|
-
}
|
|
51
|
-
ngAfterViewInit() {
|
|
52
|
-
this.control = this.injector.get(NgControl).control;
|
|
53
|
-
this.cd.detectChanges();
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldSelectComponent, isStandalone: true, selector: "app-constructor-field-select", inputs: { config: "config", items: "items", tabIndex: "tabIndex" }, providers: [
|
|
57
|
-
{
|
|
58
|
-
provide: NG_VALUE_ACCESSOR,
|
|
59
|
-
useExisting: forwardRef(() => ConstructorFieldSelectComponent),
|
|
60
|
-
multi: true
|
|
61
|
-
}
|
|
62
|
-
], ngImport: i0, template: "@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", styles: [":host{display:block;width:100%}\n"], dependencies: [{ kind: "component", type: TrmSelectComponent, selector: "app-trm-select", inputs: ["label", "hasBorder", "data", "tabIndex", "name", "placeholder", "searchable", "hasScrollbar", "nameId", "nameLabel"], outputs: ["open", "search"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldSelectComponent, decorators: [{
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'app-constructor-field-select', changeDetection: ChangeDetectionStrategy.OnPush, animations: [insertRemoveTrigger], providers: [
|
|
67
|
-
{
|
|
68
|
-
provide: NG_VALUE_ACCESSOR,
|
|
69
|
-
useExisting: forwardRef(() => ConstructorFieldSelectComponent),
|
|
70
|
-
multi: true
|
|
71
|
-
}
|
|
72
|
-
], standalone: true, imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe], template: "@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", styles: [":host{display:block;width:100%}\n"] }]
|
|
73
|
-
}], propDecorators: { config: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], items: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], tabIndex: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0L2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxtQkFBbUIsRUFDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQWtCdkYsTUFBTSxPQUFPLCtCQUErQjtJQWhCNUM7UUFpQlUsT0FBRSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIs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QUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRGaWVsZCwgUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaGVscGVycy9pbnNlcnRSZW1vdmVUcmlnZ2VyJztcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9pMThuJztcbmltcG9ydCB7IFRybVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3RybS1zZWxlY3QvdHJtLXNlbGVjdC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVCeUtleVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLWJ5LWtleS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb25zdHJ1Y3RvckZpZWxkU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJtU2VsZWN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlQnlLZXlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RvckZpZWxkU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGF5bWVudEZpZWxkO1xuICBASW5wdXQoKSBpdGVtczogUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW1bXTtcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcbiAgc2VhcmNoU3RyaW5nOiBzdHJpbmc7XG4gIEkxOE5fS0VZID0gSTE4Tl9LRVk7XG5cbiAgb25DaGFuZ2UgPSAoX3ZhbHVlOiBhbnkpID0+IHtcbiAgfTtcbiAgb25Ub3VjaCA9ICgpID0+IHtcbiAgfTtcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuXG4gIGdldCBkYXRhKCkge1xuICAgIGlmICghdGhpcy5pdGVtcykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdGVtc1xuICAgICAgLmZpbHRlcigob3B0aW9uOiBQYXltZW50RmllbGRPcHRpb25zSXRlbSkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoU3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGl0bGU6IHN0cmluZyA9IG9wdGlvbi5uYW1lO1xuICAgICAgICAgIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAuc3BsaXQoJyAnKS5zb21lKFxuICAgICAgICAgICAgICB0cyA9PiB0aGlzLnNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykuc29tZShzID0+IHRzLmluY2x1ZGVzKHMpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNlYXJjaChzZWFyY2hTdHJpbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoU3RyaW5nO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IGFwaUVycm9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZ2V0RXJyb3IoJ2Vycm9yJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKS5jb250cm9sO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCJAaWYgKGNvbnRyb2wpIHtcbiAgPGFwcC10cm0tc2VsZWN0IFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciB8IHRyYW5zXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWwgfCB0cmFuc1wiXG4gICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb25maWcubmFtZVwiXG4gICAgICAgICAgICAgICAgICAoc2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChvcGVuKT1cIm9uVG91Y2goKVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjLWZpZWxkLXNlbGVjdCB0cm0tZm9ybS1maWVsZFwiXG4gID48L2FwcC10cm0tc2VsZWN0PlxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcbiAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICA+XG4gICAgICB7eyBJMThOX0tFWS5WQUxJREFUSU9OX1JFUVVJUkVEIHwgdHJhbnMgfX1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ2Vycm9yJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcbiAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICA+XG4gICAgICB7eyBhcGlFcnJvciB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ2N1c3RvbV9lcnJvcicpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgY29udHJvbC5nZXRFcnJvcignY3VzdG9tX2Vycm9yJykgfCB0cmFucyB9fVxuICAgIDwvZGl2PlxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, inject, Injector, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { FORMAT_DATE, PaymentFieldTypeEnum } from '../../models';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import { MatDatepickerInput } from '@angular/material/datepicker';
|
|
6
|
-
import { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';
|
|
7
|
-
import { INITIAL_PHONE_MASK, MaskResolver } from './../../../../../helpers/mask-resolver';
|
|
8
|
-
import { NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';
|
|
9
|
-
import { I18N_KEY } from './../../../../../i18n';
|
|
10
|
-
import { removeSpecSymbols } from '../../../../../helpers/phone-codes';
|
|
11
|
-
import { InputMaskCorrector } from '../../../../directives/input-mask-corrector.directive';
|
|
12
|
-
import { TabIndexFocusDirective } from '../../../../directives/tab-index-focus.directive';
|
|
13
|
-
import { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/forms";
|
|
16
|
-
export class ConstructorFieldTextComponent {
|
|
17
|
-
get disabled() {
|
|
18
|
-
return this.config.readonly || false;
|
|
19
|
-
}
|
|
20
|
-
;
|
|
21
|
-
get inputmode() {
|
|
22
|
-
return this.config.inputMode || 'text';
|
|
23
|
-
}
|
|
24
|
-
constructor() {
|
|
25
|
-
this.cd = inject(ChangeDetectorRef);
|
|
26
|
-
this.maskSrv = inject(MaskResolver);
|
|
27
|
-
this.injector = inject(Injector);
|
|
28
|
-
this.maskPipe = inject(NgxMaskPipe);
|
|
29
|
-
this.unsub = new Subject();
|
|
30
|
-
this._type = 'text';
|
|
31
|
-
this.FORMAT_DATE = FORMAT_DATE;
|
|
32
|
-
this.dropSpecialCharacters = true;
|
|
33
|
-
this.I18N_KEY = I18N_KEY;
|
|
34
|
-
this.maskedValueChange = new EventEmitter();
|
|
35
|
-
this.onChange = (_value) => {
|
|
36
|
-
};
|
|
37
|
-
this.onTouch = () => {
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
get type() {
|
|
41
|
-
if (this.config.type === PaymentFieldTypeEnum.Email) {
|
|
42
|
-
return 'email';
|
|
43
|
-
}
|
|
44
|
-
return this._type;
|
|
45
|
-
}
|
|
46
|
-
get name() {
|
|
47
|
-
return this.config.name;
|
|
48
|
-
}
|
|
49
|
-
onDateInput(e) {
|
|
50
|
-
const target = e.target;
|
|
51
|
-
let { selectionStart, selectionEnd } = target;
|
|
52
|
-
this.control?.markAsUntouched();
|
|
53
|
-
e.preventDefault();
|
|
54
|
-
e.stopPropagation();
|
|
55
|
-
target.value = this.maskPipe
|
|
56
|
-
.transform(target.value, this.mask, { patterns: this.maskPatterns })
|
|
57
|
-
.replace(/^-|-$/, '');
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
this.control?.updateValueAndValidity();
|
|
60
|
-
if (selectionStart === selectionEnd && e.inputType !== 'deleteContentBackward') {
|
|
61
|
-
while (this.specialCharacters.includes(target.value[selectionEnd - 1])) {
|
|
62
|
-
selectionEnd += 1;
|
|
63
|
-
selectionStart += 1;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
target.setSelectionRange(selectionStart, selectionEnd);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
onPaste(e) {
|
|
70
|
-
const t = e.target;
|
|
71
|
-
if (this.type === PaymentFieldTypeEnum.Email) {
|
|
72
|
-
this._emitMaskedValueChanges(t);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const value = t.value;
|
|
76
|
-
let content = e.clipboardData?.getData('text') || '';
|
|
77
|
-
let selectionStart = removeSpecSymbols(t.value.slice(0, t.selectionStart)).length + removeSpecSymbols(content).length;
|
|
78
|
-
if (value) {
|
|
79
|
-
const arr = Array.from(value);
|
|
80
|
-
arr.splice(t.selectionStart, t.selectionEnd - t.selectionStart, ...Array.from(content));
|
|
81
|
-
content = removeSpecSymbols(arr.join(''));
|
|
82
|
-
}
|
|
83
|
-
this.mask = this.maskSrv.getMaskByValue(this.config.mask, content);
|
|
84
|
-
this.cd.detectChanges();
|
|
85
|
-
this.control?.setValue(content);
|
|
86
|
-
this.cd.detectChanges();
|
|
87
|
-
e.preventDefault();
|
|
88
|
-
this._emitMaskedValueChanges(t, selectionStart);
|
|
89
|
-
}
|
|
90
|
-
onInput(e) {
|
|
91
|
-
this.control?.markAsUntouched();
|
|
92
|
-
this.cd.markForCheck();
|
|
93
|
-
if (this.matDatepicker) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
const target = e.target;
|
|
97
|
-
if (this.type === PaymentFieldTypeEnum.Email) {
|
|
98
|
-
this._emitMaskedValueChanges(target);
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const value = this.control?.value;
|
|
102
|
-
let selectionStart = removeSpecSymbols(target.value.slice(0, target.selectionStart)).length;
|
|
103
|
-
const mask = this.maskSrv.getMaskByValue(this.config.mask, value);
|
|
104
|
-
if (!mask || mask === INITIAL_PHONE_MASK) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
this.mask = mask;
|
|
108
|
-
this.cd.detectChanges();
|
|
109
|
-
this._emitMaskedValueChanges(target, selectionStart);
|
|
110
|
-
}
|
|
111
|
-
_emitMaskedValueChanges(target, positionInUnmaskedValue) {
|
|
112
|
-
setTimeout(() => {
|
|
113
|
-
this.control?.updateValueAndValidity();
|
|
114
|
-
if (this.mask) {
|
|
115
|
-
this.maskedValueChange.emit(target.value);
|
|
116
|
-
}
|
|
117
|
-
this._setSelection(target, positionInUnmaskedValue);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
_setSelection(target, positionInUnmaskedValue) {
|
|
121
|
-
if (this.type === PaymentFieldTypeEnum.Email) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
let positionMaskedValue = 0;
|
|
125
|
-
let i = 0;
|
|
126
|
-
while (positionInUnmaskedValue > i && target.value.length > positionMaskedValue) {
|
|
127
|
-
if (/\d/.test(target.value[positionMaskedValue])) {
|
|
128
|
-
i++;
|
|
129
|
-
}
|
|
130
|
-
positionMaskedValue++;
|
|
131
|
-
}
|
|
132
|
-
target.setSelectionRange(positionMaskedValue, positionMaskedValue);
|
|
133
|
-
}
|
|
134
|
-
ngAfterViewInit() {
|
|
135
|
-
this.control = this.injector.get(NgControl).control;
|
|
136
|
-
this.cd.detectChanges();
|
|
137
|
-
}
|
|
138
|
-
get apiError() {
|
|
139
|
-
return this.control?.getError('error');
|
|
140
|
-
}
|
|
141
|
-
registerOnChange(fn) {
|
|
142
|
-
this.onChange = fn;
|
|
143
|
-
}
|
|
144
|
-
registerOnTouched(fn) {
|
|
145
|
-
this.onTouch = fn;
|
|
146
|
-
}
|
|
147
|
-
writeValue(value) {
|
|
148
|
-
if (value) {
|
|
149
|
-
this.mask = this.maskSrv.getMaskByValue(this.config.mask, value);
|
|
150
|
-
}
|
|
151
|
-
this.cd.markForCheck();
|
|
152
|
-
}
|
|
153
|
-
ngOnInit() {
|
|
154
|
-
this.mask = this.maskSrv.getMaskByValue(this.config.mask);
|
|
155
|
-
if (this.config.maskValidation !== true) {
|
|
156
|
-
this.config.maskValidation = false;
|
|
157
|
-
}
|
|
158
|
-
this.maskPatterns = this.maskSrv.getPatterns(this.config);
|
|
159
|
-
this.specialCharacters = [...this.maskSrv.getSpecialCharacters(this.config)];
|
|
160
|
-
this.dropSpecialCharacters = this.config.dropSpecialCharacters !== false;
|
|
161
|
-
}
|
|
162
|
-
ngOnDestroy() {
|
|
163
|
-
this.unsub.next();
|
|
164
|
-
this.unsub.unsubscribe();
|
|
165
|
-
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldTextComponent, isStandalone: true, selector: "app-constructor-field-text", inputs: { config: "config", matDatepicker: "matDatepicker", tabIndex: "tabIndex" }, outputs: { maskedValueChange: "maskedValueChange" }, providers: [
|
|
168
|
-
{
|
|
169
|
-
provide: NG_VALUE_ACCESSOR,
|
|
170
|
-
useExisting: forwardRef(() => ConstructorFieldTextComponent),
|
|
171
|
-
multi: true
|
|
172
|
-
}
|
|
173
|
-
], viewQueries: [{ propertyName: "dir", first: true, predicate: NgxMaskDirective, descendants: true }], ngImport: i0, template: "@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", styles: [":host{display:block}.c-text{position:relative}.c-text.c-text--disabled input.trm-form-field{border:1px solid var(--trm-input-border-color--disabled);background:var(--trm-input-bg-color--disabled);pointer-events:none}.c-text.c-text--uppercase input.trm-form-field{text-transform:uppercase}.c-text__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350)}.c-text~.c-text__hint{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: InputMaskCorrector, selector: "input[mask]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TabIndexFocusDirective, selector: "[tabindex]" }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
174
|
-
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldTextComponent, decorators: [{
|
|
176
|
-
type: Component,
|
|
177
|
-
args: [{ selector: 'app-constructor-field-text', changeDetection: ChangeDetectionStrategy.OnPush, animations: [insertRemoveTrigger], providers: [
|
|
178
|
-
{
|
|
179
|
-
provide: NG_VALUE_ACCESSOR,
|
|
180
|
-
useExisting: forwardRef(() => ConstructorFieldTextComponent),
|
|
181
|
-
multi: true
|
|
182
|
-
}
|
|
183
|
-
], standalone: true, imports: [FormsModule, NgxMaskDirective, InputMaskCorrector, ReactiveFormsModule, TabIndexFocusDirective, MatDatepickerInput, TranslateByKeyPipe], template: "@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", styles: [":host{display:block}.c-text{position:relative}.c-text.c-text--disabled input.trm-form-field{border:1px solid var(--trm-input-border-color--disabled);background:var(--trm-input-bg-color--disabled);pointer-events:none}.c-text.c-text--uppercase input.trm-form-field{text-transform:uppercase}.c-text__hint{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350)}.c-text~.c-text__hint{margin-top:8px}\n"] }]
|
|
184
|
-
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], matDatepicker: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], tabIndex: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], maskedValueChange: [{
|
|
191
|
-
type: Output
|
|
192
|
-
}], dir: [{
|
|
193
|
-
type: ViewChild,
|
|
194
|
-
args: [NgxMaskDirective]
|
|
195
|
-
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1maWVsZC10ZXh0L2NvbnN0cnVjdG9yLWZpZWxkLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtdGV4dC9jb25zdHJ1Y3Rvci1maWVsZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBZ0Isb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUdMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULG1CQUFtQixFQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBa0J2RixNQUFNLE9BQU8sNkJBQTZCO0lBU3hDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFBQSxDQUFDO0lBU0YsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7SUFDekMsQ0FBQztJQWNEO1FBbkNRLE9BQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQixVQUFLLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0MsVUFBSyxHQUFHLE1BQU0sQ0FBQztRQU1kLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBRW5DLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUM3QixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBVVYsc0JBQWlCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLdkUsYUFBUSxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7UUFDM0IsQ0FBQyxDQUFDO1FBQ0YsWUFBTyxHQUFHLEdBQUcsRUFBRTtRQUNmLENBQUMsQ0FBQztJQUdGLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFhO1FBQ3ZCLE1BQU0sTUFBTSxHQUFxQixDQUFDLENBQUMsTUFBMEIsQ0FBQztRQUM5RCxJQUFJLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUTthQUN6QixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQzthQUNqRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFFdkMsSUFBSSxjQUFjLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssdUJBQXVCLEVBQUUsQ0FBQztnQkFDL0UsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkUsWUFBWSxJQUFJLENBQUMsQ0FBQztvQkFDbEIsY0FBYyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFpQjtRQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBMEIsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEgsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4RixPQUFPLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQWE7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQTBCLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzFDLElBQUksY0FBYyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUN6QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWpCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBTSxFQUFFLHVCQUF3QjtRQUM5RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUF3QixFQUFFLHVCQUF3QjtRQUN0RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLHVCQUF1QixHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxDQUFDLEVBQUUsQ0FBQztZQUNOLENBQUM7WUFDRCxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEtBQUssS0FBSyxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBcExVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtOQVY3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzVELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrREFnQ1UsZ0JBQWdCLGdEQ2hGN0IscXRJQW1JQSwwZERqRlksV0FBVyx1WkFBRSxnQkFBZ0IsaWpCQUFFLGtCQUFrQix1REFBRSxtQkFBbUIsa05BQUUsc0JBQXNCLHVEQUFFLGtCQUFrQiw4SkFBRSxrQkFBa0IsZ0NBVHBJLENBQUMsbUJBQW1CLENBQUM7OzJGQVd0Qiw2QkFBNkI7a0JBaEJ6QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLG1CQUFtQixDQUFDLGFBQ3RCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDhCQUE4QixDQUFDOzRCQUM1RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQzt3REFvQnhJLE1BQU07c0JBQWQsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVzQixHQUFHO3NCQUEvQixTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGT1JNQVRfREFURSwgUGF5bWVudEZpZWxkLCBQYXltZW50RmllbGRUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyLCBNYXREYXRlcGlja2VySW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCBtb21lbnRqcyBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaGVscGVycy9pbnNlcnRSZW1vdmVUcmlnZ2VyJztcbmltcG9ydCB7IElOSVRJQUxfUEhPTkVfTUFTSywgTWFza1Jlc29sdmVyIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9oZWxwZXJzL21hc2stcmVzb2x2ZXInO1xuaW1wb3J0IHsgSUNvbmZpZywgTmd4TWFza0RpcmVjdGl2ZSwgTmd4TWFza1BpcGUgfSBmcm9tICduZ3gtbWFzayc7XG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaTE4bic7XG5pbXBvcnQgeyByZW1vdmVTcGVjU3ltYm9scyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hlbHBlcnMvcGhvbmUtY29kZXMnO1xuaW1wb3J0IHsgSW5wdXRNYXNrQ29ycmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9pbnB1dC1tYXNrLWNvcnJlY3Rvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiSW5kZXhGb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvdGFiLWluZGV4LWZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVCeUtleVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLWJ5LWtleS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uc3RydWN0b3ItZmllbGQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnN0cnVjdG9yLWZpZWxkLXRleHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb25zdHJ1Y3RvckZpZWxkVGV4dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ3hNYXNrRGlyZWN0aXZlLCBJbnB1dE1hc2tDb3JyZWN0b3IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRhYkluZGV4Rm9jdXNEaXJlY3RpdmUsIE1hdERhdGVwaWNrZXJJbnB1dCwgVHJhbnNsYXRlQnlLZXlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RvckZpZWxkVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIG1hc2tTcnYgPSBpbmplY3QoTWFza1Jlc29sdmVyKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgbWFza1BpcGUgPSBpbmplY3QoTmd4TWFza1BpcGUpO1xuXG4gIHByaXZhdGUgdW5zdWI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF90eXBlID0gJ3RleHQnO1xuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVhZG9ubHkgfHwgZmFsc2U7XG4gIH07XG5cbiAgcmVhZG9ubHkgRk9STUFUX0RBVEUgPSBGT1JNQVRfREFURTtcbiAgbWFzazogc3RyaW5nO1xuICBkcm9wU3BlY2lhbENoYXJhY3RlcnMgPSB0cnVlO1xuICBJMThOX0tFWSA9IEkxOE5fS0VZO1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogUGF5bWVudEZpZWxkO1xuXG4gIGdldCBpbnB1dG1vZGUoKTogXCJ0ZXh0XCIgfCBcInRlbFwiIHwgXCJudW1lcmljXCIgfCBcImVtYWlsXCIgfCBcInVybFwiIHwgXCJub25lXCIge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5pbnB1dE1vZGUgfHwgJ3RleHQnO1xuICB9XG5cbiAgQElucHV0KCkgbWF0RGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxtb21lbnRqcy5Nb21lbnQ+O1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xuICBAT3V0cHV0KCkgbWFza2VkVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBWaWV3Q2hpbGQoTmd4TWFza0RpcmVjdGl2ZSkgZGlyOiBOZ3hNYXNrRGlyZWN0aXZlO1xuICBtYXNrUGF0dGVybnM6IElDb25maWdbJ3BhdHRlcm5zJ107XG4gIHNwZWNpYWxDaGFyYWN0ZXJzOiBzdHJpbmdbXTtcbiAgb25DaGFuZ2UgPSAoX3ZhbHVlOiBhbnkpID0+IHtcbiAgfTtcbiAgb25Ub3VjaCA9ICgpID0+IHtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xuICAgICAgcmV0dXJuICdlbWFpbCc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLm5hbWU7XG4gIH1cblxuICBvbkRhdGVJbnB1dChlOiBJbnB1dEV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBsZXQge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gdGFyZ2V0O1xuICAgIHRoaXMuY29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGFyZ2V0LnZhbHVlID0gdGhpcy5tYXNrUGlwZVxuICAgICAgLnRyYW5zZm9ybSh0YXJnZXQudmFsdWUsIHRoaXMubWFzaywge3BhdHRlcm5zOiB0aGlzLm1hc2tQYXR0ZXJuc30pXG4gICAgICAucmVwbGFjZSgvXi18LSQvLCAnJyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZCAmJiBlLmlucHV0VHlwZSAhPT0gJ2RlbGV0ZUNvbnRlbnRCYWNrd2FyZCcpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3BlY2lhbENoYXJhY3RlcnMuaW5jbHVkZXModGFyZ2V0LnZhbHVlW3NlbGVjdGlvbkVuZCAtIDFdKSkge1xuICAgICAgICAgIHNlbGVjdGlvbkVuZCArPSAxO1xuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uUGFzdGUoZTogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCB0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAodGhpcy50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xuICAgICAgdGhpcy5fZW1pdE1hc2tlZFZhbHVlQ2hhbmdlcyh0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSB0LnZhbHVlO1xuICAgIGxldCBjb250ZW50ID0gZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0JykgfHwgJyc7XG4gICAgbGV0IHNlbGVjdGlvblN0YXJ0ID0gcmVtb3ZlU3BlY1N5bWJvbHModC52YWx1ZS5zbGljZSgwLCB0LnNlbGVjdGlvblN0YXJ0KSkubGVuZ3RoICsgcmVtb3ZlU3BlY1N5bWJvbHMoY29udGVudCkubGVuZ3RoO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgYXJyID0gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gICAgICBhcnIuc3BsaWNlKHQuc2VsZWN0aW9uU3RhcnQsIHQuc2VsZWN0aW9uRW5kIC0gdC5zZWxlY3Rpb25TdGFydCwgLi4uQXJyYXkuZnJvbShjb250ZW50KSk7XG4gICAgICBjb250ZW50ID0gcmVtb3ZlU3BlY1N5bWJvbHMoYXJyLmpvaW4oJycpKTtcbiAgICB9XG4gICAgdGhpcy5tYXNrID0gdGhpcy5tYXNrU3J2LmdldE1hc2tCeVZhbHVlKHRoaXMuY29uZmlnLm1hc2ssIGNvbnRlbnQpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUoY29udGVudCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2VtaXRNYXNrZWRWYWx1ZUNoYW5nZXModCwgc2VsZWN0aW9uU3RhcnQpO1xuICB9XG5cbiAgb25JbnB1dChlOiBJbnB1dEV2ZW50KSB7XG4gICAgdGhpcy5jb250cm9sPy5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIGlmICh0aGlzLm1hdERhdGVwaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAodGhpcy50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xuICAgICAgdGhpcy5fZW1pdE1hc2tlZFZhbHVlQ2hhbmdlcyh0YXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5jb250cm9sPy52YWx1ZTtcbiAgICBsZXQgc2VsZWN0aW9uU3RhcnQgPSByZW1vdmVTcGVjU3ltYm9scyh0YXJnZXQudmFsdWUuc2xpY2UoMCwgdGFyZ2V0LnNlbGVjdGlvblN0YXJ0KSkubGVuZ3RoO1xuICAgIGNvbnN0IG1hc2sgPSB0aGlzLm1hc2tTcnYuZ2V0TWFza0J5VmFsdWUodGhpcy5jb25maWcubWFzaywgdmFsdWUpO1xuICAgIGlmICghbWFzayB8fCBtYXNrID09PSBJTklUSUFMX1BIT05FX01BU0spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tYXNrID0gbWFzaztcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuX2VtaXRNYXNrZWRWYWx1ZUNoYW5nZXModGFyZ2V0LCBzZWxlY3Rpb25TdGFydCk7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0TWFza2VkVmFsdWVDaGFuZ2VzKHRhcmdldCwgcG9zaXRpb25JblVubWFza2VkVmFsdWU/KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgICAgdGhpcy5tYXNrZWRWYWx1ZUNoYW5nZS5lbWl0KHRhcmdldC52YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9zZXRTZWxlY3Rpb24odGFyZ2V0LCBwb3NpdGlvbkluVW5tYXNrZWRWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRTZWxlY3Rpb24odGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50LCBwb3NpdGlvbkluVW5tYXNrZWRWYWx1ZT8pIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcG9zaXRpb25NYXNrZWRWYWx1ZSA9IDA7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlIChwb3NpdGlvbkluVW5tYXNrZWRWYWx1ZSA+IGkgJiYgdGFyZ2V0LnZhbHVlLmxlbmd0aCA+IHBvc2l0aW9uTWFza2VkVmFsdWUpIHtcbiAgICAgIGlmICgvXFxkLy50ZXN0KHRhcmdldC52YWx1ZVtwb3NpdGlvbk1hc2tlZFZhbHVlXSkpIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcG9zaXRpb25NYXNrZWRWYWx1ZSsrO1xuICAgIH1cbiAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zaXRpb25NYXNrZWRWYWx1ZSwgcG9zaXRpb25NYXNrZWRWYWx1ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKS5jb250cm9sO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IGFwaUVycm9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZ2V0RXJyb3IoJ2Vycm9yJyk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubWFzayA9IHRoaXMubWFza1Nydi5nZXRNYXNrQnlWYWx1ZSh0aGlzLmNvbmZpZy5tYXNrLCB2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1hc2sgPSB0aGlzLm1hc2tTcnYuZ2V0TWFza0J5VmFsdWUodGhpcy5jb25maWcubWFzayk7XG4gICAgaWYgKHRoaXMuY29uZmlnLm1hc2tWYWxpZGF0aW9uICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmNvbmZpZy5tYXNrVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLm1hc2tQYXR0ZXJucyA9IHRoaXMubWFza1Nydi5nZXRQYXR0ZXJucyh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5zcGVjaWFsQ2hhcmFjdGVycyA9IFsuLi50aGlzLm1hc2tTcnYuZ2V0U3BlY2lhbENoYXJhY3RlcnModGhpcy5jb25maWcpXTtcbiAgICB0aGlzLmRyb3BTcGVjaWFsQ2hhcmFjdGVycyA9IHRoaXMuY29uZmlnLmRyb3BTcGVjaWFsQ2hhcmFjdGVycyAhPT0gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3ViLm5leHQoKTtcbiAgICB0aGlzLnVuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIkBpZiAoY29udHJvbCkge1xuICA8bGFiZWwgY2xhc3M9XCJ0cm0tbGFiZWxcIlxuICAgICAgICAgW2Zvcl09XCJjb25maWcubmFtZVwiXG4gID4ge3sgY29uZmlnLmxhYmVsIHwgdHJhbnMgfX0gPC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgdHJtLWZvcm0tZmllbGQtd3JhcHBlciBjLXRleHRcIlxuICAgICAgIFtjbGFzcy5jLXRleHQtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbY2xhc3MuYy10ZXh0LS11cHBlcmNhc2VdPVwiY29uZmlnLnVwcGVyY2FzZVwiPlxuICAgIEBpZiAoIW1hdERhdGVwaWNrZXIpIHtcbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cInRybS1mb3JtLWZpZWxkIHRybS1pbnB1dFwiXG4gICAgICAgIFtjbGFzcy50cm0tZm9ybS1maWVsZC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyIHwgdHJhbnNcIlxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBbaWRdPVwibmFtZVwiXG4gICAgICAgIFttYXNrXT1cIm1hc2tcIlxuICAgICAgICBbYXR0ci5pbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgICAgICAgW3BhdHRlcm5zXT1cIm1hc2tQYXR0ZXJuc1wiXG4gICAgICAgIFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJmYWxzZVwiXG4gICAgICAgIFt0aG91c2FuZFNlcGFyYXRvcl09XCInICdcIlxuICAgICAgICBbZGVjaW1hbE1hcmtlcl09XCInLidcIlxuICAgICAgICBbdmFsaWRhdGlvbl09XCJjb25maWcubWFza1ZhbGlkYXRpb24gfHwgZmFsc2VcIlxuICAgICAgICBbc3BlY2lhbENoYXJhY3RlcnNdPVwic3BlY2lhbENoYXJhY3RlcnNcIlxuICAgICAgICBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImRyb3BTcGVjaWFsQ2hhcmFjdGVyc1wiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGlucHV0IGNsYXNzPVwidHJtLWZvcm0tZmllbGQgdHJtLWlucHV0XCJcbiAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJtYXREYXRlcGlja2VyXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciB8IHRyYW5zXCJcbiAgICAgICAgICAgICAoaW5wdXQpPVwib25EYXRlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW2F0dHIuaW5wdXRtb2RlXT1cImlucHV0bW9kZVwiXG4gICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcbiAgICAgICAgICAgICBbbWluXT1cImNvbmZpZz8ub3B0aW9ucz8ubWluXCJcbiAgICAgICAgICAgICBbbWF4XT1cImNvbmZpZz8ub3B0aW9ucz8ubWF4XCJcbiAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgICBbaWRdPVwibmFtZVwiXG4gICAgICAvPlxuICAgIH1cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwLWMtdGV4dC1zdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgQGlmIChjb25maWcuZGVzY3JpcHRpb24pIHtcbiAgICA8ZGl2IGNsYXNzPVwiYy10ZXh0X19oaW50XCJcbiAgICAgICAgIFtpbm5lckhUTUxdPVwiY29uZmlnLmRlc2NyaXB0aW9uIHwgdHJhbnNcIj48L2Rpdj5cbiAgfVxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwLWMtdGV4dC1oaW50XVwiPjwvbmctY29udGVudD5cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgSTE4Tl9LRVkuVkFMSURBVElPTl9SRVFVSVJFRCB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdlbWFpbCcpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgSTE4Tl9LRVkuVkFMSURBVElPTl9FTUFJTCB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW4nKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xuICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxuICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgID5cbiAgICAgIHt7IEkxOE5fS0VZLlZBTElEQVRJT05fTUlOIHwgdHJhbnMgfX1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ21heCcpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgSTE4Tl9LRVkuVkFMSURBVElPTl9NQVggfCB0cmFucyB9fVxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoY29udHJvbC5oYXNFcnJvcigncGF0dGVybicpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgSTE4Tl9LRVkuVkFMSURBVElPTl9QQVRURVJOIHwgdHJhbnMgfX1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ21hc2snKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xuICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxuICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgID5cbiAgICAgIHt7IEkxOE5fS0VZLlZBTElEQVRJT05fUEFUVEVSTiB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyUGFyc2UnKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xuICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxuICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgID5cbiAgICAgIHt7IEkxOE5fS0VZLlZBTElEQVRJT05fUEFUVEVSTiB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyTWluJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcbiAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICA+XG4gICAgICB7eyAoSTE4Tl9LRVkuVkFMSURBVElPTl9EQVRFX01JTiB8IHRyYW5zKSArICcgJyArIGNvbnRyb2wuZ2V0RXJyb3IoJ21hdERhdGVwaWNrZXJNaW4nKS5taW4uZm9ybWF0KEZPUk1BVF9EQVRFKSB9fVxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoY29udHJvbC5oYXNFcnJvcignbWF0RGF0ZXBpY2tlck1heCcpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXG4gICAgPlxuICAgICAge3sgKEkxOE5fS0VZLlZBTElEQVRJT05fREFURV9NQVggfCB0cmFucykgKyAnICcgKyBjb250cm9sLmdldEVycm9yKCdtYXREYXRlcGlja2VyTWF4JykubWF4LmZvcm1hdChGT1JNQVRfREFURSkgfX1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ2Vycm9yJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcbiAgICAgICAgIEBpbnNlcnRSZW1vdmVcbiAgICA+XG4gICAgICB7eyBhcGlFcnJvciB8IHRyYW5zIH19XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChjb250cm9sLmhhc0Vycm9yKCdjdXN0b21fZXJyb3InKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xuICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxuICAgICAgICAgQGluc2VydFJlbW92ZVxuICAgID5cbiAgICAgIHt7IGNvbnRyb2wuZ2V0RXJyb3IoJ2N1c3RvbV9lcnJvcicpIHwgdHJhbnMgfX1cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
|