@snabcentr/client-ui 4.14.7 → 4.14.9
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/fesm2022/snabcentr-client-ui.mjs +5004 -5457
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/icons/svg-pack/application.svg +1 -1
- package/icons/svg-pack/back.svg +1 -1
- package/icons/svg-pack/bag.svg +1 -1
- package/icons/svg-pack/banknote-arrow-in-top.svg +1 -1
- package/icons/svg-pack/catalog/aluminum-systems.svg +1 -1
- package/icons/svg-pack/catalog/arm-profile.svg +1 -1
- package/icons/svg-pack/catalog/batten.svg +1 -1
- package/icons/svg-pack/catalog/brusbox.svg +1 -1
- package/icons/svg-pack/catalog/canopy.svg +1 -1
- package/icons/svg-pack/catalog/configurator.svg +1 -1
- package/icons/svg-pack/catalog/covering-material.svg +1 -1
- package/icons/svg-pack/catalog/door-accessories.svg +1 -1
- package/icons/svg-pack/catalog/drainage-system.svg +1 -1
- package/icons/svg-pack/catalog/fastener.svg +1 -1
- package/icons/svg-pack/catalog/finishing-materials.svg +1 -1
- package/icons/svg-pack/catalog/fixing-impost.svg +1 -1
- package/icons/svg-pack/catalog/flask.svg +1 -1
- package/icons/svg-pack/catalog/foam-balloon.svg +1 -1
- package/icons/svg-pack/catalog/foam.svg +1 -1
- package/icons/svg-pack/catalog/glue.svg +1 -1
- package/icons/svg-pack/catalog/handle.svg +1 -1
- package/icons/svg-pack/catalog/instrument.svg +1 -1
- package/icons/svg-pack/catalog/kve-profile.svg +1 -1
- package/icons/svg-pack/catalog/lubricants.svg +1 -1
- package/icons/svg-pack/catalog/mosquito-net.svg +1 -1
- package/icons/svg-pack/catalog/mounting-accessories.svg +1 -1
- package/icons/svg-pack/catalog/net-order.svg +1 -1
- package/icons/svg-pack/catalog/panel-1.svg +1 -1
- package/icons/svg-pack/catalog/panel.svg +1 -1
- package/icons/svg-pack/catalog/polyethylene-film.svg +1 -1
- package/icons/svg-pack/catalog/profile-plastic.svg +1 -1
- package/icons/svg-pack/catalog/promo-materials.svg +1 -1
- package/icons/svg-pack/catalog/psul.svg +1 -1
- package/icons/svg-pack/catalog/rehau-profile.svg +1 -1
- package/icons/svg-pack/catalog/sandwich-plastic.svg +1 -1
- package/icons/svg-pack/catalog/sealer.svg +1 -1
- package/icons/svg-pack/catalog/siding-2.svg +1 -1
- package/icons/svg-pack/catalog/siding.svg +1 -1
- package/icons/svg-pack/catalog/start-finish-profile.svg +1 -1
- package/icons/svg-pack/catalog/steam-waterproofing.svg +1 -1
- package/icons/svg-pack/catalog/stiz.svg +1 -1
- package/icons/svg-pack/catalog/thermometer.svg +1 -1
- package/icons/svg-pack/catalog/windowsill.svg +1 -1
- package/icons/svg-pack/chart-column-plus.svg +1 -1
- package/icons/svg-pack/circle-arrow-in-right.svg +1 -1
- package/icons/svg-pack/contacts.svg +1 -1
- package/icons/svg-pack/deadline.svg +1 -1
- package/icons/svg-pack/file-p.svg +1 -1
- package/icons/svg-pack/file-search.svg +1 -1
- package/icons/svg-pack/file-w.svg +1 -1
- package/icons/svg-pack/file-x.svg +1 -1
- package/icons/svg-pack/grid-height-arrow.svg +1 -1
- package/icons/svg-pack/grid-width-arrow.svg +1 -1
- package/icons/svg-pack/layout-list-tree.svg +1 -1
- package/icons/svg-pack/list.svg +1 -1
- package/icons/svg-pack/puzzle.svg +1 -1
- package/icons/svg-pack/reclamation.svg +1 -1
- package/icons/svg-pack/retail-store.svg +1 -1
- package/icons/svg-pack/send.svg +1 -1
- package/package.json +35 -37
- package/release_notes.tmp +16 -2
- package/styles/taiga/variables.less +35 -17
- package/styles/tailwind/tailwind.scss +56 -10
- package/types/snabcentr-client-ui.d.ts +6787 -0
- package/accordion/index.d.ts +0 -3
- package/accordion/sc-accordion-content.directive.d.ts +0 -9
- package/accordion/sc-accordion.component.d.ts +0 -56
- package/accordion/sc-accordion.module.d.ts +0 -15
- package/auth/enums/auth-method.d.ts +0 -13
- package/auth/index.d.ts +0 -8
- package/auth/interfaces/index.d.ts +0 -2
- package/auth/interfaces/sc-bank-account-form-group.d.ts +0 -11
- package/auth/interfaces/sc-contact-form-group.d.ts +0 -10
- package/auth/sc-auth.module.d.ts +0 -27
- package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -55
- package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -45
- package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +0 -53
- package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +0 -113
- package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -166
- package/banner/index.d.ts +0 -2
- package/banner/sc-banner.component.d.ts +0 -108
- package/banner/sc-banner.module.d.ts +0 -17
- package/brands-list/index.d.ts +0 -3
- package/brands-list/sc-brand-list-item.d.ts +0 -25
- package/brands-list/sc-brands-list.component.d.ts +0 -13
- package/brands-list/sc-brands-list.module.d.ts +0 -12
- package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +0 -106
- package/cart/add-or-editing-cart-item-dialog/index.d.ts +0 -2
- package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +0 -49
- package/cart/index.d.ts +0 -2
- package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
- package/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.d.ts +0 -47
- package/catalog/catalog-filters/index.d.ts +0 -4
- package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +0 -199
- package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +0 -7
- package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +0 -5
- package/catalog/category-card/sc-category-card.component.d.ts +0 -76
- package/catalog/cost-with-discount/cost-with-discount.component.d.ts +0 -23
- package/catalog/download-price-list/sc-download-price-list.component.d.ts +0 -38
- package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +0 -48
- package/catalog/index.d.ts +0 -15
- package/catalog/input-quantity/sc-input-quantity.component.d.ts +0 -82
- package/catalog/notify-when-in-stock-dialog/index.d.ts +0 -2
- package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +0 -90
- package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +0 -22
- package/catalog/price-card/sc-price-card.component.d.ts +0 -18
- package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +0 -10
- package/catalog/price-history/sc-price-history.component.d.ts +0 -92
- package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +0 -40
- package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +0 -47
- package/catalog/sc-catalog.module.d.ts +0 -29
- package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +0 -25
- package/catalog/seo-tags/sc-seo-tags.component.d.ts +0 -20
- package/configurators/index.d.ts +0 -3
- package/configurators/models/index.d.ts +0 -3
- package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +0 -22
- package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +0 -18
- package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +0 -18
- package/configurators/sandwich/index.d.ts +0 -3
- package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +0 -8
- package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +0 -14
- package/configurators/sandwich/sc-sandwich.component.d.ts +0 -186
- package/configurators/sandwich_m2/index.d.ts +0 -4
- package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +0 -8
- package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +0 -23
- package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +0 -13
- package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +0 -275
- package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +0 -49
- package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +0 -23
- package/contacts/index.d.ts +0 -7
- package/contacts/manager-card/sc-manager-card.component.d.ts +0 -22
- package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +0 -18
- package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +0 -28
- package/contacts/sc-contacts.module.d.ts +0 -27
- package/contacts/tokens/index.d.ts +0 -2
- package/contacts/tokens/sc-manager-qr-handler.token.d.ts +0 -6
- package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +0 -5
- package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +0 -49
- package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +0 -158
- package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +0 -62
- package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +0 -49
- package/contragents/index.d.ts +0 -7
- package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -64
- package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +0 -119
- package/contragents/sc-contragents.module.d.ts +0 -26
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +0 -135
- package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +0 -50
- package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +0 -49
- package/delivery-address/index.d.ts +0 -4
- package/delivery-address/sc-delivery-address.module.d.ts +0 -25
- package/dialogs/index.d.ts +0 -1
- package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +0 -42
- package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +0 -136
- package/directives/index.d.ts +0 -9
- package/directives/links/index.d.ts +0 -4
- package/directives/links/sc-email-link.directive.d.ts +0 -25
- package/directives/links/sc-link-location.d.ts +0 -5
- package/directives/links/sc-links.d.ts +0 -7
- package/directives/links/sc-tel-link.directive.d.ts +0 -40
- package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +0 -27
- package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
- package/directives/print/sc-print.directive.d.ts +0 -21
- package/directives/sc-date-value-transformer.directive.d.ts +0 -8
- package/directives/sc-focus-first-invalid-field.directive.d.ts +0 -30
- package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +0 -14
- package/directives/terminal-link/sc-terminal-link.directive.d.ts +0 -34
- package/error-handler/consts/error-change-handler.providers.d.ts +0 -6
- package/error-handler/error-block-status/error-block-status.component.d.ts +0 -55
- package/error-handler/index.d.ts +0 -4
- package/error-handler/interfaces/i-block-error.d.ts +0 -17
- package/error-handler/sc-error-handler.component.d.ts +0 -40
- package/esm2022/accordion/index.mjs +0 -4
- package/esm2022/accordion/sc-accordion-content.directive.mjs +0 -17
- package/esm2022/accordion/sc-accordion.component.mjs +0 -92
- package/esm2022/accordion/sc-accordion.module.mjs +0 -26
- package/esm2022/auth/enums/auth-method.mjs +0 -15
- package/esm2022/auth/index.mjs +0 -9
- package/esm2022/auth/interfaces/index.mjs +0 -3
- package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +0 -2
- package/esm2022/auth/interfaces/sc-contact-form-group.mjs +0 -2
- package/esm2022/auth/sc-auth.module.mjs +0 -103
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -100
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -81
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +0 -89
- package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +0 -203
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -334
- package/esm2022/banner/index.mjs +0 -3
- package/esm2022/banner/sc-banner.component.mjs +0 -176
- package/esm2022/banner/sc-banner.module.mjs +0 -29
- package/esm2022/brands-list/index.mjs +0 -4
- package/esm2022/brands-list/sc-brand-list-item.mjs +0 -2
- package/esm2022/brands-list/sc-brands-list.component.mjs +0 -24
- package/esm2022/brands-list/sc-brands-list.module.mjs +0 -22
- package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +0 -233
- package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +0 -3
- package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +0 -75
- package/esm2022/cart/index.mjs +0 -3
- package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
- package/esm2022/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.mjs +0 -59
- package/esm2022/catalog/catalog-filters/index.mjs +0 -5
- package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +0 -451
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +0 -10
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +0 -6
- package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
- package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -38
- package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +0 -56
- package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +0 -76
- package/esm2022/catalog/index.mjs +0 -16
- package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -190
- package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +0 -3
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +0 -173
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +0 -35
- package/esm2022/catalog/price-card/sc-price-card.component.mjs +0 -71
- package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +0 -54
- package/esm2022/catalog/price-history/sc-price-history.component.mjs +0 -144
- package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +0 -65
- package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +0 -61
- package/esm2022/catalog/sc-catalog.module.mjs +0 -128
- package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
- package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +0 -25
- package/esm2022/configurators/index.mjs +0 -4
- package/esm2022/configurators/models/index.mjs +0 -4
- package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +0 -2
- package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +0 -2
- package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +0 -2
- package/esm2022/configurators/sandwich/index.mjs +0 -4
- package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +0 -14
- package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +0 -2
- package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +0 -387
- package/esm2022/configurators/sandwich_m2/index.mjs +0 -5
- package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +0 -14
- package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +0 -2
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +0 -5
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +0 -569
- package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +0 -91
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +0 -37
- package/esm2022/contacts/index.mjs +0 -8
- package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +0 -58
- package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +0 -28
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +0 -37
- package/esm2022/contacts/sc-contacts.module.mjs +0 -89
- package/esm2022/contacts/tokens/index.mjs +0 -3
- package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -25
- package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -9
- package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -81
- package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +0 -266
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -74
- package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -68
- package/esm2022/contragents/index.mjs +0 -8
- package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -72
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +0 -224
- package/esm2022/contragents/sc-contragents.module.mjs +0 -115
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -240
- package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +0 -60
- package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +0 -68
- package/esm2022/delivery-address/index.mjs +0 -5
- package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -96
- package/esm2022/dialogs/index.mjs +0 -2
- package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +0 -73
- package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +0 -170
- package/esm2022/directives/index.mjs +0 -10
- package/esm2022/directives/links/index.mjs +0 -5
- package/esm2022/directives/links/sc-email-link.directive.mjs +0 -49
- package/esm2022/directives/links/sc-link-location.mjs +0 -2
- package/esm2022/directives/links/sc-links.mjs +0 -8
- package/esm2022/directives/links/sc-tel-link.directive.mjs +0 -79
- package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +0 -70
- package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
- package/esm2022/directives/print/sc-print.directive.mjs +0 -36
- package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
- package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +0 -85
- package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +0 -36
- package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +0 -69
- package/esm2022/error-handler/consts/error-change-handler.providers.mjs +0 -10
- package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -101
- package/esm2022/error-handler/index.mjs +0 -5
- package/esm2022/error-handler/interfaces/i-block-error.mjs +0 -2
- package/esm2022/error-handler/sc-error-handler.component.mjs +0 -58
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +0 -344
- package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +0 -32
- package/esm2022/feedback/index.mjs +0 -4
- package/esm2022/feedback/interfaces/index.mjs +0 -2
- package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +0 -2
- package/esm2022/files/directives/index.mjs +0 -3
- package/esm2022/files/directives/tree-top.directive.mjs +0 -63
- package/esm2022/files/directives/tree.directive.mjs +0 -47
- package/esm2022/files/file-tree-item/file-tree-item.component.mjs +0 -18
- package/esm2022/files/files-and-documents/files-and-documents.component.mjs +0 -61
- package/esm2022/files/files-and-documents.module.mjs +0 -28
- package/esm2022/files/index.mjs +0 -6
- package/esm2022/files/interfaces/tree-node.mjs +0 -2
- package/esm2022/files/services/index.mjs +0 -3
- package/esm2022/files/services/tree-icon.service.mjs +0 -49
- package/esm2022/files/services/tree-loader.service.mjs +0 -62
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +0 -156
- package/esm2022/form-fields/form-fields.module.mjs +0 -66
- package/esm2022/form-fields/index.mjs +0 -4
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -174
- package/esm2022/icons/index.mjs +0 -2
- package/esm2022/icons/sc-client-ui-icons-name.mjs +0 -99
- package/esm2022/loader/index.mjs +0 -2
- package/esm2022/loader/sc-i-loader.mjs +0 -2
- package/esm2022/masks/index.mjs +0 -8
- package/esm2022/masks/sc-account-number-mask.mjs +0 -7
- package/esm2022/masks/sc-bic-mask.mjs +0 -7
- package/esm2022/masks/sc-correspondent-account-mask.mjs +0 -7
- package/esm2022/masks/sc-inn-mask.mjs +0 -13
- package/esm2022/masks/sc-kpp-mask.mjs +0 -7
- package/esm2022/masks/sc-okpo-mask.mjs +0 -13
- package/esm2022/masks/sc-phone-verification-code-mask.mjs +0 -7
- package/esm2022/methods/index.mjs +0 -2
- package/esm2022/methods/sc-get-current-route.mjs +0 -14
- package/esm2022/models/i-sc-image.mjs +0 -2
- package/esm2022/models/index.mjs +0 -2
- package/esm2022/news/index.mjs +0 -4
- package/esm2022/news/news-card/sc-news-card.component.mjs +0 -34
- package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +0 -31
- package/esm2022/news/sc-news.module.mjs +0 -25
- package/esm2022/noindex-wrapper/directives/index.mjs +0 -2
- package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +0 -58
- package/esm2022/noindex-wrapper/index.mjs +0 -3
- package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +0 -18
- package/esm2022/order/directives/index.mjs +0 -3
- package/esm2022/order/directives/sc-order-accessor.directive.mjs +0 -28
- package/esm2022/order/directives/sc-order-options.mjs +0 -11
- package/esm2022/order/draft/sc-draft.component.mjs +0 -118
- package/esm2022/order/index.mjs +0 -14
- package/esm2022/order/models/i-new-order-form.mjs +0 -2
- package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +0 -22
- package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +0 -39
- package/esm2022/order/order-form/sc-order-form.component.mjs +0 -565
- package/esm2022/order/order-form/sc-order-form.config.mjs +0 -7
- package/esm2022/order/order-item/sc-order-item.component.mjs +0 -112
- package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +0 -212
- package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +0 -75
- package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +0 -75
- package/esm2022/order/sc-order.module.mjs +0 -52
- package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +0 -35
- package/esm2022/pages/frequently-asked-questions/sc-faq-query-params.mjs +0 -5
- package/esm2022/pages/frequently-asked-questions/sc-faq-question-anchor.mjs +0 -23
- package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +0 -167
- package/esm2022/pages/frequently-asked-questions/sc-get-faq-group-query-params.mjs +0 -14
- package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -8
- package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +0 -88
- package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +0 -123
- package/esm2022/pages/index.mjs +0 -11
- package/esm2022/pages/news-list/sc-news-list.component.mjs +0 -90
- package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +0 -46
- package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +0 -30
- package/esm2022/pages/public-offer/sc-public-offer.component.mjs +0 -50
- package/esm2022/pagination/index.mjs +0 -2
- package/esm2022/pagination/sc-pagination-links/sc-pagination-links.component.mjs +0 -99
- package/esm2022/pipes/index.mjs +0 -3
- package/esm2022/pipes/sc-format-date.mjs +0 -33
- package/esm2022/pipes/sc-phone-format.mjs +0 -44
- package/esm2022/profile/index.mjs +0 -3
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +0 -174
- package/esm2022/profile/sc-profile.module.mjs +0 -73
- package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +0 -30
- package/esm2022/providers/date-value-transformer/index.mjs +0 -4
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +0 -2
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +0 -26
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +0 -37
- package/esm2022/providers/index.mjs +0 -17
- package/esm2022/providers/sc-allow-select-terminated.mjs +0 -8
- package/esm2022/providers/sc-banner-duration.mjs +0 -8
- package/esm2022/providers/sc-country-ids.mjs +0 -8
- package/esm2022/providers/sc-date-formatter.mjs +0 -15
- package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
- package/esm2022/providers/sc-debounce-time-default.mjs +0 -9
- package/esm2022/providers/sc-dialog-service.providers.mjs +0 -6
- package/esm2022/providers/sc-help-notification-close.mjs +0 -9
- package/esm2022/providers/sc-help-notification-limit.mjs +0 -8
- package/esm2022/providers/sc-hidden-print-elements.token.mjs +0 -10
- package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -8
- package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -8
- package/esm2022/providers/sc-page-size-options.mjs +0 -8
- package/esm2022/providers/sc-user-providers.mjs +0 -38
- package/esm2022/providers/sc-verification-code-timeout.mjs +0 -8
- package/esm2022/public-api.mjs +0 -36
- package/esm2022/qrcode/index.mjs +0 -3
- package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +0 -58
- package/esm2022/qrcode/sc-qrcode.module.mjs +0 -25
- package/esm2022/samples/index.mjs +0 -5
- package/esm2022/samples/interfaces/index.mjs +0 -3
- package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +0 -2
- package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +0 -2
- package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +0 -42
- package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +0 -63
- package/esm2022/samples/sc-sample.module.mjs +0 -66
- package/esm2022/services/index.mjs +0 -3
- package/esm2022/services/print.service.mjs +0 -49
- package/esm2022/services/sc-help-notification.service.mjs +0 -100
- package/esm2022/share/index.mjs +0 -6
- package/esm2022/share/sc-share-dialog-data.mjs +0 -2
- package/esm2022/share/sc-share.service.mjs +0 -40
- package/esm2022/share/share-button/sc-share-button.component.mjs +0 -99
- package/esm2022/share/share-dialog/sc-share-dialog.component.mjs +0 -139
- package/esm2022/share/share-messengers-links/sc-share-messengers-links.component.mjs +0 -84
- package/esm2022/snabcentr-client-ui.mjs +0 -5
- package/esm2022/user/index.mjs +0 -6
- package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +0 -74
- package/esm2022/user/sc-user.module.mjs +0 -86
- package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -121
- package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -40
- package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -105
- package/esm2022/validators/index.mjs +0 -7
- package/esm2022/validators/sc-at-least-one-required-validator.mjs +0 -25
- package/esm2022/validators/sc-bic-validator.mjs +0 -10
- package/esm2022/validators/sc-correspondent-account-validator.mjs +0 -10
- package/esm2022/validators/sc-password-confirm-matching-validator.mjs +0 -17
- package/esm2022/validators/sc-phone-validator.mjs +0 -14
- package/esm2022/validators/step-validator.mjs +0 -18
- package/esm2022/verification/index.mjs +0 -3
- package/esm2022/verification/sc-verification.module.mjs +0 -86
- package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -259
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +0 -163
- package/feedback/gratitude/sc-gratitude.component.d.ts +0 -20
- package/feedback/index.d.ts +0 -3
- package/feedback/interfaces/index.d.ts +0 -1
- package/feedback/interfaces/sc-feedback-form-config.d.ts +0 -23
- package/files/directives/index.d.ts +0 -2
- package/files/directives/tree-top.directive.d.ts +0 -33
- package/files/directives/tree.directive.d.ts +0 -35
- package/files/file-tree-item/file-tree-item.component.d.ts +0 -9
- package/files/files-and-documents/files-and-documents.component.d.ts +0 -27
- package/files/files-and-documents.module.d.ts +0 -17
- package/files/index.d.ts +0 -5
- package/files/interfaces/tree-node.d.ts +0 -29
- package/files/services/index.d.ts +0 -2
- package/files/services/tree-icon.service.d.ts +0 -23
- package/files/services/tree-loader.service.d.ts +0 -43
- package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +0 -78
- package/form-fields/form-fields.module.d.ts +0 -18
- package/form-fields/index.d.ts +0 -3
- package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -73
- package/icons/index.d.ts +0 -1
- package/icons/sc-client-ui-icons-name.d.ts +0 -4
- package/index.d.ts +0 -5
- package/loader/index.d.ts +0 -1
- package/loader/sc-i-loader.d.ts +0 -9
- package/masks/index.d.ts +0 -7
- package/masks/sc-account-number-mask.d.ts +0 -5
- package/masks/sc-bic-mask.d.ts +0 -5
- package/masks/sc-correspondent-account-mask.d.ts +0 -5
- package/masks/sc-inn-mask.d.ts +0 -9
- package/masks/sc-kpp-mask.d.ts +0 -5
- package/masks/sc-okpo-mask.d.ts +0 -9
- package/masks/sc-phone-verification-code-mask.d.ts +0 -5
- package/methods/index.d.ts +0 -1
- package/methods/sc-get-current-route.d.ts +0 -8
- package/models/i-sc-image.d.ts +0 -17
- package/models/index.d.ts +0 -1
- package/news/index.d.ts +0 -3
- package/news/news-card/sc-news-card.component.d.ts +0 -22
- package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +0 -16
- package/news/sc-news.module.d.ts +0 -15
- package/noindex-wrapper/directives/index.d.ts +0 -1
- package/noindex-wrapper/directives/sc-noindex.directive.d.ts +0 -29
- package/noindex-wrapper/index.d.ts +0 -2
- package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +0 -9
- package/order/directives/index.d.ts +0 -2
- package/order/directives/sc-order-accessor.directive.d.ts +0 -13
- package/order/directives/sc-order-options.d.ts +0 -14
- package/order/draft/sc-draft.component.d.ts +0 -63
- package/order/index.d.ts +0 -13
- package/order/models/i-new-order-form.d.ts +0 -39
- package/order/models/sc-i-cart-items-by-direction.d.ts +0 -25
- package/order/order-direction-items/sc-order-direction-items.component.d.ts +0 -29
- package/order/order-form/sc-order-form.component.d.ts +0 -283
- package/order/order-form/sc-order-form.config.d.ts +0 -20
- package/order/order-item/sc-order-item.component.d.ts +0 -43
- package/order/order-items-list/sc-order-items-list.component.d.ts +0 -113
- package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +0 -58
- package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +0 -55
- package/order/sc-order.module.d.ts +0 -18
- package/order/sc-payment-status/sc-payment-status.component.d.ts +0 -25
- package/pages/frequently-asked-questions/sc-faq-query-params.d.ts +0 -4
- package/pages/frequently-asked-questions/sc-faq-question-anchor.d.ts +0 -16
- package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +0 -84
- package/pages/frequently-asked-questions/sc-get-faq-group-query-params.d.ts +0 -10
- package/pages/frequently-asked-questions/sc-page-size-options.d.ts +0 -5
- package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +0 -47
- package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +0 -89
- package/pages/index.d.ts +0 -10
- package/pages/news-list/sc-news-list.component.d.ts +0 -57
- package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +0 -17
- package/pages/privacy-policy/sc-privacy-policy.component.d.ts +0 -17
- package/pages/public-offer/sc-public-offer.component.d.ts +0 -22
- package/pagination/index.d.ts +0 -1
- package/pagination/sc-pagination-links/sc-pagination-links.component.d.ts +0 -60
- package/pipes/index.d.ts +0 -2
- package/pipes/sc-format-date.d.ts +0 -20
- package/pipes/sc-phone-format.d.ts +0 -21
- package/profile/index.d.ts +0 -2
- package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +0 -126
- package/profile/sc-profile.module.d.ts +0 -23
- package/providers/cleanup-recaptcha-artifacts.d.ts +0 -7
- package/providers/date-value-transformer/index.d.ts +0 -3
- package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +0 -9
- package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +0 -16
- package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +0 -22
- package/providers/index.d.ts +0 -16
- package/providers/sc-allow-select-terminated.d.ts +0 -5
- package/providers/sc-banner-duration.d.ts +0 -5
- package/providers/sc-country-ids.d.ts +0 -5
- package/providers/sc-date-formatter.d.ts +0 -6
- package/providers/sc-date-value-transformer.d.ts +0 -5
- package/providers/sc-debounce-time-default.d.ts +0 -5
- package/providers/sc-dialog-service.providers.d.ts +0 -45
- package/providers/sc-help-notification-close.d.ts +0 -6
- package/providers/sc-help-notification-limit.d.ts +0 -5
- package/providers/sc-hidden-print-elements.token.d.ts +0 -6
- package/providers/sc-max-files-in-form-input.d.ts +0 -5
- package/providers/sc-notify-when-in-stock-required-fields.d.ts +0 -5
- package/providers/sc-page-size-options.d.ts +0 -5
- package/providers/sc-user-providers.d.ts +0 -21
- package/providers/sc-verification-code-timeout.d.ts +0 -5
- package/public-api.d.ts +0 -35
- package/qrcode/index.d.ts +0 -2
- package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +0 -37
- package/qrcode/sc-qrcode.module.d.ts +0 -14
- package/samples/index.d.ts +0 -4
- package/samples/interfaces/index.d.ts +0 -2
- package/samples/interfaces/sc-i-preview-sample.d.ts +0 -56
- package/samples/interfaces/sc-preview-mosquito-config.d.ts +0 -62
- package/samples/preview-sample/sc-preview-sample.component.d.ts +0 -30
- package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +0 -50
- package/samples/sc-sample.module.d.ts +0 -19
- package/services/index.d.ts +0 -2
- package/services/print.service.d.ts +0 -31
- package/services/sc-help-notification.service.d.ts +0 -70
- package/share/index.d.ts +0 -5
- package/share/sc-share-dialog-data.d.ts +0 -13
- package/share/sc-share.service.d.ts +0 -19
- package/share/share-button/sc-share-button.component.d.ts +0 -78
- package/share/share-dialog/sc-share-dialog.component.d.ts +0 -87
- package/share/share-messengers-links/sc-share-messengers-links.component.d.ts +0 -49
- package/user/index.d.ts +0 -5
- package/user/reset-user-password/sc-reset-user-password.component.d.ts +0 -46
- package/user/sc-user.module.d.ts +0 -24
- package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +0 -63
- package/user/user-managers/sc-user-managers.component.d.ts +0 -23
- package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +0 -53
- package/validators/index.d.ts +0 -6
- package/validators/sc-at-least-one-required-validator.d.ts +0 -10
- package/validators/sc-bic-validator.d.ts +0 -8
- package/validators/sc-correspondent-account-validator.d.ts +0 -8
- package/validators/sc-password-confirm-matching-validator.d.ts +0 -8
- package/validators/sc-phone-validator.d.ts +0 -5
- package/validators/step-validator.d.ts +0 -7
- package/verification/index.d.ts +0 -2
- package/verification/sc-verification.module.d.ts +0 -21
- package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -145
package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-restricted-syntax,@typescript-eslint/unbound-method */
|
|
2
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
4
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
5
|
-
import { ScAuthService } from '@snabcentr/client-core';
|
|
6
|
-
import { tuiIsFalsy } from '@taiga-ui/cdk';
|
|
7
|
-
import { catchError, filter, map, of, share, startWith, Subject, switchMap } from 'rxjs';
|
|
8
|
-
import { ScHelpNotificationService } from '../../../services/sc-help-notification.service';
|
|
9
|
-
import { phoneValidator } from '../../../validators/sc-phone-validator';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "@angular/forms";
|
|
13
|
-
import * as i3 from "@taiga-ui/core";
|
|
14
|
-
import * as i4 from "../../../verification/verification-phone-check-form/sc-verification-phone-check-form.component";
|
|
15
|
-
import * as i5 from "@taiga-ui/kit";
|
|
16
|
-
/**
|
|
17
|
-
* Компонент аутентификации по номеру телефона и коду подтверждения.
|
|
18
|
-
*/
|
|
19
|
-
export class ScSignInFormByPhoneComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
/**
|
|
22
|
-
* Наличие кода подтверждения у пользователя.
|
|
23
|
-
*/
|
|
24
|
-
this.haveCode = false;
|
|
25
|
-
/**
|
|
26
|
-
* Группа полей ввода для формы «Вход на сайт».
|
|
27
|
-
*/
|
|
28
|
-
this.form = new FormGroup({
|
|
29
|
-
phone: new FormControl(null, [Validators.required, phoneValidator()]),
|
|
30
|
-
verificationCode: new FormControl(null, [Validators.required, Validators.minLength(6)]),
|
|
31
|
-
});
|
|
32
|
-
/**
|
|
33
|
-
* {@link Subject} события отправки формы.
|
|
34
|
-
*/
|
|
35
|
-
this.onSubmit = new Subject();
|
|
36
|
-
/**
|
|
37
|
-
* Сервис для отображения Push-уведомлений с контактами для помощи клиенту.
|
|
38
|
-
*/
|
|
39
|
-
this.helpNotificationService = inject(ScHelpNotificationService);
|
|
40
|
-
/**
|
|
41
|
-
* {@link Observable} запроса данных аутентификации.
|
|
42
|
-
*/
|
|
43
|
-
this.request$ = this.onSubmit.pipe(map(() => this.form.value), filter((value) => this.form.valid), switchMap((value) => this.authService.getSignIn$(value).pipe(catchError((error) => {
|
|
44
|
-
if (error instanceof HttpErrorResponse) {
|
|
45
|
-
const { errors, message } = error.error;
|
|
46
|
-
for (const key in errors) {
|
|
47
|
-
if (Object.hasOwn(errors, key)) {
|
|
48
|
-
// eslint-disable-next-line security/detect-object-injection
|
|
49
|
-
this.form.get(key)?.setErrors({ serverResponse: errors[key] });
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (message.includes('деактивирован')) {
|
|
53
|
-
this.helpNotificationService.helpNotificationByPhone(value.phone);
|
|
54
|
-
}
|
|
55
|
-
if (!errors && message) {
|
|
56
|
-
this.form.setErrors({ serverResponse: [message] });
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return of({});
|
|
60
|
-
}), startWith(null))), share());
|
|
61
|
-
/**
|
|
62
|
-
* {@link Observable} изменения состояния загрузки данных аутентификации по номеру телефона.
|
|
63
|
-
*/
|
|
64
|
-
this.loading$ = this.request$.pipe(map(tuiIsFalsy));
|
|
65
|
-
/**
|
|
66
|
-
* Сервис аутентификации.
|
|
67
|
-
*/
|
|
68
|
-
this.authService = inject(ScAuthService);
|
|
69
|
-
}
|
|
70
|
-
/** @inheritDoc */
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
this.helpNotificationService.closeAllHelpNotification();
|
|
73
|
-
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormByPhoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScSignInFormByPhoneComponent, selector: "sc-sign-in-form-by-phone", ngImport: i0, template: "@let loading = !!(loading$ | async);\n<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"mb-4 flex flex-col items-center gap-4\"\n>\n <sc-verification-phone-check-form\n [(haveCode)]=\"haveCode\"\n [shouldBeBusy]=\"true\"\n [shouldBeConfirmed]=\"true\"\n class=\"w-full\"\n />\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n <button\n *ngIf=\"haveCode\"\n tuiButton\n type=\"submit\"\n [loading]=\"loading\"\n [disabled]=\"form.invalid || loading\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i3.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.ScVerificationPhoneCheckFormComponent, selector: "sc-verification-phone-check-form", inputs: ["showCodeFields", "readOnly", "pseudoInvalid", "required", "subtitle", "shouldBeBusy", "shouldBeConfirmed", "haveCode"], outputs: ["haveCodeChange", "isBusyChange", "isConfirmedChange"] }, { kind: "component", type: i5.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormByPhoneComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{ selector: 'sc-sign-in-form-by-phone', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let loading = !!(loading$ | async);\n<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"mb-4 flex flex-col items-center gap-4\"\n>\n <sc-verification-phone-check-form\n [(haveCode)]=\"haveCode\"\n [shouldBeBusy]=\"true\"\n [shouldBeConfirmed]=\"true\"\n class=\"w-full\"\n />\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n <button\n *ngIf=\"haveCode\"\n tuiButton\n type=\"submit\"\n [loading]=\"loading\"\n [disabled]=\"form.invalid || loading\"\n iconStart=\"@tui.sc.circle-arrow-in-right\"\n >\n \u0412\u043E\u0439\u0442\u0438\n </button>\n</form>\n" }]
|
|
80
|
-
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktcGhvbmUvc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0tYnktcGhvbmUvc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQTJCLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7OztBQUV4RTs7R0FFRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFNSTs7V0FFRztRQUNJLGFBQVEsR0FBWSxL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aWN0ZWQtc3ludGF4LEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUF1dGhUb2tlbiwgSVBob25lTG9naW4sIFNjQXV0aFNlcnZpY2UsIFNjSUFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUlzRmFsc3kgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYy1oZWxwLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHBob25lVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycy9zYy1waG9uZS12YWxpZGF0b3InO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4g0L3QvtC80LXRgNGDINGC0LXQu9C10YTQvtC90LAg0Lgg0LrQvtC00YMg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc2lnbi1pbi1mb3JtLWJ5LXBob25lLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTaWduSW5Gb3JtQnlQaG9uZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog0J3QsNC70LjRh9C40LUg0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXZlQ29kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LLQstC+0LTQsCDQtNC70Y8g0YTQvtGA0LzRiyDCq9CS0YXQvtC0INC90LAg0YHQsNC50YLCuy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwaG9uZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBwaG9uZVZhbGlkYXRvcigpXSksXG4gICAgICAgIHZlcmlmaWNhdGlvbkNvZGU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9uU3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyBQdXNoLdGD0LLQtdC00L7QvNC70LXQvdC40Lkg0YEg0LrQvtC90YLQsNC60YLQsNC80Lgg0LTQu9GPINC/0L7QvNC+0YnQuCDQutC70LjQtdC90YLRgy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVscE5vdGlmaWNhdGlvblNlcnZpY2U6IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoU2NIZWxwTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JDogT2JzZXJ2YWJsZTxJQXV0aFRva2VuIHwgbnVsbD4gPSB0aGlzLm9uU3VibWl0LnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKTogdmFsdWUgaXMgSVBob25lTG9naW4gPT4gdGhpcy5mb3JtLnZhbGlkKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0U2lnbkluJCh2YWx1ZSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMsIG1lc3NhZ2UgfSA9IGVycm9yLmVycm9yIGFzIFNjSUFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKGVycm9ycywga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpPy5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogZXJyb3JzW2tleV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmNsdWRlcygn0LTQtdCw0LrRgtC40LLQuNGA0L7QstCw0L0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGVscE5vdGlmaWNhdGlvblNlcnZpY2UuaGVscE5vdGlmaWNhdGlvbkJ5UGhvbmUodmFsdWUucGhvbmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9ycyAmJiBtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbbWVzc2FnZV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30gYXMgSUF1dGhUb2tlbik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQtNCw0L3QvdGL0YUg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuCDQv9C+INC90L7QvNC10YDRgyDRgtC10LvQtdGE0L7QvdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSA9IGluamVjdChTY0F1dGhTZXJ2aWNlKTtcblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oZWxwTm90aWZpY2F0aW9uU2VydmljZS5jbG9zZUFsbEhlbHBOb3RpZmljYXRpb24oKTtcbiAgICB9XG59XG4iLCJAbGV0IGxvYWRpbmcgPSAhIShsb2FkaW5nJCB8IGFzeW5jKTtcbjxmb3JtXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQubmV4dCgpXCJcbiAgICBjbGFzcz1cIm1iLTQgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTRcIlxuPlxuICAgIDxzYy12ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybVxuICAgICAgICBbKGhhdmVDb2RlKV09XCJoYXZlQ29kZVwiXG4gICAgICAgIFtzaG91bGRCZUJ1c3ldPVwidHJ1ZVwiXG4gICAgICAgIFtzaG91bGRCZUNvbmZpcm1lZF09XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIC8+XG4gICAgPHR1aS1lcnJvclxuICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInNlbGYtY2VudGVyXCJcbiAgICAvPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJoYXZlQ29kZVwiXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgbG9hZGluZ1wiXG4gICAgICAgIGljb25TdGFydD1cIkB0dWkuc2MuY2lyY2xlLWFycm93LWluLXJpZ2h0XCJcbiAgICA+XG4gICAgICAgINCS0L7QudGC0LhcbiAgICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ScUserMetrikaGoalsEnum } from '@snabcentr/client-core';
|
|
3
|
-
import { filter } from 'rxjs';
|
|
4
|
-
import { AuthMethod } from '../enums/auth-method';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@snabcentr/client-core";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "@taiga-ui/core";
|
|
9
|
-
import * as i4 from "./sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component";
|
|
10
|
-
import * as i5 from "./sc-sign-in-form-by-email/sc-sign-in-form-by-email.component";
|
|
11
|
-
/**
|
|
12
|
-
* Компонент аутентификации пользователя.
|
|
13
|
-
*/
|
|
14
|
-
export class ScSignInFormComponent {
|
|
15
|
-
/**
|
|
16
|
-
* Инициализирует экземпляр класса {@link ScSignInFormComponent}.
|
|
17
|
-
*
|
|
18
|
-
* @param authService Сервис аутентификации.
|
|
19
|
-
* @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
|
|
20
|
-
*/
|
|
21
|
-
constructor(authService, userMetrikaService) {
|
|
22
|
-
this.authService = authService;
|
|
23
|
-
this.userMetrikaService = userMetrikaService;
|
|
24
|
-
/**
|
|
25
|
-
* Выбранный способ аутентификации.
|
|
26
|
-
*/
|
|
27
|
-
this.authMethod = AuthMethod.byEmail;
|
|
28
|
-
/**
|
|
29
|
-
* Перечисление способов аутентификации.
|
|
30
|
-
*/
|
|
31
|
-
this.method = AuthMethod;
|
|
32
|
-
/**
|
|
33
|
-
* Сигнал нажатия на кнопку "Забыли пароль".
|
|
34
|
-
*/
|
|
35
|
-
this.forgotPassword = new EventEmitter();
|
|
36
|
-
/**
|
|
37
|
-
* Сигнал нажатия на кнопку "Зарегистрироваться".
|
|
38
|
-
*/
|
|
39
|
-
this.signUp = new EventEmitter();
|
|
40
|
-
/**
|
|
41
|
-
* Сигнал события аутентификации.
|
|
42
|
-
*/
|
|
43
|
-
this.successAuth = this.authService.getAuthChange().pipe(filter((state) => state));
|
|
44
|
-
}
|
|
45
|
-
/** @inheritDoc */
|
|
46
|
-
ngOnInit() {
|
|
47
|
-
this.userMetrikaService.emitUserMetrikaEvent({
|
|
48
|
-
target: ScUserMetrikaGoalsEnum.signInShow,
|
|
49
|
-
params: {
|
|
50
|
-
type: this.authMethod,
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Осуществляет переключение способов аутентификации.
|
|
56
|
-
*
|
|
57
|
-
* @param authMethod Выбранный способ аутентификации.
|
|
58
|
-
*/
|
|
59
|
-
switchAuth(authMethod) {
|
|
60
|
-
this.authMethod = authMethod;
|
|
61
|
-
this.userMetrikaService.emitUserMetrikaEvent({
|
|
62
|
-
target: ScUserMetrikaGoalsEnum.signInShow,
|
|
63
|
-
params: {
|
|
64
|
-
type: authMethod,
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Обрабатывает нажатие на кнопку "Забыли пароль" и выдает сигнал об этом.
|
|
70
|
-
*/
|
|
71
|
-
onForgotPassword() {
|
|
72
|
-
this.forgotPassword.emit();
|
|
73
|
-
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormComponent, deps: [{ token: i1.ScAuthService }, { token: i1.ScUserMetrikaService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScSignInFormComponent, selector: "sc-sign-in-form", inputs: { authMethod: "authMethod" }, outputs: { forgotPassword: "forgotPassword", signUp: "signUp", successAuth: "successAuth" }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0, template: "<div class=\"mb-4 flex justify-center\">\n <button\n tuiButton\n [appearance]=\"authMethod === 'by_phone' ? 'primary' : 'secondary'\"\n (click)=\"switchAuth(method.byPhone)\"\n class=\"tui-space_right-3 tui-space_bottom-3 !font-bold\"\n >\n \u041F\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443\n </button>\n\n <button\n tuiButton\n [appearance]=\"authMethod === 'by_email' ? 'primary' : 'secondary'\"\n (click)=\"switchAuth(method.byEmail)\"\n class=\"tui-space_left-3 tui-space_bottom-3 !font-bold\"\n >\n \u041F\u043E e-mail\n </button>\n</div>\n\n<sc-sign-in-form-by-email\n *ngIf=\"authMethod === 'by_email'\"\n (forgotPassword)=\"onForgotPassword()\"\n></sc-sign-in-form-by-email>\n\n<sc-sign-in-form-by-phone [class.hidden]=\"authMethod !== 'by_phone'\"></sc-sign-in-form-by-phone>\n\n<div class=\"flex flex-col items-center gap-4\">\n <span class=\"font-medium text-tui-text-02\">\u0415\u0449\u0435 \u043D\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B?</span>\n <button\n tuiButton\n (click)=\"signUp.emit()\"\n type=\"button\"\n iconStart=\"@tui.user-plus\"\n appearance=\"secondary\"\n >\n \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i4.ScSignInFormByPhoneComponent, selector: "sc-sign-in-form-by-phone" }, { kind: "component", type: i5.ScSignInFormByEmailComponent, selector: "sc-sign-in-form-by-email", outputs: ["forgotPassword"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSignInFormComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{ selector: 'sc-sign-in-form', host: { ngSkipHydration: 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-4 flex justify-center\">\n <button\n tuiButton\n [appearance]=\"authMethod === 'by_phone' ? 'primary' : 'secondary'\"\n (click)=\"switchAuth(method.byPhone)\"\n class=\"tui-space_right-3 tui-space_bottom-3 !font-bold\"\n >\n \u041F\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443\n </button>\n\n <button\n tuiButton\n [appearance]=\"authMethod === 'by_email' ? 'primary' : 'secondary'\"\n (click)=\"switchAuth(method.byEmail)\"\n class=\"tui-space_left-3 tui-space_bottom-3 !font-bold\"\n >\n \u041F\u043E e-mail\n </button>\n</div>\n\n<sc-sign-in-form-by-email\n *ngIf=\"authMethod === 'by_email'\"\n (forgotPassword)=\"onForgotPassword()\"\n></sc-sign-in-form-by-email>\n\n<sc-sign-in-form-by-phone [class.hidden]=\"authMethod !== 'by_phone'\"></sc-sign-in-form-by-phone>\n\n<div class=\"flex flex-col items-center gap-4\">\n <span class=\"font-medium text-tui-text-02\">\u0415\u0449\u0435 \u043D\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B?</span>\n <button\n tuiButton\n (click)=\"signUp.emit()\"\n type=\"button\"\n iconStart=\"@tui.user-plus\"\n appearance=\"secondary\"\n >\n \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F\n </button>\n</div>\n" }]
|
|
80
|
-
}], ctorParameters: () => [{ type: i1.ScAuthService }, { type: i1.ScUserMetrikaService }], propDecorators: { authMethod: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], forgotPassword: [{
|
|
83
|
-
type: Output
|
|
84
|
-
}], signUp: [{
|
|
85
|
-
type: Output
|
|
86
|
-
}], successAuth: [{
|
|
87
|
-
type: Output
|
|
88
|
-
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2lnbi1pbi1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hdXRoL3NjLXNpZ24taW4tZm9ybS9zYy1zaWduLWluLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2F1dGgvc2Mtc2lnbi1pbi1mb3JtL3NjLXNpZ24taW4tZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBaUIsc0JBQXNCLEVBQXdCLE1BQU0sd0JBQXdCLENBQUM7QUFDckcsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFFbEQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBMEI5Qjs7Ozs7T0FLRztJQUNILFlBQ3FCLFdBQTBCLEVBQzFCLGtCQUF3QztRQUR4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXNCO1FBakM3RDs7V0FFRztRQUNhLGVBQVUsR0FBZSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBRTVEOztXQUVHO1FBQ0ksV0FBTSxHQUFzQixVQUFVLENBQUM7UUFFOUM7O1dBRUc7UUFDdUIsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4Rjs7V0FFRztRQUN1QixXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEY7O1dBRUc7UUFDdUIsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBVzFILENBQUM7SUFFSixrQkFBa0I7SUFDWCxRQUFRO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1lBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxVQUFVO1lBQ3pDLE1BQU0sRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDeEI7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxVQUFzQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7WUFDekMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFVBQVU7WUFDekMsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxVQUFVO2FBQ25CO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzsrR0FwRVEscUJBQXFCO21HQUFyQixxQkFBcUIsK09DZmxDLHE2Q0F1Q0E7OzRGRHhCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksaUJBQWlCLFFBRXJCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxtQkFDaEIsdUJBQXVCLENBQUMsTUFBTTtxSEFNL0IsVUFBVTtzQkFBekIsS0FBSztnQkFVb0IsY0FBYztzQkFBdkMsTUFBTTtnQkFLbUIsTUFBTTtzQkFBL0IsTUFBTTtnQkFLbUIsV0FBVztzQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlLCBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhNZXRob2QgfSBmcm9tICcuLi9lbnVtcy9hdXRoLW1ldGhvZCc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXNpZ24taW4tZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXNpZ24taW4tZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1NpZ25JbkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCS0YvQsdGA0LDQvdC90YvQuSDRgdC/0L7RgdC+0LEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYXV0aE1ldGhvZDogQXV0aE1ldGhvZCA9IEF1dGhNZXRob2QuYnlFbWFpbDtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgdC/0L7RgdC+0LHQvtCyINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIG1ldGhvZDogdHlwZW9mIEF1dGhNZXRob2QgPSBBdXRoTWV0aG9kO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNCz0L3QsNC7INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JfQsNCx0YvQu9C4INC/0LDRgNC+0LvRjFwiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZm9yZ290UGFzc3dvcmQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCX0LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDRgtGM0YHRj1wiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2lnblVwOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LPQvdCw0Lsg0YHQvtCx0YvRgtC40Y8g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHN1Y2Nlc3NBdXRoOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoQ2hhbmdlKCkucGlwZShmaWx0ZXIoKHN0YXRlKSA9PiBzdGF0ZSkpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1NpZ25JbkZvcm1Db21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduSW5TaG93LFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5hdXRoTWV0aG9kLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgdGD0YnQtdGB0YLQstC70Y/QtdGCINC/0LXRgNC10LrQu9GO0YfQtdC90LjQtSDRgdC/0L7RgdC+0LHQvtCyINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXV0aE1ldGhvZCDQktGL0LHRgNCw0L3QvdGL0Lkg0YHQv9C+0YHQvtCxINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHN3aXRjaEF1dGgoYXV0aE1ldGhvZDogQXV0aE1ldGhvZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dGhNZXRob2QgPSBhdXRoTWV0aG9kO1xuXG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduSW5TaG93LFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogYXV0aE1ldGhvZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQsNGC0YvQstCw0LXRgiDQvdCw0LbQsNGC0LjQtSDQvdCwINC60L3QvtC/0LrRgyBcItCX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70YxcIiDQuCDQstGL0LTQsNC10YIg0YHQuNCz0L3QsNC7INC+0LEg0Y3RgtC+0LwuXG4gICAgICovXG4gICAgcHVibGljIG9uRm9yZ290UGFzc3dvcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9yZ290UGFzc3dvcmQuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYi00IGZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICBbYXBwZWFyYW5jZV09XCJhdXRoTWV0aG9kID09PSAnYnlfcGhvbmUnID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICAgICAgICAoY2xpY2spPVwic3dpdGNoQXV0aChtZXRob2QuYnlQaG9uZSlcIlxuICAgICAgICBjbGFzcz1cInR1aS1zcGFjZV9yaWdodC0zIHR1aS1zcGFjZV9ib3R0b20tMyAhZm9udC1ib2xkXCJcbiAgICA+XG4gICAgICAgINCf0L4g0YLQtdC70LXRhNC+0L3Rg1xuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXV0aE1ldGhvZCA9PT0gJ2J5X2VtYWlsJyA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgICAgICAgKGNsaWNrKT1cInN3aXRjaEF1dGgobWV0aG9kLmJ5RW1haWwpXCJcbiAgICAgICAgY2xhc3M9XCJ0dWktc3BhY2VfbGVmdC0zIHR1aS1zcGFjZV9ib3R0b20tMyAhZm9udC1ib2xkXCJcbiAgICA+XG4gICAgICAgINCf0L4gZS1tYWlsXG4gICAgPC9idXR0b24+XG48L2Rpdj5cblxuPHNjLXNpZ24taW4tZm9ybS1ieS1lbWFpbFxuICAgICpuZ0lmPVwiYXV0aE1ldGhvZCA9PT0gJ2J5X2VtYWlsJ1wiXG4gICAgKGZvcmdvdFBhc3N3b3JkKT1cIm9uRm9yZ290UGFzc3dvcmQoKVwiXG4+PC9zYy1zaWduLWluLWZvcm0tYnktZW1haWw+XG5cbjxzYy1zaWduLWluLWZvcm0tYnktcGhvbmUgW2NsYXNzLmhpZGRlbl09XCJhdXRoTWV0aG9kICE9PSAnYnlfcGhvbmUnXCI+PC9zYy1zaWduLWluLWZvcm0tYnktcGhvbmU+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC10dWktdGV4dC0wMlwiPtCV0YnQtSDQvdC1INC30LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDQvdGLPzwvc3Bhbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic2lnblVwLmVtaXQoKVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnVzZXItcGx1c1wiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgID5cbiAgICAgICAg0JfQsNGA0LXQs9C40YHRgtGA0LjRgNC+0LLQsNGC0YzRgdGPXG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any,no-param-reassign,@typescript-eslint/unbound-method */
|
|
2
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, inject, output, signal } from '@angular/core';
|
|
4
|
-
import { outputFromObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
6
|
-
import { ScAuthService, ScConvertersService, ScISuggestionType, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, } from '@snabcentr/client-core';
|
|
7
|
-
import { tuiIsFalsy } from '@taiga-ui/cdk';
|
|
8
|
-
import { tuiDropdownOptionsProvider } from '@taiga-ui/core';
|
|
9
|
-
import { catchError, filter, map, of, share, startWith, Subject, switchMap, throwError } from 'rxjs';
|
|
10
|
-
import { ScHelpNotificationService } from '../../services';
|
|
11
|
-
import { phoneValidator } from '../../validators/sc-phone-validator';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/forms";
|
|
14
|
-
import * as i2 from "@taiga-ui/legacy/components/primitive-textfield";
|
|
15
|
-
import * as i3 from "@taiga-ui/legacy";
|
|
16
|
-
import * as i4 from "@taiga-ui/core";
|
|
17
|
-
import * as i5 from "../../verification/verification-phone-check-form/sc-verification-phone-check-form.component";
|
|
18
|
-
import * as i6 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
|
|
19
|
-
import * as i7 from "@taiga-ui/core/components/data-list";
|
|
20
|
-
import * as i8 from "@taiga-ui/kit";
|
|
21
|
-
import * as i9 from "@angular/common";
|
|
22
|
-
/**
|
|
23
|
-
* Компонент упрощенной регистрации.
|
|
24
|
-
*/
|
|
25
|
-
export class ScSimpleSignUpFormComponent {
|
|
26
|
-
constructor() {
|
|
27
|
-
/**
|
|
28
|
-
* Сервис данных о пользователе.
|
|
29
|
-
*/
|
|
30
|
-
this.userService = inject(ScUserService);
|
|
31
|
-
/**
|
|
32
|
-
* Сервис аутентификации.
|
|
33
|
-
*/
|
|
34
|
-
this.authService = inject(ScAuthService);
|
|
35
|
-
/**
|
|
36
|
-
* Сервис конвертации данных.
|
|
37
|
-
*/
|
|
38
|
-
this.convertersService = inject(ScConvertersService);
|
|
39
|
-
/**
|
|
40
|
-
* Сервис для сбора метрик о действиях пользователей.
|
|
41
|
-
*/
|
|
42
|
-
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
43
|
-
/**
|
|
44
|
-
* Группа полей ввода для формы регистрации.
|
|
45
|
-
*/
|
|
46
|
-
this.form = new FormGroup({
|
|
47
|
-
name: new FormControl(null, [Validators.required, Validators.minLength(3)]),
|
|
48
|
-
email: new FormControl(null, [Validators.required, Validators.email]),
|
|
49
|
-
phone: new FormControl(null, [Validators.required, phoneValidator()]),
|
|
50
|
-
verificationCode: new FormControl(null, [Validators.required, Validators.minLength(6)]),
|
|
51
|
-
getNews: new FormControl(false),
|
|
52
|
-
acceptRules: new FormControl(false, Validators.requiredTrue),
|
|
53
|
-
contragent: new FormGroup({}),
|
|
54
|
-
});
|
|
55
|
-
/**
|
|
56
|
-
* Признак, следует ли отображать функционал кода подтверждения.
|
|
57
|
-
*/
|
|
58
|
-
this.showCodeFields = signal(false);
|
|
59
|
-
/**
|
|
60
|
-
* Признак, занят ли телефон (существует ли пользователь с таким телефоном).
|
|
61
|
-
*/
|
|
62
|
-
this.isPhoneBusy = signal(null);
|
|
63
|
-
/**
|
|
64
|
-
* Признак, нужно ли отображать дополнительные поля для регистрации.
|
|
65
|
-
*/
|
|
66
|
-
this.showAdditionalFields = signal(false);
|
|
67
|
-
/**
|
|
68
|
-
* Список контактов для отправки push-уведомлений.
|
|
69
|
-
*/
|
|
70
|
-
this.pushContacts = toSignal(inject(ScHelpNotificationService).getContactsShow$());
|
|
71
|
-
/**
|
|
72
|
-
* Перечисление типов подсказок.
|
|
73
|
-
*/
|
|
74
|
-
this.suggestionType = ScISuggestionType;
|
|
75
|
-
/**
|
|
76
|
-
* {@link Subject} события отправки формы.
|
|
77
|
-
*/
|
|
78
|
-
this.onSubmit$ = new Subject();
|
|
79
|
-
/**
|
|
80
|
-
* {@link Observable} запроса данных регистрации или входа.
|
|
81
|
-
*/
|
|
82
|
-
this.request$ = this.onSubmit$.pipe(map(() => this.form.value), filter((value) => (this.isPhoneBusy() ? this.form.controls.verificationCode.valid : this.form.valid)), switchMap((value) => {
|
|
83
|
-
if (this.isPhoneBusy()) {
|
|
84
|
-
return this.authService.getSignIn$({ phone: value.phone, verificationCode: value.verificationCode }).pipe(catchError((error) => {
|
|
85
|
-
if (error instanceof HttpErrorResponse) {
|
|
86
|
-
const { message } = error.error;
|
|
87
|
-
if (message.includes('деактивирован')) {
|
|
88
|
-
this.helpNotificationService.helpNotificationByPhone(value.phone);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return throwError(() => error);
|
|
92
|
-
}), catchError((error) => {
|
|
93
|
-
this.handleError(error);
|
|
94
|
-
return of({});
|
|
95
|
-
}), startWith(null));
|
|
96
|
-
}
|
|
97
|
-
this.createBaseContragent(value);
|
|
98
|
-
value.isGeneratePassword = true;
|
|
99
|
-
value.isUnknownCity = true;
|
|
100
|
-
return this.userService.signUp$(this.convertersService.removeNullRecursive(value)).pipe(catchError((error) => {
|
|
101
|
-
this.handleError(error);
|
|
102
|
-
return of({});
|
|
103
|
-
}), startWith(null));
|
|
104
|
-
}), share());
|
|
105
|
-
/**
|
|
106
|
-
* Сигнал изменения состояния загрузки данных.
|
|
107
|
-
*/
|
|
108
|
-
this.loading = toSignal(this.request$.pipe(map(tuiIsFalsy)), { initialValue: false });
|
|
109
|
-
/**
|
|
110
|
-
* Сигнал события аутентификации после успешной регистрации.
|
|
111
|
-
*/
|
|
112
|
-
this.successAuth = outputFromObservable(this.userService.getUserChange$().pipe(filter((user) => !user.isGuest)));
|
|
113
|
-
/**
|
|
114
|
-
* Сервис для отображения Push-уведомлений с контактами для помощи клиенту.
|
|
115
|
-
*/
|
|
116
|
-
this.helpNotificationService = inject(ScHelpNotificationService);
|
|
117
|
-
/**
|
|
118
|
-
* Сигнал нажатия на "Договор оферты".
|
|
119
|
-
*/
|
|
120
|
-
this.clickOffer = output();
|
|
121
|
-
}
|
|
122
|
-
/** @inheritDoc */
|
|
123
|
-
ngOnInit() {
|
|
124
|
-
this.userMetrikaService.emitUserMetrikaEvent({
|
|
125
|
-
target: ScUserMetrikaGoalsEnum.simpleSsignUpShow,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Обрабатывает событие изменения занятости телефона.
|
|
130
|
-
*
|
|
131
|
-
* @param isBusy Признак занятости телефона.
|
|
132
|
-
*/
|
|
133
|
-
onIsBusyChange(isBusy) {
|
|
134
|
-
this.isPhoneBusy.set(isBusy);
|
|
135
|
-
this.showCodeFields.set(isBusy !== null);
|
|
136
|
-
this.showAdditionalFields.set(!isBusy);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Обрабатывает событие изменения подтверждения телефона.
|
|
140
|
-
*
|
|
141
|
-
* @param isConfirmed Признак подтверждения телефона.
|
|
142
|
-
*/
|
|
143
|
-
onIsConfirmedChange(isConfirmed) {
|
|
144
|
-
if (isConfirmed === false) {
|
|
145
|
-
this.form.controls.phone.setErrors({
|
|
146
|
-
serverResponse: ['Номер телефона не подтверждён. Обратитесь к вашему персональному менеджеру или войдите с использованием e-mail и пароля.'],
|
|
147
|
-
});
|
|
148
|
-
this.form.controls.phone.markAsTouched();
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Обрабатывает ошибки запросов.
|
|
153
|
-
*
|
|
154
|
-
* @param error Объект ошибки
|
|
155
|
-
*/
|
|
156
|
-
handleError(error) {
|
|
157
|
-
if (error instanceof HttpErrorResponse) {
|
|
158
|
-
const { errors, message } = error.error;
|
|
159
|
-
// eslint-disable-next-line guard-for-in,no-restricted-syntax
|
|
160
|
-
for (const key in errors) {
|
|
161
|
-
if (Object.hasOwn(errors, key)) {
|
|
162
|
-
// eslint-disable-next-line security/detect-object-injection
|
|
163
|
-
this.form.get(key)?.setErrors({ serverResponse: errors[key] });
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
if (!errors && message) {
|
|
167
|
-
this.form.setErrors({ serverResponse: [message] });
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Создаёт базового контрагента для клиента физического лица.
|
|
173
|
-
*
|
|
174
|
-
* @param formValue Значение формы при регистрации
|
|
175
|
-
*/
|
|
176
|
-
createBaseContragent(formValue) {
|
|
177
|
-
if (this.form.invalid) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
formValue.contragent = {
|
|
181
|
-
name: this.form.controls.name.value,
|
|
182
|
-
opf: 'individual',
|
|
183
|
-
contacts: [
|
|
184
|
-
{
|
|
185
|
-
name: this.form.controls.name.value,
|
|
186
|
-
phone: this.form.controls.phone.value,
|
|
187
|
-
email: this.form.controls.email.value,
|
|
188
|
-
},
|
|
189
|
-
],
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
/** @inheritDoc */
|
|
193
|
-
ngOnDestroy() {
|
|
194
|
-
this.helpNotificationService.closeAllHelpNotification();
|
|
195
|
-
}
|
|
196
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSimpleSignUpFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
197
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScSimpleSignUpFormComponent, selector: "sc-simple-sign-up-form", outputs: { successAuth: "successAuth", clickOffer: "clickOffer" }, providers: [tuiDropdownOptionsProvider({ limitWidth: 'fixed' })], ngImport: i0, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex flex-col gap-6\"\n>\n <div class=\"flex flex-col gap-3\">\n <sc-verification-phone-check-form\n (isBusyChange)=\"onIsBusyChange($event)\"\n (isConfirmedChange)=\"onIsConfirmedChange($event)\"\n [showCodeFields]=\"form.controls.phone.valid && form.controls.phone.valid\"\n [shouldBeConfirmed]=\"true\"\n />\n @if (isPhoneBusy() !== null && form.controls.phone.valid) {\n @if (!isPhoneBusy()) {\n <label tuiLabel>\n \u0424.\u0418.\u041E.\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <input\n tuiTextfieldLegacy\n autocomplete=\"name\"\n />\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <label tuiLabel>\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"email\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n\n <label tuiLabel>\n <input\n tuiCheckbox\n type=\"checkbox\"\n formControlName=\"getNews\"\n />\n \u042F \u0445\u043E\u0447\u0443 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443 \u0421\u043D\u0430\u0431\u0446\u0435\u043D\u0442\u0440 \u043E \u0441\u043A\u0438\u0434\u043A\u0430\u0445 \u0438 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435.\n </label>\n\n <label tuiLabel>\n <input\n tuiCheckbox\n type=\"checkbox\"\n required=\"true\"\n formControlName=\"acceptRules\"\n />\n <div>\n <span>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044F\u0441\u044C \u043D\u0430 \u0441\u0430\u0439\u0442\u0435, \u044F \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u044E\u0441\u044C \u0441\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"$event.preventDefault(); clickOffer.emit()\"\n >\n \u0414\u043E\u0433\u043E\u0432\u043E\u0440\u043E\u043C \u043E\u0444\u0435\u0440\u0442\u044B\n </a>\n .\n </span>\n <span class=\"text-tui-negative\">*</span>\n <tui-error\n formControlName=\"acceptRules\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </div>\n </label>\n }\n }\n\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n </div>\n <button\n tuiButton\n [disabled]=\"isPhoneBusy() ? form.controls.verificationCode.invalid || form.controls.phone.invalid : form.invalid\"\n [loading]=\"loading()\"\n type=\"submit\"\n class=\"self-center\"\n >\n {{ isPhoneBusy() ? '\u0412\u043E\u0439\u0442\u0438' : '\u041A\u0443\u043F\u0438\u0442\u044C' }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i4.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i4.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i4.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.ScVerificationPhoneCheckFormComponent, selector: "sc-verification-phone-check-form", inputs: ["showCodeFields", "readOnly", "pseudoInvalid", "required", "subtitle", "shouldBeBusy", "shouldBeConfirmed", "haveCode"], outputs: ["haveCodeChange", "isBusyChange", "isConfirmedChange"] }, { kind: "component", type: i6.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i7.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i8.TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }, { kind: "component", type: i8.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
198
|
-
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSimpleSignUpFormComponent, decorators: [{
|
|
200
|
-
type: Component,
|
|
201
|
-
args: [{ selector: 'sc-simple-sign-up-form', providers: [tuiDropdownOptionsProvider({ limitWidth: 'fixed' })], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex flex-col gap-6\"\n>\n <div class=\"flex flex-col gap-3\">\n <sc-verification-phone-check-form\n (isBusyChange)=\"onIsBusyChange($event)\"\n (isConfirmedChange)=\"onIsConfirmedChange($event)\"\n [showCodeFields]=\"form.controls.phone.valid && form.controls.phone.valid\"\n [shouldBeConfirmed]=\"true\"\n />\n @if (isPhoneBusy() !== null && form.controls.phone.valid) {\n @if (!isPhoneBusy()) {\n <label tuiLabel>\n \u0424.\u0418.\u041E.\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <input\n tuiTextfieldLegacy\n autocomplete=\"name\"\n />\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <label tuiLabel>\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <tui-input formControlName=\"email\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n />\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n\n <label tuiLabel>\n <input\n tuiCheckbox\n type=\"checkbox\"\n formControlName=\"getNews\"\n />\n \u042F \u0445\u043E\u0447\u0443 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443 \u0421\u043D\u0430\u0431\u0446\u0435\u043D\u0442\u0440 \u043E \u0441\u043A\u0438\u0434\u043A\u0430\u0445 \u0438 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435.\n </label>\n\n <label tuiLabel>\n <input\n tuiCheckbox\n type=\"checkbox\"\n required=\"true\"\n formControlName=\"acceptRules\"\n />\n <div>\n <span>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044F\u0441\u044C \u043D\u0430 \u0441\u0430\u0439\u0442\u0435, \u044F \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u044E\u0441\u044C \u0441\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"$event.preventDefault(); clickOffer.emit()\"\n >\n \u0414\u043E\u0433\u043E\u0432\u043E\u0440\u043E\u043C \u043E\u0444\u0435\u0440\u0442\u044B\n </a>\n .\n </span>\n <span class=\"text-tui-negative\">*</span>\n <tui-error\n formControlName=\"acceptRules\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </div>\n </label>\n }\n }\n\n <tui-error\n [error]=\"[] | tuiFieldError | async\"\n class=\"self-center\"\n />\n </div>\n <button\n tuiButton\n [disabled]=\"isPhoneBusy() ? form.controls.verificationCode.invalid || form.controls.phone.invalid : form.invalid\"\n [loading]=\"loading()\"\n type=\"submit\"\n class=\"self-center\"\n >\n {{ isPhoneBusy() ? '\u0412\u043E\u0439\u0442\u0438' : '\u041A\u0443\u043F\u0438\u0442\u044C' }}\n </button>\n</form>\n" }]
|
|
202
|
-
}] });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2ltcGxlLXNpZ24tdXAtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvYXV0aC9zYy1zaW1wbGUtc2lnbi11cC1mb3JtL3NjLXNpbXBsZS1zaWduLXVwLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2F1dGgvc2Mtc2ltcGxlLXNpZ24tdXAtZm9ybS9zYy1zaW1wbGUtc2lnbi11cC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJHQUEyRztBQUUzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUF1QyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFFSCxhQUFhLEVBQ2IsbUJBQW1CLEVBSW5CLGlCQUFpQixFQUVqQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRyxPQUFPLEVBQUUs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SUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLO29CQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUs7b0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSztpQkFDeEM7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsV0FBVztRQUNkLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzVELENBQUM7K0dBbk5RLDJCQUEyQjttR0FBM0IsMkJBQTJCLG9IQUh6QixDQUFDLDBCQUEwQixDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsMEJDaENwRSxpaUpBc0dBOzs0RkRuRWEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLHdCQUF3QixhQUV2QixDQUFDLDBCQUEwQixDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsbUJBQy9DLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LG5vLXBhcmFtLXJlYXNzaWduLEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIG91dHB1dCwgT3V0cHV0RW1pdHRlclJlZiwgT3V0cHV0UmVmLCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbU9ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgSUF1dGhUb2tlbixcbiAgICBTY0F1dGhTZXJ2aWNlLFxuICAgIFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgU2NJQXBpRXJyb3JSZXNwb25zZSxcbiAgICBTY0lPcmdDb250YWN0LFxuICAgIFNjSVNpbXBsZVVzZXJPbkRhdGFDcmVhdGUsXG4gICAgU2NJU3VnZ2VzdGlvblR5cGUsXG4gICAgU2NVc2VyLFxuICAgIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sXG4gICAgU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG4gICAgU2NVc2VyU2VydmljZSxcbn0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0dWlJc0ZhbHN5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlciB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBwaG9uZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvc2MtcGhvbmUtdmFsaWRhdG9yJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YPQv9GA0L7RidC10L3QvdC+0Lkg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1zaW1wbGUtc2lnbi11cC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc2ltcGxlLXNpZ24tdXAtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIoeyBsaW1pdFdpZHRoOiAnZml4ZWQnIH0pXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTaW1wbGVTaWduVXBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNCw0L3QvdGL0YUg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2UgPSBpbmplY3QoU2NVc2VyU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVyc1NlcnZpY2UgPSBpbmplY3QoU2NDb252ZXJ0ZXJzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQstCy0L7QtNCwINC00LvRjyDRhNC+0YDQvNGLINGA0LXQs9C40YHRgtGA0LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV0pLFxuICAgICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSksXG4gICAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHBob25lVmFsaWRhdG9yKCldKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uQ29kZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV0pLFxuICAgICAgICBnZXROZXdzOiBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UpLFxuICAgICAgICBhY2NlcHRSdWxlczogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSksXG4gICAgICAgIGNvbnRyYWdlbnQ6IG5ldyBGb3JtR3JvdXA8YW55Pih7fSksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YHQu9C10LTRg9C10YIg0LvQuCDQvtGC0L7QsdGA0LDQttCw0YLRjCDRhNGD0L3QutGG0LjQvtC90LDQuyDQutC+0LTQsCDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd0NvZGVGaWVsZHMgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINC30LDQvdGP0YIg0LvQuCDRgtC10LvQtdGE0L7QvSAo0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0YEg0YLQsNC60LjQvCDRgtC10LvQtdGE0L7QvdC+0LwpLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1Bob25lQnVzeSA9IHNpZ25hbDxib29sZWFuIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0L3Rg9C20L3QviDQu9C4INC+0YLQvtCx0YDQsNC20LDRgtGMINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L/QvtC70Y8g0LTQu9GPINGA0LXQs9C40YHRgtGA0LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dBZGRpdGlvbmFsRmllbGRzID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQutC+0L3RgtCw0LrRgtC+0LIg0LTQu9GPINC+0YLQv9GA0LDQstC60LggcHVzaC3Rg9Cy0LXQtNC+0LzQu9C10L3QuNC5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwdXNoQ29udGFjdHM6IFNpZ25hbDxTY0lPcmdDb250YWN0W10gfCB1bmRlZmluZWQ+ID0gdG9TaWduYWwoaW5qZWN0KFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UpLmdldENvbnRhY3RzU2hvdyQoKSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0YLQuNC/0L7QsiDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3Rpb25UeXBlOiB0eXBlb2YgU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9uU3VibWl0JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0LjQu9C4INCy0YXQvtC00LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JCA9IHRoaXMub25TdWJtaXQkLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKTogdmFsdWUgaXMgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSA9PiAodGhpcy5pc1Bob25lQnVzeSgpID8gdGhpcy5mb3JtLmNvbnRyb2xzLnZlcmlmaWNhdGlvbkNvZGUudmFsaWQgOiB0aGlzLmZvcm0udmFsaWQpKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQaG9uZUJ1c3koKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFNpZ25JbiQoeyBwaG9uZTogdmFsdWUucGhvbmUsIHZlcmlmaWNhdGlvbkNvZGU6IHZhbHVlLnZlcmlmaWNhdGlvbkNvZGUgfSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBTY0lBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoJ9C00LXQsNC60YLQuNCy0LjRgNC+0LLQsNC9JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWxwTm90aWZpY2F0aW9uU2VydmljZS5oZWxwTm90aWZpY2F0aW9uQnlQaG9uZSh2YWx1ZS5waG9uZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBJQXV0aFRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQmFzZUNvbnRyYWdlbnQodmFsdWUpO1xuICAgICAgICAgICAgdmFsdWUuaXNHZW5lcmF0ZVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhbHVlLmlzVW5rbm93bkNpdHkgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5zaWduVXAkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbFJlY3Vyc2l2ZSh2YWx1ZSkpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9IGFzIElBdXRoVG9rZW4pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNCz0L3QsNC7INC40LfQvNC10L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmc6IFNpZ25hbDxib29sZWFuPiA9IHRvU2lnbmFsKHRoaXMucmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpLCB7IGluaXRpYWxWYWx1ZTogZmFsc2UgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LPQvdCw0Lsg0YHQvtCx0YvRgtC40Y8g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuCDQv9C+0YHQu9C1INGD0YHQv9C10YjQvdC+0Lkg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VjY2Vzc0F1dGg6IE91dHB1dFJlZjxTY1VzZXI+ID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy51c2VyU2VydmljZS5nZXRVc2VyQ2hhbmdlJCgpLnBpcGUoZmlsdGVyKCh1c2VyKSA9PiAhdXNlci5pc0d1ZXN0KSkpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPIFB1c2gt0YPQstC10LTQvtC80LvQtdC90LjQuSDRgSDQutC+0L3RgtCw0LrRgtCw0LzQuCDQtNC70Y8g0L/QvtC80L7RidC4INC60LvQuNC10L3RgtGDLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBoZWxwTm90aWZpY2F0aW9uU2VydmljZTogU2NIZWxwTm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChTY0hlbHBOb3RpZmljYXRpb25TZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQvdCw0LbQsNGC0LjRjyDQvdCwIFwi0JTQvtCz0L7QstC+0YAg0L7RhNC10YDRgtGLXCIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrT2ZmZXI6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnNpbXBsZVNzaWduVXBTaG93LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0LDRgtGL0LLQsNC10YIg0YHQvtCx0YvRgtC40LUg0LjQt9C80LXQvdC10L3QuNGPINC30LDQvdGP0YLQvtGB0YLQuCDRgtC10LvQtdGE0L7QvdCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlzQnVzeSDQn9GA0LjQt9C90LDQuiDQt9Cw0L3Rj9GC0L7RgdGC0Lgg0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25Jc0J1c3lDaGFuZ2UoaXNCdXN5OiBib29sZWFuIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGhvbmVCdXN5LnNldChpc0J1c3kpO1xuICAgICAgICB0aGlzLnNob3dDb2RlRmllbGRzLnNldChpc0J1c3kgIT09IG51bGwpO1xuICAgICAgICB0aGlzLnNob3dBZGRpdGlvbmFsRmllbGRzLnNldCghaXNCdXN5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0LDRgtGL0LLQsNC10YIg0YHQvtCx0YvRgtC40LUg0LjQt9C80LXQvdC10L3QuNGPINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPINGC0LXQu9C10YTQvtC90LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNDb25maXJtZWQg0J/RgNC40LfQvdCw0Log0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25Jc0NvbmZpcm1lZENoYW5nZShpc0NvbmZpcm1lZDogYm9vbGVhbiB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzQ29uZmlybWVkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnBob25lLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgc2VydmVyUmVzcG9uc2U6IFsn0J3QvtC80LXRgCDRgtC10LvQtdGE0L7QvdCwINC90LUg0L/QvtC00YLQstC10YDQttC00ZHQvS4g0J7QsdGA0LDRgtC40YLQtdGB0Ywg0Log0LLQsNGI0LXQvNGDINC/0LXRgNGB0L7QvdCw0LvRjNC90L7QvNGDINC80LXQvdC10LTQttC10YDRgyDQuNC70Lgg0LLQvtC50LTQuNGC0LUg0YEg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQvCBlLW1haWwg0Lgg0L/QsNGA0L7Qu9GPLiddLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5waG9uZS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0LDRgtGL0LLQsNC10YIg0L7RiNC40LHQutC4INC30LDQv9GA0L7RgdC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXJyb3Ig0J7QsdGK0LXQutGCINC+0YjQuNCx0LrQuFxuICAgICAqL1xuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBTY0lBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ3VhcmQtZm9yLWluLG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihlcnJvcnMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KT8uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yc1trZXldIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFlcnJvcnMgJiYgbWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogW21lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LHQsNC30L7QstC+0LPQviDQutC+0L3RgtGA0LDQs9C10L3RgtCwINC00LvRjyDQutC70LjQtdC90YLQsCDRhNC40LfQuNGH0LXRgdC60L7Qs9C+INC70LjRhtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSDQl9C90LDRh9C10L3QuNC1INGE0L7RgNC80Ysg0L/RgNC4INGA0LXQs9C40YHRgtGA0LDRhtC40LhcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUJhc2VDb250cmFnZW50KGZvcm1WYWx1ZTogU2NTaW1wbGVTaWduVXBGb3JtQ29tcG9uZW50Wydmb3JtJ11bJ3ZhbHVlJ10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtVmFsdWUuY29udHJhZ2VudCA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuZm9ybS5jb250cm9scy5uYW1lLnZhbHVlLFxuICAgICAgICAgICAgb3BmOiAnaW5kaXZpZHVhbCcsXG4gICAgICAgICAgICBjb250YWN0czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5mb3JtLmNvbnRyb2xzLm5hbWUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHBob25lOiB0aGlzLmZvcm0uY29udHJvbHMucGhvbmUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGVtYWlsOiB0aGlzLmZvcm0uY29udHJvbHMuZW1haWwudmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlbHBOb3RpZmljYXRpb25TZXJ2aWNlLmNsb3NlQWxsSGVscE5vdGlmaWNhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxmb3JtXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQkLm5leHQoKVwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02XCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICA8c2MtdmVyaWZpY2F0aW9uLXBob25lLWNoZWNrLWZvcm1cbiAgICAgICAgICAgIChpc0J1c3lDaGFuZ2UpPVwib25Jc0J1c3lDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoaXNDb25maXJtZWRDaGFuZ2UpPVwib25Jc0NvbmZpcm1lZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtzaG93Q29kZUZpZWxkc109XCJmb3JtLmNvbnRyb2xzLnBob25lLnZhbGlkICYmIGZvcm0uY29udHJvbHMucGhvbmUudmFsaWRcIlxuICAgICAgICAgICAgW3Nob3VsZEJlQ29uZmlybWVkXT1cInRydWVcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKGlzUGhvbmVCdXN5KCkgIT09IG51bGwgJiYgZm9ybS5jb250cm9scy5waG9uZS52YWxpZCkge1xuICAgICAgICAgICAgQGlmICghaXNQaG9uZUJ1c3koKSkge1xuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAg0KQu0Jgu0J4uXG4gICAgICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg0KQu0Jgu0J4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImdldE5ld3NcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICDQryDRhdC+0YfRgyDQv9C+0LvRg9GH0LDRgtGMINGA0LDRgdGB0YvQu9C60YMg0KHQvdCw0LHRhtC10L3RgtGAINC+INGB0LrQuNC00LrQsNGFINC4INC90L7QstC+0YHRgtGP0YUg0L/QviDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0LUuXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NlcHRSdWxlc1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDQoNC10LPQuNGB0YLRgNC40YDRg9GP0YHRjCDQvdCwINGB0LDQudGC0LUsINGPINGB0L7Qs9C70LDRiNCw0Y7RgdGMINGBXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGNsaWNrT2ZmZXIuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCU0L7Qs9C+0LLQvtGA0L7QvCDQvtGE0LXRgNGC0YtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1uZWdhdGl2ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjZXB0UnVsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZi1jZW50ZXJcIlxuICAgICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1Bob25lQnVzeSgpID8gZm9ybS5jb250cm9scy52ZXJpZmljYXRpb25Db2RlLmludmFsaWQgfHwgZm9ybS5jb250cm9scy5waG9uZS5pbnZhbGlkIDogZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZygpXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwic2VsZi1jZW50ZXJcIlxuICAgID5cbiAgICAgICAge3sgaXNQaG9uZUJ1c3koKSA/ICfQktC+0LnRgtC4JyA6ICfQmtGD0L/QuNGC0YwnIH19XG4gICAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|